Example #1
0
 protected function getActions()
 {
     $actions = array();
     if ($this->subgridConfig->allowCreate()) {
         $actions['add'] = array('label' => __('Add', 'Ip-admin', false), 'class' => 'ipsCreate');
     }
     if ($this->subgridConfig->allowSearch()) {
         $actions['search'] = array('label' => __('Search', 'Ip-admin', false), 'class' => 'ipsSearch');
     }
     //select language in multilingual grid
     $values = array();
     $languages = ipContent()->getLanguages();
     foreach ($languages as $language) {
         $values[] = array('label' => $language->getAbbreviation(), 'value' => $language->getCode());
     }
     $db = new Db($this->subgridConfig, $this->statusVariables);
     if ($this->subgridConfig->isMultilingual()) {
         $actions['language'] = array('type' => 'Select', 'label' => ipContent()->getLanguageByCode($db->getDefaultLanguageCode())->getAbbreviation(), 'values' => $values, 'itemClass' => 'ipsGridLanguageSetting');
     }
     $actions = array_merge($actions, $this->subgridConfig->actions());
     $actionsFilter = $this->subgridConfig->actionsFilter();
     if ($actionsFilter) {
         $actions = $actionsFilter($actions);
     }
     //make sure the configuration is correct
     foreach ($actions as &$action) {
         if (empty($action['type'])) {
             $action['type'] = 'Button';
         }
         if (!isset($action['label'])) {
             $action['label'] = '';
         }
         if (!isset($action['values']) || !is_array($action['values'])) {
             $action['values'] = array();
         }
         foreach ($action['values'] as &$value) {
             if (!is_array($value)) {
                 $tmpVal = $value;
                 $value = array();
                 $value['value'] = $tmpVal;
             }
             if (!isset($value['value'])) {
                 $value['value'] = '';
             }
             if (!isset($value['label'])) {
                 $value['label'] = $value['value'];
             }
         }
         if ($action['type'] == 'Html' && !isset($action['html'])) {
             $action['html'] = '';
         }
         if (!isset($action['class'])) {
             $action['class'] = '';
         }
         if ($action['type'] == 'Select' && !isset($value['itemClass'])) {
             $value['itemClass'] = '';
         }
     }
     return $actions;
 }