Esempio n. 1
0
 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;
 }
Esempio n. 2
0
 /**
  * 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();
     }
 }
Esempio n. 3
0
 /**
  * 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));
 }
Esempio n. 4
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;
 }