public function runRepublishing() { $this->initRepublishing(); FWLanguage::init(); $langIds = array_keys(FWLanguage::getLanguageArray()); foreach ($langIds as $id) { $this->createRSS($id); } }
/** * Initialize the mail template array * * Uses the given language ID, if any, or the language set in the * LANG_ID global constant. * Upon success, stores the language ID used in the $lang_id class * variable. * @param integer $lang_id The optional language ID * @return boolean True on success, false otherwise */ static function init($lang_id = 0) { global $objDatabase; // The array has been initialized with that language already if (self::$lang_id === $lang_id) { return true; } // Reset the language ID used self::$lang_id = false; // Use the current language if none is specified if (empty($lang_id)) { $lang_id = FRONTEND_LANG_ID; } self::$arrTemplate = array(); $arrLanguages = FWLanguage::getLanguageArray(); foreach ($arrLanguages as $arrLanguage) { if ($arrLanguage['frontend'] && $arrLanguage['is_default'] == 'true') { $defaultLangId = $arrLanguage['id']; break; } } $objResult = $objDatabase->Execute("\n SELECT `mail`.`id`, `mail`.`tplname`, `mail`.`protected`\n FROM `" . DBPREFIX . "module_shop" . MODULE_INDEX . "_mail` AS `mail`"); if (!$objResult) { return false; } while (!$objResult->EOF) { $id = $objResult->fields['id']; self::$arrTemplate[$id] = array('id' => $id, 'name' => $objResult->fields['tplname'], 'protected' => $objResult->fields['protected'], 'available' => false); $objResult->MoveNext(); } $objResult = $objDatabase->Execute("\n SELECT `content`.`tpl_id`,\n `content`.`from_mail`, `content`.`xsender`,\n `content`.`subject`, `content`.`message`\n FROM `" . DBPREFIX . "module_shop" . MODULE_INDEX . "_mail_content` AS `content`\n ORDER BY FIELD(`content`.`lang_id`, {$defaultLangId}, {$lang_id}) DESC"); if (!$objResult) { return false; } while (!$objResult->EOF) { $id = $objResult->fields['tpl_id']; if (!self::$arrTemplate[$id]['available']) { self::$arrTemplate[$id]['available'] = true; self::$arrTemplate[$id]['from'] = $objResult->fields['from_mail']; self::$arrTemplate[$id]['sender'] = $objResult->fields['xsender']; self::$arrTemplate[$id]['subject'] = $objResult->fields['subject']; self::$arrTemplate[$id]['message'] = $objResult->fields['message']; } $objResult->MoveNext(); } // Remember the language used self::$lang_id = $lang_id; return true; }
/** * Writes the XML-Sitemap in all langs (if activated in config) * @global type $_CONFIG * @global type $_CORELANG * @return boolean True on success (including deactivated), false otherwise */ public static function write() { global $_CONFIG, $_CORELANG; if ($_CONFIG['xmlSitemapStatus'] == 'on') { $arrActiveLanguages = array(); foreach (\FWLanguage::getLanguageArray() as $arrLanguage) { if ($arrLanguage['frontend'] == 1) { $arrActiveLanguages[$arrLanguage['id']] = $arrLanguage['lang']; } } $arrFailed = array(); foreach ($arrActiveLanguages as $langId => $langCode) { $langSitemap = new static(\Env::get('em'), \Env::get('cx')->getLicense(), 0, null, $langId); if (!$langSitemap->writeXML()) { $arrFailed[] = sprintf($_CORELANG['TXT_CORE_XML_SITEMAP_NOT_WRITABLE'], sprintf(self::$strFileNameWithLang, $langCode)); } } if (count($arrFailed)) { return implode('<br />', $arrFailed); } } return true; }
public function setNames($arrNames) { $this->arrName = array(); foreach ($arrNames as $langId => $name) { $this->arrName[intval($langId)] = $name; } // add text for inactive languages too $defaultLangId = \FWLanguage::getDefaultLangId(); foreach (\FWLanguage::getLanguageArray() as $langId => $langInfo) { if (!isset($arrNames[$langId])) { $this->arrName[$langId] = $this->arrName[$defaultLangId]; } } $this->arrAttributes[$this->id]['names'] = $this->arrName; }
/** * Loads and saves general settings * * @access private * @global array $_ARRAYLANG * @global array $_CORELANG * @global array $_CONFIG * @global object $objDatabase */ private function settingsGeneral() { global $objDatabase, $_CORELANG, $_ARRAYLANG, $_CONFIG; $this->_objTpl->addBlockfile('NEWS_SETTINGS_CONTENT', 'settings_content', 'module_news_settings_general.html'); // Show settings $objResult = $objDatabase->Execute("SELECT lang FROM " . DBPREFIX . "languages WHERE id='" . $this->langId . "'"); if ($objResult !== false) { $newsFeedPath = 'http://' . $_SERVER['SERVER_NAME'] . ASCMS_FEED_WEB_PATH . '/news_headlines_' . $objResult->fields['lang'] . '.xml'; } if (intval($this->arrSettings['news_feed_status']) == 1) { $status = 'checked="checked"'; $icon = "<a href='" . $newsFeedPath . "' target='_blank' title='" . $newsFeedPath . "'><img src='" . ASCMS_CORE_MODULE_WEB_PATH . "/News/View/Media/rss.gif' border='0' alt='" . $newsFeedPath . "' /></a>"; } else { $status = ''; $icon = ''; } // set language vars $arrLanguages = \FWLanguage::getLanguageArray(); $newsFeedTitle = ''; $newsFeedDescription = ''; foreach ($arrLanguages as $langId => $arrLanguage) { if ($arrLanguage['is_default'] == 'true') { $newsFeedTitle = $this->arrSettings['news_feed_title'][$langId]; $newsFeedDescription = $this->arrSettings['news_feed_description'][$langId]; } $this->_objTpl->setVariable(array('NEWS_FEED_LANG_NAME' => contrexx_raw2xhtml($arrLanguage['name']), 'NEWS_FEED_TITLE_VALUE' => contrexx_raw2xhtml($this->arrSettings['news_feed_title'][$langId]), 'NEWS_FEED_TITLE_LANG_ID' => $langId)); $this->_objTpl->parse('news_feed_title_list'); $this->_objTpl->setVariable(array('NEWS_FEED_LANG_NAME' => contrexx_raw2xhtml($arrLanguage['name']), 'NEWS_FEED_DESCRIPTION_VALUE' => contrexx_raw2xhtml($this->arrSettings['news_feed_description'][$langId]), 'NEWS_FEED_DESCRIPTION_LANG_ID' => $langId)); $this->_objTpl->parse('news_feed_description_list'); } $assignedAuthorGroups = ''; $existingAuthorGroups = ''; $assignedPublisherGroups = ''; $existingPublisherGroups = ''; $availableUserGroups = $this->_getAllUserGroups(); $arrAssignedAuthorGroups = explode(',', $this->arrSettings['news_assigned_author_groups']); $arrAssignedPublisherGroups = explode(',', $this->arrSettings['news_assigned_publisher_groups']); foreach ($availableUserGroups as $id => $name) { if (in_array($id, $arrAssignedAuthorGroups)) { $assignedAuthorGroups .= '<option value="' . $id . '">' . $name . "</option>\n"; } else { $existingAuthorGroups .= '<option value="' . $id . '">' . $name . "</option>\n"; } } foreach ($availableUserGroups as $id => $name) { if (in_array($id, $arrAssignedPublisherGroups)) { $assignedPublisherGroups .= '<option value="' . $id . '">' . $name . "</option>\n"; } else { $existingPublisherGroups .= '<option value="' . $id . '">' . $name . "</option>\n"; } } $this->_objTpl->setVariable(array('NEWS_FEED_TITLE' => contrexx_raw2xhtml($newsFeedTitle), 'NEWS_FEED_STATUS' => $status, 'NEWS_FEED_ICON' => $icon, 'NEWS_FEED_DESCRIPTION' => contrexx_raw2xhtml($newsFeedDescription), 'NEWS_FEED_IMAGE' => contrexx_raw2xhtml($this->arrSettings['news_feed_image']), 'NEWS_HEADLINES_LIMIT' => intval($this->arrSettings['news_headlines_limit']), 'NEWS_RECENT_MESSAGES_LIMIT' => intval($this->arrSettings['recent_news_message_limit']), 'NEWS_FEED_PATH' => $newsFeedPath, 'NEWS_SUBMIT_NEWS' => $this->arrSettings['news_submit_news'] == '1' ? 'checked="checked"' : '', 'NEWS_SUBMIT_NEWS_CONFIGURATION_DISPLAY' => $this->arrSettings['news_submit_news'] == '1' ? '' : 'none', 'NEWS_SUBMIT_ONLY_COMMUNITY' => $this->arrSettings['news_submit_only_community'] == '1' ? 'checked="checked"' : '', 'NEWS_ACTIVATE_SUBMITTED_NEWS' => $this->arrSettings['news_activate_submitted_news'] == '1' ? 'checked="checked"' : '', 'NEWS_USE_TEASERS_CHECKED' => $_CONFIG['newsTeasersStatus'] == '1' ? 'checked="checked"' : '', 'NEWS_USE_TEASERS_CONFIGURATION_DISPLAY' => $_CONFIG['newsTeasersStatus'] == '1' ? '' : 'none', 'NEWS_USE_TEASER_TEXT_CHECKED' => $this->arrSettings['news_use_teaser_text'] == '1' ? 'checked="checked"' : '', 'NEWS_USE_TYPES_CHECKED' => $this->arrSettings['news_use_types'] == '1' ? 'checked="checked"' : '', 'NEWS_USE_RELATED_NEWS_CHECKED' => $this->arrSettings['use_related_news'] == '1' ? 'checked="checked"' : '', 'NEWS_USE_TAGS_CHECKED' => $this->arrSettings['news_use_tags'] == '1' ? 'checked="checked"' : '', 'TXT_STORE' => $_ARRAYLANG['TXT_STORE'], 'TXT_NAME' => $_ARRAYLANG['TXT_NAME'], 'TXT_VALUE' => $_ARRAYLANG['TXT_VALUE'], 'TXT_NEWS_SETTINGS' => $_ARRAYLANG['TXT_NEWS_SETTINGS'], 'TXT_NEWS_FEED_STATUS' => $_ARRAYLANG['TXT_NEWS_FEED_STATUS'], 'TXT_NEWS_FEED_TITLE' => $_ARRAYLANG['TXT_NEWS_FEED_TITLE'], 'TXT_NEWS_FEED_DESCRIPTION' => $_ARRAYLANG['TXT_NEWS_FEED_DESCRIPTION'], 'TXT_NEWS_FEED_IMAGE' => $_ARRAYLANG['TXT_NEWS_FEED_IMAGE'], 'TXT_BROWSE' => $_ARRAYLANG['TXT_BROWSE'], 'TXT_NEWS_HEADLINES_LIMIT' => $_ARRAYLANG['TXT_NEWS_HEADLINES_LIMIT'], 'TXT_NEWS_SETTINGS_SAVED' => $_ARRAYLANG['TXT_NEWS_SETTINGS_SAVED'], 'TXT_SUBMIT_NEWS' => $_ARRAYLANG['TXT_SUBMIT_NEWS'], 'TXT_ALLOW_USERS_SUBMIT_NEWS' => $_ARRAYLANG['TXT_ALLOW_USERS_SUBMIT_NEWS'], 'TXT_ALLOW_ONLY_MEMBERS_SUBMIT_NEWS' => $_ARRAYLANG['TXT_ALLOW_ONLY_MEMBERS_SUBMIT_NEWS'], 'TXT_AUTO_ACTIVATE_SUBMITTED_NEWS' => $_ARRAYLANG['TXT_AUTO_ACTIVATE_SUBMITTED_NEWS'], 'TXT_USE_TEASERS' => $_ARRAYLANG['TXT_USE_TEASERS'], 'TXT_USE_TEASER_TEXT' => $_ARRAYLANG['TXT_USE_TEASER_TEXT'], 'TXT_USE_TYPES' => $_ARRAYLANG['TXT_USE_TYPES'], 'TXT_USE_RELATED_NEWS' => $_ARRAYLANG['TXT_USE_RELATED_NEWS'], 'TXT_USE_TAGS' => $_ARRAYLANG['TXT_USE_TAGS'], 'TXT_NOTIFY_GROUP' => $_ARRAYLANG['TXT_NOTIFY_GROUP'], 'TXT_NOTIFY_USER' => $_ARRAYLANG['TXT_NOTIFY_USER'], 'TXT_DEACTIVATE' => $_ARRAYLANG['TXT_DEACTIVATE'], 'NEWS_NOTIFY_GROUP_LIST' => $this->_generate_notify_group_list(), 'NEWS_NOTIFY_USER_LIST' => $this->_generate_notify_user_list(), 'TXT_NEWS_PROTECTION' => $_ARRAYLANG['TXT_NEWS_PROTECTION'], 'TXT_NEWS_ACTIVE' => $_ARRAYLANG['TXT_NEWS_ACTIVE'], 'TXT_NEWS_MESSAGE_PROTECTION_RESTRICTED' => $_ARRAYLANG['TXT_NEWS_MESSAGE_PROTECTION_RESTRICTED'], 'NEWS_MESSAGE_PROTECTION_CHECKED' => $this->arrSettings['news_message_protection'] == '1' ? 'checked="checked"' : '', 'NEWS_MESSAGE_PROTECTION_RESTRICTED_DISPLAY' => $this->arrSettings['news_message_protection'] == '1' ? '' : 'none', 'NEWS_MESSAGE_PROTECTION_RESTRICTED_CHECKED' => $this->arrSettings['news_message_protection_restricted'] == '1' ? 'checked="checked"' : '', 'NEWS_SETTINGS_COMMENTS_STATUS_CHECKED' => $this->arrSettings['news_comments_activated'] == '1' ? 'checked="checked"' : '', 'NEWS_COMMENTS_STATUS_STYLE' => $this->arrSettings['news_comments_activated'] == '1' ? '' : 'none', 'NEWS_SETTINGS_COMMENTS_ALLOW_ANONYMOUS_CHECKED' => $this->arrSettings['news_comments_anonymous'] == '1' ? 'checked="checked"' : '', 'NEWS_SETTINGS_COMMENTS_AUTO_ACTIVATE_CHECKED' => $this->arrSettings['news_comments_autoactivate'] == '1' ? 'checked="checked"' : '', 'NEWS_SETTINGS_COMMENTS_NOTIFICATION_CHECKED' => $this->arrSettings['news_comments_notification'] == '1' ? 'checked="checked"' : '', 'NEWS_SETTINGS_COMMENTS_TIMEOUT' => intval($this->arrSettings['news_comments_timeout']), 'TXT_NEWS_COMMENTS' => $_ARRAYLANG['TXT_NEWS_COMMENTS'], 'TXT_NEWS_SETTINGS_COMMENTS_ALLOW_HELP' => $_ARRAYLANG['TXT_NEWS_SETTINGS_COMMENTS_ALLOW_HELP'], 'TXT_NEWS_SETTINGS_COMMENTS_ALLOW_ANONYMOUS' => $_ARRAYLANG['TXT_NEWS_SETTINGS_COMMENTS_ALLOW_ANONYMOUS'], 'TXT_NEWS_SETTINGS_COMMENTS_ALLOW_ANONYMOUS_HELP' => $_ARRAYLANG['TXT_NEWS_SETTINGS_COMMENTS_ALLOW_ANONYMOUS_HELP'], 'TXT_NEWS_SETTINGS_COMMENTS_AUTO_ACTIVATE' => $_ARRAYLANG['TXT_NEWS_SETTINGS_COMMENTS_AUTO_ACTIVATE'], 'TXT_NEWS_SETTINGS_COMMENTS_AUTO_ACTIVATE_HELP' => $_ARRAYLANG['TXT_NEWS_SETTINGS_COMMENTS_AUTO_ACTIVATE_HELP'], 'TXT_NEWS_SETTINGS_COMMENTS_NOTIFICATION' => $_ARRAYLANG['TXT_NEWS_SETTINGS_COMMENTS_NOTIFICATION'], 'TXT_NEWS_SETTINGS_COMMENTS_NOTIFICATION_HELP' => $_ARRAYLANG['TXT_NEWS_SETTINGS_COMMENTS_NOTIFICATION_HELP'], 'TXT_NEWS_SETTINGS_COMMENTS_TIMEOUT' => $_ARRAYLANG['TXT_NEWS_SETTINGS_COMMENTS_TIMEOUT'], 'TXT_NEWS_SETTINGS_COMMENTS_TIMEOUT_HELP' => $_ARRAYLANG['TXT_NEWS_SETTINGS_COMMENTS_TIMEOUT_HELP'], 'TXT_NEWS_SETTINGS_RECENT_MESSAGES_LIMIT_HELP' => $_ARRAYLANG['TXT_NEWS_SETTINGS_RECENT_MESSAGES_LIMIT_HELP'], 'TXT_NEWS_DEFAULT_TEASERS' => $_ARRAYLANG['TXT_NEWS_DEFAULT_TEASERS'], 'TXT_NEWS_DEFAULT_TEASERS_HELP' => $_ARRAYLANG['TXT_NEWS_DEFAULT_TEASERS_HELP'], 'TXT_NEWS_EXTENDED' => $_ARRAYLANG['TXT_NEWS_EXTENDED'], 'TXT_NEWS_TOP' => $_ARRAYLANG['TXT_NEWS_TOP'], 'TXT_NEWS_TOP_LABEL' => $_ARRAYLANG['TXT_NEWS_TOP_LABEL'], 'TXT_NEWS_TOP_DAYS' => $_ARRAYLANG['TXT_NEWS_TOP_DAYS'], 'TXT_NEWS_TOP_LIMIT' => $_ARRAYLANG['TXT_NEWS_TOP_LIMIT'], 'TXT_NEWS_AUTHOR_SELECTION' => $_ARRAYLANG['TXT_NEWS_AUTHOR_SELECTION'], 'TXT_NEWS_PUBLISHER_SELECTION' => $_ARRAYLANG['TXT_NEWS_PUBLISHER_SELECTION'], 'TXT_NEWS_LIST_ALL' => $_ARRAYLANG['TXT_NEWS_LIST_ALL'], 'TXT_NEWS_LIST_SELECTED' => $_ARRAYLANG['TXT_NEWS_LIST_SELECTED'], 'TXT_NEWS_AVAILABLE_GROUPS' => $_ARRAYLANG['TXT_NEWS_AVAILABLE_GROUPS'], 'TXT_NEWS_ASSIGNED_GROUPS' => $_ARRAYLANG['TXT_NEWS_ASSIGNED_GROUPS'], 'TXT_NEWS_CHECK_ALL' => $_ARRAYLANG['TXT_SELECT_ALL'], 'TXT_NEWS_UNCHECK_ALL' => $_ARRAYLANG['TXT_NEWS_UNCHECK_ALL'], 'TXT_NEWS_AVAILABLE_GROUPS' => $_ARRAYLANG['TXT_NEWS_AVAILABLE_GROUPS'], 'TXT_NEWS_ASSIGNED_GROUPS' => $_ARRAYLANG['TXT_NEWS_ASSIGNED_GROUPS'], 'TXT_NEWS_RECENT_MESSAGES_LIMIT' => $_ARRAYLANG['TXT_NEWS_RECENT_MESSAGES_LIMIT'], 'NEWS_FILTER_AUTHOR_ACTIVE' => $this->arrSettings['news_assigned_author_groups'] ? 'checked="checked"' : '', 'NEWS_FILTER_AUTHOR_INACTIVE' => $this->arrSettings['news_assigned_author_groups'] ? '' : 'checked="checked"', 'NEWS_FILTER_AUTHOR_DISPLAY' => $this->arrSettings['news_assigned_author_groups'] ? 'block' : 'none', 'NEWS_FILTER_PUBLISHER_ACTIVE' => $this->arrSettings['news_assigned_publisher_groups'] ? 'checked="checked"' : '', 'NEWS_FILTER_PUBLISHER_INACTIVE' => $this->arrSettings['news_assigned_publisher_groups'] ? '' : 'checked="checked"', 'NEWS_FILTER_PUBLISHER_DISPLAY' => $this->arrSettings['news_assigned_publisher_groups'] ? 'block' : 'none', 'NEWS_EXISTING_AUTHOR_GROUPS' => $existingAuthorGroups, 'NEWS_ASSIGNED_AUTHOR_GROUPS' => $assignedAuthorGroups, 'NEWS_EXISTING_PUBLISHER_GROUPS' => $existingPublisherGroups, 'NEWS_ASSIGNED_PUBLISHER_GROUPS' => $assignedPublisherGroups, 'NEWS_USE_TOP_CHECKED' => $this->arrSettings['news_use_top'] == '1' ? 'checked="checked"' : '', 'NEWS_MESSAGE_TOP_DISPLAY' => $this->arrSettings['news_use_top'] == '1' ? '' : 'none', 'NEWS_TOP_DAYS' => intval($this->arrSettings['news_top_days']), 'NEWS_TOP_LIMIT' => intval($this->arrSettings['news_top_limit']), 'NEWS_MEDIA_BROWSER_BROWSE_BUTTON' => self::getMediaBrowserButton(array('type' => 'button', 'id' => 'newsFeedImage', 'data-cx-mb-views' => 'filebrowser', 'style' => 'width:110px;'), 'SetUrl'))); $this->_objTpl->setGlobalVariable(array('TXT_ACTIVATED' => $_CORELANG['TXT_ACTIVATED'], 'TXT_DEACTIVATED' => $_CORELANG['TXT_DEACTIVATED'])); // get list of all teasers $objTeaser = new \Cx\Core_Modules\News\Controller\Teasers(true); $arrNewsDefaultTeasers = explode(';', $this->arrSettings['news_default_teasers']); $frameIds = ''; foreach ($objTeaser->arrTeaserFrameNames as $frameName => $frameId) { $this->_objTpl->setVariable(array('NEWS_TEASER_NAME' => contrexx_raw2xhtml($frameName), 'NEWS_TEASER_ID' => $frameId, 'NEWS_TEASER_CHECKED' => in_array($frameId, $arrNewsDefaultTeasers) ? 'checked="checked"' : '')); $this->_objTpl->parse('defaultTeasers'); } $this->_objTpl->parse('settings_content'); }
function _configModifyAttribute() { global $_ARRAYLANG; $setStatus = true; $associatedGroups = ''; $notAssociatedGroups = ''; $objFWUser = \FWUser::getFWUserObject(); $objAttribute = $objFWUser->objUser->objAttribute->getById(isset($_REQUEST['id']) ? $_REQUEST['id'] : 0); if (isset($_POST['access_store_attribute']) || isset($_POST['access_add_child'])) { // only administrators are allowed to modify the config if (!\Permission::hasAllAccess()) { \Permission::noAccess(); } if (isset($_POST['access_attribute_name']) && is_array($_POST['access_attribute_name'])) { $objAttribute->setNames(array_map('contrexx_stripslashes', $_POST['access_attribute_name'])); } if (isset($_POST['access_attribute_type'])) { $objAttribute->setType($_POST['access_attribute_type']); } if (isset($_POST['access_attribute_sort_type'])) { $objAttribute->setSortType($_POST['access_attribute_sort_type']); } if ($objAttribute->getSortType() == 'custom' && isset($_POST['access_attribute_sort_order']) && is_array($_POST['access_attribute_sort_order'])) { $objAttribute->setChildOrder($_POST['access_attribute_sort_order']); } if (isset($_POST['access_attribute_parent_id'])) { $setStatus = $objAttribute->setParent($_POST['access_attribute_parent_id']); } if (isset($_POST['access_attribute_all_access']) && $_POST['access_attribute_all_access']) { $objAttribute->removeProtection(); } else { $objAttribute->setProtection(isset($_POST['access_attribute_associated_groups']) && is_array($_POST['access_attribute_associated_groups']) ? $_POST['access_attribute_associated_groups'] : array()); $objAttribute->setSpecialProtection(isset($_POST['access_attribute_special_menu_access']) ? $_POST['access_attribute_special_menu_access'] : ''); } $objAttribute->setMultiline(isset($_POST['access_text_multiline_option']) && intval($_POST['access_text_multiline_option'])); $objAttribute->setMandatory(isset($_POST['access_attribute_mandatory']) ? intval($_POST['access_attribute_mandatory']) : 0); if ($setStatus && $objAttribute->store()) { if (isset($_POST['access_add_child'])) { $objAttribute->createChild($objAttribute->getId()); } elseif (isset($_POST['access_add_other_after_store'])) { $objAttribute->createChild($objAttribute->getParent()); } else { self::$arrStatusMsg['ok'][] = $this->errorMsg = $objAttribute->getType() == 'menu_option' ? $_ARRAYLANG['TXT_ACCESS_SUCCESS_STORE_MENU_OPTION'] : ($objAttribute->getType() == 'frame' ? $_ARRAYLANG['TXT_ACCESS_SUCCESS_STORE_FRAME'] : $_ARRAYLANG['TXT_ACCESS_SUCCESS_STORE_ATTRIBUTE']); if ($objAttribute->getParent()) { $objAttribute->load($objAttribute->getParent()); } else { $this->_configAttributes(); return; } } } else { self::$arrStatusMsg['error'][] = $objAttribute->getErrorMsg(); } } $this->_objTpl->addBlockfile('ACCESS_CONFIG_TEMPLATE', 'module_access_config_attribute_modify', 'module_access_config_attribute_modify.html'); $this->attachJavaScriptFunction('accessSetWebsite'); $this->attachJavaScriptFunction('accessSelectAllGroups'); $this->attachJavaScriptFunction('accessDeselectAllGroups'); $this->attachJavaScriptFunction('accessAddGroupToList'); $this->attachJavaScriptFunction('accessRemoveGroupFromList'); $this->_objTpl->setVariable(array('ACCESS_PROFILE_OPERATION_TITLE' => $objAttribute->getId() ? $_ARRAYLANG['TXT_ACCESS_PROFILE_ATTRIBUTE_MODIFY'] : $_ARRAYLANG['TXT_ACCESS_ADD_NEW_PROFILE_ATTRIBUTE'], 'ACCESS_ADD_CHILD_TXT' => $objAttribute->getType() == 'menu' ? $_ARRAYLANG['TXT_ACCESS_ADD_NEW_MENU_OPTION'] : ($objAttribute->getType() == 'group' ? $_ARRAYLANG['TXT_ACCESS_ADD_NEW_GROUP_FRAME'] : $_ARRAYLANG['TXT_ACCESS_ADD_NEW_PROFILE_ATTRIBUTE']), 'ACCESS_PARENT_TYPE_TITLE' => $objAttribute->getParentTypeDescription(), 'ACCESS_PARENT_TYPE' => $objAttribute->isCoreAttribute($objAttribute->getId()) ? $_ARRAYLANG['TXT_ACCESS_NEW_ATTRIBUTE'] : ($objAttribute->hasMovableOption() ? $objAttribute->getParentMenu('name="access_attribute_parent_id" style="width:300px;" onchange="accessCheckParentAttribute()"') : '<input type="hidden" name="access_attribute_parent_id" value="' . $objAttribute->getParent() . '" />' . $objAttribute->getParentType()), 'ACCESS_PARENT_ID' => $objAttribute->getParent(), 'ACCESS_CANCEL_RETURN_SECTION' => $objAttribute->getParent() ? 'modifyAttribute' : 'attributes', 'ACCESS_MUST_STORE_BEFORE_CONTINUE_MSG' => $objAttribute->getId() ? $_ARRAYLANG['TXT_ACCESS_STORE_CHANGED_ATTRIBUTE_MSG'] : $_ARRAYLANG['TXT_ACCESS_MUST_STORE_NEW_ATTRIBUTE_MSG'], 'ACCESS_IS_NEW_ATTRIBUTE' => $objAttribute->getId() ? 'false' : 'true', 'ACCESS_JAVASCRIPT_FUNCTIONS' => $this->getJavaScriptCode(), 'ACCESS_SORTABLE_TYPE_LIST' => implode("', '", $objAttribute->getSortableTypes()), 'ACCESS_MANDATORY_TYPE_LIST' => implode("', '", $objAttribute->getMandatoryTypes()), 'TXT_ACCESS_INVALID_PARENT_ATTRIBUTE' => $_ARRAYLANG['TXT_ACCESS_INVALID_PARENT_ATTRIBUTE'], 'TXT_ACCESS_CHANGES_WILL_BE_LOST' => $_ARRAYLANG['TXT_ACCESS_CHANGES_WILL_BE_LOST'], 'TXT_ACCESS_EXTENDED' => $_ARRAYLANG['TXT_ACCESS_EXTENDED'], 'TXT_ACCESS_TYPE' => $_ARRAYLANG['TXT_ACCESS_TYPE'], 'TXT_ACCESS_MANDATORY_FIELD' => $_ARRAYLANG['TXT_ACCESS_MANDATORY_FIELD'], 'TXT_ACCESS_NO' => $_ARRAYLANG['TXT_ACCESS_NO'], 'TXT_ACCESS_YES' => $_ARRAYLANG['TXT_ACCESS_YES'], 'TXT_ACCESS_ATTRIBUTE' => $_ARRAYLANG['TXT_ACCESS_ATTRIBUTE'], 'TXT_ACCESS_PREVIEW' => $_ARRAYLANG['TXT_ACCESS_PREVIEW'], 'TXT_ACCESS_BACK' => $_ARRAYLANG['TXT_ACCESS_BACK'], 'TXT_ACCESS_SAVE' => $_ARRAYLANG['TXT_ACCESS_SAVE'], 'TXT_ACCESS_FUNCTIONS' => $_ARRAYLANG['TXT_ACCESS_FUNCTIONS'], 'TXT_ACCESS_MULTILINE_TEXT' => $_ARRAYLANG['TXT_ACCESS_MULTILINE_TEXT'], 'TXT_ACCESS_SORT' => $_ARRAYLANG['TXT_ACCESS_SORT'], 'TXT_ACCESS_MODIFICATION_ACCESS' => $_ARRAYLANG['TXT_ACCESS_MODIFICATION_ACCESS'], 'TXT_ACCESS_EVERYONE_MOD_PERM' => $_ARRAYLANG['TXT_ACCESS_EVERYONE_MOD_PERM'], 'TXT_ACCESS_AVAILABLE_GROUPS' => $_ARRAYLANG['TXT_ACCESS_AVAILABLE_GROUPS'], 'TXT_ACCESS_CHECK_ALL' => $_ARRAYLANG['TXT_ACCESS_CHECK_ALL'], 'TXT_ACCESS_UNCHECK_ALL' => $_ARRAYLANG['TXT_ACCESS_UNCHECK_ALL'], 'TXT_ACCESS_ASSOCIATED_GROUPS' => $_ARRAYLANG['TXT_ACCESS_ASSOCIATED_GROUPS'], 'TXT_ACCESS_MODIFICATION_ACCESS' => $_ARRAYLANG['TXT_ACCESS_MODIFICATION_ACCESS'], 'TXT_ACCESS_MODIFY_PROFILE_ATTRIBUTE_MSG' => $_ARRAYLANG['TXT_ACCESS_MODIFY_PROFILE_ATTRIBUTE_MSG'], 'TXT_ACCESS_SELECT_ALLOWED_MODIFY_GROUPS' => $_ARRAYLANG['TXT_ACCESS_SELECT_ALLOWED_MODIFY_GROUPS'], 'TXT_ACCESS_SPECIAL_MENU_PERM' => $_ARRAYLANG['TXT_ACCESS_SPECIAL_MENU_PERM'], 'TXT_ACCESS_NONE' => $_ARRAYLANG['TXT_ACCESS_NONE'], 'TXT_ACCESS_ONLY_HIGHER_OPTION_ACCESS' => $_ARRAYLANG['TXT_ACCESS_ONLY_HIGHER_OPTION_ACCESS'], 'TXT_ACCESS_ONLY_LOWER_OPTION_ACCESS' => $_ARRAYLANG['TXT_ACCESS_ONLY_LOWER_OPTION_ACCESS'], 'TXT_ACCESS_FRAMES' => $_ARRAYLANG['TXT_ACCESS_FRAMES'], 'TXT_ACCESS_FRAME' => $_ARRAYLANG['TXT_ACCESS_FRAME'], 'TXT_ACCESS_ADD_NEW_FRAME' => $_ARRAYLANG['TXT_ACCESS_ADD_NEW_FRAME'], 'TXT_ACCESS_SELECT_OPTION' => $_ARRAYLANG['TXT_ACCESS_SELECT_OPTION'], 'TXT_ACCESS_SELECT_OPTIONS' => $_ARRAYLANG['TXT_ACCESS_SELECT_OPTIONS'], 'TXT_ACCESS_ADD_NEW_SELECT_OPTION' => $_ARRAYLANG['TXT_ACCESS_ADD_NEW_SELECT_OPTION'], 'TXT_ACCESS_ID' => $_ARRAYLANG['TXT_ACCESS_ID'])); $this->_objTpl->setGlobalVariable(array('TXT_ACCESS_NAME' => $_ARRAYLANG['TXT_ACCESS_NAME'], 'TXT_ACCESS_MODIFY_ATTRIBUTE' => $_ARRAYLANG['TXT_ACCESS_MODIFY_ATTRIBUTE'], 'TXT_ACCESS_DELETE_ATTRIBUTE' => $_ARRAYLANG['TXT_ACCESS_DELETE_ATTRIBUTE'], 'TXT_ACCESS_CONFIRM_DELETE_ATTRIBUTE_MSG' => str_replace("\n", '\\n', $_ARRAYLANG['TXT_ACCESS_CONFIRM_DELETE_ATTRIBUTE_MSG']), 'TXT_ACCESS_OPERATION_IRREVERSIBLE' => $_ARRAYLANG['TXT_ACCESS_OPERATION_IRREVERSIBLE'], 'TXT_ACCESS_MOVE_UP' => $_ARRAYLANG['TXT_ACCESS_MOVE_UP'], 'TXT_ACCESS_MOVE_DOWN' => $_ARRAYLANG['TXT_ACCESS_MOVE_DOWN'], 'TXT_ACCESS_GENERAL' => $_ARRAYLANG['TXT_ACCESS_GENERAL'], 'TXT_ACCESS_PROFILE_ATTRIBUTES' => $_ARRAYLANG['TXT_ACCESS_PROFILE_ATTRIBUTES'], 'ACCESS_CHILD_SORT_ORDER_DISPLAY' => $objAttribute->getSortType() == 'custom' ? 'inline' : 'none')); if ((!$objAttribute->getId() || $objAttribute->isCustomAttribute($objAttribute->getId())) && $objAttribute->getParent() !== 'title') { foreach (\FWLanguage::getLanguageArray() as $langId => $arrLanguage) { if ($arrLanguage['frontend']) { $this->_objTpl->setVariable(array('ACCESS_ATTRIBUTE_LANG_ID' => $langId, 'ACCESS_ATTRIBUTE_LANG_NAME' => htmlentities(\FWLanguage::getLanguageParameter($langId, 'name'), ENT_QUOTES, CONTREXX_CHARSET), 'ACCESS_ATTRIBUTE_NAME' => htmlentities($objAttribute->getName($langId), ENT_QUOTES, CONTREXX_CHARSET))); $this->_objTpl->parse('access_attribute_name_list'); } } $this->_objTpl->touchBlock('access_attribute_name'); $this->_objTpl->hideBlock('access_attribute_core_name_edit'); $this->_objTpl->hideBlock('access_attribute_core_name'); } else { $this->_objTpl->setVariable('ACCESS_ATTRIBUTE_NAME', htmlentities($objAttribute->getName(), ENT_QUOTES, CONTREXX_CHARSET)); $this->_objTpl->hideBlock('access_attribute_name'); if ($objAttribute->isNamesModifiable()) { // only core child attributes should be allowed to be modifiable $this->_objTpl->touchBlock('access_attribute_core_name_edit'); $this->_objTpl->hideBlock('access_attribute_core_name'); } else { $this->_objTpl->hideBlock('access_attribute_core_name_edit'); $this->_objTpl->touchBlock('access_attribute_core_name'); } } $objGroup = $objFWUser->objGroup->getGroups(); while (!$objGroup->EOF) { $var = in_array($objAttribute->getAccessId(), $objGroup->getDynamicPermissionIds()) ? 'associatedGroups' : 'notAssociatedGroups'; ${$var} .= "<option value=\"" . $objGroup->getId() . "\">" . htmlentities($objGroup->getName(), ENT_QUOTES, CONTREXX_CHARSET) . " [" . $objGroup->getType() . "]</option>\n"; $objGroup->next(); } $this->_objTpl->setVariable(array('ACCESS_ATTRIBUTE_ID' => $objAttribute->getId(), 'ACCESS_ATTRIBUTE_NAME' => htmlentities($objAttribute->getName(), ENT_QUOTES, CONTREXX_CHARSET), 'ACCESS_ATTRIBUTE_TYPE' => $objAttribute->getId() ? $objAttribute->getTypeDescription() : $objAttribute->getTypeMenu('name="access_attribute_type" onchange="accessSwitchType(this.value)" style="width:300px;"'), 'ACCESS_TEXT_MULTILINE_OPTION_DISPLAY' => $objAttribute->isTypeModifiable() && in_array($objAttribute->getType(), array('text', 'textarea')) ? 'inline' : 'none', 'ACCESS_TEXT_MULTILINE_CHECKED' => $objAttribute->isMultiline() ? 'checked="checked"' : '', 'ACCESS_ATTRIBUTE_MANDATORY_FRAME_DISPLAY' => $objAttribute->hasMandatoryOption() ? '' : 'none', 'ACCESS_ATTRIBUTE_MANDATORY_YES' => $objAttribute->isMandatory() ? 'checked="checked"' : '', 'ACCESS_ATTRIBUTE_MANDATORY_NO' => $objAttribute->isMandatory() ? '' : 'checked="checked"', 'ACCESS_ATTRIBUTE_CHILD_FRAME_DISPLAY' => $objAttribute->hasChildOption() ? '' : 'none', 'ACCESS_ATTRIBUTE_CHILD_FRAME_ROWS' => count($objAttribute->getChildren()) + 2, 'ACCESS_ATTRIBUTE_SORT_FRAME_DISPLAY' => $objAttribute->hasChildOption() ? '' : 'none', 'ACCESS_ATTRIBUTE_SORT_FRAME_ROW' => $objAttribute->hasMandatoryOption() && $objAttribute->hasSortableOption() ? 'row1' : 'row2', 'ACCESS_ATTRIBUTE_SORT_TYPE' => $objAttribute->isSortOrderModifiable() ? $objAttribute->getSortTypeMenu('name="access_attribute_sort_type" style="width:300px;" onchange="accessSwitchSortType(this.value)"') : $objAttribute->getSortTypeDescription(), 'ACCESS_ATTRIBUTE_NOT_ASSOCIATED_GROUPS' => $notAssociatedGroups, 'ACCESS_USER_ASSOCIATED_GROUPS' => $associatedGroups, 'ACCESS_ATTRIBUTE_SELECT_ACCESS_DISPLAY' => $objAttribute->isProtected() ? '' : 'none', 'ACCESS_ATTRIBUTE_ACCESS_ALL_CHECKED' => $objAttribute->isProtected() ? '' : 'checked="checked"', 'ACCESS_PERMISSON_TAB_DISPLAY' => $objAttribute->hasProtectionOption() ? '' : 'none', 'ACCESS_ATTRIBUTE_SPECIAL_MENU_ACCESS' => $objAttribute->getType() == 'menu' ? '' : 'none', 'ACCESS_ATTRIBUTE_SPECIAL_NONE_CHECKED' => $objAttribute->getSpecialProtection() == '' ? 'checked="checked"' : '', 'ACCESS_ATTRIBUTE_SPECIAL_HIGHER_CHECKED' => $objAttribute->getSpecialProtection() == 'menu_select_higher' ? 'checked="checked"' : '', 'ACCESS_ATTRIBUTE_SPECIAL_LOWER_CHECKED' => $objAttribute->getSpecialProtection() == 'menu_select_lower' ? 'checked="checked"' : '', 'ACCESS_CHILDREN_TAB_DISPLAY' => in_array($objAttribute->getType(), array('frame', 'history')) ? '' : 'none', 'ACCESS_MENU_OPTION_TAB_DISPLAY' => $objAttribute->getType() == 'menu' ? '' : 'none', 'ACCESS_FRAMES_TAB_DISPLAY' => $objAttribute->getType() == 'group' ? '' : 'none')); if ($objAttribute->getParent()) { switch ($objAttribute->getType()) { case 'menu_option': $addOtherchildTxt = $_ARRAYLANG['TXT_ACCESS_ADD_OTHER_MENU_OPTION']; break; case 'frame': $addOtherchildTxt = $_ARRAYLANG['TXT_ACCESS_ADD_OTHER_FRAME']; break; default: $addOtherchildTxt = $_ARRAYLANG['TXT_ACCESS_ADD_OTHER_ATTRIBUTE']; break; } $this->_objTpl->setVariable('ACCESS_ADD_OTHER_CHILD_TXT', $addOtherchildTxt); $this->_objTpl->parse('access_add_other_child_box'); } else { $this->_objTpl->hideBlock('access_add_other_child_box'); } $row = 1; $sortNr = 0; if ($objAttribute->hasChildOption() && count($objAttribute->getChildren())) { $frameBlock = $objAttribute->getType() == 'menu' ? 'access_attribute_menu_options' : ($objAttribute->getType() == 'group' ? 'access_attribute_frames' : 'access_attribute_children'); $frameListBlock = $objAttribute->getType() == 'menu' ? 'access_attribute_menu_option_list' : ($objAttribute->getType() == 'group' ? 'access_attribute_frames_list' : 'access_attribute_child_list'); $frameAddBlock = $objAttribute->getType() == 'menu' ? 'access_attribute_menu_option_add' : ($objAttribute->getType() == 'group' ? 'access_attribute_frame_add' : 'access_attribute_child_add'); foreach ($objAttribute->getChildren() as $childAttributId) { $objChildAttribute = $objAttribute->getById($childAttributId); if ($objChildAttribute->getId()) { if ($objAttribute->isSortOrderModifiable() && $objChildAttribute->isModifiable()) { $this->_objTpl->setVariable(array('ACCESS_CHILD_ATTRIBUTE_ID' => $childAttributId, 'ACCESS_CHILD_ATTRIBUTE_SORT_NR' => $sortNr++)); $this->_objTpl->touchBlock($frameListBlock . '_sort'); } else { $this->_objTpl->hideBlock($frameListBlock . '_sort'); } if ($objChildAttribute->isModifiable()) { $this->_objTpl->setVariable('ACCESS_CHILD_ATTRIBUTE_ID', $childAttributId); $this->_objTpl->touchBlock($frameListBlock . '_function_modify'); $this->_objTpl->hideBlock($frameListBlock . '_function_no_modify'); } else { $this->_objTpl->touchBlock($frameListBlock . '_function_no_modify'); $this->_objTpl->hideBlock($frameListBlock . '_function_modify'); } if ($objAttribute->isChildrenModifiable() && $objChildAttribute->isRemovable()) { $this->_objTpl->setVariable('ACCESS_CHILD_ATTRIBUTE_ID', $childAttributId); $this->_objTpl->touchBlock($frameListBlock . '_function_delete'); $this->_objTpl->hideBlock($frameListBlock . '_function_no_delete'); } else { $this->_objTpl->touchBlock($frameListBlock . '_function_no_delete'); $this->_objTpl->hideBlock($frameListBlock . '_function_delete'); } if ($objAttribute->isChildrenModifiable()) { $this->_objTpl->setVariable('ACCESS_CHILD_ATTRIBUTE_ROW_CLASS', $row % 2); $this->_objTpl->touchBlock($frameAddBlock); } else { $this->_objTpl->hideBlock($frameAddBlock); } $this->_objTpl->setVariable(array('ACCESS_CHILD_ATTRIBUTE_ROW_CLASS' => $row++ % 2, 'ACCESS_CHILD_ATTRIBUTE_NAME' => htmlentities($objChildAttribute->getName(), ENT_QUOTES, CONTREXX_CHARSET), 'ACCESS_CHILD_ATTRIBUTE' => $this->parseAttribute(new \User(), $childAttributId, 0, true, true), 'ACCESS_CHILD_ATTRIBUTE_ID' => $childAttributId, 'ACCESS_CHILD_ATTRIBUTE_NAME_JS' => urlencode(htmlentities($objChildAttribute->getName(), ENT_QUOTES, CONTREXX_CHARSET)))); $this->_objTpl->parse($frameListBlock); } } $this->_objTpl->parse($frameBlock); } else { $this->_objTpl->hideBlock('access_attribute_children'); $this->_objTpl->hideBlock('access_attribute_frames'); $this->_objTpl->hideBlock('access_attribute_menu_options'); } $this->_objTpl->parse('module_access_config_attribute_modify'); }
/** * add and modify language values * * @global array * @global ADONewConnection * @return boolean True on success, false on failure */ function modifyLanguage() { global $_ARRAYLANG, $_CONFIG, $objDatabase; $langRemovalStatus = isset($_POST['removeLangVersion']) ? contrexx_input2raw($_POST['removeLangVersion']) : false; if (!empty($_POST['submit']) and isset($_POST['addLanguage']) && $_POST['addLanguage'] == "true") { //----------------------------------------------- // Add new language with all variables //----------------------------------------------- if (!empty($_POST['newLangName']) and !empty($_POST['newLangShortname'])) { $newLangShortname = addslashes(strip_tags($_POST['newLangShortname'])); $newLangName = addslashes(strip_tags($_POST['newLangName'])); $newLangCharset = addslashes(strip_tags($_POST['newLangCharset'])); $objResult = $objDatabase->Execute("SELECT lang FROM " . DBPREFIX . "languages WHERE lang='" . $newLangShortname . "'"); if ($objResult !== false) { if ($objResult->RecordCount() >= 1) { $this->strErrMessage = $_ARRAYLANG['TXT_DATABASE_QUERY_ERROR']; return false; } else { $objDatabase->Execute("INSERT INTO " . DBPREFIX . "languages SET lang='" . $newLangShortname . "',\n name='" . $newLangName . "',\n charset='" . $newLangCharset . "',\n is_default='false'"); $newLanguageId = $objDatabase->Insert_ID(); if (!empty($newLanguageId)) { $objResult = $objDatabase->SelectLimit("SELECT id FROM " . DBPREFIX . "languages WHERE is_default='true'", 1); if ($objResult !== false && !$objResult->EOF) { $defaultLanguage = $objResult->fields['id']; $objResult = $objDatabase->Execute("SELECT varid,content,module FROM " . DBPREFIX . "language_variable_content WHERE 1 AND lang=" . $defaultLanguage); if ($objResult !== false) { while (!$objResult->EOF) { $arrayLanguageContent[$objResult->fields['varid']] = stripslashes($objResult->fields['content']); $arrayLanguageModule[$objResult->fields['varid']] = $objResult->fields['module']; $objResult->MoveNext(); } foreach ($arrayLanguageContent as $varid => $content) { $LanguageModule = $arrayLanguageModule[$varid]; $objDatabase->Execute("INSERT INTO " . DBPREFIX . "language_variable_content SET varid=" . $varid . ", content='" . addslashes($content) . "', module=" . $LanguageModule . ", lang=" . $newLanguageId . ", status=0"); } $this->strOkMessage = $_ARRAYLANG['TXT_NEW_LANGUAGE_ADDED_SUCCESSFUL']; return true; } } } else { $this->strErrMessage = $_ARRAYLANG['TXT_DATABASE_QUERY_ERROR']; return false; } } } } } elseif (!empty($_POST['submit']) and $_POST['modLanguage'] == "true") { $eventArgs = array('langRemovalStatus' => $langRemovalStatus); $frontendLangIds = array_keys(\FWLanguage::getActiveFrontendLanguages()); $postLangIds = array_keys($_POST['langActiveStatus']); foreach (array_keys(\FWLanguage::getLanguageArray()) as $langId) { $isLangInPost = in_array($langId, $postLangIds); $isLangInFrontend = in_array($langId, $frontendLangIds); if ($isLangInPost == $isLangInFrontend) { continue; } $eventArgs['langData'][] = array('langId' => $langId, 'status' => $isLangInPost && !$isLangInFrontend); } //Trigger the event 'languageStatusUpdate' //if the language is activated/deactivated for frontend if (!empty($eventArgs)) { $evm = \Cx\Core\Core\Controller\Cx::instanciate()->getEvents(); $evm->triggerEvent('languageStatusUpdate', array($eventArgs, new \Cx\Core\Model\RecursiveArrayAccess(array()))); } //----------------------------------------------- // Update languages //----------------------------------------------- foreach ($_POST['langName'] as $id => $name) { $active = 0; if (isset($_POST['langActiveStatus'][$id]) && $_POST['langActiveStatus'][$id] == 1) { $languageCode = \FWLanguage::getLanguageCodeById($id); $pageRepo = \Env::get('em')->getRepository('Cx\\Core\\ContentManager\\Model\\Entity\\Page'); $alias = $pageRepo->findBy(array('type' => \Cx\Core\ContentManager\Model\Entity\Page::TYPE_ALIAS, 'slug' => $languageCode), true); if (count($alias)) { if (is_array($alias)) { $alias = $alias[0]; } $id = $alias->getNode()->getId(); $config = \Env::get('config'); $link = 'http://' . $config['domainUrl'] . ASCMS_PATH_OFFSET . '/' . $alias->getSlug(); $lang = \Env::get('lang'); $this->strErrMessage = $lang['TXT_CORE_REMOVE_ALIAS_TO_ACTIVATE_LANGUAGE'] . ':<br /> <a href="index.php?cmd=Alias&act=modify&id=' . $id . '" target="_blank">' . $link . '</a>'; return false; } $active = 1; } $status = "false"; if ($_POST['langDefaultStatus'] == $id) { $status = "true"; } $adminstatus = 0; if (isset($_POST['langAdminStatus'][$id]) && $_POST['langAdminStatus'][$id] == 1) { $adminstatus = 1; } $fallBack = isset($_POST['fallBack'][$id]) && $_POST['fallBack'][$id] != "" ? intval($_POST['fallBack'][$id]) : 'NULL'; $objDatabase->Execute("UPDATE " . DBPREFIX . "languages SET \n name='" . $name . "',\n frontend=" . $active . ",\n is_default='" . $status . "',\n backend='" . $adminstatus . "',\n fallback=" . $fallBack . "\n WHERE id=" . $id); } $this->strOkMessage = $_ARRAYLANG['TXT_DATA_RECORD_UPDATED_SUCCESSFUL']; \FWLanguage::init(); return true; } return false; }
private function processCreateDirectory($objCategory) { if (empty($_POST['downloads_category_name'])) { return; } else { $name = contrexx_stripslashes($_POST['downloads_category_name']); } \Cx\Core\Csrf\Controller\Csrf::check_code(); // check for sufficient permissiosn if ($objCategory->getAddSubcategoriesAccessId() && !\Permission::checkAccess($objCategory->getAddSubcategoriesAccessId(), 'dynamic', true) && $objCategory->getOwnerId() != $this->userId) { return; } // parse name and description attributres $arrLanguageIds = array_keys(\FWLanguage::getLanguageArray()); foreach ($arrLanguageIds as $langId) { $arrNames[$langId] = $name; $arrDescriptions[$langId] = ''; } $objSubcategory = new Category(); $objSubcategory->setParentId($objCategory->getId()); $objSubcategory->setActiveStatus(true); $objSubcategory->setVisibility($objCategory->getVisibility()); $objSubcategory->setNames($arrNames); $objSubcategory->setDescriptions($arrDescriptions); $objSubcategory->setPermissions(array('read' => array('protected' => (bool) $objCategory->getAddSubcategoriesAccessId(), 'groups' => array()), 'add_subcategories' => array('protected' => (bool) $objCategory->getAddSubcategoriesAccessId(), 'groups' => array()), 'manage_subcategories' => array('protected' => (bool) $objCategory->getAddSubcategoriesAccessId(), 'groups' => array()), 'add_files' => array('protected' => (bool) $objCategory->getAddSubcategoriesAccessId(), 'groups' => array()), 'manage_files' => array('protected' => (bool) $objCategory->getAddSubcategoriesAccessId(), 'groups' => array()))); // // foreach ($this->arrPermissionTypes as $protectionType) { // $arrCategoryPermissions[$protectionType]['protected'] = isset($_POST['downloads_category_'.$protectionType]) && $_POST['downloads_category_'.$protectionType]; // $arrCategoryPermissions[$protectionType]['groups'] = !empty($_POST['downloads_category_'.$protectionType.'_associated_groups']) ? array_map('intval', $_POST['downloads_category_'.$protectionType.'_associated_groups']) : array(); // } // // $objCategory->setPermissionsRecursive(!empty($_POST['downloads_category_apply_recursive'])); // $objCategory->setPermissions($arrCategoryPermissions); if (!$objSubcategory->store()) { $this->arrStatusMsg['error'] = array_merge($this->arrStatusMsg['error'], $objSubcategory->getErrorMsg()); } }
/** * Show all the runs and last runs detail * * @global array $_ARRAYLANG */ public function showCrawlerRuns() { global $_ARRAYLANG; //show the last runs details $lastRunResult = $this->crawlerRepository->getLatestRunDetails(); if ($lastRunResult) { $this->template->setVariable(array($this->moduleNameLang . '_LAST_RUN_STARTTIME' => \Cx\Core_Modules\LinkManager\Controller\DateTime::formattedDateAndTime($lastRunResult[0]->getStartTime()), $this->moduleNameLang . '_LAST_RUN_ENDTIME' => \Cx\Core_Modules\LinkManager\Controller\DateTime::formattedDateAndTime($lastRunResult[0]->getEndTime()), $this->moduleNameLang . '_LAST_RUN_DURATION' => \Cx\Core_Modules\LinkManager\Controller\DateTime::diffTime($lastRunResult[0]->getStartTime(), $lastRunResult[0]->getEndTime()), $this->moduleNameLang . '_LAST_RUN_TOTAL_LINKS' => $lastRunResult[0]->getTotalLinks(), $this->moduleNameLang . '_LAST_RUN_BROKEN_LINKS' => $lastRunResult[0]->getTotalBrokenLinks())); } else { if ($this->template->blockExists('showLastRun')) { $this->template->hideBlock('showLastRun'); } } //show Crawler Runs table //get parameters $pos = isset($_GET['pos']) ? $_GET['pos'] : 0; $langArray = \FWLanguage::getLanguageArray(); //set the settings value from DB \Cx\Core\Setting\Controller\Setting::init('LinkManager', 'config'); $pageLimit = \Cx\Core\Setting\Controller\Setting::getValue('entriesPerPage', 'LinkManager'); $parameter = './index.php?cmd=' . $this->moduleName; $this->template->setVariable('ENTRIES_PAGING', \Paging::get($parameter, $_ARRAYLANG['TXT_CORE_MODULE_LINKMANAGER_LINKS'], $this->crawlerRepository->crawlerEntryCount(), $pageLimit, true, $pos, 'pos')); $crawlers = $this->crawlerRepository->getCrawlerRunEntries($pos, $pageLimit); $i = 1; if ($crawlers && $crawlers->count() > 0) { foreach ($crawlers as $crawler) { $this->template->setVariable(array($this->moduleNameLang . '_CRAWLER_RUN_ID' => $crawler->getId(), $this->moduleNameLang . '_CRAWLER_RUN_LANGUAGE' => $langArray[$crawler->getLang()]['name'], $this->moduleNameLang . '_CRAWLER_RUN_STARTTIME' => \Cx\Core_Modules\LinkManager\Controller\DateTime::formattedDateAndTime($crawler->getStartTime()), $this->moduleNameLang . '_CRAWLER_RUN_ENDTIME' => \Cx\Core_Modules\LinkManager\Controller\DateTime::formattedDateAndTime($crawler->getEndTime()), $this->moduleNameLang . '_CRAWLER_RUN_DURATION' => \Cx\Core_Modules\LinkManager\Controller\DateTime::diffTime($crawler->getStartTime(), $crawler->getEndTime()), $this->moduleNameLang . '_CRAWLER_RUN_TOTAL_LINKS' => $crawler->getTotalLinks(), $this->moduleNameLang . '_CRAWLER_RUN_BROKEN_LINKS' => $crawler->getTotalBrokenLinks(), $this->moduleNameLang . '_CRAWLER_RUN_STATUS' => ucfirst($crawler->getRunStatus()), $this->moduleNameLang . '_CRAWLER_RUN_ROW' => 'row' . (++$i % 2 + 1))); $this->template->parse($this->moduleName . 'CrawlerRuns'); } $this->template->hideBlock($this->moduleName . 'NoCrawlerRunsFound'); } else { $this->template->touchBlock($this->moduleName . 'NoCrawlerRunsFound'); } }
/** * migrate old categories to new category table */ protected function migrateCategories() { try { $where = ''; if (!empty($_SESSION['contrexx_update']['calendar']['categories'])) { $where = ' WHERE `id` > ' . $_SESSION['contrexx_update']['calendar']['categories']; } $result = \Cx\Lib\UpdateUtil::sql("SELECT `id`, `name`, `status`, `pos`, `lang` FROM `" . CALENDAR_OLD_CATEGORY_TABLE . "`" . $where . " ORDER BY `id`"); $languages = \FWLanguage::getLanguageArray(); while (!$result->EOF) { \Cx\Lib\UpdateUtil::sql("INSERT IGNORE INTO `" . CALENDAR_NEW_CATEGORY_TABLE . "` (`id`, `pos`,`status`)\r\n VALUES (\r\n " . intval($result->fields['id']) . ",\r\n " . intval($result->fields['pos']) . ",\r\n " . intval($result->fields['status']) . "\r\n )"); foreach ($languages as $id => $languageData) { \Cx\Lib\UpdateUtil::sql("INSERT IGNORE INTO `" . CALENDAR_NEW_CATEGORY_NAME_TABLE . "` (`cat_id`,`lang_id`,`name`)\r\n VALUES (\r\n " . intval($result->fields['id']) . ",\r\n " . intval($id) . ",\r\n '" . contrexx_raw2db($result->fields['name']) . "'\r\n )"); } $_SESSION['contrexx_update']['calendar']['categories'] = intval($result->fields['id']); if (!checkMemoryLimit() || !checkTimeoutLimit()) { return 'timeout'; } $result->MoveNext(); } } catch (\Cx\Lib\UpdateException $e) { return \Cx\Lib\UpdateUtil::DefaultActionHandler($e); } return true; }
private function download() { global $_ARRAYLANG, $_LANGID; $objFWUser = \FWUser::getFWUserObject(); $objDownload = new Download(); $objDownload->load(isset($_REQUEST['id']) ? intval($_REQUEST['id']) : 0); if ($objDownload->getId() && !\Permission::checkAccess(143, 'static', true) && (($objFWUser = \FWUser::getFWUserObject()) == false || !$objFWUser->objUser->login() || $objDownload->getOwnerId() != $objFWUser->objUser->getId())) { $this->arrStatusMsg['error'][] = $_ARRAYLANG['TXT_DOWNLOADS_MODIFY_DOWNLOAD_PROHIBITED']; return $this->downloads(); } $arrAssociatedGroupOptions = array(); $arrNotAssociatedGroupOptions = array(); $arrAssociatedGroups = array(); $arrAssociatedCategoryOptions = array(); $arrNotAssociatedCategoryOptions = array(); $arrAssociatedCategories = array(); $arrAssociatedDownloadOptions = array(); $arrNotAssociatedDownloadOptions = array(); if (isset($_POST['downloads_download_save'])) { $objDownload->setNames(isset($_POST['downloads_download_name']) ? array_map('trim', array_map('contrexx_stripslashes', $_POST['downloads_download_name'])) : array()); $objDownload->setDescriptions(isset($_POST['downloads_download_description']) ? array_map('trim', array_map('contrexx_stripslashes', $_POST['downloads_download_description'])) : array()); $this->arrConfig['use_attr_metakeys'] ? $objDownload->setMetakeys(isset($_POST['downloads_download_metakeys']) ? array_map('trim', array_map('contrexx_stripslashes', $_POST['downloads_download_metakeys'])) : array()) : null; $objDownload->setType(isset($_POST['downloads_download_type']) ? contrexx_stripslashes($_POST['downloads_download_type']) : ''); $objDownload->setSources(isset($_POST['downloads_download_' . $objDownload->getType() . '_source']) ? array_map('trim', array_map('contrexx_stripslashes', $_POST['downloads_download_' . $objDownload->getType() . '_source'])) : array()); $objDownload->setActiveStatus(!empty($_POST['downloads_download_is_active'])); $objDownload->setMimeType(isset($_POST['downloads_download_mime_type']) ? contrexx_stripslashes($_POST['downloads_download_mime_type']) : ''); $this->arrConfig['use_attr_size'] ? $objDownload->setSize(isset($_POST['downloads_download_size']) ? intval($_POST['downloads_download_size']) : '') : null; $this->arrConfig['use_attr_license'] ? $objDownload->setLicense(isset($_POST['downloads_download_license']) ? contrexx_stripslashes($_POST['downloads_download_license']) : '') : null; $this->arrConfig['use_attr_version'] ? $objDownload->setVersion(isset($_POST['downloads_download_version']) ? contrexx_stripslashes($_POST['downloads_download_version']) : '') : null; $this->arrConfig['use_attr_author'] ? $objDownload->setAuthor(isset($_POST['downloads_download_author']) ? contrexx_stripslashes($_POST['downloads_download_author']) : '') : null; $this->arrConfig['use_attr_website'] ? $objDownload->setWebsite(isset($_POST['downloads_download_website']) ? contrexx_stripslashes($_POST['downloads_download_website']) : '') : null; $objDownload->setImage(isset($_POST['downloads_download_image']) ? contrexx_stripslashes($_POST['downloads_download_image']) : ''); $objDownload->setValidityTimePeriod(!empty($_POST['downloads_download_validity']) ? intval($_POST['downloads_download_validity']) : 0); $objDownload->setVisibility(!empty($_POST['downloads_download_visibility'])); $objDownload->setProtection(!empty($_POST['downloads_download_access'])); $objDownload->setGroups($objDownload->getProtection() && !empty($_POST['downloads_download_access_associated_groups']) ? array_map('intval', $_POST['downloads_download_access_associated_groups']) : array()); $objDownload->setCategories(!empty($_POST['downloads_download_associated_categories']) ? array_map('intval', $_POST['downloads_download_associated_categories']) : array(0)); $objDownload->setDownloads(!empty($_POST['downloads_download_associated_downloads']) ? array_map('intval', $_POST['downloads_download_associated_downloads']) : array()); $objDownload->updateMTime(); if ($objDownload->store()) { if (!empty($this->parentCategoryId)) { header('location: ' . \Cx\Core\Csrf\Controller\Csrf::enhanceURI('index.php?cmd=Downloads&act=categories&parent_id=' . $this->parentCategoryId)); } else { return $this->downloads(); } } else { $this->arrStatusMsg['error'] = array_merge($this->arrStatusMsg['error'], $objDownload->getErrorMsg()); } } $this->_pageTitle = $objDownload->getId() ? $_ARRAYLANG['TXT_DOWNLOADS_EDIT_DOWNLOAD'] : $_ARRAYLANG['TXT_DOWNLOADS_ADD_DOWNLOAD']; $this->objTemplate->addBlockFile('DOWNLOADS_DOWNLOAD_TEMPLATE', 'module_downloads_downloads', 'module_downloads_download_modify.html'); $this->objTemplate->setVariable(array('TXT_DOWNLOADS_GENERAL' => $_ARRAYLANG['TXT_DOWNLOADS_GENERAL'], 'TXT_DOWNLOADS_PERMISSIONS' => $_ARRAYLANG['TXT_DOWNLOADS_PERMISSIONS'], 'TXT_DOWNLOADS_DOWNLOAD_VISIBILITY_DESC' => $_ARRAYLANG['TXT_DOWNLOADS_DOWNLOAD_VISIBILITY_DESC'], 'TXT_DOWNLOADS_NAME' => $_ARRAYLANG['TXT_DOWNLOADS_NAME'], 'TXT_DOWNLOADS_DESCRIPTION' => $_ARRAYLANG['TXT_DOWNLOADS_DESCRIPTION'], 'TXT_DOWNLOADS_SOURCE' => $_ARRAYLANG['TXT_DOWNLOADS_SOURCE'], 'TXT_DOWNLOADS_LOCAL_FILE' => $_ARRAYLANG['TXT_DOWNLOADS_LOCAL_FILE'], 'TXT_DOWNLOADS_URL' => $_ARRAYLANG['TXT_DOWNLOADS_URL'], 'TXT_DOWNLOADS_BROWSE' => $_ARRAYLANG['TXT_DOWNLOADS_BROWSE'], 'TXT_DOWNLOADS_STATUS' => $_ARRAYLANG['TXT_DOWNLOADS_STATUS'], 'TXT_DOWNLOADS_VALIDITY_EXPIRATION' => $_ARRAYLANG['TXT_DOWNLOADS_VALIDITY_EXPIRATION'], 'TXT_DOWNLOADS_ACTIVE' => $_ARRAYLANG['TXT_DOWNLOADS_ACTIVE'], 'TXT_DOWNLOADS_TYPE' => $_ARRAYLANG['TXT_DOWNLOADS_TYPE'], 'TXT_DOWNLOADS_METAKEYS' => $_ARRAYLANG['TXT_DOWNLOADS_METAKEYS'], 'TXT_DOWNLOADS_SIZE' => $_ARRAYLANG['TXT_DOWNLOADS_SIZE'], 'TXT_DOWNLOADS_LICENSE' => $_ARRAYLANG['TXT_DOWNLOADS_LICENSE'], 'TXT_DOWNLOADS_VERSION' => $_ARRAYLANG['TXT_DOWNLOADS_VERSION'], 'TXT_DOWNLOADS_AUTHOR' => $_ARRAYLANG['TXT_DOWNLOADS_AUTHOR'], 'TXT_DOWNLOADS_WEBSITE' => $_ARRAYLANG['TXT_DOWNLOADS_WEBSITE'], 'TXT_DOWNLOADS_IMAGE' => $_ARRAYLANG['TXT_DOWNLOADS_IMAGE'], 'TXT_DOWNLOADS_CATEGORIES' => $_ARRAYLANG['TXT_DOWNLOADS_CATEGORIES'], 'TXT_DOWNLOADS_AVAILABLE_CATEGORIES' => $_ARRAYLANG['TXT_DOWNLOADS_AVAILABLE_CATEGORIES'], 'TXT_DOWNLOADS_ASSIGNED_CATEGORIES' => $_ARRAYLANG['TXT_DOWNLOADS_ASSIGNED_CATEGORIES'], 'TXT_DOWNLOADS_RELATED_DOWNLOADS' => $_ARRAYLANG['TXT_DOWNLOADS_RELATED_DOWNLOADS'], 'TXT_DOWNLOADS_AVAILABLE_DOWNLOADS' => $_ARRAYLANG['TXT_DOWNLOADS_AVAILABLE_DOWNLOADS'], 'TXT_DOWNLOADS_ASSIGNED_DOWNLOADS' => $_ARRAYLANG['TXT_DOWNLOADS_ASSIGNED_DOWNLOADS'], 'TXT_DOWNLOADS_DOWNLOAD_ALL_ACCESS_DESC' => $_ARRAYLANG['TXT_DOWNLOADS_DOWNLOAD_ALL_ACCESS_DESC'], 'TXT_DOWNLOADS_DOWNLOAD_SELECTED_ACCESS_DESC' => $_ARRAYLANG['TXT_DOWNLOADS_DOWNLOAD_SELECTED_ACCESS_DESC'], 'TXT_DOWNLOADS_AVAILABLE_USER_GROUPS' => $_ARRAYLANG['TXT_DOWNLOADS_AVAILABLE_USER_GROUPS'], 'TXT_DOWNLOADS_ASSIGNED_USER_GROUPS' => $_ARRAYLANG['TXT_DOWNLOADS_ASSIGNED_USER_GROUPS'], 'TXT_DOWNLOADS_CHECK_ALL' => $_ARRAYLANG['TXT_DOWNLOADS_CHECK_ALL'], 'TXT_DOWNLOADS_UNCHECK_ALL' => $_ARRAYLANG['TXT_DOWNLOADS_UNCHECK_ALL'], 'TXT_DOWNLOADS_CANCEL' => $_ARRAYLANG['TXT_DOWNLOADS_CANCEL'], 'TXT_DOWNLOADS_SAVE' => $_ARRAYLANG['TXT_DOWNLOADS_SAVE'])); // parse sorting & paging of the categories overview section $this->objTemplate->setVariable(array('DOWNLOADS_DOWNLOAD_CATEGORY_SORT' => !empty($_GET['category_sort']) ? $_GET['category_sort'] : '', 'DOWNLOADS_DOWNLOAD_CATEGORY_SORT_BY' => !empty($_GET['category_by']) ? $_GET['category_by'] : '', 'DOWNLOADS_DOWNLOAD_DOWNLOAD_SORT' => !empty($_GET['download_sort']) ? $_GET['download_sort'] : '', 'DOWNLOADS_DOWNLOAD_DOWNLOAD_BY' => !empty($_GET['download_by']) ? $_GET['download_by'] : '', 'DOWNLOADS_DOWNLOAD_CATEGORY_OFFSET' => !empty($_GET['category_pos']) ? intval($_GET['category_pos']) : 0, 'DOWNLOADS_DOWNLOAD_DOWNLOAD_OFFSET' => !empty($_GET['download_pos']) ? intval($_GET['download_pos']) : 0)); // parse id $this->objTemplate->setVariable('DOWNLOADS_DOWNLOAD_ID', $objDownload->getId()); // parse name and description attributres $arrLanguages = \FWLanguage::getLanguageArray(); foreach ($arrLanguages as $langId => $arrLanguage) { if ($arrLanguage['frontend'] == 1) { $this->objTemplate->setVariable(array('DOWNLOADS_DOWNLOAD_NAME' => htmlentities($objDownload->getName($langId), ENT_QUOTES, CONTREXX_CHARSET), 'DOWNLOADS_DOWNLOAD_LANG_ID' => $langId, 'DOWNLOADS_DOWNLOAD_LANG_NAME' => htmlentities($arrLanguage['name'], ENT_QUOTES, CONTREXX_CHARSET))); $this->objTemplate->parse('downloads_download_name_list'); $this->objTemplate->setVariable(array('DOWNLOADS_DOWNLOAD_DESCRIPTION' => htmlentities($objDownload->getDescription($langId), ENT_QUOTES, CONTREXX_CHARSET), 'DOWNLOADS_DOWNLOAD_LANG_ID' => $langId, 'DOWNLOADS_DOWNLOAD_LANG_DESCRIPTION' => htmlentities($arrLanguage['name'], ENT_QUOTES, CONTREXX_CHARSET))); $this->objTemplate->parse('downloads_download_description_list'); if ($this->arrConfig['use_attr_metakeys']) { $this->objTemplate->setVariable(array('DOWNLOADS_DOWNLOAD_METAKEYS' => htmlentities($objDownload->getMetakeys($langId), ENT_QUOTES, CONTREXX_CHARSET), 'DOWNLOADS_DOWNLOAD_LANG_ID' => $langId, 'DOWNLOADS_DOWNLOAD_LANG_METAKEYS' => htmlentities($arrLanguage['name'], ENT_QUOTES, CONTREXX_CHARSET))); $this->objTemplate->parse('downloads_download_metakeys_list'); } $this->objTemplate->setVariable(array('DOWNLOADS_DOWNLOAD_LANG_ID' => $langId, 'DOWNLOADS_DOWNLOAD_FILE_SOURCE' => $objDownload->getType() == 'file' ? htmlentities($objDownload->getSource($langId), ENT_QUOTES, CONTREXX_CHARSET) : '', 'TXT_DOWNLOADS_BROWSE' => $_ARRAYLANG['TXT_DOWNLOADS_BROWSE'], 'DOWNLOADS_DOWNLOAD_LANG_NAME' => htmlentities($arrLanguage['name'], ENT_QUOTES, CONTREXX_CHARSET))); $this->objTemplate->parse('downloads_download_file_source_list'); $this->objTemplate->setVariable(array('DOWNLOADS_DOWNLOAD_LANG_ID' => $langId, 'DOWNLOADS_DOWNLOAD_URL_SOURCE' => $objDownload->getType() == 'url' ? htmlentities($objDownload->getSource($langId), ENT_QUOTES, CONTREXX_CHARSET) : 'http://', 'TXT_DOWNLOADS_BROWSE' => $_ARRAYLANG['TXT_DOWNLOADS_BROWSE'], 'DOWNLOADS_DOWNLOAD_LANG_NAME' => htmlentities($arrLanguage['name'], ENT_QUOTES, CONTREXX_CHARSET))); $this->objTemplate->parse('downloads_download_url_source_list'); } } $this->objTemplate->setVariable(array('DOWNLOADS_DOWNLOAD_NAME' => htmlentities($objDownload->getName(), ENT_QUOTES, CONTREXX_CHARSET), 'TXT_DOWNLOADS_EXTENDED' => $_ARRAYLANG['TXT_DOWNLOADS_EXTENDED'])); $this->objTemplate->parse('downloads_download_name'); $this->objTemplate->setVariable(array('DOWNLOADS_DOWNLOAD_DESCRIPTION' => htmlentities($objDownload->getDescription(), ENT_QUOTES, CONTREXX_CHARSET), 'TXT_DOWNLOADS_EXTENDED' => $_ARRAYLANG['TXT_DOWNLOADS_EXTENDED'])); $this->objTemplate->parse('downloads_download_description'); // parse metakeys if ($this->arrConfig['use_attr_metakeys']) { $this->objTemplate->setVariable(array('DOWNLOADS_DOWNLOAD_METAKEYS' => htmlentities($objDownload->getMetakeys(), ENT_QUOTES, CONTREXX_CHARSET), 'TXT_DOWNLOADS_EXTENDED' => $_ARRAYLANG['TXT_DOWNLOADS_EXTENDED'])); $this->objTemplate->parse('downloads_download_metakeys'); $this->objTemplate->parse('downloads_download_attr_metakeys'); } else { $this->objTemplate->hideBlock('downloads_download_attr_metakeys'); } // parse type $this->objTemplate->setVariable(array('DOWNLOADS_DOWNLOAD_TYPE_FILE_CHECKED' => $objDownload->getType() == 'file' ? 'checked="checked"' : '', 'DOWNLOADS_DOWNLOAD_TYPE_URL_CHECKED' => $objDownload->getType() == 'url' ? 'checked="checked"' : '', 'DOWNLOADS_DOWNLOAD_TYPE_FILE_CONFIG_DISPLAY' => $objDownload->getType() == 'file' ? 'block' : 'none', 'DOWNLOADS_DOWNLOAD_TYPE_URL_CONFIG_DISPLAY' => $objDownload->getType() == 'url' ? 'block' : 'none', 'DOWNLOADS_DOWNLOAD_FILE_SOURCE' => $objDownload->getType() == 'file' ? $objDownload->getSource() : '', 'DOWNLOADS_DOWNLOAD_URL_SOURCE' => $objDownload->getType() == 'url' ? $objDownload->getSource() : 'http://', 'TXT_DOWNLOADS_BROWSE' => $_ARRAYLANG['TXT_DOWNLOADS_BROWSE'], 'TXT_DOWNLOADS_EXTENDED' => $_ARRAYLANG['TXT_DOWNLOADS_EXTENDED'])); foreach (Download::$arrMimeTypes as $mimeType => $arrMimeType) { if (!count($arrMimeType['extensions'])) { continue; } $this->objTemplate->setVariable(array('DOWNLOADS_MIME_TYPE' => $mimeType, 'DOWNLOADS_FILE_EXTENSION_REGEXP' => implode('|', $arrMimeType['extensions']))); $this->objTemplate->parse('downloads_download_file_ext_regexp'); } // parse mime type $this->objTemplate->setVariable('DOWNLOADS_DOWNLOAD_MIME_TYPE_MENU', $this->getDownloadMimeTypeMenu($objDownload->getMimeType())); $attrRow = 0; // parse size if ($this->arrConfig['use_attr_size']) { $this->objTemplate->setVariable(array('TXT_DOWNLOADS_BYTES' => $_ARRAYLANG['TXT_DOWNLOADS_BYTES'], 'DOWNLOADS_DOWNLOAD_ATTRIBUTE_ROW' => $attrRow++ % 2 + 1, 'DOWNLOADS_DOWNLOAD_SIZE' => $objDownload->getSize())); $this->objTemplate->parse('downloads_download_attr_size'); } else { $this->objTemplate->hideBlock('downloads_download_attr_size'); } // parse license if ($this->arrConfig['use_attr_license']) { $this->objTemplate->setVariable(array('DOWNLOADS_DOWNLOAD_ATTRIBUTE_ROW' => $attrRow++ % 2 + 1, 'DOWNLOADs_DOWNLOAD_LICENSE' => htmlentities($objDownload->getLicense(), ENT_QUOTES, CONTREXX_CHARSET))); $this->objTemplate->parse('downloads_download_attr_license'); } else { $this->objTemplate->hideBlock('downloads_download_attr_license'); } // parse version if ($this->arrConfig['use_attr_version']) { $this->objTemplate->setVariable(array('DOWNLOADS_DOWNLOAD_ATTRIBUTE_ROW' => $attrRow++ % 2 + 1, 'DOWNLOADS_DOWNLOAD_VERSION' => htmlentities($objDownload->getVersion(), ENT_QUOTES, CONTREXX_CHARSET))); $this->objTemplate->parse('downloads_download_attr_version'); } else { $this->objTemplate->hideBlock('downloads_download_attr_version'); } // parse author if ($this->arrConfig['use_attr_author']) { $this->objTemplate->setVariable(array('DOWNLOADS_DOWNLOAD_ATTRIBUTE_ROW' => $attrRow++ % 2 + 1, 'DOWNLOADS_DOWNLOAD_AUTHOR' => htmlentities($objDownload->getAuthor(), ENT_QUOTES, CONTREXX_CHARSET))); $this->objTemplate->parse('downloads_download_attr_author'); } else { $this->objTemplate->hideBlock('downloads_download_attr_author'); } // parse website if ($this->arrConfig['use_attr_website']) { $this->objTemplate->setVariable(array('DOWNLOADS_DOWNLOAD_ATTRIBUTE_ROW' => $attrRow++ % 2 + 1, 'DOWNLOADS_DOWNLOAD_WEBSITE' => htmlentities($objDownload->getWebsite(), ENT_QUOTES, CONTREXX_CHARSET))); $this->objTemplate->parse('downloads_download_attr_website'); } else { $this->objTemplate->hideBlock('downloads_download_attr_website'); } // parse validity expiration menu $this->objTemplate->setVariable(array('DOWNLOADS_DOWNLOAD_ATTRIBUTE_ROW' => $attrRow++ % 2 + 1, 'DOWNLOADS_DOWNLOAD_VALIDITY_EXPIRATION_MENU' => $this->getValidityMenu($objDownload->getValidityTimePeriod(), $objDownload->getExpirationDate()))); // parse active status $this->objTemplate->setVariable(array('DOWNLOADS_DOWNLOAD_IS_ACTIVE_CHECKED' => $objDownload->getActiveStatus() ? 'checked="checked"' : '')); // parse image attribute $image = $objDownload->getImage(); if (!empty($image) && file_exists(\Cx\Core\Core\Controller\Cx::instanciate()->getWebsiteDocumentRootPath() . '/' . $image)) { $thumb_name = \ImageManager::getThumbnailFilename($image); if (file_exists(\Cx\Core\Core\Controller\Cx::instanciate()->getWebsiteDocumentRootPath() . '/' . $thumb_name)) { $imageSrc = $thumb_name; } else { $imageSrc = $image; } } else { $image = ''; $imageSrc = $this->defaultDownloadImage['src']; } $this->objTemplate->setVariable(array('DOWNLOADS_DOWNLOAD_IMAGE' => $image, 'DOWNLOADS_DOWNLOAD_IMAGE_SRC' => $imageSrc, 'DOWNLOADS_DEFAULT_DOWNLOAD_IMAGE' => $this->defaultDownloadImage['src'], 'DOWNLOADS_DEFAULT_DOWNLOAD_IMAGE_WIDTH' => $this->defaultDownloadImage['width'] . 'px', 'DOWNLOADS_DEFAULT_DOWNLOAD_IMAGE_HEIGHT' => $this->defaultDownloadImage['height'] . 'px', 'DOWNLOADS_DOWNLOAD_IMAGE_REMOVE_DISPLAY' => empty($image) ? 'none' : '')); // parse associated categories $arrCategories = $this->getParsedCategoryListForDownloadAssociation(); $arrAssociatedCategories = $objDownload->getAssociatedCategoryIds(); $length = count($arrCategories); for ($i = 0; $i < $length; $i++) { if (\Permission::checkAccess(143, 'static', true) || !in_array($arrCategories[$i]['id'], $arrAssociatedCategories) && (!$arrCategories[$i]['add_files_access_id'] || \Permission::checkAccess($arrCategories[$i]['add_files_access_id'], 'dynamic', true)) || in_array($arrCategories[$i]['id'], $arrAssociatedCategories) && (!$arrCategories[$i]['manage_files_access_id'] || \Permission::checkAccess($arrCategories[$i]['manage_files_access_id'], 'dynamic', true)) || $objFWUser->objUser->login() && $arrCategories[$i]['owner_id'] == $objFWUser->objUser->getId()) { $disabled = false; } else { $disabled = true; } $option = '<option value="' . $arrCategories[$i]['id'] . '"' . ($disabled ? ' disabled="disabled"' : '') . '>' . htmlentities($arrCategories[$i]['name'], ENT_QUOTES, CONTREXX_CHARSET) . '</option>'; if (in_array($arrCategories[$i]['id'], $arrAssociatedCategories) || !$objDownload->getId() && $arrCategories[$i]['id'] == $this->parentCategoryId) { $arrAssociatedCategoryOptions[] = $option; } else { $arrNotAssociatedCategoryOptions[] = $option; } } $this->objTemplate->setVariable(array('DOWNLOADS_DOWNLOAD_ASSOCIATED_CATEGORIES' => implode("\n", $arrAssociatedCategoryOptions), 'DOWNLOADS_DOWNLOAD_NOT_ASSOCIATED_CATEGORIES' => implode("\n", $arrNotAssociatedCategoryOptions))); // parse related downloads $arrRelatedDownloads = $objDownload->getRelatedDownloadIds(); $objAvailableDownload = new Download(); $sortOrder = $this->downloadsSortingOptions[$this->arrConfig['downloads_sorting_order']]; $objAvailableDownload->loadDownloads(null, null, $sortOrder); while (!$objAvailableDownload->EOF) { if ($objAvailableDownload->getId() == $objDownload->getId()) { $objAvailableDownload->next(); continue; } $option = '<option value="' . $objAvailableDownload->getId() . '">' . htmlentities($objAvailableDownload->getName($_LANGID), ENT_QUOTES, CONTREXX_CHARSET) . ' (' . htmlentities($objAvailableDownload->getDescription($_LANGID), ENT_QUOTES, CONTREXX_CHARSET) . ')</option>'; if (in_array($objAvailableDownload->getId(), $arrRelatedDownloads)) { $arrAssociatedDownloadOptions[] = $option; } else { $arrNotAssociatedDownloadOptions[] = $option; } $objAvailableDownload->next(); } $this->objTemplate->setVariable(array('DOWNLOADS_DOWNLOAD_ASSOCIATED_DOWNLOADS' => implode("\n", $arrAssociatedDownloadOptions), 'DOWNLOADS_DOWNLOAD_NOT_ASSOCIATED_DOWNLOADS' => implode("\n", $arrNotAssociatedDownloadOptions))); // parse access permissions if ($objDownload->getAccessId()) { $objGroup = $objFWUser->objGroup->getGroups(array('dynamic' => $objDownload->getAccessId())); $arrAssociatedGroups = $objGroup->getLoadedGroupIds(); } elseif ($objDownload->getProtection()) { $arrAssociatedGroups = $objDownload->getAccessGroupIds(); } else { //$arrAssociatedCategories = $objDownload->getAssociatedCategoryIds(); if (count($arrAssociatedCategories)) { $objCategory = Category::getCategories(array('id' => $arrAssociatedCategories), null, null, array('id', 'read_access_id')); while (!$objCategory->EOF) { if ($objCategory->getReadAccessId()) { $objGroup = $objFWUser->objGroup->getGroups(array('dynamic' => $objCategory->getReadAccessId())); $arrAssociatedGroups = array_merge($arrAssociatedGroups, $objGroup->getLoadedGroupIds()); } $objCategory->next(); } } else { // TODO: WHY THAT? $objGroup = $objFWUser->objGroup->getGroups(); $arrAssociatedGroups = $objGroup->getLoadedGroupIds(); } } $objGroup = $objFWUser->objGroup->getGroups(); while (!$objGroup->EOF) { $option = '<option value="' . $objGroup->getId() . '">' . htmlentities($objGroup->getName(), ENT_QUOTES, CONTREXX_CHARSET) . ' [' . $objGroup->getType() . ']</option>'; if (in_array($objGroup->getId(), $arrAssociatedGroups)) { $arrAssociatedGroupOptions[] = $option; } else { $arrNotAssociatedGroupOptions[] = $option; } $objGroup->next(); } $this->objTemplate->setVariable(array('DOWNLOADS_DOWNLOAD_ACCESS_ALL_CHECKED' => !$objDownload->getProtection() ? 'checked="checked"' : '', 'DOWNLOADS_DOWNLOAD_ACCESS_SELECTED_CHECKED' => $objDownload->getProtection() ? 'checked="checked"' : '', 'DOWNLOADS_DOWNLOAD_ACCESS_DISPLAY' => $objDownload->getProtection() ? '' : 'none', 'DOWNLOADS_DOWNLOAD_ACCESS_ASSOCIATED_GROUPS' => implode("\n", $arrAssociatedGroupOptions), 'DOWNLOADS_DOWNLOAD_ACCESS_NOT_ASSOCIATED_GROUPS' => implode("\n", $arrNotAssociatedGroupOptions), 'DOWNLOADS_DOWNLOAD_VISIBILITY_CHECKED' => $objDownload->getVisibility() ? 'checked="checked"' : '')); // parse cancel link $this->objTemplate->setVariable(array('DOWNLOADS_DOWNLOAD_CANCEL_LINK_SECITON' => $this->parentCategoryId ? 'categories' : 'downloads', 'DOWNLOADS_PARENT_CATEGORY_ID' => $this->parentCategoryId, 'DOWNLOADS_MEDIA_BROWSER_BUTTON' => self::getMediaBrowserButton('mediabrowser_button', 'filebrowser'))); return true; }
function _settings() { global $_ARRAYLANG, $_CONFIG; $arrSettingsTabs = array("general", "block"); $defaultTab = 'general'; $selectedTab = !empty($_POST['podcast_settings_tab']) ? strtolower($_POST['podcast_settings_tab']) : $defaultTab; $this->_objTpl->loadTemplatefile('module_podcast_settings.html'); $this->_pageTitle = $_ARRAYLANG['TXT_PODCAST_SETTINGS']; $this->_objTpl->setVariable(array('TXT_PODCAST_SETTINGS' => $_ARRAYLANG['TXT_PODCAST_SETTINGS'], 'TXT_PODCAST_STANDARD_DIMENSIONS' => $_ARRAYLANG['TXT_PODCAST_STANDARD_DIMENSIONS'], 'TXT_PODCAST_PIXEL_WIDTH' => $_ARRAYLANG['TXT_PODCAST_PIXEL_WIDTH'], 'TXT_PODCAST_PIXEL_HEIGHT' => $_ARRAYLANG['TXT_PODCAST_PIXEL_HEIGHT'], 'TXT_PODCAST_LATEST_MEDIA_COUNT' => $_ARRAYLANG['TXT_PODCAST_LATEST_MEDIA_COUNT'], 'TXT_PODCAST_FEED_TITLE' => $_ARRAYLANG['TXT_PODCAST_FEED_TITLE'], 'TXT_PODCAST_FEED_DESCRIPTION' => $_ARRAYLANG['TXT_PODCAST_FEED_DESCRIPTION'], 'TXT_PODCAST_FEED_IMAGE' => $_ARRAYLANG['TXT_PODCAST_FEED_IMAGE'], 'TXT_PODCAST_FEED_LINK' => $_ARRAYLANG['TXT_PODCAST_FEED_LINK'], 'TXT_PODCAST_SAVE' => $_ARRAYLANG['TXT_PODCAST_SAVE'], 'TXT_PODCAST_PLACEHOLDERS' => $_ARRAYLANG['TXT_PODCAST_PLACEHOLDERS'], 'TXT_PODCAST_GENERAL' => $_ARRAYLANG['TXT_PODCAST_GENERAL'], 'TXT_PODCAST_BLOCK_TEMPLATE' => $_ARRAYLANG['TXT_PODCAST_BLOCK_TEMPLATE'], 'TXT_PODCAST_BLOCK_SETTINGS' => $_ARRAYLANG['TXT_PODCAST_BLOCK_SETTINGS'], 'TXT_PODCAST_SHOW_HOME_CONTENT' => $_ARRAYLANG['TXT_PODCAST_SHOW_HOME_CONTENT'], 'TXT_PODCAST_DEACTIVATE' => $_ARRAYLANG['TXT_PODCAST_DEACTIVATE'], 'TXT_PODCAST_ACTIVATE' => $_ARRAYLANG['TXT_PODCAST_ACTIVATE'], 'TXT_PODCAST_HOMECONTENT_USAGE' => $_ARRAYLANG['TXT_PODCAST_HOMECONTENT_USAGE'], 'TXT_PODCAST_HOMECONTENT_USAGE_TEXT' => $_ARRAYLANG['TXT_PODCAST_HOMECONTENT_USAGE_TEXT'], 'TXT_PODCAST_CATEGORIES' => $_ARRAYLANG['TXT_PODCAST_CATEGORIES'], 'TXT_PODCAST_THUMB_MAX_SIZE' => $_ARRAYLANG['TXT_PODCAST_THUMB_MAX_SIZE'], 'TXT_PODCAST_THUMB_MAX_SIZE_HOMECONTENT' => $_ARRAYLANG['TXT_PODCAST_THUMB_MAX_SIZE_HOMECONTENT'], 'TXT_PODCAST_PIXEL' => $_ARRAYLANG['TXT_PODCAST_PIXEL'], 'TXT_PODCAST_PLAY' => $_ARRAYLANG['TXT_PODCAST_PLAY'], 'TXT_PODCAST_MEDIA_DATE' => $_ARRAYLANG['TXT_PODCAST_MEDIA_DATE'], 'TXT_PODCAST_MEDIA_TITLE' => $_ARRAYLANG['TXT_PODCAST_MEDIA_TITLE'], 'TXT_PODCAST_MEDIA_PLAYLENGTH' => $_ARRAYLANG['TXT_PODCAST_MEDIA_PLAYLENGTH'], 'TXT_PODCAST_MEDIA_ID' => $_ARRAYLANG['TXT_PODCAST_MEDIA_ID'], 'TXT_PODCAST_MEDIA_VIEWS_COUNT' => $_ARRAYLANG['TXT_PODCAST_MEDIA_VIEWS_COUNT'], 'TXT_PODCAST_MEDIA_VIEWS' => $_ARRAYLANG['TXT_PODCAST_MEDIA_VIEWS'], 'TXT_PODCAST_MEDIA_AUTHOR' => $_ARRAYLANG['TXT_PODCAST_MEDIA_AUTHOR'], 'TXT_PODCAST_MEDIA_SHORT_PLAYLENGTH' => $_ARRAYLANG['TXT_PODCAST_MEDIA_SHORT_PLAYLENGTH'], 'TXT_PODCAST_MEDIA_PLAYLENGTH' => $_ARRAYLANG['TXT_PODCAST_MEDIA_PLAYLENGTH'], 'TXT_PODCAST_MEDIA_URL' => $_ARRAYLANG['TXT_PODCAST_MEDIA_URL'], 'TXT_PODCAST_MEDIA_THUMBNAIL' => $_ARRAYLANG['TXT_PODCAST_MEDIA_THUMBNAIL'], 'TXT_PODCAST_MEDIA_SHORT_DATE' => $_ARRAYLANG['TXT_PODCAST_MEDIA_SHORT_DATE'], 'TXT_PODCAST_MEDIA_DESCRIPTION' => $_ARRAYLANG['TXT_PODCAST_MEDIA_DESCRIPTION'], 'TXT_PODCAST_AUTO_VALIDATE' => $_ARRAYLANG['TXT_PODCAST_AUTO_VALIDATE'], 'PODCAST_BROWSE' => self::getMediaBrowserButton($_ARRAYLANG['TXT_PODCAST_BROWSE'], array('data-cx-mb-views' => 'filebrowser', 'type' => 'button', 'style' => 'width:110px;'), 'mediaBrowserCallback'))); if (isset($_POST['podcast_save_settings'])) { $arrNewSettings['auto_validate'] = $_POST['podcast_settings_auto_validate'] > 0 ? 1 : 0; if (!empty($_POST['podcast_settings_default_width'])) { $arrNewSettings['default_width'] = intval($_POST['podcast_settings_default_width']); } if (!empty($_POST['podcast_settings_default_height'])) { $arrNewSettings['default_height'] = intval($_POST['podcast_settings_default_height']); } $arrNewSettings['latest_media_count'] = !empty($_POST['podcast_settings_latest_media_count']) && intval($_POST['podcast_settings_latest_media_count']) > 0 ? intval($_POST['podcast_settings_latest_media_count']) : 1; $arrNewSettings['thumb_max_size'] = !empty($_POST['podcast_settings_thumb_max_size']) && intval($_POST['podcast_settings_thumb_max_size']) > 0 ? intval($_POST['podcast_settings_thumb_max_size']) : 50; $arrNewSettings['thumb_max_size_homecontent'] = !empty($_POST['podcast_settings_thumb_max_size_homecontent']) && intval($_POST['podcast_settings_thumb_max_size_homecontent']) > 0 ? intval($_POST['podcast_settings_thumb_max_size_homecontent']) : 50; $arrNewSettings['feed_title'] = isset($_POST['podcast_settings_feed_title']) ? $_POST['podcast_settings_feed_title'] : ''; $arrNewSettings['feed_description'] = isset($_POST['podcast_settings_feed_description']) ? $_POST['podcast_settings_feed_description'] : ''; $arrNewSettings['feed_image'] = isset($_POST['podcast_settings_feed_image']) ? $_POST['podcast_settings_feed_image'] : ''; if ($this->_updateSettings($arrNewSettings) && $this->_updateHomeContentSettings()) { $this->_createRSS(); $this->_strOkMessage = $_ARRAYLANG['TXT_PODCAST_UPDATE_SETTINGS_SUCCESSFULL']; } else { $this->_strErrMessage = $_ARRAYLANG['TXT_PODCAST_UPDATE_SETTINGS_FAILED']; } } $this->_objTpl->setVariable(array('PODCAST_SETTINGS_DEFAULT_WIDTH' => $this->_arrSettings['default_width'], 'PODCAST_SETTINGS_DEFAULT_HEIGHT' => $this->_arrSettings['default_height'], 'PODCAST_SETTINGS_LATEST_MEDIA_COUNT' => $this->_arrSettings['latest_media_count'], 'PODCAST_SETTINGS_THUMB_MAX_SIZE' => $this->_arrSettings['thumb_max_size'], 'PODCAST_SETTINGS_THUMB_MAX_SIZE_HOMECONTENT' => $this->_arrSettings['thumb_max_size_homecontent'], 'PODCAST_SETTINGS_SHOW_HOMECONTENT_' . $_CONFIG['podcastHomeContent'] => 'checked="checked"', 'PODCAST_SETTINGS_AUTO_VALIDATE_' . $this->_arrSettings['auto_validate'] => 'checked="checked"', 'PODCAST_SETTINGS_FEED_TITLE' => $this->_arrSettings['feed_title'], 'PODCAST_SETTINGS_FEED_DESCRIPTION' => $this->_arrSettings['feed_description'], 'PODCAST_SETTINGS_FEED_IMAGE' => $this->_arrSettings['feed_image'], 'PODCAST_SETTINGS_TAB' => $selectedTab, 'PODCAST_SETTINGS_FEED_URL' => ASCMS_PROTOCOL . '://' . $_CONFIG['domainUrl'] . ASCMS_FEED_WEB_PATH . '/podcast.xml')); if (!in_array($selectedTab, $arrSettingsTabs)) { $selectedTab = $defaultTab; } foreach ($arrSettingsTabs as $tab) { $this->_objTpl->setVariable(array('PODCAST_SETTINGS_' . strtoupper($tab) . '_DIV_DISPLAY' => sprintf('style="display: %s;"', $selectedTab == $tab ? 'block' : 'none'), 'PODCAST_SETTINGS_' . strtoupper($tab) . '_TAB_CLASS' => $selectedTab == $tab ? 'class="active"' : '')); } $mediumCategories = array(); if (isset($_POST['podcast_save_settings'])) { $arrPostCategories = !empty($_POST['podcast_medium_associated_category']) ? $_POST['podcast_medium_associated_category'] : array(); foreach ($arrPostCategories as $categoryId => $status) { if (intval($status) == 1) { array_push($mediumCategories, intval($categoryId)); } } $this->_setHomecontentCategories($mediumCategories); } else { $mediumCategories = $this->_getHomecontentCategories(); } $arrCategories =& $this->_getCategories(); $categoryNr = 0; $arrLanguages = \FWLanguage::getLanguageArray(); foreach ($arrCategories as $categoryId => $arrCategory) { $column = $categoryNr % 3; $arrCatLangIds =& $this->_getLangIdsOfCategory($categoryId); array_walk($arrCatLangIds, create_function('&$cat, $k, $arrLanguages', '$cat = $arrLanguages[$cat]["lang"];'), $arrLanguages); $arrCategory['title'] .= ' (' . implode(', ', $arrCatLangIds) . ')'; $this->_objTpl->setVariable(array('PODCAST_CATEGORY_ID' => $categoryId, 'PODCAST_CATEGORY_ASSOCIATED' => in_array($categoryId, $mediumCategories) ? 'checked="checked"' : '', 'PODCAST_SHOW_MEDIA_OF_CATEGORY_TXT' => sprintf($_ARRAYLANG['TXT_PODCAST_SHOW_MEDIA_OF_CATEGORY'], $arrCategory['title']), 'PODCAST_CATEGORY_NAME' => $arrCategory['title'])); $this->_objTpl->parse('podcast_medium_associated_category_' . $column); $categoryNr++; } }
private function loadLanguageAccountAttribute() { global $_CORELANG; $arrScope = array('frontend', 'backend'); $this->arrAccountAttributes['frontend_language']['children'][0] = $this->arrAccountAttributes['backend_language']['children'][0] = $_CORELANG['TXT_ACCESS_DEFAULT']; foreach (\FWLanguage::getLanguageArray() as $langId => $arrLanguage) { foreach ($arrScope as $scope) { if ($arrLanguage[$scope]) { $this->arrAccountAttributes[$scope . '_language']['children'][$langId] = $arrLanguage['name']; } } } }
/** * Modify Form * * Shows the modifying page. * @access private * @param bool $copy If the form should be copied or not */ function _modifyForm($copy = false) { global $_ARRAYLANG, $_CONFIG, $objDatabase; \JS::activate('cx'); if ($copy) { $this->initContactForms(); } $this->_objTpl->loadTemplateFile('module_contact_form_modify.html'); $formId = isset($_REQUEST['formId']) ? intval($_REQUEST['formId']) : 0; $this->_pageTitle = !$copy && $formId != 0 ? $_ARRAYLANG['TXT_CONTACT_MODIFY_CONTACT_FORM'] : $_ARRAYLANG['TXT_CONTACT_ADD_NEW_CONTACT_FORM']; $actionTitle = $_ARRAYLANG['TXT_CONTACT_ADD_NEW_CONTACT_FORM']; $showForm = 0; $useCaptcha = 1; $saveDataInCRM = 0; $useCustomStyle = 0; $sendCopy = 0; $useEmailOfSender = 0; $sendHtmlMail = 1; $sendAttachment = 0; $emails = $_CONFIG['contactFormEmail']; $crmCustomerGroups = array(); $arrActiveSystemFrontendLanguages = \FWLanguage::getActiveFrontendLanguages(); if (count($arrActiveSystemFrontendLanguages) == 1) { $this->_objTpl->setVariable('CONTACT_LANGUAGE_TABS_DISPLAY', 'display: none'); } if (isset($this->arrForms[$formId])) { // editing $actionTitle = $_ARRAYLANG['TXT_CONTACT_MODIFY_CONTACT_FORM']; $showForm = $this->arrForms[$formId]['showForm']; $useCaptcha = $this->arrForms[$formId]['useCaptcha']; $saveDataInCRM = $this->arrForms[$formId]['saveDataInCRM']; $useCustomStyle = $this->arrForms[$formId]['useCustomStyle']; $sendCopy = $this->arrForms[$formId]['sendCopy']; $useEmailOfSender = $this->arrForms[$formId]['useEmailOfSender']; $sendHtmlMail = $this->arrForms[$formId]['htmlMail']; $sendAttachment = $this->arrForms[$formId]['sendAttachment']; $emails = $this->arrForms[$formId]['emails']; $crmCustomerGroups = !empty($this->arrForms[$formId]['crmCustomerGroups']) ? $this->arrForms[$formId]['crmCustomerGroups'] : array(); } if (count($arrActiveSystemFrontendLanguages) > 0) { $intLanguageCounter = 0; $arrLanguages = array(0 => '', 1 => '', 2 => ''); $strJsTabToDiv = ''; foreach ($arrActiveSystemFrontendLanguages as $langId => $arrLanguage) { // Bugfix: if only one language is activated, it must be true, so the fields can be saved if (count($arrActiveSystemFrontendLanguages) == 1) { $boolLanguageIsActive = true; } elseif ($formId) { $boolLanguageIsActive = isset($this->arrForms[$formId]['lang'][$langId]) && $this->arrForms[$formId]['lang'][$langId]['is_active']; } else { $boolLanguageIsActive = $langId == FRONTEND_LANG_ID; } $arrLanguages[$intLanguageCounter % 3] .= '<input id="languagebar_' . $langId . '" ' . ($boolLanguageIsActive ? 'checked="checked"' : '') . ' type="checkbox" name="contactFormLanguages[' . $langId . ']" value="1" onclick="switchBoxAndTab(this, \'addFrom_' . $langId . '\');" /><label for="languagebar_' . $langId . '">' . contrexx_raw2xhtml($arrLanguage['name']) . ' [' . $arrLanguage['lang'] . ']</label><br />'; $strJsTabToDiv .= 'arrTabToDiv["addFrom_' . $langId . '"] = "langTab_' . $langId . '";' . "\n"; ++$intLanguageCounter; } $this->_objTpl->setVariable(array('TXT_CONTACT_LANGUAGE' => $_ARRAYLANG['TXT_CONTACT_LANGUAGE'], 'EDIT_LANGUAGES_1' => $arrLanguages[0], 'EDIT_LANGUAGES_2' => $arrLanguages[1], 'EDIT_LANGUAGES_3' => $arrLanguages[2], 'EDIT_JS_TAB_TO_DIV' => $strJsTabToDiv)); } // TODO: this might be a bug. Shouldn't this be the MAX(of used IDs) when modifying a form $lastFieldId = 0; if (empty($_POST['saveForm'])) { // get the saved fields $fields = $this->getFormFields($formId); $recipients = $this->getRecipients($formId); } else { $fields = $this->_getFormFieldsFromPost(); $recipients = $this->getRecipientsFromPost(); } $objCrmLibrary = new \Cx\Modules\Crm\Controller\CrmLibrary('Crm'); $memberships = array_keys($objCrmLibrary->getMemberships()); $objCrmLibrary->getMembershipDropdown($this->_objTpl, $memberships, "contactMembership", $crmCustomerGroups); // make an empty one so at least one is parsed if (empty($fields)) { foreach ($arrActiveSystemFrontendLanguages as $lang) { $fields[0] = array('type' => 'text', 'order_id' => 0, 'is_required' => false, 'check_type' => 1, 'editType' => 'new'); $fields[0]['lang'][$lang['id']] = array('name' => '', 'value' => ''); } } if (!$formId) { $selectedInterfaceLanguage = FRONTEND_LANG_ID; } elseif (isset($this->arrForms[$formId]['lang'][FRONTEND_LANG_ID])) { $selectedInterfaceLanguage = FRONTEND_LANG_ID; } elseif (isset($this->arrForms[$formId]['lang'][\FWLanguage::getDefaultLangId()])) { $selectedInterfaceLanguage = \FWLanguage::getDefaultLangId(); } elseif (count($this->arrForms[$formId]['lang'])) { $selectedInterfaceLanguage = key($this->arrForms[$formId]['lang']); } foreach (\FWLanguage::getLanguageArray() as $language) { if ($language['id'] == $selectedInterfaceLanguage && $language["frontend"] == 0) { $selectedInterfaceLanguage = \FWLanguage::getDefaultLangId(); } } //Get the fallback languages array $fallBackArr = \FWLanguage::getFallbackLanguageArray(); $strJsFallBackArr = ''; foreach ($fallBackArr as $languageId => $fallBackLanguageId) { $strJsFallBackArr .= 'arrFallBackLang[' . $languageId . '] = "' . $fallBackLanguageId . '";' . "\n"; } $this->_objTpl->setVariable(array('FALL_BACK_LANGUAGES' => $strJsFallBackArr, 'DEFAULT_LANGUAGE' => \FWLanguage::getDefaultLangId())); foreach ($arrActiveSystemFrontendLanguages as $langId => $lang) { $isSelectedInterfaceLanguage = $langId == $selectedInterfaceLanguage; $langVars = array('is_active' => $isSelectedInterfaceLanguage, 'name' => '', 'text' => '', 'feedback' => '', 'subject' => '', 'mailTemplate' => self::formMailTemplate); if (isset($this->arrForms[$formId]['lang'][$langId])) { $langVars = $this->arrForms[$formId]['lang'][$langId]; $langVars['mailTemplate'] = preg_replace('/\\{([A-Z0-9_]*?)\\}/', '[[\\1]]', $langVars['mailTemplate']); } if (isset($this->arrForms[$formId]['lang'][$fallBackArr[$lang['id']]])) { $optionalLanguageId = $fallBackArr[$lang['id']]; } elseif (isset($this->arrForms[$formId]['lang'][\FWLanguage::getDefaultLangId()])) { $optionalLanguageId = \FWLanguage::getDefaultLangId(); } else { $optionalLanguageId = key($this->arrForms[$formId]['lang']); } $this->_objTpl->setVariable(array('LANG_ID' => $langId, 'LANG_NAME' => contrexx_raw2xhtml($lang['name']), 'TAB_CLASS_NAME' => $isSelectedInterfaceLanguage ? 'active' : 'inactive', 'CONTACT_LANGTAB_DISPLAY' => $langVars['is_active'] ? 'display:inline;' : 'display:none;')); $this->_objTpl->parse('languageTabs'); $this->_objTpl->setVariable(array('LANG_ID' => $lang['id'], 'LANG_NAME' => contrexx_raw2xhtml($lang['name']), 'LANG_FORM_DISPLAY' => $isSelectedInterfaceLanguage ? 'block' : 'none', 'CONTACT_FORM_MAIL_TEMPLATE_HIDDEN' => !empty($langVars['mailTemplate']) ? contrexx_raw2xhtml($langVars['mailTemplate']) : contrexx_raw2xhtml($this->arrForms[$formId]['lang'][$optionalLanguageId]['mailTemplate']), 'CONTACT_FORM_SUBJECT' => !empty($langVars['subject']) ? contrexx_raw2xhtml($langVars['subject']) : contrexx_raw2xhtml($this->arrForms[$formId]['lang'][$optionalLanguageId]['subject']))); $this->_objTpl->parse('notificationLanguageForm'); $this->_objTpl->setVariable(array('CONTACT_FORM_ID' => $formId, 'LANG_ID' => $lang['id'], 'LANG_FORM_DISPLAY' => $isSelectedInterfaceLanguage ? 'block' : 'none', 'CONTACT_FORM_NAME' => !empty($langVars['name']) ? contrexx_raw2xhtml($langVars['name']) : contrexx_raw2xhtml($this->arrForms[$formId]['lang'][$optionalLanguageId]['name']), 'CONTACT_FORM_FIELD_NEXT_ID' => $lastFieldId + 1, 'CONTACT_FORM_TEXT_HIDDEN' => !empty($langVars['text']) ? contrexx_raw2xhtml($langVars['text']) : contrexx_raw2xhtml($this->arrForms[$formId]['lang'][$optionalLanguageId]['text']), 'CONTACT_FORM_FEEDBACK_HIDDEN' => !empty($langVars['feedback']) ? contrexx_raw2xhtml($langVars['feedback']) : contrexx_raw2xhtml($this->arrForms[$formId]['lang'][$optionalLanguageId]['feedback']), 'CONTACT_FORM_RECIPIENT_NEXT_SORT' => $this->getHighestSortValue($formId) + 2, 'CONTACT_FORM_RECIPIENT_NEXT_ID' => $this->getLastRecipientId(true) + 2, 'CONTACT_FORM_FIELD_NEXT_TEXT_TPL' => $this->_getFormFieldAttribute($lastFieldId + 1, 'text', '', $isSelectedInterfaceLanguage, $lang['id']), 'CONTACT_FORM_FIELD_LABEL_NEXT_TPL' => $this->_getFormFieldAttribute($lastFieldId + 1, 'label', '', $isSelectedInterfaceLanguage, $lang['id']), 'CONTACT_FORM_FIELD_CHECK_MENU_NEXT_TPL' => $this->_getFormFieldCheckTypesMenu('contactFormFieldCheckType[' . ($lastFieldId + 1) . ']', 'contactFormFieldCheckType_' . ($lastFieldId + 1), 'text', 1), 'CONTACT_FORM_FIELD_CHECK_MENU_TPL' => $this->_getFormFieldCheckTypesMenu('contactFormFieldCheckType[0]', 'contactFormFieldCheckType_0', 'text', 1), 'CONTACT_FORM_FIELD_CHECK_BOX_NEXT_TPL' => $this->_getFormFieldRequiredCheckBox('contactFormFieldRequired[' . ($lastFieldId + 1) . ']', 'contactFormFieldRequired_' . ($lastFieldId + 1), 'text', false), 'CONTACT_FORM_FIELD_CHECK_BOX_TPL' => $this->_getFormFieldRequiredCheckBox('contactFormFieldRequired[0]', 'contactFormFieldRequired_0', 'text', false), 'CONTACT_ACTION_TITLE' => $actionTitle, 'CONTACT_FORM_FIELD_TEXT_TPL' => $this->_getFormFieldAttribute(0, 'text', '', false), 'CONTACT_FORM_FIELD_LABEL_TPL' => $this->_getFormFieldAttribute(0, 'label', '', false), 'CONTACT_FORM_FIELD_CHECKBOX_TPL' => $this->_getFormFieldAttribute(0, 'checkbox', 0), 'CONTACT_FORM_FIELD_COUNTRY_TPL' => $this->_getFormFieldAttribute(0, 'country', '', true, 0), 'CONTACT_FORM_FIELD_ACCESS_COUNTRY_TPL' => $this->_getFormFieldAttribute(0, 'access_country', '', true, 0), 'CONTACT_FORM_FIELD_CHECKBOX_GROUP_TPL' => $this->_getFormFieldAttribute(0, 'checkboxGroup', '', false), 'CONTACT_FORM_FIELD_DATE_TPL' => $this->_getFormFieldAttribute(0, 'date', '', false), 'CONTACT_FORM_FIELD_DATETIME_TPL' => $this->_getFormFieldAttribute(0, 'datetime', '', false), 'CONTACT_FORM_FIELD_HIDDEN_TPL' => $this->_getFormFieldAttribute(0, 'hidden', '', false), 'CONTACT_FORM_FIELD_RADIO_TPL' => $this->_getFormFieldAttribute(0, 'radio', '', false), 'CONTACT_FORM_FIELD_SELECT_TPL' => $this->_getFormFieldAttribute(0, 'select', '', false))); $this->_objTpl->parse('languageForm'); } $this->_objTpl->setVariable('CONTACT_ACTIVE_LANG_NAME', contrexx_raw2xhtml($arrActiveSystemFrontendLanguages[$selectedInterfaceLanguage]['name'])); $counter = 1; foreach ($fields as $fieldID => $field) { $realFieldID = $formId > 0 ? $fieldID : $counter; $fieldType = $field['type'] == 'special' ? $field['special_type'] : $field['type']; $first = true; /** While copying a template, the edittype of the field must be 'new' */ if ($copy) { $field['editType'] = 'new'; } foreach ($arrActiveSystemFrontendLanguages as $langId => $lang) { if ($formId) { $isActive = $langId == $selectedInterfaceLanguage; } else { // when creating a new form, the form shall be created for the currently selected frontend language $isActive = $lang['id'] == FRONTEND_LANG_ID; } $show = $first && $isActive; if (isset($field['lang'][$fallBackArr[$lang['id']]])) { $optionalLanguageId = $fallBackArr[$lang['id']]; } elseif (isset($field['lang'][\FWLanguage::getDefaultLangId()])) { $optionalLanguageId = \FWLanguage::getDefaultLangId(); } else { $optionalLanguageId = key($field['lang']); } $this->_objTpl->setVariable(array('LANG_ID' => $lang['id'], 'LANG_NAME_DISPLAY' => $show ? 'block' : 'none', 'LANG_VALUE_DISPLAY' => $show ? 'block' : 'none', 'FORM_FIELD_NAME' => isset($field['lang'][$lang['id']]) ? contrexx_raw2xhtml($field['lang'][$lang['id']]['name']) : contrexx_raw2xhtml($field['lang'][$optionalLanguageId]['name']), 'CONTACT_FORM_FIELD_VALUE' => $this->_getFormFieldAttribute($realFieldID, $fieldType, isset($field['lang'][$lang['id']]) ? contrexx_raw2xhtml($field['lang'][$lang['id']]['value']) : contrexx_raw2xhtml($field['lang'][$optionalLanguageId]['value']), $show, $lang['id']))); $this->_objTpl->parse('formFieldName'); $this->_objTpl->parse('formFieldValue'); if ($isActive) { $first = false; } } $this->_objTpl->setVariable(array('CONTACT_FORM_FIELD_TYPE_MENU' => $this->_getFormFieldTypesMenu('contactFormFieldType[' . $realFieldID . ']', $fieldType, 'id="contactFormFieldType_' . $realFieldID . '" style="width:110px;" ' . 'class="contactFormFieldType" onchange="setFormFieldAttributeBox(this.getAttribute(\'id\'),this.value)"'), 'FORM_FIELD_CHECK_BOX' => $this->_getFormFieldRequiredCheckBox('contactFormFieldRequired[' . $realFieldID . ']', 'contactFormFieldRequired_' . $realFieldID, $fieldType, $field['is_required']), 'FORM_FIELD_CHECK_MENU' => $this->_getFormFieldCheckTypesMenu('contactFormFieldCheckType[' . $realFieldID . ']', 'contactFormFieldCheckType_' . $realFieldID, $fieldType, $field['check_type']), 'FORM_FIELD_ID' => $realFieldID, 'FORM_FIELD_TYPE' => $field['editType'], 'ROW_CLASS_NAME' => 'row' . ($counter % 2 == 0 ? '1' : '2'))); $counter++; $this->_objTpl->parse('formField'); } if (!$copy && $formId > 0) { $jsSubmitFunction = "updateContentSite()"; } else { $jsSubmitFunction = "createContentSite()"; } $this->_objTpl->setVariable(array('CONTACT_FORM_SHOW_FORM_YES' => $showForm ? 'checked="checked"' : '', 'CONTACT_FORM_SHOW_FORM_NO' => $showForm ? '' : 'checked="checked"', 'CONTACT_FORM_USE_CAPTCHA_YES' => $useCaptcha ? 'checked="checked"' : '', 'CONTACT_FORM_USE_CAPTCHA_NO' => $useCaptcha ? '' : 'checked="checked"', 'CONTACT_FORM_USE_CRMMODULE_YES' => $saveDataInCRM ? 'checked="checked"' : '', 'CONTACT_FORM_USE_CRMMODULE_NO' => $saveDataInCRM ? '' : 'checked="checked"', 'CONTACT_FORM_USE_CUSTOM_STYLE_YES' => $useCustomStyle ? 'checked="checked"' : '', 'CONTACT_FORM_USE_CUSTOM_STYLE_NO' => $useCustomStyle ? '' : 'checked="checked"', 'CONTACT_FORM_SEND_HTML_MAIL' => $sendHtmlMail ? 'checked="checked"' : '', 'CONTACT_MAIL_TEMPLATE_STYLE' => $sendHtmlMail ? 'table-row' : 'none', 'CONTACT_FORM_SEND_COPY_YES' => $sendCopy ? 'checked="checked"' : '', 'CONTACT_FORM_SEND_COPY_NO' => $sendCopy ? '' : 'checked="checked"', 'CONTACT_FORM_USE_EMAIL_OF_SENDER_YES' => $useEmailOfSender ? 'checked="checked"' : '', 'CONTACT_FORM_USE_EMAIL_OF_SENDER_NO' => $useEmailOfSender ? '' : 'checked="checked"', 'CONTACT_FORM_SEND_ATTACHMENT' => $sendAttachment ? 'checked="checked"' : '', 'CONTACT_FORM_EMAIL' => contrexx_raw2xhtml($emails), 'CONTACT_JS_SUBMIT_FUNCTION' => $jsSubmitFunction, 'FORM_COPY' => intval($copy), 'CONTACT_FORM_TEXT' => new \Cx\Core\Wysiwyg\Wysiwyg('contactFormTextEditor'), 'CONTACT_FORM_FEEDBACK' => new \Cx\Core\Wysiwyg\Wysiwyg('contactFormFeedbackEditor'), 'CONTACT_MAIL_TEMPLATE' => new \Cx\Core\Wysiwyg\Wysiwyg('contactMailTemplateEditor', '', 'fullpage'), 'TXT_CONTACT_FORM_FIELDS' => $_ARRAYLANG['TXT_CONTACT_FORM_FIELDS'], 'TXT_CONTACT_DELETE' => $_ARRAYLANG['TXT_CONTACT_DELETE'], 'TXT_CONTACT_MOVE_UP' => $_ARRAYLANG['TXT_CONTACT_MOVE_UP'], 'TXT_CONTACT_MOVE_DOWN' => $_ARRAYLANG['TXT_CONTACT_MOVE_DOWN'], 'TXT_CONTACT_NAME' => $_ARRAYLANG['TXT_CONTACT_NAME'], 'TXT_CONTACT_REGEX_EMAIL' => $_ARRAYLANG['TXT_CONTACT_REGEX_EMAIL'], 'TXT_CONTACT_ADD_OTHER_FIELD' => $_ARRAYLANG['TXT_CONTACT_ADD_OTHER_FIELD'], 'TXT_CONTACT_ADD_RECIPIENT' => $_ARRAYLANG['TXT_CONTACT_ADD_RECIPIENT'], 'TXT_CONTACT_FORM_VALUES' => $_ARRAYLANG['TXT_CONTACT_FORM_VALUES'], 'TXT_FORM_FIELDS' => $_ARRAYLANG['TXT_FORM_FIELDS'], 'TXT_FORM_RECIPIENTS' => $_ARRAYLANG['TXT_FORM_RECIPIENTS'], 'TXT_ADVANCED_SETTINGS' => $_ARRAYLANG['TXT_ADVANCED_SETTINGS'], 'TXT_CONTACT_FORM_NOTIFICATION' => $_ARRAYLANG['TXT_CONTACT_FORM_NOTIFICATION'], 'TXT_CONTACT_ID' => $_ARRAYLANG['TXT_CONTACT_ID'], 'TXT_CONTACT_NAME' => $_ARRAYLANG['TXT_CONTACT_NAME'], 'TXT_CONTACT_RECEIVER_ADDRESSES' => $_ARRAYLANG['TXT_CONTACT_RECEIVER_ADDRESSES'], 'TXT_CONTACT_RECEIVER_ADDRESSES_SELECTION' => $_ARRAYLANG['TXT_CONTACT_RECEIVER_ADDRESSES_SELECTION'], 'TXT_CONTACT_SAVE' => $_ARRAYLANG['TXT_CONTACT_SAVE'], 'TXT_CONTACT_SEPARATE_MULTIPLE_VALUES_BY_COMMA' => $_ARRAYLANG['TXT_CONTACT_SEPARATE_MULTIPLE_VALUES_BY_COMMA'], 'TXT_CONTACT_SEND_ATTACHMENT_DESCRIPTION' => $_ARRAYLANG['TXT_CONTACT_SEND_ATTACHMENT_DESCRIPTION'], 'TXT_CONTACT_FORM_DESC' => $_ARRAYLANG['TXT_CONTACT_FORM_DESC'], 'TXT_CONTACT_FEEDBACK' => $_ARRAYLANG['TXT_CONTACT_FEEDBACK'], 'TXT_CONTACT_VALUE_S' => $_ARRAYLANG['TXT_CONTACT_VALUE_S'], 'TXT_CONTACT_FIELD_NAME' => $_ARRAYLANG['TXT_CONTACT_FIELD_NAME'], 'TXT_CONTACT_TYPE' => $_ARRAYLANG['TXT_CONTACT_TYPE'], 'TXT_CONTACT_MANDATORY_FIELD' => $_ARRAYLANG['TXT_CONTACT_MANDATORY_FIELD'], 'TXT_CONTACT_FEEDBACK_EXPLANATION' => $_ARRAYLANG['TXT_CONTACT_FEEDBACK_EXPLANATION'], 'TXT_CONTACT_CONFIRM_CREATE_CONTENT_SITE' => $_ARRAYLANG['TXT_CONTACT_CONFIRM_CREATE_CONTENT_SITE'], 'TXT_CONTACT_CONFIRM_UPDATE_CONTENT_SITE' => $_ARRAYLANG['TXT_CONTACT_CONFIRM_UPDATE_CONTENT_SITE'], 'TXT_CONTACT_SHOW_FORM_AFTER_SUBMIT' => $_ARRAYLANG['TXT_CONTACT_SHOW_FORM_AFTER_SUBMIT'], 'TXT_CONTACT_YES' => $_ARRAYLANG['TXT_CONTACT_YES'], 'TXT_CONTACT_NO' => $_ARRAYLANG['TXT_CONTACT_NO'], 'TXT_CONTACT_CAPTCHA_PROTECTION' => $_ARRAYLANG['TXT_CONTACT_CAPTCHA_PROTECTION'], 'TXT_CONTACT_SAVE_DATA_IN_CRM' => $_ARRAYLANG['TXT_CONTACT_SAVE_DATA_IN_CRM'], 'TXT_CONTACT_CAPTCHA' => $_ARRAYLANG['TXT_CONTACT_CAPTCHA'], 'TXT_CONTACT_CAPTCHA_DESCRIPTION' => $_ARRAYLANG['TXT_CONTACT_CAPTCHA_DESCRIPTION'], 'TXT_CONTACT_SEND_COPY_DESCRIPTION' => $_ARRAYLANG['TXT_CONTACT_SEND_COPY_DESCRIPTION'], 'TXT_CONTACT_SEND_COPY' => $_ARRAYLANG['TXT_CONTACT_SEND_COPY'], 'TXT_CONTACT_USE_EMAIL_OF_SENDER_DESCRIPTION' => $_ARRAYLANG['TXT_CONTACT_USE_EMAIL_OF_SENDER_DESCRIPTION'], 'TXT_CONTACT_USE_EMAIL_OF_SENDER' => $_ARRAYLANG['TXT_CONTACT_USE_EMAIL_OF_SENDER'], 'TXT_CONTACT_SEND_ATTACHMENT' => $_ARRAYLANG['TXT_CONTACT_SEND_ATTACHMENT'], 'TXT_CONTACT_SEND_HTML_MAIL' => $_ARRAYLANG['TXT_CONTACT_SEND_HTML_MAIL'], 'TXT_CONTACT_CUSTOM_STYLE_DESCRIPTION' => $_ARRAYLANG['TXT_CONTACT_CUSTOM_STYLE_DESCRIPTION'], 'TXT_CONTACT_CUSTOM_STYLE' => $_ARRAYLANG['TXT_CONTACT_CUSTOM_STYLE'], 'TXT_CONTACT_SET_MANDATORY_FIELD' => $_ARRAYLANG['TXT_CONTACT_SET_MANDATORY_FIELD'], 'TXT_CONTACT_RECIPIENT_ALREADY_SET' => $_ARRAYLANG['TXT_CONTACT_RECIPIENT_ALREADY_SET'], 'TXT_CONTACT_EMAIL' => $_ARRAYLANG['TXT_CONTACT_EMAIL'], 'TXT_CONTACT_NAME' => $_ARRAYLANG['TXT_CONTACT_NAME'], 'TXT_CONTACT_SUBJECT' => $_ARRAYLANG['TXT_CONTACT_SUBJECT'], 'TXT_CONTACT_MAIL_TEMPLATE' => $_ARRAYLANG['TXT_CONTACT_MAIL_TEMPLATE'], 'TXT_NAME' => $_ARRAYLANG['TXT_CONTACT_FORM_NAME'], 'TXT_VALUES' => $_ARRAYLANG['TXT_CONTACT_FORM_VALUES'], 'TXT_TYPE' => $_ARRAYLANG['TXT_CONTACT_TYPE'], 'TXT_MANDATORY_FIELD' => $_ARRAYLANG['TXT_CONTACT_MANDATORY_FIELD'], 'TXT_CONTACT_VALIDATION' => $_ARRAYLANG['TXT_CONTACT_VALIDATION'], 'TXT_ADVANCED_VIEW' => $_ARRAYLANG['TXT_ADVANCED_VIEW'], 'TXT_SIMPLIFIED_VIEW' => $_ARRAYLANG['TXT_SIMPLIFIED_VIEW'], 'CONTACT_FORM_FIELDS_TITLE' => $_ARRAYLANG['TXT_CONTACT_FORM_FIELD_TITLE'], 'CONTACT_FORM_RECIPIENTS_TITLE' => $_ARRAYLANG['CONTACT_FORM_RECIPIENTS_TITLE'], 'CONTACT_FORM_SETTINGS' => $_ARRAYLANG['CONTACT_FORM_SETTINGS'], 'TXT_CONTACT_CHOOSE_MEMBERSHIPS' => $_ARRAYLANG['TXT_CONTACT_CHOOSE_MEMBERSHIPS'], 'TXT_CONTACT_ASSIGN_TO_CRM_CUSTOMER_GROUP' => $_ARRAYLANG['TXT_CONTACT_ASSIGN_TO_CRM_CUSTOMER_GROUP'], 'TXT_CONTACT_ASSIGN_CRM_CUSTOMER_GROUP_DESCRIPTION' => $_ARRAYLANG['TXT_CONTACT_ASSIGN_CRM_CUSTOMER_GROUP_DESCRIPTION'])); if (empty($recipients)) { // make an empty one so there's at least one $recipients[0] = array('id' => 1, 'email' => '', 'editType' => 'new'); foreach ($arrActiveSystemFrontendLanguages as $langID => $lang) { $recipients[0]['lang'][$langID] = ''; } } foreach ($recipients as $recipientID => $recipientField) { if ($copy) { $recipients[$recipientID]['editType'] = 'new'; } } // parse the recipients $this->_showRecipients($recipients); }
} catch (\Cx\Lib\UpdateException $e) { return \Cx\Lib\UpdateUtil::DefaultActionHandler($e); } } $arrContentSites = array('media1', 'media2', 'media3', 'media4'); // replace source url to image foreach ($arrContentSites as $module) { try { \Cx\Lib\UpdateUtil::migrateContentPage($module, '', 'images/modules/media/_base.gif', 'core_modules/media/View/Media/_base.gif', '3.1.2'); } catch (\Cx\Lib\UpdateException $e) { return \Cx\Lib\UpdateUtil::DefaultActionHandler($e); } } // update calendar data to version 3.2.0 if ($objUpdate->_isNewerVersion($_CONFIG['coreCmsVersion'], '3.2.0')) { $languages = FWLanguage::getLanguageArray(); try { $result = \Cx\Lib\UpdateUtil::sql('SELECT `id`, `invitation_email_template`, `email_template` FROM `' . DBPREFIX . 'module_calendar_event`'); if ($result && $result->RecordCount() > 0) { while (!$result->EOF) { // if the event has been already migrated, continue if (intval($result->fields['invitation_email_template']) != $result->fields['invitation_email_template']) { $result->MoveNext(); continue; } $invitationEmailTemplate = array(); $emailTemplate = array(); foreach ($languages as $langId => $langData) { $invitationEmailTemplate[$langId] = $result->fields['invitation_email_template']; $emailTemplate[$langId] = $result->fields['email_template']; }
/** * * This code creates the crm setting for company size, customerType and industryType if the do not exist and * also creates the profile attributes and links them with the new settings in the crm * * @global <type> $_CORELANG * @global <type> $_ARRAYLANG * @autor Adrian Berger <*****@*****.**> * @return void */ function createProfilAttributes() { global $_CORELANG, $_ARRAYLANG; $objFWUser = \FWUser::getFWUserObject(); $objUser = $objFWUser->objUser; $objInit = \Env::get('init'); // save lang id and arrayLangs, because they will be replaced temporary with another language and after that // we need the arrays in this language, because otherwise the user gets the site in a wrong language $backendLangId = $objInit->backendLangId; $_tempCORELANG = $_CORELANG; $_tempARRAYLANG = $_ARRAYLANG; // get all languages, so we can load the placeholder for all languages $FWLanguages = new \FWLanguage(); $languages = $FWLanguages->getLanguageArray(); $attributNameAfterLang = array('TXT_CRM_COMPANY_SIZE' => 'user_profile_attribute_company_size', 'TXT_CRM_INDUSTRY_TYPE' => 'user_profile_attribute_industry_type', 'TXT_CRM_CUSTOMER_TYPE' => 'user_profile_attribute_customer_type'); \Cx\Core\Setting\Controller\Setting::init('Crm', 'config'); foreach ($attributNameAfterLang as $key => $attributName) { if (!\Cx\Core\Setting\Controller\Setting::isDefined($attributName)) { if (!$objUser->objAttribute->getAttributeIdByName($_ARRAYLANG[$key]) !== null) { $attribut = $objUser->objAttribute->getById(0); $attribut->init(); $placeholderArr = array(); foreach ($languages as $language) { $objInit->backendLangId = $language["id"]; $langArr = $objInit->loadLanguageData(); $placeholderArr[$language["id"]] = $langArr[$key]; } $attribut->setNames($placeholderArr); $attribut->setType('text'); $attribut->setParent(0); if (!$attribut->store()) { throw new \Cx\Modules\Crm\Controller\CrmSettingsException('Failed to create User_Profile_Attribute for ' . $key); } } \CX\Core\Setting\Controller\Setting::add($attributName, $objUser->objAttribute->getAttributeIdByName($_ARRAYLANG[$key]), false, 'dropdown_user_custom_attribute', '', 'config'); } } // restore the original language settings, so the page loads in the correct language $objInit->backendLangId = $backendLangId; $_CORELANG = $_tempCORELANG; $_ARRAYLANG = $_tempARRAYLANG; }
function _modifyMedium() { global $_ARRAYLANG, $_CONFIG; if (!isset($_REQUEST['section'])) { $_REQUEST['section'] = ''; } $mediumId = isset($_REQUEST['id']) ? intval($_REQUEST['id']) : 0; $mediumTitle = ''; $mediumYoutubeID = ''; $mediumAuthor = ''; $mediumDescription = ''; $mediumSource = ''; $mediumThumbnail = ''; $mediumTemplate = ''; $mediumWidth = 0; $mediumHeight = 0; $mediumPlaylength = 0; $mediumSize = 0; $mediumStatus = 1; $mediumCategories = array(); $saveStatus = true; if ($_REQUEST['section'] != 'Podcast') { //load backend template $this->_objTpl->loadTemplatefile('module_podcast_modify_medium.html'); } else { //load frontend content as template $pageRepo = \Env::get('em')->getRepository('Cx\\Core\\ContentManager\\Model\\Entity\\Page'); $pages = $pageRepo->findBy(array('module' => 'Podcast', 'type' => \Cx\Core\ContentManager\Model\Entity\Page::TYPE_APPLICATION, 'cmd' => 'modifyMedium')); if (count($pages)) { //overwrite template, since _modifyMedium is called in the same request as the _selectMediumSource $this->_objTpl->setTemplate(current($pages)->getContent()); } } $this->_pageTitle = $mediumId > 0 ? $_ARRAYLANG['TXT_PODCAST_MODIFY_MEDIUM'] : $_ARRAYLANG['TXT_PODCAST_ADD_MEDIUM']; $this->_objTpl->setVariable(array('TXT_PODCAST_TITLE' => $_ARRAYLANG['TXT_PODCAST_TITLE'], 'TXT_PODCAST_DESCRIPTION' => $_ARRAYLANG['TXT_PODCAST_DESCRIPTION'], 'TXT_PODCAST_SOURCE' => $_ARRAYLANG['TXT_PODCAST_SOURCE'], 'TXT_PODCAST_TEMPLATE' => $_ARRAYLANG['TXT_PODCAST_TEMPLATE'], 'TXT_PODCAST_DIMENSIONS' => $_ARRAYLANG['TXT_PODCAST_DIMENSIONS'], 'TXT_PODCAST_PIXEL_WIDTH' => $_ARRAYLANG['TXT_PODCAST_PIXEL_WIDTH'], 'TXT_PODCAST_PIXEL_HEIGHT' => $_ARRAYLANG['TXT_PODCAST_PIXEL_HEIGHT'], 'TXT_PODCAST_CATEGORIES' => $_ARRAYLANG['TXT_PODCAST_CATEGORIES'], 'TXT_PODCAST_STATUS' => $_ARRAYLANG['TXT_PODCAST_STATUS'], 'TXT_PODCAST_ACTIVE' => $_ARRAYLANG['TXT_PODCAST_ACTIVE'], 'TXT_PODCAST_SAVE' => $_ARRAYLANG['TXT_PODCAST_SAVE'], 'TXT_PODCAST_PLAYLENGHT' => $_ARRAYLANG['TXT_PODCAST_PLAYLENGHT'], 'TXT_PODCAST_PLAYLENGTH' => $_ARRAYLANG['TXT_PODCAST_PLAYLENGTH'], 'TXT_PODCAST_PLAYLENGHT_FORMAT' => $_ARRAYLANG['TXT_PODCAST_PLAYLENGHT_FORMAT'], 'TXT_PODCAST_PLAYLENGTH_FORMAT' => $_ARRAYLANG['TXT_PODCAST_PLAYLENGTH_FORMAT'], 'TXT_PODCAST_FILESIZE' => $_ARRAYLANG['TXT_PODCAST_FILESIZE'], 'TXT_PODCAST_BYTES' => $_ARRAYLANG['TXT_PODCAST_BYTES'], 'TXT_PODCAST_AUTHOR' => $_ARRAYLANG['TXT_PODCAST_AUTHOR'], 'TXT_PODCAST_EDIT_OR_ADD_IMAGE' => $_ARRAYLANG['TXT_PODCAST_EDIT_OR_ADD_IMAGE'], 'TXT_PODCAST_THUMBNAIL' => $_ARRAYLANG['TXT_PODCAST_THUMBNAIL'], 'TXT_PODCAST_SHOW_FILE' => $_ARRAYLANG['TXT_PODCAST_SHOW_FILE'])); if (isset($_POST['podcast_medium_save'])) { if (isset($_POST['podcast_medium_title'])) { $mediumTitle = trim($_POST['podcast_medium_title']); } if (isset($_POST['podcast_medium_author'])) { $mediumAuthor = trim($_POST['podcast_medium_author']); } if (isset($_POST['podcast_medium_description'])) { $mediumDescription = trim($_POST['podcast_medium_description']); } if (isset($_POST['podcast_medium_template'])) { $mediumTemplate = intval($_POST['podcast_medium_template']); } $mediumWidth = isset($_POST['podcast_medium_width']) ? intval($_POST['podcast_medium_width']) : 0; $mediumHeight = isset($_POST['podcast_medium_height']) ? intval($_POST['podcast_medium_height']) : 0; $mediumSize = isset($_POST['podcast_medium_filesize']) ? intval($_POST['podcast_medium_filesize']) : 0; if (!empty($_POST['podcast_medium_playlength'])) { $arrPlaylength = array(); if (preg_match('/^(([0-9]*):)?(([0-9]*):)?([0-9]*)$/', $_POST['podcast_medium_playlength'], $arrPlaylength)) { $minutes = empty($arrPlaylength[3]) ? $arrPlaylength[2] : $arrPlaylength[4]; $hours = empty($arrPlaylength[3]) ? $arrPlaylength[4] : $arrPlaylength[2]; $mediumPlaylength = $hours * 3600 + $minutes * 60 + $arrPlaylength[5]; } } if (isset($_POST['podcast_medium_source'])) { $mediumSource = trim($_POST['podcast_medium_source']); } if (isset($_POST['podcast_medium_thumbnail'])) { $mediumThumbnail = trim($_POST['podcast_medium_thumbnail']); } if (!empty($_POST['podcast_youtubeID'])) { $mediumYoutubeID = trim($_POST['podcast_youtubeID']); $mediumSize = 0; $mediumTemplate = $this->_getYoutubeTemplate(); } $mediumStatus = $_REQUEST['section'] != 'podcast' ? isset($_POST['podcast_medium_status']) ? intval($_POST['podcast_medium_status']) : 0 : ($this->_arrSettings['auto_validate'] ? 1 : 0); if (isset($_POST['podcast_medium_associated_category'])) { foreach ($_POST['podcast_medium_associated_category'] as $categoryId => $status) { if (intval($status) == 1) { array_push($mediumCategories, intval($categoryId)); } } } if (empty($mediumTitle)) { $saveStatus = false; $this->_strErrMessage .= $_ARRAYLANG['TXT_PODCAST_EMPTY_MEDIUM_TITLE_MSG'] . "<br />\n"; } /*elseif (!$this->_isUniqueMediumTitle($mediumTitle, $mediumId)) { $saveStatus = false; $this->_strErrMessage .= $_ARRAYLANG['TXT_PODCAST_DUPLICATE_MEDIUM_TITLE_MSG']."<br />\n"; }*/ if (empty($mediumTemplate)) { $saveStatus = false; $this->_strErrMessage .= $_ARRAYLANG['TXT_PODCAST_EMPTY_MEDIUM_TEMPLATE_MSG'] . "<br />\n"; } if ($saveStatus) { if ($mediumId > 0 && $_REQUEST['section'] != 'podcast') { if ($this->_updateMedium($mediumId, $mediumTitle, $mediumYoutubeID, $mediumAuthor, $mediumDescription, $mediumThumbnail, $mediumTemplate, $mediumWidth, $mediumHeight, $mediumPlaylength, $mediumSize, $mediumCategories, $mediumStatus)) { $this->_strOkMessage = $_ARRAYLANG['TXT_PODCAST_MEDIUM_ADDED_SUCCESSFULL']; // Class in /core_modules/index.class.php is named Cache // Class in /core_modules/admin.class.php is named CacheManager $pageId = \Cx\Core\Core\Controller\Cx::instanciate()->getPage()->getId(); $cacheManager = new \Cx\Core_Modules\Cache\Controller\CacheManager(); $cacheManager->deleteSingleFile($pageId); $this->_createRSS(); return $this->_media(); } else { $this->_strErrMessage = $_ARRAYLANG['TXT_PODCAST_MEDIUM_ADDED_FAILED']; } } else { if ($this->_addMedium($mediumTitle, $mediumYoutubeID, $mediumAuthor, $mediumDescription, $mediumSource, $mediumThumbnail, $mediumTemplate, $mediumWidth, $mediumHeight, $mediumPlaylength, $mediumSize, $mediumCategories, $mediumStatus)) { // Class in /core_modules/index.class.php is named Cache // Class in /core_modules/admin.class.php is named CacheManager $pageId = \Cx\Core\Core\Controller\Cx::instanciate()->getPage()->getId(); $cacheManager = new \Cx\Core_Modules\Cache\Controller\CacheManager(); $cacheManager->deleteSingleFile($pageId); $this->_createRSS(); if ($_REQUEST['section'] != 'Podcast') { $this->_strOkMessage = $_ARRAYLANG['TXT_PODCAST_MEDIUM_UPDATED_SUCCESSFULL']; return $this->_media(); } else { if ($this->_objTpl->blockExists('podcastThanks')) { $this->_objTpl->touchBlock('podcastThanks'); } if ($this->_objTpl->blockExists('podcastForm')) { $this->_objTpl->hideBlock('podcastForm'); } return true; } } else { $this->_strErrMessage = $_ARRAYLANG['TXT_PODCAST_MEDIUM_UPDATED_FAILED']; } } } } elseif ($mediumId > 0 && ($arrMedium =& $this->_getMedium($mediumId)) !== false && $_REQUEST['section'] != 'Podcast') { $mediumTitle = $arrMedium['title']; $mediumAuthor = $arrMedium['author']; $mediumDescription = $arrMedium['description']; $mediumYoutubeID = $arrMedium['youtube_id']; $mediumSource = $arrMedium['source']; $mediumThumbnail = $arrMedium['thumbnail']; $mediumTemplate = $arrMedium['template_id']; $mediumWidth = $arrMedium['width']; $mediumHeight = $arrMedium['height']; $mediumStatus = $arrMedium['status']; $mediumCategories = $arrMedium['category']; $mediumPlaylength = $arrMedium['playlength']; $mediumSize = $arrMedium['size']; } elseif ($mediumId == 0) { $mediumSource = ''; if (isset($_POST['podcast_medium_source_type']) && in_array($_POST['podcast_medium_source_type'], array('local', 'remote', 'youtube'))) { if ($_POST['podcast_medium_source_type'] == 'local') { if (isset($_POST['podcast_medium_local_source'])) { if (strpos($_POST['podcast_medium_local_source'], ASCMS_PATH_OFFSET) === 0) { $mediumSource = ASCMS_PROTOCOL . '://%domain%%offset%' . substr($_POST['podcast_medium_local_source'], strlen(ASCMS_PATH_OFFSET)); } else { $mediumSource = ASCMS_PROTOCOL . '://%domain%%offset%' . $_POST['podcast_medium_local_source']; } } } elseif ($_POST['podcast_medium_source_type'] == 'youtube') { $mediumYoutubeID = contrexx_addslashes(trim($_POST['youtubeID'])); $mediumSource = 'http://youtube.com/v/' . $mediumYoutubeID; } elseif (isset($_POST['podcast_medium_remote_source'])) { $mediumSource = $_POST['podcast_medium_remote_source']; } } if (empty($mediumSource)) { return $this->_selectMediumSource(); } if (!empty($mediumYoutubeID)) { $mediumTitle = $this->_getYoutubeTitle($mediumYoutubeID); $mediumThumbnail = ASCMS_PATH_OFFSET . $this->_saveYoutubeThumbnail($mediumYoutubeID); $mediumTemplate =& $this->_getYoutubeTemplate(); $mediumDescription =& $this->_getYoutubeDescription($mediumYoutubeID); $mediumWidth = $this->_youTubeDefaultWidth; $mediumSize = 0; $mediumHeight = $this->_youTubeDefaultHeight; } else { $mediumTitle = ($lastSlash = strrpos($mediumSource, '/')) !== false ? substr($mediumSource, $lastSlash + 1) : $mediumSource; $mediumTemplate =& $this->_getSuitableTemplate($mediumSource); $dimensions = isset($_POST['podcast_medium_local_source']) && \Cx\Core_Modules\Media\Controller\MediaLibrary::_isImage(ASCMS_PATH . $_POST['podcast_medium_local_source']) ? @getimagesize(ASCMS_PATH . $_POST['podcast_medium_local_source']) : false; if ($dimensions) { $mediumWidth = $dimensions[0]; $mediumHeight = $dimensions[1]; } else { $mediumWidth = $this->_arrSettings['default_width']; $mediumHeight = $this->_arrSettings['default_height']; } $mediumSize = isset($_POST['podcast_medium_local_source']) ? filesize(ASCMS_PATH . $_POST['podcast_medium_local_source']) : 0; $mediumSource = htmlentities(str_replace(array('%domain%', '%offset%'), array($_CONFIG['domainUrl'], ASCMS_PATH_OFFSET), $mediumSource), ENT_QUOTES, CONTREXX_CHARSET); } } $this->_objTpl->setVariable(array('PODCAST_MODIFY_TITLE' => $mediumId > 0 ? $_ARRAYLANG['TXT_PODCAST_MODIFY_MEDIUM'] : $_ARRAYLANG['TXT_PODCAST_ADD_MEDIUM'] . ' (' . $_ARRAYLANG['TXT_PODCAST_STEP'] . ' 2: ' . $_ARRAYLANG['TXT_PODCAST_CONFIG_MEDIUM'] . ')', 'PODCAST_MEDIUM_ID' => $mediumId, 'PODCAST_MEDIUM_TITLE' => htmlentities($mediumTitle, ENT_QUOTES, CONTREXX_CHARSET), 'PODCAST_MEDIUM_AUTHOR' => htmlentities($mediumAuthor, ENT_QUOTES, CONTREXX_CHARSET), 'PODCAST_MEDIUM_DESCRIPTION' => htmlentities($mediumDescription, ENT_QUOTES, CONTREXX_CHARSET), 'PODCAST_MEDIUM_SOURCE' => $mediumSource, 'PODCAST_MEDIUM_SOURCE_URL' => htmlentities($mediumSource, ENT_QUOTES, CONTREXX_CHARSET), 'PODCAST_MEDIUM_TEMPLATE_MENU' => $this->_getTemplateMenu($mediumTemplate, 'name="podcast_medium_template" style="width:450px;"'), 'PODCAST_MEDIUM_WIDTH' => $mediumWidth, 'PODCAST_MEDIUM_HEIGHT' => $mediumHeight, 'PODCAST_MEDIUM_PLAYLENGHT' => $this->_getShortPlaylengthFormatOfTimestamp($mediumPlaylength), 'PODCAST_MEDIUM_PLAYLENGTH' => $this->_getShortPlaylengthFormatOfTimestamp($mediumPlaylength), 'PODCAST_MEDIUM_FILESIZE' => $mediumSize, 'PODCAST_MEDIUM_THUMBNAIL_SRC' => !empty($mediumThumbnail) ? $mediumThumbnail : $this->_noThumbnail, 'PODCAST_MEDIUM_STATUS' => $mediumStatus == 1 ? 'checked="checked"' : '', 'PODCAST_MEDIUM_YOUTUBE_DISABLED' => !empty($mediumYoutubeID) ? 'disabled="disabled"' : '', 'PODCAST_MEDIUM_YOUTUBE_ID' => !empty($mediumYoutubeID) ? $mediumYoutubeID : '', 'PODCAST_THUMB_BROWSE' => self::getMediaBrowserButton('', array('data-cx-mb-views' => 'filebrowser', 'type' => 'button', 'style' => 'display:none', 'id' => 'podcast_thumbnail_browser'), 'mediaBrowserCallback'))); $arrCategories =& $this->_getCategories(); $categoryNr = 0; $arrLanguages = \FWLanguage::getLanguageArray(); foreach ($arrCategories as $categoryId => $arrCategory) { if ($_REQUEST['section'] == 'Podcast') { if (!in_array($categoryId, $this->_communityCategories) && !empty($this->_communityCategories)) { continue; } } $column = $categoryNr % 3; $arrCatLangIds =& $this->_getLangIdsOfCategory($categoryId); array_walk($arrCatLangIds, create_function('&$cat, $k, $arrLanguages', '$cat = $arrLanguages[$cat]["lang"];'), $arrLanguages); $arrCategory['title'] .= ' (' . implode(', ', $arrCatLangIds) . ')'; $this->_objTpl->setVariable(array('PODCAST_CATEGORY_ID' => $categoryId, 'PODCAST_CATEGORY_ASSOCIATED' => in_array($categoryId, $mediumCategories) ? 'checked="checked"' : '', 'PODCAST_SHOW_MEDIA_OF_CATEGORY_TXT' => sprintf($_ARRAYLANG['TXT_PODCAST_SHOW_MEDIA_OF_CATEGORY'], $arrCategory['title']), 'PODCAST_CATEGORY_NAME' => $arrCategory['title'])); $this->_objTpl->parse('podcast_medium_associated_category_' . $column); $categoryNr++; } }
/** * Save modified member * * @access private * @global ADONewConnection * @global array * @global FWLanguage * @param int $dirid Id of the directory */ function _saveEditedDir($dirid = null) { global $objDatabase, $_ARRAYLANG; if (!isset($_GET['id'])) { $_GET['id'] = 0; } $dirid = empty($dirid) ? intval($_GET['id']) : $dirid; $query = "SELECT field FROM " . DBPREFIX . "module_memberdir_name\n WHERE dirid = '{$dirid}'"; $objResult = $objDatabase->Execute($query); if ($objResult) { if ($objResult->RecordCount() < 18) { $this->initDir($dirid); } } else { echo $objDatabase->ErrorMsg(); } $error = false; for ($i = 1; $i <= 18; $i++) { if (!isset($_POST['field_name_' . $i])) { $error = true; break; } $name = $_POST['field_name_' . $i]; $active = !empty($_POST['field_active_' . $i]) ? 1 : 0; $query = "UPDATE " . DBPREFIX . "module_memberdir_name SET\n name= '{$name}', active='{$active}'\n WHERE field = '{$i}' AND dirid='{$dirid}'"; if (!$objDatabase->Execute($query)) { $error = true; } } if (isset($_POST['dir_name'])) { $name = contrexx_addslashes($_POST['dir_name']); $description = contrexx_addslashes($_POST['dir_desc']); $parentdir = contrexx_addslashes($_POST['parentdir']); $parentdir = $parentdir == $dirid ? $this->directories[$dirid]['parentdir'] : $parentdir; $displaymode = contrexx_addslashes($_POST['displaymode']); $sort = intval($_POST['sortSelection']); $lang_keys = array_keys(\FWLanguage::getLanguageArray()); $langId = in_array(intval($_POST['memberdirLangId']), $lang_keys) || $_POST['memberdirLangId'] == 0 ? intval($_POST['memberdirLangId']) : $lang_keys[0]; $query = "UPDATE " . DBPREFIX . "module_memberdir_directories\n SET `name` = '{$name}',\n `description` = '{$description}',\n `parentdir` = '{$parentdir}',\n `displaymode` = '{$displaymode}',\n `sort` = " . $sort . ",\n `pic1` = '" . (empty($_POST['field_active_pic1']) ? "0" : "1") . "',\n `pic2` = '" . (empty($_POST['field_active_pic2']) ? "0" : "1") . "',\n `lang_id` = " . $langId . "\n WHERE dirid = '{$dirid}'"; if (!$objDatabase->Execute($query)) { $error = true; } } if ($error) { $this->statusMessage = $_ARRAYLANG['TXT_DATABASE_WRITE_ERROR']; } }
/** * Insert new locales after create news from backend * @global ADONewConnection * @param Integer $newsId * @param Array $newLangData * @return Boolean */ function insertLocales($newsId, $newLangData) { global $objDatabase; if (empty($newsId)) { return false; } $status = true; $arrLanguages = \FWLanguage::getLanguageArray(); foreach ($arrLanguages as $langId => $arrLanguage) { if ($arrLanguage['frontend'] == 1 && isset($newLangData['active'][$langId])) { if ($objDatabase->Execute("INSERT INTO `" . DBPREFIX . "module_news_locale` (`lang_id`, `news_id`, `is_active`, `title`, `text`, `teaser_text`)\n VALUES (" . intval($langId) . ", " . $newsId . ", '" . (isset($newLangData['active'][$langId]) ? 1 : 0) . "', '" . (isset($newLangData['title'][$langId]) ? contrexx_input2db($newLangData['title'][$langId]) : "") . "', '" . (isset($newLangData['text'][$langId]) ? $this->filterBodyTag(contrexx_input2db($newLangData['text'][$langId])) : "") . "', '" . (isset($newLangData['teaser_text'][$langId]) ? contrexx_input2db($newLangData['teaser_text'][$langId]) : "") . "')") === false) { $status = false; } } } return $status; }
public function getInactiveContentLanguageCheckboxes() { try { $activeLanguageIds = implode(',', \FWLanguage::getIdArray()); $objResult = \Cx\Lib\UpdateUtil::sql(' SELECT DISTINCT `lang` FROM `' . DBPREFIX . 'content_navigation` WHERE `lang` NOT IN (' . $activeLanguageIds . ') UNION DISTINCT SELECT DISTINCT `lang` FROM `' . DBPREFIX . 'content_navigation_history` WHERE `lang` NOT IN (' . $activeLanguageIds . ') ORDER BY `lang` ASC '); if ($objResult->RecordCount()) { $arrLanguages = \FWLanguage::getLanguageArray(); $inactiveContentLanguages = ''; while (!$objResult->EOF) { $inactiveContentLanguages .= ' <input style="clear:left;float:left;margin-top:3px;" type="checkbox" name="migrateLangIds" id="migrate-lang-' . $objResult->fields['lang'] . '" value="' . $objResult->fields['lang'] . '" /> <label for="migrate-lang-' . $objResult->fields['lang'] . '">' . $arrLanguages[$objResult->fields['lang']]['name'] . '</label><br /> '; $objResult->MoveNext(); } return $inactiveContentLanguages; } else { return ''; } } catch (\Cx\Lib\UpdateException $e) { return \Cx\Lib\UpdateUtil::DefaultActionHandler($e); } }
private function validateName() { global $_ARRAYLANG; $arrLanguages = \FWLanguage::getLanguageArray(); $namesSet = true; foreach ($arrLanguages as $langId => $arrLanguage) { if ($arrLanguage['frontend'] != 1) { continue; } if (empty($this->names[$langId])) { $namesSet = false; break; } } if ($namesSet) { return true; } else { $this->error_msg[] = $_ARRAYLANG['TXT_DOWNLOADS_EMPTY_NAME_ERROR']; return false; } }
/** * 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'); } }