public function parameterListAction()
 {
     $this->init();
     //Load the parameters
     $paramsRaw = $this->config('admin.parameters');
     //Get theme information
     $themeDir = dir("themes");
     while (false != ($entry = $themeDir->read())) {
         if (in_array($entry, array(".", ".."))) {
             continue;
         }
         $paramsRaw['core-theme']['options'][] = $entry;
     }
     $params = array();
     foreach ($paramsRaw as $id => $param) {
         $group = $param['group'];
         $subGroup = isset($param['subGroup']) ? $param['subGroup'] : 'General';
         if (!isset($params[$group])) {
             $params[$group] = array();
         }
         if (!isset($params[$group][$subGroup])) {
             $params[$group][$subGroup] = array();
         }
         $params[$group][$subGroup][$id] = $param;
     }
     //Sort groups
     ksort($params, SORT_STRING);
     foreach ($params as &$group) {
         ksort($group, SORT_STRING);
     }
     if (count($_POST)) {
         foreach ($_POST['params'] as $group => $postParams) {
             foreach ($postParams as $identifier => $value) {
                 $param = new \ATPCore\Model\Parameter();
                 $param->loadByIdentifier($identifier);
                 $param->identifier = $identifier;
                 $param->value = $value;
                 $param->save();
             }
         }
         $this->flash->addSuccessMessage("Module Parameters saved.");
         $this->redirect()->toUrl($this->getRequest()->getUri());
     }
     //Load the objects
     $modelClass = $this->modelData['class'];
     $obj = new $modelClass();
     $objectsRaw = $obj->loadMultiple(null, array(), array(), $this->modelData['defaultOrder']);
     $objects = array();
     foreach ($objectsRaw as $object) {
         $objects[$object->identifier] = $object;
     }
     //Send data to the view
     $this->view->model = $this->modelType;
     $this->view->modelData = $this->modelData;
     $this->view->params = $params;
     $this->view->objects = $objects;
     return $this->view;
 }
 protected function siteParam($name)
 {
     $param = new \ATPCore\Model\Parameter();
     $param->loadByIdentifier($name);
     //Param does not exist, set default
     if (!$param->id) {
         $param->identifier = $name;
         $param->value = $this->config("admin.parameters.{$name}.default");
         $param->save();
     }
     return $param->value;
 }
Esempio n. 3
0
 protected function _loadObject($id)
 {
     try {
         $param = new \ATPCore\Model\Parameter();
         if (!$param->loadByIdentifier($id)) {
             $param->identifier = $id;
             $param->value = "{{$id} goes here}";
             $param->save();
         }
         return $param;
     } catch (\Exception $e) {
         $obj = new \stdClass();
         $obj->value = null;
         return $obj;
     }
 }
Esempio n. 4
0
 public function install($options = array())
 {
     $config = $this->getServiceManager()->get('Config');
     //Setup database parameters
     $configFile = new \ATP\Config\File("config/autoload/global.php.blank");
     $configFile->apply($options);
     $configFile->save("config/autoload/global.php");
     //Setup a temp adapter for the ActiveRecord classes to use while installing
     $dbConfig = $config['db'];
     unset($dbConfig['database']);
     $dbConfig['host'] = $options['db_host'];
     $dbConfig['username'] = $options['db_user'];
     $dbConfig['password'] = $options['db_pass'];
     $adapter = new \Zend\Db\Adapter\Adapter($dbConfig);
     \ATP\ActiveRecord::setAdapter($adapter);
     //Create the database schema
     $adapter->query("CREATE DATABASE {$options['db_schema']}", \Zend\Db\Adapter\Adapter::QUERY_MODE_EXECUTE);
     //Add database to adapter
     $dbConfig['database'] = $options['db_schema'];
     $adapter = new \Zend\Db\Adapter\Adapter($dbConfig);
     \ATP\ActiveRecord::setAdapter($adapter);
     //Install database tables
     $this->installDatabaseEntries();
     //Reinitialize modules so its config is reloaded
     \ATPCore\Model\Module::init();
     //Set default parameters
     \ATPCore\Model\Parameter::init();
     foreach ($config['admin']['parameters'] as $id => $paramData) {
         $param = new \ATPCore\Model\Parameter();
         $param->identifier = $id;
         $param->value = $paramData['default'];
         $param->save();
     }
 }