SEO Ultimate - Version 6.9.7

Version Description

Download this release

Release Info

Developer JohnLamansky
Plugin Icon 128x128 SEO Ultimate
Version 6.9.7
Comparing to
See all releases

Code changes from version 6.9.6 to 6.9.7

includes/jlfunctions/arr.php CHANGED
@@ -147,7 +147,8 @@ class suarr {
147
 
148
  function value_replace($array, $value_changes, $recursive = true, $return_replaced_only = false) {
149
  $newarray = array();
150
- foreach ($array as $key => $value) {
 
151
 
152
  $oldvalue = $value;
153
 
@@ -159,6 +160,7 @@ class suarr {
159
  if ($value != $oldvalue || !$return_replaced_only)
160
  $newarray[$key] = $value;
161
  }
 
162
  return $newarray;
163
  }
164
 
147
 
148
  function value_replace($array, $value_changes, $recursive = true, $return_replaced_only = false) {
149
  $newarray = array();
150
+
151
+ foreach ((array)$array as $key => $value) {
152
 
153
  $oldvalue = $value;
154
 
160
  if ($value != $oldvalue || !$return_replaced_only)
161
  $newarray[$key] = $value;
162
  }
163
+
164
  return $newarray;
165
  }
166
 
modules/autolinks/content-autolinks.php CHANGED
@@ -136,6 +136,9 @@ class SU_ContentAutolinks extends SU_Module {
136
  else
137
  $url = $this->jlsuggest_value_to_url($to_id ? "obj_$type/$to_id" : "obj_$type");
138
 
 
 
 
139
  if (!$this->get_setting('enable_current_url_links', false) && suurl::equal($url, suurl::current()))
140
  continue;
141
 
136
  else
137
  $url = $this->jlsuggest_value_to_url($to_id ? "obj_$type/$to_id" : "obj_$type");
138
 
139
+ if (!is_string($url))
140
+ continue;
141
+
142
  if (!$this->get_setting('enable_current_url_links', false) && suurl::equal($url, suurl::current()))
143
  continue;
144
 
modules/settings/settings-data.php CHANGED
@@ -111,19 +111,9 @@ class SU_SettingsData extends SU_Module {
111
  , 'nofollow' => 'Nofollow'
112
  , 'target' => 'Target'
113
  );
114
- if (is_array($djlinks) && count($djlinks)) {
115
  $djlinks = suarr::key_replace($djlinks, $csv_headers, true, true);
116
-
117
- $djlinks['to_type'] = suarr::value_replace($djlinks['to_type'], array(
118
- 'url' => 'URL'
119
- ), false, false);
120
-
121
- $djlinks['nofollow'] = suarr::value_replace($djlinks['nofollow'], array(
122
- 0 => 'No'
123
- , 1 => 'Yes'
124
- ), false, false);
125
-
126
- } else
127
  $djlinks = array(array_fill_keys($csv_headers, ''));
128
 
129
  suio::export_csv($djlinks);
111
  , 'nofollow' => 'Nofollow'
112
  , 'target' => 'Target'
113
  );
114
+ if (is_array($djlinks) && count($djlinks))
115
  $djlinks = suarr::key_replace($djlinks, $csv_headers, true, true);
116
+ else
 
 
 
 
 
 
 
 
 
 
117
  $djlinks = array(array_fill_keys($csv_headers, ''));
118
 
119
  suio::export_csv($djlinks);
modules/widgets/widgets.php CHANGED
@@ -127,15 +127,15 @@ class SU_Widget_SiloedTerms extends WP_Widget {
127
  $count = isset($instance['count']) ? (bool)$instance['count'] : false;
128
  $use_desc_for_title = isset($instance['use_desc_for_title']) ? (bool)$instance['use_desc_for_title'] : true;
129
  ?>
130
- <p><label for="<?php echo $this->get_field_id('title'); ?>"><?php _e( 'Title:' ); ?></label>
131
  <input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo $title; ?>" /></p>
132
 
133
  <p><input type="checkbox" class="checkbox" id="<?php echo $this->get_field_id('count'); ?>" name="<?php echo $this->get_field_name('count'); ?>"<?php checked( $count ); ?> />
134
- <label for="<?php echo $this->get_field_id('count'); ?>"><?php _e( 'Show post counts' ); ?></label>
135
  <br /><input type="checkbox" class="checkbox" id="<?php echo $this->get_field_id('use_desc_for_title'); ?>" name="<?php echo $this->get_field_name('use_desc_for_title'); ?>"<?php checked( $use_desc_for_title ); ?> />
136
- <label for="<?php echo $this->get_field_id('use_desc_for_title'); ?>"><?php _e( 'Use term descriptions in title attributes' ); ?></label></p>
137
 
138
- <p><label for="<?php echo $this->get_field_id('taxonomy'); ?>"><?php _e('Taxonomy:') ?></label>
139
  <select class="widefat" id="<?php echo $this->get_field_id('taxonomy'); ?>" name="<?php echo $this->get_field_name('taxonomy'); ?>">
140
  <?php foreach ( get_object_taxonomies('post') as $taxonomy ) :
141
  $tax = get_taxonomy($taxonomy);
@@ -214,7 +214,7 @@ class SU_Widget_FooterLinks extends WP_Widget {
214
  $title = esc_attr( $instance['title'] );
215
  $display = empty($instance['display']) ? 'list' : $instance['display'];
216
  ?>
217
- <p><label for="<?php echo $this->get_field_id('title'); ?>"><?php _e( 'Title: <em>(optional)</em>' ); ?></label>
218
  <input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo $title; ?>" /></p>
219
 
220
  <p>
127
  $count = isset($instance['count']) ? (bool)$instance['count'] : false;
128
  $use_desc_for_title = isset($instance['use_desc_for_title']) ? (bool)$instance['use_desc_for_title'] : true;
129
  ?>
130
+ <p><label for="<?php echo $this->get_field_id('title'); ?>"><?php _e( 'Title:', 'seo-ultimate' ); ?></label>
131
  <input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo $title; ?>" /></p>
132
 
133
  <p><input type="checkbox" class="checkbox" id="<?php echo $this->get_field_id('count'); ?>" name="<?php echo $this->get_field_name('count'); ?>"<?php checked( $count ); ?> />
134
+ <label for="<?php echo $this->get_field_id('count'); ?>"><?php _e( 'Show post counts', 'seo-ultimate' ); ?></label>
135
  <br /><input type="checkbox" class="checkbox" id="<?php echo $this->get_field_id('use_desc_for_title'); ?>" name="<?php echo $this->get_field_name('use_desc_for_title'); ?>"<?php checked( $use_desc_for_title ); ?> />
136
+ <label for="<?php echo $this->get_field_id('use_desc_for_title'); ?>"><?php _e( 'Use term descriptions in title attributes', 'seo-ultimate' ); ?></label></p>
137
 
138
+ <p><label for="<?php echo $this->get_field_id('taxonomy'); ?>"><?php _e('Taxonomy:', 'seo-ultimate') ?></label>
139
  <select class="widefat" id="<?php echo $this->get_field_id('taxonomy'); ?>" name="<?php echo $this->get_field_name('taxonomy'); ?>">
140
  <?php foreach ( get_object_taxonomies('post') as $taxonomy ) :
141
  $tax = get_taxonomy($taxonomy);
214
  $title = esc_attr( $instance['title'] );
215
  $display = empty($instance['display']) ? 'list' : $instance['display'];
216
  ?>
217
+ <p><label for="<?php echo $this->get_field_id('title'); ?>"><?php _e( 'Title: <em>(optional)</em>', 'seo-ultimate' ); ?></label>
218
  <input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo $title; ?>" /></p>
219
 
220
  <p>
plugin/class.seo-ultimate.php CHANGED
@@ -180,6 +180,7 @@ class SEO_Ultimate {
180
  /********** ACTION & FILTER HOOKS **********/
181
 
182
  //Initializes modules at WordPress initialization
 
183
  add_action('init', array(&$this, 'init'));
184
 
185
  //Hook to output all <head> code
@@ -597,9 +598,6 @@ class SEO_Ultimate {
597
  */
598
  function init() {
599
 
600
- //Allow translation of this plugin
601
- load_plugin_textdomain('seo-ultimate', '', plugin_basename($this->plugin_dir_path));
602
-
603
  //Load default module settings and run modules' init tasks
604
  foreach ($this->modules as $key => $module) {
605
  //Accessing $module directly causes problems when the modules use the &$this reference
@@ -617,6 +615,13 @@ class SEO_Ultimate {
617
  }
618
  }
619
 
 
 
 
 
 
 
 
620
  /**
621
  * Attached to WordPress' admin_init hook.
622
  * Calls the admin_page_init() function of the current module(s).
@@ -1153,6 +1158,8 @@ class SEO_Ultimate {
1153
  , 'Bugfix' => 'bugfix'
1154
  , 'Improvement' => 'improvement'
1155
  , 'Security Fix' => 'security'
 
 
1156
  );
1157
 
1158
  $change_labels = array(
@@ -1161,6 +1168,8 @@ class SEO_Ultimate {
1161
  , 'bugfix' => array(__('bugfix', 'seo-ultimate'), __('bugfixes', 'seo-ultimate'))
1162
  , 'improvement' => array(__('improvement', 'seo-ultimate'), __('improvements', 'seo-ultimate'))
1163
  , 'security' => array(__('security fix', 'seo-ultimate'), __('security fixes', 'seo-ultimate'))
 
 
1164
  );
1165
 
1166
  $changes = array();
180
  /********** ACTION & FILTER HOOKS **********/
181
 
182
  //Initializes modules at WordPress initialization
183
+ add_action('init', array(&$this, 'load_textdomain'), 0); //Run before widgets_init hook (wp-includes/default-widgets.php)
184
  add_action('init', array(&$this, 'init'));
185
 
186
  //Hook to output all <head> code
598
  */
599
  function init() {
600
 
 
 
 
601
  //Load default module settings and run modules' init tasks
602
  foreach ($this->modules as $key => $module) {
603
  //Accessing $module directly causes problems when the modules use the &$this reference
615
  }
616
  }
617
 
618
+ /**
619
+ * @since 6.9.7
620
+ */
621
+ function load_textdomain() {
622
+ load_plugin_textdomain('seo-ultimate', '', trailingslashit(plugin_basename($this->plugin_dir_path)) . 'translations');
623
+ }
624
+
625
  /**
626
  * Attached to WordPress' admin_init hook.
627
  * Calls the admin_page_init() function of the current module(s).
1158
  , 'Bugfix' => 'bugfix'
1159
  , 'Improvement' => 'improvement'
1160
  , 'Security Fix' => 'security'
1161
+ , 'New Translation' => 'new-lang'
1162
+ , 'Updated Translation' => 'updated-lang'
1163
  );
1164
 
1165
  $change_labels = array(
1168
  , 'bugfix' => array(__('bugfix', 'seo-ultimate'), __('bugfixes', 'seo-ultimate'))
1169
  , 'improvement' => array(__('improvement', 'seo-ultimate'), __('improvements', 'seo-ultimate'))
1170
  , 'security' => array(__('security fix', 'seo-ultimate'), __('security fixes', 'seo-ultimate'))
1171
+ , 'new-lang' => array(__('new language pack', 'seo-ultimate'), __('new language packs', 'seo-ultimate'))
1172
+ , 'updated-lang'=> array(__('language pack update', 'seo-ultimate'), __('language pack updates', 'seo-ultimate'))
1173
  );
1174
 
1175
  $changes = array();
readme.txt CHANGED
@@ -3,12 +3,12 @@ Contributors: SEO Design Solutions, JohnLamansky
3
  Tags: seo, SEO Ultimate, suite, google, yahoo, bing, search engines, admin, post, page, custom post types, categories, tags, terms, custom taxonomies, base, title, title tag, wp_title, meta, robots, noindex, nofollow, canonical, HTTP headers, 404, robots.txt, htaccess, slugs, url, anchor, more, link, excerpt, permalink, links, autolinks, code, footer, settings, redirect, 301, 302, 307, modules, uninstallable, reinstallable, downgradable, import, export, CSV, affiliate
4
  Requires at least: 3.2
5
  Tested up to: 3.2
6
- Stable tag: 6.9.6
7
 
8
  This all-in-one SEO plugin gives you control over title tags, noindex, meta tags, slugs, canonical, autolinks, 404 errors, rich snippets, and more.
9
 
10
  == Description ==
11
-
12
  = Recent Releases =
13
 
14
  * Version 6.9 adds the Settings Monitor module
@@ -265,6 +265,12 @@ Frequently asked questions, settings help, and troubleshooting tips for SEO Ulti
265
 
266
  == Changelog ==
267
 
 
 
 
 
 
 
268
  = Version 6.9.6 (September 23, 2011) =
269
  * Bugfix: Deeplink Juggernaut now applies changes to sitewide link caps gradually instead of all at once, in order to alleviate out-of-memory errors and large processing overhead on sites with many posts
270
 
3
  Tags: seo, SEO Ultimate, suite, google, yahoo, bing, search engines, admin, post, page, custom post types, categories, tags, terms, custom taxonomies, base, title, title tag, wp_title, meta, robots, noindex, nofollow, canonical, HTTP headers, 404, robots.txt, htaccess, slugs, url, anchor, more, link, excerpt, permalink, links, autolinks, code, footer, settings, redirect, 301, 302, 307, modules, uninstallable, reinstallable, downgradable, import, export, CSV, affiliate
4
  Requires at least: 3.2
5
  Tested up to: 3.2
6
+ Stable tag: 6.9.7
7
 
8
  This all-in-one SEO plugin gives you control over title tags, noindex, meta tags, slugs, canonical, autolinks, 404 errors, rich snippets, and more.
9
 
10
  == Description ==
11
+
12
  = Recent Releases =
13
 
14
  * Version 6.9 adds the Settings Monitor module
265
 
266
  == Changelog ==
267
 
268
+ = Version 6.9.7 (October 28, 2011) =
269
+ * Bugfix: Fixed errors that appeared in Deeplink Juggernaut CSV exports
270
+ * Bugfix: Deeplink Juggernaut now handles get_permalink() errors silently
271
+ * Bugfix: Added missing textdomains to some strings
272
+ * Bugfix: Fixed some strings that were being gettexted before the plugin textdomain was loaded
273
+
274
  = Version 6.9.6 (September 23, 2011) =
275
  * Bugfix: Deeplink Juggernaut now applies changes to sitewide link caps gradually instead of all at once, in order to alleviate out-of-memory errors and large processing overhead on sites with many posts
276
 
seo-ultimate.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: SEO Ultimate
4
  Plugin URI: http://www.seodesignsolutions.com/wordpress-seo/
5
  Description: This all-in-one SEO plugin gives you control over title tags, noindex/nofollow, meta tags, rich snippets, slugs, canonical tags, autolinks, 404 errors, rich snippets, and more.
6
- Version: 6.9.6
7
  Author: SEO Design Solutions
8
  Author URI: http://www.seodesignsolutions.com/
9
  Text Domain: seo-ultimate
@@ -12,7 +12,7 @@ Text Domain: seo-ultimate
12
  /**
13
  * The main SEO Ultimate plugin file.
14
  * @package SeoUltimate
15
- * @version 6.9.6
16
  * @link http://www.seodesignsolutions.com/wordpress-seo/ SEO Ultimate Homepage
17
  */
18
 
@@ -47,10 +47,10 @@ define('SU_MINIMUM_WP_VER', '3.1.3');
47
  //Reading plugin info from constants is faster than trying to parse it from the header above.
48
  define('SU_PLUGIN_NAME', 'SEO Ultimate');
49
  define('SU_PLUGIN_URI', 'http://www.seodesignsolutions.com/wordpress-seo/');
50
- define('SU_VERSION', '6.9.6');
51
  define('SU_AUTHOR', 'SEO Design Solutions');
52
  define('SU_AUTHOR_URI', 'http://www.seodesignsolutions.com/');
53
- define('SU_USER_AGENT', 'SeoUltimate/6.9.6');
54
 
55
  /********** INCLUDES **********/
56
 
3
  Plugin Name: SEO Ultimate
4
  Plugin URI: http://www.seodesignsolutions.com/wordpress-seo/
5
  Description: This all-in-one SEO plugin gives you control over title tags, noindex/nofollow, meta tags, rich snippets, slugs, canonical tags, autolinks, 404 errors, rich snippets, and more.
6
+ Version: 6.9.7
7
  Author: SEO Design Solutions
8
  Author URI: http://www.seodesignsolutions.com/
9
  Text Domain: seo-ultimate
12
  /**
13
  * The main SEO Ultimate plugin file.
14
  * @package SeoUltimate
15
+ * @version 6.9.7
16
  * @link http://www.seodesignsolutions.com/wordpress-seo/ SEO Ultimate Homepage
17
  */
18
 
47
  //Reading plugin info from constants is faster than trying to parse it from the header above.
48
  define('SU_PLUGIN_NAME', 'SEO Ultimate');
49
  define('SU_PLUGIN_URI', 'http://www.seodesignsolutions.com/wordpress-seo/');
50
+ define('SU_VERSION', '6.9.7');
51
  define('SU_AUTHOR', 'SEO Design Solutions');
52
  define('SU_AUTHOR_URI', 'http://www.seodesignsolutions.com/');
53
+ define('SU_USER_AGENT', 'SeoUltimate/6.9.7');
54
 
55
  /********** INCLUDES **********/
56