function aioseop_update_settings_check() { global $aioseop_options; if (isset($_POST['aioseop_migrate_options']) || empty($aioseop_options)) { aioseop_mrt_mkarry(); } // WPML has now attached to filters, read settings again so they can be translated aioseop_get_options(); $update_options = false; if (!empty($aioseop_options)) { if (!empty($aioseop_options['aiosp_archive_noindex'])) { // migrate setting for noindex archives $aioseop_options['aiosp_archive_date_noindex'] = $aioseop_options['aiosp_archive_author_noindex'] = $aioseop_options['aiosp_archive_noindex']; unset($aioseop_options['aiosp_archive_noindex']); $update_options = true; } if (!empty($aioseop_options['aiosp_archive_title_format']) && empty($aioseop_options['aiosp_date_title_format'])) { $aioseop_options['aiosp_date_title_format'] = $aioseop_options['aiosp_archive_title_format']; unset($aioseop_options['aiosp_archive_title_format']); $update_options = true; } if (!empty($aioseop_options['aiosp_archive_title_format']) && $aioseop_options['aiosp_archive_title_format'] == '%date% | %blog_title%') { $aioseop_options['aiosp_archive_title_format'] = '%archive_title% | %blog_title%'; $update_options = true; } if ($update_options) { update_option('aioseop_options', $aioseop_options); } } }
function on_admin_footer() { global $post; $permalink = array(); $permalink['url'] = get_permalink($post->ID); $permalink['action'] = 'complete'; $fields = array(); /** * Keywords */ $fields['aiosp_keywords']['opts'] = array('name' => __('Keywords (comma separated)', 'all_in_one_seo_pack'), 'type' => 'text', 'label' => '', 'help_text' => __('A comma separated list of your most important keywords for this page that will be written as META keywords.', 'all_in_one_seo_pack')); $fields['aiosp_keywords']['opts']['help_text'] .= '<br /><a target="_blank" href="http://semperplugins.com/sections/postpage-settings/">Click here for documentation on this setting</a>'; $fields['aiosp_keywords']['args'] = array('name' => 'aiosp_keywords', 'attr' => 'placeholder="{{placeholder}}"', 'data' => '', 'classes' => 'class="wpglobus-aioseop_keywords"', 'value' => '', 'prefix' => '', 'options' => $fields['aiosp_keywords']['opts']); /** * Description */ $fields['aiosp_description']['opts'] = array('name' => __('Description', 'all_in_one_seo_pack'), 'type' => 'textarea', 'count' => true, 'cols' => 80, 'rows' => 2, 'label' => '', 'help_text' => __('The META description for this page. This will override any autogenerated descriptions.', 'all_in_one_seo_pack'), 'placeholder' => ''); $fields['aiosp_description']['opts']['help_text'] .= '<br /><a target="_blank" href="http://semperplugins.com/sections/postpage-settings/">Click here for documentation on this setting</a>'; $fields['aiosp_description']['args'] = array('name' => 'aiosp_description', 'attr' => 'placeholder="{{placeholder}}"', 'data' => ' data-max-size="160" ', 'classes' => 'class="wpglobus_countable wpglobus-aioseop_description"', 'value' => '', 'prefix' => 'wpglobus_', 'suffix' => '', 'options' => $fields['aiosp_description']['opts']); /** * Title */ $fields['aiosp_title']['opts'] = array('name' => __('Title', 'all_in_one_seo_pack'), 'type' => 'text', 'count' => true, 'size' => 60, 'help_text' => __('A custom title that shows up in the title tag for this page.', 'all_in_one_seo_pack'), 'default' => '', 'initial_options' => '', 'nowrap' => '', 'label' => '', 'save' => true, 'placeholder' => ''); $fields['aiosp_title']['opts']['help_text'] .= '<br /><a target="_blank" href="http://semperplugins.com/sections/postpage-settings/">Click here for documentation on this setting</a>'; $fields['aiosp_title']['args'] = array('name' => 'aiosp_title_{{language}}', 'attr' => 'size="60" placeholder="{{placeholder}}"', 'data' => ' data-max-size="60" ', 'classes' => 'class="wpglobus_countable wpglobus-aioseop_title"', 'value' => '', 'prefix' => 'wpglobus_', 'suffix' => '', 'options' => $fields['aiosp_title']['opts']); /** * Snippet must be last in array */ $fields['aiosp_snippet']['opts'] = array('name' => __('Preview Snippet', 'all_in_one_seo_pack'), 'type' => 'html', 'label' => 'top', 'help_text' => __('A preview of what this page might look like in search engine results.', 'all_in_one_seo_pack'), 'nowrap' => 1, 'save' => true, 'prefix' => ''); $fields['aiosp_snippet']['opts']['help_text'] .= '<br /><a target="_blank" href="http://semperplugins.com/sections/postpage-settings/">Click here for documentation on this setting</a>'; $fields['aiosp_snippet']['args'] = array('name' => 'aiosp_snippet', 'attr' => '', 'classes' => 'wpglobus-aioseop_snippet', 'data' => '', 'value' => '<div class="preview_snippet"> <div id="aioseop_snippet_{{language}}" data-extra-length="{{extra_length}}"> <h3{{header_style}}><a{{link_style}}><span id="aioseop_snippet_title_{{language}}">%s</span>%s</a></h3> <div> <div> <cite{{cite_style}} id="aioseop_snippet_link_{{language}}">%s</cite> </div> <span id="aioseop_snippet_description_{{language}}">%s</span> </div> </div> </div> ', 'prefix' => '', 'options' => $fields['aiosp_snippet']['opts']); $aio = new WPGlobus_All_in_One_SEO(); /** * @todo check url */ $permalink = array(); if ('publish' == $post->post_status) { $permalink['url'] = get_permalink($post->ID); $permalink['action'] = 'complete'; } else { $permalink['url'] = trailingslashit(home_url()); $permalink['action'] = ''; } /** * get keywords for current post * use original function for compatibility * * "All In One SEO Pack" may to add keywords in addition to any keywords you specify on the Edit Post screen. * @see options in Keyword Settings metabox on General Settings page. */ $keywords = $aio->get_all_keywords(); $keywords = explode(',', $keywords); global $wpdb; //$keywords_source = array(); foreach ($keywords as $keyword) { $keyword = trim($keyword); if (empty($keyword)) { $keywords_source[$keyword] = ''; } else { $name = $wpdb->get_var("SELECT name FROM {$wpdb->terms} WHERE name LIKE '%{$keyword}%'"); if (empty($name)) { $keywords_source[$keyword] = ''; } else { $keywords_source[$keyword] = $name; } } } $aioseop_options = aioseop_get_options(); switch ($post->post_type) { case 'post': $title_format = $aioseop_options['aiosp_post_title_format']; $title_format = explode(' ', preg_replace('/\\s+/', ' ', $title_format)); break; default: $title_format = ''; } /** * Get meta title in current language ( WPGlobus::Config()->language ) * in $aioseop_options['aiosp_post_title_format'] format, usual as %post_title% | %blog_title% * Title will be like to "New Post for All in one Seo Pack | WPGlobus" without language marks */ $aiosp_meta_title = $aio->get_aioseop_title($post); if (isset($title_format[1])) { $aiosp_meta_title = explode($title_format[1], $aiosp_meta_title); $aiosp_meta_title = $aiosp_meta_title[0]; } $aiosp_meta_title_source = get_post_meta($post->ID, "_aioseop_title", true); $aiosp_meta_title_source = trim($aiosp_meta_title_source); if (!WPGlobus_Core::text_filter($aiosp_meta_title_source, WPGlobus::Config()->default_language)) { /** * Reset meta title for default language */ $aiosp_meta_title = ''; } /** * Get meta description in current language ( WPGlobus::Config()->language ) with $aio->get_post_description($post) * @see 'localization' filter in wpglobus-controller.php */ // $aiosp_post_description = $aio->get_post_description($post); /** * but we need description with language marks */ $aiosp_meta_description_source = $aiosp_post_description = get_post_meta($post->ID, "_aioseop_description", true); $aiosp_meta_description_source = trim($aiosp_meta_description_source); /** * Get keywords /// title in current language ( WPGlobus::Config()->language ) */ $aiosp_keywords_source = get_post_meta($post->ID, "_aioseop_keywords", true); $header_style = ' style="padding:8px 0;"'; $link_style = ' style="color:#12c;cursor: pointer;text-decoration: -moz-use-text-color none solid;font-size:16px;"'; $cite_style = ' style="color:#093;font-style:normal;"'; ?> <div id="wpglobus-aioseop-tabs" class="hidden wpglobus-hidden"> <ul class="wpglobus-aioseop-tabs-list"> <?php $order = 0; foreach (WPGlobus::Config()->enabled_languages as $language) { ?> <li id="aioseop-link-tab-<?php echo $language; ?> " data-language="<?php echo $language; ?> " data-order="<?php echo $order; ?> " class="wpglobus-aioseop-tab"><a href="#aioseop-tab-<?php echo $language; ?> "><?php echo WPGlobus::Config()->en_language_name[$language]; ?> </a> </li> <?php $order++; } ?> </ul> <div style="clear:both;margin-bottom:20px;"></div><?php foreach (WPGlobus::Config()->enabled_languages as $language) { if ($language == WPGlobus::Config()->default_language) { $return = WPGlobus::RETURN_IN_DEFAULT_LANGUAGE; if ($language == WPGlobus::Config()->language) { $aiosp_title = trim(WPGlobus_Core::text_filter($aiosp_meta_title, $language, WPGlobus::RETURN_IN_DEFAULT_LANGUAGE)); } else { /** * Get title from source ( post meta key '_aioseop_title' ) */ $aiosp_title = trim(WPGlobus_Core::text_filter($aiosp_meta_title_source, $language, WPGlobus::RETURN_EMPTY)); } } else { $return = WPGlobus::RETURN_EMPTY; $aiosp_title = trim(WPGlobus_Core::text_filter($aiosp_meta_title, $language, WPGlobus::RETURN_EMPTY)); if (empty($aiosp_title)) { /** * Get title from source ( post meta key '_aioseop_title' ) */ $aiosp_title = trim(WPGlobus_Core::text_filter($aiosp_meta_title_source, $language, WPGlobus::RETURN_EMPTY)); } } $url = WPGlobus_Utils::localize_url($permalink['url'], $language); /** * Set snippet title */ $aiosp_placeholder_title = WPGlobus_Core::text_filter($post->post_title, $language, $return); $aiosp_snippet_title = empty($aiosp_title) ? $aiosp_placeholder_title : $aiosp_title; /** * Set meta description */ $aiosp_meta_description = WPGlobus_Core::text_filter($aiosp_meta_description_source, $language, $return); if (empty($aiosp_meta_description)) { $description = ''; if (empty($aioseop_options["aiosp_skip_excerpt"])) { $description = $aio->trim_excerpt_without_filters_full_length(WPGlobus_Core::text_filter($post->post_excerpt, $language, WPGlobus::RETURN_EMPTY)); } if (!$description && $aioseop_options["aiosp_generate_descriptions"]) { $content = WPGlobus_Core::text_filter($post->post_content, $language, WPGlobus::RETURN_IN_DEFAULT_LANGUAGE); if (!empty($aioseop_options["aiosp_run_shortcodes"])) { $content = do_shortcode($content); } $content = wp_strip_all_tags($content); $description = $aio->trim_excerpt_without_filters($content); } $aiosp_description = ''; $aiosp_placeholder_description = $description; $aiosp_snippet_description = $aiosp_placeholder_description; } else { $aiosp_description = WPGlobus_Core::text_filter($aiosp_post_description, $language, $return); $aiosp_placeholder_description = $aiosp_description; $aiosp_snippet_description = $aiosp_description; } /** * Make All in one Seo Pack tabs */ ?> <div id="aioseop-tab-<?php echo $language; ?> " class="wpglobus-aioseop-general" data-language="<?php echo $language; ?> " data-url-<?php echo $language; ?> ="<?php echo $url; ?> "> <?php $r = ''; foreach ($fields as $name => $data) { if ('aiosp_snippet' == $name) { $snippet_title_2 = ''; if (isset($title_format[2]) && false !== strpos($title_format[2], '%blog_title%')) { $snippet_title_2 = ' ' . $title_format[1] . ' ' . WPGlobus_Core::text_filter(get_option('blogname'), $language, WPGlobus::RETURN_IN_DEFAULT_LANGUAGE); } $data['args']['value'] = str_replace('{{language}}', $language, $data['args']['value']); $data['args']['value'] = str_replace('{{header_style}}', $header_style, $data['args']['value']); $data['args']['value'] = str_replace('{{link_style}}', $link_style, $data['args']['value']); $data['args']['value'] = str_replace('{{cite_style}}', $cite_style, $data['args']['value']); $data['args']['value'] = sprintf($data['args']['value'], $aiosp_snippet_title, $snippet_title_2, WPGlobus_Utils::localize_url($permalink['url'], $language), $aiosp_snippet_description); $data['args']['value'] = str_replace('{{extra_length}}', mb_strlen($snippet_title_2), $data['args']['value']); } else { if ('aiosp_title' == $name) { $data['args']['name'] = str_replace('{{language}}', $language, $data['args']['name']); $data['args']['attr'] = str_replace('{{placeholder}}', $aiosp_placeholder_title, $data['args']['attr']); $data['args']['prefix'] = 'wpglobus_title_'; $data['args']['suffix'] = '_' . $language; $data['args']['data'] = $data['args']['data'] . ' data-field-count="wpglobus_title_length_' . $language . '" data-extra-element="aioseop_snippet_' . $language . '" data-language="' . $language . '"'; $data['args']['value'] = $aiosp_title; } else { if ('aiosp_description' == $name) { $data['args']['attr'] = str_replace('{{placeholder}}', $aiosp_placeholder_description, $data['args']['attr']); $data['args']['prefix'] = 'wpglobus_description_'; $data['args']['suffix'] = '_' . $language; $data['args']['name'] = $data['args']['name'] . '_' . $language; $data['args']['data'] = $data['args']['data'] . ' data-field-count="wpglobus_description_length_' . $language . '" data-language="' . $language . '"'; $data['args']['value'] = $aiosp_description; } else { if ('aiosp_keywords' == $name) { $placeholders = array(); foreach ($keywords as $keyword) { if (empty($keywords_source[$keyword])) { continue; } /** * @todo maybe better use WPGlobus::RETURN_EMPTY, in this case we will be have tags in native language only */ $placeholders[] = WPGlobus_Core::text_filter($keywords_source[$keyword], $language, WPGlobus::RETURN_IN_DEFAULT_LANGUAGE); } $placeholder = implode(',', $placeholders); $data['args']['attr'] = str_replace('{{placeholder}}', $placeholder, $data['args']['attr']); $data['args']['data'] = ' data-language="' . $language . '" '; $data['args']['name'] = $data['args']['name'] . '_' . $language; $data['args']['data'] = ' data-language="' . $language . '" '; $data['args']['value'] = WPGlobus_Core::text_filter($aiosp_keywords_source, $language, WPGlobus::RETURN_EMPTY); } } } } $r = $aio->wpg_get_option_row($name, $data['opts'], $data['args'], $language) . $r; } echo $r; ?> </div> <!-- .wpglobus-aioseop-general --> <?php } // end foreach ?> <!-- <hr /> --> </div> <!-- #wpglobus-aioseop-tabs --> <?php }