Exemplo n.º 1
0
 /**
  * @see \fpcm\controller\abstracts\controller::process()
  * @return mixed
  */
 public function process()
 {
     if (!parent::process()) {
         return false;
     }
     $this->view->assign('editorAction', 'articles/edit&articleid=' . $this->article->getId());
     $this->view->assign('editorMode', 1);
     $this->view->assign('showRevisions', true);
     $this->view->assign('postponedTimer', $this->article->getCreatetime());
     $this->view->assign('users', $this->userList->getUsersByIds(array($this->article->getCreateuser(), $this->article->getChangeuser())));
     $this->view->assign('commentCount', array_sum($this->commentList->countComments(array($this->article->getId()))));
     $this->view->assign('comments', $this->commentList->getCommentsByCondition($this->article->getId(), -1, -1, -1));
     $this->view->assign('commentsMode', 2);
     $revisions = $this->article->getRevisions();
     $this->view->assign('revisions', $revisions);
     $this->view->assign('revisionCount', count($revisions));
     $this->view->assign('revisionPermission', $this->permissions->check(array('article' => 'revisions')));
     $this->view->addJsVars(array('fpcmEditorCommentLayerSave' => $this->lang->translate('GLOBAL_SAVE'), 'fpcmCanConnect' => \fpcm\classes\baseconfig::canConnect() ? 1 : 0, 'fpcmNavigationActiveItemId' => 'itemnav-id-editnews'));
     $this->view->addJsLangVars(array('editorCommentLayerHeader' => $this->lang->translate('COMMENTS_EDIT')));
     if (!$this->permissions->check(array('article' => 'approve')) && $this->article->getApproval()) {
         $this->view->addMessage('Um den Artikel freizugeben, speichere ihn einfach erneut ab.');
     }
     $this->initPermissions();
     $this->view->assign('isRevision', false);
     if ($this->showRevision) {
         $this->view->assign('currentArticle', $this->currentArticle);
         $this->view->assign('editorFile', \fpcm\classes\baseconfig::$viewsDir . 'articles/editors/revisiondiff.php');
         $this->view->assign('isRevision', true);
         $this->view->assign('showRevisions', false);
         $this->view->assign('showComments', false);
         $this->view->assign('editorAction', 'articles/edit&articleid=' . $this->article->getId() . '&rev=' . $this->getRequestVar('rev'));
     }
     $this->view->render();
 }
Exemplo n.º 2
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;
 }