Example #1
0
 public function decorateRepresentation(\Extool\Representation\Representation &$rep)
 {
     $this->parse();
     $pieces = explode('/', $this->resource);
     $rep->setName(ucfirst(array_pop($pieces)));
     foreach ($this->table_fields as $table_name => $fields) {
         $table = new \Extool\Representation\Table($table_name);
         $table->setFields($fields);
         $rep->addTable($table);
         $model = new \Extool\Representation\Model($table_name);
         $model->setCriteria($fields);
         $model->addTable($table);
         // Generate four views for each table
         $view = new \Extool\Representation\View($table_name);
         $view->setFields($fields);
         $rep->addPublicView($view);
         $rep->addPublicModel($model);
         $view->setAccess('admin');
         $rep->addAdminView($view);
         $rep->addAdminModel($model);
         // Create new model for the list views
         $model = new \Extool\Representation\Model($table_name . ' List');
         $model->setCriteria($fields);
         $model->addTable($table);
         $view = new \Extool\Representation\View($table_name . ' List');
         $view->setType('list');
         $view->setFields($fields);
         $rep->addPublicView($view);
         $rep->addPublicModel($model);
         $view->setAccess('admin');
         $rep->addAdminView($view);
         $rep->addAdminModel($model);
     }
 }
Example #2
0
 public function decorateRepresentation(\Extool\Representation\Representation &$rep)
 {
     $this->parse();
     $pieces = explode('/', $this->resource);
     $resource_name = ucfirst(preg_replace('/\\..*/', '', array_pop($pieces)));
     $rep->setName($resource_name);
     $fields = $this->determineFields();
     $data = new \Extool\Representation\Data($fields);
     $data->setData($this->keyed_data);
     $rep->addData($data, $resource_name);
     $table = new \Extool\Representation\Table($resource_name);
     $table->setFields($fields);
     $rep->addTable($table);
     $model = new \Extool\Representation\Model($resource_name);
     $model->setCriteria($fields);
     $model->addTable($table);
     $view = new \Extool\Representation\View($resource_name);
     $view->setFields($fields);
     $rep->addPublicView($view);
     $rep->addPublicModel($model);
     $view->setAccess('admin');
     $rep->addAdminView($view);
     $rep->addAdminModel($model);
     // Create new model for the list views
     $model = new \Extool\Representation\Model($resource_name . ' List');
     $model->setCriteria($fields);
     $model->addTable($table);
     $view = new \Extool\Representation\View($resource_name . ' List');
     $view->setType('list');
     $view->setFields($fields);
     $rep->addPublicView($view);
     $rep->addPublicModel($model);
     $view->setAccess('admin');
     $rep->addAdminView($view);
     $rep->addAdminModel($model);
 }
Example #3
0
 private function makeModel($view_tables, $view, $prefix = '')
 {
     $tables = $this->getTables();
     $model = new \Extool\Representation\Model($view);
     // An extremely ugly way of creating filtered fields for models
     foreach ($view_tables as $table_name => $table) {
         if ($table[0] = '*') {
             $model->addTable($tables[$table_name]);
         } else {
             $fields = new \Extool\Representation\Fields();
             foreach ($table as $field) {
                 $fields->addField($field, $tables[$table_name]->types[$field]);
             }
             $model_table = new \Extool\Representation\Table($table_name);
             $model->addTable($model_table);
         }
     }
     if ($prefix == 'admin') {
         $this->adminModels[$view] = $model;
     } else {
         $this->models[$view] = $model;
     }
     return $model;
 }