%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/standard.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_Standard_Screen extends ap_Screen { const SESS_MODE = 'mode'; /** * @var array */ protected $aMenu; /** * @var string */ protected $sMode; /** * @var string */ protected $aMenuDefMode; /** * @param CAdminPanel $oAdminPanel * @return ap_Standard_Screen */ public function __construct(CAdminPanel &$oAdminPanel) { parent::__construct($oAdminPanel, CAdminPanel::RootPath().'core/templates/standard.php'); $this->CssAddFile('static/styles/screens/standard.css'); $this->aMenu = array(); $this->sMode = ''; $this->aMenuDefMode = ''; } /** * @return void */ public function MiddleModuleInit() { $sScreenName = $this->GetScreenName(); if (isset($_GET['mode']) && isset($this->aMenu[$_GET['mode']])) { CSession::Set($sScreenName.self::SESS_MODE, $_GET['mode']); } $this->sMode = CSession::Get($sScreenName.self::SESS_MODE, $this->aMenuDefMode); } /** * @param string $sMode * @param string $sModeName * @param string $sModeTeplatePath * @param array $aToolTips = array() * @param string $sAddAfterMode = null * @return void */ public function AddMenuItem($sMode, $sModeName, $sModeTeplatePath, $aToolTips = array(), $sAddAfterMode = null, $bAddInFoot = true) { if (!isset($this->aMenu[$sMode])) { if (null !== $sAddAfterMode && isset($this->aMenu[$sAddAfterMode])) { $aItems = null; $iIndex = 1; foreach ($this->aMenu as $sMenuMode => $aItems) { if ($sAddAfterMode === $sMenuMode) { break; } $iIndex++; } $this->aMenu = array_slice($this->aMenu, 0, $iIndex) + array($sMode => array()) + array_slice($this->aMenu, $iIndex); } else { $this->aMenu[$sMode] = array(); } } if ($bAddInFoot) { array_push($this->aMenu[$sMode], new ap_Standard_Screen_MenuItem($sMode, $sModeName, $sModeTeplatePath, $aToolTips)); } else { array_unshift($this->aMenu[$sMode], new ap_Standard_Screen_MenuItem($sMode, $sModeName, $sModeTeplatePath, $aToolTips)); } } /** * @param string $sMode * @param bool $bForce = false * @return void */ public function SetDefaultMode($sMode, $bForce = false) { if ($bForce || empty($this->aMenuDefMode)) { $this->aMenuDefMode = $sMode; } } /** * @return string */ public function GetCurrentMode() { if (!isset($this->aMenu[$this->sMode])) { $this->sMode = $this->aMenuDefMode; } if (empty($this->sMode)) { $sScreenName = $this->GetScreenName(); foreach (array_keys($this->aMenu) as $sKeyName) { $this->sMode = $sKeyName; CSession::Set($sScreenName.self::SESS_MODE, $this->sMode); break; } } return $this->sMode; } /** * @return void */ public function WriteMenu() { $sCurrentMode = $this->GetCurrentMode(); echo '<div style="width:215px; height:1px; overflow:hidden; padding: 0px"></div>'; foreach ($this->aMenu as $sMode => /* @var $oItem ap_Standard_Screen_MenuItem */ $aItems) { $sClass = 'wm_settings_item'; if ($sCurrentMode === $sMode) { $sClass = 'wm_selected_settings_item'; foreach ($aItems as $oAddItem) { $aToolTips = $oAddItem->ToolTips(); if (is_array($aToolTips) && 0 < count($aToolTips)) { foreach($aToolTips as $sId => $sToolTip) { $this->JsAddInitText('JAddToolTip("'.ap_Utils::ReBuildStringToJavaScript($sId, '"'). '", "'.ap_Utils::ReBuildStringToJavaScript($sToolTip, '"').'");'); } } } } $oItem = isset($aItems[0]) ? $aItems[0] : null; if ($oItem) { echo ' <div class="'.$sClass.'" id="'.$oItem->Mode().'_div"><a href="'.AP_INDEX_FILE.'?mode='.$oItem->Mode().'">'.$oItem->Name().'</a></div>'; } } } /** * @return void */ public function WriteMain() { $sCurrentMode = $this->GetCurrentMode(); foreach ($this->aMenu as $sMode => /* @var $oItem ap_Standard_Screen_MenuItem */ $aItems) { if ($sMode === $sCurrentMode && is_array($aItems) && 0 < count($aItems)) { echo '<form autocomplete="off" action="'.AP_INDEX_FILE.'?submit" method="POST" id="'.$sMode.'_form"><input type="hidden" name="form_id" value="'.$sMode.'"><table class="wm_settings_common" width="650">'; foreach ($aItems as $oItem) { if (@file_exists($oItem->Template())) { include $oItem->Template(); } } echo '</table> <table class="wm_settings_common" width="100%"> <tr> <td> <hr /> </td> </tr> <tr> <td align="right"> <span class="wm_secondary_info" style="float: left; display: none;">'.CApi::I18N('ADMIN_PANEL/FORM_REQUIRED_FIELDS').'</span> <input type="submit" name="submit_btn" value="'.CApi::I18N('ADMIN_PANEL/FORM_BUTTON_SAVE').'" class="wm_button" style="width: 100px"> </td> </tr> </table></form>'; } } } } class ap_Standard_Screen_MenuItem { /** * @var string */ protected $sMode; /** * @var string */ protected $sName; /** * @var string */ protected $sTemplate; /** * @var array */ protected $aToolTips; /** * @param string $sMode * @param string $sName * @param string $sTemplate * @param array $aToolTips = array() */ public function __construct($sMode, $sName, $sTemplate, $aToolTips = array()) { $this->sMode = $sMode; $this->sName = $sName; $this->sTemplate = $sTemplate; $this->aToolTips = $aToolTips; } /** * @retun string */ public function Mode() { return $this->sMode; } /** * @retun string */ public function Name() { return $this->sName; } /** * @retun string */ public function Template() { return $this->sTemplate; } /** * @retun array */ public function ToolTips() { return $this->aToolTips; } }