Example #1
0
 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 
    }