Пример #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);
     }
 }
Пример #2
0
 private function getTables()
 {
     if (!isset($this->tables)) {
         $this->tables = array();
         preg_match_all('/table\\s+(\\w+)\\s*\\((.+)\\)/sU', $this->raw_plan, $matches);
         foreach ($matches[1] as $i => $table) {
             $fields = trim($matches[2][$i]);
             $fields = explode("\n", $fields);
             $extool_fields = new \Extool\Representation\Fields();
             foreach ($fields as $field) {
                 $title = $this->makeFieldTitle($field);
                 $type = $this->getFieldType($field);
                 if ($type == 'keyint') {
                     $extool_fields->addField($title, 'integer');
                     $extool_fields->setKey($title);
                 } else {
                     $extool_fields->addField($title, $type);
                 }
             }
             $table = new \Extool\Representation\Table($table);
             $table->setFields($extool_fields);
             $this->tables[$table->name] = $table;
         }
     }
     return $this->tables;
 }
Пример #3
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);
 }