Esempio n. 1
0
 function getHomeTopNews($catId = 0)
 {
     global $_CORELANG, $objDatabase;
     $catId = intval($catId);
     $i = 0;
     $this->_objTemplate->setTemplate($this->_pageContent, true, true);
     if ($this->_objTemplate->blockExists('newsrow')) {
         $this->_objTemplate->setCurrentBlock('newsrow');
     } else {
         return null;
     }
     $newsLimit = intval($this->arrSettings['news_top_limit']);
     if ($newsLimit > 50) {
         //limit to a maximum of 50 news
         $newsLimit = 50;
     }
     if ($newsLimit < 1) {
         //do not get any news if 0 was specified as the limit.
         $objResult = false;
     } else {
         //fetch news
         $objResult = $objDatabase->SelectLimit("\n                SELECT DISTINCT(tblN.id) AS id,\n                       tblN.`date`, \n                       tblN.teaser_image_path,\n                       tblN.teaser_image_thumbnail_path,\n                       tblN.redirect,\n                       tblN.publisher,\n                       tblN.publisher_id,\n                       tblN.author,\n                       tblN.author_id,\n                       tblL.title AS title, \n                       tblL.teaser_text\n                  FROM " . DBPREFIX . "module_news AS tblN\n            INNER JOIN " . DBPREFIX . "module_news_locale AS tblL ON tblL.news_id=tblN.id\n            INNER JOIN " . DBPREFIX . "module_news_rel_categories AS tblC ON tblC.news_id=tblL.news_id\n                  WHERE tblN.status=1" . ($catId > 0 ? " AND tblC.category_id={$catId}" : '') . "\n                   AND tblN.teaser_only='0'\n                   AND tblL.lang_id=" . FRONTEND_LANG_ID . "\n                   AND (startdate<='" . date('Y-m-d H:i:s') . "' OR startdate='0000-00-00 00:00:00')\n                   AND (enddate>='" . date('Y-m-d H:i:s') . "' OR enddate='0000-00-00 00:00:00')" . ($this->arrSettings['news_message_protection'] == '1' && !\Permission::hasAllAccess() ? ($objFWUser = \FWUser::getFWUserObject()) && $objFWUser->objUser->login() ? " AND (frontend_access_id IN (" . implode(',', array_merge(array(0), $objFWUser->objUser->getDynamicPermissionIds())) . ") OR userid=" . $objFWUser->objUser->getId() . ") " : " AND frontend_access_id=0 " : '') . "ORDER BY\n                       (SELECT COUNT(*) FROM " . DBPREFIX . "module_news_stats_view WHERE news_id=tblN.id AND time>'" . date_format(date_sub(date_create('now'), date_interval_create_from_date_string(intval($this->arrSettings['news_top_days']) . ' day')), 'Y-m-d H:i:s') . "') DESC", $newsLimit);
     }
     if ($objResult !== false && $objResult->RecordCount()) {
         while (!$objResult->EOF) {
             $newsid = $objResult->fields['id'];
             $newstitle = $objResult->fields['title'];
             $author = \FWUser::getParsedUserTitle($objResult->fields['author_id'], $objResult->fields['author']);
             $publisher = \FWUser::getParsedUserTitle($objResult->fields['publisher_id'], $objResult->fields['publisher']);
             $newsCategories = $this->getCategoriesByNewsId($newsid);
             $newsUrl = empty($objResult->fields['redirect']) ? \Cx\Core\Routing\Url::fromModuleAndCmd('News', $this->findCmdById('details', self::sortCategoryIdByPriorityId(array_keys($newsCategories), array($catId))), FRONTEND_LANG_ID, array('newsid' => $newsid)) : $objResult->fields['redirect'];
             $htmlLink = self::parseLink($newsUrl, $newstitle, contrexx_raw2xhtml($newstitle));
             list($image, $htmlLinkImage, $imageSource) = self::parseImageThumbnail($objResult->fields['teaser_image_path'], $objResult->fields['teaser_image_thumbnail_path'], $newstitle, $newsUrl);
             $this->_objTemplate->setVariable(array('NEWS_ID' => $newsid, 'NEWS_CSS' => 'row' . ($i % 2 + 1), 'NEWS_LONG_DATE' => date(ASCMS_DATE_FORMAT, $objResult->fields['date']), 'NEWS_DATE' => date(ASCMS_DATE_FORMAT_DATE, $objResult->fields['date']), 'NEWS_TIME' => date(ASCMS_DATE_FORMAT_TIME, $objResult->fields['date']), 'NEWS_TITLE' => contrexx_raw2xhtml($newstitle), 'NEWS_TEASER' => nl2br($objResult->fields['teaser_text']), 'NEWS_LINK' => $htmlLink, 'NEWS_LINK_URL' => contrexx_raw2xhtml($newsUrl), 'NEWS_AUTHOR' => contrexx_raw2xhtml($author), 'NEWS_PUBLISHER' => contrexx_raw2xhtml($publisher)));
             if (!empty($image)) {
                 $this->_objTemplate->setVariable(array('NEWS_IMAGE' => $image, 'NEWS_IMAGE_SRC' => contrexx_raw2xhtml($imageSource), 'NEWS_IMAGE_ALT' => contrexx_raw2xhtml($newstitle), 'NEWS_IMAGE_LINK' => $htmlLinkImage));
                 if ($this->_objTemplate->blockExists('news_image')) {
                     $this->_objTemplate->parse('news_image');
                 }
             } else {
                 if ($this->_objTemplate->blockExists('news_image')) {
                     $this->_objTemplate->hideBlock('news_image');
                 }
             }
             self::parseImageBlock($this->_objTemplate, $objResult->fields['teaser_image_thumbnail_path'], $newstitle, $newsUrl, 'image_thumbnail');
             self::parseImageBlock($this->_objTemplate, $objResult->fields['teaser_image_path'], $newstitle, $newsUrl, 'image_detail');
             $this->_objTemplate->parseCurrentBlock();
             $i++;
             $objResult->MoveNext();
         }
     } else {
         $this->_objTemplate->hideBlock('newsrow');
     }
     $this->_objTemplate->setVariable("TXT_MORE_NEWS", $_CORELANG['TXT_MORE_NEWS']);
     return $this->_objTemplate->get();
 }
 function getHomeHeadlines($catId = 0)
 {
     global $_CORELANG, $objDatabase, $_LANGID;
     $i = 0;
     $catId = intval($catId);
     $this->_objTemplate->setTemplate($this->_pageContent, true, true);
     $newsLimit = intval($this->arrSettings['news_headlines_limit']);
     if ($newsLimit > 50) {
         //limit to a maximum of 50 news
         $newsLimit = 50;
     }
     if ($newsLimit < 1) {
         //do not get any news if 0 was specified as the limit.
         $objResult = false;
     } else {
         //fetch news
         $objResult = $objDatabase->SelectLimit("\n                SELECT DISTINCT(tblN.id) AS id,\n                       tblN.`date`, \n                       tblN.teaser_image_path,\n                       tblN.teaser_image_thumbnail_path,\n                       tblN.redirect,\n                       tblN.publisher,\n                       tblN.publisher_id,\n                       tblN.author,\n                       tblN.author_id,\n                       tblL.text NOT REGEXP '^(<br type=\"_moz\" />)?\$' AS newscontent,\n                       tblL.title AS title, \n                       tblL.teaser_text\n                  FROM " . DBPREFIX . "module_news AS tblN\n            INNER JOIN " . DBPREFIX . "module_news_locale AS tblL ON tblL.news_id=tblN.id\n            INNER JOIN " . DBPREFIX . "module_news_rel_categories AS tblC ON tblC.news_id=tblL.news_id\n                  WHERE tblN.status=1" . ($catId > 0 ? " AND tblC.category_id={$catId}" : '') . "\n                   AND tblN.teaser_only='0'\n                   AND tblL.lang_id=" . $_LANGID . "\n                   AND tblL.is_active=1\n                   AND (startdate<='" . date('Y-m-d H:i:s') . "' OR startdate='0000-00-00 00:00:00')\n                   AND (enddate>='" . date('Y-m-d H:i:s') . "' OR enddate='0000-00-00 00:00:00')" . ($this->arrSettings['news_message_protection'] == '1' && !\Permission::hasAllAccess() ? ($objFWUser = \FWUser::getFWUserObject()) && $objFWUser->objUser->login() ? " AND (frontend_access_id IN (" . implode(',', array_merge(array(0), $objFWUser->objUser->getDynamicPermissionIds())) . ") OR userid=" . $objFWUser->objUser->getId() . ") " : " AND frontend_access_id=0 " : '') . "ORDER BY date DESC", $newsLimit);
     }
     if ($objResult !== false && $objResult->RecordCount() >= 0) {
         while (!$objResult->EOF) {
             $newsid = $objResult->fields['id'];
             $newstitle = $objResult->fields['title'];
             $newsCategories = $this->getCategoriesByNewsId($newsid);
             $newsUrl = empty($objResult->fields['redirect']) ? empty($objResult->fields['newscontent']) ? '' : \Cx\Core\Routing\Url::fromModuleAndCmd('News', $this->findCmdById('details', self::sortCategoryIdByPriorityId(array_keys($newsCategories), array($catId))), FRONTEND_LANG_ID, array('newsid' => $newsid)) : $objResult->fields['redirect'];
             $htmlLink = self::parseLink($newsUrl, $newstitle, contrexx_raw2xhtml($newstitle), 'headlineLink');
             $htmlLinkTitle = self::parseLink($newsUrl, $newstitle, contrexx_raw2xhtml($newstitle));
             // in case that the message is a stub, we shall just display the news title instead of a html-a-tag with no href target
             if (empty($htmlLinkTitle)) {
                 $htmlLinkTitle = contrexx_raw2xhtml($newstitle);
             }
             list($image, $htmlLinkImage, $imageSource) = self::parseImageThumbnail($objResult->fields['teaser_image_path'], $objResult->fields['teaser_image_thumbnail_path'], $newstitle, $newsUrl);
             $author = \FWUser::getParsedUserTitle($objResult->fields['author_id'], $objResult->fields['author']);
             $publisher = \FWUser::getParsedUserTitle($objResult->fields['publisher_id'], $objResult->fields['publisher']);
             $this->_objTemplate->setVariable(array('NEWS_ID' => $newsid, 'NEWS_CSS' => 'row' . ($i % 2 + 1), 'NEWS_LONG_DATE' => date(ASCMS_DATE_FORMAT, $objResult->fields['date']), 'NEWS_DATE' => date(ASCMS_DATE_FORMAT_DATE, $objResult->fields['date']), 'NEWS_TIME' => date(ASCMS_DATE_FORMAT_TIME, $objResult->fields['date']), 'NEWS_TITLE' => contrexx_raw2xhtml($newstitle), 'NEWS_TEASER' => nl2br($objResult->fields['teaser_text']), 'NEWS_LINK_TITLE' => $htmlLinkTitle, 'NEWS_LINK' => $htmlLink, 'NEWS_LINK_URL' => contrexx_raw2xhtml($newsUrl), 'NEWS_AUTHOR' => contrexx_raw2xhtml($author), 'NEWS_PUBLISHER' => contrexx_raw2xhtml($publisher), 'HEADLINE_ID' => $newsid, 'HEADLINE_DATE' => date(ASCMS_DATE_FORMAT_DATE, $objResult->fields['date']), 'HEADLINE_TEXT' => nl2br($objResult->fields['teaser_text']), 'HEADLINE_LINK' => $htmlLinkTitle, 'HEADLINE_AUTHOR' => contrexx_raw2xhtml($author)));
             if (!empty($image)) {
                 $this->_objTemplate->setVariable(array('NEWS_IMAGE' => $image, 'NEWS_IMAGE_SRC' => contrexx_raw2xhtml($imageSource), 'NEWS_IMAGE_ALT' => contrexx_raw2xhtml($newstitle), 'NEWS_IMAGE_LINK' => $htmlLinkImage, 'HEADLINE_IMAGE_PATH' => contrexx_raw2xhtml($objResult->fields['teaser_image_path']), 'HEADLINE_THUMBNAIL_PATH' => contrexx_raw2xhtml($imageSource)));
                 if ($this->_objTemplate->blockExists('news_image')) {
                     $this->_objTemplate->parse('news_image');
                 }
             } else {
                 if ($this->_objTemplate->blockExists('news_image')) {
                     $this->_objTemplate->hideBlock('news_image');
                 }
             }
             self::parseImageBlock($this->_objTemplate, $objResult->fields['teaser_image_thumbnail_path'], $newstitle, $newsUrl, 'image_thumbnail');
             self::parseImageBlock($this->_objTemplate, $objResult->fields['teaser_image_path'], $newstitle, $newsUrl, 'image_detail');
             $this->_objTemplate->parse('headlines_row');
             $i++;
             $objResult->MoveNext();
         }
     } else {
         $this->_objTemplate->hideBlock('headlines_row');
     }
     $this->_objTemplate->setVariable("TXT_MORE_NEWS", $_CORELANG['TXT_MORE_NEWS']);
     return $this->_objTemplate->get();
 }
