/** * * Enter description here ... * @param unknown_type $uiConfig * @return GridConfig */ public function getGridConfig($uiConfig = 'default') { if (!isset($this->_gridconfig[$this->_modelName][$uiConfig])) { $uiconfig = $this->getConfig(); $tmpconfig = @$uiconfig->config->ui->{$uiConfig}; if ($tmpconfig instanceof Zend_Config) { // echo "C1"; $config = $tmpconfig; } else { // echo "C2"; $config = $config->config; } $parentUI = $config->parentui; // print_r($config); // echo $uiConfig; $parentconfig = null; if (trim($parentUI) != '') { $parentconfig = @$uiconfig->config->ui->{$parentUI}; $config = $parentconfig->mergeWith($config); } // $tmpconfig->mergeWith($otherConfig) //= Zend_Config::merge( $parentconfig,$config); // print_r($parentconfig); $gridconfig = new GridConfig(); if (isset($config->grid->config) and is_array($config->grid->config->toArray())) { foreach ($config->grid->config->toArray() as $key => $val) { $gridconfig->{$key} = $val; } } if (isset($config->grid->columns)) { foreach ($config->grid->columns as $name => $field) { $field->id = $name; $gridconfig->addfield($name, $field); } } elseif (isset($config->grid->field)) { foreach ($config->grid->field as $name => $field) { $gridconfig->addfield($name, $field); } // print_r($Gridfields); } if (isset($config->grid->plugins)) { $plugins = $config->grid->plugins->script->toArray(); //print_r($plugins); //echo count($plugins['script']); if (isset($config->grid->plugins->script->name)) { $script = $config->grid->plugins->script; $gridscript = new GridScript(); $gridscript->name = $script->name; if (isset($script->param->name)) { $gridscript->addParam($script->param->name); } else { foreach ($script->param as $param) { $gridscript->addParam($param->name); } } $gridconfig->addscript($gridscript); } else { foreach ($config->grid->plugins->script as $script) { $gridscript = new GridScript(); $gridscript->name = $script->name; // echo $script->name ,"\n"; // echo $script->param->name,"\n"; if (isset($script->param->name)) { $gridscript->addParam($script->param->name); } else { foreach ($script->param as $param) { // echo $param->name,"\n"; $gridscript->addParam($param->name); } } // print_r($gridscript); $gridconfig->addscript($gridscript); } } // print_r($Gridfields); } if (isset($config->grid->actions)) { $actions = $config->grid->actions->toArray(); foreach ($actions as $actionName => $allow) { //die(" $actionName => $allow "); $isallow = $allow == 'disabled' ? 'disabled' : 'enabled'; $gridconfig->addActionIcon($actionName, $isallow); } } $this->_gridconfig[$this->_modelName][$uiConfig] = $gridconfig; } return $this->_gridconfig[$this->_modelName][$uiConfig]; }