Example #1
0
 /**
  * Adds protected node types.
  */
 public function onEnable($event, $module)
 {
     foreach ((array) $module->get('nodes') as $type => $route) {
         if (isset($route['protected']) and $route['protected'] and !Node::where(['type = ?'], [$type])->first()) {
             Node::create(['title' => $route['label'], 'slug' => App::filter($route['label'], 'slugify'), 'type' => $type, 'status' => 1, 'link' => $route['name']])->save();
         }
     }
 }
Example #2
0
 /**
  * Register a node type.
  *
  * @param string $type
  * @param array  $route
  */
 public function registerType($type, array $route)
 {
     if (isset($route['protected']) and $route['protected'] and !array_filter(Node::findAll(true), function ($node) use($type) {
         return $type === $node->type;
     })) {
         Node::create(['title' => $route['label'], 'slug' => App::filter($route['label'], 'slugify'), 'type' => $type, 'status' => 1, 'link' => $route['name']])->save();
     }
     $route['id'] = $type;
     $this->types[$type] = $route;
 }
 /**
  * @Route("/", methods="POST")
  * @Route("/{id}", methods="POST", requirements={"id"="\d+"})
  * @Request({"node": "array", "id": "int"}, csrf=true)
  */
 public function saveAction($data, $id = 0)
 {
     if (!($node = Node::find($id))) {
         $node = Node::create();
         unset($data['id']);
     }
     if (!($data['slug'] = App::filter($data['slug'] ?: $data['title'], 'slugify'))) {
         App::abort(400, __('Invalid slug.'));
     }
     $node->save($data);
     return ['message' => 'success', 'node' => $node];
 }
 /**
  * @param FieldBase    $field
  * @param FieldValueBase $fieldValue
  * @return array
  */
 public function formatValue(FieldBase $field, FieldValueBase $fieldValue)
 {
     $valuedata = $fieldValue->getValuedata();
     if (count($valuedata)) {
         return array_map(function ($file) {
             if (!isset($file['url'])) {
                 return '';
             }
             return sprintf('<a href="%s" download>%s</a> <small>(%s)</small>', App::url($file['url'], [], UrlGenerator::ABSOLUTE_URL), $file['name'], App::filter($file['size'], 'filesize'));
         }, $valuedata);
     }
     return ['-'];
 }
 /**
  * @Route("/", methods="POST")
  * @Route("/{id}", methods="POST", requirements={"id"="\d+"})
  * @Request({"project": "array", "id": "int"}, csrf=true)
  */
 public function saveAction($data, $id = 0)
 {
     if (!$id || !($project = Project::find($id))) {
         if ($id) {
             App::abort(404, __('Post not found.'));
         }
         $project = Project::create();
     }
     if (!($data['slug'] = App::filter($data['slug'] ?: $data['title'], 'slugify'))) {
         App::abort(400, __('Invalid slug.'));
     }
     $project->save($data);
     return ['message' => 'success', 'project' => $project];
 }
 /**
  * @Route("/", methods="POST")
  * @Route("/{id}", methods="POST", requirements={"id"="\d+"})
  * @Request({"category": "array", "id": "int"}, csrf=true)
  */
 public function saveAction($data, $id = 0)
 {
     if (!($category = Category::where(compact('id'))->related('files')->first())) {
         $category = Category::create();
         unset($data['id']);
     }
     if (!($data['slug'] = App::filter($data['slug'] ?: $data['title'], 'slugify'))) {
         App::abort(400, __('Invalid slug.'));
     }
     $category->updateOrdering($data);
     //unset array typed files
     unset($data['files']);
     $category->save($data);
     return ['message' => 'success', 'category' => $category];
 }
 /**
  * @Route("/", methods="POST")
  * @Route("/{id}", methods="POST", requirements={"id"="\d+"})
  * @Request({"field": "array", "id": "int"}, csrf=true)
  */
 public function saveAction($data, $id = 0)
 {
     if (!($field = Field::find($id))) {
         $field = Field::create(['data' => ['value' => [], 'data' => [], 'classSfx' => '', 'help_text' => '', 'help_show' => '']]);
         unset($data['id']);
     }
     if (!($data['slug'] = App::filter($data['slug'] ?: $data['label'], 'slugify'))) {
         App::abort(400, __('Invalid slug.'));
     }
     try {
         $field->save($data);
     } catch (Exception $e) {
         App::abort(400, $e->getMessage());
     }
     return ['message' => 'success', 'field' => $field];
 }
 /**
  * @Route("/", methods="POST")
  * @Route("/{id}", methods="POST", requirements={"id"="\d+"})
  * @Request({"file": "array", "id": "int"}, csrf=true)
  */
 public function saveAction($data, $id = 0)
 {
     /** @var File $file */
     if (!$id || !($file = File::where(compact('id'))->related('categories')->first())) {
         if ($id) {
             App::abort(404, __('File not found.'));
         }
         $file = File::create();
     }
     if (!($data['slug'] = App::filter($data['slug'] ?: $data['title'], 'slugify'))) {
         App::abort(400, __('Invalid slug.'));
     }
     $file->save($data);
     $file->saveCategories($data['category_ids']);
     return ['message' => 'success', 'file' => $file];
 }
 /**
  * @Route("/", methods="POST")
  * @Route("/{id}", methods="POST", requirements={"id"="\d+"})
  * @Request({"formitem": "array", "id": "int"}, csrf=true)
  */
 public function saveAction($data, $id = 0)
 {
     if (!($form = Form::find($id))) {
         $form = Form::create();
         unset($data['id']);
     }
     if (!($data['slug'] = App::filter($data['slug'] ?: $data['title'], 'slugify'))) {
         App::abort(400, __('Invalid slug.'));
     }
     try {
         $form->save($data);
     } catch (Exception $e) {
         App::abort(400, $e->getMessage());
     }
     return ['message' => 'success', 'formitem' => $form];
 }
