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; }