Esempio n. 3
0
 function initializeTeasers()
 {
     global $objDatabase, $_CORELANG;
     $this->arrTeasers = array();
     $this->getSettings();
     $objResult = $objDatabase->Execute("\n            SELECT tblN.id,\n                   tblN.date,\n                   tblN.userid,\n                   tblN.teaser_frames,\n                   tblN.redirect,\n                   tblN.teaser_show_link,\n                   tblN.teaser_image_path,\n                   tblN.teaser_image_thumbnail_path,\n                   tblL.title,\n                   tblL.text AS teaser_full_text,\n                   tblL.teaser_text\n              FROM " . DBPREFIX . "module_news AS tblN\n             INNER JOIN " . DBPREFIX . "module_news_locale AS tblL ON tblL.news_id=tblN.id\n             WHERE tblL.lang_id=" . FRONTEND_LANG_ID . ($this->administrate == false ? " AND tblN.validated='1'\n                    AND tblN.status='1'\n                    AND tblL.is_active=1\n                    AND (tblN.startdate<='" . date('Y-m-d H:i:s') . "' OR tblN.startdate='0000-00-00 00:00:00') AND (tblN.enddate>='" . date('Y-m-d H:i:s') . "' OR tblN.enddate='0000-00-00 00:00:00')" : "") . ($this->arrSettings['news_message_protection'] == '1' && !\Permission::hasAllAccess() ? ($objFWUser = \FWUser::getFWUserObject()) && $objFWUser->objUser->login() ? " AND (tblN.frontend_access_id IN (" . implode(',', array_merge(array(0), $objFWUser->objUser->getDynamicPermissionIds())) . ") OR userid = " . $objFWUser->objUser->getId() . ") " : " AND tblN.frontend_access_id=0 " : '') . "\n             ORDER BY date DESC");
     if ($objResult !== false) {
         while (!$objResult->EOF) {
             $arrFrames = explode(';', $objResult->fields['teaser_frames']);
             foreach ($arrFrames as $frameId) {
                 if (!isset($this->arrFrameTeaserIds[$frameId])) {
                     $this->arrFrameTeaserIds[$frameId] = array();
                 }
                 array_push($this->arrFrameTeaserIds[$frameId], $objResult->fields['id']);
             }
             if (!empty($objResult->fields['redirect'])) {
                 $extUrl = substr($objResult->fields['redirect'], 7);
                 $tmp = explode('/', $extUrl);
                 $extUrl = "(" . $tmp[0] . ")";
             } else {
                 $extUrl = "";
             }
             if ($this->administrate == false) {
                 $objFWUser = \FWUser::getFWUserObject();
                 $objUser = $objFWUser->objUser->getUser($objResult->fields['userid']);
                 if ($objUser) {
                     $firstname = $objUser->getProfileAttribute('firstname');
                     $lastname = $objUser->getProfileAttribute('lastname');
                     if (!empty($firstname) && !empty($lastname)) {
                         $author = contrexx_raw2xhtml($firstname . ' ' . $lastname);
                     } else {
                         $author = contrexx_raw2xhtml($objUser->getUsername());
                     }
                 } else {
                     $author = $_CORELANG['TXT_ANONYMOUS'];
                 }
             } else {
                 $author = '';
             }
             if (!empty($objResult->fields['teaser_image_thumbnail_path'])) {
                 $image = $objResult->fields['teaser_image_thumbnail_path'];
             } elseif (!empty($objResult->fields['teaser_image_path']) && file_exists(ASCMS_PATH . \ImageManager::getThumbnailFilename($objResult->fields['teaser_image_path']))) {
                 $image = \ImageManager::getThumbnailFilename($objResult->fields['teaser_image_path']);
             } elseif (!empty($objResult->fields['teaser_image_path'])) {
                 $image = $objResult->fields['teaser_image_path'];
             } else {
                 $image = ASCMS_CORE_MODULE_WEB_PATH . '/News/View/Media/pixel.gif';
             }
             $newsCategories = $this->getCategoriesByNewsId($objResult->fields['id']);
             $this->arrTeasers[$objResult->fields['id']] = array('id' => $objResult->fields['id'], 'date' => $objResult->fields['date'], 'title' => $objResult->fields['title'], 'teaser_frames' => $objResult->fields['teaser_frames'], 'redirect' => $objResult->fields['redirect'], 'ext_url' => $extUrl, 'category' => implode(', ', contrexx_raw2xhtml($newsCategories)), 'category_id' => array_keys($newsCategories), 'teaser_full_text' => $objResult->fields['teaser_full_text'], 'teaser_text' => $objResult->fields['teaser_text'], 'teaser_show_link' => $objResult->fields['teaser_show_link'], 'author' => $author, 'teaser_image_path' => $image);
             $objResult->MoveNext();
         }
     }
 }
