SEO Ultimate - Version 6.0

Version Description

Download this release

Release Info

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

Code changes from version 5.9 to 6.0

includes/jlfunctions/md.php CHANGED
@@ -80,6 +80,10 @@ class sumd {
80
 
81
  return $sections;
82
  }
 
 
 
 
83
  }
84
 
85
  ?>
80
 
81
  return $sections;
82
  }
83
+
84
+ function convert_headers($md, $h) {
85
+ return trim(preg_replace('|\r\n=+ ([^=]+) =+\r\n|', "<$h>\\1</$h>", "\r\n$md\r\n"));
86
+ }
87
  }
88
 
89
  ?>
includes/jlsuggest/jlsuggest.css ADDED
@@ -0,0 +1,88 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ input.jlsuggest,
3
+ .jls_text_dest {
4
+ width: 100%;
5
+ }
6
+
7
+ .jls_text_dest {
8
+ border: 1px solid #C0CDFF;
9
+ border-radius: 4px;
10
+ background-color: #E0E7FF;
11
+ position: relative;
12
+ padding: 1px 0;
13
+ }
14
+
15
+ .jls_text_dest_text {
16
+ cursor: default;
17
+ padding: 0 5px;
18
+ }
19
+
20
+ .jls_text_dest_text .type {
21
+ color: #666;
22
+ font-variant: small-caps;
23
+ font-size: smaller;
24
+ }
25
+
26
+ .jls_text_dest_close {
27
+ position: absolute;
28
+ top: 0;
29
+ right: 0;
30
+ cursor: pointer;
31
+ padding: 1px 10px;
32
+ color: black;
33
+ text-decoration: none;
34
+ }
35
+
36
+ .jls_text_dest_close:hover,
37
+ .jls_text_dest_close:focus {
38
+ color: red;
39
+ }
40
+
41
+ .jls_results {
42
+ padding: 0;
43
+ margin: 0;
44
+ list-style: none;
45
+ position: absolute;
46
+ z-index: 10000;
47
+ display: none;
48
+ border: 1px solid #DFDFDF;
49
+ background-color: white;
50
+ border-radius: 4px;
51
+ }
52
+
53
+ .jls_results li {
54
+ margin: 0;
55
+ padding: 2px 5px;
56
+ min-width: 100px;
57
+ white-space: nowrap;
58
+ text-align: left;
59
+ }
60
+
61
+ .jls_results li.jls_header {
62
+ margin-top: 10px;
63
+ background-color: #C0CDFF;
64
+ text-align: center;
65
+ font-weight: bold;
66
+ cursor: default;
67
+ }
68
+
69
+ .jls_results li.jls_header:first-child {
70
+ margin-top: 0;
71
+ }
72
+
73
+ .jls_over {
74
+ cursor: pointer;
75
+ }
76
+
77
+ .jls_match {
78
+ background-color: yellow;
79
+ color: black;
80
+ }
81
+
82
+ .jls_over {
83
+ background-color: #E0E7FF;
84
+ }
85
+
86
+ .jls_results li {
87
+ color:#101010;
88
+ }
includes/jlsuggest/jlsuggest.js ADDED
@@ -0,0 +1,365 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ jQuery(document).ready( function($) {
2
+ $('input.jlsuggest', '.su-module').jlsuggest(ajaxurl + '?action=su-jlsuggest-autocomplete',
3
+ { delay: 500, minchars: 2, multiple: false, textDest: true, noUrls: true } );
4
+ } );
5
+
6
+
7
+ /*
8
+ * jquery.jlsuggest
9
+ * Based on WordPress's jquery.suggest 1.1b (2007-08-06)
10
+ * Modified by John Lamansky (2011-05-16)
11
+ */
12
+
13
+ (function($) {
14
+
15
+ $.jlsuggest = function(input, options) {
16
+ var $input, $results, timeout, prevLength, cache, cacheSize;
17
+
18
+ $input = $(input).attr("autocomplete", "off");
19
+ $results = $(document.createElement("ul"));
20
+
21
+ timeout = false; // hold timeout ID for suggestion results to appear
22
+ prevLength = 0; // last recorded length of $input.val()
23
+ cache = []; // cache MRU list
24
+ cacheSize = 0; // size of cache in chars (bytes?)
25
+
26
+ $results.addClass(options.resultsClass).appendTo('body');
27
+
28
+
29
+ resetPosition();
30
+ $(window)
31
+ .load(resetPosition) // just in case user is changing size of page while loading
32
+ .resize(resetPosition);
33
+
34
+ $input.blur(function() {
35
+ setTimeout(function() { $results.hide() }, 200);
36
+ });
37
+
38
+
39
+ // help IE users if possible
40
+ if ( $.browser.msie ) {
41
+ try {
42
+ $results.bgiframe();
43
+ } catch(e) { }
44
+ }
45
+
46
+ // I really hate browser detection, but I don't see any other way
47
+ if ($.browser.mozilla)
48
+ $input.keypress(processKey); // onkeypress repeats arrow keys in Mozilla/Opera
49
+ else
50
+ $input.keydown(processKey); // onkeydown repeats arrow keys in IE/Safari
51
+
52
+ $('.' + options.textDestCloseClass).click(function() {
53
+ $(this).siblings('.' + options.textDestTextClass + ':first').text('').parent().hide().siblings('input:first').val('').show().focus()
54
+ });
55
+
56
+
57
+ function resetPosition() {
58
+ // requires jquery.dimension plugin
59
+ var offset = $input.offset();
60
+ $results.css({
61
+ top: (offset.top + input.offsetHeight) + 'px',
62
+ left: offset.left + 'px'
63
+ });
64
+ }
65
+
66
+
67
+ function processKey(e) {
68
+
69
+ // handling up/down/escape requires results to be visible
70
+ // handling enter/tab requires that AND a result to be selected
71
+ if ((/27$|38$|40$/.test(e.keyCode) && $results.is(':visible')) ||
72
+ (/^13$|^9$/.test(e.keyCode) && getCurrentResult())) {
73
+
74
+ if (e.preventDefault)
75
+ e.preventDefault();
76
+ if (e.stopPropagation)
77
+ e.stopPropagation();
78
+
79
+ e.cancelBubble = true;
80
+ e.returnValue = false;
81
+
82
+ switch(e.keyCode) {
83
+
84
+ case 38: // up
85
+ prevResult();
86
+ break;
87
+
88
+ case 40: // down
89
+ nextResult();
90
+ break;
91
+
92
+ case 9: // tab
93
+ case 13: // return
94
+ selectCurrentResult();
95
+ break;
96
+
97
+ case 27: // escape
98
+ $results.hide();
99
+ break;
100
+
101
+ }
102
+
103
+ } else if ($input.val().length != prevLength) {
104
+
105
+ if (timeout)
106
+ clearTimeout(timeout);
107
+ timeout = setTimeout(suggest, options.delay);
108
+ prevLength = $input.val().length;
109
+
110
+ }
111
+
112
+
113
+ }
114
+
115
+
116
+ function suggest() {
117
+
118
+ var q = $.trim($input.val()), multipleSepPos, items;
119
+
120
+ if (options.noUrls && (q.substring(0, 7) == 'http://' || q.substring(0, 8) == 'https://')) {
121
+ $results.hide();
122
+ return;
123
+ }
124
+
125
+ if ( options.multiple ) {
126
+ multipleSepPos = q.lastIndexOf(options.multipleSep);
127
+ if ( multipleSepPos != -1 ) {
128
+ q = $.trim(q.substr(multipleSepPos + options.multipleSep.length));
129
+ }
130
+ }
131
+ if (q.length >= options.minchars) {
132
+
133
+ cached = checkCache(q);
134
+
135
+ if (cached) {
136
+
137
+ displayItems(cached['items']);
138
+
139
+ } else {
140
+
141
+ $.get(options.source, {q: q}, function(txt) {
142
+
143
+ $results.hide();
144
+
145
+ items = parseTxt(txt, q);
146
+
147
+ displayItems(items);
148
+ addToCache(q, items, txt.length);
149
+
150
+ });
151
+
152
+ }
153
+
154
+ } else {
155
+
156
+ $results.hide();
157
+
158
+ }
159
+
160
+ }
161
+
162
+
163
+ function checkCache(q) {
164
+ var i;
165
+ for (i = 0; i < cache.length; i++)
166
+ if (cache[i]['q'] == q) {
167
+ cache.unshift(cache.splice(i, 1)[0]);
168
+ return cache[0];
169
+ }
170
+
171
+ return false;
172
+
173
+ }
174
+
175
+ function addToCache(q, items, size) {
176
+ var cached;
177
+ while (cache.length && (cacheSize + size > options.maxCacheSize)) {
178
+ cached = cache.pop();
179
+ cacheSize -= cached['size'];
180
+ }
181
+
182
+ cache.push({
183
+ q: q,
184
+ size: size,
185
+ items: items
186
+ });
187
+
188
+ cacheSize += size;
189
+
190
+ }
191
+
192
+ function displayItems(items) {
193
+ var i;
194
+ if (!items)
195
+ return;
196
+
197
+ if (!items.length) {
198
+ $results.hide();
199
+ return;
200
+ }
201
+
202
+ resetPosition(); // when the form moves after the page has loaded
203
+
204
+ $results.html(items.join('')).show();
205
+
206
+ $results
207
+ .children('li.' + options.itemClass)
208
+ .mouseover(function() {
209
+ $results.children('li.' + options.itemClass).removeClass(options.selectClass);
210
+ $(this).addClass(options.selectClass);
211
+ })
212
+ .click(function(e) {
213
+ e.preventDefault();
214
+ e.stopPropagation();
215
+ selectCurrentResult();
216
+ });
217
+
218
+ }
219
+
220
+ function parseTxt(txt, q) {
221
+
222
+ var lis = [], items = $.parseJSON(txt), i, item;
223
+
224
+ // parse returned data for non-empty items
225
+ for (i = 0; i < items.length; i++) {
226
+
227
+ item = items[i];
228
+ if (item) {
229
+
230
+ if (item.isheader)
231
+ html = '<li class="' + options.headerClass + '">' + item.text + '</li>';
232
+ else {
233
+ html = item.text.replace(
234
+ new RegExp(q, 'ig'),
235
+ function(q) { return '<span class="' + options.matchClass + '">' + q + '</span>' }
236
+ );
237
+ html = '<li'
238
+ + ' class="' + document.createTextNode(options.itemClass).data + '"'
239
+ + ' su:value="' + document.createTextNode(item.value || '').data + '"'
240
+ + ' su:selectedtext="' + document.createTextNode(item.selectedtext || '').data.replace(/"/g, "&quot;") + '"'
241
+ + '>' + html + '</li>';
242
+ }
243
+ lis[lis.length] = html;
244
+ }
245
+
246
+ }
247
+
248
+ return lis;
249
+ }
250
+
251
+ function getCurrentResult() {
252
+ var $currentResult;
253
+ if (!$results.is(':visible'))
254
+ return false;
255
+
256
+ $currentResult = $results.children('li.' + options.selectClass);
257
+
258
+ if (!$currentResult.length)
259
+ $currentResult = false;
260
+
261
+ return $currentResult;
262
+
263
+ }
264
+
265
+ function selectCurrentResult() {
266
+
267
+ $currentResult = getCurrentResult();
268
+
269
+ if ($currentResult) {
270
+ if ( options.multiple ) {
271
+ if ( $input.val().indexOf(options.multipleSep) != -1 ) {
272
+ $currentVal = $input.val().substr( 0, ( $input.val().lastIndexOf(options.multipleSep) + options.multipleSep.length ) );
273
+ } else {
274
+ $currentVal = "";
275
+ }
276
+ $input.val( $currentVal + $currentResult.text() + options.multipleSep);
277
+ $input.focus();
278
+ } else {
279
+ if (options.textDest) {
280
+ $input
281
+ .hide()
282
+ .siblings('.' + options.textDestClass + ':first')
283
+ .show()
284
+ .children('.' + options.textDestTextClass)
285
+ .html($currentResult.attr('su:selectedtext') || $currentResult.text())
286
+ .parentsUntil('tr')
287
+ .next('td')
288
+ .children('input')
289
+ .focus();
290
+
291
+ $input.val($currentResult.attr('su:value'));
292
+ } else
293
+ $input.val($currentResult.text());
294
+ }
295
+ $results.hide();
296
+
297
+ if (options.onSelect)
298
+ options.onSelect.apply($input[0]);
299
+
300
+ }
301
+
302
+ }
303
+
304
+ function nextResult() {
305
+
306
+ $currentResult = getCurrentResult();
307
+
308
+ if ($currentResult)
309
+ $currentResult
310
+ .removeClass(options.selectClass)
311
+ .nextAll('.' + options.itemClass + ':first')
312
+ .addClass(options.selectClass);
313
+ else
314
+ $results.children('li.' + options.itemClass + ':first').addClass(options.selectClass);
315
+
316
+ }
317
+
318
+ function prevResult() {
319
+ var $currentResult = getCurrentResult();
320
+
321
+ if ($currentResult)
322
+ $currentResult
323
+ .removeClass(options.selectClass)
324
+ .prevAll('.' + options.itemClass + ':first')
325
+ .addClass(options.selectClass);
326
+ else
327
+ $results.children('li.' + options.itemClass + ':last').addClass(options.selectClass);
328
+
329
+ }
330
+ }
331
+
332
+ $.fn.jlsuggest = function(source, options) {
333
+
334
+ if (!source)
335
+ return;
336
+
337
+ options = options || {};
338
+ options.multiple = options.multiple || false;
339
+ options.multipleSep = options.multipleSep || ", ";
340
+ options.source = source;
341
+ options.delay = options.delay || 100;
342
+ options.resultsClass = options.resultsClass || 'jls_results';
343
+ options.selectClass = options.selectClass || 'jls_over';
344
+ options.matchClass = options.matchClass || 'jls_match';
345
+ options.headerClass = options.headerClass || 'jls_header';
346
+ options.itemClass = options.itemClass || 'jls_item';
347
+ options.minchars = options.minchars || 2;
348
+ options.delimiter = options.delimiter || '\n';
349
+ options.onSelect = options.onSelect || false;
350
+ options.maxCacheSize = options.maxCacheSize || 65536;
351
+ options.noUrls = options.noUrls || false;
352
+ options.textDest = options.textDest || false;
353
+ options.textDestClass = options.textDestClass || 'jls_text_dest';
354
+ options.textDestTextClass = options.textDestTextClass || 'jls_text_dest_text';
355
+ options.textDestCloseClass = options.textDestCloseClass || 'jls_text_dest_close';
356
+
357
+ this.each(function() {
358
+ new $.jlsuggest(this, options);
359
+ });
360
+
361
+ return this;
362
+
363
+ };
364
+
365
+ })(jQuery);
modules/autolinks/autolinks.css CHANGED
@@ -1,19 +1,18 @@
1
  #su-autolinks table.widefat,
2
- #su-autolinks table.widefat input.textbox,
3
- #su-autolinks table.widefat td.su-link-to_id select {
4
  width: 100%;
5
  }
