public function process() { if (!parent::process()) { return false; } $eventResult = $this->events->runEvent('articleReplaceEditorPlugin'); if (is_a($eventResult, '\\fpcm\\model\\abstracts\\articleEditor')) { $this->editorPlugin = $eventResult; } elseif ($this->config->system_editor) { $this->editorPlugin = new \fpcm\model\editor\htmlEditor(); } else { $this->editorPlugin = new \fpcm\model\editor\tinymceEditor(); } $this->view->setViewJsFiles($this->editorPlugin->getJsFiles()); $this->view->setViewCssFiles($this->editorPlugin->getCssFiles()); $viewVars = $this->editorPlugin->getViewVars(); foreach ($viewVars as $key => $value) { $this->view->assign($key, $value); } $changeAuthor = $this->permissions->check(array('article' => 'authors')); $this->view->assign('changeAuthor', $changeAuthor); if ($changeAuthor) { $userlist = new \fpcm\model\users\userList(); $changeuserList = array($this->lang->translate('EDITOR_CHANGEAUTHOR') => '') + $userlist->getUsersNameList(); $this->view->assign('changeuserList', $changeuserList); } $this->view->assign('editorFile', $this->editorPlugin->getEditorTemplate()); $this->view->assign('article', $this->article); $this->view->assign('categories', $this->categoryList->getCategoriesCurrentUser()); $this->view->assign('commentEnabledGlobal', $this->config->system_comments_enabled); $this->view->assign('showArchiveStatus', true); $this->view->assign('showDraftStatus', true); $this->view->assign('isRevision', false); $this->view->assign('timesMode', false); $this->view->assign('userfields', $this->getUserFields()); $twitter = new \fpcm\model\system\twitter(); $this->view->assign('showTwitter', $twitter->checkRequirements()); $this->jsVars = $this->editorPlugin->getJsVars(); $this->jsVars += array('fpcmFileManagerUrl' => \fpcm\classes\baseconfig::$rootPath . 'index.php?module=files/list&mode=', 'fpcmFileManagerUrlMode' => 2); $jsLangVars = array('fileManagerHeadline' => $this->lang->translate('HL_FILES_MNG')); $this->view->addJsLangVars(array_merge($jsLangVars, $this->editorPlugin->getJsLangVars())); $this->view->addJsVars($this->jsVars); return true; }
/** * Controller ausführen * @return boolean */ public function process() { parent::process(); if ($this->cache->isExpired() || $this->session->exists()) { $this->users = array_flip($this->userList->getUsersNameList()); $this->usersEmails = array_flip($this->userList->getUsersEmailList()); $this->categories = $this->categoryList->getCategoriesAll(); $this->commentCounts = $this->config->system_comments_enabled ? $this->commentList->countComments(array(), 0, 1) : array(); } }
/** * Initialisiert Suchformular-Daten * @param array $users */ private function initSearchForm($users) { $users = array($this->lang->translate('ARTICLE_SEARCH_USER') => -1) + $users; $this->view->assign('searchUsers', $users); $categories = array($this->lang->translate('ARTICLE_SEARCH_CATEGORY') => -1) + $this->categoryList->getCategoriesNameListCurrent(); $this->view->assign('searchCategories', $categories); $this->view->assign('searchTypes', array($this->lang->translate('ARTICLE_SEARCH_TYPE_ALL') => -1, $this->lang->translate('ARTICLE_SEARCH_TYPE_TITLE') => 0, $this->lang->translate('ARTICLE_SEARCH_TYPE_TEXT') => 1)); $this->view->assign('searchPinned', array($this->lang->translate('ARTICLE_SEARCH_PINNED') => -1, $this->lang->translate('GLOBAL_YES') => 1, $this->lang->translate('GLOBAL_NO') => 0)); $this->view->assign('searchPostponed', array($this->lang->translate('ARTICLE_SEARCH_POSTPONED') => -1, $this->lang->translate('GLOBAL_YES') => 1, $this->lang->translate('GLOBAL_NO') => 0)); $this->view->assign('searchComments', array($this->lang->translate('ARTICLE_SEARCH_COMMENTS') => -1, $this->lang->translate('GLOBAL_YES') => 1, $this->lang->translate('GLOBAL_NO') => 0)); $this->view->assign('searchApproval', array($this->lang->translate('ARTICLE_SEARCH_APPROVAL') => -1, $this->lang->translate('GLOBAL_YES') => 1, $this->lang->translate('GLOBAL_NO') => 0)); $this->view->assign('searchCombination', array($this->lang->translate('ARTICLE_SEARCH_LOGICAND') => 0, $this->lang->translate('ARTICLE_SEARCH_LOGICOR') => 1)); $this->view->addJsLangVars(array('searchWaitMsg' => $this->lang->translate('SEARCH_WAITMSG'), 'searchHeadline' => $this->lang->translate('ARTICLES_SEARCH'), 'searchStart' => $this->lang->translate('ARTICLE_SEARCH_START'))); $this->view->addJsVars(array('fpcmArticlesLastSearch' => 0)); }
/** * Artikel parsen * @return string */ protected function assignArticleData() { $categoryTexts = array(); $categoryIcons = array(); $categories = $this->categoryList->getCategoriesAll(); foreach ($this->article->getCategories() as $categoryId) { $category = isset($categories[$categoryId]) ? $categories[$categoryId] : false; if (!$category) { continue; } $categoryTexts[] = '<span class="fpcm-pub-category-text">' . $category->getName() . '</span>'; if (!$category->getIconPath()) { continue; } $categoryIcons[] = '<img src="' . $category->getIconPath() . '" alt="' . $category->getName() . '" title="' . $category->getName() . '" class="fpcm-pub-category-icon">'; } $shareButtonParser = new \fpcm\model\pubtemplates\sharebuttons($this->article->getArticleLink(), $this->article->getTitle()); $users = $this->userList->getUsersByIds(array($this->article->getCreateuser(), $this->article->getChangeuser())); $commentCounts = $this->commentList->countComments(array($this->article->getId()), 0, 1, 0); $commentCount = $this->config->system_comments_enabled && $this->article->getComments() ? isset($commentCounts[$this->article->getId()]) ? (int) $commentCounts[$this->article->getId()] : 0 : ''; $this->articleTemplate->setCommentsEnabled($this->config->system_comments_enabled && $this->article->getComments()); if (isset($users[$this->article->getCreateuser()])) { $emailAddress = '<a href="mailto:' . $users[$this->article->getCreateuser()]->getEmail() . '">' . $users[$this->article->getCreateuser()]->getDisplayname() . '</a>'; } else { $emailAddress = ''; } $replacements = array('{{headline}}' => $this->article->getTitle(), '{{text}}' => $this->article->getContent(), '{{author}}' => isset($users[$this->article->getCreateuser()]) ? $users[$this->article->getCreateuser()]->getDisplayname() : $this->lang->translate('GLOBAL_NOTFOUND'), '{{authorEmail}}' => $emailAddress, '{{date}}' => date($this->config->system_dtmask, $this->article->getCreatetime()), '{{changeDate}}' => date($this->config->system_dtmask, $this->article->getChangetime()), '{{changeUser}}' => isset($users[$this->article->getChangeuser()]) ? $users[$this->article->getChangeuser()]->getDisplayname() : $this->lang->translate('GLOBAL_NOTFOUND'), '{{statusPinned}}' => $this->article->getPinned() ? $this->lang->translate('PUBLIC_ARTICLE_PINNED') : '', '{{shareButtons}}' => $shareButtonParser->parse(), '{{categoryIcons}}' => implode(PHP_EOL, $categoryIcons), '{{categoryTexts}}' => implode(PHP_EOL, $categoryTexts), '{{commentCount}}' => $commentCount, '{{permaLink}}:{{/permaLink}}' => $this->article->getArticleLink(), '{{commentLink}}:{{/commentLink}}' => $this->article->getArticleLink() . '#comments', '<readmore>:</readmore>' => $this->article->getMd5path(), '{{articleImage}}' => $this->article->getArticleImage(), '{{sources}}' => $this->article->getSources()); $this->articleTemplate->setReplacementTags($replacements); $parsed = $this->articleTemplate->parse(); if ($this->session->exists()) { $html = array(); $html[] = '<div class="fpcm-pub-articletoolbar-article fpcm-pub-articletoolbar-article' . $this->articleId . '">'; $html[] = '<a href="' . $this->article->getEditLink() . '">' . $this->lang->translate('HL_ARTICLE_EDIT') . '</a>'; $html[] = '</div>'; $parsed = implode(PHP_EOL, $html) . $parsed; } return $parsed; }