Example #1
0
 public function add(Request $req, Response $res)
 {
     $filters = $this->chalk->module('core')->contentList('core_node');
     $info = isset($req->type) ? Chalk::info($req->type) : $filters->first();
     $req->queryParam('type', $info->name);
     $class = "\\{$info->module->class}\\Model\\{$info->local->class}\\Index";
     if (!class_exists($class)) {
         $class = "\\Chalk\\Core\\Model\\Content\\Index";
     }
     $index = new $class();
     $wrap = $this->em->wrap($index);
     $wrap->graphFromArray($req->queryParams());
     $req->view->index = $wrap;
     $req->view->filters = $filters;
     if (!$req->isPost() && !$index->contentNew) {
         return;
     }
     $wrap->graphFromArray($req->bodyParams());
     if (isset($req->node)) {
         $parent = $this->em('Chalk\\Core\\Structure\\Node')->id($req->node);
     } else {
         $parent = $this->em('Chalk\\Core\\Structure')->id($req->structure)->root;
     }
     foreach ($index->contents as $content) {
         $node = new \Chalk\Core\Structure\Node();
         $node->parent = $parent;
         $node->content = $content;
         $this->em->persist($node);
     }
     $this->em->flush();
     $this->notify("Content was added successfully", 'positive');
     if (isset($req->node)) {
         $req->data->redirect = $this->url(['action' => 'edit'])->toString();
     } else {
         $req->data->redirect = $this->url(['action' => 'index', 'node' => null], 'core_structure')->toString();
     }
 }
Example #2
0
 public function select(Request $req, Response $res)
 {
     $filters = $this->chalk->module('core')->contentList($req->filters);
     $info = isset($req->type) ? Chalk::info($req->type) : $filters->first();
     $req->queryParam('type', $info->name);
     $class = "\\{$info->module->class}\\Model\\{$info->local->class}\\Index";
     if (!class_exists($class)) {
         $class = "\\Chalk\\Core\\Model\\Content\\Index";
     }
     $index = new $class();
     $wrap = $this->em->wrap($index);
     $wrap->graphFromArray($req->queryParams());
     $req->view->index = $wrap;
     $req->view->filters = $filters;
     if (!$req->isPost() && !$index->contentNew) {
         return;
     }
     $wrap->graphFromArray($req->bodyParams());
     $contents = [];
     foreach ($index->contents as $content) {
         $contents[] = ['id' => $content->id, 'name' => $content->name, 'card' => $this->view->render('content/card', ['content' => $content], 'core')->toString()];
     }
     $req->data->contents = $contents;
 }