Beispiel #1
0
 /**
  * Forums list
  *
  * @param Request $request
  * @param null $matches
  * @return mixed
  */
 public function forum(Request $request, $matches = null)
 {
     $forums_list = \Forum::find('all', ['conditions' => ['forum_id < 1']]);
     // Make array and get child subjects
     $forums_list = \Forum::as_array($forums_list);
     $forums_list = array_map(function ($item) {
         $item['subjects'] = \Forum::as_array(\Forum::find('all', ['conditions' => ['forum_id = ?', $item['id']]]));
         return $item;
     }, $forums_list);
     return $this->view->render('forum/forum.twig', ['title' => $this->lang->translate('forum.title'), 'forums_list' => $forums_list]);
 }
Beispiel #2
0
 public function edit_topic(Request $request, $matches)
 {
     $title = $this->lang->translate('forum.create');
     // Get page for updating
     $id = intval($matches->get('id', $request->get('id')));
     // Parent topic
     $topics = \Forum::as_array(\Forum::find('all', ['conditions' => ['forum_id = 0 AND id <> ?', $id]]));
     if ($id > 0) {
         $forum = \Forum::find_by_id($id);
         $title = $this->lang->translate('forum.editing', $forum->title);
     } else {
         $forum = ['title' => $this->lang->translate('page.name'), 'forum_id' => null];
     }
     // Create or update page
     if ($request->isMethod('post')) {
         if ($forum instanceof \Forum) {
             $forum->title = $request->get('title');
             $forum->forum_id = $request->get('forum');
             $forum->author_id = $this->user->id;
         } else {
             $forum = new \Forum(['title' => $request->get('title'), 'forum_id' => $request->get('forum'), 'author_id' => $this->user->id]);
         }
         // Updating instance
         $forum->save();
         $forum = $forum->to_array();
         return static::json_response(['success' => true, 'message' => $this->lang->translate('form.saved')]);
     }
     return $this->view->render('forum/create.twig', ['forum' => $forum, 'title' => $title, 'topics' => $topics]);
 }