public function missingAction($actionID) { $categories = Settings::getCategories(); if (in_array($actionID, $categories)) { $this->showSettings($actionID); } else { throw new CHttpException(404, 'No such category exists for settings!'); } }
public static function getDashboardMenu() { $dashboard = new Dashboard(); $menuItems = $dashboard->getMenuItems(); //for settings foreach (Settings::getCategories() as $settingsCategory) { $menuItems['Settings'][] = array(Awecms::generateFriendlyName($settingsCategory) . ' Settings', array('/admin/settings/' . $settingsCategory)); } //reading the menu items into an array that zii.widgets.jui.CJuiAccordion can take as panels $menuConfig = array(); foreach ($menuItems as $menuName => $menuItem) { $menuConfig[$menuName] = ''; foreach ($menuItem as $menuLink) { $menuConfig[$menuName] .= CHtml::link(AdminModule::t($menuLink[0]), $menuLink[1]) . "<br/>"; } } return $menuConfig; }
public static function getCategoriesAsLinks($action = '') { //url isn't created for $action $settings = array(); foreach (Settings::getCategories() as $settingsCategory) { $item = array(); $item['label'] = Yii::t('app', Awecms::generateFriendlyName($settingsCategory)) . ' ' . Yii::t('app', 'Settings'); if ($action != $settingsCategory) { $item['url'] = '/settings/' . $settingsCategory; if ($action) { $item['url'] = Yii::app()->baseUrl . '/admin' . $item['url']; } } $settings[] = $item; } return $settings; }
<?php $this->breadcrumbs = array(Yii::t('app', 'Settings'), Yii::t('app', 'Add new settings field')); $this->menu = Settings::getCategoriesAsLinks($action); echo '<h1>' . Yii::t('app', 'Add new settings field') . ':</h1>'; echo CHtml::beginForm('', 'post', array('onsubmit' => 'return validateForm(this)', 'class' => 'form')); ?> <div class="settings row"> <?php echo CHtml::label('Category', 'category'); echo CHtml::dropDownList('category', $action, Awecms::generatePairs(array_merge(Settings::getCategories(), array('add_new'))), array('onchange' => 'dropDownChanged(this)')); echo CHtml::textField('category_value', '', array('size' => '30', 'style' => 'display:none')); ?> </div> <div class="settings row"> <?php echo CHtml::label('Key', 'key'); echo CHtml::textField('key', '', array('size' => '50')); ?> </div> <div class="settings row"> <?php echo CHtml::label('Value', 'value'); echo CHtml::textField('value', '', array('size' => '50')); ?> </div> <div class="settings row">