Version Description
Download this release
Release Info
Developer | SEO Design Solutions |
Plugin | SEO Ultimate |
Version | 4.5 |
Comparing to | |
See all releases |
Code changes from version 4.4 to 4.5
- includes/jlfunctions/io.php +8 -0
- modules/autolinks/content-autolinks.php +15 -7
- modules/class.su-module.php +61 -9
- modules/files/files.php +1 -1
- plugin/class.seo-ultimate.php +11 -6
- readme.txt +9 -2
- seo-ultimate.php +9 -5
- seo-ultimate.pot +59 -59
includes/jlfunctions/io.php
CHANGED
@@ -41,6 +41,14 @@ class suio {
|
|
41 |
|
42 |
//Get the rows
|
43 |
while (($row = fgetcsv($handle, 99999, ',')) !== false) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
44 |
$new = array_combine($headers, $row);
|
45 |
if ($new !== false) $result[] = $new;
|
46 |
}
|
41 |
|
42 |
//Get the rows
|
43 |
while (($row = fgetcsv($handle, 99999, ',')) !== false) {
|
44 |
+
|
45 |
+
if (count($row) > count($headers))
|
46 |
+
//Too long
|
47 |
+
$row = array_slice($row, 0, count($headers));
|
48 |
+
elseif (count($row) < count($headers))
|
49 |
+
//Too short
|
50 |
+
$row = array_pad($row, count($headers), '');
|
51 |
+
|
52 |
$new = array_combine($headers, $row);
|
53 |
if ($new !== false) $result[] = $new;
|
54 |
}
|
modules/autolinks/content-autolinks.php
CHANGED
@@ -103,9 +103,10 @@ class SU_ContentAutolinks extends SU_Module {
|
|
103 |
|
104 |
$links = array();
|
105 |
|
|
|
|
|
106 |
for ($i=0; $i <= $num_links; $i++) {
|
107 |
|
108 |
-
$guid = stripslashes($_POST['_link_guid']);
|
109 |
$anchor = stripslashes($_POST["link_{$i}_anchor"]);
|
110 |
$to_type= stripslashes($_POST["link_{$i}_to_type__{$guid}"]);
|
111 |
$to_id = stripslashes($_POST["link_{$i}_to_id_{$to_type}__{$guid}"]);
|
@@ -151,8 +152,7 @@ class SU_ContentAutolinks extends SU_Module {
|
|
151 |
|
152 |
//Get post options
|
153 |
$posttypeobjs = suwp::get_post_type_objects();
|
154 |
-
$posttypes = array();
|
155 |
-
$posts = array();
|
156 |
foreach ($posttypeobjs as $posttypeobj) {
|
157 |
|
158 |
$stati = get_available_post_statuses($posttypeobj->name);
|
@@ -162,7 +162,8 @@ class SU_ContentAutolinks extends SU_Module {
|
|
162 |
$typeposts = get_posts("post_status=$stati&numberposts=-1&post_type=".$posttypeobj->name);
|
163 |
if (count($typeposts)) {
|
164 |
$posttypes['posttype_'.$posttypeobj->name] = $posttypeobj->labels->singular_name;
|
165 |
-
$posts['posttype_'.$posttypeobj->name] = suarr::simplify($typeposts, 'ID', 'post_title');
|
|
|
166 |
}
|
167 |
}
|
168 |
|
@@ -176,11 +177,17 @@ class SU_ContentAutolinks extends SU_Module {
|
|
176 |
foreach ($posts as $posttype => $typeposts) {
|
177 |
$typeposts = array(0 => '') + $typeposts; //Maintains numeric array keys, unlike array_unshift or array_merge
|
178 |
$postdropdowns[$posttype] = $this->get_input_element('dropdown', "link_{$i}_to_id_{$posttype}__$guid", $link['to_id'], $typeposts);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
179 |
}
|
180 |
|
181 |
$cells = array(
|
182 |
-
'link-anchor' => $this->get_input_element('
|
183 |
-
. $this->get_input_element('textbox', "link_{$i}_anchor", $link['anchor'])
|
184 |
, 'link-to_type' => $this->get_input_element('dropdown', "link_{$i}_to_type__$guid", $link['to_type'], array(
|
185 |
__('Custom', 'seo-ultimate') => array('url' => __('URL', 'seo-ultimate'))
|
186 |
, __('Content Items', 'seo-ultimate') => $posttypes
|
@@ -191,7 +198,7 @@ class SU_ContentAutolinks extends SU_Module {
|
|
191 |
, 'link-title' => $this->get_input_element('textbox', "link_{$i}_title", $link['title'])
|
192 |
, 'link-options' =>
|
193 |
$this->get_input_element('checkbox', "link_{$i}_nofollow", $link['nofollow'], __('Nofollow', 'seo-ultimate'))
|
194 |
-
.$this->get_input_element('checkbox', "link_{$i}_target", $link['target']
|
195 |
);
|
196 |
if ($delete_option)
|
197 |
$cells['link-delete'] = $this->get_input_element('checkbox', "link_{$i}_delete");
|
@@ -202,6 +209,7 @@ class SU_ContentAutolinks extends SU_Module {
|
|
202 |
}
|
203 |
|
204 |
$this->admin_wftable_end();
|
|
|
205 |
}
|
206 |
|
207 |
function get_post_autolinks($value, $key, $post) {
|
103 |
|
104 |
$links = array();
|
105 |
|
106 |
+
$guid = stripslashes($_POST['_link_guid']);
|
107 |
+
|
108 |
for ($i=0; $i <= $num_links; $i++) {
|
109 |
|
|
|
110 |
$anchor = stripslashes($_POST["link_{$i}_anchor"]);
|
111 |
$to_type= stripslashes($_POST["link_{$i}_to_type__{$guid}"]);
|
112 |
$to_id = stripslashes($_POST["link_{$i}_to_id_{$to_type}__{$guid}"]);
|
152 |
|
153 |
//Get post options
|
154 |
$posttypeobjs = suwp::get_post_type_objects();
|
155 |
+
$posttypes = $posts = $postoptions = array();
|
|
|
156 |
foreach ($posttypeobjs as $posttypeobj) {
|
157 |
|
158 |
$stati = get_available_post_statuses($posttypeobj->name);
|
162 |
$typeposts = get_posts("post_status=$stati&numberposts=-1&post_type=".$posttypeobj->name);
|
163 |
if (count($typeposts)) {
|
164 |
$posttypes['posttype_'.$posttypeobj->name] = $posttypeobj->labels->singular_name;
|
165 |
+
$posts['posttype_'.$posttypeobj->name] = $typeposts_array = array_slice(suarr::simplify($typeposts, 'ID', 'post_title'), 0, 1000, true); //Let's not go too crazy with post dropdowns; cut it off at 1000
|
166 |
+
//$postoptions['posttype_'.$posttypeobj->name] = suhtml::option_tags(array(0 => '') + $typeposts_array, null); //Maintains numeric array keys, unlike array_unshift or array_merge
|
167 |
}
|
168 |
}
|
169 |
|
177 |
foreach ($posts as $posttype => $typeposts) {
|
178 |
$typeposts = array(0 => '') + $typeposts; //Maintains numeric array keys, unlike array_unshift or array_merge
|
179 |
$postdropdowns[$posttype] = $this->get_input_element('dropdown', "link_{$i}_to_id_{$posttype}__$guid", $link['to_id'], $typeposts);
|
180 |
+
|
181 |
+
/*
|
182 |
+
//$typeposts = array(0 => '') + $typeposts;
|
183 |
+
$postdropdowns[$posttype] = $this->get_input_element('dropdown', "link_{$i}_to_id_{$posttype}__$guid", $link['to_id'],
|
184 |
+
str_replace("<option value='{$link['to_id']}'>", "<option value='{$link['to_id']}' selected='selected'>", $postoptions[$posttype])
|
185 |
+
);
|
186 |
+
*/
|
187 |
}
|
188 |
|
189 |
$cells = array(
|
190 |
+
'link-anchor' => $this->get_input_element('textbox', "link_{$i}_anchor", $link['anchor'])
|
|
|
191 |
, 'link-to_type' => $this->get_input_element('dropdown', "link_{$i}_to_type__$guid", $link['to_type'], array(
|
192 |
__('Custom', 'seo-ultimate') => array('url' => __('URL', 'seo-ultimate'))
|
193 |
, __('Content Items', 'seo-ultimate') => $posttypes
|
198 |
, 'link-title' => $this->get_input_element('textbox', "link_{$i}_title", $link['title'])
|
199 |
, 'link-options' =>
|
200 |
$this->get_input_element('checkbox', "link_{$i}_nofollow", $link['nofollow'], __('Nofollow', 'seo-ultimate'))
|
201 |
+
.$this->get_input_element('checkbox', "link_{$i}_target", $link['target'] == 'blank', __('New window', 'seo-ultimate'))
|
202 |
);
|
203 |
if ($delete_option)
|
204 |
$cells['link-delete'] = $this->get_input_element('checkbox', "link_{$i}_delete");
|
209 |
}
|
210 |
|
211 |
$this->admin_wftable_end();
|
212 |
+
echo $this->get_input_element('hidden', '_link_guid', $guid);
|
213 |
}
|
214 |
|
215 |
function get_post_autolinks($value, $key, $post) {
|
modules/class.su-module.php
CHANGED
@@ -400,11 +400,15 @@ class SU_Module {
|
|
400 |
*/
|
401 |
function load_default_settings() {
|
402 |
|
|
|
403 |
$defaults = $this->get_default_settings();
|
404 |
foreach ($defaults as $setting => $default) {
|
405 |
-
if ($this->get_setting($setting, "{reset}") === "{reset}")
|
406 |
-
$this->update_setting($setting, $default);
|
|
|
|
|
407 |
}
|
|
|
408 |
}
|
409 |
|
410 |
|
@@ -676,7 +680,7 @@ class SU_Module {
|
|
676 |
* @param string $value The new value to assign to the setting.
|
677 |
* @param string|null $module The module to which the setting belongs. Defaults to the current module's settings key. Optional.
|
678 |
*/
|
679 |
-
function update_setting($key, $value, $module=null, $array_key=null) {
|
680 |
if (!$module) $module = $this->get_settings_key();
|
681 |
|
682 |
$use_custom = apply_filters("su_custom_update_setting-$module-$key", false, $value, $key) ||
|
@@ -688,6 +692,8 @@ class SU_Module {
|
|
688 |
else
|
689 |
$this->plugin->dbdata['settings'][$module][$key] = $value;
|
690 |
}
|
|
|
|
|
691 |
}
|
692 |
|
693 |
/**
|
@@ -753,6 +759,8 @@ class SU_Module {
|
|
753 |
unset($this->plugin->dbdata['settings'][$module][$key][$array_key]);
|
754 |
else
|
755 |
unset($this->plugin->dbdata['settings'][$module][$key]);
|
|
|
|
|
756 |
}
|
757 |
}
|
758 |
|
@@ -766,7 +774,8 @@ class SU_Module {
|
|
766 |
*/
|
767 |
function update_settings($settings) {
|
768 |
foreach ($settings as $key => $value)
|
769 |
-
update_setting($key, $value);
|
|
|
770 |
}
|
771 |
|
772 |
/**
|
@@ -784,6 +793,40 @@ class SU_Module {
|
|
784 |
}
|
785 |
|
786 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
787 |
/********** ADMIN PAGE FUNCTIONS **********/
|
788 |
|
789 |
/**
|
@@ -931,7 +974,7 @@ class SU_Module {
|
|
931 |
* @since 0.8
|
932 |
*/
|
933 |
function admin_page_tabs_init() {
|
934 |
-
add_action('
|
935 |
}
|
936 |
|
937 |
/**
|
@@ -1084,7 +1127,7 @@ class SU_Module {
|
|
1084 |
$search = $_REQUEST[$type . '_s'];
|
1085 |
|
1086 |
//Save meta if applicable
|
1087 |
-
if ($is_update = ($this->is_action('update') && !strlen(trim($search))))
|
1088 |
foreach ($_POST as $key => $value)
|
1089 |
if (sustr::startswith($key, $genus.'_'))
|
1090 |
foreach ($fields as $field)
|
@@ -1092,10 +1135,12 @@ class SU_Module {
|
|
1092 |
$id = (int)$matches[1];
|
1093 |
switch ($genus) {
|
1094 |
case 'post': update_post_meta($id, "_su_{$field['name']}", $_POST[$key]); break;
|
1095 |
-
case 'term': $this->update_setting($field['term_settings_key'], $_POST[$key], null, $id); break;
|
1096 |
}
|
1097 |
continue 2; //Go to next $_POST item
|
1098 |
}
|
|
|
|
|
1099 |
|
1100 |
$pagenum = isset( $_GET[$type . '_paged'] ) ? absint( $_GET[$type . '_paged'] ) : 0;
|
1101 |
if ( empty($pagenum) ) $pagenum = 1;
|
@@ -1270,8 +1315,10 @@ class SU_Module {
|
|
1270 |
return $html;
|
1271 |
break;
|
1272 |
case 'dropdown':
|
1273 |
-
|
1274 |
-
|
|
|
|
|
1275 |
break;
|
1276 |
case 'hidden':
|
1277 |
return "<input name='$name'$inputid value='$value' type='hidden' />";
|
@@ -1367,6 +1414,10 @@ class SU_Module {
|
|
1367 |
* @param boolean $table Whether or not a form table should be ended.
|
1368 |
*/
|
1369 |
function admin_form_end($button = null, $table = true) {
|
|
|
|
|
|
|
|
|
1370 |
if ($button === null) $button = __('Save Changes'); //This string is used in normal WP, so we don't need a textdomain
|
1371 |
if ($table) echo "</table>\n";
|
1372 |
|
@@ -2343,6 +2394,7 @@ class SU_Module {
|
|
2343 |
|
2344 |
//Make a record of it
|
2345 |
$this->plugin->dbdata['cron'][$mk][$function] = array($hook, $start, $recurrance);
|
|
|
2346 |
|
2347 |
//Run the event now
|
2348 |
call_user_func(array($this, $function));
|
400 |
*/
|
401 |
function load_default_settings() {
|
402 |
|
403 |
+
$save = false;
|
404 |
$defaults = $this->get_default_settings();
|
405 |
foreach ($defaults as $setting => $default) {
|
406 |
+
if ($this->get_setting($setting, "{reset}") === "{reset}") {
|
407 |
+
$this->update_setting($setting, $default, null, null, false);
|
408 |
+
$save = true;
|
409 |
+
}
|
410 |
}
|
411 |
+
if ($save) $this->plugin->save_dbdata();
|
412 |
}
|
413 |
|
414 |
|
680 |
* @param string $value The new value to assign to the setting.
|
681 |
* @param string|null $module The module to which the setting belongs. Defaults to the current module's settings key. Optional.
|
682 |
*/
|
683 |
+
function update_setting($key, $value, $module=null, $array_key=null, $save=true) {
|
684 |
if (!$module) $module = $this->get_settings_key();
|
685 |
|
686 |
$use_custom = apply_filters("su_custom_update_setting-$module-$key", false, $value, $key) ||
|
692 |
else
|
693 |
$this->plugin->dbdata['settings'][$module][$key] = $value;
|
694 |
}
|
695 |
+
|
696 |
+
if ($save && !$this->is_action('update')) $this->plugin->save_dbdata();
|
697 |
}
|
698 |
|
699 |
/**
|
759 |
unset($this->plugin->dbdata['settings'][$module][$key][$array_key]);
|
760 |
else
|
761 |
unset($this->plugin->dbdata['settings'][$module][$key]);
|
762 |
+
|
763 |
+
$this->plugin->save_dbdata();
|
764 |
}
|
765 |
}
|
766 |
|
774 |
*/
|
775 |
function update_settings($settings) {
|
776 |
foreach ($settings as $key => $value)
|
777 |
+
update_setting($key, $value, null, null, false);
|
778 |
+
$this->plugin->save_dbdata();
|
779 |
}
|
780 |
|
781 |
/**
|
793 |
}
|
794 |
|
795 |
|
796 |
+
/********** LOG FUNCTIONS **********/
|
797 |
+
|
798 |
+
/**
|
799 |
+
* Retrieves the module's log.
|
800 |
+
*
|
801 |
+
* @since 4.5
|
802 |
+
* @uses get_settings_key()
|
803 |
+
*
|
804 |
+
* @return array
|
805 |
+
*/
|
806 |
+
function get_log() {
|
807 |
+
$module = $this->get_settings_key();
|
808 |
+
|
809 |
+
if (isset($this->plugin->dbdata['logs']
|
810 |
+
, $this->plugin->dbdata['logs'][$module]))
|
811 |
+
return $this->plugin->dbdata['settings'][$module][$key];
|
812 |
+
|
813 |
+
return array();
|
814 |
+
}
|
815 |
+
|
816 |
+
/**
|
817 |
+
* Updates the module's log array.
|
818 |
+
*
|
819 |
+
* @since 4.5
|
820 |
+
* @uses get_settings_key()
|
821 |
+
*
|
822 |
+
* @param string $value The entirety of the log to be updated.
|
823 |
+
*/
|
824 |
+
function update_log($value) {
|
825 |
+
$module = $this->get_settings_key();
|
826 |
+
$this->plugin->dbdata['logs'][$module] = $value;
|
827 |
+
}
|
828 |
+
|
829 |
+
|
830 |
/********** ADMIN PAGE FUNCTIONS **********/
|
831 |
|
832 |
/**
|
974 |
* @since 0.8
|
975 |
*/
|
976 |
function admin_page_tabs_init() {
|
977 |
+
add_action('admin_enqueue_scripts', array(&$this, 'admin_page_tabs_js'));
|
978 |
}
|
979 |
|
980 |
/**
|
1127 |
$search = $_REQUEST[$type . '_s'];
|
1128 |
|
1129 |
//Save meta if applicable
|
1130 |
+
if ($is_update = ($this->is_action('update') && !strlen(trim($search)))) {
|
1131 |
foreach ($_POST as $key => $value)
|
1132 |
if (sustr::startswith($key, $genus.'_'))
|
1133 |
foreach ($fields as $field)
|
1135 |
$id = (int)$matches[1];
|
1136 |
switch ($genus) {
|
1137 |
case 'post': update_post_meta($id, "_su_{$field['name']}", $_POST[$key]); break;
|
1138 |
+
case 'term': $this->update_setting($field['term_settings_key'], $_POST[$key], null, $id, false); break;
|
1139 |
}
|
1140 |
continue 2; //Go to next $_POST item
|
1141 |
}
|
1142 |
+
if ($genus == 'term') $this->plugin->save_dbdata();
|
1143 |
+
}
|
1144 |
|
1145 |
$pagenum = isset( $_GET[$type . '_paged'] ) ? absint( $_GET[$type . '_paged'] ) : 0;
|
1146 |
if ( empty($pagenum) ) $pagenum = 1;
|
1315 |
return $html;
|
1316 |
break;
|
1317 |
case 'dropdown':
|
1318 |
+
$html = "<select name='$name'$inputid onchange='javascript:su_toggle_select_children(this)' class='dropdown'>";
|
1319 |
+
if (is_array($extra)) $html .= suhtml::option_tags($extra, $value); else $html .= $extra;
|
1320 |
+
$html .= "</select>";
|
1321 |
+
return $html;
|
1322 |
break;
|
1323 |
case 'hidden':
|
1324 |
return "<input name='$name'$inputid value='$value' type='hidden' />";
|
1414 |
* @param boolean $table Whether or not a form table should be ended.
|
1415 |
*/
|
1416 |
function admin_form_end($button = null, $table = true) {
|
1417 |
+
|
1418 |
+
if ($this->is_action('update'))
|
1419 |
+
$this->plugin->save_dbdata();
|
1420 |
+
|
1421 |
if ($button === null) $button = __('Save Changes'); //This string is used in normal WP, so we don't need a textdomain
|
1422 |
if ($table) echo "</table>\n";
|
1423 |
|
2394 |
|
2395 |
//Make a record of it
|
2396 |
$this->plugin->dbdata['cron'][$mk][$function] = array($hook, $start, $recurrance);
|
2397 |
+
$this->plugin->save_dbdata();
|
2398 |
|
2399 |
//Run the event now
|
2400 |
call_user_func(array($this, $function));
|
modules/files/files.php
CHANGED
@@ -37,7 +37,7 @@ class SU_Files extends SU_Module {
|
|
37 |
|
38 |
//Initialize variables
|
39 |
$exists = $writable = false;
|
40 |
-
$is_super_admin = !function_exists('is_super_admin') || !function_exists('is_multisite') ||
|
41 |
|
42 |
//Does the server run Apache?
|
43 |
if ($is_apache) {
|
37 |
|
38 |
//Initialize variables
|
39 |
$exists = $writable = false;
|
40 |
+
$is_super_admin = !function_exists('is_super_admin') || !function_exists('is_multisite') || !is_multisite() || is_super_admin();
|
41 |
|
42 |
//Does the server run Apache?
|
43 |
if ($is_apache) {
|
plugin/class.seo-ultimate.php
CHANGED
@@ -144,7 +144,6 @@ class SEO_Ultimate {
|
|
144 |
|
145 |
//Save
|
146 |
add_action('shutdown', array(&$this, 'save_hit'));
|
147 |
-
add_action('shutdown', array(&$this, 'save_dbdata'));
|
148 |
|
149 |
/********** CLASS CONSTRUCTION **********/
|
150 |
|
@@ -175,7 +174,7 @@ class SEO_Ultimate {
|
|
175 |
|
176 |
//Store the current version in the database.
|
177 |
$this->dbdata['version'] = $version;
|
178 |
-
|
179 |
|
180 |
/********** INITIALIZATION **********/
|
181 |
|
@@ -277,6 +276,7 @@ class SEO_Ultimate {
|
|
277 |
if (!isset($this->dbdata['settings']) && is_readable($settingsfile = $this->plugin_dir_path.'settings.txt')) {
|
278 |
$import = base64_decode(file_get_contents($settingsfile));
|
279 |
if (is_serialized($import)) $this->dbdata['settings'] = unserialize($import);
|
|
|
280 |
}
|
281 |
}
|
282 |
|
@@ -306,6 +306,7 @@ class SEO_Ultimate {
|
|
306 |
delete_option("su_$option");
|
307 |
}
|
308 |
}
|
|
|
309 |
}
|
310 |
|
311 |
/**
|
@@ -327,11 +328,15 @@ class SEO_Ultimate {
|
|
327 |
* @param array $copy
|
328 |
*/
|
329 |
function copy_module_states($copy) {
|
|
|
330 |
foreach ($copy as $from => $tos)
|
331 |
if (isset($this->dbdata['modules'][$from]))
|
332 |
foreach ((array)$tos as $to)
|
333 |
-
if (!isset($this->dbdata['modules'][$to]))
|
334 |
$this->dbdata['modules'][$to] = $this->dbdata['modules'][$from];
|
|
|
|
|
|
|
335 |
}
|
336 |
|
337 |
/**
|
@@ -384,9 +389,6 @@ class SEO_Ultimate {
|
|
384 |
//Delete all database data
|
385 |
$this->dbdata = array();
|
386 |
delete_option('seo_ultimate');
|
387 |
-
|
388 |
-
//Stop the database data from being re-saved
|
389 |
-
remove_action('shutdown', array(&$this, 'save_dbdata'));
|
390 |
}
|
391 |
|
392 |
|
@@ -546,6 +548,7 @@ class SEO_Ultimate {
|
|
546 |
|
547 |
//Save the new modules list
|
548 |
$this->dbdata['modules'] = $newmodules;
|
|
|
549 |
|
550 |
//Remove the cron jobs of deleted modules
|
551 |
$this->remove_cron_jobs();
|
@@ -1535,6 +1538,8 @@ class SEO_Ultimate {
|
|
1535 |
}
|
1536 |
|
1537 |
$this->dbdata['cron'] = $newcrondata;
|
|
|
|
|
1538 |
}
|
1539 |
}
|
1540 |
|
144 |
|
145 |
//Save
|
146 |
add_action('shutdown', array(&$this, 'save_hit'));
|
|
|
147 |
|
148 |
/********** CLASS CONSTRUCTION **********/
|
149 |
|
174 |
|
175 |
//Store the current version in the database.
|
176 |
$this->dbdata['version'] = $version;
|
177 |
+
if ($oldversion != $version) $this->save_dbdata();
|
178 |
|
179 |
/********** INITIALIZATION **********/
|
180 |
|
276 |
if (!isset($this->dbdata['settings']) && is_readable($settingsfile = $this->plugin_dir_path.'settings.txt')) {
|
277 |
$import = base64_decode(file_get_contents($settingsfile));
|
278 |
if (is_serialized($import)) $this->dbdata['settings'] = unserialize($import);
|
279 |
+
$this->save_dbdata();
|
280 |
}
|
281 |
}
|
282 |
|
306 |
delete_option("su_$option");
|
307 |
}
|
308 |
}
|
309 |
+
$this->save_dbdata();
|
310 |
}
|
311 |
|
312 |
/**
|
328 |
* @param array $copy
|
329 |
*/
|
330 |
function copy_module_states($copy) {
|
331 |
+
$save = false;
|
332 |
foreach ($copy as $from => $tos)
|
333 |
if (isset($this->dbdata['modules'][$from]))
|
334 |
foreach ((array)$tos as $to)
|
335 |
+
if (!isset($this->dbdata['modules'][$to])) {
|
336 |
$this->dbdata['modules'][$to] = $this->dbdata['modules'][$from];
|
337 |
+
$save = true;
|
338 |
+
}
|
339 |
+
if ($save) $this->save_dbdata();
|
340 |
}
|
341 |
|
342 |
/**
|
389 |
//Delete all database data
|
390 |
$this->dbdata = array();
|
391 |
delete_option('seo_ultimate');
|
|
|
|
|
|
|
392 |
}
|
393 |
|
394 |
|
548 |
|
549 |
//Save the new modules list
|
550 |
$this->dbdata['modules'] = $newmodules;
|
551 |
+
if ($newmodules != $oldmodules) $this->save_dbdata();
|
552 |
|
553 |
//Remove the cron jobs of deleted modules
|
554 |
$this->remove_cron_jobs();
|
1538 |
}
|
1539 |
|
1540 |
$this->dbdata['cron'] = $newcrondata;
|
1541 |
+
|
1542 |
+
$this->save_dbdata();
|
1543 |
}
|
1544 |
}
|
1545 |
|
readme.txt
CHANGED
@@ -3,7 +3,7 @@ Contributors: SEO Design Solutions
|
|
3 |
Tags: seo, SEO Ultimate, suite, google, yahoo, bing, search engines, admin, post, page, custom post types, categories, tags, terms, custom taxonomies, title, meta, robots, noindex, nofollow, canonical, 404, robots.txt, htaccess, slugs, url, anchor, more, link, excerpt, permalink, links, autolinks, code, footer, modules, uninstallable, reinstallable, downgradable, import, export, CSV
|
4 |
Requires at least: 2.8
|
5 |
Tested up to: 3.0
|
6 |
-
Stable tag: 4.
|
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 |
|
@@ -11,11 +11,11 @@ This all-in-one SEO plugin gives you control over title tags, noindex, meta tags
|
|
11 |
|
12 |
= Recent Releases =
|
13 |
|
|
|
14 |
* Version 4.4 adds a new field for entering sitewide meta keywords
|
15 |
* Version 4.3 adds the ability to use the post's excerpt as its default meta description
|
16 |
* Version 4.2 adds the option to exclude specific posts/pages from being autolinked
|
17 |
* Version 4.1 adds tag title capitalization for title tags
|
18 |
-
* Version 4.0 adds meta description mass-editor for posts, pages, attachments, and custom post types
|
19 |
|
20 |
= Features =
|
21 |
|
@@ -215,6 +215,13 @@ Frequently asked questions, settings help, and troubleshooting tips for SEO Ulti
|
|
215 |
|
216 |
== Changelog ==
|
217 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
218 |
= Version 4.4 (August 7, 2010) =
|
219 |
* Feature: Added new "Global Keywords" textbox to Meta Keywords Editor, which allows sitewide keywords to be specified
|
220 |
* Improvement: Meta Keywords Editor now removes duplicate keywords from the meta keywords tag
|
3 |
Tags: seo, SEO Ultimate, suite, google, yahoo, bing, search engines, admin, post, page, custom post types, categories, tags, terms, custom taxonomies, title, meta, robots, noindex, nofollow, canonical, 404, robots.txt, htaccess, slugs, url, anchor, more, link, excerpt, permalink, links, autolinks, code, footer, modules, uninstallable, reinstallable, downgradable, import, export, CSV
|
4 |
Requires at least: 2.8
|
5 |
Tested up to: 3.0
|
6 |
+
Stable tag: 4.5
|
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 |
|
11 |
|
12 |
= Recent Releases =
|
13 |
|
14 |
+
* Version 4.5 adds bugfixes
|
15 |
* Version 4.4 adds a new field for entering sitewide meta keywords
|
16 |
* Version 4.3 adds the ability to use the post's excerpt as its default meta description
|
17 |
* Version 4.2 adds the option to exclude specific posts/pages from being autolinked
|
18 |
* Version 4.1 adds tag title capitalization for title tags
|
|
|
19 |
|
20 |
= Features =
|
21 |
|
215 |
|
216 |
== Changelog ==
|
217 |
|
218 |
+
= Version 4.5 (August 13, 2010) =
|
219 |
+
* Improvement: SEO Ultimate now only saves database data when its settings are updated
|
220 |
+
* Bugfix: Fixed array_combine() error when importing CSV files
|
221 |
+
* Bugfix: Restored htaccess editing for non-multisite installations, fixing a feature regression introduced in version 3.9
|
222 |
+
* Bugfix: The "new window" option no longer checks itself by default in Deeplink Juggernaut
|
223 |
+
* Bugfix: Fixed conflict with the "Markdown for WordPress and bbPress" plugin
|
224 |
+
|
225 |
= Version 4.4 (August 7, 2010) =
|
226 |
* Feature: Added new "Global Keywords" textbox to Meta Keywords Editor, which allows sitewide keywords to be specified
|
227 |
* Improvement: Meta Keywords Editor now removes duplicate keywords from the meta keywords tag
|
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: 4.
|
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 4.
|
16 |
* @link http://www.seodesignsolutions.com/wordpress-seo/ SEO Ultimate Homepage
|
17 |
*/
|
18 |
|
@@ -47,18 +47,22 @@ define('SU_MINIMUM_WP_VER', '2.8');
|
|
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', '4.
|
51 |
define('SU_AUTHOR', 'SEO Design Solutions');
|
52 |
define('SU_AUTHOR_URI', 'http://www.seodesignsolutions.com/');
|
53 |
-
define('SU_USER_AGENT', 'SeoUltimate/4.
|
54 |
|
55 |
/********** INCLUDES **********/
|
56 |
|
57 |
//Libraries
|
58 |
include 'includes/jlfunctions/jlfunctions.php';
|
59 |
include 'includes/jlwp/jlwp.php';
|
60 |
-
|
|
|
|
|
61 |
include_once 'includes/markdown/markdown.php';
|
|
|
|
|
62 |
|
63 |
//Plugin files
|
64 |
include 'plugin/su-constants.php';
|
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: 4.5
|
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 4.5
|
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', '4.5');
|
51 |
define('SU_AUTHOR', 'SEO Design Solutions');
|
52 |
define('SU_AUTHOR_URI', 'http://www.seodesignsolutions.com/');
|
53 |
+
define('SU_USER_AGENT', 'SeoUltimate/4.5');
|
54 |
|
55 |
/********** INCLUDES **********/
|
56 |
|
57 |
//Libraries
|
58 |
include 'includes/jlfunctions/jlfunctions.php';
|
59 |
include 'includes/jlwp/jlwp.php';
|
60 |
+
|
61 |
+
function su_load_markdown() {
|
62 |
+
if (!class_exists('Markdown') && !class_exists('Markdown_Parser'))
|
63 |
include_once 'includes/markdown/markdown.php';
|
64 |
+
}
|
65 |
+
add_action('plugins_loaded', 'su_load_markdown');
|
66 |
|
67 |
//Plugin files
|
68 |
include 'plugin/su-constants.php';
|
seo-ultimate.pot
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
-
# Translation of the WordPress plugin SEO Ultimate 4.
|
2 |
# Copyright (C) 2010 SEO Design Solutions
|
3 |
# This file is distributed under the same license as the SEO Ultimate package.
|
4 |
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
|
@@ -6,9 +6,9 @@
|
|
6 |
#, fuzzy
|
7 |
msgid ""
|
8 |
msgstr ""
|
9 |
-
"Project-Id-Version: SEO Ultimate 4.
|
10 |
"Report-Msgid-Bugs-To: http://wordpress.org/tag/seo-ultimate\n"
|
11 |
-
"POT-Creation-Date: 2010-08-
|
12 |
"PO-Revision-Date: 2010-MO-DA HO:MI+ZONE\n"
|
13 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
14 |
"Language-Team: LANGUAGE <LL@li.org>\n"
|
@@ -67,7 +67,7 @@ msgstr ""
|
|
67 |
msgid "Log"
|
68 |
msgstr ""
|
69 |
|
70 |
-
#: modules/404s/fofs-log.php:115 modules/class.su-module.php:
|
71 |
msgid "Actions"
|
72 |
msgstr ""
|
73 |
|
@@ -233,71 +233,71 @@ msgid ""
|
|
233 |
"a certain word or phrase in your post/page content to a URL you specify."
|
234 |
msgstr ""
|
235 |
|
236 |
-
#: modules/autolinks/content-autolinks.php:
|
237 |
msgid "Edit Existing Links"
|
238 |
msgstr ""
|
239 |
|
240 |
-
#: modules/autolinks/content-autolinks.php:
|
241 |
msgid "Add a New Link"
|
242 |
msgstr ""
|
243 |
|
244 |
-
#: modules/autolinks/content-autolinks.php:
|
245 |
msgid "Anchor Text"
|
246 |
msgstr ""
|
247 |
|
248 |
-
#: modules/autolinks/content-autolinks.php:
|
249 |
msgid "Destination Type"
|
250 |
msgstr ""
|
251 |
|
252 |
-
#: modules/autolinks/content-autolinks.php:
|
253 |
msgid "Destination"
|
254 |
msgstr ""
|
255 |
|
256 |
-
#: modules/autolinks/content-autolinks.php:
|
257 |
msgid "Title Attribute"
|
258 |
msgstr ""
|
259 |
|
260 |
-
#: modules/autolinks/content-autolinks.php:
|
261 |
msgid "Options"
|
262 |
msgstr ""
|
263 |
|
264 |
-
#: modules/autolinks/content-autolinks.php:
|
265 |
msgid "Delete"
|
266 |
msgstr ""
|
267 |
|
268 |
-
#: modules/autolinks/content-autolinks.php:
|
269 |
msgid "Custom"
|
270 |
msgstr ""
|
271 |
|
272 |
-
#: modules/autolinks/content-autolinks.php:
|
273 |
msgid "URL"
|
274 |
msgstr ""
|
275 |
|
276 |
-
#: modules/autolinks/content-autolinks.php:
|
277 |
msgid "Content Items"
|
278 |
msgstr ""
|
279 |
|
280 |
-
#: modules/autolinks/content-autolinks.php:
|
281 |
msgid "Nofollow"
|
282 |
msgstr ""
|
283 |
|
284 |
-
#: modules/autolinks/content-autolinks.php:
|
285 |
msgid "New window"
|
286 |
msgstr ""
|
287 |
|
288 |
-
#: modules/autolinks/content-autolinks.php:
|
289 |
msgid "Incoming Autolink Anchors:<br /><em>(one per line)</em>"
|
290 |
msgstr ""
|
291 |
|
292 |
-
#: modules/autolinks/content-autolinks.php:
|
293 |
msgid "Don’t add autolinks to anchor texts found in this post."
|
294 |
msgstr ""
|
295 |
|
296 |
-
#: modules/autolinks/content-autolinks.php:
|
297 |
msgid "Autolink Exclusion:"
|
298 |
msgstr ""
|
299 |
|
300 |
-
#: modules/autolinks/content-autolinks.php:
|
301 |
msgid ""
|
302 |
"<strong>Incoming Autolink Anchors</strong> — When you enter anchors "
|
303 |
"into this box, Deeplink Juggernaut will search for that anchor in all your "
|
@@ -353,64 +353,64 @@ msgid ""
|
|
353 |
"SEO Ultimate and may be outdated.)"
|
354 |
msgstr ""
|
355 |
|
356 |
-
#: modules/class.su-module.php:
|
357 |
#, php-format
|
358 |
msgid "%s %s|Dropdown Title"
|
359 |
msgstr ""
|
360 |
|
361 |
-
#: modules/class.su-module.php:
|
362 |
#, php-format
|
363 |
msgid "%1$s | %2$s %3$s by %4$s"
|
364 |
msgstr ""
|
365 |
|
366 |
-
#: modules/class.su-module.php:
|
367 |
msgid "Name"
|
368 |
msgstr ""
|
369 |
|
370 |
-
#: modules/class.su-module.php:
|
371 |
msgid "Your site currently doesn’t have any public items of this type."
|
372 |
msgstr ""
|
373 |
|
374 |
-
#: modules/class.su-module.php:
|
375 |
msgid "«"
|
376 |
msgstr ""
|
377 |
|
378 |
-
#: modules/class.su-module.php:
|
379 |
msgid "»"
|
380 |
msgstr ""
|
381 |
|
382 |
-
#: modules/class.su-module.php:
|
383 |
#, php-format
|
384 |
msgid "Displaying %s–%s of %s"
|
385 |
msgstr ""
|
386 |
|
387 |
-
#: modules/class.su-module.php:
|
388 |
msgid "ID"
|
389 |
msgstr ""
|
390 |
|
391 |
-
#: modules/class.su-module.php:
|
392 |
msgid "View"
|
393 |
msgstr ""
|
394 |
|
395 |
-
#: modules/class.su-module.php:
|
396 |
msgid "Edit"
|
397 |
msgstr ""
|
398 |
|
399 |
-
#: modules/class.su-module.php:
|
400 |
msgid "Settings updated."
|
401 |
msgstr ""
|
402 |
|
403 |
-
#: modules/class.su-module.php:
|
404 |
msgid "Save Changes"
|
405 |
msgstr ""
|
406 |
|
407 |
-
#: modules/class.su-module.php:
|
408 |
msgid ""
|
409 |
"Are you sure you want to replace the textbox contents with this default "
|
410 |
"value?"
|
411 |
msgstr ""
|
412 |
|
413 |
-
#: modules/class.su-module.php:
|
414 |
msgid "Reset"
|
415 |
msgstr ""
|
416 |
|
@@ -1125,7 +1125,7 @@ msgstr ""
|
|
1125 |
msgid "SEO Design Solutions Whitepapers"
|
1126 |
msgstr ""
|
1127 |
|
1128 |
-
#. #-#-#-#-# plugin.pot (SEO Ultimate 4.
|
1129 |
#. Author of the plugin/theme
|
1130 |
#: modules/sds-blog/sds-blog.php:49
|
1131 |
msgid "SEO Design Solutions"
|
@@ -1431,9 +1431,9 @@ msgstr ""
|
|
1431 |
msgid "SEO Ultimate Plugin Settings"
|
1432 |
msgstr ""
|
1433 |
|
1434 |
-
#. #-#-#-#-# plugin.pot (SEO Ultimate 4.
|
1435 |
#. Plugin Name of the plugin/theme
|
1436 |
-
#: modules/settings/settings.php:14 plugin/class.seo-ultimate.php:
|
1437 |
msgid "SEO Ultimate"
|
1438 |
msgstr ""
|
1439 |
|
@@ -1441,7 +1441,7 @@ msgstr ""
|
|
1441 |
msgid "Uninstaller"
|
1442 |
msgstr ""
|
1443 |
|
1444 |
-
#: modules/settings/uninstall.php:18 plugin/class.seo-ultimate.php:
|
1445 |
msgid "Uninstall"
|
1446 |
msgstr ""
|
1447 |
|
@@ -1694,80 +1694,80 @@ msgstr ""
|
|
1694 |
msgid "Code Inserter module"
|
1695 |
msgstr ""
|
1696 |
|
1697 |
-
#: plugin/class.seo-ultimate.php:
|
1698 |
msgid "SEO"
|
1699 |
msgstr ""
|
1700 |
|
1701 |
-
#: plugin/class.seo-ultimate.php:
|
1702 |
msgid "SEO Settings Help"
|
1703 |
msgstr ""
|
1704 |
|
1705 |
-
#: plugin/class.seo-ultimate.php:
|
1706 |
msgid "The SEO Settings box lets you customize these settings:"
|
1707 |
msgstr ""
|
1708 |
|
1709 |
-
#: plugin/class.seo-ultimate.php:
|
1710 |
msgid "(The SEO Settings box is part of the SEO Ultimate plugin.)"
|
1711 |
msgstr ""
|
1712 |
|
1713 |
-
#: plugin/class.seo-ultimate.php:
|
1714 |
#, php-format
|
1715 |
msgid ""
|
1716 |
"SEO Ultimate includes the functionality of %1$s. You may want to deactivate %"
|
1717 |
"1$s to avoid plugin conflicts."
|
1718 |
msgstr ""
|
1719 |
|
1720 |
-
#: plugin/class.seo-ultimate.php:
|
1721 |
msgid "new feature"
|
1722 |
msgstr ""
|
1723 |
|
1724 |
-
#: plugin/class.seo-ultimate.php:
|
1725 |
msgid "new features"
|
1726 |
msgstr ""
|
1727 |
|
1728 |
-
#: plugin/class.seo-ultimate.php:
|
1729 |
msgid "bugfix"
|
1730 |
msgstr ""
|
1731 |
|
1732 |
-
#: plugin/class.seo-ultimate.php:
|
1733 |
msgid "bugfixes"
|
1734 |
msgstr ""
|
1735 |
|
1736 |
-
#: plugin/class.seo-ultimate.php:
|
1737 |
msgid "improvement"
|
1738 |
msgstr ""
|
1739 |
|
1740 |
-
#: plugin/class.seo-ultimate.php:
|
1741 |
msgid "improvements"
|
1742 |
msgstr ""
|
1743 |
|
1744 |
-
#: plugin/class.seo-ultimate.php:
|
1745 |
msgid "security fix"
|
1746 |
msgstr ""
|
1747 |
|
1748 |
-
#: plugin/class.seo-ultimate.php:
|
1749 |
msgid "security fixes"
|
1750 |
msgstr ""
|
1751 |
|
1752 |
-
#: plugin/class.seo-ultimate.php:
|
1753 |
#, php-format
|
1754 |
msgid "%d %s"
|
1755 |
msgstr ""
|
1756 |
|
1757 |
-
#: plugin/class.seo-ultimate.php:
|
1758 |
#, php-format
|
1759 |
msgid "Upgrade now to get %s. %s."
|
1760 |
msgstr ""
|
1761 |
|
1762 |
-
#: plugin/class.seo-ultimate.php:
|
1763 |
msgid "View changelog"
|
1764 |
msgstr ""
|
1765 |
|
1766 |
-
#: plugin/class.seo-ultimate.php:
|
1767 |
msgid "Active Modules: "
|
1768 |
msgstr ""
|
1769 |
|
1770 |
-
#: plugin/class.seo-ultimate.php:
|
1771 |
msgid ""
|
1772 |
"<strong>SEO Ultimate Notice:</strong> Your blog is configured to block "
|
1773 |
"search engine spiders. To resolve this, <a href=\"options-privacy.php\" "
|
@@ -1775,7 +1775,7 @@ msgid ""
|
|
1775 |
"to everyone."
|
1776 |
msgstr ""
|
1777 |
|
1778 |
-
#: plugin/class.seo-ultimate.php:
|
1779 |
msgid "SEO Settings"
|
1780 |
msgstr ""
|
1781 |
|
@@ -1854,7 +1854,7 @@ msgstr ""
|
|
1854 |
msgid "Plugin upgraded successfully."
|
1855 |
msgstr ""
|
1856 |
|
1857 |
-
#: seo-ultimate.php:
|
1858 |
#, php-format
|
1859 |
msgid ""
|
1860 |
"SEO Ultimate requires WordPress %s or above. Please upgrade to the latest "
|
1 |
+
# Translation of the WordPress plugin SEO Ultimate 4.5 by SEO Design Solutions.
|
2 |
# Copyright (C) 2010 SEO Design Solutions
|
3 |
# This file is distributed under the same license as the SEO Ultimate package.
|
4 |
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
|
6 |
#, fuzzy
|
7 |
msgid ""
|
8 |
msgstr ""
|
9 |
+
"Project-Id-Version: SEO Ultimate 4.5\n"
|
10 |
"Report-Msgid-Bugs-To: http://wordpress.org/tag/seo-ultimate\n"
|
11 |
+
"POT-Creation-Date: 2010-08-13 16:31+0000\n"
|
12 |
"PO-Revision-Date: 2010-MO-DA HO:MI+ZONE\n"
|
13 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
14 |
"Language-Team: LANGUAGE <LL@li.org>\n"
|
67 |
msgid "Log"
|
68 |
msgstr ""
|
69 |
|
70 |
+
#: modules/404s/fofs-log.php:115 modules/class.su-module.php:1208
|
71 |
msgid "Actions"
|
72 |
msgstr ""
|
73 |
|
233 |
"a certain word or phrase in your post/page content to a URL you specify."
|
234 |
msgstr ""
|
235 |
|
236 |
+
#: modules/autolinks/content-autolinks.php:130
|
237 |
msgid "Edit Existing Links"
|
238 |
msgstr ""
|
239 |
|
240 |
+
#: modules/autolinks/content-autolinks.php:134
|
241 |
msgid "Add a New Link"
|
242 |
msgstr ""
|
243 |
|
244 |
+
#: modules/autolinks/content-autolinks.php:142
|
245 |
msgid "Anchor Text"
|
246 |
msgstr ""
|
247 |
|
248 |
+
#: modules/autolinks/content-autolinks.php:143
|
249 |
msgid "Destination Type"
|
250 |
msgstr ""
|
251 |
|
252 |
+
#: modules/autolinks/content-autolinks.php:144
|
253 |
msgid "Destination"
|
254 |
msgstr ""
|
255 |
|
256 |
+
#: modules/autolinks/content-autolinks.php:145
|
257 |
msgid "Title Attribute"
|
258 |
msgstr ""
|
259 |
|
260 |
+
#: modules/autolinks/content-autolinks.php:146
|
261 |
msgid "Options"
|
262 |
msgstr ""
|
263 |
|
264 |
+
#: modules/autolinks/content-autolinks.php:148
|
265 |
msgid "Delete"
|
266 |
msgstr ""
|
267 |
|
268 |
+
#: modules/autolinks/content-autolinks.php:192
|
269 |
msgid "Custom"
|
270 |
msgstr ""
|
271 |
|
272 |
+
#: modules/autolinks/content-autolinks.php:192
|
273 |
msgid "URL"
|
274 |
msgstr ""
|
275 |
|
276 |
+
#: modules/autolinks/content-autolinks.php:193
|
277 |
msgid "Content Items"
|
278 |
msgstr ""
|
279 |
|
280 |
+
#: modules/autolinks/content-autolinks.php:200
|
281 |
msgid "Nofollow"
|
282 |
msgstr ""
|
283 |
|
284 |
+
#: modules/autolinks/content-autolinks.php:201
|
285 |
msgid "New window"
|
286 |
msgstr ""
|
287 |
|
288 |
+
#: modules/autolinks/content-autolinks.php:265
|
289 |
msgid "Incoming Autolink Anchors:<br /><em>(one per line)</em>"
|
290 |
msgstr ""
|
291 |
|
292 |
+
#: modules/autolinks/content-autolinks.php:266
|
293 |
msgid "Don’t add autolinks to anchor texts found in this post."
|
294 |
msgstr ""
|
295 |
|
296 |
+
#: modules/autolinks/content-autolinks.php:266
|
297 |
msgid "Autolink Exclusion:"
|
298 |
msgstr ""
|
299 |
|
300 |
+
#: modules/autolinks/content-autolinks.php:271
|
301 |
msgid ""
|
302 |
"<strong>Incoming Autolink Anchors</strong> — When you enter anchors "
|
303 |
"into this box, Deeplink Juggernaut will search for that anchor in all your "
|
353 |
"SEO Ultimate and may be outdated.)"
|
354 |
msgstr ""
|
355 |
|
356 |
+
#: modules/class.su-module.php:1007
|
357 |
#, php-format
|
358 |
msgid "%s %s|Dropdown Title"
|
359 |
msgstr ""
|
360 |
|
361 |
+
#: modules/class.su-module.php:1035
|
362 |
#, php-format
|
363 |
msgid "%1$s | %2$s %3$s by %4$s"
|
364 |
msgstr ""
|
365 |
|
366 |
+
#: modules/class.su-module.php:1092
|
367 |
msgid "Name"
|
368 |
msgstr ""
|
369 |
|
370 |
+
#: modules/class.su-module.php:1103
|
371 |
msgid "Your site currently doesn’t have any public items of this type."
|
372 |
msgstr ""
|
373 |
|
374 |
+
#: modules/class.su-module.php:1187
|
375 |
msgid "«"
|
376 |
msgstr ""
|
377 |
|
378 |
+
#: modules/class.su-module.php:1188
|
379 |
msgid "»"
|
380 |
msgstr ""
|
381 |
|
382 |
+
#: modules/class.su-module.php:1195
|
383 |
#, php-format
|
384 |
msgid "Displaying %s–%s of %s"
|
385 |
msgstr ""
|
386 |
|
387 |
+
#: modules/class.su-module.php:1209
|
388 |
msgid "ID"
|
389 |
msgstr ""
|
390 |
|
391 |
+
#: modules/class.su-module.php:1242
|
392 |
msgid "View"
|
393 |
msgstr ""
|
394 |
|
395 |
+
#: modules/class.su-module.php:1242
|
396 |
msgid "Edit"
|
397 |
msgstr ""
|
398 |
|
399 |
+
#: modules/class.su-module.php:1397
|
400 |
msgid "Settings updated."
|
401 |
msgstr ""
|
402 |
|
403 |
+
#: modules/class.su-module.php:1421
|
404 |
msgid "Save Changes"
|
405 |
msgstr ""
|
406 |
|
407 |
+
#: modules/class.su-module.php:1909
|
408 |
msgid ""
|
409 |
"Are you sure you want to replace the textbox contents with this default "
|
410 |
"value?"
|
411 |
msgstr ""
|
412 |
|
413 |
+
#: modules/class.su-module.php:1924 modules/settings/settings-data.php:23
|
414 |
msgid "Reset"
|
415 |
msgstr ""
|
416 |
|
1125 |
msgid "SEO Design Solutions Whitepapers"
|
1126 |
msgstr ""
|
1127 |
|
1128 |
+
#. #-#-#-#-# plugin.pot (SEO Ultimate 4.5) #-#-#-#-#
|
1129 |
#. Author of the plugin/theme
|
1130 |
#: modules/sds-blog/sds-blog.php:49
|
1131 |
msgid "SEO Design Solutions"
|
1431 |
msgid "SEO Ultimate Plugin Settings"
|
1432 |
msgstr ""
|
1433 |
|
1434 |
+
#. #-#-#-#-# plugin.pot (SEO Ultimate 4.5) #-#-#-#-#
|
1435 |
#. Plugin Name of the plugin/theme
|
1436 |
+
#: modules/settings/settings.php:14 plugin/class.seo-ultimate.php:760
|
1437 |
msgid "SEO Ultimate"
|
1438 |
msgstr ""
|
1439 |
|
1441 |
msgid "Uninstaller"
|
1442 |
msgstr ""
|
1443 |
|
1444 |
+
#: modules/settings/uninstall.php:18 plugin/class.seo-ultimate.php:1247
|
1445 |
msgid "Uninstall"
|
1446 |
msgstr ""
|
1447 |
|
1694 |
msgid "Code Inserter module"
|
1695 |
msgstr ""
|
1696 |
|
1697 |
+
#: plugin/class.seo-ultimate.php:760
|
1698 |
msgid "SEO"
|
1699 |
msgstr ""
|
1700 |
|
1701 |
+
#: plugin/class.seo-ultimate.php:1038
|
1702 |
msgid "SEO Settings Help"
|
1703 |
msgstr ""
|
1704 |
|
1705 |
+
#: plugin/class.seo-ultimate.php:1040
|
1706 |
msgid "The SEO Settings box lets you customize these settings:"
|
1707 |
msgstr ""
|
1708 |
|
1709 |
+
#: plugin/class.seo-ultimate.php:1042
|
1710 |
msgid "(The SEO Settings box is part of the SEO Ultimate plugin.)"
|
1711 |
msgstr ""
|
1712 |
|
1713 |
+
#: plugin/class.seo-ultimate.php:1097
|
1714 |
#, php-format
|
1715 |
msgid ""
|
1716 |
"SEO Ultimate includes the functionality of %1$s. You may want to deactivate %"
|
1717 |
"1$s to avoid plugin conflicts."
|
1718 |
msgstr ""
|
1719 |
|
1720 |
+
#: plugin/class.seo-ultimate.php:1138
|
1721 |
msgid "new feature"
|
1722 |
msgstr ""
|
1723 |
|
1724 |
+
#: plugin/class.seo-ultimate.php:1138
|
1725 |
msgid "new features"
|
1726 |
msgstr ""
|
1727 |
|
1728 |
+
#: plugin/class.seo-ultimate.php:1139
|
1729 |
msgid "bugfix"
|
1730 |
msgstr ""
|
1731 |
|
1732 |
+
#: plugin/class.seo-ultimate.php:1139
|
1733 |
msgid "bugfixes"
|
1734 |
msgstr ""
|
1735 |
|
1736 |
+
#: plugin/class.seo-ultimate.php:1140
|
1737 |
msgid "improvement"
|
1738 |
msgstr ""
|
1739 |
|
1740 |
+
#: plugin/class.seo-ultimate.php:1140
|
1741 |
msgid "improvements"
|
1742 |
msgstr ""
|
1743 |
|
1744 |
+
#: plugin/class.seo-ultimate.php:1141
|
1745 |
msgid "security fix"
|
1746 |
msgstr ""
|
1747 |
|
1748 |
+
#: plugin/class.seo-ultimate.php:1141
|
1749 |
msgid "security fixes"
|
1750 |
msgstr ""
|
1751 |
|
1752 |
+
#: plugin/class.seo-ultimate.php:1172
|
1753 |
#, php-format
|
1754 |
msgid "%d %s"
|
1755 |
msgstr ""
|
1756 |
|
1757 |
+
#: plugin/class.seo-ultimate.php:1178
|
1758 |
#, php-format
|
1759 |
msgid "Upgrade now to get %s. %s."
|
1760 |
msgstr ""
|
1761 |
|
1762 |
+
#: plugin/class.seo-ultimate.php:1180
|
1763 |
msgid "View changelog"
|
1764 |
msgstr ""
|
1765 |
|
1766 |
+
#: plugin/class.seo-ultimate.php:1267
|
1767 |
msgid "Active Modules: "
|
1768 |
msgstr ""
|
1769 |
|
1770 |
+
#: plugin/class.seo-ultimate.php:1328
|
1771 |
msgid ""
|
1772 |
"<strong>SEO Ultimate Notice:</strong> Your blog is configured to block "
|
1773 |
"search engine spiders. To resolve this, <a href=\"options-privacy.php\" "
|
1775 |
"to everyone."
|
1776 |
msgstr ""
|
1777 |
|
1778 |
+
#: plugin/class.seo-ultimate.php:1438
|
1779 |
msgid "SEO Settings"
|
1780 |
msgstr ""
|
1781 |
|
1854 |
msgid "Plugin upgraded successfully."
|
1855 |
msgstr ""
|
1856 |
|
1857 |
+
#: seo-ultimate.php:89
|
1858 |
#, php-format
|
1859 |
msgid ""
|
1860 |
"SEO Ultimate requires WordPress %s or above. Please upgrade to the latest "
|