| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353 |
- <?php defined('BX_DOL') or die('hack attempt');
- /**
- * Copyright (c) UNA, Inc - https://una.io
- * MIT License - https://opensource.org/licenses/MIT
- *
- * @defgroup UnaView UNA Studio Representation classes
- * @ingroup UnaStudio
- * @{
- */
- class BxBaseStudioPage extends BxDolStudioPage
- {
- function __construct($mixedPageName)
- {
- parent::__construct($mixedPageName);
- }
- public function getPageIndex()
- {
- if(!is_array($this->aPage) || empty($this->aPage))
- return BX_PAGE_DEFAULT;
- if(!$this->bPageMultiple)
- return !empty($this->aPage['index']) ? (int)$this->aPage['index'] : BX_PAGE_DEFAULT;
- else
- return !empty($this->aPage[$this->sPageSelected]['index']) ? (int)$this->aPage[$this->sPageSelected]['index'] : BX_PAGE_DEFAULT;
- }
- public function getPageJs()
- {
- return array('jquery.anim.js', 'jquery.jfeed.pack.js', 'jquery.dolRSSFeed.js', 'page.js');
- }
- public function getPageJsClass()
- {
- return '';
- }
- public function getPageJsObject()
- {
- return '';
- }
- public function getPageJsCode($aOptions = array(), $bWrap = true)
- {
- $sJsClass = $this->getPageJsClass();
- $sJsObject = $this->getPageJsObject();
- if(empty($sJsClass) || empty($sJsObject))
- return '';
- $sOptions = '{}';
- if(!empty($aOptions))
- $sOptions = json_encode($aOptions);
- $sContent = 'var ' . $sJsObject . ' = new ' . $sJsClass . '(' . $sOptions . ');';
- if($bWrap)
- $sContent = BxDolStudioTemplate::getInstance()->_wrapInTagJsCode($sContent);
- return $sContent;
- }
- public function getPageCss()
- {
- $aCss = array('page.css', 'page-media-tablet.css', 'page-media-desktop.css', 'menu_top.css');
- if((int)$this->aPage['index'] == 3)
- $aCss[] = 'page_columns.css';
- return $aCss;
- }
- public function getPageHeader()
- {
- if(empty($this->aPage) || !is_array($this->aPage))
- return '';
- return _t(!$this->bPageMultiple ? $this->aPage['caption'] : $this->aPage[$this->sPageSelected]['caption']);
- }
- public function getPageBreadcrumb()
- {
- return array();
- }
- public function getPageCaption()
- {
- if(empty($this->aPage) || !is_array($this->aPage))
- return '';
- $oTemplate = BxDolStudioTemplate::getInstance();
- $oFunctions = BxTemplStudioFunctions::getInstance();
- $sHelp = $this->getPageCaptionHelp();
- if(($bHelp = strlen($sHelp)) > 0)
- $sHelp = $oFunctions->transBox('bx-std-pcap-menu-popup-help', $sHelp, true);
- $sActions = $this->getPageCaptionActions();
- if(($bActions = strlen($sActions)) > 0)
- $sActions = $oFunctions->transBox('bx-std-pcap-menu-popup-actions', $sActions, true);
- $oTemplate->addInjection('injection_header', 'text', $sHelp . $sActions);
- //--- Menu Left ---//
- $aItems = array(
- 'back' => array(
- 'name' => 'back',
- 'icon' => 'th',
- 'link' => BX_DOL_URL_STUDIO . 'launcher.php',
- 'title' => '_adm_txt_back_to_launcher'
- )
- );
- $oMenu = new BxTemplStudioMenu(array('template' => 'menu_top_toolbar.html', 'menu_items' => $aItems));
- $sMenuLeft = $oMenu->getCode();
- //--- Menu Right ---//
- $aItems = array();
- if($bActions)
- $aItems['actions'] = array(
- 'name' => 'actions',
- 'icon' => 'cog',
- 'onclick' => BX_DOL_STUDIO_PAGE_JS_OBJECT . ".togglePopup('actions', this)",
- 'title' => '_adm_txt_show_actions'
- );
- if($bHelp)
- $aItems['help'] = array(
- 'name' => 'help',
- 'icon' => 'question-circle',
- 'onclick' => BX_DOL_STUDIO_PAGE_JS_OBJECT . ".togglePopup('help', this)",
- 'title' => '_adm_txt_show_help'
- );
- $aItems = array_merge($aItems, array(
- 'home' => array(
- 'name' => 'home',
- 'icon' => 'home',
- 'link' => BX_DOL_URL_ROOT,
- 'onclick' => '',
- 'title' => '_adm_tmi_cpt_site'
- ),
- 'logout' => array(
- 'name' => 'logout',
- 'icon' => 'power-off',
- 'link' => BX_DOL_URL_ROOT . 'logout.php',
- 'onclick' => '',
- 'title' => '_adm_tmi_cpt_logout'
- )
- ));
- $oMenu = new BxTemplStudioMenu(array('template' => 'menu_top_toolbar.html', 'menu_items' => $aItems));
- $sMenuRight = $oMenu->getCode();
- $aTmplVars = array(
- 'menu_left' => $sMenuLeft,
- 'caption' => _t($this->aPage['caption']),
- 'menu_right' => $sMenuRight
- );
- return $oTemplate->parseHtmlByName('page_caption.html', $aTmplVars);
- }
- public function getPageAttributes()
- {
- return '';
- }
- public function getPageMenu($aMenu, $aMarkers = array())
- {
- $oMenu = new BxTemplStudioMenu(array('template' => 'menu_side.html', 'menu_items' => $aMenu));
- if(!empty($aMarkers))
- $oMenu->addMarkers($aMarkers);
- return $oMenu->getCode();
- }
- public function getPageCode($bHidden = false) {}
- protected function getPageCaptionHelp()
- {
- $sContent = BxDolRss::getObjectInstance($this->sPageRssHelpObject)->getHolder($this->sPageRssHelpId, $this->iPageRssHelpLength, 0, false);
- $oTemplate = BxDolStudioTemplate::getInstance();
- $oTemplate->addJsTranslation('_adm_txt_show_help_content_empty');
- return $oTemplate->parseHtmlByName('page_caption_help.html', array(
- 'content' => $sContent
- ));
- }
- protected function getPageCaptionActions()
- {
- if(empty($this->aActions))
- return "";
- $aForm = array(
- 'form_attrs' => array(
- 'id' => 'adm-page-actions',
- 'name' => 'adm-page-actions',
- 'action' => '',
- 'method' => 'post',
- ),
- 'params' => array(),
- 'inputs' => array()
- );
- foreach($this->aActions as $aAction) {
- $aInput = array(
- 'type' => $aAction['type'],
- 'name' => $aAction['name'],
- 'caption' => _t($aAction['caption'])
- );
- switch($aAction['type']) {
- case 'switcher':
- $aInput['checked'] = $aAction['checked'];
- $aInput['attrs']['onchange'] = $aAction['onchange'];
- break;
- }
- $aForm['inputs'][$aInput['name']] = $aInput;
- }
- $oForm = new BxTemplStudioFormView($aForm);
- return BxDolStudioTemplate::getInstance()->parseHtmlByName('page_caption_actions.html', array('content' => $oForm->getCode()));
- }
- /**
- *
- * Block Methods
- *
- */
- public function getBlocksLine($aBlocks)
- {
- $aTmplVarsBlocks = array();
- foreach ($aBlocks as $aBlock) {
- $aTmplVarsBlocks[] = array(
- 'content' => $this->getBlockCode($aBlock)
- );
- }
- return BxDolStudioTemplate::getInstance()->parseHtmlByName('page_blocks_line.html', array(
- 'count' => count($aTmplVarsBlocks),
- 'bx_repeat:blocks' => $aTmplVarsBlocks
- ));
- }
- public function getBlockCode($aBlock)
- {
- return BxDolStudioTemplate::getInstance()->parseHtmlByName('page_block.html', array(
- 'caption' => $this->getBlockCaption($aBlock),
- 'panel_top' => $this->getBlockPanelTop($aBlock),
- 'items' => !empty($aBlock['items']) ? $aBlock['items'] : '',
- 'panel_bottom' => $this->getBlockPanelBottom($aBlock)
- ));
- }
- public function getBlockCaption($aBlock)
- {
- if(empty($aBlock) || !is_array($aBlock) || (empty($aBlock['caption']) && empty($aBlock['actions'])))
- return '';
- $aTmplActions = array();
- if(!empty($aBlock['actions']) && is_array($aBlock['actions']))
- foreach($aBlock['actions'] as $aAction) {
- $sCaption = is_array($aAction['caption']) ? call_user_func_array('_t', $aAction['caption']) : _t($aAction['caption']);
- $bOnClick = !empty($aAction['onclick']);
- $aOnClick = $bOnClick ? array('onclick' => $aAction['onclick']) : array();
- $aTmplActions[] = array(
- 'name' => $aAction['name'],
- 'url' => $aAction['url'],
- 'title' => $sCaption,
- 'bx_if:show_onclick' => array(
- 'condition' => $bOnClick,
- 'content' => $aOnClick
- ),
- 'caption' => $sCaption
- );
- }
- return BxDolStudioTemplate::getInstance()->parseHtmlByName('block_caption.html', array(
- 'caption' => is_array($aBlock['caption']) ? call_user_func_array('_t', $aBlock['caption']) : _t($aBlock['caption']),
- 'bx_if:show_actions' => array(
- 'condition' => !empty($aTmplActions),
- 'content' => array(
- 'bx_repeat:actions' => $aTmplActions
- )
- ),
- ));
- }
- public function getBlockPanelTop($aBlock)
- {
- if(empty($aBlock) || !is_array($aBlock) || empty($aBlock['panel_top']))
- return '';
- return BxDolStudioTemplate::getInstance()->parseHtmlByName('block_panel_top.html', array(
- 'content' => $aBlock['panel_top']
- ));
- }
- public function getBlockPanelBottom($aBlock)
- {
- if(empty($aBlock) || !is_array($aBlock) || empty($aBlock['panel_bottom']))
- return '';
- return BxDolStudioTemplate::getInstance()->parseHtmlByName('block_panel_bottom.html', array(
- 'content' => $aBlock['panel_bottom']
- ));
- }
- protected function getJsResult($sMessage, $bTranslate = true, $bRedirect = false, $sRedirect = '', $sOnResult = '')
- {
- return $this->getJsResultBy(array(
- 'message' => $sMessage,
- 'translate' => $bTranslate,
- 'redirect' => $bRedirect === true && !empty($sRedirect) ? $sRedirect : $bRedirect,
- 'eval' => $sOnResult
- ));
- }
- protected function getJsResultBy($aParams)
- {
- $aResult = array();
- if(!empty($aParams['message'])) {
- $aResult['message'] = $aParams['message'];
- if(!isset($aParams['translate']) || !empty($aParams['translate'])) {
- $aTrtParams = array($aResult['message']);
- if(!empty($aParams['translate']) && is_array($aParams['translate']))
- $aTrtParams = array_merge($aTrtParams, $aParams['translate']);
- $aResult['message'] = call_user_func_array ('_t', $aTrtParams);
- }
- }
- if(isset($aParams['redirect']) && $aParams['redirect'] !== false)
- $aResult['redirect'] = is_string($aParams['redirect']) ? $aParams['redirect'] : BX_DOL_URL_STUDIO;
- if(!empty($aParams['eval']))
- $aResult['eval'] = $aParams['eval'];
- $sResult = "window.parent.processJsonData(" . json_encode($aResult) . ");";
- if(isset($aParams['on_page_load']) && $aParams['on_page_load'] === true)
- $sResult = "$(document).ready(function() {" . $sResult . "});";
- return BxDolStudioTemplate::getInstance()->_wrapInTagJsCode($sResult);
- }
- }
- /** @} */
|