/** * 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]); }
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]); }