Page Menu
Home
In-Portal Phabricator
Search
Configure Global Search
Log In
Files
F773411
in-portal
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Sun, Feb 2, 10:08 AM
Size
15 KB
Mime Type
text/x-diff
Expires
Tue, Feb 4, 10:08 AM (2 h, 10 m)
Engine
blob
Format
Raw Data
Handle
556639
Attached To
rINP In-Portal
in-portal
View Options
Index: trunk/admin/listview/listview.php
===================================================================
--- trunk/admin/listview/listview.php (revision 1049)
+++ trunk/admin/listview/listview.php (revision 1050)
@@ -1,472 +1,472 @@
<?php
require($pathtoroot.$admin."/listview/columnheader.php");
require($pathtoroot.$admin."/listview/viewmenu.php");
class clsListView
{
var $Formatters = Array(); // formatters to apply while printing list
var $ColumnHeaders;
var $ToolBar;
var $ListItems;
var $PageLinkTemplate;
var $PerPageVar;
var $CurrentPageVar;
var $CurrentPage;
var $TotalItemCount;
var $SortField;
var $SortOrder;
var $IdField;
var $PrintToolBar=TRUE;
var $ShowColumnHeaders=TRUE;
var $checkboxes=TRUE;
var $SelectorType;
var $CheckboxName;
var $CheckArray;
var $RowIcons;
var $SearchBar=FALSE;
var $SearchKeywords;
var $SearchAction;
var $SearchDropdownId="";
var $PageLinks;
var $extra_env;
var $PriorityField;
var $PageURL;
var $ViewMenu;
var $JSCheckboxName;
function clsListView($ToolBar=NULL,$ListItems=NULL)
{
$this->SetToolBar($ToolBar);
$this->SetListItems($ListItems);
$this->ColumnHeaders = new clsColumnHeaderList();
$this->CurrentPage=1;
$this->CheckboxName = "itemlist[]";
$this->SelectorType="checkbox";
$this->RowIcons = array();
$this->PageLinks = "";
$this->SearchAction = "";
$this->extra_env="";
$this->PriorityField="Priority";
$this->TotalItemCount = 0;
if (!is_null($ToolBar))
$this->JSCheckboxName = $ToolBar->Get("CheckClass");
$this->SetFormatters(); // for setting custom formatters
}
function SetToolbar($ToolBar)
{
$this->ToolBar=$ToolBar;
if(is_object($this->ToolBar))
$this->CheckArray=$this->ToolBar->Get("CheckClass");
}
function GetPage()
{
// get current page
$this->RefreshPageVar();
return $this->CurrentPage;
}
function GetLimitSQL()
{
return GetLimitSQL($this->GetPage(), $this->GetPerPage() );
}
- function SetListItems($ListItems)
+ function SetListItems(&$ListItems)
{
- $this->ListItems = $ListItems;
+ $this->ListItems =& $ListItems;
}
function SetIDfield($field)
{
$this->IdField = $field;
}
function SetSort($SortField,$SortOrderVariable)
{
$this->ColumnHeaders->SetSort($SortField,$SortOrder);
}
function SetRowIcon($index,$url)
{
$this->RowIcons[$index] = $url;
}
function ConfigureViewMenu($SortFieldVar,$SortOrderVar,$DefaultSort,$FilterVar,$FilterValue,$FilterMax)
{
global $objConfig;
//$FilterVal = $this->CurrentFilter;
//$fMax = $this->Filtermax;
//$sOrder = $this->CurrentSortOrder;
//$sOrderVar = $this->OrderVar;
//$sField = $this->CurrentSortField;
//$sDefault = $this->DefaultSortField;
$this->ViewMenu = new clsViewMenu();
$this->ViewMenu->PerPageVar = $this->PerPageVar;
$this->ViewMenu->PerPageValue = (int)$objConfig->Get($this->PerPageVar);
if($this->ViewMenu->PerPageValue==0)
$this->ViewMenu->PerPageValue = 20;
$this->ViewMenu->CurrentSortField = $objConfig->Get($SortFieldVar);
$this->ViewMenu->CurrentSortOrder = $objConfig->get($SortOrderVar);
$this->ViewMenu->SortVar = $SortFieldVar;
$this->ViewMenu->OrderVar = $SortOrderVar;
$this->ViewMenu->CurrentFilter= $FilterValue;
$this->ViewMenu->FilterVar = $FilterVar;
$this->ViewMenu->FilterMax = $FilterMax;
foreach($this->ColumnHeaders->Columns as $col)
{
$this->ViewMenu->AddSortField($col->field,$col->label,$DefaultSort==$col->field);
}
}
function AddViewMenuFilter($Label,$Bit)
{
if(is_object($this->ViewMenu))
$this->ViewMenu->AddFilterField($Label,$Bit);
}
function GetViewMenu($imagesURL)
{
if(is_object($this->ViewMenu))
{
$this->ViewMenu->CheckboxName = $this->JSCheckboxName;
return $this->ViewMenu->GetViewMenuJS($imagesURL);
}
else
return "";
}
function SetFormatters()
{
// for setting custom formatters
// abstract
}
function SetFormatter($field, $type, $params)
{
// by Alex
// all params after 2nd are formmater type specific
$this->Formatters[$field]['type'] = $type;
switch($type)
{
case FT_OPTION:
$this->Formatters[$field]['options'] = $params;
break;
}
}
function PrintItem($index)
{
if( !isset($this->ListItems->Items[$index]) ) return '';
$li = $this->ListItems->Items[$index];
$o = "";
$first=1;
if(is_object($li))
{
// ==== new by Alex: begin ====
$li->Formatters =& $this->Formatters;
// ==== new by Alex: end ====
$id_field = $this->IdField;
$row_id = $li->Get($id_field);
if(is_numeric($li->Get($this->PriorityField)))
{
$Priority = (int)$li->Get($this->PriorityField);
}
else
$Priority=0;
$o = "<TR ".int_table_color_ret()." ID=\"$row_id\">\n";
foreach($this->ColumnHeaders->Columns as $col)
{
$width="";
$ColId = $row_id."_col_".$col->field;
if($first==1)
{
if(strlen($col->width))
{
$width = $col->width;
}
$o .= "<TD $width valign=\"top\" class=\"text\">";
if($this->checkboxes)
{
$onclick = "onclick=\"if (this.checked) {".$this->CheckArray.".addCheck('$row_id');} else {".$this->CheckArray.".removeCheck('$row_id');}\"";
$onclicksrc = "onclicksrc=\"if (this.checked) {".$this->CheckArray.".addCheck('$row_id');} else {".$this->CheckArray.".removeCheck('$row_id');}\"";
$o .= "<input rowId='".$row_id."' checkArrayName='".$this->CheckArray."' isSelector=\"true\" type=\"".$this->SelectorType."\" name=\"".$this->CheckboxName."\" value=\"$row_id\" $onclick $onclicksrc>";
}
if(isset($this->RowIcons[$index]))
{
$url = $this->RowIcons[$index];
if(strlen($url))
$o .= "<img src=\"".$url."\"> ";
}
$first=0;
}
else
{
if(strlen($col->width))
{
$o .= "<TD ".$col->width.">";
}
else
$o .= "<TD>";
}
if($Priority!=0)
{
$o .= "<span class=\"priority\"><sup>$Priority</sup></span>";
$Priority=0;
}
$o .= "<SPAN ID=\"$ColId\">".($li->GetFormatted($col->field))."</SPAN></TD>\n";
}
$o .= "</TR>\n";
}
return $o;
}
function PrintItems()
{
$o = '';
$numitems = $this->ListItems->NumItems();
for($index=0;$index<=$numitems;$index++)
{
$o .= $this->PrintItem($index);
}
return $o;
}
function TotalPageNumbers()
{
if($this->PerPage>0)
{
$ret = $this->ListItems->NumItems() / $this->PerPage;
$ret = (int)$ret;
}
else
$ret = 1;
return $ret;
}
function GetPerPage()
{
global $objConfig;
$PerPage = $objConfig->Get($this->PerPageVar);
if($PerPage < 1)
{
if( defined('DEBUG_MODE') ) echo 'PerPage Variable [<b>'.$this->PerPageVar.'</b>] not defined in Config<br>';
$PerPage = 20;
//$objConfig->Set($this->PerPageVar,20);
//$objConfig->Save();
}
return $PerPage;
}
function GetAdminPageLinkList($url)
{
global $objConfig;
-
+
$PerPage = $this->GetPerPage();
if($this->TotalItemCount>0)
{
$NumPages = ceil($this->TotalItemCount / $PerPage);
}
else
$NumPages = ceil($this->ListItems->NumItems() / $PerPage);
if($NumPages<1)
$NumPages =1;
//echo $this->CurrentPage." of ".$NumPages." Pages";
$o = "";
if($this->CurrentPage>$NumPages)
$this->CurrentPage=$NumPages;
$StartPage = $this->CurrentPage - 5;
if($StartPage<1)
$StartPage=1;
$EndPage = $StartPage+9;
if($EndPage>$NumPages)
{
$EndPage = $NumPages;
$StartPage = $EndPage-10;
if($StartPage<1)
$StartPage=1;
}
$o .= "<b class=\"text\">".admin_language("la_Page")."</b> ";
if($StartPage>1)
{
$target = $this->CurrentPage-10;
$prev_url = str_replace("{TargetPage}",$target,$url);
$o .= "<A HREF=\"$prev_url\" class=\"NAV_URL\"><<</A>";
}
for($p=$StartPage;$p<=$EndPage;$p++)
{
if($p!=$this->CurrentPage)
{
$href = str_replace("{TargetPage}",$p,$url);
$o .= " <A HREF=\"$href\" class=\"NAV_URL\">$p</A> ";
}
else
{
$o .= " <SPAN class=\"CURRENT_PAGE\">$p</SPAN> ";
}
}
if($EndPage<$NumPages-1)
{
$target = $this->CurrentPage+10;
$next_url = str_replace("{TargetPage}",$target,$url);
$o .= "<A HREF=\"$next_url\" class=\"NAV_URL\"> >></A>";
}
return $o;
}
function SliceItems()
{
global $objConfig;
$PerPage = (int)$objConfig->Get($this->PerPageVar);
if($PerPage<1)
$PerPage=20;
$NumPages = ceil($this->ListItems->NumItems() / $PerPage);
if($NumPages>1)
{
$Start = ($this->CurrentPage-1)*$PerPage;
$this->ListItems->Items = array_slice($this->ListItems->Items,$Start,$PerPage);
}
}
function RefreshPageVar()
{
global $objSession;
if( (int)GetVar('lpn') > 0)
{
$this->CurrentPage = $_GET["lpn"];
$objSession->SetVariable($this->CurrentPageVar,$this->CurrentPage);
}
else
$this->CurrentPage = $objSession->GetVariable($this->CurrentPageVar);
$this->ListItems->Page = $this->CurrentPage;
}
function PrintPageLinks($add_search = '')
{
global $imagesURL, $objSession, $lvErrorString;
if(strlen($this->PageLinks)>0)
{
return $this->PageLinks;
}
$this->RefreshPageVar();
if($this->CurrentPage<1)
$this->CurrentPage = 1;
if(!strlen($this->PageURL))
{
$this->PageURL = $_SERVER["PHP_SELF"]."?env=".BuildEnv();
if(strlen($this->extra_env))
$this->PageURL .= "&".$this->extra_env;
$this->PageURL .= "&lpn={TargetPage}";
}
$cols = $this->ColumnHeaders->Count();
$o = "<TABLE cellSpacing=0 cellPadding=2 width=\"100%\" class=\"pagenav\"><tbody><TR >\n";
if(strlen($lvErrorString))
{
$o .= "<TD STYLE=\"border-bottom: 1px solid #000000;\" colspan=2><span class=\"validation_error\">$lvErrorString</SPAN></TD></TR><TR>";
}
if($this->SearchBar==FALSE)
{
$o .= '<TD colspan="2">';
$o .= $this->GetAdminPageLinkList($this->PageURL);
$o .= "</TD>\n";
}
else
{
$val = inp_htmlize(str_replace(","," ", $this->SearchKeywords),1);
$o .= "<TD>";
$o .= $this->GetAdminPageLinkList($this->PageURL)."</TD>";
$o .= "<TD align=\"right\" valign=\"top\">$add_search".admin_language("la_prompt_Search");
$o .= " <INPUT TYPE=\"TEXT\" ID=\"ListSearchWord\" NAME=\"ListSearchWord\" VALUE=\"$val\">";
$o .= " <IMG align=\"middle\" height=24 width=24 name=\"imgSearch\" ID=\"imgSearch\" src=\"$imagesURL/itemicons/icon16_search.gif\" ";
$o .= " onMouseOut=\"swap('imgSearch', '$imagesURL/itemicons/icon16_search.gif');\" ";
$o .= " onMouseOver=\"swap('imgSearch','$imagesURL/itemicons/icon16_search_f2.gif');\" ";
$o .= " onClick=\"Submit_ListSearch('".$this->SearchAction."');\">";
$o .= " <IMG align=\"middle\" height=24 width=24 name=\"imgResetSearch\" ID=\"imgResetSearch\" src=\"$imagesURL/itemicons/icon16_search_reset.gif\" ";
$o .= " onMouseOut=\"swap('imgResetSearch', '$imagesURL/itemicons/icon16_search_reset.gif');\" ";
$o .= " onMouseOver=\"swap('imgResetSearch','$imagesURL/itemicons/icon16_search_reset_f2.gif');\" ";
$o .= " onClick=\"Submit_ListSearch('".$this->SearchAction."_reset');\">";
if(strlen($this->SearchDropdownId)>0)
{
$o .= " <IMG height=16 width=16 name=\"imgSearchDropDown\" src=\"$imagesURL/itemicons/icon16_search_dropdown.gif\" ";
$o .= " onMouseOut=\"swap('imgResetDropDown', '$imagesURL/itemicons/icon16_search_dropdown.gif');\" ";
$o .= " onMouseOver=\"swap('imgResetDropDown','$imagesURL/itemicons/icon16_search_dropdown.gif');\" ";
$o .= " onClick=\"ListSearch_PopUp('".$this->SearchDropdownId."');\">";
}
$o .= "</TD>";
}
$o .= "</TR></TABLE>";
return $o;
}
function PrintJavaScriptInit()
{
$o = '';
if($this->checkboxes)
{
$o = "<script language=\"javascript\">\n";
$o .="<!--\n";
foreach($this->ListItems->Items as $li)
{
$o .= $this->CheckArray.".CheckList[".$this->CheckArray.".CheckList.length] = '".$li->Get($this->IdField)."';\n";
}
$o .= $this->CheckArray.".setImages();\n";
$o .="//-->\n";
$o .="</script>";
}
return $o;
}
function PrintList($footer = '',$add_search = '')
{
global $objSession;
if((int)$this->CurrentPage<1)
$this->CurrentPage=1;
$o = "\n";
if(is_object($this->ToolBar))
{
if($this->PrintToolBar)
$o .= $this->ToolBar->Build();
}
$o .= $this->PrintPageLinks($add_search);
$o .= "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"4\" class=\"tableborder\">\n";
if($this->ShowColumnHeaders)
{
$o .= $this->ColumnHeaders->PrintColumns();
}
if($this->ListItems->NumItems()>0)
{
$o .= $this->PrintItems();
}
$o .= "$footer</TABLE>";
if($this->ListItems->NumItems()>0)
$o .= $this->PrintJavaScriptInit();
return $o;
}
}
Property changes on: trunk/admin/listview/listview.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.7
\ No newline at end of property
+1.8
\ No newline at end of property
Event Timeline
Log In to Comment