Esempio n. 4
0
 /**
  * Gets the list with the top news
  *
  * @global    array
  * @global    ADONewConnection
  * @global    array
  * @return    string    parsed content
  */
 private function getTopNews()
 {
     global $_CONFIG, $objDatabase, $_ARRAYLANG;
     $newsfilter = '';
     $paging = '';
     $pos = 0;
     $i = 0;
     if (isset($_GET['pos'])) {
         $pos = intval($_GET['pos']);
     }
     $this->_objTpl->setVariable(array('TXT_DATE' => $_ARRAYLANG['TXT_DATE'], 'TXT_TITLE' => $_ARRAYLANG['TXT_TITLE'], 'TXT_NEWS_MESSAGE' => $_ARRAYLANG['TXT_NEWS_MESSAGE']));
     $query = '  SELECT      n.id                AS newsid,
                             n.userid            AS newsuid,
                             n.date              AS newsdate,
                             n.teaser_image_path,
                             n.teaser_image_thumbnail_path,
                             n.redirect,
                             n.publisher,
                             n.publisher_id,
                             n.author,
                             n.author_id,
                             nl.title            AS newstitle,
                             nl.text NOT REGEXP \'^(<br type="_moz" />)?$\' AS newscontent,
                             nl.teaser_text
                 FROM        ' . DBPREFIX . 'module_news AS n
                 INNER JOIN  ' . DBPREFIX . 'module_news_locale AS nl ON nl.news_id = n.id
                 WHERE       status = 1
                             AND nl.is_active=1
                             AND nl.lang_id=' . FRONTEND_LANG_ID . '
                             AND (n.startdate<=\'' . date('Y-m-d H:i:s') . '\' OR n.startdate="0000-00-00 00:00:00")
                             AND (n.enddate>=\'' . date('Y-m-d H:i:s') . '\' OR n.enddate="0000-00-00 00:00:00")
                             ' . $newsfilter . ($this->arrSettings['news_message_protection'] == '1' && !\Permission::hasAllAccess() ? ($objFWUser = \FWUser::getFWUserObject()) && $objFWUser->objUser->login() ? " AND (frontend_access_id IN (" . implode(',', array_merge(array(0), $objFWUser->objUser->getDynamicPermissionIds())) . ") OR userid = " . $objFWUser->objUser->getId() . ") " : " AND frontend_access_id=0 " : '') . 'ORDER BY (SELECT COUNT(*) FROM ' . DBPREFIX . 'module_news_stats_view WHERE news_id=n.id AND time>"' . date_format(date_sub(date_create('now'), date_interval_create_from_date_string(intval($this->arrSettings['news_top_days']) . ' day')), 'Y-m-d H:i:s') . '") DESC';
     /***start paging ****/
     $objResult = $objDatabase->Execute($query);
     $count = $objResult->RecordCount();
     if ($count > intval($_CONFIG['corePagingLimit'])) {
         $paging = getPaging($count, $pos, '&section=News&cmd=topnews', $_ARRAYLANG['TXT_NEWS_MESSAGES'], true);
     }
     $this->_objTpl->setVariable('NEWS_PAGING', $paging);
     $objResult = $objDatabase->SelectLimit($query, $_CONFIG['corePagingLimit'], $pos);
     /*** end paging ***/
     if ($count >= 1) {
         while (!$objResult->EOF) {
             $newsid = $objResult->fields['newsid'];
             $newstitle = $objResult->fields['newstitle'];
             $newsCategories = $this->getCategoriesByNewsId($newsid);
             $newsUrl = empty($objResult->fields['redirect']) ? empty($objResult->fields['newscontent']) ? '' : \Cx\Core\Routing\Url::fromModuleAndCmd('News', $this->findCmdById('details', array_keys($newsCategories)), FRONTEND_LANG_ID, array('newsid' => $newsid)) : $objResult->fields['redirect'];
             $htmlLink = self::parseLink($newsUrl, $newstitle, contrexx_raw2xhtml('[' . $_ARRAYLANG['TXT_NEWS_MORE'] . '...]'));
             $htmlLinkTitle = self::parseLink($newsUrl, $newstitle, contrexx_raw2xhtml($newstitle));
             // in case that the message is a stub, we shall just display the news title instead of a html-a-tag with no href target
             if (empty($htmlLinkTitle)) {
                 $htmlLinkTitle = contrexx_raw2xhtml($newstitle);
             }
             list($image, $htmlLinkImage, $imageSource) = self::parseImageThumbnail($objResult->fields['teaser_image_path'], $objResult->fields['teaser_image_thumbnail_path'], $newstitle, $newsUrl);
             $author = \FWUser::getParsedUserTitle($objResult->fields['author_id'], $objResult->fields['author']);
             $publisher = \FWUser::getParsedUserTitle($objResult->fields['publisher_id'], $objResult->fields['publisher']);
             $this->_objTpl->setVariable(array('NEWS_ID' => $newsid, 'NEWS_CSS' => 'row' . ($i % 2 + 1), 'NEWS_TEASER' => nl2br($objResult->fields['teaser_text']), 'NEWS_TITLE' => contrexx_raw2xhtml($newstitle), 'NEWS_LONG_DATE' => date(ASCMS_DATE_FORMAT, $objResult->fields['newsdate']), 'NEWS_DATE' => date(ASCMS_DATE_FORMAT_DATE, $objResult->fields['newsdate']), 'NEWS_TIME' => date(ASCMS_DATE_FORMAT_TIME, $objResult->fields['newsdate']), 'NEWS_LINK_TITLE' => $htmlLinkTitle, 'NEWS_LINK' => $htmlLink, 'NEWS_LINK_URL' => contrexx_raw2xhtml($newsUrl), 'NEWS_CATEGORY' => implode(', ', contrexx_raw2xhtml($newsCategories)), 'NEWS_PUBLISHER' => contrexx_raw2xhtml($publisher), 'NEWS_AUTHOR' => contrexx_raw2xhtml($author)));
             if (!empty($image)) {
                 $this->_objTpl->setVariable(array('NEWS_IMAGE' => $image, 'NEWS_IMAGE_SRC' => contrexx_raw2xhtml($imageSource), 'NEWS_IMAGE_ALT' => contrexx_raw2xhtml($newstitle), 'NEWS_IMAGE_LINK' => $htmlLinkImage));
                 if ($this->_objTpl->blockExists('news_image')) {
                     $this->_objTpl->parse('news_image');
                 }
             } else {
                 if ($this->_objTpl->blockExists('news_image')) {
                     $this->_objTpl->hideBlock('news_image');
                 }
             }
             self::parseImageBlock($this->_objTpl, $objResult->fields['teaser_image_thumbnail_path'], $newstitle, $newsUrl, 'image_thumbnail');
             self::parseImageBlock($this->_objTpl, $objResult->fields['teaser_image_path'], $newstitle, $newsUrl, 'image_detail');
             $this->_objTpl->parse('newsrow');
             $i++;
             $objResult->MoveNext();
         }
         if ($this->_objTpl->blockExists('news_list')) {
             $this->_objTpl->parse('news_list');
         }
         if ($this->_objTpl->blockExists('news_menu')) {
             $this->_objTpl->parse('news_menu');
         }
         if ($this->_objTpl->blockExists('news_status_message')) {
             $this->_objTpl->hideBlock('news_status_message');
         }
     } else {
         $this->_objTpl->setVariable('TXT_NEWS_NO_NEWS_FOUND', $_ARRAYLANG['TXT_NEWS_NO_NEWS_FOUND']);
         if ($this->_objTpl->blockExists('news_status_message')) {
             $this->_objTpl->parse('news_status_message');
         }
         if ($this->_objTpl->blockExists('news_menu')) {
             $this->_objTpl->parse('news_menu');
         }
         if ($this->_objTpl->blockExists('news_list')) {
             $this->_objTpl->hideBlock('news_list');
         }
     }
     return $this->_objTpl->get();
 }
Esempio n. 5
0
 /**
  * check for permission
  *
  * @param integer $intCatId
  * @param string|array $mixedMode
  * @return bool hasAccess
  */
 function _checkAuth($intCatId, $mixedMode = 'read')
 {
     if (\Permission::hasAllAccess()) {
         return true;
     }
     $arrAccess = $this->createAccessArray($intCatId);
     if (is_array($mixedMode)) {
         foreach ($mixedMode as $mode) {
             if ($this->_checkGroupAccess($arrAccess, $mode)) {
                 return true;
             }
         }
     } elseif (is_string($mixedMode)) {
         return $this->_checkGroupAccess($arrAccess, $mixedMode);
     }
     return false;
 }
Esempio n. 6
0
 /**
  * Get News Filter Condition Query
  * 
  * @param string $tableAlias
  * @param array  $filters
  * @param string $filterCategory category filter 
  * 
  * @return string  sql query
  */
 public function getNewsFilterQuery($tableAlias, $filters, $filterCategory)
 {
     $filterCondition = " AND {$tableAlias}.status = 1\n                    AND nl.is_active=1\n                    AND nl.lang_id=" . FRONTEND_LANG_ID . "\n                    AND ({$tableAlias}.startdate<='" . date('Y-m-d H:i:s') . "' OR {$tableAlias}.startdate=\"0000-00-00 00:00:00\")\n                    AND ({$tableAlias}.enddate>='" . date('Y-m-d H:i:s') . "' OR {$tableAlias}.enddate=\"0000-00-00 00:00:00\")" . ($this->arrSettings['news_message_protection'] == '1' && !Permission::hasAllAccess() ? ($objFWUser = FWUser::getFWUserObject()) && $objFWUser->objUser->login() ? " AND (frontend_access_id IN (" . implode(',', array_merge(array(0), $objFWUser->objUser->getDynamicPermissionIds())) . ") OR userid = " . $objFWUser->objUser->getId() . ") " : " AND frontend_access_id=0 " : '');
     if (!empty($filters)) {
         $additionalFilter = '';
         foreach ($filters as $field => $values) {
             $additionalFilter .= ' AND (`' . $tableAlias . '`.`' . $field . '` IN (' . implode(',', contrexx_input2int($values)) . '))';
         }
         $filterCondition .= $additionalFilter;
     }
     if (!empty($filterCategory)) {
         $filterCondition .= $filterCategory;
     }
     return $filterCondition;
 }
Esempio n. 7
0
 private function parseDownloads($objCategory)
 {
     global $_CONFIG, $_ARRAYLANG;
     if (!$this->objTemplate->blockExists('downloads_file_list')) {
         return;
     }
     $limitOffset = isset($_GET['pos']) ? intval($_GET['pos']) : 0;
     $includeDownloadsOfSubcategories = false;
     // set downloads filter
     $filter = array('expiration' => array('=' => 0, '>' => time()));
     if ($objCategory->getId()) {
         $filter['category_id'] = $objCategory->getId();
         if (!empty($this->searchKeyword)) {
             $includeDownloadsOfSubcategories = true;
         }
     }
     $objDownload = new Download();
     $sortOrder = $this->downloadsSortingOptions[$this->arrConfig['downloads_sorting_order']];
     $objDownload->loadDownloads($filter, $this->searchKeyword, $sortOrder, null, $_CONFIG['corePagingLimit'], $limitOffset, $includeDownloadsOfSubcategories);
     $categoryId = $objCategory->getId();
     $allowdDeleteFiles = false;
     if (!$objCategory->EOF) {
         $allowdDeleteFiles = !$objCategory->getManageFilesAccessId() || \Permission::checkAccess($objCategory->getManageFilesAccessId(), 'dynamic', true) || $this->userId && $objCategory->getOwnerId() == $this->userId;
     } elseif (\Permission::hasAllAccess()) {
         $allowdDeleteFiles = true;
     }
     if ($objDownload->EOF) {
         $this->objTemplate->hideBlock('downloads_file_list');
     } else {
         $row = 1;
         while (!$objDownload->EOF) {
             // select category
             if ($objCategory->EOF) {
                 $arrAssociatedCategories = $objDownload->getAssociatedCategoryIds();
                 $categoryId = $arrAssociatedCategories[0];
             }
             // parse download info
             $this->parseDownloadAttributes($objDownload, $categoryId, $allowdDeleteFiles);
             $this->objTemplate->setVariable('DOWNLOADS_FILE_ROW_CLASS', 'row' . ($row++ % 2 + 1));
             $this->objTemplate->parse('downloads_file');
             $objDownload->next();
         }
         $downloadCount = $objDownload->getFilteredSearchDownloadCount();
         if ($downloadCount > $_CONFIG['corePagingLimit']) {
             if (\Env::get('cx')->getPage()->getModule() != 'Downloads') {
                 $this->objTemplate->setVariable('DOWNLOADS_FILE_PAGING', getPaging($downloadCount, $limitOffset, '', "<b>" . $_ARRAYLANG['TXT_DOWNLOADS_DOWNLOADS'] . "</b>"));
             } else {
                 $this->objTemplate->setVariable('DOWNLOADS_FILE_PAGING', getPaging($downloadCount, $limitOffset, '&' . substr($this->moduleParamsHtml, 1) . '&category=' . $objCategory->getId() . '&downloads_search_keyword=' . htmlspecialchars($this->searchKeyword), "<b>" . $_ARRAYLANG['TXT_DOWNLOADS_DOWNLOADS'] . "</b>"));
             }
         }
         $this->objTemplate->setVariable(array('TXT_DOWNLOADS_FILES' => $_ARRAYLANG['TXT_DOWNLOADS_FILES'], 'TXT_DOWNLOADS_DOWNLOAD' => $_ARRAYLANG['TXT_DOWNLOADS_DOWNLOAD'], 'TXT_DOWNLOADS_DOWNLOADS' => $_ARRAYLANG['TXT_DOWNLOADS_DOWNLOADS']));
         $this->objTemplate->parse('downloads_file_list');
     }
 }
Esempio n. 8
0
 /**
  * Set the cms system settings
  * @global  ADONewConnection
  * @global  array   Core language
  * @global  \Cx\Core\Html\Sigma
  */
 function showSettings()
 {
     global $objTemplate, $_ARRAYLANG;
     $template = new \Cx\Core\Html\Sigma();
     $objTemplate->addBlockfile('ADMIN_CONTENT', 'settings_system', 'settings.html');
     $templateObj = new \Cx\Core\Html\Sigma(ASCMS_CORE_PATH . '/Config/View/Template/Backend');
     $templateObj->loadTemplateFile('development_tools.html');
     $templateObj->setVariable(array('TXT_TITLE_SET5' => $_ARRAYLANG['TXT_SETTINGS_TITLE_DEVELOPMENT'], 'TXT_DEBUGGING_STATUS' => $_ARRAYLANG['TXT_DEBUGGING_STATUS'], 'TXT_DEBUGGING_FLAGS' => $_ARRAYLANG['TXT_DEBUGGING_FLAGS'], 'TXT_SETTINGS_DEBUGGING_FLAG_LOG' => $_ARRAYLANG['TXT_SETTINGS_DEBUGGING_FLAG_LOG'], 'TXT_SETTINGS_DEBUGGING_FLAG_PHP' => $_ARRAYLANG['TXT_SETTINGS_DEBUGGING_FLAG_PHP'], 'TXT_SETTINGS_DEBUGGING_FLAG_DB' => $_ARRAYLANG['TXT_SETTINGS_DEBUGGING_FLAG_DB'], 'TXT_SETTINGS_DEBUGGING_FLAG_DB_TRACE' => $_ARRAYLANG['TXT_SETTINGS_DEBUGGING_FLAG_DB_TRACE'], 'TXT_SETTINGS_DEBUGGING_FLAG_DB_CHANGE' => $_ARRAYLANG['TXT_SETTINGS_DEBUGGING_FLAG_DB_CHANGE'], 'TXT_SETTINGS_DEBUGGING_FLAG_DB_ERROR' => $_ARRAYLANG['TXT_SETTINGS_DEBUGGING_FLAG_DB_ERROR'], 'TXT_SETTINGS_DEBUGGING_FLAG_LOG_FILE' => $_ARRAYLANG['TXT_SETTINGS_DEBUGGING_FLAG_LOG_FILE'], 'TXT_SETTINGS_DEBUGGING_FLAG_LOG_FIREPHP' => $_ARRAYLANG['TXT_SETTINGS_DEBUGGING_FLAG_LOG_FIREPHP'], 'TXT_DEBUGGING_EXPLANATION' => $_ARRAYLANG['TXT_DEBUGGING_EXPLANATION'], 'TXT_SAVE_CHANGES' => $_ARRAYLANG['TXT_SAVE'], 'TXT_RADIO_ON' => $_ARRAYLANG['TXT_ACTIVATED'], 'TXT_RADIO_OFF' => $_ARRAYLANG['TXT_DEACTIVATED']));
     if (in_array('SystemInfo', \Env::get('cx')->getLicense()->getLegalComponentsList())) {
         if (isset($_POST['debugging'])) {
             $this->updateDebugSettings($_POST['debugging']);
         }
         $this->setDebuggingVariables($templateObj);
     }
     \Cx\Core\Setting\Controller\Setting::init('Config', null, 'Yaml', null, \Cx\Core\Setting\Controller\Setting::REPOPULATE);
     \Cx\Core\Setting\Controller\Setting::storeFromPost();
     \Cx\Core\Setting\Controller\Setting::setEngineType('Config', 'Yaml', 'site');
     \Cx\Core\Setting\Controller\Setting::show($template, 'index.php?cmd=Config', $_ARRAYLANG['TXT_CORE_CONFIG_SITE'], $_ARRAYLANG['TXT_CORE_CONFIG_SITE'], 'TXT_CORE_CONFIG_', !$this->isWritable());
     \Cx\Core\Setting\Controller\Setting::setEngineType('Config', 'Yaml', 'contactInformation');
     \Cx\Core\Setting\Controller\Setting::show($template, 'index.php?cmd=Config', $_ARRAYLANG['TXT_CORE_CONFIG_CONTACTINFORMATION'], $_ARRAYLANG['TXT_CORE_CONFIG_CONTACTINFORMATION'], 'TXT_CORE_CONFIG_', !$this->isWritable());
     \Cx\Core\Setting\Controller\Setting::setEngineType('Config', 'Yaml', 'administrationArea');
     \Cx\Core\Setting\Controller\Setting::show($template, 'index.php?cmd=Config', $_ARRAYLANG['TXT_CORE_CONFIG_ADMINISTRATIONAREA'], $_ARRAYLANG['TXT_CORE_CONFIG_ADMINISTRATIONAREA'], 'TXT_CORE_CONFIG_', !$this->isWritable());
     \Cx\Core\Setting\Controller\Setting::setEngineType('Config', 'Yaml', 'security');
     \Cx\Core\Setting\Controller\Setting::show($template, 'index.php?cmd=Config', $_ARRAYLANG['TXT_CORE_CONFIG_SECURITY'], $_ARRAYLANG['TXT_CORE_CONFIG_SECURITY'], 'TXT_CORE_CONFIG_', !$this->isWritable());
     if (in_array('SystemInfo', \Env::get('cx')->getLicense()->getLegalComponentsList())) {
         \Cx\Core\Setting\Controller\Setting::show_external($template, $_ARRAYLANG['TXT_SETTINGS_TITLE_DEVELOPMENT'], $templateObj->get());
     }
     \Cx\Core\Setting\Controller\Setting::setEngineType('Config', 'Yaml', 'otherConfigurations');
     \Cx\Core\Setting\Controller\Setting::show($template, 'index.php?cmd=Config', $_ARRAYLANG['TXT_CORE_CONFIG_OTHERCONFIGURATIONS'], $_ARRAYLANG['TXT_CORE_CONFIG_OTHERCONFIGURATIONS'], 'TXT_CORE_CONFIG_', !$this->isWritable());
     // show also hidden settins
     if (in_array('SystemInfo', \Env::get('cx')->getLicense()->getLegalComponentsList()) && \Permission::hasAllAccess() && isset($_GET['all'])) {
         \Cx\Core\Setting\Controller\Setting::setEngineType('Config', 'Yaml', 'core');
         \Cx\Core\Setting\Controller\Setting::show($template, 'index.php?cmd=Config', 'CORE', 'CORE', 'TXT_CORE_CONFIG_', true);
         \Cx\Core\Setting\Controller\Setting::setEngineType('Config', 'Yaml', 'release');
         \Cx\Core\Setting\Controller\Setting::show($template, 'index.php?cmd=Config', 'RELEASE', 'RELEASE', 'TXT_CORE_CONFIG_', true);
         \Cx\Core\Setting\Controller\Setting::setEngineType('Config', 'Yaml', 'component');
         \Cx\Core\Setting\Controller\Setting::show($template, 'index.php?cmd=Config', 'COMPONENT', 'COMPONENT', 'TXT_CORE_CONFIG_', !$this->isWritable());
         \Cx\Core\Setting\Controller\Setting::setEngineType('Config', 'Yaml', 'license');
         \Cx\Core\Setting\Controller\Setting::show($template, 'index.php?cmd=Config', 'LICENSE', 'LICENSE', 'TXT_CORE_CONFIG_', true);
         \Cx\Core\Setting\Controller\Setting::setEngineType('Config', 'Yaml', 'cache');
         \Cx\Core\Setting\Controller\Setting::show($template, 'index.php?cmd=Config', 'CACHE', 'CACHE', 'TXT_CORE_CONFIG_', true);
     }
     $this->checkFtpAccess();
     $objTemplate->setVariable('SETTINGS_TABLE', $template->get());
     $objTemplate->parse('settings_system');
 }
Esempio n. 9
0
 function delEntry()
 {
     global $objDatabase, $_ARRAYLANG, $_CORELANG, $_CONFIG;
     $this->_objTpl->setTemplate($this->pageContent, true, true);
     if (!$this->settings['editEntry'] == '1' || !$this->communityModul && $this->settings['addEntry_only_community'] == '1') {
         \Cx\Core\Csrf\Controller\Csrf::header('Location: index.php?section=Market&cmd=detail&id=' . $_POST['id']);
         exit;
     } elseif ($this->settings['addEntry_only_community'] == '1') {
         $objFWUser = \FWUser::getFWUserObject();
         if ($objFWUser->objUser->login()) {
             if (!\Permission::checkAccess(101, 'static', true)) {
                 \Cx\Core\Csrf\Controller\Csrf::header("Location: " . CONTREXX_DIRECTORY_INDEX . "?section=Login&cmd=noaccess");
                 exit;
             }
         } else {
             $link = base64_encode(CONTREXX_DIRECTORY_INDEX . '?' . $_SERVER['QUERY_STRING']);
             \Cx\Core\Csrf\Controller\Csrf::header("Location: " . CONTREXX_DIRECTORY_INDEX . "?section=Login&redirect=" . $link);
             exit;
         }
     } else {
         $objFWUser = \FWUser::getFWUserObject();
     }
     //get search
     $this->getSearch();
     if (isset($_GET['id'])) {
         $entryId = contrexx_addslashes($_GET['id']);
         $objResult = $objDatabase->Execute('SELECT id, userid, catid FROM ' . DBPREFIX . 'module_market WHERE id = ' . $entryId . ' LIMIT 1');
         if ($objResult !== false) {
             while (!$objResult->EOF) {
                 if ($objFWUser->objUser->login() && $objFWUser->objUser->getId() == $objResult->fields['userid'] || \Permission::hasAllAccess()) {
                     $this->_objTpl->setVariable(array('MARKET_ENTRY_ID' => $entryId, 'TXT_MARKET_DEL' => $_ARRAYLANG['TXT_MARKET_DELETE_ADVERTISEMENT'], 'TXT_MARKET_ABORT' => $_CORELANG['TXT_CANCEL'], 'TXT_MARKET_CONFIRM_DEL' => $_ARRAYLANG['TXT_MARKET_ADVERTISEMENT_DELETE']));
                     //get navigatin
                     $this->getNavigation($objResult->fields['catid']);
                     $objResult->MoveNext();
                 } else {
                     \Cx\Core\Csrf\Controller\Csrf::header('Location: index.php?section=Market&cmd=detail&id=' . $_GET['id']);
                     exit;
                 }
             }
         }
     } else {
         if (isset($_POST['submitEntry'])) {
             $arrDelete = array();
             $arrDelete[0] = $_POST['id'];
             $this->removeEntry($arrDelete);
             \Cx\Core\Csrf\Controller\Csrf::header('Location: index.php?section=Market');
             exit;
         } else {
             \Cx\Core\Csrf\Controller\Csrf::header('Location: index.php?section=Market');
             exit;
         }
     }
 }
Esempio n. 10
0
 /**
  * Update news
  *
  * @global    ADONewConnection
  * @global    array
  * @global    array
  * @param     integer   $newsid
  * @return    boolean   result
  */
 function update()
 {
     global $objDatabase, $_ARRAYLANG, $_CONFIG;
     if (!$this->hasCategories()) {
         return $this->manageCategories();
     }
     if (isset($_POST['newsId'])) {
         $objFWUser = \FWUser::getFWUserObject();
         $id = intval($_POST['newsId']);
         $userId = $objFWUser->objUser->getId();
         $changelog = mktime();
         $date = $this->dateFromInput($_POST['newsDate']);
         $redirect = !empty($_POST['newsRedirect']) && $_POST['newsTypeRadio'] == 'redirect' ? contrexx_strip_tags($_POST['newsRedirect']) : '';
         $source = \FWValidator::getUrl(contrexx_strip_tags($_POST['newsSource']));
         $url1 = \FWValidator::getUrl(contrexx_strip_tags($_POST['newsUrl1']));
         $url2 = \FWValidator::getUrl(contrexx_strip_tags($_POST['newsUrl2']));
         $newsPublisherName = !empty($_POST['newsPublisherName']) ? contrexx_input2raw($_POST['newsPublisherName']) : '';
         $newsAuthorName = !empty($_POST['newsAuthorName']) ? contrexx_input2raw($_POST['newsAuthorName']) : '';
         $newsPublisherId = !empty($_POST['newsPublisherId']) ? contrexx_input2raw($_POST['newsPublisherId']) : '0';
         $newsAuthorId = !empty($_POST['newsAuthorId']) ? contrexx_input2raw($_POST['newsAuthorId']) : '0';
         $newsCategories = !empty($_POST['newsCat']) ? contrexx_input2raw($_POST['newsCat']) : array();
         $typeId = !empty($_POST['newsType']) ? intval($_POST['newsType']) : 0;
         $newsScheduledActive = !empty($_POST['newsScheduled']) ? intval($_POST['newsScheduled']) : 0;
         $status = empty($_POST['status']) ? $status = 0 : intval($_POST['status']);
         $newsTeaserOnly = isset($_POST['newsUseOnlyTeaser']) ? intval($_POST['newsUseOnlyTeaser']) : 0;
         $newsTeaserShowLink = isset($_POST['newsTeaserShowLink']) ? intval($_POST['newsTeaserShowLink']) : 0;
         $newsTeaserImagePath = contrexx_addslashes($_POST['newsTeaserImagePath']);
         $newsTeaserImageThumbnailPath = contrexx_addslashes($_POST['newsTeaserImageThumbnailPath']);
         $newsTeaserFrames = '';
         $newsComments = !empty($_POST['allowComment']) ? intval($_POST['allowComment']) : 0;
         if (isset($_POST['newsTeaserFramesAsso']) && count($_POST['newsTeaserFramesAsso']) > 0) {
             foreach ($_POST['newsTeaserFramesAsso'] as $frameId) {
                 intval($frameId) > 0 ? $newsTeaserFrames .= ';' . intval($frameId) : false;
             }
         }
         $startDate = $this->dateFromInput($_POST['startDate']);
         $endDate = $this->dateFromInput($_POST['endDate']);
         $newsFrontendAccess = !empty($_POST['news_read_access']);
         $newsFrontendGroups = $newsFrontendAccess && isset($_POST['news_read_access_associated_groups']) && is_array($_POST['news_read_access_associated_groups']) ? array_map('intval', $_POST['news_read_access_associated_groups']) : array();
         $newsBackendAccess = !empty($_POST['news_modify_access']);
         $newsBackendGroups = $newsBackendAccess && isset($_POST['news_modify_access_associated_groups']) && is_array($_POST['news_modify_access_associated_groups']) ? array_map('intval', $_POST['news_modify_access_associated_groups']) : array();
         $objResult = $objDatabase->SelectLimit('SELECT `frontend_access_id`, `backend_access_id`, `userid` FROM `' . DBPREFIX . 'module_news` WHERE `id` = ' . $id, 1);
         if ($objResult && $objResult->RecordCount() == 1) {
             $newsFrontendAccessId = $objResult->fields['frontend_access_id'];
             $newsBackendAccessId = $objResult->fields['backend_access_id'];
             $newsUserId = $objResult->fields['userid'];
         } else {
             $newsFrontendAccessId = 0;
             $newsBackendAccessId = 0;
             $newsUserId = 0;
         }
         if ($this->arrSettings['news_message_protection'] == '1') {
             if ($newsBackendAccessId && !\Permission::hasAllAccess() && !\Permission::checkAccess($newsBackendAccessId, 'dynamic', true) && $newsUserId != $objFWUser->objUser->getId()) {
                 return false;
             }
             if ($newsFrontendAccess) {
                 if ($newsFrontendAccessId) {
                     $objGroup = $objFWUser->objGroup->getGroups(array('dynamic' => $newsFrontendAccessId));
                     $arrFormerFrontendGroupIds = $objGroup ? $objGroup->getLoadedGroupIds() : array();
                     $arrNewGroups = array_diff($newsFrontendGroups, $arrFormerFrontendGroupIds);
                     $arrRemovedGroups = array_diff($arrFormerFrontendGroupIds, $newsFrontendGroups);
                     if ($this->arrSettings['news_message_protection_restricted'] == '1' && !\Permission::hasAllAccess()) {
                         $arrUserGroupIds = $objFWUser->objUser->getAssociatedGroupIds();
                         $arrUnknownNewGroups = array_diff($arrNewGroups, $arrUserGroupIds);
                         foreach ($arrUnknownNewGroups as $groupId) {
                             if (!in_array($groupId, $arrFormerFrontendGroupIds)) {
                                 unset($arrNewGroups[array_search($groupId, $arrNewGroups)]);
                             }
                         }
                         $arrUnknownRemovedGroups = array_diff($arrRemovedGroups, $arrUserGroupIds);
                         foreach ($arrUnknownRemovedGroups as $groupId) {
                             if (in_array($groupId, $arrFormerFrontendGroupIds)) {
                                 unset($arrRemovedGroups[array_search($groupId, $arrRemovedGroups)]);
                             }
                         }
                     }
                     if (count($arrRemovedGroups)) {
                         \Permission::removeAccess($newsFrontendAccessId, 'dynamic', $arrRemovedGroups);
                     }
                     if (count($arrNewGroups)) {
                         \Permission::setAccess($newsFrontendAccessId, 'dynamic', $arrNewGroups);
                     }
                 } else {
                     if ($this->arrSettings['news_message_protection_restricted'] == '1' && !\Permission::hasAllAccess()) {
                         $arrUserGroupIds = $objFWUser->objUser->getAssociatedGroupIds();
                         $newsFrontendGroups = array_intersect($newsFrontendGroups, $arrUserGroupIds);
                     }
                     $newsFrontendAccessId = \Permission::createNewDynamicAccessId();
                     if (count($newsFrontendGroups)) {
                         \Permission::setAccess($newsFrontendAccessId, 'dynamic', $newsFrontendGroups);
                     }
                 }
             } else {
                 if ($newsFrontendAccessId) {
                     \Permission::removeAccess($newsFrontendAccessId, 'dynamic');
                 }
                 $newsFrontendAccessId = 0;
             }
             if ($newsBackendAccess) {
                 if ($newsBackendAccessId) {
                     $objGroup = $objFWUser->objGroup->getGroups(array('dynamic' => $newsBackendAccessId));
                     $arrFormerBackendGroupIds = $objGroup ? $objGroup->getLoadedGroupIds() : array();
                     $arrNewGroups = array_diff($newsBackendGroups, $arrFormerBackendGroupIds);
                     $arrRemovedGroups = array_diff($arrFormerBackendGroupIds, $newsBackendGroups);
                     if ($this->arrSettings['news_message_protection_restricted'] == '1' && !\Permission::hasAllAccess()) {
                         $arrUserGroupIds = $objFWUser->objUser->getAssociatedGroupIds();
                         $arrUnknownNewGroups = array_diff($arrNewGroups, $arrUserGroupIds);
                         foreach ($arrUnknownNewGroups as $groupId) {
                             if (!in_array($groupId, $arrFormerBackendGroupIds)) {
                                 unset($arrNewGroups[array_search($groupId, $arrNewGroups)]);
                             }
                         }
                         $arrUnknownRemovedGroups = array_diff($arrRemovedGroups, $arrUserGroupIds);
                         foreach ($arrUnknownRemovedGroups as $groupId) {
                             if (in_array($groupId, $arrFormerBackendGroupIds)) {
                                 unset($arrRemovedGroups[array_search($groupId, $arrRemovedGroups)]);
                             }
                         }
                     }
                     if (count($arrRemovedGroups)) {
                         \Permission::removeAccess($newsBackendAccessId, 'dynamic', $arrRemovedGroups);
                     }
                     if (count($arrNewGroups)) {
                         \Permission::setAccess($newsBackendAccessId, 'dynamic', $arrNewGroups);
                     }
                 } else {
                     if ($this->arrSettings['news_message_protection_restricted'] == '1' && !\Permission::hasAllAccess()) {
                         $arrUserGroupIds = $objFWUser->objUser->getAssociatedGroupIds();
                         $newsBackendGroups = array_intersect($newsBackendGroups, $arrUserGroupIds);
                     }
                     $newsBackendAccessId = \Permission::createNewDynamicAccessId();
                     if (count($newsBackendGroups)) {
                         \Permission::setAccess($newsBackendAccessId, 'dynamic', $newsBackendGroups);
                     }
                 }
             } else {
                 if ($newsBackendAccessId) {
                     \Permission::removeAccess($newsBackendAccessId, 'dynamic');
                 }
                 $newsBackendAccessId = 0;
             }
         }
         $objFWUser->objUser->getDynamicPermissionIds(true);
         // find out original user's id
         $orig_user_sql = "\n                SELECT userid\n                FROM " . DBPREFIX . "module_news\n                WHERE id = '{$id}'\n            ";
         $orig_user_rs = $objDatabase->Execute($orig_user_sql);
         if ($orig_user_rs == false) {
             \DBG::msg("We're in trouble! sql failure: {$orig_user_sql}");
         } else {
             $orig_userid = $orig_user_rs->fields['userid'];
         }
         $set_userid = $orig_userid ? $orig_userid : $userId;
         // $finishednewstext = $newstext.'<br>'.$_ARRAYLANG['TXT_LAST_EDIT'].': '.$date;
         $activeLanguages = isset($_POST['newsManagerLanguages']) ? $_POST['newsManagerLanguages'] : array();
         if (count(\FWLanguage::getActiveFrontendLanguages()) == 1) {
             $activeLanguages = \FWLanguage::getActiveFrontendLanguages();
         }
         $locales = array('active' => $activeLanguages, 'title' => $_POST['newsTitle'], 'text' => $_POST['news_text'], 'teaser_text' => isset($_POST['newsTeaserText']) ? $_POST['newsTeaserText'] : array());
         if (!$this->validateNews($locales, $newsCategories)) {
             return $this->edit();
         }
         // store locales
         $localesSaving = $this->storeLocales($id, $locales);
         $categoryManipulation = $this->manipulateCategories($newsCategories, $id);
         $relatedNews = !empty($_POST['relatedNews']) ? contrexx_input2raw($_POST['relatedNews']) : array();
         $enableRelatedNews = !empty($_POST['enableRelatedNews']) ? 1 : 0;
         $realtedNewsManipulation = $this->manipulateRelatedNews($relatedNews, $id);
         $newsTags = !empty($_POST['newsTags']) ? contrexx_input2raw($_POST['newsTags']) : array();
         $enableTags = !empty($_POST['enableTags']) ? intval($_POST['enableTags']) : 0;
         //Update Tags
         $tagManipulation = $this->manipulateTags($newsTags, $id);
         // Set start and end dates as NULL if newsScheduled checkbox is not checked
         if ($newsScheduledActive == 0) {
             $startDate = NULL;
             $endDate = NULL;
         }
         $objResult = $objDatabase->Execute("UPDATE  " . DBPREFIX . "module_news\n                                                SET     date='" . $date . "',\n                                                        redirect='" . $redirect . "',\n                                                        source='" . $source . "',\n                                                        url1='" . $url1 . "',\n                                                        url2='" . $url2 . "',\n                                                        publisher='" . contrexx_raw2db($newsPublisherName) . "',\n                                                        publisher_id=" . intval($newsPublisherId) . ",\n                                                        author='" . contrexx_raw2db($newsAuthorName) . "',\n                                                        author_id=" . intval($newsAuthorId) . ",\n                                                        typeid='" . $typeId . "',\n                                                        userid = '" . $set_userid . "',\n                                                        status = '" . $status . "',\n                                                        " . (isset($_POST['validate']) ? "validated='1'," : "") . "\n                                                        startdate = " . $this->dbFromDate($startDate) . ",\n                                                        enddate = " . $this->dbFromDate($endDate) . ",\n                                                        frontend_access_id = '" . $newsFrontendAccessId . "',\n                                                        backend_access_id = '" . $newsBackendAccessId . "',\n                                                        " . ($_CONFIG['newsTeasersStatus'] == '1' ? "teaser_only = '" . $newsTeaserOnly . "',\n                                                        teaser_frames = '" . $newsTeaserFrames . "'," : "") . "\n                                                        teaser_show_link = " . $newsTeaserShowLink . ",\n                                                        teaser_image_path = '" . $newsTeaserImagePath . "',\n                                                        teaser_image_thumbnail_path = '" . $newsTeaserImageThumbnailPath . "',\n                                                        changelog = '" . $changelog . "',\n                                                        allow_comments = '" . $newsComments . "',\n                                                        enable_related_news='" . $enableRelatedNews . "',\n                                                        enable_tags='" . $enableTags . "'\n                                                WHERE   id = '" . $id . "'");
         if ($objResult === false || $localesSaving === false || $categoryManipulation === false || $realtedNewsManipulation === false || $tagManipulation === false) {
             $this->strErrMessage = empty($this->errMsg) ? $_ARRAYLANG['TXT_DATABASE_QUERY_ERROR'] : implode('<br>', $this->errMsg);
         } else {
             $this->createRSS();
             $this->strOkMessage = $_ARRAYLANG['TXT_DATA_RECORD_UPDATED_SUCCESSFUL'];
         }
     }
     return $this->overview();
 }
Esempio n. 11
0
 function _configDeleteMail()
 {
     global $_ARRAYLANG;
     // only administrators are allowed to modify the config
     if (!\Permission::hasAllAccess()) {
         \Permission::noAccess();
     }
     if (empty($_REQUEST['type'])) {
         return;
     }
     $objFWUser = \FWUser::getFWUserObject();
     $objUserMail = $objFWUser->getMail();
     if (!$objUserMail->load(contrexx_addslashes($_REQUEST['type']), !empty($_REQUEST['access_mail_lang']) ? intval($_REQUEST['access_mail_lang']) : null)) {
         return;
     }
     // TODO: Do you really need to reinitialize that?
     $objFWUser = \FWUser::getFWUserObject();
     if ($objUserMail->delete()) {
         self::$arrStatusMsg['ok'][] = $_ARRAYLANG['TXT_ACCESS_EMAIL_DEL_SUCCESS'];
     } else {
         self::$arrStatusMsg['error'] = array_merge(self::$arrStatusMsg['error'], $objUserMail->getErrorMsg());
     }
 }
 /**
  * Shows the database-maintenance page.
  *
  * @global     \Cx\Core\Html\Sigma
  * @global     ADONewConnection
  * @global     array
  */
 function showMaintenance()
 {
     global $objTemplate, $objDatabase, $_ARRAYLANG;
     $this->_strPageTitle = $_ARRAYLANG['TXT_DBM_MAINTENANCE_TITLE'];
     $objTemplate->addBlockfile('ADMIN_CONTENT', 'maintenance', 'dbm_maintenance.html');
     $objTemplate->setVariable(array('TXT_MAINTENANCE_OPTIMIZE_TITLE' => $_ARRAYLANG['TXT_DBM_MAINTENANCE_OPTIMIZE_DB'], 'TXT_MAINTENANCE_OPTIMIZE_BUTTON' => $_ARRAYLANG['TXT_DBM_MAINTENANCE_OPTIMIZE_START'], 'TXT_MAINTENANCE_OPTIMIZE_DESC' => $_ARRAYLANG['TXT_DBM_MAINTENANCE_OPTIMIZE_DESC'], 'TXT_MAINTENANCE_REPAIR_TITLE' => $_ARRAYLANG['TXT_DBM_MAINTENANCE_REPAIR_DB'], 'TXT_MAINTENANCE_REPAIR_BUTTON' => $_ARRAYLANG['TXT_DBM_MAINTENANCE_REPAIR_START'], 'TXT_MAINTENANCE_REPAIR_DESC' => $_ARRAYLANG['TXT_DBM_MAINTENANCE_REPAIR_DESC'], 'TXT_MAINTENANCE_TITLE_TABLES' => $_ARRAYLANG['TXT_DBM_MAINTENANCE_TABLES'], 'TXT_MAINTENANCE_TABLES_NAME' => $_ARRAYLANG['TXT_DBM_MAINTENANCE_TABLENAME'], 'TXT_MAINTENANCE_TABLES_ROWS' => $_ARRAYLANG['TXT_DBM_MAINTENANCE_ROWS'], 'TXT_MAINTENANCE_TABLES_DATA' => $_ARRAYLANG['TXT_DBM_MAINTENANCE_DATA_SIZE'], 'TXT_MAINTENANCE_TABLES_INDEXES' => $_ARRAYLANG['TXT_DBM_MAINTENANCE_INDEX_SIZE'], 'TXT_MAINTENANCE_TABLES_BACKLOG' => $_ARRAYLANG['TXT_DBM_STATUS_BACKOG'], 'TXT_MAINTENANCE_TABLES_SELECT_ALL' => $_ARRAYLANG['TXT_SELECT_ALL'], 'TXT_MAINTENANCE_TABLES_DESELECT_ALL' => $_ARRAYLANG['TXT_DESELECT_ALL'], 'TXT_MAINTENANCE_TABLES_SUBMIT_SELECT' => $_ARRAYLANG['TXT_MULTISELECT_SELECT'], 'TXT_MAINTENANCE_TABLES_SUBMIT_OPTIMIZE' => $_ARRAYLANG['TXT_DBM_MAINTENANCE_OPTIMIZE_START'], 'TXT_MAINTENANCE_TABLES_SUBMIT_REPAIR' => $_ARRAYLANG['TXT_DBM_MAINTENANCE_REPAIR_START']));
     //Get tables
     $objResult = $objDatabase->Execute('SHOW TABLE STATUS LIKE "' . DBPREFIX . '%"');
     $intRowCounter = 0;
     //Iterate through tables
     while (!$objResult->EOF) {
         $isInnoDbEngine = $objResult->fields['Engine'] == 'InnoDB';
         $objTemplate->setGlobalVariable(array('TXT_MAINTENANCE_SHOW_TABLE' => $_ARRAYLANG['TXT_DBM_SHOW_TABLE_TITLE'], 'MAINTENANCE_TABLES_NAME' => $objResult->fields['Name']));
         $objTemplate->setVariable(array('MAINTENANCE_TABLES_ROW' => !$isInnoDbEngine && $objResult->fields['Data_free'] != 0 ? 'Warn' : ($intRowCounter % 2 == 0 ? 2 : 1), 'MAINTENANCE_TABLES_ROWS' => $objResult->fields['Rows'], 'MAINTENANCE_TABLES_DATA' => $this->convertBytesToKBytes($objResult->fields['Data_length']), 'MAINTENANCE_TABLES_INDEXES' => $this->convertBytesToKBytes($objResult->fields['Index_length']), 'MAINTENANCE_TABLES_BACKLOG' => $isInnoDbEngine ? '0' : $this->convertBytesToKBytes($objResult->fields['Data_free'])));
         if (\Permission::hasAllAccess()) {
             $objTemplate->touchblock('showTableContentLink');
             $objTemplate->hideBlock('showTableContentNoLink');
         } else {
             $objTemplate->touchblock('showTableContentNoLink');
             $objTemplate->hideBlock('showTableContentLink');
         }
         $objTemplate->parse('showTables');
         ++$intRowCounter;
         $objResult->MoveNext();
     }
 }