meta_keywords ?? '')); Context::set('site_meta_description', escape($config->meta_description ?? '')); // Titles Context::set('seo_main_title', escape(Config::get('seo.main_title') ?: '$SITE_TITLE - $SITE_SUBTITLE')); Context::set('seo_subpage_title', escape(Config::get('seo.subpage_title') ?: '$SITE_TITLE - $SUBPAGE_TITLE')); Context::set('seo_document_title', escape(Config::get('seo.document_title') ?: '$SITE_TITLE - $DOCUMENT_TITLE')); // OpenGraph metadata Context::set('og_enabled', Config::get('seo.og_enabled')); Context::set('og_extract_description', Config::get('seo.og_extract_description')); Context::set('og_extract_images', Config::get('seo.og_extract_images')); Context::set('og_extract_hashtags', Config::get('seo.og_extract_hashtags')); Context::set('og_use_nick_name', Config::get('seo.og_use_nick_name')); Context::set('og_use_timestamps', Config::get('seo.og_use_timestamps')); Context::set('twitter_enabled', Config::get('seo.twitter_enabled')); $this->setTemplateFile('config_seo'); } /** * Update SEO configuration. */ public function procAdminUpdateSEO() { $vars = Context::getRequestVars(); $args = new \stdClass; $args->meta_keywords = $vars->site_meta_keywords ? implode(', ', array_map('trim', explode(',', $vars->site_meta_keywords))) : ''; $args->meta_description = trim(utf8_normalize_spaces($vars->site_meta_description)); $oModuleController = ModuleController::getInstance(); $oModuleController->updateModuleConfig('module', $args); Config::set('seo.main_title', trim(utf8_normalize_spaces($vars->seo_main_title))); Config::set('seo.subpage_title', trim(utf8_normalize_spaces($vars->seo_subpage_title))); Config::set('seo.document_title', trim(utf8_normalize_spaces($vars->seo_document_title))); Config::set('seo.og_enabled', $vars->og_enabled === 'Y'); Config::set('seo.og_extract_description', $vars->og_extract_description === 'Y'); Config::set('seo.og_extract_images', $vars->og_extract_images === 'Y'); Config::set('seo.og_extract_hashtags', $vars->og_extract_hashtags === 'Y'); Config::set('seo.og_use_nick_name', $vars->og_use_nick_name === 'Y'); Config::set('seo.og_use_timestamps', $vars->og_use_timestamps === 'Y'); Config::set('seo.twitter_enabled', $vars->twitter_enabled === 'Y'); // Save if (!Config::save()) { throw new Exception('msg_failed_to_save_config'); } $this->setMessage('success_updated'); $this->setRedirectUrl(Context::get('success_return_url') ?: getNotEncodedUrl('', 'module', 'admin', 'act', 'dispAdminConfigSEO')); } }