* @package WB */ /** * Load required class */ WBClass::load('WBContent' , 'WBContent_LandingPage' , 'WBContent_TableEditor'); /** * Content component: LandingPage Manager * * @version 0.1.1 * @package WB */ class WBContent_LandingPage_Manager extends WBContent_TableEditor { /** * Parameter List * * @var array */ protected $config = array( 'action' => 'list', 'requiremaster' => 0, 'requiredgroup' => 'contenteditor', 'requiredgroupmanager' => 'contenteditor', 'showsomeoneelses' => 1, 'table' => '', 'tableenv' => '', 'limit' => '20', 'goto' => '0', 'id' => '__new', 'managesortcolumn' => '', 'levels' => 1, 'order' => '', 'addcurrentuser' => 'new', 'searchfields' => array(), 'usefilter' => 0, 'translator' => 'no', 'translatorgroup' => 'nls-translator', 'database' => '__default', 'manadator' => '' ); /** * 2nd constructor * * Reset template folder */ protected function init() { // call parent's init parent::init(); $this->addFiddler4Mandator(); if (empty($this->config['tableenv'])) { $this->config['tableenv'] = WBContent_LandingPage::TABLE_LANDINGPAGE; } $this->config['tmplDir'] = 'LandingPage/Manager'; $this->config['usefilter'] = 1; $this->config['addcurrentuser'] = 'always'; $this->config['managesortcolumn'] = ''; switch ($this->config['tableenv']) { case WBContent_LandingPage::TABLE_ARTICLE: $this->config['table'] = WBContent_LandingPage::TABLE_ARTICLE; $this->config['searchfields'] = array('title', 'brief', 'blurb'); $this->config['managesortcolumn'] = 'orderpos'; $this->config['addcurrentuser'] = 'new'; break; default: case WBContent_LandingPage::TABLE_LANDINGPAGE: $this->config['table'] = WBContent_LandingPage::TABLE_LANDINGPAGE; $this->config['searchfields'] = array('urlpath', 'title', 'brief', 'blurb'); break; } } /** * Run Component * * Display "normal" WBContent_TableEditor, call sub methods * * @return array */ public function run() { $man = $this->mandator->get(); if ($this->mandator->getId() != $this->mandator->getMasterId() && 1 > $man['homepage']) { $this->loadTemplates('disabled'); return $this->config; } return parent::run(); } /** * location of form config * * Return sub directory where form element definitions are located * * @return string folder */ protected function getFormConfigDir() { return 'landingpage/manager/' . $this->config['tableenv']; } /** * Fetch list of form elements * * The standard behaviour loads form defintions from XML config * file located in form config dir {@link getFormConfigDir() } * Overwrite this to implement your own behaviour. * * @param string name of the xml- and template-filename * @return array $elements */ protected function getFormElementList($name) { $list = parent::getFormElementList($name); if (WBContent_LandingPage::TABLE_LANDINGPAGE != $this->config['tableenv']) { return $list; } if (!isset($list['urlpath'])) { return $list; } if (!isset($list['urlpath']['rule']) || !is_array($list['urlpath']['rule'])) { $list['urlpath']['rule'] = array(); } if ($this->mandator->getMasterId() == $this->mandator->getId()) { $rule = array( 'name' => 'ConfigExists', 'params' => array( 'exists' => 0, 'prefix' => 'site/page' ) ); } else { $rule = array( 'name' => 'InArray', 'params' => array( 'exists' => 0, 'list' => array( 'contact', 'legal/cancel', 'legal/cookies', 'legal/imprint', 'legal/privacy', 'legal/terms' ) ) ); } $list['urlpath']['rule'][] = $rule; return $list; } /** * Fetch List of Form Rules * * * @see getFormElementList() * @param string name of the xml filename * @return array $rules */ /* protected function getFormRuleList($name) { $list = parent::getFormRuleList($name); return $list; } */ }