Beispiel #1
0
 public function runRepublishing()
 {
     $this->initRepublishing();
     FWLanguage::init();
     $langIds = array_keys(FWLanguage::getLanguageArray());
     foreach ($langIds as $id) {
         $this->createRSS($id);
     }
 }
Beispiel #2
0
 /**
  * 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');
     }
 }
Beispiel #10
0
 /**
  * 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++;
     }
 }
Beispiel #13
0
 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);
 }
Beispiel #15
0
    } 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);
     }
 }
Beispiel #21
0
 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;
     }
 }
Beispiel #22
0
 /**
  * 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');
     }
 }