setTitle(Help::langAdmin('Help / View Question')); $this->setKey('help.question.view'); $this->withSeoSettings('view', 'help'); $this->setTemplate('view', 'help'); } public function handle($keyword, $id) { $this->questionId = $id; } public function data() { if (! $this->questionId) { return $this->errors->error404(); } $data = Help::model()->questionView($this->questionId); if (empty($data)) { return $this->errors->error404(); } $data = array_merge(parent::data(), $data); # question title => h1 $data['titleh1'] = $data['title']; if (! empty($data['questions_other'])) { foreach ($data['questions_other'] as &$question) { $question['link'] = Url::dynamic($question['link']); } unset($question); } $this->breadcrumbs->fill($data['crumbs'], function ($crumb) { return [ 'title' => $crumb['title'], 'link' => Help::url('cat', ['keyword' => $crumb['keyword']]), ]; }); $data['content'] = Help::initPublicator() ->view($data['content'], $this->questionId, 'view.content', Help::i()->module_dir_tpl); $this->view->setPageData([ 'help_view_id' => $this->questionId, ]); return $data; } public function seo() { $this->request->urlCorrection($this->data['link']); $this->seo->canonicalUrl($this->data['link']); $metaCategories = []; foreach ($this->data['crumbs'] as $crumb) { $metaCategories[] = $crumb['title']; } $this->seo->with([ 'title' => $this->data['title'], 'textshort' => tpl::truncate(strip_tags($this->data['textshort']), 150), 'category' => (!empty($metaCategories) ? end($metaCategories) : ''), 'categories' => (!empty($metaCategories) ? join(', ', $metaCategories) : ''), 'categories.reverse' => (!empty($metaCategories) ? join(', ', array_reverse($metaCategories, true)) : ''), ]); $this->seoApply(); } public function seoSettings() { $this->seo ->placeholders([ 'title' => Help::langAdmin('Question Title'), 'textshort' => Help::langAdmin('Short description (up to 150 characters)'), 'category' => Help::langAdmin('Question category (current)'), 'categories' => Help::langAdmin('Title of all categories'), 'categories.reverse' => Help::langAdmin('Title of all categories
(reverse order)'), ]) ->inheritance(); } }