%PDF- %PDF-
| Direktori : /www/varak.net/mail2.varak.net_old/adminpanel/core/screens/ |
| Current File : //www/varak.net/mail2.varak.net_old/adminpanel/core/screens/table.php |
<?php
/*
* Copyright 2004-2014, AfterLogic Corp.
* Licensed under AGPLv3 license or AfterLogic license
* if commercial version of the product was purchased.
* See the LICENSE file for a full license statement.
*/
class ap_Table_Screen extends ap_Screen
{
const SESS_SEARCH = 'search';
const SESS_PAGE = 'page';
const SESS_FILTER = 'filter';
const SESS_ORDERBY = 'orderby';
const SESS_ORDERTYPE = 'ordertype';
/**
* @var int
*/
protected $iLinesPerPage;
/**
* @var int
*/
protected $iPage;
/**
* @var int
*/
protected $iAllListCount;
/**
* @var bool
*/
protected $bUseSort;
/**
* @var array
*/
protected $aTopMenu;
/**
* @var string
*/
protected $sLowToolBarText;
/**
* @var array
*/
protected $aHeaders;
/**
* @var array
*/
protected $aListItems;
/**
* @var string
*/
protected $sOrderField;
/**
* @var bool
*/
protected $bOrderType;
/**
* @var string
*/
protected $sEmptyListDesc;
/**
* @var string
*/
protected $sEmptySearchDesc;
/**
* @var string
*/
protected $bSearchEnabled;
/**
* @var string
*/
protected $sSearchDesc;
/**
* @var ap_Table_Screen_Main
*/
public $Main;
/**
* @var ap_Table_Screen_ListFilter
*/
public $Filter;
/**
* @param CAdminPanel $oAdminPanel
* @return ap_Table_Screen
*/
public function __construct(CAdminPanel &$oAdminPanel)
{
parent::__construct($oAdminPanel, CAdminPanel::RootPath().'core/templates/table.php');
$this->CssAddFile('static/styles/screens/table.css');
$this->JsAddFile('static/js/screens/table.js');
$this->aTopMenu = array();
$this->sLowToolBarText = '';
$this->aHeaders = array();
$this->aListItems = array();
$this->aListItemsWithoutCheckbox = array();
$this->iLinesPerPage = AP_LINES_PER_PAGE;
$this->iPage = 1;
$this->iAllListCount = 0;
$this->sOrderField = '';
$this->sDefaultOrderField = '';
$this->bOrderType = true;
$this->bUseSort = false;
$this->bSearchEnabled = true ;
$this->sSearchDesc = '';
$this->sEmptyListDesc = 'Empty';
$this->sEmptySearchDesc = 'Not found';
$this->Main = new ap_Table_Screen_Main($this);
$this->Filter = null;
}
/**
* @return void
*/
public function PreModuleInit()
{
parent::PreModuleInit();
$this->AddHeader('Null', 100);
$sScreenName = $this->GetScreenName();
if (isset($_GET['search']) && Cpost::Has('searchdesc'))
{
$sSearchDesc = Cpost::Get('searchdesc', '');
if (empty($sSearchDesc))
{
CSession::Clear($sScreenName.self::SESS_SEARCH);
}
else
{
CSession::Set($sScreenName.self::SESS_SEARCH, $sSearchDesc);
}
CSession::Set($sScreenName.self::SESS_PAGE, 1);
}
else if (isset($_GET['reset_search']))
{
CSession::Clear($sScreenName.self::SESS_SEARCH);
CSession::Set($sScreenName.self::SESS_PAGE, 1);
}
else if (isset($_GET['filter']) && (string) $_GET['filter'] !== (string) CSession::Get($sScreenName.self::SESS_FILTER))
{
CSession::Clear($sScreenName.self::SESS_SEARCH);
CSession::Set($sScreenName.self::SESS_PAGE, 1);
}
if (isset($_GET['page']) && is_numeric($_GET['page']))
{
CSession::Set($sScreenName.self::SESS_PAGE, (int) $_GET['page']);
}
if (CSession::Has($sScreenName.self::SESS_PAGE))
{
$this->iPage = (int) CSession::Get($sScreenName.self::SESS_PAGE, 1);
}
if (CSession::Has($sScreenName.self::SESS_SEARCH))
{
$this->sSearchDesc = CSession::Get($sScreenName.self::SESS_SEARCH, '');
}
if (isset($_GET['page']) && is_numeric($_GET['page']))
{
CSession::Set($sScreenName.self::SESS_PAGE, (int) $_GET['page']);
}
if (isset($_GET['scolumn']) && 0 < strlen($_GET['scolumn']))
{
CSession::Set($sScreenName.self::SESS_ORDERBY, $_GET['scolumn']);
}
if (isset($_GET['sorder']) && is_numeric($_GET['sorder']))
{
CSession::Set($sScreenName.self::SESS_ORDERTYPE, (int) $_GET['sorder']);
}
if (CSession::Has($sScreenName.self::SESS_ORDERBY))
{
$this->sOrderField = CSession::Get($sScreenName.self::SESS_ORDERBY, '');
}
if (CSession::Has($sScreenName.self::SESS_ORDERTYPE))
{
$this->bOrderType = CSession::Get($sScreenName.self::SESS_ORDERTYPE, 0);
}
}
/**
* @return void
*/
public function EndModuleInit()
{
parent::EndModuleInit();
$this->JsAddInitText('
PageSwitcher = new CPageSwitcher();
PageSwitcher.Build();
PageSwitcher.Show('.$this->iPage.', '.$this->iLinesPerPage.', '.$this->iAllListCount.', "PageSwitcherPager(", ");");
List = new CList();
InitList("list");
ResizeElements("all");
$(window).resize(function(){ ResizeElements("all"); });
');
if (isset($_GET['edit'], $_GET['uid']) && is_numeric($_GET['uid']))
{
$iId = (int) $_GET['uid'];
$this->oAdminPanel->JsAddInitText('Selection.CheckLine("uid'.$iId.'");');
}
}
/**
* @param int $iCount
* @return void
*/
public function SetAllListCount($iCount)
{
$this->iAllListCount = (int) $iCount;
}
/**
* @param string $sText
* @return void
*/
public function SetLowToolBar($sText)
{
$this->sLowToolBarText = $sText;
}
/**
* @param string $sText
* @return void
*/
public function SetEmptySearch($sText)
{
$this->sEmptySearchDesc = $sText;
}
/**
* @param string $sText
* @return void
*/
public function SetEmptyList($sText)
{
$this->sEmptyListDesc = $sText;
}
/**
* @return void
*/
public function ClearHeaders()
{
$this->aHeaders = array();
}
/**
* @param string $sName
* @param int $iSize
* @param bool $bIsOrderedField = false
* @return void
*/
public function AddHeader($sName, $iSize, $bIsOrderedField = false)
{
$this->aHeaders[$sName] = $iSize;
if ($bIsOrderedField)
{
$this->sDefaultOrderField = $sName;
}
}
/**
* @param string $sHref
* @param array $aValues
* @param bool $bWithoutCheckbox = false
* @return void
*/
public function AddListItem($sHref, $aValues, $bWithoutCheckbox = false)
{
$this->aListItems[$sHref] = $aValues;
if ($bWithoutCheckbox)
{
$this->aListItemsWithoutCheckbox[$sHref] = true;
}
}
/**
* @param string $sName
* @param string $sImage
* @param string $sClickId
* @param string $sTitle = null
* @return void
*/
public function AddTopMenuButton($sName, $sImage, $sClickId, $sTitle = null, $sAddAfter = null)
{
if (null !== $sAddAfter && isset($this->aTopMenu[$sAddAfter]))
{
$iIndex = 1;
$aTopMenuKeys = array_keys($this->aTopMenu);
foreach ($aTopMenuKeys as $sMenuMode)
{
if ($sAddAfter === $sMenuMode)
{
break;
}
$iIndex++;
}
$this->aTopMenu = array_slice(
$this->aTopMenu, 0, $iIndex, true) +
array($sClickId => new ap_Table_Screen_TopMenuItem($sName, $sImage, $sClickId, $sTitle)) +
array_slice($this->aTopMenu, $iIndex, NULL, true);
}
else
{
$this->aTopMenu[$sClickId] = new ap_Table_Screen_TopMenuItem($sName, $sImage, $sClickId, $sTitle);
}
}
/**
* @param string $sClickId
* @return void
*/
public function DeleteTopMenuButton($sClickId)
{
if (isset($this->aTopMenu[$sClickId]))
{
unset($this->aTopMenu[$sClickId]);
}
}
public function WriteTopMenu()
{
echo '<div class="wm_toolbar" id="toolbar">';
if (0 < count($this->aTopMenu))
{
foreach ($this->aTopMenu as /* @var $oMenuItem ap_Table_Screen_TopMenuItem */ $oMenuItem)
{
if ($oMenuItem instanceof ap_Table_Screen_TopMenuItem)
{
echo $oMenuItem->ToString();
}
}
echo '<span class="wm_last_toolbar_item"></span>';
}
echo '</div>';
}
/**
* @return mixed
*/
public function GetFilterIndex()
{
$mResult = -1;
if ($this->Filter)
{
$mResult = $this->Filter->GetSelectedItemKey();
}
return $mResult;
}
/**
* @param mixed $mFilterIndex
* @return mixed
*/
public function GetFilterItem($mFilterIndex)
{
$mResult = null;
if ($this->Filter)
{
$mResult = $this->Filter->GetFilterItem($mFilterIndex);
}
return $mResult;
}
/**
* @return void
*/
public function InitFilter($sName)
{
if (!$this->Filter)
{
$this->Filter = new ap_Table_Screen_ListFilter($this->Tab(), $sName, $this);
}
}
/**
* @return void
*/
public function AddFilter($mIndex, $sName, $sClass)
{
if ($this->Filter)
{
$this->Filter->Add($mIndex, $sName, $sClass);
}
}
/**
* @return void
*/
public function WriteFilter()
{
if ($this->Filter)
{
$this->Filter->Write();
}
}
/**
* @return void
*/
public function WriteSearch()
{
if ($this->bSearchEnabled)
{
echo '<div id="list_top_search" class="wm_contact_list_div_top">
<form autocomplete="off" id="searchform" action="'; echo AP_INDEX_FILE; echo '?search" method="POST">' ;
$this->WriteFilter() ;
echo '<div class="wm_toolbar_search_item" id="search_control">
<span>'.CApi::I18N('ADMIN_PANEL/FORM_SEARCH').'</span>
<input type="text" id="searchdesc" name="searchdesc" class="wm_search_input" value="'; echo $this->GetSearchDesc(); echo '" /><span onclick="document.getElementById(\'searchform\').submit();" class="wm_search_icon_standard" style="background-position: -560px 0px;"> </span>
</div>
</form>
<div class="clear"></div>
<div id="search_desc" style="border-right: 0px none;">'; echo $this->GetSearchFullDesc(); echo '</div>
</div>
';
}
}
public function EnableSearch( $bEnabled ) {
$this->bSearchEnabled = $bEnabled ;
}
/**
* @return int
*/
public function GetLinesPerPage()
{
return $this->iLinesPerPage;
}
/**
* @return int
*/
public function GetPage()
{
return $this->iPage;
}
/**
* @return string
*/
public function GetOrderBy()
{
$this->sOrderField = (empty($this->sOrderField)) ? $this->sDefaultOrderField : $this->sOrderField;
return $this->sOrderField;
}
/**
* @return bool
*/
public function GetOrderType()
{
return $this->bOrderType;
}
/**
* @return string
*/
public function GetSearchDesc()
{
return $this->sSearchDesc;
}
public function GetSearchFullDesc()
{
return (!empty($this->sSearchDesc)) ? '<br />'.CApi::I18N('ADMIN_PANEL/MSG_SEARCH_RESULTS').': "<b>'.$this->sSearchDesc.'</b>"
<br /><a href="'.AP_INDEX_FILE.'?reset_search">'.CApi::I18N('ADMIN_PANEL/MSG_SEARCH_RESET').'</a>' : '';
}
protected function getOrderTypeImg($bOrderType)
{
return ($bOrderType) ? 'order_arrow_down.gif' : 'order_arrow_up.gif';
}
public function WriteList()
{
if (0 < count($this->aListItems))
{
$this->bUseSort = true;
}
$sResult = '';
$iHeadersCount = count($this->aHeaders);
if (0 < $iHeadersCount)
{
$sResult .= '
<tr id="contact_list_headers" class="wm_inbox_headers">
<td style="text-align: center; padding-top: 0pt; padding-left: 2px; padding-right: 2px; width: 22px">
<input type="checkbox" id="tableAllCheck" class="wm_checkbox" />
</td>
';
$iHeadersCountCacl = $iHeadersCount;
foreach ($this->aHeaders as $sName => $sSize)
{
$sNameLoc = $sName;
if ($sName=="Type") $sNameLoc = CApi::I18N('ADMIN_PANEL/LIST_HEADER_TYPE');
if ($sName=="Email") $sNameLoc = CApi::I18N('ADMIN_PANEL/LIST_HEADER_EMAIL');
if ($sName=="Name") $sNameLoc = CApi::I18N('ADMIN_PANEL/LIST_HEADER_NAME');
if ($sName=="Friendly name") $sNameLoc = CApi::I18N('ADMIN_PANEL/LIST_HEADER_FNAME');
if ($sName=="Last login") $sNameLoc = CApi::I18N('ADMIN_PANEL/LIST_HEADER_LAST_LOGIN');
if ($sName=="Description") $sNameLoc = CApi::I18N('ADMIN_PANEL/LIST_HEADER_DESC');
$iHeadersCountCacl--;
$sSizeStyle = ($iHeadersCountCacl == 0) ? '' : 'style="width: '.$sSize.'px"';
$iCurrentOrderType = 0;
if ($this->GetOrderBy() === $sName)
{
$iCurrentOrderType = (int) (!$this->bOrderType);
}
$sClass = 'wm_inbox_headers_from_subject';
$sClass .= ($this->bUseSort) ? ' wm_control' : '';
$sOnClick = ($this->bUseSort) ? 'onclick="document.location=\''.AP_INDEX_FILE.'?scolumn='.urlencode(ap_Utils::AttributeQuote($sName)).'&sorder='.urlencode($iCurrentOrderType).'\'"' : '';
$sOrderTypeImg = ($this->bUseSort)
? ($this->GetOrderBy() === $sName)
? '<img src="static/images/menu/'.$this->getOrderTypeImg($this->bOrderType).'">'
: ''
: '';
$sResult .= '
<td class="wm_inbox_headers_separate_noresize" style="width: 1px"></td>
<td id="'.$sName.'" class="'.$sClass.'" '.$sSizeStyle.' '.$sOnClick.'>
<nobr>'.$sNameLoc.$sOrderTypeImg.'</nobr>
</td>
';
}
$iListCount = count($this->aListItems);
if (0 < $iListCount && $this->GetLinesPerPage() >= $iListCount)
{
foreach ($this->aListItems as $sHref => $aValues)
{
$sInput = (isset($this->aListItemsWithoutCheckbox[$sHref])) ? ''
: '<input name="chCollection[]" type="checkbox" value="'.ap_Utils::AttributeQuote($sHref).'" class="wm_checkbox" />';
$sResult .= '
<tr id="uid'.ap_Utils::AttributeQuote(urlencode($sHref)).'" class="wm_inbox_read_item">
<td class="wm_inbox_none">'.$sInput.'</td>';
$sHeadersNames = array_keys($this->aHeaders);
foreach ($sHeadersNames as $sName)
{
if (isset($aValues[$sName]))
{
$sLineValue = ('0' === (string) $sHref)
? $aValues[$sName] : $this->highlightSearchValue($aValues[$sName]);
$sResult .= '<td></td><td class="wm_inbox_from_subject" style="overflow:hidden;">'.$sLineValue.'</td>';
}
else
{
$sResult .= '<td></td><td class="wm_inbox_from_subject" style="padding-left: 4px;"></td>';
}
}
$sResult .= '</tr>';
}
}
else
{
$sResult .= '
<tr>
<td colspan="'.(($iHeadersCount * 2) + 1).'">
<div class="wm_inbox_info_message">'.(
(empty($this->sSearchDesc))
? $this->sEmptyListDesc
: $this->sEmptySearchDesc
).'</div>
</td>
</tr>';
}
}
echo $sResult;
}
/**
* @param string $sValue
* @return string
*/
protected function highlightSearchValue($sValue)
{
if (preg_match('/<img[^>]+>/im', $sValue))
{
return $sValue;
}
return str_replace($this->sSearchDesc, '<b>'.$this->sSearchDesc.'</b>', $sValue);
}
/**
* @return void
*/
public function WriteCard()
{
$this->Main->ToString();
}
/**
* @return void
*/
public function WriteLowToolBar()
{
echo $this->sLowToolBarText;
}
/**
* @return void
*/
public function ClearSwitchers()
{
if ($this->Main)
{
$this->Main->ClearSwitchers();
}
}
}
class ap_Table_Screen_TopMenuItem
{
/**
* @var string
*/
protected $sName;
/**
* @var string
*/
protected $sTitle;
/**
* @var string
*/
protected $sImage;
/**
* @var string
*/
protected $sClickId;
/**
* @param string $sName
* @param string $sImage
* @param string $sClickId
* @param string $sTitle = null
* @return ap_Table_Screen_TopMenuItem
*/
public function __construct($sName, $sImage, $sClickId, $sTitle = null)
{
$this->sName = $sName;
$this->sImage = $sImage;
$this->sClickId = $sClickId;
$this->sTitle = ($sTitle === null) ? $sName : $sTitle;
}
/**
* @return string
*/
function ToString()
{
return '<span id="'.ap_Utils::AttributeQuote($this->sClickId).'" class="wm_toolbar_item" onmouseover="this.className=\'wm_toolbar_item_over\'" onmouseout="this.className=\'wm_toolbar_item\'">
<img title="'.ap_Utils::AttributeQuote($this->sTitle).'" src="static/images/menu/'.ap_Utils::AttributeQuote($this->sImage).'" />
<span>'.$this->sName.'</span>
</span>';
}
}
class ap_Table_Screen_Main
{
/**
* @var array
*/
protected $aSwitchers;
/**
* @var array
*/
protected $aTopSwitchers;
/**
* @var ap_Screen_Data
*/
public $Data;
/**
* @return ap_Table_Screen_Main
*/
public function __construct(ap_Table_Screen &$oScreen)
{
$this->oTableScreen =& $oScreen;
$this->aSwitchers = array();
$this->aTopSwitchers = array();
$this->Data =& $oScreen->Data;
}
/**
* @param string $sMode
* @param string $sModeName
* @param string $sModeTeplatePath
*/
public function AddSwitcher($sMode, $sModeName, $sModeTeplatePath)
{
if (!isset($this->aSwitchers[$sMode]))
{
$this->aSwitchers[$sMode] = array();
}
$this->aSwitchers[$sMode][] = new ap_Table_Screen_MainSwitcher($sMode, $sModeName, $sModeTeplatePath);
}
/**
* @param string $sModeTeplatePath
*/
public function AddTopSwitcher($sModeTeplatePath)
{
$this->aTopSwitchers[] = new ap_Table_Screen_MainTopSwitcher($sModeTeplatePath);
}
/**
* @retun void
*/
public function ClearSwitchers()
{
$this->aSwitchers = array();
$this->aTopSwitchers = array();
}
/**
* @retun void
*/
public function ToString()
{
if (0 < count($this->aSwitchers) || 0 < count($this->aTopSwitchers))
{
include CAdminPanel::RootPath().'/core/templates/table-main.php';
}
}
/**
* @retun void
*/
public function SwitchersToString()
{
$sQueryAction = $this->oTableScreen->Data->GetValue('sysQueryAction');
echo '<form autocomplete="off" action="'.AP_INDEX_FILE.'?ajax" method="POST" id="main_form"><input type="hidden" name="QueryAction" value="'.$sQueryAction.'">';
$this->oTableScreen->JsAddInitText('$(\'#main_form\').submit(MainAjaxRequest);');
if (0 < count($this->aTopSwitchers))
{
echo '<div id="top_switchers_content_div">';
foreach ($this->aTopSwitchers as $oTopSwitcher)
{
if (@file_exists($oTopSwitcher->Template()))
{
include $oTopSwitcher->Template();
}
}
echo '</div>';
}
echo '<div id="main_tab_container">';
if (1 < count($this->aSwitchers))
{
echo '<div id="switchers_tab_div" class="wm_settings_accounts_info" style="width: 100%; margin: 15px 0px">';
echo '<div class="wm_settings_switcher_indent"></div>';
end($this->aSwitchers);
while (false !== ($aModeSwithers = current($this->aSwitchers)))
{
$oFirstItem = (isset($aModeSwithers[0])) ? $aModeSwithers[0] : null;
if ($oFirstItem)
{
$oFirstItem->WriteTabName(false === prev($this->aSwitchers));
$this->oTableScreen->JsAddInitText('$(\'#switcher_tab_id_'.$oFirstItem->Mode().'\').click(SwitcherTabHandler);');
}
}
echo '</div>';
}
$bIsFirst = true;
reset($this->aSwitchers);
echo '<div id="switchers_content_div">';
foreach ($this->aSwitchers as $sMode => $aModeSwithers)
{
$sHideStyle = 'display:none;';
if ($bIsFirst)
{
$sHideStyle = '';
$bIsFirst = false;
}
echo '<div id="content_custom_tab_'.$sMode.'" class="" style="'.$sHideStyle.'">';
foreach ($aModeSwithers as $oItem)
{
if (@file_exists($oItem->Template()))
{
include $oItem->Template();
}
}
echo '</div>';
}
echo '</div></div>';
echo '<br /><br /><hr /><div align="right">
<span class="wm_secondary_info" style="float: left;">'.CApi::I18N('ADMIN_PANEL/FORM_REQUIRED_FIELDS').'</span>
<input type="submit" class="wm_button" style="width: 100px;" value="'.CApi::I18N('ADMIN_PANEL/FORM_BUTTON_SAVE').'">
</div>';
echo '</form>';
}
}
class ap_Table_Screen_MainSwitcher
{
/**
* @var string
*/
protected $sMode;
/**
* @var string
*/
protected $sName;
/**
* @var string
*/
protected $sTemplate;
/**
* @param string $sMode
* @param string $sName
* @param string $sTemplate
* @return ap_Table_Screen_MainSwitcher
*/
public function __construct($sMode, $sName, $sTemplate)
{
$this->sMode = $sMode;
$this->sName = $sName;
$this->sTemplate = $sTemplate;
}
/**
* @retun string
*/
public function Mode()
{
return $this->sMode;
}
/**
* @retun string
*/
public function Name()
{
return $this->sName;
}
/**
* @retun string
*/
public function WriteTabName($bIsSelected = false)
{
$sClass = ($bIsSelected) ? 'wm_settings_switcher_select_item' : 'wm_settings_switcher_item';
echo '<div id="switcher_tab_id_'.$this->Mode().'" rel="content_custom_tab_'.$this->Mode().'" class="'.$sClass.'">'.$this->Name().'</div>';
}
/**
* @retun string
*/
public function Template()
{
return $this->sTemplate;
}
}
class ap_Table_Screen_MainTopSwitcher
{
/**
* @var string
*/
protected $sTemplate;
/**
* @param string $sTemplate
* @return ap_Table_Screen_MainTopSwitcher
*/
public function __construct($sTemplate)
{
$this->sTemplate = $sTemplate;
}
/**
* @retun string
*/
public function Template()
{
return $this->sTemplate;
}
}
class ap_Table_Screen_ListFilter
{
/**
* @var string
*/
protected $sTag;
/**
* @var string
*/
protected $sName;
/**
* @var array
*/
protected $aList;
/**
* @var string
*/
protected $sSelectedItem;
/**
* @var ap_Screen_Data
*/
public $Data;
/**
* @param string $sTab
* @param string $sName
* @return ap_Table_Screen_Main
*/
public function __construct($sTab, $sName, ap_Table_Screen &$oScreen)
{
$this->sTag = $sTab;
$this->sName = $sName;
$this->aList = array();
$this->oTableScreen =& $oScreen;
$this->Data =& $oScreen->Data;
$sScreenName = $this->oTableScreen->GetScreenName();
if (isset($_GET['filter']) && 0 < strlen($_GET['filter']))
{
CSession::Set($sScreenName.ap_Table_Screen::SESS_FILTER, $_GET['filter']);
}
$this->sSelectedItem = CSession::Get($sScreenName.ap_Table_Screen::SESS_FILTER, '');
}
/**
* @return string
*/
public function GetSelectedItemKey()
{
$aTemp = array();
foreach (array_keys($this->aList) as $mIndex)
{
if ($mIndex == $this->sSelectedItem)
{
return $this->sSelectedItem;
}
$aTemp[] = $mIndex;
}
$sScreenName = $this->oTableScreen->GetScreenName();
CSession::Set($sScreenName.ap_Table_Screen::SESS_FILTER, (0 < count($aTemp)) ? $aTemp[0] : '');
$this->sSelectedItem = CSession::Get($sScreenName.ap_Table_Screen::SESS_FILTER, '');
return $this->sSelectedItem;
}
/**
* @param mixed $mFilterIndex
* @return mixed
*/
public function GetFilterItem($mFilterIndex)
{
return (isset($this->aList[$mFilterIndex])) ? $this->aList[$mFilterIndex] : null;
}
/**
* @param mixed $mIndex
* @param string $sName
* @param string $sClass
* @return void
*/
public function Add($mIndex, $sName, $sClass)
{
$this->aList[$mIndex] = array($sName, $sClass);
}
/**
* @return int
*/
public function Count()
{
return count($this->aList);
}
/**
* @return void
*/
public function Write()
{
$sActiv = '';
$sOptions = '';
$iC = 0;
$iLimit = 999;
$bHide = false;
foreach ($this->aList as $mIndex => $aValue)
{
if (1 < count($aValue))
{
$sActiv = ($iC === 0)
? '<a class="l1" title="'.ap_Utils::AttributeQuote($aValue[0]).'" href="javascript:void(0);"><div class="link '.$aValue[1].'"><div>'.$aValue[0].'</div></div>'
: $sActiv;
$addClass = ((empty($this->sSelectedItem) && $iC === 0) || $mIndex == $this->sSelectedItem) ? ' SelectedDomain' : '';
$iC++;
$sActiv = ($mIndex == $this->sSelectedItem)
? '<a class="l1" title="'.ap_Utils::AttributeQuote($aValue[0]).'" href="javascript:void(0);"><div class="link '.$aValue[1].'"><div>'.$aValue[0].'</div></div>'
: $sActiv;
if (!$bHide)
{
$mHref = AP_INDEX_FILE.'?tab='.ap_Utils::AttributeQuote($this->sTag).
'&filter='.ap_Utils::AttributeQuote($mIndex);
$sOptions .= '<a class="l2" title="'.ap_Utils::AttributeQuote($aValue[0]).'" href="'.$mHref.'"><div class="'.$aValue[1].$addClass.'">'.$aValue[0].'</div></a>';
}
if ($iLimit === $iC)
{
$sOptions .= '<div style="text-align: center; margin: 2px;">...</div>';
$bHide = true;
}
}
}
echo (0 === count($this->aList)) ? '' : '
<div style="float: left; height: 16px; padding: 4px;"><span>'.$this->sName.':</span></div>
<div class="menu_select">
'.$sActiv.'<!--[if gte IE 7]><!--></a><!--<![endif]-->
<div class="dd">
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
'.$sOptions.'
</td>
</tr>
</table>
</div>
<!--[if lte IE 6]></a><![endif]-->
</div>';
}
}