/** * Edit the news, or if $copy is true, it copies an entry * * @global ADONewConnection * @global array * @global array * @param string $pageContent */ function edit($copy = false) { global $objDatabase, $_ARRAYLANG, $_CONFIG; \JS::activate('cx'); if (!empty($this->arrSettings['news_use_tags'])) { \JS::registerJS('lib/javascript/tag-it/js/tag-it.min.js'); \JS::registerCss('lib/javascript/tag-it/css/tag-it.css'); } $newsTagId = 'newsTags'; \FWUser::getUserLiveSearch(); if (!$this->hasCategories()) { return $this->manageCategories(); } $objFWUser = \FWUser::getFWUserObject(); $status = ''; $this->_objTpl->loadTemplateFile('module_news_modify.html', true, true); $this->pageTitle = $copy ? $_ARRAYLANG['TXT_CREATE_NEWS'] : $_ARRAYLANG['TXT_EDIT_NEWS_CONTENT']; $catrow = 'row2'; if ($this->arrSettings['news_use_types'] == 1) { $catrow = 'row1'; } $this->_objTpl->setGlobalVariable(array('TXT_CATEGORY_SELECT' => $_ARRAYLANG['TXT_CATEGORY_SELECT'], 'TXT_COPY' => $_ARRAYLANG['TXT_NEWS_COPY'], 'TXT_NEWS_MESSAGE' => $_ARRAYLANG['TXT_NEWS_MESSAGE'], 'TXT_TITLE' => $_ARRAYLANG['TXT_TITLE'], 'TXT_CATEGORY' => $_ARRAYLANG['TXT_CATEGORY'], 'TXT_NEWS_AUTHOR' => $_ARRAYLANG['TXT_NEWS_AUTHOR'], 'TXT_NEWS_PUBLISHER' => $_ARRAYLANG['TXT_NEWS_PUBLISHER'], 'TXT_CORE_SEARCH_USER' => $_ARRAYLANG['TXT_CORE_SEARCH_USER'], 'NEWS_FORM_CAT_ROW' => $catrow, 'TXT_NEWS_TYPE' => $_ARRAYLANG['TXT_NEWS_TYPE'], 'TXT_EXTERNAL_SOURCE' => $_ARRAYLANG['TXT_EXTERNAL_SOURCE'], 'TXT_LINK' => $_ARRAYLANG['TXT_LINK'], 'TXT_NEWS_NEWS_CONTENT' => $_ARRAYLANG['TXT_NEWS_NEWS_CONTENT'], 'TXT_PUBLISHING' => $_ARRAYLANG['TXT_PUBLISHING'], 'TXT_STARTDATE' => $_ARRAYLANG['TXT_STARTDATE'], 'TXT_ENDDATE' => $_ARRAYLANG['TXT_ENDDATE'], 'TXT_OPTIONAL' => $_ARRAYLANG['TXT_OPTIONAL'], 'TXT_ACTIVE' => $_ARRAYLANG['TXT_ACTIVE'], 'TXT_SCHEDULED_PUBLICATION' => $_ARRAYLANG['TXT_SCHEDULED_PUBLICATION'], 'TXT_DATE' => $_ARRAYLANG['TXT_DATE'], 'TXT_HEADLINES' => $_ARRAYLANG['TXT_HEADLINES'], 'TXT_TOPNEWS' => $_ARRAYLANG['TXT_TOPNEWS'], 'TXT_TEASERS' => $_ARRAYLANG['TXT_TEASERS'], 'TXT_NEWS_TEASER_TEXT' => $_ARRAYLANG['TXT_NEWS_TEASER_TEXT'], 'TXT_IMAGE' => $_ARRAYLANG['TXT_IMAGE'], 'TXT_NEWS_THUMBNAIL' => $_ARRAYLANG['TXT_NEWS_THUMBNAIL'], 'TXT_BROWSE' => $_ARRAYLANG['TXT_BROWSE'], 'TXT_NUMBER_OF_CHARS' => $_ARRAYLANG['TXT_NUMBER_OF_CHARS'], 'TXT_TEASER_SHOW_NEWS_LINK' => $_ARRAYLANG['TXT_TEASER_SHOW_NEWS_LINK'], 'TXT_NEWS_DEFINE_LINK_ALT_TEXT' => $_ARRAYLANG['TXT_NEWS_DEFINE_LINK_ALT_TEXT'], 'TXT_NEWS_INSERT_LINK' => $_ARRAYLANG['TXT_NEWS_INSERT_LINK'], 'TXT_NEWS_REDIRECT_TITLE' => $_ARRAYLANG['TXT_NEWS_REDIRECT_TITLE'], 'TXT_NEWS_MESSAGE_TYPE' => $_ARRAYLANG['TXT_NEWS_MESSAGE_TYPE'], 'TXT_NEWS_TYPE_REDIRECT' => $_ARRAYLANG['TXT_NEWS_REDIRECT_TITLE'], 'TXT_NEWS_TYPE_REDIRECT_HELP' => $_ARRAYLANG['TXT_NEWS_TYPE_REDIRECT_HELP'], 'TXT_NEWS_TYPE_DEFAULT' => $_ARRAYLANG['TXT_NEWS_TYPE_DEFAULT'], 'TXT_NEWS_BASIC_DATA' => $_ARRAYLANG['TXT_BASIC_DATA'], 'TXT_NEWS_MORE_OPTIONS' => $_ARRAYLANG['TXT_MORE_OPTIONS'], 'TXT_NEWS_PERMISSIONS' => $_ARRAYLANG['TXT_NEWS_PERMISSIONS'], 'TXT_NEWS_READ_ACCESS' => $_ARRAYLANG['TXT_NEWS_READ_ACCESS'], 'TXT_NEWS_MODIFY_ACCESS' => $_ARRAYLANG['TXT_NEWS_MODIFY_ACCESS'], 'TXT_NEWS_AVAILABLE_USER_GROUPS' => $_ARRAYLANG['TXT_NEWS_AVAILABLE_USER_GROUPS'], 'TXT_NEWS_ASSIGNED_USER_GROUPS' => $_ARRAYLANG['TXT_NEWS_ASSIGNED_USER_GROUPS'], 'TXT_NEWS_CHECK_ALL' => $_ARRAYLANG['TXT_NEWS_CHECK_ALL'], 'TXT_NEWS_UNCHECK_ALL' => $_ARRAYLANG['TXT_NEWS_UNCHECK_ALL'], 'TXT_NEWS_READ_ALL_ACCESS_DESC' => $_ARRAYLANG['TXT_NEWS_READ_ALL_ACCESS_DESC'], 'TXT_NEWS_RELATED_NEWS' => $_ARRAYLANG['TXT_NEWS_RELATED_NEWS'], 'TXT_NEWS_INCLUDE_NEWS' => $_ARRAYLANG['TXT_NEWS_INCLUDE_NEWS'], 'TXT_NEWS_INCLUDE_RELATED_NEWS_DESC' => $_ARRAYLANG['TXT_NEWS_INCLUDE_RELATED_NEWS_DESC'], 'TXT_NEWS_SEARCH_INFO' => $_ARRAYLANG['TXT_NEWS_SEARCH_INFO'], 'TXT_NEWS_SEARCH_PLACEHOLDER' => $_ARRAYLANG['TXT_NEWS_SEARCH_PLACEHOLDER'], 'TXT_NEWS_READ_SELECTED_ACCESS_DESC' => $_ARRAYLANG['TXT_NEWS_READ_SELECTED_ACCESS_DESC'], 'TXT_NEWS_AVAILABLE_USER_GROUPS' => $_ARRAYLANG['TXT_NEWS_AVAILABLE_USER_GROUPS'], 'TXT_NEWS_ASSIGNED_USER_GROUPS' => $_ARRAYLANG['TXT_NEWS_ASSIGNED_USER_GROUPS'], 'TXT_NEWS_MODIFY_ALL_ACCESS_DESC' => $_ARRAYLANG['TXT_NEWS_MODIFY_ALL_ACCESS_DESC'], 'TXT_NEWS_MODIFY_SELECTED_ACCESS_DESC' => $_ARRAYLANG['TXT_NEWS_MODIFY_SELECTED_ACCESS_DESC'], 'TXT_NEWS_TAGS' => $_ARRAYLANG['TXT_NEWS_TAGS'], 'TXT_NEWS_TAGS_ENABLE' => $_ARRAYLANG['TXT_NEWS_TAGS_ENABLE'], 'NEWS_TAG_ID' => $newsTagId)); $newsid = intval($_REQUEST['newsId']); $objResult = $objDatabase->SelectLimit("SELECT typeid,\n date,\n id,\n redirect,\n source,\n url1,\n url2,\n publisher,\n publisher_id,\n author,\n author_id,\n startdate,\n enddate,\n status,\n userid,\n frontend_access_id,\n backend_access_id,\n teaser_only,\n teaser_show_link,\n teaser_image_path,\n teaser_image_thumbnail_path,\n allow_comments,\n enable_related_news,\n enable_tags\n FROM " . DBPREFIX . "module_news\n WHERE id = '" . $newsid . "'", 1); if ($objResult !== false && !$objResult->EOF && ($this->arrSettings['news_message_protection'] != '1' || \Permission::hasAllAccess() || !$objResult->fields['backend_access_id'] || \Permission::checkAccess($objResult->fields['backend_access_id'], 'dynamic', true) || $objResult->fields['userid'] == $objFWUser->objUser->getId())) { $newsType = $objResult->fields['typeid']; $id = $objResult->fields['id']; $arrLanguages = \FWLanguage::getLanguageArray(); $langData = $this->getLangData($id); $newsComment = $objResult->fields['allow_comments']; $newsAuthorName = $objResult->fields['author']; $newsAuthorId = $objResult->fields['author_id']; $newsPublisherName = $objResult->fields['publisher']; $newsPublisherId = $objResult->fields['publisher_id']; if ($newsPublisherId != 0 && ($objUser = $objFWUser->objUser->getUser($newsPublisherId))) { $newsPublisherName = \FWUser::getParsedUserTitle($objUser); } else { $newsPublisherId = 0; } if ($newsAuthorId != 0 && ($objUser = $objFWUser->objUser->getUser($newsAuthorId))) { $newsAuthorName = \FWUser::getParsedUserTitle($objUser); } else { $newsAuthorId = 0; } $active_lang = array(); $activeLanguage = null; if (isset($_GET['langId']) && in_array($_GET['langId'], \FWLanguage::getIdArray())) { if (!in_array($_GET['langId'], $active_lang)) { $active_lang[] = contrexx_input2raw($_GET['langId']); } $activeLanguage = contrexx_input2raw($_GET['langId']); } if (count($arrLanguages) > 0) { $intLanguageCounter = 0; $arrActiveLang = array(0 => '', 1 => '', 2 => ''); $strJsTabToDiv = ''; $query = "SELECT `lang_id` FROM `" . DBPREFIX . "module_news_locale`\n WHERE `news_id` = " . $newsid . "\n AND `is_active` = '1'"; $activeLangResult = $objDatabase->Execute($query); while (!$activeLangResult->EOF) { $active_lang[] = $activeLangResult->fields['lang_id']; $activeLangResult->MoveNext(); } if (isset($_POST['newsManagerLanguages'])) { $active_lang = array_keys($_POST['newsManagerLanguages']); } foreach ($arrLanguages as $intId => $arrLanguage) { if ($arrLanguage['frontend'] == 1) { $intLanguageId = $arrLanguage['id']; $arrActiveLang[$intLanguageCounter % 3] .= '<input id="languagebar_' . $intLanguageId . '" class="langCheckboxes" ' . (in_array($intLanguageId, $active_lang) ? 'checked="checked"' : '') . ' type="checkbox" name="newsManagerLanguages[' . $intLanguageId . ']" value="1" onclick="switchBoxAndTab(this, \'news_lang_tab_' . $intLanguageId . '\');" /><label for="languagebar_' . $intLanguageId . '">' . $arrLanguage['name'] . ' [' . $arrLanguage['lang'] . ']</label><br />'; ++$intLanguageCounter; } } $this->_objTpl->setVariable(array('TXT_LANGUAGE' => $_ARRAYLANG['TXT_LANGUAGE'], 'EDIT_LANGUAGES_1' => $arrActiveLang[0], 'EDIT_LANGUAGES_2' => $arrActiveLang[1], 'EDIT_LANGUAGES_3' => $arrActiveLang[2])); } $first = true; if (!$activeLanguage) { $activeLanguage = current($active_lang); } foreach ($arrLanguages as $langId => $arrLanguage) { if ($arrLanguage['frontend'] == 1) { $isActive = isset($langData[$langId]) && $langData[$langId]['active'] == 1; $display = $langId == $activeLanguage; // parse tabs $this->_objTpl->setVariable(array('NEWS_LANG_ID' => $langId, 'NEWS_LANG_DISPLAY_STATUS' => $display ? 'active' : 'inactive', 'NEWS_LANG_DISPLAY_STYLE' => in_array($arrLanguage['id'], $active_lang) ? 'inline' : 'none', 'NEWS_LANG_NAME' => contrexx_raw2xhtml($arrLanguage['name']))); $this->_objTpl->parse('news_lang_list'); // parse title $title = isset($_POST['newsTitle'][$langId]) ? contrexx_input2raw($_POST['newsTitle'][$langId]) : ''; if (empty($title)) { $title = isset($langData[$langId]['title']) ? $langData[$langId]['title'] : ''; } $this->_objTpl->setVariable(array('NEWS_LANG_ID' => $langId, 'NEWS_TITLE' => contrexx_raw2xhtml($title), 'NEWS_TITLE_DISPLAY' => $display ? 'block' : 'none')); $this->_objTpl->parse('news_title_list'); // parse teaser text $teaserText = isset($_POST['newsTeaserText'][$langId]) ? contrexx_input2raw($_POST['newsTeaserText'][$langId]) : null; if (!isset($teaserText)) { $teaserText = isset($langData[$langId]['teaser_text']) ? $langData[$langId]['teaser_text'] : ''; } $this->_objTpl->setVariable(array('NEWS_LANG_ID' => $langId, 'NEWS_TEASER_TEXT' => contrexx_raw2xhtml($teaserText), 'NEWS_TEASER_TEXT_LENGTH' => !empty($teaserText) ? strlen($teaserText) : 0, 'NEWS_TITLE_DISPLAY' => $display ? 'block' : 'none')); $this->_objTpl->parse('news_teaser_text_list'); // parse text $text = isset($_POST['news_text'][$langId]) ? $_POST['news_text'][$langId] : null; if (!isset($text)) { $text = isset($langData[$langId]['text']) ? $langData[$langId]['text'] : ''; } $this->_objTpl->setVariable(array('NEWS_LANG_ID' => $langId, 'NEWS_TEXT' => contrexx_raw2xhtml($text))); $this->_objTpl->parse('news_text_list'); if ($display) { $selectedLangId = $langId; $newsText = contrexx_raw2xhtml($text); $first = false; } } } if ($intLanguageCounter == 1) { $this->_objTpl->setVariable('NEWS_LANG_TAB_DISPLAY_STYLE', 'none'); $this->_objTpl->hideBlock('news_language_checkboxes'); } $this->_objTpl->setVariable('NEWS_DEFAULT_LANG', contrexx_raw2xhtml(\FWLanguage::getLanguageParameter($selectedLangId, 'name'))); if ($this->arrSettings['news_use_teaser_text'] != 1) { $this->_objTpl->hideBlock('news_use_teaser_text'); } $teaserShowLink = $objResult->fields['teaser_show_link']; if ($objResult->fields['status'] == 1) { $status = 'checked="checked"'; } $startDate = $objResult->fields['startdate'] !== '0000-00-00 00:00:00' ? strtotime($objResult->fields['startdate']) : 0; $endDate = $objResult->fields['enddate'] !== '0000-00-00 00:00:00' ? strtotime($objResult->fields['enddate']) : 0; if (!empty($startDate) || !empty($endDate)) { $this->_objTpl->setVariable(array('NEWS_SCHEDULED' => 'checked="checked"', 'NEWS_SCHEDULED_DISPLAY' => 'display: block;')); } else { $this->_objTpl->setVariable('NEWS_SCHEDULED_DISPLAY', 'display: none;'); } if (empty($objResult->fields['redirect'])) { $this->_objTpl->setVariable(array('NEWS_TYPE_SELECTION_CONTENT' => 'style="display: block;"', 'NEWS_TYPE_SELECTION_REDIRECT' => 'style="display: none;"', 'NEWS_TYPE_CHECKED_CONTENT' => 'checked="checked"', 'NEWS_TYPE_CHECKED_REDIRECT' => '')); } else { $this->_objTpl->setVariable(array('NEWS_TYPE_SELECTION_CONTENT' => 'style="display: none;"', 'NEWS_TYPE_SELECTION_REDIRECT' => 'style="display: block;"', 'NEWS_TYPE_CHECKED_CONTENT' => '', 'NEWS_TYPE_CHECKED_REDIRECT' => 'checked="checked"')); } $objTeaser = new \Cx\Core_Modules\News\Controller\Teasers(true); $frameIds = ''; $associatedFrameIds = ''; $arrAssociatedFrameIds = explode(';', $objTeaser->arrTeasers[$newsid]['teaser_frames']); foreach ($arrAssociatedFrameIds as $teaserFrameId) { if (empty($teaserFrameId)) { continue; } $associatedFrameIds .= "<option value=\"" . $teaserFrameId . "\">" . $objTeaser->arrTeaserFrames[$teaserFrameId]['name'] . "</option>\n"; } foreach ($objTeaser->arrTeaserFrameNames as $frameName => $frameId) { if (!in_array($frameId, $arrAssociatedFrameIds)) { $frameIds .= "<option value=\"" . $frameId . "\">" . $frameName . "</option>\n"; } } $this->_objTpl->setVariable(array('NEWS_ID' => $copy ? '' : $id, 'NEWS_STORED_ID' => $copy ? '' : $id, 'NEWS_TEXT_PREVIEW' => new \Cx\Core\Wysiwyg\Wysiwyg('newsText', $newsText, 'full'), 'NEWS_REDIRECT' => contrexx_raw2xhtml($objResult->fields['redirect']), 'NEWS_SOURCE' => contrexx_raw2xhtml($objResult->fields['source']), 'NEWS_URL1' => contrexx_raw2xhtml($objResult->fields['url1']), 'NEWS_URL2' => contrexx_raw2xhtml($objResult->fields['url2']), 'NEWS_PUBLISHER_NAME' => contrexx_raw2xhtml($newsPublisherName), 'NEWS_PUBLISHER_ID' => contrexx_raw2xhtml($newsPublisherId), 'NEWS_AUTHOR_NAME' => contrexx_raw2xhtml($newsAuthorName), 'NEWS_AUTHOR_ID' => contrexx_raw2xhtml($newsAuthorId), 'NEWS_CREATE_DATE' => $this->valueFromDate($objResult->fields['date']), 'NEWS_STARTDATE' => $this->valueFromDate($startDate), 'NEWS_ENDDATE' => $this->valueFromDate($endDate), 'NEWS_STATUS' => isset($_GET['validate']) ? 'checked="checked"' : $status, 'NEWS_TEASER_SHOW_LINK_CHECKED' => $teaserShowLink ? 'checked="checked"' : '', 'NEWS_TEASER_IMAGE_PATH' => contrexx_raw2xhtml($objResult->fields['teaser_image_path']), 'NEWS_TEASER_IMAGE_THUMBNAIL_PATH' => contrexx_raw2xhtml($objResult->fields['teaser_image_thumbnail_path']), 'NEWS_DATE' => date('Y-m-d H:i:s'), 'NEWS_SUBMIT_NAME' => isset($_GET['validate']) ? 'validate' : 'store', 'NEWS_SUBMIT_NAME_TEXT' => isset($_GET['validate']) ? $_ARRAYLANG['TXT_CONFIRM'] : $_ARRAYLANG['TXT_STORE'], 'NEWS_MEDIA_BROWSER_BROWSE_BUTTON' => self::getMediaBrowserButton(array('type' => 'button', 'id' => 'newsMediaBrowser', 'style' => 'display:none;'), 'SetUrl'), 'NEWS_RELATED_NEWS_ENABLED_CHECKED' => !empty($objResult->fields['enable_related_news']) ? 'checked="checked"' : '', 'NEWS_TAGS_ENABLED_CHECKED' => !empty($objResult->fields['enable_tags']) ? 'checked="checked"' : '')); if ($this->arrSettings['news_message_protection'] == '1') { if ($this->arrSettings['news_message_protection_restricted'] == '1') { $userGroupIds = $objFWUser->objUser->getAssociatedGroupIds(); } if ($objResult->fields['frontend_access_id']) { $objFrontendGroups = $objFWUser->objGroup->getGroups(array('dynamic' => $objResult->fields['frontend_access_id'])); $arrFrontendGroups = $objFrontendGroups ? $objFrontendGroups->getLoadedGroupIds() : array(); } else { $arrFrontendGroups = array(); } if ($objResult->fields['backend_access_id']) { $objBackendGroups = $objFWUser->objGroup->getGroups(array('dynamic' => $objResult->fields['backend_access_id'])); $arrBackendGroups = $objBackendGroups ? $objBackendGroups->getLoadedGroupIds() : array(); } else { $arrBackendGroups = array(); } $readAccessGroups = ''; $readNotAccessGroups = ''; $modifyAccessGroups = ''; $modifyNotAccessGroups = ''; $objGroup = $objFWUser->objGroup->getGroups(); if ($objGroup) { while (!$objGroup->EOF) { ${$objGroup->getType() == 'frontend' ? in_array($objGroup->getId(), $arrFrontendGroups) ? 'readAccessGroups' : 'readNotAccessGroups' : (in_array($objGroup->getId(), $arrBackendGroups) ? 'modifyAccessGroups' : 'modifyNotAccessGroups')} .= '<option value="' . $objGroup->getId() . '"' . (!\Permission::hasAllAccess() && $this->arrSettings['news_message_protection_restricted'] == '1' && !in_array($objGroup->getId(), $userGroupIds) ? ' disabled="disabled"' : '') . '>' . htmlentities($objGroup->getName(), ENT_QUOTES, CONTREXX_CHARSET) . '</option>'; $objGroup->next(); } } $this->_objTpl->setVariable(array('NEWS_READ_ACCESS_NOT_ASSOCIATED_GROUPS' => $readNotAccessGroups, 'NEWS_READ_ACCESS_ASSOCIATED_GROUPS' => $readAccessGroups, 'NEWS_READ_ACCESS_ALL_CHECKED' => $objResult->fields['frontend_access_id'] ? '' : 'checked="checked"', 'NEWS_READ_ACCESS_SELECTED_CHECKED' => $objResult->fields['frontend_access_id'] ? 'checked="checked"' : '', 'NEWS_READ_ACCESS_DISPLAY' => $objResult->fields['frontend_access_id'] ? '' : 'none', 'NEWS_MODIFY_ACCESS_NOT_ASSOCIATED_GROUPS' => $modifyNotAccessGroups, 'NEWS_MODIFY_ACCESS_ASSOCIATED_GROUPS' => $modifyAccessGroups, 'NEWS_MODIFY_ACCESS_ALL_CHECKED' => $objResult->fields['backend_access_id'] ? '' : 'checked="checked"', 'NEWS_MODIFY_ACCESS_SELECTED_CHECKED' => $objResult->fields['backend_access_id'] ? 'checked="checked"' : '', 'NEWS_MODIFY_ACCESS_DISPLAY' => $objResult->fields['backend_access_id'] ? '' : 'none')); $this->_objTpl->touchBlock('news_permission_tab'); } else { $this->_objTpl->hideBlock('news_permission_tab'); } //Customized News Module Improvements if (!empty($this->arrSettings['news_use_tags'])) { $this->registerTagJsCode(); $newsTagDetails = $this->getNewsTags($id); $newsTags = $newsTagDetails['tagList']; if ($this->_objTpl->blockExists('newsTags')) { foreach ($newsTags as $newsTag) { $this->_objTpl->setVariable('NEWS_TAGS', $newsTag); $this->_objTpl->parse('newsTags'); } } $this->_objTpl->touchBlock('newsTagsBlock'); } else { $this->_objTpl->hideBlock('newsTagsBlock'); } if (!empty($this->arrSettings['use_related_news'])) { $objCx = \ContrexxJavascript::getInstance(); $objCx->setVariable('noResultsMsg', $_ARRAYLANG['TXT_NEWS_NOT_FOUND'], 'news/news-live-search'); \JS::registerJS('core_modules/News/View/Script/news-live-search.js'); \JS::registerCss('core_modules/News/View/Style/news-live-search.css'); //Parsing the related news tags $relatedNewsIds = isset($_POST['relatedNews']) ? contrexx_input2raw($_POST['relatedNews']) : $this->getRelatedNews($id); //Getting the related news ids $this->parseRelatedNewsTags($this->_objTpl, $relatedNewsIds, LANG_ID); $this->_objTpl->touchBlock('relatedNewsBlock'); } else { $this->_objTpl->hideBlock('relatedNewsBlock'); } } else { $this->strErrMessage = $_ARRAYLANG['TXT_NEWS_ENTRY_NOT_FOUND']; $this->overview(); return; } if ($_CONFIG['newsTeasersStatus'] == '1') { $this->_objTpl->parse('newsTeaserOptions'); $this->_objTpl->setVariable(array('TXT_USAGE' => $_ARRAYLANG['TXT_USAGE'], 'TXT_USE_ONLY_TEASER_TEXT' => $_ARRAYLANG['TXT_USE_ONLY_TEASER_TEXT'], 'TXT_TEASER_TEASER_BOXES' => $_ARRAYLANG['TXT_TEASER_TEASER_BOXES'], 'TXT_AVAILABLE_BOXES' => $_ARRAYLANG['TXT_AVAILABLE_BOXES'], 'TXT_SELECT_ALL' => $_ARRAYLANG['TXT_SELECT_ALL'], 'TXT_DESELECT_ALL' => $_ARRAYLANG['TXT_DESELECT_ALL'], 'TXT_ASSOCIATED_BOXES' => $_ARRAYLANG['TXT_ASSOCIATED_BOXES'], 'NEWS_HEADLINES_TEASERS_TXT' => $_ARRAYLANG['TXT_HEADLINES'] . ' / ' . $_ARRAYLANG['TXT_TEASERS'], 'NEWS_USE_ONLY_TEASER_CHECKED' => $objResult->fields['teaser_only'] == '1' ? 'checked="checked"' : '', 'NEWS_TEASER_FRAMES' => $frameIds, 'NEWS_TEASER_ASSOCIATED_FRAMES' => $associatedFrameIds)); } else { $this->_objTpl->hideBlock('newsTeaserOptions'); $this->_objTpl->setVariable('NEWS_HEADLINES_TEASERS_TXT', $_ARRAYLANG['TXT_HEADLINES']); } $categoryRelatedToNews = $this->getNewsRelCategories($id); $this->_objTpl->setVariable('NEWS_CAT_MENU', $this->getCategoryMenu($this->nestedSetRootId, $categoryRelatedToNews)); $news_type_menu = ''; if ($this->arrSettings['news_use_types'] == 1) { $news_type_menu = "<tr class=\"row2\">\n<td nowrap=\"nowrap\">{$_ARRAYLANG['TXT_NEWS_TYPE']}</td><td><select name=\"newsType\"><option value=\"0\">{$_ARRAYLANG['TXT_NO_TYPE']}</option>" . $this->getTypeMenu($newsType) . "</select></td></tr>"; } // Activate Comments $news_comment = ''; if ($this->arrSettings['news_comments_activated'] == 1) { $commentsChecked = $newsComment == 1 ? 'checked="checked"' : ''; $this->_objTpl->setVariable(array('TXT_NEWS_ALLOW_COMMENTS' => $_ARRAYLANG['TXT_NEWS_ALLOW_COMMENTS'], 'NEWS_COMMENT_CHECKED' => $commentsChecked)); } else { $this->_objTpl->hideBlock('news_allow_comments_option'); } $this->_objTpl->setVariable('NEWS_TYPE_MENU', $news_type_menu); $this->_objTpl->setVariable('NEWS_FORM_ACTION', $copy ? 'add' : 'update'); $this->_objTpl->setVariable('NEWS_STORED_FORM_ACTION', 'update'); $this->_objTpl->setVariable('NEWS_TOP_TITLE', $_ARRAYLANG['TXT_EDIT_NEWS_CONTENT']); }
private function showSubmitForm($data, $display) { global $_ARRAYLANG, $_CORELANG; if (!$display) { if ($this->_objTpl->blockExists('news_submit_form')) { $this->_objTpl->hideBlock('news_submit_form'); } return; } $newsTagId = 'newsTags'; if (!empty($this->arrSettings['news_use_tags'])) { \JS::registerJS('lib/javascript/tag-it/js/tag-it.min.js'); \JS::registerCss('lib/javascript/tag-it/css/tag-it.css'); $this->registerTagJsCode(); if ($this->_objTpl->blockExists('newsTags') && !empty($data['newsTags'])) { foreach ($data['newsTags'] as $newsTag) { $this->_objTpl->setVariable(array('NEWS_TAGS' => contrexx_raw2xhtml($newsTag))); $this->_objTpl->parse('newsTags'); } } $this->_objTpl->touchBlock('newsTagsBlock'); } else { $this->_objTpl->hideBlock('newsTagsBlock'); } \JS::activate('chosen'); $jsCodeCategoryChosen = <<<EOF \$J(document).ready(function() { \$J('#newsCat').chosen(); }); EOF; \JS::registerCode($jsCodeCategoryChosen); if (!empty($this->arrSettings['use_related_news'])) { $objCx = \ContrexxJavascript::getInstance(); $objCx->setVariable(array('noResultsMsg' => $_ARRAYLANG['TXT_NEWS_NOT_FOUND'], 'langId' => FRONTEND_LANG_ID), 'news/news-live-search'); \JS::registerJS('core_modules/News/View/Script/news-live-search.js'); if (!empty($data['relatedNews'])) { $this->parseRelatedNewsTags($this->_objTpl, $data['relatedNews'], FRONTEND_LANG_ID); } $this->_objTpl->touchBlock('relatedNewsBlock'); } else { $this->_objTpl->hideBlock('relatedNewsBlock'); } $this->_objTpl->setVariable(array('TXT_NEWS_MESSAGE' => $_ARRAYLANG['TXT_NEWS_MESSAGE'], 'TXT_TITLE' => $_ARRAYLANG['TXT_TITLE'], 'TXT_CATEGORY' => $_ARRAYLANG['TXT_CATEGORY'], 'TXT_TYPE' => $this->arrSettings['news_use_types'] == 1 ? $_ARRAYLANG['TXT_TYPE'] : '', 'TXT_HYPERLINKS' => $_ARRAYLANG['TXT_HYPERLINKS'], 'TXT_EXTERNAL_SOURCE' => $_ARRAYLANG['TXT_EXTERNAL_SOURCE'], 'TXT_LINK' => $_ARRAYLANG['TXT_LINK'], 'TXT_NEWS_REDIRECT_LABEL' => $_ARRAYLANG['TXT_NEWS_REDIRECT_LABEL'], 'TXT_NEWS_NEWS_CONTENT' => $_ARRAYLANG['TXT_NEWS_NEWS_CONTENT'], 'TXT_NEWS_TEASER_TEXT' => $_ARRAYLANG['TXT_NEWS_TEASER_TEXT'], 'TXT_SUBMIT_NEWS' => $_ARRAYLANG['TXT_SUBMIT_NEWS'], 'TXT_NEWS_REDIRECT' => $_ARRAYLANG['TXT_NEWS_REDIRECT'], 'TXT_NEWS_NEWS_URL' => $_ARRAYLANG['TXT_NEWS_NEWS_URL'], 'TXT_TYPE' => $_ARRAYLANG['TXT_TYPE'], 'TXT_NEWS_INCLUDE_NEWS' => $_ARRAYLANG['TXT_NEWS_INCLUDE_NEWS'], 'TXT_NEWS_INCLUDE_RELATED_NEWS_DESC' => $_ARRAYLANG['TXT_NEWS_INCLUDE_RELATED_NEWS_DESC'], 'TXT_NEWS_SEARCH_INFO' => $_ARRAYLANG['TXT_NEWS_SEARCH_INFO'], 'TXT_NEWS_SEARCH_PLACEHOLDER' => $_ARRAYLANG['TXT_NEWS_SEARCH_PLACEHOLDER'], 'TXT_NEWS_TAGS' => $_ARRAYLANG['TXT_NEWS_TAGS'], 'NEWS_TEXT' => new \Cx\Core\Wysiwyg\Wysiwyg('newsText', $data['newsText'], 'bbcode'), 'NEWS_CAT_MENU' => $this->getCategoryMenu($this->nestedSetRootId, array($data['newsCat'])), 'NEWS_TYPE_MENU' => $this->arrSettings['news_use_types'] == 1 ? $this->getTypeMenu($data['newsType']) : '', 'NEWS_TITLE' => contrexx_raw2xhtml($data['newsTitle']), 'NEWS_SOURCE' => contrexx_raw2xhtml($data['newsSource']), 'NEWS_URL1' => contrexx_raw2xhtml($data['newsUrl1']), 'NEWS_URL2' => contrexx_raw2xhtml($data['newsUrl2']), 'NEWS_TEASER_TEXT' => contrexx_raw2xhtml($data['newsTeaserText']), 'NEWS_REDIRECT' => contrexx_raw2xhtml($data['newsRedirect']), 'NEWS_TAG_ID' => $newsTagId)); if ($this->arrSettings['news_use_teaser_text'] != '1' && $this->_objTpl->blockExists('news_use_teaser_text')) { $this->_objTpl->hideBlock('news_use_teaser_text'); } if (\FWUser::getFWUserObject()->objUser->login()) { if ($this->_objTpl->blockExists('news_submit_form_captcha')) { $this->_objTpl->hideBlock('news_submit_form_captcha'); } } else { $this->_objTpl->setVariable(array('TXT_NEWS_CAPTCHA' => $_CORELANG['TXT_CORE_CAPTCHA'], 'NEWS_CAPTCHA_CODE' => \Cx\Core_Modules\Captcha\Controller\Captcha::getInstance()->getCode())); if ($this->_objTpl->blockExists('news_submit_form_captcha')) { $this->_objTpl->parse('news_submit_form_captcha'); } } $this->parseCategoryMenu(); $this->parseNewsTypeMenu(); if ($this->_objTpl->blockExists('news_submit_form')) { $this->_objTpl->parse('news_submit_form'); } }
/** * Show modify block * * Show the block modification page * * @access private * @global array * @see blockLibrary::_getBlockContent(), blockLibrary::blockNamePrefix */ private function _showModifyBlock($copy = false) { global $_ARRAYLANG; \JS::activate('cx'); \JS::activate('ckeditor'); \JS::activate('jqueryui'); \JS::registerJS('lib/javascript/tag-it/js/tag-it.min.js'); \JS::registerCss('lib/javascript/tag-it/css/tag-it.css'); $mediaBrowserCkeditor = new MediaBrowser(); $mediaBrowserCkeditor->setCallback('ckeditor_image_button'); $mediaBrowserCkeditor->setOptions(array('id' => 'ckeditor_image_button', 'type' => 'button', 'style' => 'display:none')); $blockId = !empty($_REQUEST['blockId']) ? intval($_REQUEST['blockId']) : 0; $blockCat = 0; $blockName = ''; $blockStart = 0; $blockEnd = 0; $blockRandom = 0; $blockRandom2 = 0; $blockRandom3 = 0; $blockRandom4 = 0; $blockGlobal = 0; $blockDirect = 0; $blockCategory = 0; $blockWysiwygEditor = 1; $blockContent = array(); $blockAssociatedPageIds = array(); $blockLangActive = array(); $blockGlobalAssociatedPageIds = array(); $blockDirectAssociatedPageIds = array(); $blockCategoryAssociatedPageIds = array(); $this->_objTpl->loadTemplateFile('module_block_modify.html'); $this->_objTpl->setGlobalVariable(array('TXT_BLOCK_CONTENT' => $_ARRAYLANG['TXT_BLOCK_CONTENT'], 'TXT_BLOCK_NAME' => $_ARRAYLANG['TXT_BLOCK_NAME'], 'TXT_BLOCK_RANDOM' => $_ARRAYLANG['TXT_BLOCK_RANDOM'], 'TXT_BLOCK_GLOBAL' => $_ARRAYLANG['TXT_BLOCK_SHOW_IN_GLOBAL'], 'TXT_BLOCK_SAVE' => $_ARRAYLANG['TXT_BLOCK_SAVE'], 'TXT_BLOCK_DEACTIVATE' => $_ARRAYLANG['TXT_BLOCK_DEACTIVATE'], 'TXT_BLOCK_ACTIVATE' => $_ARRAYLANG['TXT_BLOCK_ACTIVATE'], 'TXT_DONT_SHOW_ON_PAGES' => $_ARRAYLANG['TXT_DONT_SHOW_ON_PAGES'], 'TXT_SHOW_ON_ALL_PAGES' => $_ARRAYLANG['TXT_SHOW_ON_ALL_PAGES'], 'TXT_SHOW_ON_SELECTED_PAGES' => $_ARRAYLANG['TXT_SHOW_ON_SELECTED_PAGES'], 'TXT_BLOCK_CATEGORY' => $_ARRAYLANG['TXT_BLOCK_CATEGORY'], 'TXT_BLOCK_NONE' => $_ARRAYLANG['TXT_BLOCK_NONE'], 'TXT_BLOCK_SHOW_FROM' => $_ARRAYLANG['TXT_BLOCK_SHOW_FROM'], 'TXT_BLOCK_SHOW_UNTIL' => $_ARRAYLANG['TXT_BLOCK_SHOW_UNTIL'], 'TXT_BLOCK_SHOW_TIMED' => $_ARRAYLANG['TXT_BLOCK_SHOW_TIMED'], 'TXT_BLOCK_SHOW_ALWAYS' => $_ARRAYLANG['TXT_BLOCK_SHOW_ALWAYS'], 'TXT_BLOCK_LANG_SHOW' => $_ARRAYLANG['TXT_BLOCK_SHOW_BLOCK_IN_THIS_LANGUAGE'], 'TXT_BLOCK_BASIC_DATA' => $_ARRAYLANG['TXT_BLOCK_BASIC_DATA'], 'TXT_BLOCK_ADDITIONAL_OPTIONS' => $_ARRAYLANG['TXT_BLOCK_ADDITIONAL_OPTIONS'], 'TXT_BLOCK_SELECTED_PAGES' => $_ARRAYLANG['TXT_BLOCK_SELECTED_PAGES'], 'TXT_BLOCK_AVAILABLE_PAGES' => $_ARRAYLANG['TXT_BLOCK_AVAILABLE_PAGES'], 'TXT_BLOCK_SELECT_ALL' => $_ARRAYLANG['TXT_BLOCK_SELECT_ALL'], 'TXT_BLOCK_UNSELECT_ALL' => $_ARRAYLANG['TXT_BLOCK_UNSELECT_ALL'], 'TXT_BLOCK_GLOBAL_PLACEHOLDERS' => $_ARRAYLANG['TXT_BLOCK_GLOBAL_PLACEHOLDERS'], 'TXT_BLOCK_GLOBAL_PLACEHOLDERS_INFO' => $_ARRAYLANG['TXT_BLOCK_GLOBAL_PLACEHOLDERS_INFO'], 'TXT_BLOCK_DIRECT_PLACEHOLDERS' => $_ARRAYLANG['TXT_BLOCK_DIRECT_PLACEHOLDERS'], 'TXT_BLOCK_DIRECT_PLACEHOLDERS_INFO' => $_ARRAYLANG['TXT_BLOCK_DIRECT_PLACEHOLDERS_INFO'], 'TXT_BLOCK_CATEGORY_PLACEHOLDERS' => $_ARRAYLANG['TXT_BLOCK_CATEGORY_PLACEHOLDERS'], 'TXT_BLOCK_CATEGORY_PLACEHOLDERS_INFO' => $_ARRAYLANG['TXT_BLOCK_CATEGORY_PLACEHOLDERS_INFO'], 'TXT_BLOCK_DISPLAY_TIME' => $_ARRAYLANG['TXT_BLOCK_DISPLAY_TIME'], 'TXT_BLOCK_FORM_DESC' => $_ARRAYLANG['TXT_BLOCK_CONTENT'], 'TXT_BLOCK_USE_WYSIWYG_EDITOR' => $_ARRAYLANG['TXT_BLOCK_USE_WYSIWYG_EDITOR'], 'TXT_BLOCK_TARGETING' => $_ARRAYLANG['TXT_BLOCK_TARGETING'], 'TXT_BLOCK_TARGETING_SHOW_PANE' => $_ARRAYLANG['TXT_BLOCK_TARGETING_SHOW_PANE'], 'TXT_BLOCK_TARGETING_ALL_USERS' => $_ARRAYLANG['TXT_BLOCK_TARGETING_ALL_USERS'], 'TXT_BLOCK_TARGETING_VISITOR_CONDITION_BELOW' => $_ARRAYLANG['TXT_BLOCK_TARGETING_VISITOR_CONDITION_BELOW'], 'TXT_BLOCK_TARGETING_INCLUDE' => $_ARRAYLANG['TXT_BLOCK_TARGETING_INCLUDE'], 'TXT_BLOCK_TARGETING_EXCLUDE' => $_ARRAYLANG['TXT_BLOCK_TARGETING_EXCLUDE'], 'TXT_BLOCK_TARGETING_TYPE_LOCATION' => $_ARRAYLANG['TXT_BLOCK_TARGETING_TYPE_LOCATION'], 'TXT_BLOCK_TARGETING_GEOIP_DISABLED_WARNING' => $_ARRAYLANG['TXT_BLOCK_TARGETING_GEOIP_DISABLED_WARNING'])); $targetingStatus = isset($_POST['targeting_status']) ? contrexx_input2int($_POST['targeting_status']) : 0; $targeting = array(); foreach ($this->availableTargeting as $targetingType) { $targetingArr = isset($_POST['targeting'][$targetingType]) ? $_POST['targeting'][$targetingType] : array(); if (empty($targetingArr)) { continue; } $targeting[$targetingType] = array('filter' => !empty($targetingArr['filter']) && in_array($targetingArr['filter'], array('include', 'exclude')) ? contrexx_input2raw($targetingArr['filter']) : 'include', 'value' => isset($targetingArr['value']) ? contrexx_input2raw($targetingArr['value']) : array()); } if (isset($_POST['block_save_block'])) { $blockCat = !empty($_POST['blockCat']) ? intval($_POST['blockCat']) : 0; $blockContent = isset($_POST['blockFormText_']) ? array_map('contrexx_input2raw', $_POST['blockFormText_']) : array(); $blockName = !empty($_POST['blockName']) ? contrexx_input2raw($_POST['blockName']) : $_ARRAYLANG['TXT_BLOCK_NO_NAME']; $blockStart = strtotime($_POST['inputStartDate']); $blockEnd = strtotime($_POST['inputEndDate']); $blockRandom = !empty($_POST['blockRandom']) ? intval($_POST['blockRandom']) : 0; $blockRandom2 = !empty($_POST['blockRandom2']) ? intval($_POST['blockRandom2']) : 0; $blockRandom3 = !empty($_POST['blockRandom3']) ? intval($_POST['blockRandom3']) : 0; $blockRandom4 = !empty($_POST['blockRandom4']) ? intval($_POST['blockRandom4']) : 0; $blockWysiwygEditor = isset($_POST['wysiwyg_editor']) ? 1 : 0; $blockLangActive = isset($_POST['blockFormLanguages']) ? array_map('intval', $_POST['blockFormLanguages']) : array(); // placeholder configurations // global block // 0 = not activated , 1 = on all pages , 2 = selected pages $blockGlobal = !empty($_POST['blockGlobal']) ? intval($_POST['blockGlobal']) : 0; // direct block and category block placeholders // 0 = on all pages , 1 = selected pages $blockDirect = !empty($_POST['blockDirect']) ? intval($_POST['blockDirect']) : 0; $blockCategory = !empty($_POST['blockCategory']) ? intval($_POST['blockCategory']) : 0; // block on page relations for each placeholder $blockGlobalAssociatedPageIds = isset($_POST['globalSelectedPagesList']) ? array_map('intval', explode(",", $_POST['globalSelectedPagesList'])) : array(); $blockDirectAssociatedPageIds = isset($_POST['directSelectedPagesList']) ? array_map('intval', explode(",", $_POST['directSelectedPagesList'])) : array(); $blockCategoryAssociatedPageIds = isset($_POST['categorySelectedPagesList']) ? array_map('intval', explode(",", $_POST['categorySelectedPagesList'])) : array(); if ($blockId) { if ($this->_updateBlock($blockId, $blockCat, $blockContent, $blockName, $blockStart, $blockEnd, $blockRandom, $blockRandom2, $blockRandom3, $blockRandom4, $blockWysiwygEditor, $blockLangActive)) { if ($this->storePlaceholderSettings($blockId, $blockGlobal, $blockDirect, $blockCategory, $blockGlobalAssociatedPageIds, $blockDirectAssociatedPageIds, $blockCategoryAssociatedPageIds)) { $this->storeTargetingSettings($blockId, $targetingStatus, $targeting); \Cx\Core\Csrf\Controller\Csrf::header('location: index.php?cmd=Block&modified=true&blockname=' . $blockName); exit; } } $this->_strErrMessage = $_ARRAYLANG['TXT_BLOCK_BLOCK_COULD_NOT_BE_UPDATED']; } else { if ($blockId = $this->_addBlock($blockCat, $blockContent, $blockName, $blockStart, $blockEnd, $blockRandom, $blockRandom2, $blockRandom3, $blockRandom4, $blockWysiwygEditor, $blockLangActive)) { if ($this->storePlaceholderSettings($blockId, $blockGlobal, $blockDirect, $blockCategory, $blockGlobalAssociatedPageIds, $blockDirectAssociatedPageIds, $blockCategoryAssociatedPageIds)) { $this->storeTargetingSettings($blockId, $targetingStatus, $targeting); \Cx\Core\Csrf\Controller\Csrf::header('location: index.php?cmd=Block&added=true&blockname=' . $blockName); exit; } } $this->_strErrMessage = $_ARRAYLANG['TXT_BLOCK_BLOCK_COULD_NOT_BE_ADDED']; } } elseif (($arrBlock = $this->_getBlock($blockId)) !== false) { $blockStart = $arrBlock['start']; $blockEnd = $arrBlock['end']; $blockCat = $arrBlock['cat']; $blockRandom = $arrBlock['random']; $blockRandom2 = $arrBlock['random2']; $blockRandom3 = $arrBlock['random3']; $blockRandom4 = $arrBlock['random4']; $blockWysiwygEditor = $arrBlock['wysiwyg_editor']; $blockContent = $arrBlock['content']; $blockLangActive = $arrBlock['lang_active']; $blockName = $arrBlock['name']; $blockGlobal = $arrBlock['global']; $blockDirect = $arrBlock['direct']; $blockCategory = $arrBlock['category']; $blockGlobalAssociatedPageIds = $this->_getAssociatedPageIds($blockId, 'global'); $blockDirectAssociatedPageIds = $this->_getAssociatedPageIds($blockId, 'direct'); $blockCategoryAssociatedPageIds = $this->_getAssociatedPageIds($blockId, 'category'); $targeting = $this->loadTargetingSettings($blockId); if (!empty($targeting)) { $targetingStatus = 1; } } $pageTitle = $blockId != 0 ? sprintf($copy ? $_ARRAYLANG['TXT_BLOCK_COPY_BLOCK'] : $_ARRAYLANG['TXT_BLOCK_MODIFY_BLOCK'], contrexx_raw2xhtml($blockName)) : $_ARRAYLANG['TXT_BLOCK_ADD_BLOCK']; $this->_pageTitle = $pageTitle; if ($copy) { $blockId = 0; } $this->_objTpl->setVariable(array('BLOCK_ID' => $blockId, 'BLOCK_MODIFY_TITLE' => $pageTitle, 'BLOCK_NAME' => contrexx_raw2xhtml($blockName), 'BLOCK_CATEGORIES_PARENT_DROPDOWN' => $this->_getCategoriesDropdown($blockCat), 'BLOCK_START' => !empty($blockStart) ? strftime('%Y-%m-%d %H:%M', $blockStart) : $blockStart, 'BLOCK_END' => !empty($blockEnd) ? strftime('%Y-%m-%d %H:%M', $blockEnd) : $blockEnd, 'BLOCK_WYSIWYG_EDITOR' => $blockWysiwygEditor == 1 ? 'checked="checked"' : '', 'BLOCK_RANDOM' => $blockRandom == '1' ? 'checked="checked"' : '', 'BLOCK_RANDOM_2' => $blockRandom2 == '1' ? 'checked="checked"' : '', 'BLOCK_RANDOM_3' => $blockRandom3 == '1' ? 'checked="checked"' : '', 'BLOCK_RANDOM_4' => $blockRandom4 == '1' ? 'checked="checked"' : '', 'BLOCK_GLOBAL_0' => $blockGlobal == '0' ? 'checked="checked"' : '', 'BLOCK_GLOBAL_1' => $blockGlobal == '1' ? 'checked="checked"' : '', 'BLOCK_GLOBAL_2' => $blockGlobal == '2' ? 'checked="checked"' : '', 'BLOCK_GLOBAL_SHOW_PAGE_SELECTOR' => $blockGlobal == '2' ? 'block' : 'none', 'BLOCK_DIRECT_0' => $blockDirect == '0' ? 'checked="checked"' : '', 'BLOCK_DIRECT_1' => $blockDirect == '1' ? 'checked="checked"' : '', 'BLOCK_DIRECT_SHOW_PAGE_SELECTOR' => $blockDirect == '1' ? 'block' : 'none', 'BLOCK_CATEGORY_0' => $blockCategory == '0' ? 'checked="checked"' : '', 'BLOCK_CATEGORY_1' => $blockCategory == '1' ? 'checked="checked"' : '', 'BLOCK_CATEGORY_SHOW_PAGE_SELECTOR' => $blockCategory == '1' ? 'block' : 'none', 'BLOCK_WYSIWYG_MEDIABROWSER' => $mediaBrowserCkeditor->getXHtml(), 'BLOCK_TARGETING_ALL_USERS' => $targetingStatus == 0 ? 'checked="checked"' : '', 'BLOCK_TARGETING_VISITOR_CONDITION_BELOW' => $targetingStatus == 1 ? 'checked="checked"' : '', 'BLOCK_TARGETING_COUNTRY_INCLUDE' => !empty($targeting['country']) && $targeting['country']['filter'] == 'include' ? 'selected="selected"' : '', 'BLOCK_TARGETING_COUNTRY_EXCLUDE' => !empty($targeting['country']) && $targeting['country']['filter'] == 'exclude' ? 'selected="selected"' : '')); if (!empty($targeting['country']) && !empty($targeting['country']['value'])) { foreach ($targeting['country']['value'] as $countryId) { $countryName = \Cx\Core\Country\Controller\Country::getNameById($countryId); if (empty($countryName)) { continue; } $this->_objTpl->setVariable(array('BLOCK_TARGET_COUNTRY_ID' => contrexx_raw2xhtml($countryId), 'BLOCK_TARGET_COUNTRY_NAME' => contrexx_raw2xhtml($countryName))); $this->_objTpl->parse('block_targeting_country'); } } $jsonData = new \Cx\Core\Json\JsonData(); $pageTitlesTree = $jsonData->data('node', 'getPageTitlesTree'); $pageTitlesTree = $pageTitlesTree['data']; $objJs = \ContrexxJavascript::getInstance(); $blockGlobalPageSelects = $this->getPageSelections($pageTitlesTree, $blockGlobalAssociatedPageIds); $blockDirectPageSelects = $this->getPageSelections($pageTitlesTree, $blockDirectAssociatedPageIds); $blockCategoryPageSelects = $this->getPageSelections($pageTitlesTree, $blockCategoryAssociatedPageIds); $objJs->setVariable('globalPagesUnselectedOptions', $jsonData->json($blockGlobalPageSelects[1]), 'block'); $objJs->setVariable('globalPagesSelectedOptions', $jsonData->json($blockGlobalPageSelects[0]), 'block'); $objJs->setVariable('directPagesUnselectedOptions', $jsonData->json($blockDirectPageSelects[1]), 'block'); $objJs->setVariable('directPagesSelectedOptions', $jsonData->json($blockDirectPageSelects[0]), 'block'); $objJs->setVariable('categoryPagesUnselectedOptions', $jsonData->json($blockCategoryPageSelects[1]), 'block'); $objJs->setVariable('categoryPagesSelectedOptions', $jsonData->json($blockCategoryPageSelects[0]), 'block'); $objJs->setVariable('ckeditorconfigpath', substr(\Env::get('ClassLoader')->getFilePath(ASCMS_CORE_PATH . '/Wysiwyg/ckeditor.config.js.php'), strlen(ASCMS_DOCUMENT_ROOT) + 1), 'block'); $arrActiveSystemFrontendLanguages = \FWLanguage::getActiveFrontendLanguages(); $this->parseLanguageOptionsByPlaceholder($arrActiveSystemFrontendLanguages, 'global'); $this->parseLanguageOptionsByPlaceholder($arrActiveSystemFrontendLanguages, 'direct'); $this->parseLanguageOptionsByPlaceholder($arrActiveSystemFrontendLanguages, 'category'); if (count($arrActiveSystemFrontendLanguages) > 0) { $intLanguageCounter = 0; $arrLanguages = array(0 => '', 1 => '', 2 => ''); $strJsTabToDiv = ''; foreach ($arrActiveSystemFrontendLanguages as $langId => $arrLanguage) { $boolLanguageIsActive = $blockId == 0 && $intLanguageCounter == 0 ? true : (isset($blockLangActive[$langId]) && $blockLangActive[$langId] == 1 ? true : false); $arrLanguages[$intLanguageCounter % 3] .= '<input id="languagebar_' . $langId . '" ' . ($boolLanguageIsActive ? 'checked="checked"' : '') . ' type="checkbox" name="blockFormLanguages[' . $langId . ']" value="1" onclick="switchBoxAndTab(this, \'lang_blockContent_' . $langId . '\');" /><label for="languagebar_' . $langId . '">' . contrexx_raw2xhtml($arrLanguage['name']) . ' [' . $arrLanguage['lang'] . ']</label><br />'; $strJsTabToDiv .= 'arrTabToDiv["lang_blockContent_' . $langId . '"] = "langTab_' . $langId . '";' . "\n"; ++$intLanguageCounter; } $this->_objTpl->setVariable(array('TXT_BLOCK_LANGUAGE' => $_ARRAYLANG['TXT_BLOCK_LANGUAGE'], 'EDIT_LANGUAGES_1' => $arrLanguages[0], 'EDIT_LANGUAGES_2' => $arrLanguages[1], 'EDIT_LANGUAGES_3' => $arrLanguages[2], 'EDIT_JS_TAB_TO_DIV' => $strJsTabToDiv)); } $arrLanguages = \FWLanguage::getLanguageArray(); $i = 0; $activeFlag = 0; foreach ($arrLanguages as $langId => $arrLanguage) { if ($arrLanguage['frontend'] != 1) { continue; } $tmpBlockContent = isset($blockContent[$langId]) ? $blockContent[$langId] : ''; $tmpBlockLangActive = isset($blockLangActive[$langId]) ? $blockLangActive[$langId] : 0; $tmpBlockContent = preg_replace('/\\{([A-Z0-9_-]+)\\}/', '[[\\1]]', $tmpBlockContent); if ($blockId != 0) { if (!$activeFlag && isset($blockLangActive[$langId])) { $activeClass = 'active'; $activeFlag = 1; } } elseif (!$activeFlag) { $activeClass = 'active'; $activeFlag = 1; } $this->_objTpl->setVariable(array('BLOCK_LANG_TAB_LANG_ID' => intval($langId), 'BLOCK_LANG_TAB_CLASS' => isset($activeClass) ? $activeClass : '', 'TXT_BLOCK_LANG_TAB_LANG_NAME' => contrexx_raw2xhtml($arrLanguage['name']), 'BLOCK_LANGTAB_DISPLAY' => $tmpBlockLangActive == 1 ? 'display:inline;' : ($blockId == 0 && $i == 0 ? 'display:inline;' : 'display:none;'))); $this->_objTpl->parse('block_language_tabs'); $this->_objTpl->setVariable(array('BLOCK_LANG_ID' => intval($langId), 'BLOCK_CONTENT_TEXT_HIDDEN' => contrexx_raw2xhtml($tmpBlockContent))); $this->_objTpl->parse('block_language_content'); $activeClass = ''; $i++; } if (!$this->getGeoIpComponent() || !$this->getGeoIpComponent()->getGeoIpServiceStatus()) { $this->_objTpl->touchBlock('warning_geoip_disabled'); } else { $this->_objTpl->hideBlock('warning_geoip_disabled'); } }