6
 
7
- #su-autolinks table.widefat td.su-link-options label {
8
- margin-right: 1em;
9
  }
10
 
11
- #su-autolinks table.widefat td.su-link-to_type {
12
- width: 10em;
13
  }
14
 
15
- #su-autolinks table.widefat td.su-link-to_id {
16
- width: 15em;
17
  }
18
 
19
  #su-autolinks table.widefat td.su-link-options {
1
  #su-autolinks table.widefat,
2
+ #su-autolinks table.widefat input.textbox {
 
3
  width: 100%;
4
  }
5
 
6
+ #su-autolinks table.widefat td {
7
+ vertical-align: middle;
8
  }
9
 
10
+ #su-autolinks table.widefat td.su-link-options label {
11
+ margin-right: 1em;
12
  }
13
 
14
+ #su-autolinks table.widefat td.su-link-to {
15
+ width: 25em;
16
  }
17
 
18
  #su-autolinks table.widefat td.su-link-options {
modules/autolinks/autolinks.php CHANGED
@@ -9,6 +9,17 @@ if (class_exists('SU_Module')) {
9
 
10
  class SU_Autolinks extends SU_Module {
11
  function get_module_title() { return __('Deeplink Juggernaut', 'seo-ultimate'); }
 
 
 
 
 
 
 
 
 
 
 
12
  }
13
 
14
  }
9
 
10
  class SU_Autolinks extends SU_Module {
11
  function get_module_title() { return __('Deeplink Juggernaut', 'seo-ultimate'); }
12
+
13
+ function admin_page_contents() {
14
+
15
+ if (function_exists('json_encode')) {
16
+ $this->children_admin_page_tabs_form();
17
+ } else {
18
+ $this->print_message('error', sprintf(__('Deeplink Juggernaut requires PHP 5.2 or above in SEO Ultimate 6.0 and later. (Note that WordPress itself will soon require PHP 5.2 as well, starting with WordPress 3.2.) If you aren&#8217;t sure how to upgrade PHP, please ask your webhost. In the meantime, you can return to an older version of Deeplink Juggernaut that supports your version of PHP by <a href="%s">downgrading</a> to SEO Ultimate 5.9.', 'seo-ultimate'), $this->get_admin_url('settings').'#su-downgrade'));
19
+ return;
20
+ }
21
+
22
+ }
23
  }
24
 
25
  }