Example #10
0
 /**
  * @Route("/", methods="POST")
  * @Request({"menu":"array"}, csrf=true)
  */
 public function saveAction($menu)
 {
     $oldId = isset($menu['id']) ? trim($menu['id']) : null;
     $label = trim($menu['label']);
     if (!($id = App::filter($label, 'slugify'))) {
         App::abort(400, __('Invalid id.'));
     }
     if ($id != $oldId) {
         if ($this->config->has('menus.' . $id)) {
             throw new ConflictException(__('Duplicate Menu Id.'));
         }
         $this->config->remove('menus.' . $oldId);
         Node::where(['menu = :old'], [':old' => $oldId])->update(['menu' => $id]);
     }
     $this->config->merge(['menus' => [$id => compact('id', 'label')]]);
     App::menu()->assign($id, $menu['positions']);
     return ['message' => 'success', 'menu' => $menu];
 }
 /**
  * @Route("/", methods="POST")
  * @Route("/{id}", methods="POST", requirements={"id"="\d+"})
  * @Request({"post": "array", "id": "int"}, csrf=true)
  */
 public function saveAction($data, $id = 0)
 {
     if (!$id || !($post = Post::find($id))) {
         if ($id) {
             App::abort(404, __('Post not found.'));
         }
         $post = Post::create();
     }
     if (!($data['slug'] = App::filter($data['slug'] ?: $data['title'], 'slugify'))) {
         App::abort(400, __('Invalid slug.'));
     }
     // user without universal access is not allowed to assign posts to other users
     if (!App::user()->hasAccess('blog: manage all posts')) {
         $data['user_id'] = App::user()->id;
     }
     // user without universal access can only edit their own posts
     if (!App::user()->hasAccess('blog: manage all posts') && !App::user()->hasAccess('blog: manage own posts') && $post->user_id !== App::user()->id) {
         App::abort(400, __('Access denied.'));
     }
     $post->save($data);
     return ['message' => 'success', 'post' => $post];
 }
Example #12
0
 protected function addCache($user)
 {
     $this->cacheEntries[$user->id] = ['id' => $user->id, 'username' => App::filter($user->username, 'slugify'), 'name' => App::filter($user->name, 'slugify')];
     $this->cacheDirty = true;
 }