private static function parseConfig($type, $config, View $view) { $parsedConfig = array(); foreach ($config as $c) { $elConf = array(); $elValid = TRUE; if (!isset($c['type'])) { throw new \Exception('toolbox config type (' . $type . ') is not set.'); } $elConf['type'] = $c['type']; $elConf['name'] = $c['name']; $elConf['title'] = $view->translateAdmin($c['title']); $elConf['reload'] = isset($c['reload']) ? $c['reload'] : TRUE; $elConf['default'] = isset($c['default']) ? $c['default'] : NULL; if (isset($c['conditions'])) { $elConf['conditions'] = $c['conditions']; } switch ($c['type']) { case 'select': if (!isset($c['values'])) { throw new \Exception('toolbox config value (' . $type . ') is not set.'); } $store = array(); foreach ($c['values'] as $k => $v) { $store[] = array($k, $view->translateAdmin($v)); } $elConf['store'] = $store; $value = $view->select($elConf['name'])->getData(); $elConf['__selectedValue'] = !empty($value) ? $value : $elConf['default']; break; case 'additionalClasses': if (empty($c['values'])) { $elValid = FALSE; } $store = array(); $store[] = array('default', $view->translateAdmin('Default')); foreach ($c['values'] as $k => $v) { $store[] = array($k, $v); } $elConf['type'] = 'select'; $elConf['name'] = $type . 'AdditionalClasses'; $elConf['title'] = $view->translateAdmin('Additional'); $elConf['reload'] = TRUE; $elConf['store'] = $store; if (is_null($elConf['default'])) { $elConf['default'] = 'default'; } $value = $view->select($type . 'AdditionalClasses')->getData(); $elConf['__selectedValue'] = !empty($value) ? $value : $elConf['default']; break; case 'checkbox': $value = $view->checkbox($elConf['name'])->isChecked(); $elConf['__selectedValue'] = !empty($value) ? $value : $elConf['default']; break; case 'input': $value = $view->input($elConf['name'])->getData(); $elConf['__selectedValue'] = !empty($value) ? $value : $elConf['default']; $elConf['width'] = isset($c['width']) ? $c['width'] : 150; break; default: throw new \Exception($c['type'] . ' is not a valid toolbox config element'); } if ($elValid) { $parsedConfig[] = $elConf; } } $parsedConfig = self::checkCondition($parsedConfig); return $parsedConfig; }