modules/autolinks/content-autolinks.php CHANGED
@@ -54,6 +54,17 @@ class SU_ContentAutolinks extends SU_Module {
54
  $lpa_limit_enabled = $this->get_setting('limit_lpa', false);
55
  $lpa_limit = $lpa_limit_enabled ? $this->get_setting('limit_lpa_value', 5) : -1;
56
 
 
 
 
 
 
 
 
 
 
 
 
57
  foreach ($links as $data) {
58
  $anchor = $data['anchor'];
59
  $to_id = su_esc_attr($data['to_id']);
@@ -62,12 +73,39 @@ class SU_ContentAutolinks extends SU_Module {
62
 
63
  $type = $data['to_type'];
64
 
65
- if ($type == 'url')
66
  $url = $to_id;
67
- elseif (($posttype = sustr::ltrim_str($type, 'posttype_')) != $type) {
68
  $to_id = (int)$to_id;
 
 
69
  if (get_post_status($to_id) != 'publish') continue;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
70
  $url = get_permalink($to_id);
 
 
 
 
71
  } else
72
  continue;
73
 
@@ -95,7 +133,12 @@ class SU_ContentAutolinks extends SU_Module {
95
  return $content;
96
  }
97
 
 
 
 
 
98
  function admin_page_contents() {
 
99
  echo "\n<p>";
100
  _e('The Content Links section of Deeplink Juggernaut lets you automatically link a certain word or phrase in your post/page content to a URL you specify.', 'seo-ultimate');
101
  echo "</p>\n";
@@ -112,15 +155,27 @@ class SU_ContentAutolinks extends SU_Module {
112
  for ($i=0; $i <= $num_links; $i++) {
113
 
114
  $anchor = stripslashes($_POST["link_{$i}_anchor"]);
115
- $to_type= stripslashes($_POST["link_{$i}_to_type__{$guid}"]);
116
- $to_id = stripslashes($_POST["link_{$i}_to_id_{$to_type}__{$guid}"]);
 
 
 
 
 
 
 
 
 
 
 
 
 
117
  $title = stripslashes($_POST["link_{$i}_title"]);
118
 
119
- $target = stripslashes($_POST["link_{$i}_target"]);
120
- $target = $target ? 'blank' : 'self';
121
 
122
- $nofollow = intval($_POST["link_{$i}_nofollow"]) == 1;
123
- $delete = intval($_POST["link_{$i}_delete"]) == 1;
124
 
125
  if (!$delete && (strlen($anchor) || $to_id))
126
  $links[] = compact('anchor', 'to_type', 'to_id', 'title', 'nofollow', 'target');
@@ -146,8 +201,7 @@ class SU_ContentAutolinks extends SU_Module {
146
  //Set headers
147
  $headers = array(
148
  'link-anchor' => __('Anchor Text', 'seo-ultimate')
149
- , 'link-to_type' => __('Destination Type', 'seo-ultimate')
150
- , 'link-to_id' => __('Destination', 'seo-ultimate')
151
  , 'link-title' => __('Title Attribute', 'seo-ultimate')
152
  , 'link-options' => __('Options', 'seo-ultimate')
153
  );
@@ -156,49 +210,20 @@ class SU_ContentAutolinks extends SU_Module {
156
  //Begin table; output headers
157
  $this->admin_wftable_start($headers);
158
 
159
- //Get post options
160
- $posttypeobjs = suwp::get_post_type_objects();
161
- $posttypes = $posts = $postoptions = array();
162
- foreach ($posttypeobjs as $posttypeobj) {
163
-
164
- $stati = get_available_post_statuses($posttypeobj->name);
165
- suarr::remove_value($stati, 'auto-draft');
166
- $stati = implode(',', $stati);
167
-
168
- $typeposts = get_posts("orderby=title&order=ASC&post_status=$stati&numberposts=-1&post_type=".$posttypeobj->name);
169
- if (count($typeposts)) {
170
- $posttypes['posttype_'.$posttypeobj->name] = $posttypeobj->labels->singular_name;
171
- $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
172
- //$postoptions['posttype_'.$posttypeobj->name] = suhtml::option_tags(array(0 => '') + $typeposts_array, null); //Maintains numeric array keys, unlike array_unshift or array_merge
173
- }
174
- }
175
-
176
  //Cycle through links
177
  $i = $start_id;
178
  foreach ($links as $link) {
179
 
180
- $postdropdowns = array();
181
- foreach ($posts as $posttype => $typeposts) {
182
- $typeposts = array(0 => '') + $typeposts; //Maintains numeric array keys, unlike array_unshift or array_merge
183
- $postdropdowns[$posttype] = $this->get_input_element('dropdown', "link_{$i}_to_id_{$posttype}__$guid", $link['to_id'], $typeposts);
184
-
185
- /*
186
- //$typeposts = array(0 => '') + $typeposts;
187
- $postdropdowns[$posttype] = $this->get_input_element('dropdown', "link_{$i}_to_id_{$posttype}__$guid", $link['to_id'],
188
- str_replace("<option value='{$link['to_id']}'>", "<option value='{$link['to_id']}' selected='selected'>", $postoptions[$posttype])
189
- );
190
- */
191
- }
192
 
193
  $cells = array(
194
  'link-anchor' => $this->get_input_element('textbox', "link_{$i}_anchor", $link['anchor'])
195
- , 'link-to_type' => $this->get_input_element('dropdown', "link_{$i}_to_type__$guid", $link['to_type'], array(
196
- __('Custom', 'seo-ultimate') => array('url' => __('URL', 'seo-ultimate'))
197
- , __('Content Items', 'seo-ultimate') => $posttypes
198
- ))
199
- , 'link-to_id' => $this->get_admin_form_subsections("link_{$i}_to_type__$guid", $link['to_type'] ? $link['to_type'] : 'url', array_merge(array(
200
- 'url' => $this->get_input_element('textbox', "link_{$i}_to_id_url__$guid", ($link['to_type'] == 'url') ? $link['to_id'] : '')
201
- ), $postdropdowns))
202
  , 'link-title' => $this->get_input_element('textbox', "link_{$i}_title", $link['title'])
203
  , 'link-options' =>
204
  $this->get_input_element('checkbox', "link_{$i}_nofollow", $link['nofollow'], __('Nofollow', 'seo-ultimate'))
54
  $lpa_limit_enabled = $this->get_setting('limit_lpa', false);
55
  $lpa_limit = $lpa_limit_enabled ? $this->get_setting('limit_lpa_value', 5) : -1;
56
 
57
+ $from_post_type = get_post_type();
58
+ $dest_limit = $from_post_type ? (bool)$this->get_setting('dest_limit_' . $from_post_type, false) : false;
59
+ $dest_limit_taxonomies = array();
60
+ if ($dest_limit) {
61
+ $from_post_type_taxonomies = suwp::get_object_taxonomy_names($from_post_type);
62
+ foreach ($from_post_type_taxonomies as $from_post_type_taxonomy) {
63
+ if ($this->get_setting('dest_limit_' . $from_post_type . '_within_' . $from_post_type_taxonomy, false))
64
+ $dest_limit_taxonomies[] = $from_post_type_taxonomy;
65
+ }
66
+ }
67
+
68
  foreach ($links as $data) {
69
  $anchor = $data['anchor'];
70
  $to_id = su_esc_attr($data['to_id']);
73
 
74
  $type = $data['to_type'];
75
 
76
+ if ($type == 'url') {
77
  $url = $to_id;
78
+ } elseif (sustr::startswith($type, 'posttype_')) {
79
  $to_id = (int)$to_id;
80
+ $to_post = get_post($to_id);
81
+
82
  if (get_post_status($to_id) != 'publish') continue;
83
+
84
+ if (count($dest_limit_taxonomies)) {
85
+ $shares_term = false;
86
+ foreach ($dest_limit_taxonomies as $dest_limit_taxonomy) {
87
+ $from_terms = suarr::flatten_values(get_the_terms(null, $dest_limit_taxonomy), 'term_id');
88
+
89
+ if (is_object_in_taxonomy($to_post, $dest_limit_taxonomy))
90
+ $to_terms = suarr::flatten_values(get_the_terms($to_id, $dest_limit_taxonomy), 'term_id');
91
+ else
92
+ $to_terms = array();
93
+
94
+ if (count(array_intersect($from_terms, $to_terms))) {
95
+ $shares_term = true;
96
+ break;
97
+ }
98
+ }
99
+
100
+ if (!$shares_term)
101
+ continue;
102
+ }
103
+
104
  $url = get_permalink($to_id);
105
+ } elseif (sustr::startswith($type, 'taxonomy_')) {
106
+ $taxonomy = sustr::ltrim_str($type, 'taxonomy_');
107
+ $to_id = (int)$to_id;
108
+ $url = get_term_link($to_id, $taxonomy);
109
  } else
110
  continue;
111
 
133
  return $content;
134
  }
135
 
136
+ function admin_page_init() {
137
+ $this->jlsuggest_init();
138
+ }
139
+
140
  function admin_page_contents() {
141
+
142
  echo "\n<p>";
143
  _e('The Content Links section of Deeplink Juggernaut lets you automatically link a certain word or phrase in your post/page content to a URL you specify.', 'seo-ultimate');
144
  echo "</p>\n";
155
  for ($i=0; $i <= $num_links; $i++) {
156
 
157
  $anchor = stripslashes($_POST["link_{$i}_anchor"]);
158
+
159
+ $to = stripslashes($_POST["link_{$i}_to"]);
160
+ if (sustr::startswith($to, 'obj_')) {
161
+ $to = sustr::ltrim_str($to, 'obj_');
162
+ $to = explode('/', $to);
163
+ if (count($to) == 2) {
164
+ $to_type = $to[0];
165
+ $to_id = $to[1];
166
+ } else
167
+ continue;
168
+ } else {
169
+ $to_type = 'url';
170
+ $to_id = $to;
171
+ }
172
+
173
  $title = stripslashes($_POST["link_{$i}_title"]);
174
 
175
+ $target = empty($_POST["link_{$i}_target"]) ? 'self' : 'blank';
 
176
 
177
+ $nofollow = isset($_POST["link_{$i}_nofollow"]) ? (intval($_POST["link_{$i}_nofollow"]) == 1) : false;
178
+ $delete = isset($_POST["link_{$i}_delete"]) ? (intval($_POST["link_{$i}_delete"]) == 1) : false;
179
 
180
  if (!$delete && (strlen($anchor) || $to_id))
181
  $links[] = compact('anchor', 'to_type', 'to_id', 'title', 'nofollow', 'target');
201
  //Set headers
202
  $headers = array(
203
  'link-anchor' => __('Anchor Text', 'seo-ultimate')
204
+ , 'link-to' => __('Destination', 'seo-ultimate')
 
205
  , 'link-title' => __('Title Attribute', 'seo-ultimate')
206
  , 'link-options' => __('Options', 'seo-ultimate')
207
  );
210
  //Begin table; output headers
211
  $this->admin_wftable_start($headers);
212
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
213
  //Cycle through links
214
  $i = $start_id;
215
  foreach ($links as $link) {
216
 
217
+ if (!isset($link['anchor'])) $link['anchor'] = '';
218
+ if (!isset($link['to_id'])) $link['to_id'] = '';
219
+ if (!isset($link['to_type'])) $link['to_type'] = 'url';
220
+ if (!isset($link['title'])) $link['title'] = '';
221
+ if (!isset($link['nofollow'])) $link['nofollow'] = false;
222
+ if (!isset($link['target'])) $link['target'] = '';
 
 
 
 
 
 
223
 
224
  $cells = array(
225
  'link-anchor' => $this->get_input_element('textbox', "link_{$i}_anchor", $link['anchor'])
226
+ , 'link-to' => $this->get_jlsuggest_box("link_{$i}_to", array($link['to_type'], $link['to_id']))
 
 
 
 
 
 
227
  , 'link-title' => $this->get_input_element('textbox', "link_{$i}_title", $link['title'])
228
  , 'link-options' =>
229
  $this->get_input_element('checkbox', "link_{$i}_nofollow", $link['nofollow'], __('Nofollow', 'seo-ultimate'))
modules/class.su-module.php CHANGED
@@ -320,6 +320,13 @@ class SU_Module {
320
  */
321
  function get_default_settings() { return array(); }
322
 
 
 
 
 
 
 
 
323
  /**
324
  * The contents of the administration page.
325
  *
@@ -2459,5 +2466,141 @@ class SU_Module {
2459
 
2460
  add_action($hook, array(&$this, $function));
2461
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2462
  }
2463
  ?>
320
  */
321
  function get_default_settings() { return array(); }
322
 
323
+ /**
324
+ * Is called at WordPress' admin_init hook when this module's admin page is showing.
325
+ *
326
+ * @since 6.0
327
+ */
328
+ function admin_page_init() { }
329
+
330
  /**
331
  * The contents of the administration page.
332
  *
2466
 
2467
  add_action($hook, array(&$this, $function));
2468
  }
2469
+
2470
+ /********** JLSUGGEST **********/
2471
+
2472
+ /**
2473
+ * Initializes JLSuggest.
2474
+ * Must be called in the admin_page_init() function of the module that wants to use JLSuggest.
2475
+ *
2476
+ * @since 6.0
2477
+ * @uses jlsuggest_xml_ns()
2478
+ * @uses SEO_Ultimate::queue_js()
2479
+ * @uses SEO_Ultimate::queue_css()
2480
+ */
2481
+ function jlsuggest_init() {
2482
+ add_action('admin_xml_ns', array(&$this, 'jlsuggest_xml_ns'));
2483
+ $this->plugin->queue_js ('includes/jlsuggest', 'jlsuggest');
2484
+ $this->plugin->queue_css('includes/jlsuggest', 'jlsuggest');
2485
+ }
2486
+
2487
+ /**
2488
+ * Outputs the SEO Ultimate XMLNS used by JLSuggest.
2489
+ *
2490
+ * @since 6.0
2491
+ */
2492
+ function jlsuggest_xml_ns() {
2493
+ echo ' xmlns:su="http://johnlamansky.com/xmlns/seo-ultimate" ';
2494
+ }
2495
+
2496
+ /**
2497
+ * Explodes a JLSuggest database string into an array with the destination type and the destination ID.
2498
+ *
2499
+ * @since 6.0
2500
+ *
2501
+ * @param $valstr The database string, e.g. http://example.com or obj_posttype_post_1
2502
+ * @return array
2503
+ */
2504
+ function jlsuggest_value_explode($valstr) {
2505
+
2506
+ if (is_array($valstr)) {
2507
+ return $valstr;
2508
+
2509
+ } elseif (is_string($valstr)) {
2510
+
2511
+ if (sustr::startswith($valstr, 'obj_')) {
2512
+ $valstr = sustr::ltrim_str($valstr, 'obj_');
2513
+ $valstr = explode('/', $valstr);
2514
+ if (count($valstr) == 2)
2515
+ return $valstr;
2516
+ } else {
2517
+ return array('url', $valstr);
2518
+ }
2519
+ }
2520
+
2521
+ return array('url', '');
2522
+ }
2523
+
2524
+ /**
2525
+ * Returns the HTML code for a JLSuggest textbox
2526
+ *
2527
+ * @since 6.0
2528
+ *
2529
+ * @param string $name The value of the textbox's name/ID attributes
2530
+ * @param string $value The current database string associated with this textbox
2531
+ */
2532
+ function get_jlsuggest_box($name, $value) {
2533
+
2534
+ list($to_type, $to_id) = $this->jlsuggest_value_explode($value);
2535
+
2536
+ $text_dest = '';
2537
+ if (!empty($to_type)) {
2538
+ if (sustr::startswith($to_type, 'posttype_')) {
2539
+ $selected_post = get_post($to_id);
2540
+ $selected_post_type = get_post_type_object($selected_post->post_type);
2541
+ $text_dest = $selected_post->post_title . '<span class="type">&nbsp;&mdash;&nbsp;'.$selected_post_type->labels->singular_name.'</span>';
2542
+
2543
+ } elseif (sustr::startswith($to_type, 'taxonomy_')) {
2544
+ $selected_taxonomy = get_taxonomy(sustr::ltrim_str($to_type, 'taxonomy_'));
2545
+ $selected_term = get_term($to_id, $selected_taxonomy->name);
2546
+ $text_dest = $selected_term->name . '<span class="type">&nbsp;&mdash;&nbsp;'.$selected_taxonomy->labels->singular_name.'</span>';
2547
+ }
2548
+ }
2549
+
2550
+ $is_url = (('url' == $to_type) && !$text_dest);
2551
+
2552
+ //URL textbox
2553
+ //(hide if object is selected)
2554
+ $html = "<input name='$name' id='$name' value='";
2555
+ $html .= su_esc_editable_html($is_url ? $to_id : 'obj_' . $to_type . '/' . $to_id);
2556
+ $html .= "' type='text' class='textbox regular-text jlsuggest'";
2557
+ $html .= ' title="' . __('Type a URL or start typing the name of the item you want to link to', 'seo-ultimate') . '"';
2558
+ $html .= $is_url ? '' : ' style="display:none;" ';
2559
+ $html .= ' />';
2560
+
2561
+ //Object box
2562
+ //(hide if URL is entered)
2563
+ $html .= '<div class="jls_text_dest"';
2564
+ $html .= $is_url ? ' style="display:none;" ' : '';
2565
+ $html .= '>';
2566
+ $html .= '<span class="jls_text_dest_text">';
2567
+ $html .= $text_dest;
2568
+ $html .= '</span>';
2569
+ $html .= '<a href="#" onclick="javascript:return false;" class="jls_text_dest_close" title="'.__('Remove this destination', 'seo-ultimate').'">'.__('X', 'seo-ultimate').'</a>';
2570
+ $html .= '</div>';
2571
+
2572
+ return $html;
2573
+ }
2574
+
2575
+ /**
2576
+ * Converts a JLSuggest database string into a URL.
2577
+ *
2578
+ * @since 6.0
2579
+ *
2580
+ * @param string $value The JLSuggest database string to convert.
2581
+ * @return string The URL of the referenced destination
2582
+ */
2583
+ function jlsuggest_value_to_url($value) {
2584
+
2585
+ list($to_type, $to_id) = $this->jlsuggest_value_explode($value);
2586
+
2587
+ if ($to_type == 'url') {
2588
+ return $to_id;
2589
+
2590
+ } elseif (sustr::startswith($to_type, 'posttype_')) {
2591
+ $to_id = (int)$to_id;
2592
+ $to_post = get_post($to_id);
2593
+ if (get_post_status($to_id) != 'publish') continue;
2594
+ return get_permalink($to_id);
2595
+
2596
+ } elseif (sustr::startswith($to_type, 'taxonomy_')) {
2597
+ $taxonomy = sustr::ltrim_str($to_type, 'taxonomy_');
2598
+ $to_id = (int)$to_id;
2599
+ return get_term_link($to_id, $taxonomy);
2600
+
2601
+ }
2602
+
2603
+ return false;
2604
+ }
2605
  }
2606
  ?>
modules/meta/meta-descriptions.php CHANGED
@@ -122,7 +122,7 @@ class SU_MetaDescriptions extends SU_Module {
122
  "<tr class='textarea' valign='top'>\n<th scope='row'><label for='$id'>".__('Meta Description:', 'seo-ultimate')."</label></th>\n"
123
  . "<td><textarea name='$id' id='$id' class='regular-text' cols='60' rows='3' tabindex='2'"
124
  . " onkeyup=\"javascript:document.getElementById('su_meta_description_charcount').innerHTML = document.getElementById('_su_description').value.length\">$value</textarea>"
125
- . "<br />".sprintf(__('You&#8217;ve entered %s characters. Most search engines use up to 160.', 'seo-ultimate'), "<strong id='su_meta_description_charcount'>".strlen($value)."</strong>")
126
  . "</td>\n</tr>\n"
127
  ;
128
 
122
  "<tr class='textarea' valign='top'>\n<th scope='row'><label for='$id'>".__('Meta Description:', 'seo-ultimate')."</label></th>\n"
123
  . "<td><textarea name='$id' id='$id' class='regular-text' cols='60' rows='3' tabindex='2'"
124
  . " onkeyup=\"javascript:document.getElementById('su_meta_description_charcount').innerHTML = document.getElementById('_su_description').value.length\">$value</textarea>"
125
+ . "<br />".sprintf(__('You&#8217;ve entered %s characters. Most search engines use up to 140.', 'seo-ultimate'), "<strong id='su_meta_description_charcount'>".strlen($value)."</strong>")
126
  . "</td>\n</tr>\n"
127
  ;
128
 
modules/meta/meta-robots.css ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
1
+ #su-meta-robots table.widefat {
2
+ width: auto;
3
+ }
4
+
5
+ #su-meta-robots table.widefat td.su-meta_robots_noindex,
6
+ #su-meta-robots table.widefat td.su-meta_robots_nofollow {
7
+ text-align: center;
8
+ }
modules/modules.css CHANGED
@@ -17,7 +17,6 @@ div.su-module h4.su-subheader {
17
 
18
  div.su-module table.widefat {
19
  width: auto;
20
- /*margin: 2em 0;*/
21
  }
22
 
23
  div.su-module table.fullwidth,
17
 
18
  div.su-module table.widefat {
19
  width: auto;
 
20
  }
21
 
22
  div.su-module table.fullwidth,
modules/rich-snippets/rich-snippets.php CHANGED
@@ -157,8 +157,10 @@ class SU_RichSnippets extends SU_Module {
157
  if (!strlen($value)) {
158
  if (isset($property_data['value_function'])) {
159
  $valfunc = (array)$property_data['value_function'];
160
- if (is_callable($valfunc[0]))
161
- $value = call_user_func_array($valfunc[0], (array)$valfunc[1]);
 
 
162
  }
163
  }
164
 
@@ -192,7 +194,7 @@ class SU_RichSnippets extends SU_Module {
192
 
193
  //Is the value in the content, and are we allowed to search/replace the content for this value?
194
  $count = 0;
195
- if (!$property_data['always_hidden']) {
196
  for ($i=0; $i<count($values); $i++) {
197
  $content = sustr::htmlsafe_str_replace($values[$i], $markedup_values[$i], $content, 1, $count);
198
  if ($count > 0) break;
157
  if (!strlen($value)) {
158
  if (isset($property_data['value_function'])) {
159
  $valfunc = (array)$property_data['value_function'];
160
+ if (is_callable($valfunc[0])) {
161
+ $valfunc_args = isset($valfunc[1]) ? (array)$valfunc[1] : array();
162
+ $value = call_user_func_array($valfunc[0], $valfunc_args);
163
+ }
164
  }
165
  }
166
 
194
 
195
  //Is the value in the content, and are we allowed to search/replace the content for this value?
196
  $count = 0;
197
+ if (empty($property_data['always_hidden'])) {
198
  for ($i=0; $i<count($values); $i++) {
199
  $content = sustr::htmlsafe_str_replace($values[$i], $markedup_values[$i], $content, 1, $count);
200
  if ($count > 0) break;
modules/settings/settings-data.php CHANGED
@@ -152,7 +152,9 @@ class SU_SettingsData extends SU_Module {
152
  foreach ($import as $link) {
153
 
154
  //Validate destination type
155
- if ($link['to_type'] != 'url' && !sustr::startswith($link['to_type'], 'posttype_'))
 
 
156
  $link['to_type'] = 'url';
157
 
158
  //Validate nofollow
152
  foreach ($import as $link) {
153
 
154
  //Validate destination type
155
+ if ($link['to_type'] != 'url'
156
+ && !sustr::startswith($link['to_type'], 'posttype_')
157
+ && !sustr::startswith($link['to_type'], 'taxonomy_'))
158
  $link['to_type'] = 'url';
159
 
160
  //Validate nofollow
plugin/class.seo-ultimate.php CHANGED
@@ -212,6 +212,8 @@ class SEO_Ultimate {
212
  suwp::remove_instance_action('admin_footer', 'RobotsMeta_Admin', 'blog_public_warning');
213
  }
214
 
 
 
215
  //When loading the admin menu, call on our menu constructor function.
216
  //For future-proofing purposes, we specifically state the default priority of 10,
217
  //since some modules set a priority of 9 with the specific intention of running
@@ -234,6 +236,9 @@ class SEO_Ultimate {
234
 
235
  //Add module links to plugin listing
236
  add_filter('plugin_row_meta', array(&$this, 'plugin_row_meta_filter'), 10, 2);
 
 
 
237
  }
238
  }
239
 
@@ -604,6 +609,22 @@ class SEO_Ultimate {
604
  }
605
  }
606
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
607
  /**
608
  * Gets the value of a module setting.
609
  *
@@ -1626,5 +1647,73 @@ class SEO_Ultimate {
1626
 
1627
  return $this->plugin_dir_path.'modules/documentation.txt';
1628
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1629
  }
1630
  ?>
212
  suwp::remove_instance_action('admin_footer', 'RobotsMeta_Admin', 'blog_public_warning');
213
  }
214
 
215
+ add_action('admin_init', array(&$this, 'admin_init'));
216
+
217
  //When loading the admin menu, call on our menu constructor function.
218
  //For future-proofing purposes, we specifically state the default priority of 10,
219
  //since some modules set a priority of 9 with the specific intention of running
236
 
237
  //Add module links to plugin listing
238
  add_filter('plugin_row_meta', array(&$this, 'plugin_row_meta_filter'), 10, 2);
239
+
240
+ //JLSuggest AJAX
241
+ add_action('wp_ajax_su-jlsuggest-autocomplete', array(&$this, 'jlsuggest_autocomplete'));
242
  }
243
  }
244
 
609
  }
610
  }
611
 
612
+ /**
613
+ * Attached to WordPress' admin_init hook.
614
+ * Calls the admin_page_init() function of the current module(s).
615
+ *
616
+ * @since 6.0
617
+ * @uses $modules
618
+ * @uses SU_Module::is_module_admin_page()
619
+ * @uses SU_Module::admin_page_init()
620
+ */
621
+ function admin_init() {
622
+ foreach ($this->modules as $key => $x_module) {
623
+ if ($this->modules[$key]->is_module_admin_page())
624
+ $this->modules[$key]->admin_page_init();
625
+ }
626
+ }
627
+
628
  /**
629
  * Gets the value of a module setting.
630
  *
1647
 
1648
  return $this->plugin_dir_path.'modules/documentation.txt';
1649
  }
1650
+
1651
+ /********** JLSUGGEST **********/
1652
+
1653
+ /**
1654
+ * Outputs a JSON-encoded list of posts and terms on the blog.
1655
+ *
1656
+ * @since 6.0
1657
+ */
1658
+ function jlsuggest_autocomplete() {
1659
+
1660
+ if ( !function_exists('json_encode') ) die();
1661
+ if ( !current_user_can( 'manage_options' ) ) die();
1662
+
1663
+ $items = array();
1664
+
1665
+ $posttypeobjs = suwp::get_post_type_objects();
1666
+ foreach ($posttypeobjs as $posttypeobj) {
1667
+
1668
+ $stati = get_available_post_statuses($posttypeobj->name);
1669
+ suarr::remove_value($stati, 'auto-draft');
1670
+ $stati = implode(',', $stati);
1671
+
1672
+ $posts = get_posts(array(
1673
+ 'orderby' => 'title'
1674
+ , 'order' => 'ASC'
1675
+ , 'post_status' => $stati
1676
+ , 'numberposts' => -1
1677
+ , 'post_type' => $posttypeobj->name
1678
+ , 'sentence' => 1
1679
+ , 's' => $_GET['q']
1680
+ ));
1681
+
1682
+ if (count($posts)) {
1683
+
1684
+ $items[] = array('text' => $posttypeobj->labels->name, 'isheader' => true);
1685
+
1686
+ foreach ($posts as $post)
1687
+ $items[] = array(
1688
+ 'text' => $post->post_title
1689
+ , 'value' => 'obj_posttype_' . $posttypeobj->name . '/' . $post->ID
1690
+ , 'selectedtext' => $post->post_title . '<span class="type">&nbsp;&mdash;&nbsp;'.$posttypeobj->labels->singular_name.'</span>'
1691
+ );
1692
+ }
1693
+ }
1694
+
1695
+ $taxonomyobjs = suwp::get_taxonomies();
1696
+ foreach ($taxonomyobjs as $taxonomyobj) {
1697
+
1698
+ $terms = get_terms($taxonomyobj->name, array(
1699
+ 'search' => esc_sql($_GET['q']) //The esc_sql() is very important: get_terms does NOT sanitize the "search" variable for SQL queries prior to 3.1.3
1700
+ ));
1701
+
1702
+ if (count($terms)) {
1703
+
1704
+ $items[] = array('text' => $taxonomyobj->labels->name, 'isheader' => true);
1705
+
1706
+ foreach ($terms as $term)
1707
+ $items[] = array(
1708
+ 'text' => $term->name
1709
+ , 'value' => 'obj_taxonomy_' . $taxonomyobj->name . '/' . $term->term_id
1710
+ , 'selectedtext' => $term->name . '<span class="type"> &mdash; '.$taxonomyobj->labels->singular_name.'</span>'
1711
+ );
1712
+ }
1713
+ }
1714
+
1715
+ echo json_encode($items);
1716
+ die();
1717
+ }
1718
  }
1719
  ?>
readme.txt CHANGED
@@ -3,19 +3,19 @@ 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, 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, affiliate
4
  Requires at least: 3.0
5
  Tested up to: 3.1
6
- Stable tag: 5.9
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 5.9 adds default category/tag meta description formats
15
  * Version 5.8 adds the Permalink Tweaker module
16
  * Version 5.7 adds mass-editing for post format archives
17
  * Version 5.6 adds the Nofollow Manager module
18
- * Version 5.5 adds noindex/nofollow mass-editing for categories/tags/terms
19
 
20
  = Features =
21
 
@@ -34,7 +34,7 @@ SEO Ultimate is an all-in-one [SEO](http://www.seodesignsolutions.com/) plugin w
34
  * Use the `{excerpt::autogen}` variable to auto-generate meta descriptions if desired.
35
 
36
  * **Meta Keywords Editor**
37
- * Edit the `<meta>` keyword tags for posts, pages, and the homepage.
38
  * Easily specify global keywords that are applied across the entire site.
39
  * Go back and edit old posts' and pages' keywords with the mass-editor.
40
  * Automatically generate meta keywords based on categories, tags, custom taxonomy terms, and frequently-used words.
@@ -44,7 +44,19 @@ SEO Ultimate is an all-in-one [SEO](http://www.seodesignsolutions.com/) plugin w
44
  * Set meta robots tags (index/noindex and follow/nofollow) for each individual post, page, category, tag, and post type archive on your blog. Also supports custom post types and custom taxonomies.
45
  * Avoid duplicate content SEO issues with the recommended noindex settings (see built-in module documentation for details).
46
  * Give instructions to search engine spiders if desired (`noodp`, `noydir`, and `noarchive`).
47
-
 
 
 
 
 
 
 
 
 
 
 
 
48
  * **Canonicalizer**
49
  * Point search engines to preferred content access points with `<link rel="canonical" />` SEO tags.
50
  * Go beyond the basic canonical tag functionality of WordPress 2.9+ with SEO Ultimate's support for category/tag/date/author archives.
@@ -84,16 +96,6 @@ SEO Ultimate is an all-in-one [SEO](http://www.seodesignsolutions.com/) plugin w
84
  * Determine which of your webpages Google most strongly associates with the keywords you specify.
85
  * Use the information to determine ideal targets for incoming links or ideal sources of outgoing links.
86
 
87
- * **Deeplink Juggernaut**
88
- * Automatically link phrases in your posts/pages to other posts/pages or to custom URLs.
89
- * Exclude specific posts/pages from having links added to them, if desired (e.g. contact pages, the homepage, etc.).
90
- * Use the power of anchor text to boost your internal ranking SEO paradigm.
91
- * Control the maximum number of autolinks added to each post/page as well as the number of times an anchor is linked per page.
92
- * Apply the nofollow attribute on a per-link basis. (Perfect for automatic affiliate links.)
93
- * Import/export your links as CSV files.
94
- * Create links pointing to draft posts that will auto-enable when the post is published!
95
- * Build internal links to your posts from within the WordPress post editor! Use "Instant Post Propulsion" technology to automatically link your old posts to new ones.
96
-
97
  * **Code Inserter**
98
  * Easily insert custom HTML into your site's `<head>` tag, footer, or item content.
99
  * Use to add Google Analytics, Feedburner FeedFlare, Google AdSense section targeting, and other SEO/SEM-enhancing code snippets.
@@ -232,6 +234,15 @@ Frequently asked questions, settings help, and troubleshooting tips for SEO Ulti
232
 
233
  == Changelog ==
234
 
 
 
 
 
 
 
 
 
 
235
  = Version 5.9 (June 17, 2011) =
236
  * Feature: Meta Description Editor now supports default formats for category/tag archives, starting with support for the `{description}` variable.
237
  * Feature: Meta Keywords Editor now has mass-editors for categories, tags, post format archives, and custom taxonomy term archives
3
  Tags: seo, SEO Ultimate, suite, google, yahoo, bing, search engines, admin, post, page, custom post types, categories, tags, terms, custom taxonomies, base, 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, affiliate
4
  Requires at least: 3.0
5
  Tested up to: 3.1
6
+ Stable tag: 6.0
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.0 features Deeplink Juggernaut 2.0
15
  * Version 5.9 adds default category/tag meta description formats
16
  * Version 5.8 adds the Permalink Tweaker module
17
  * Version 5.7 adds mass-editing for post format archives
18
  * Version 5.6 adds the Nofollow Manager module
 
19
 
20
  = Features =
21
 
34
  * Use the `{excerpt::autogen}` variable to auto-generate meta descriptions if desired.
35
 
36
  * **Meta Keywords Editor**
37
+ * Edit the `<meta>` keyword tags for posts, pages, categories, terms, and the homepage.
38
  * Easily specify global keywords that are applied across the entire site.
39
  * Go back and edit old posts' and pages' keywords with the mass-editor.
40
  * Automatically generate meta keywords based on categories, tags, custom taxonomy terms, and frequently-used words.
44
  * Set meta robots tags (index/noindex and follow/nofollow) for each individual post, page, category, tag, and post type archive on your blog. Also supports custom post types and custom taxonomies.
45
  * Avoid duplicate content SEO issues with the recommended noindex settings (see built-in module documentation for details).
46
  * Give instructions to search engine spiders if desired (`noodp`, `noydir`, and `noarchive`).
47
+
48
+ * **Deeplink Juggernaut** -- REVAMPED in Version 6.0
49
+ * Use the power of anchor text to boost your internal ranking SEO paradigm.
50
+ * Searches your site's content for anchor texts you specify and automatically links them to a destination of your choosing. Lets you easily build internal links to URLs, posts, pages, attachments, custom post type items, categories, terms, post format archives, and custom taxonomy term archives.
51
+ * Easily select autolink destinations using autocomplete textboxes that scour your site's content and taxonomy terms to find the link destination you're looking for.
52
+ * Autolinks point to the objects themselves, not to their URLs, so if you change the URL of a post or category on your site, the autolinks automatically adjust.
53
+ * Control the maximum number of autolinks added to each post/page as well as the number of times an anchor is linked per page.
54
+ * Apply the nofollow attribute on a per-link basis. (Perfect for automatic affiliate links.)
55
+ * Exclude specific posts/pages from having links added to them, if desired (e.g. contact pages, the homepage, etc.).
56
+ * Import/export your links as CSV files.
57
+ * Create links pointing to draft posts that will auto-enable when the post is published!
58
+ * Build internal links to your posts from within the WordPress post editor! Use "Instant Post Propulsion" technology to automatically link your old posts to new ones.
59
+
60
  * **Canonicalizer**
61
  * Point search engines to preferred content access points with `<link rel="canonical" />` SEO tags.
62
  * Go beyond the basic canonical tag functionality of WordPress 2.9+ with SEO Ultimate's support for category/tag/date/author archives.
96
  * Determine which of your webpages Google most strongly associates with the keywords you specify.
97
  * Use the information to determine ideal targets for incoming links or ideal sources of outgoing links.
98
 
 
 
 
 
 
 
 
 
 
 
99
  * **Code Inserter**
100
  * Easily insert custom HTML into your site's `<head>` tag, footer, or item content.
101
  * Use to add Google Analytics, Feedburner FeedFlare, Google AdSense section targeting, and other SEO/SEM-enhancing code snippets.
234
 
235
  == Changelog ==
236
 
237
+ = Version 6.0 (June 21, 2011) =
238
+ * Feature: Deeplink Juggernaut's "Destination Type" dropdowns have been replaced with snazzy autocomplete textboxes that let you link to a content item on your blog by typing the first few letters of its title
239
+ * Feature: Deeplink Juggernaut now lets you autolink to categories, tags, post format archives, and custom taxonomy term archives
240
+ * Improvement: The meta description field of the "SEO Settings" post box now indicates search engines use around 140 characters instead of 160, to better reflect current search engine trends
241
+ * Improvement: Improved layout of Meta Robot Tags mass-editors
242
+ * Bugfix: Deeplink Juggernaut's admin page no longer overruns memory limits on sites with lots of content
243
+ * Bugfix: Fixed errors that appeared on Deeplink Juggernaut's admin page when WP_DEBUG mode was enabled
244
+ * Bugfix: Fixed errors generated by Rich Snippet Creator when WP_DEBUG mode was enabled
245
+
246
  = Version 5.9 (June 17, 2011) =
247
  * Feature: Meta Description Editor now supports default formats for category/tag archives, starting with support for the `{description}` variable.
248
  * Feature: Meta Keywords Editor now has mass-editors for categories, tags, post format archives, and custom taxonomy term archives
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: 5.9
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 5.9
16
  * @link http://www.seodesignsolutions.com/wordpress-seo/ SEO Ultimate Homepage
17
  */
18
 
@@ -47,10 +47,10 @@ define('SU_MINIMUM_WP_VER', '3.0');
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', '5.9');
51
  define('SU_AUTHOR', 'SEO Design Solutions');
52
  define('SU_AUTHOR_URI', 'http://www.seodesignsolutions.com/');
53
- define('SU_USER_AGENT', 'SeoUltimate/5.9');
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.0
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.0
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.0');
51
  define('SU_AUTHOR', 'SEO Design Solutions');
52
  define('SU_AUTHOR_URI', 'http://www.seodesignsolutions.com/');
53
+ define('SU_USER_AGENT', 'SeoUltimate/6.0');
54
 
55
  /********** INCLUDES **********/
56
 
seo-ultimate.pot CHANGED
@@ -2,9 +2,9 @@
2
  # This file is distributed under the same license as the SEO Ultimate package.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: SEO Ultimate 5.8\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/seo-ultimate\n"
7
- "POT-Creation-Date: 2011-06-03 20:49:34+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
@@ -19,93 +19,93 @@ msgid ""
19
  "Ultimate to remove this notice."
20
  msgstr ""
21
 
22
- #. #-#-#-#-# plugin.pot (SEO Ultimate 5.8) #-#-#-#-#
23
  #. Plugin Name of the plugin/theme
24
- #: plugin/class.seo-ultimate.php:746 modules/settings/settings.php:14
25
  msgid "SEO Ultimate"
26
  msgstr ""
27
 
28
- #: plugin/class.seo-ultimate.php:746
29
  msgid "SEO"
30
  msgstr ""
31
 
32
- #: plugin/class.seo-ultimate.php:935
33
  msgid ""
34
  "It looks like you made changes to the settings of this SEO Ultimate module. "
35
  "If you leave before saving, those changes will be lost."
36
  msgstr ""
37
 
38
- #: plugin/class.seo-ultimate.php:1029
39
  msgid "SEO Settings Help"
40
  msgstr ""
41
 
42
- #: plugin/class.seo-ultimate.php:1031
43
  msgid "The SEO Settings box lets you customize these settings:"
44
  msgstr ""
45
 
46
- #: plugin/class.seo-ultimate.php:1033
47
  msgid "(The SEO Settings box is part of the SEO Ultimate plugin.)"
48
  msgstr ""
49
 
50
- #: plugin/class.seo-ultimate.php:1088
51
  msgid ""
52
  "SEO Ultimate includes the functionality of %1$s. You may want to deactivate %"
53
  "1$s to avoid plugin conflicts."
54
  msgstr ""
55
 
56
- #: plugin/class.seo-ultimate.php:1129
57
  msgid "new feature"
58
  msgstr ""
59
 
60
- #: plugin/class.seo-ultimate.php:1129
61
  msgid "new features"
62
  msgstr ""
63
 
64
- #: plugin/class.seo-ultimate.php:1130
65
  msgid "bugfix"
66
  msgstr ""
67
 
68
- #: plugin/class.seo-ultimate.php:1130
69
  msgid "bugfixes"
70
  msgstr ""
71
 
72
- #: plugin/class.seo-ultimate.php:1131
73
  msgid "improvement"
74
  msgstr ""
75
 
76
- #: plugin/class.seo-ultimate.php:1131
77
  msgid "improvements"
78
  msgstr ""
79
 
80
- #: plugin/class.seo-ultimate.php:1132
81
  msgid "security fix"
82
  msgstr ""
83
 
84
- #: plugin/class.seo-ultimate.php:1132
85
  msgid "security fixes"
86
  msgstr ""
87
 
88
- #: plugin/class.seo-ultimate.php:1163
89
  msgid "%d %s"
90
  msgstr ""
91
 
92
- #: plugin/class.seo-ultimate.php:1169
93
  msgid "Upgrade now to get %s. %s."
94
  msgstr ""
95
 
96
- #: plugin/class.seo-ultimate.php:1171
97
  msgid "View changelog"
98
  msgstr ""
99
 
100
- #: plugin/class.seo-ultimate.php:1238 modules/settings/uninstall.php:18
101
  msgid "Uninstall"
102
  msgstr ""
103
 
104
- #: plugin/class.seo-ultimate.php:1258
105
  msgid "Active Modules: "
106
  msgstr ""
107
 
108
- #: plugin/class.seo-ultimate.php:1319
109
  msgid ""
110
  "<strong>SEO Ultimate Notice:</strong> Your blog is configured to block "
111
  "search engine spiders. To resolve this, <a href=\"options-privacy.php\" "
@@ -113,7 +113,7 @@ msgid ""
113
  "to everyone."
114
  msgstr ""
115
 
116
- #: plugin/class.seo-ultimate.php:1429
117
  msgid "SEO Settings"
118
  msgstr ""
119
 
@@ -234,7 +234,7 @@ msgstr ""
234
  msgid "Post Format Archives"
235
  msgstr ""
236
 
237
- #: includes/jlwp/functions.php:147
238
  msgid "backup your database"
239
  msgstr ""
240
 
@@ -246,7 +246,7 @@ msgstr ""
246
  msgid "Log"
247
  msgstr ""
248
 
249
- #: modules/404s/fofs-log.php:116 modules/class.su-module.php:1197
250
  msgid "Actions"
251
  msgstr ""
252
 
@@ -404,7 +404,7 @@ msgstr ""
404
  msgid "Export"
405
  msgstr ""
406
 
407
- #: modules/settings/settings-data.php:23 modules/class.su-module.php:1944
408
  msgid "Reset"
409
  msgstr ""
410
 
@@ -433,25 +433,25 @@ msgid ""
433
  "The uploaded file is not in the proper format. Links could not be imported."
434
  msgstr ""
435
 
436
- #: modules/settings/settings-data.php:173
437
  msgid "Links successfully imported."
438
  msgstr ""
439
 
440
- #: modules/settings/settings-data.php:176
441
  msgid "The CSV file could not be uploaded successfully."
442
  msgstr ""
443
 
444
- #: modules/settings/settings-data.php:179
445
  msgid ""
446
  "Links could not be imported because no CSV file was selected. Please click "
447
  "the &#8220;Browse&#8221; button and select a file to import."
448
  msgstr ""
449
 
450
- #: modules/settings/settings-data.php:189
451
  msgid "Import SEO Ultimate Settings File"
452
  msgstr ""
453
 
454
- #: modules/settings/settings-data.php:191
455
  msgid ""
456
  "You can use this form to upload and import an SEO Ultimate settings file "
457
  "stored on your computer. (These files can be created using the Export tool.) "
@@ -459,21 +459,21 @@ msgid ""
459
  "in the file."
460
  msgstr ""
461
 
462
- #: modules/settings/settings-data.php:195
463
  msgid ""
464
  "Are you sure you want to import this settings file? This will overwrite your "
465
  "current settings and cannot be undone."
466
  msgstr ""
467
 
468
- #: modules/settings/settings-data.php:196
469
  msgid "Import Settings File"
470
  msgstr ""
471
 
472
- #: modules/settings/settings-data.php:202
473
  msgid "Import Deeplink Juggernaut CSV File"
474
  msgstr ""
475
 
476
- #: modules/settings/settings-data.php:204
477
  msgid ""
478
  "You can use this form to upload and import a Deeplink Juggernaut CSV file "
479
  "stored on your computer. (These files can be created using the Export tool.) "
@@ -481,38 +481,38 @@ msgid ""
481
  "the file."
482
  msgstr ""
483
 
484
- #: modules/settings/settings-data.php:208
485
  msgid ""
486
  "Are you sure you want to import this CSV file? This will overwrite your "
487
  "current Deeplink Juggernaut links and cannot be undone."
488
  msgstr ""
489
 
490
- #: modules/settings/settings-data.php:209
491
  msgid "Import CSV File"
492
  msgstr ""
493
 
494
- #: modules/settings/settings-data.php:224
495
  msgid "Import from Other Plugins"
496
  msgstr ""
497
 
498
- #: modules/settings/settings-data.php:226
499
  msgid ""
500
  "You can import settings and data from these plugins. Clicking a plugin&#8217;"
501
  "s name will take you to the importer page, where you can customize "
502
  "parameters and start the import."
503
  msgstr ""
504
 
505
- #: modules/settings/settings-data.php:246
506
  msgid "Export SEO Ultimate Settings File"
507
  msgstr ""
508
 
509
- #: modules/settings/settings-data.php:248
510
  msgid ""
511
  "You can use this export tool to download an SEO Ultimate settings file to "
512
  "your computer."
513
  msgstr ""
514
 
515
- #: modules/settings/settings-data.php:250
516
  msgid ""
517
  "A settings file includes the data of every checkbox and textbox of every "
518
  "installed module. It does NOT include site-specific data like logged 404s or "
@@ -520,15 +520,15 @@ msgid ""
520
  "database backup, however)."
521
  msgstr ""
522
 
523
- #: modules/settings/settings-data.php:253
524
  msgid "Download Settings File"
525
  msgstr ""
526
 
527
- #: modules/settings/settings-data.php:258
528
  msgid "Export Deeplink Juggernaut CSV File"
529
  msgstr ""
530
 
531
- #: modules/settings/settings-data.php:260
532
  msgid ""
533
  "You can use this export tool to download a CSV file (comma-separated values "
534
  "file) that contains your Deeplink Juggernaut links. Once you download this "
@@ -537,26 +537,26 @@ msgid ""
537
  "the Import tool."
538
  msgstr ""
539
 
540
- #: modules/settings/settings-data.php:263
541
  msgid "Download CSV File"
542
  msgstr ""
543
 
544
- #: modules/settings/settings-data.php:270
545
  msgid "All settings have been erased and defaults have been restored."
546
  msgstr ""
547
 
548
- #: modules/settings/settings-data.php:272
549
  msgid ""
550
  "You can erase all your SEO Ultimate settings and restore them to &#8220;"
551
  "factory defaults&#8221; by clicking the button below."
552
  msgstr ""
553
 
554
- #: modules/settings/settings-data.php:275
555
  msgid ""
556
  "Are you sure you want to erase all module settings? This cannot be undone."
557
  msgstr ""
558
 
559
- #: modules/settings/settings-data.php:276
560
  msgid "Restore Default Settings"
561
  msgstr ""
562
 
@@ -922,79 +922,62 @@ msgstr ""
922
  msgid "Content Links"
923
  msgstr ""
924
 
925
- #: modules/autolinks/content-autolinks.php:100
926
  msgid ""
927
  "The Content Links section of Deeplink Juggernaut lets you automatically link "
928
  "a certain word or phrase in your post/page content to a URL you specify."
929
  msgstr ""
930
 
931
- #: modules/autolinks/content-autolinks.php:136
932
  msgid "Edit Existing Links"
933
  msgstr ""
934
 
935
- #: modules/autolinks/content-autolinks.php:140
936
  msgid "Add a New Link"
937
  msgstr ""
938
 
939
- #: modules/autolinks/content-autolinks.php:148
940
  msgid "Anchor Text"
941
  msgstr ""
942
 
943
- #: modules/autolinks/content-autolinks.php:149
944
- msgid "Destination Type"
945
- msgstr ""
946
-
947
- #: modules/autolinks/content-autolinks.php:150
948
  msgid "Destination"
949
  msgstr ""
950
 
951
- #: modules/autolinks/content-autolinks.php:151
952
  msgid "Title Attribute"
953
  msgstr ""
954
 
955
- #: modules/autolinks/content-autolinks.php:152
956
  msgid "Options"
957
  msgstr ""
958
 
959
- #: modules/autolinks/content-autolinks.php:154
960
  msgid "Delete"
961
  msgstr ""
962
 
963
- #: modules/autolinks/content-autolinks.php:196
964
- msgid "Custom"
965
- msgstr ""
966
-
967
- #: modules/autolinks/content-autolinks.php:196
968
- #: modules/internal-link-aliases/internal-link-aliases.php:49
969
- msgid "URL"
970
- msgstr ""
971
-
972
- #: modules/autolinks/content-autolinks.php:197
973
- msgid "Content Items"
974
- msgstr ""
975
-
976
- #: modules/autolinks/content-autolinks.php:204 modules/noindex/noindex.php:54
977
  #: modules/noindex/noindex.php:78
978
  msgid "Nofollow"
979
  msgstr ""
980
 
981
- #: modules/autolinks/content-autolinks.php:205
982
  msgid "New window"
983
  msgstr ""
984
 
985
- #: modules/autolinks/content-autolinks.php:269
986
  msgid "Incoming Autolink Anchors:<br /><em>(one per line)</em>"
987
  msgstr ""
988
 
989
- #: modules/autolinks/content-autolinks.php:270
990
  msgid "Don&#8217;t add autolinks to anchor texts found in this post."
991
  msgstr ""
992
 
993
- #: modules/autolinks/content-autolinks.php:270
994
  msgid "Autolink Exclusion:"
995
  msgstr ""
996
 
997
- #: modules/autolinks/content-autolinks.php:275
998
  msgid ""
999
  "<strong>Incoming Autolink Anchors</strong> &mdash; When you enter anchors "
1000
  "into this box, Deeplink Juggernaut will search for that anchor in all your "
@@ -1009,6 +992,16 @@ msgstr ""
1009
  msgid "Deeplink Juggernaut"
1010
  msgstr ""
1011
 
 
 
 
 
 
 
 
 
 
 
1012
  #: modules/autolinks/content-autolinks-settings.php:16
1013
  msgid "Content Deeplink Juggernaut Settings"
1014
  msgstr ""
@@ -1126,69 +1119,81 @@ msgstr ""
1126
  msgid "Meta Robots Tag:"
1127
  msgstr ""
1128
 
1129
- #: modules/class.su-module.php:368
1130
  msgid ""
1131
  "(Note: This translated documentation was designed for an older version of "
1132
  "SEO Ultimate and may be outdated.)"
1133
  msgstr ""
1134
 
1135
- #: modules/class.su-module.php:641
1136
  msgid ""
1137
  "All the modules on this page have been disabled. You can re-enable them "
1138
  "using the <a href=\"%s\">Module Manager</a>."
1139
  msgstr ""
1140
 
1141
- #: modules/class.su-module.php:993
1142
  msgctxt "Dropdown Title"
1143
  msgid "%s &mdash; %s"
1144
  msgstr ""
1145
 
1146
- #: modules/class.su-module.php:1021
1147
  msgid "%1$s | %2$s %3$s by %4$s"
1148
  msgstr ""
1149
 
1150
- #: modules/class.su-module.php:1092
1151
  msgid "Your site currently doesn&#8217;t have any public items of this type."
1152
  msgstr ""
1153
 
1154
- #: modules/class.su-module.php:1176
1155
  msgid "&laquo;"
1156
  msgstr ""
1157
 
1158
- #: modules/class.su-module.php:1177
1159
  msgid "&raquo;"
1160
  msgstr ""
1161
 
1162
- #: modules/class.su-module.php:1184
1163
  msgid "Displaying %s&#8211;%s of %s"
1164
  msgstr ""
1165
 
1166
- #: modules/class.su-module.php:1198
1167
  msgid "ID"
1168
  msgstr ""
1169
 
1170
- #: modules/class.su-module.php:1232
1171
  msgid "View"
1172
  msgstr ""
1173
 
1174
- #: modules/class.su-module.php:1234
1175
  msgid "Edit"
1176
  msgstr ""
1177
 
1178
- #: modules/class.su-module.php:1397
1179
  msgid "Settings updated."
1180
  msgstr ""
1181
 
1182
- #: modules/class.su-module.php:1418
1183
  msgid "Save Changes"
1184
  msgstr ""
1185
 
1186
- #: modules/class.su-module.php:1928
1187
  msgid ""
1188
  "Are you sure you want to replace the textbox contents with this default "
1189
  "value?"
1190
  msgstr ""
1191
 
 
 
 
 
 
 
 
 
 
 
 
 
1192
  #: modules/meta/webmaster-verify.php:12
1193
  msgid "Webmaster Verification Assistant"
1194
  msgstr ""
@@ -1260,31 +1265,39 @@ msgstr ""
1260
  msgid "Meta Description"
1261
  msgstr ""
1262
 
1263
- #: modules/meta/meta-descriptions.php:46
1264
  msgid "Post Description Format"
1265
  msgstr ""
1266
 
1267
- #: modules/meta/meta-descriptions.php:53
 
 
 
 
 
 
 
 
1268
  msgid "Blog Homepage Meta Description"
1269
  msgstr ""
1270
 
1271
- #: modules/meta/meta-descriptions.php:55
1272
  msgid "Use this blog&#8217s tagline as the default homepage description."
1273
  msgstr ""
1274
 
1275
- #: modules/meta/meta-descriptions.php:56
1276
  msgid "Default Value"
1277
  msgstr ""
1278
 
1279
- #: modules/meta/meta-descriptions.php:109
1280
  msgid "Meta Description:"
1281
  msgstr ""
1282
 
1283
- #: modules/meta/meta-descriptions.php:112
1284
- msgid "You&#8217;ve entered %s characters. Most search engines use up to 160."
1285
  msgstr ""
1286
 
1287
- #: modules/meta/meta-descriptions.php:120
1288
  msgid ""
1289
  "<strong>Description</strong> &mdash; The value of the meta description tag. "
1290
  "The description will often appear underneath the title in search engine "
@@ -1448,7 +1461,7 @@ msgstr ""
1448
  msgid "SEO Design Solutions Whitepapers"
1449
  msgstr ""
1450
 
1451
- #. #-#-#-#-# plugin.pot (SEO Ultimate 5.8) #-#-#-#-#
1452
  #. Author of the plugin/theme
1453
  #: modules/sds-blog/sds-blog.php:49
1454
  msgid "SEO Design Solutions"
@@ -1473,6 +1486,10 @@ msgstr ""
1473
  msgid "Link Masks"
1474
  msgstr ""
1475
 
 
 
 
 
1476
  #: modules/internal-link-aliases/internal-link-aliases.php:49
1477
  msgid "Mask URL"
1478
  msgstr ""
@@ -1834,7 +1851,7 @@ msgid "RDFa"
1834
  msgstr ""
1835
 
1836
  #: modules/rich-snippets/rich-snippets.php:62
1837
- #: modules/rich-snippets/rich-snippets.php:218
1838
  msgid "Review"
1839
  msgstr ""
1840
 
@@ -1850,56 +1867,56 @@ msgstr ""
1850
  msgid "Date Reviewed"
1851
  msgstr ""
1852
 
1853
- #: modules/rich-snippets/rich-snippets.php:217
1854
- #: modules/rich-snippets/rich-snippets.php:223
1855
  msgid "None"
1856
  msgstr ""
1857
 
1858
- #: modules/rich-snippets/rich-snippets.php:219
1859
  msgid "Rich Snippet Type:"
1860
  msgstr ""
1861
 
1862
- #: modules/rich-snippets/rich-snippets.php:224
1863
  msgid "0.5 stars"
1864
  msgstr ""
1865
 
1866
- #: modules/rich-snippets/rich-snippets.php:225
1867
  msgid "1 star"
1868
  msgstr ""
1869
 
1870
- #: modules/rich-snippets/rich-snippets.php:226
1871
  msgid "1.5 stars"
1872
  msgstr ""
1873
 
1874
- #: modules/rich-snippets/rich-snippets.php:227
1875
  msgid "2 stars"
1876
  msgstr ""
1877
 
1878
- #: modules/rich-snippets/rich-snippets.php:228
1879
  msgid "2.5 stars"
1880
  msgstr ""
1881
 
1882
- #: modules/rich-snippets/rich-snippets.php:229
1883
  msgid "3 stars"
1884
  msgstr ""
1885
 
1886
- #: modules/rich-snippets/rich-snippets.php:230
1887
  msgid "3.5 stars"
1888
  msgstr ""
1889
 
1890
- #: modules/rich-snippets/rich-snippets.php:231
1891
  msgid "4 stars"
1892
  msgstr ""
1893
 
1894
- #: modules/rich-snippets/rich-snippets.php:232
1895
  msgid "4.5 stars"
1896
  msgstr ""
1897
 
1898
- #: modules/rich-snippets/rich-snippets.php:233
1899
  msgid "5 stars"
1900
  msgstr ""
1901
 
1902
- #: modules/rich-snippets/rich-snippets.php:234
1903
  msgid "Star Rating for Reviewed Item:"
1904
  msgstr ""
1905
 
2
  # This file is distributed under the same license as the SEO Ultimate package.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: SEO Ultimate 6.0\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/seo-ultimate\n"
7
+ "POT-Creation-Date: 2011-06-22 01:41:48+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
19
  "Ultimate to remove this notice."
20
  msgstr ""
21
 
22
+ #. #-#-#-#-# plugin.pot (SEO Ultimate 6.0) #-#-#-#-#
23
  #. Plugin Name of the plugin/theme
24
+ #: plugin/class.seo-ultimate.php:767 modules/settings/settings.php:14
25
  msgid "SEO Ultimate"
26
  msgstr ""
27
 
28
+ #: plugin/class.seo-ultimate.php:767
29
  msgid "SEO"
30
  msgstr ""
31
 
32
+ #: plugin/class.seo-ultimate.php:956
33
  msgid ""
34
  "It looks like you made changes to the settings of this SEO Ultimate module. "
35
  "If you leave before saving, those changes will be lost."
36
  msgstr ""
37
 
38
+ #: plugin/class.seo-ultimate.php:1050
39
  msgid "SEO Settings Help"
40
  msgstr ""
41
 
42
+ #: plugin/class.seo-ultimate.php:1052
43
  msgid "The SEO Settings box lets you customize these settings:"
44
  msgstr ""
45
 
46
+ #: plugin/class.seo-ultimate.php:1054
47
  msgid "(The SEO Settings box is part of the SEO Ultimate plugin.)"
48
  msgstr ""
49
 
50
+ #: plugin/class.seo-ultimate.php:1109
51
  msgid ""
52
  "SEO Ultimate includes the functionality of %1$s. You may want to deactivate %"
53
  "1$s to avoid plugin conflicts."
54
  msgstr ""
55
 
56
+ #: plugin/class.seo-ultimate.php:1150
57
  msgid "new feature"
58
  msgstr ""
59
 
60
+ #: plugin/class.seo-ultimate.php:1150
61
  msgid "new features"
62
  msgstr ""
63
 
64
+ #: plugin/class.seo-ultimate.php:1151
65
  msgid "bugfix"
66
  msgstr ""
67
 
68
+ #: plugin/class.seo-ultimate.php:1151
69
  msgid "bugfixes"
70
  msgstr ""
71
 
72
+ #: plugin/class.seo-ultimate.php:1152
73
  msgid "improvement"
74
  msgstr ""
75
 
76
+ #: plugin/class.seo-ultimate.php:1152
77
  msgid "improvements"
78
  msgstr ""
79
 
80
+ #: plugin/class.seo-ultimate.php:1153
81
  msgid "security fix"
82
  msgstr ""
83
 
84
+ #: plugin/class.seo-ultimate.php:1153
85
  msgid "security fixes"
86
  msgstr ""
87
 
88
+ #: plugin/class.seo-ultimate.php:1184
89
  msgid "%d %s"
90
  msgstr ""
91
 
92
+ #: plugin/class.seo-ultimate.php:1190
93
  msgid "Upgrade now to get %s. %s."
94
  msgstr ""
95
 
96
+ #: plugin/class.seo-ultimate.php:1192
97
  msgid "View changelog"
98
  msgstr ""
99
 
100
+ #: plugin/class.seo-ultimate.php:1259 modules/settings/uninstall.php:18
101
  msgid "Uninstall"
102
  msgstr ""
103
 
104
+ #: plugin/class.seo-ultimate.php:1279
105
  msgid "Active Modules: "
106
  msgstr ""
107
 
108
+ #: plugin/class.seo-ultimate.php:1340
109
  msgid ""
110
  "<strong>SEO Ultimate Notice:</strong> Your blog is configured to block "
111
  "search engine spiders. To resolve this, <a href=\"options-privacy.php\" "
113
  "to everyone."
114
  msgstr ""
115
 
116
+ #: plugin/class.seo-ultimate.php:1450
117
  msgid "SEO Settings"
118
  msgstr ""
119
 
234
  msgid "Post Format Archives"
235
  msgstr ""
236
 
237
+ #: includes/jlwp/functions.php:148
238
  msgid "backup your database"
239
  msgstr ""
240
 
246
  msgid "Log"
247
  msgstr ""
248
 
249
+ #: modules/404s/fofs-log.php:116 modules/class.su-module.php:1204
250
  msgid "Actions"
251
  msgstr ""
252
 
404
  msgid "Export"
405
  msgstr ""
406
 
407
+ #: modules/settings/settings-data.php:23 modules/class.su-module.php:1951
408
  msgid "Reset"
409
  msgstr ""
410
 
433
  "The uploaded file is not in the proper format. Links could not be imported."
434
  msgstr ""
435
 
436
+ #: modules/settings/settings-data.php:175
437
  msgid "Links successfully imported."
438
  msgstr ""
439
 
440
+ #: modules/settings/settings-data.php:178
441
  msgid "The CSV file could not be uploaded successfully."
442
  msgstr ""
443
 
444
+ #: modules/settings/settings-data.php:181
445
  msgid ""
446
  "Links could not be imported because no CSV file was selected. Please click "
447
  "the &#8220;Browse&#8221; button and select a file to import."
448
  msgstr ""
449
 
450
+ #: modules/settings/settings-data.php:191
451
  msgid "Import SEO Ultimate Settings File"
452
  msgstr ""
453
 
454
+ #: modules/settings/settings-data.php:193
455
  msgid ""
456
  "You can use this form to upload and import an SEO Ultimate settings file "
457
  "stored on your computer. (These files can be created using the Export tool.) "
459
  "in the file."
460
  msgstr ""
461
 
462
+ #: modules/settings/settings-data.php:197
463
  msgid ""
464
  "Are you sure you want to import this settings file? This will overwrite your "
465
  "current settings and cannot be undone."
466
  msgstr ""
467
 
468
+ #: modules/settings/settings-data.php:198
469
  msgid "Import Settings File"
470
  msgstr ""
471
 
472
+ #: modules/settings/settings-data.php:204
473
  msgid "Import Deeplink Juggernaut CSV File"
474
  msgstr ""
475
 
476
+ #: modules/settings/settings-data.php:206
477
  msgid ""
478
  "You can use this form to upload and import a Deeplink Juggernaut CSV file "
479
  "stored on your computer. (These files can be created using the Export tool.) "
481
  "the file."
482
  msgstr ""
483
 
484
+ #: modules/settings/settings-data.php:210
485
  msgid ""
486
  "Are you sure you want to import this CSV file? This will overwrite your "
487
  "current Deeplink Juggernaut links and cannot be undone."
488
  msgstr ""
489
 
490
+ #: modules/settings/settings-data.php:211
491
  msgid "Import CSV File"
492
  msgstr ""
493
 
494
+ #: modules/settings/settings-data.php:226
495
  msgid "Import from Other Plugins"
496
  msgstr ""
497
 
498
+ #: modules/settings/settings-data.php:228
499
  msgid ""
500
  "You can import settings and data from these plugins. Clicking a plugin&#8217;"
501
  "s name will take you to the importer page, where you can customize "
502
  "parameters and start the import."
503
  msgstr ""
504
 
505
+ #: modules/settings/settings-data.php:248
506
  msgid "Export SEO Ultimate Settings File"
507
  msgstr ""
508
 
509
+ #: modules/settings/settings-data.php:250
510
  msgid ""
511
  "You can use this export tool to download an SEO Ultimate settings file to "
512
  "your computer."
513
  msgstr ""
514
 
515
+ #: modules/settings/settings-data.php:252
516
  msgid ""
517
  "A settings file includes the data of every checkbox and textbox of every "
518
  "installed module. It does NOT include site-specific data like logged 404s or "
520
  "database backup, however)."
521
  msgstr ""
522
 
523
+ #: modules/settings/settings-data.php:255
524
  msgid "Download Settings File"
525
  msgstr ""
526
 
527
+ #: modules/settings/settings-data.php:260
528
  msgid "Export Deeplink Juggernaut CSV File"
529
  msgstr ""
530
 
531
+ #: modules/settings/settings-data.php:262
532
  msgid ""
533
  "You can use this export tool to download a CSV file (comma-separated values "
534
  "file) that contains your Deeplink Juggernaut links. Once you download this "
537
  "the Import tool."
538
  msgstr ""
539
 
540
+ #: modules/settings/settings-data.php:265
541
  msgid "Download CSV File"
542
  msgstr ""
543
 
544
+ #: modules/settings/settings-data.php:272
545
  msgid "All settings have been erased and defaults have been restored."
546
  msgstr ""
547
 
548
+ #: modules/settings/settings-data.php:274
549
  msgid ""
550
  "You can erase all your SEO Ultimate settings and restore them to &#8220;"
551
  "factory defaults&#8221; by clicking the button below."
552
  msgstr ""
553
 
554
+ #: modules/settings/settings-data.php:277
555
  msgid ""
556
  "Are you sure you want to erase all module settings? This cannot be undone."
557
  msgstr ""
558
 
559
+ #: modules/settings/settings-data.php:278
560
  msgid "Restore Default Settings"
561
  msgstr ""
562
 
922
  msgid "Content Links"
923
  msgstr ""
924
 
925
+ #: modules/autolinks/content-autolinks.php:143
926
  msgid ""
927
  "The Content Links section of Deeplink Juggernaut lets you automatically link "
928
  "a certain word or phrase in your post/page content to a URL you specify."
929
  msgstr ""
930
 
931
+ #: modules/autolinks/content-autolinks.php:191
932
  msgid "Edit Existing Links"
933
  msgstr ""
934
 
935
+ #: modules/autolinks/content-autolinks.php:195
936
  msgid "Add a New Link"
937
  msgstr ""
938
 
939
+ #: modules/autolinks/content-autolinks.php:203
940
  msgid "Anchor Text"
941
  msgstr ""
942
 
943
+ #: modules/autolinks/content-autolinks.php:204
 
 
 
 
944
  msgid "Destination"
945
  msgstr ""
946
 
947
+ #: modules/autolinks/content-autolinks.php:205
948
  msgid "Title Attribute"
949
  msgstr ""
950
 
951
+ #: modules/autolinks/content-autolinks.php:206
952
  msgid "Options"
953
  msgstr ""
954
 
955
+ #: modules/autolinks/content-autolinks.php:208
956
  msgid "Delete"
957
  msgstr ""
958
 
959
+ #: modules/autolinks/content-autolinks.php:229 modules/noindex/noindex.php:54
 
 
 
 
 
 
 
 
 
 
 
 
 
960
  #: modules/noindex/noindex.php:78
961
  msgid "Nofollow"
962
  msgstr ""
963
 
964
+ #: modules/autolinks/content-autolinks.php:230
965
  msgid "New window"
966
  msgstr ""
967
 
968
+ #: modules/autolinks/content-autolinks.php:294
969
  msgid "Incoming Autolink Anchors:<br /><em>(one per line)</em>"
970
  msgstr ""
971
 
972
+ #: modules/autolinks/content-autolinks.php:295
973
  msgid "Don&#8217;t add autolinks to anchor texts found in this post."
974
  msgstr ""
975
 
976
+ #: modules/autolinks/content-autolinks.php:295
977
  msgid "Autolink Exclusion:"
978
  msgstr ""
979
 
980
+ #: modules/autolinks/content-autolinks.php:300
981
  msgid ""
982
  "<strong>Incoming Autolink Anchors</strong> &mdash; When you enter anchors "
983
  "into this box, Deeplink Juggernaut will search for that anchor in all your "
992
  msgid "Deeplink Juggernaut"
993
  msgstr ""
994
 
995
+ #: modules/autolinks/autolinks.php:18
996
+ msgid ""
997
+ "Deeplink Juggernaut requires PHP 5.2 or above in SEO Ultimate 6.0 and later. "
998
+ "(Note that WordPress itself will soon require PHP 5.2 as well, starting with "
999
+ "WordPress 3.2.) If you aren&#8217;t sure how to upgrade PHP, please ask your "
1000
+ "webhost. In the meantime, you can return to an older version of Deeplink "
1001
+ "Juggernaut that supports your version of PHP by <a href=\"%s\">downgrading</"
1002
+ "a> to SEO Ultimate 5.9."
1003
+ msgstr ""
1004
+
1005
  #: modules/autolinks/content-autolinks-settings.php:16
1006
  msgid "Content Deeplink Juggernaut Settings"
1007
  msgstr ""
1119
  msgid "Meta Robots Tag:"
1120
  msgstr ""
1121
 
1122
+ #: modules/class.su-module.php:375
1123
  msgid ""
1124
  "(Note: This translated documentation was designed for an older version of "
1125
  "SEO Ultimate and may be outdated.)"
1126
  msgstr ""
1127
 
1128
+ #: modules/class.su-module.php:648
1129
  msgid ""
1130
  "All the modules on this page have been disabled. You can re-enable them "
1131
  "using the <a href=\"%s\">Module Manager</a>."
1132
  msgstr ""
1133
 
1134
+ #: modules/class.su-module.php:1000
1135
  msgctxt "Dropdown Title"
1136
  msgid "%s &mdash; %s"
1137
  msgstr ""
1138
 
1139
+ #: modules/class.su-module.php:1028
1140
  msgid "%1$s | %2$s %3$s by %4$s"
1141
  msgstr ""
1142
 
1143
+ #: modules/class.su-module.php:1099
1144
  msgid "Your site currently doesn&#8217;t have any public items of this type."
1145
  msgstr ""
1146
 
1147
+ #: modules/class.su-module.php:1183
1148
  msgid "&laquo;"
1149
  msgstr ""
1150
 
1151
+ #: modules/class.su-module.php:1184
1152
  msgid "&raquo;"
1153
  msgstr ""
1154
 
1155
+ #: modules/class.su-module.php:1191
1156
  msgid "Displaying %s&#8211;%s of %s"
1157
  msgstr ""
1158
 
1159
+ #: modules/class.su-module.php:1205
1160
  msgid "ID"
1161
  msgstr ""
1162
 
1163
+ #: modules/class.su-module.php:1239
1164
  msgid "View"
1165
  msgstr ""
1166
 
1167
+ #: modules/class.su-module.php:1241
1168
  msgid "Edit"
1169
  msgstr ""
1170
 
1171
+ #: modules/class.su-module.php:1404
1172
  msgid "Settings updated."
1173
  msgstr ""
1174
 
1175
+ #: modules/class.su-module.php:1425
1176
  msgid "Save Changes"
1177
  msgstr ""
1178
 
1179
+ #: modules/class.su-module.php:1935
1180
  msgid ""
1181
  "Are you sure you want to replace the textbox contents with this default "
1182
  "value?"
1183
  msgstr ""
1184
 
1185
+ #: modules/class.su-module.php:2557
1186
+ msgid "Type a URL or start typing the name of the item you want to link to"
1187
+ msgstr ""
1188
+
1189
+ #: modules/class.su-module.php:2569
1190
+ msgid "Remove this destination"
1191
+ msgstr ""
1192
+
1193
+ #: modules/class.su-module.php:2569
1194
+ msgid "X"
1195
+ msgstr ""
1196
+
1197
  #: modules/meta/webmaster-verify.php:12
1198
  msgid "Webmaster Verification Assistant"
1199
  msgstr ""
1265
  msgid "Meta Description"
1266
  msgstr ""
1267
 
1268
+ #: modules/meta/meta-descriptions.php:48
1269
  msgid "Post Description Format"
1270
  msgstr ""
1271
 
1272
+ #: modules/meta/meta-descriptions.php:49
1273
+ msgid "Category Description Format"
1274
+ msgstr ""
1275
+
1276
+ #: modules/meta/meta-descriptions.php:50
1277
+ msgid "Post Tag Description Format"
1278
+ msgstr ""
1279
+
1280
+ #: modules/meta/meta-descriptions.php:57
1281
  msgid "Blog Homepage Meta Description"
1282
  msgstr ""
1283
 
1284
+ #: modules/meta/meta-descriptions.php:59
1285
  msgid "Use this blog&#8217s tagline as the default homepage description."
1286
  msgstr ""
1287
 
1288
+ #: modules/meta/meta-descriptions.php:60
1289
  msgid "Default Value"
1290
  msgstr ""
1291
 
1292
+ #: modules/meta/meta-descriptions.php:122
1293
  msgid "Meta Description:"
1294
  msgstr ""
1295
 
1296
+ #: modules/meta/meta-descriptions.php:125
1297
+ msgid "You&#8217;ve entered %s characters. Most search engines use up to 140."
1298
  msgstr ""
1299
 
1300
+ #: modules/meta/meta-descriptions.php:133
1301
  msgid ""
1302
  "<strong>Description</strong> &mdash; The value of the meta description tag. "
1303
  "The description will often appear underneath the title in search engine "
1461
  msgid "SEO Design Solutions Whitepapers"
1462
  msgstr ""
1463
 
1464
+ #. #-#-#-#-# plugin.pot (SEO Ultimate 6.0) #-#-#-#-#
1465
  #. Author of the plugin/theme
1466
  #: modules/sds-blog/sds-blog.php:49
1467
  msgid "SEO Design Solutions"
1486
  msgid "Link Masks"
1487
  msgstr ""
1488
 
1489
+ #: modules/internal-link-aliases/internal-link-aliases.php:49
1490
+ msgid "URL"
1491
+ msgstr ""
1492
+
1493
  #: modules/internal-link-aliases/internal-link-aliases.php:49
1494
  msgid "Mask URL"
1495
  msgstr ""
1851
  msgstr ""
1852
 
1853
  #: modules/rich-snippets/rich-snippets.php:62
1854
+ #: modules/rich-snippets/rich-snippets.php:220
1855
  msgid "Review"
1856
  msgstr ""
1857
 
1867
  msgid "Date Reviewed"
1868
  msgstr ""
1869
 
1870
+ #: modules/rich-snippets/rich-snippets.php:219
1871
+ #: modules/rich-snippets/rich-snippets.php:225
1872
  msgid "None"
1873
  msgstr ""
1874
 
1875
+ #: modules/rich-snippets/rich-snippets.php:221
1876
  msgid "Rich Snippet Type:"
1877
  msgstr ""
1878
 
1879
+ #: modules/rich-snippets/rich-snippets.php:226
1880
  msgid "0.5 stars"
1881
  msgstr ""
1882
 
1883
+ #: modules/rich-snippets/rich-snippets.php:227
1884
  msgid "1 star"
1885
  msgstr ""
1886
 
1887
+ #: modules/rich-snippets/rich-snippets.php:228
1888
  msgid "1.5 stars"
1889
  msgstr ""
1890
 
1891
+ #: modules/rich-snippets/rich-snippets.php:229
1892
  msgid "2 stars"
1893
  msgstr ""
1894
 
1895
+ #: modules/rich-snippets/rich-snippets.php:230
1896
  msgid "2.5 stars"
1897
  msgstr ""
1898
 
1899
+ #: modules/rich-snippets/rich-snippets.php:231
1900
  msgid "3 stars"
1901
  msgstr ""
1902
 
1903
+ #: modules/rich-snippets/rich-snippets.php:232
1904
  msgid "3.5 stars"
1905
  msgstr ""
1906
 
1907
+ #: modules/rich-snippets/rich-snippets.php:233
1908
  msgid "4 stars"
1909
  msgstr ""
1910
 
1911
+ #: modules/rich-snippets/rich-snippets.php:234
1912
  msgid "4.5 stars"
1913
  msgstr ""
1914
 
1915
+ #: modules/rich-snippets/rich-snippets.php:235
1916
  msgid "5 stars"
1917
  msgstr ""
1918
 
1919
+ #: modules/rich-snippets/rich-snippets.php:236
1920
  msgid "Star Rating for Reviewed Item:"
1921
  msgstr ""
1922