All in One SEO Pack - Version 2.5

Version Description

Download this release

Release Info

Developer hallsofmontezuma
Plugin Icon 128x128 All in One SEO Pack
Version 2.5
Comparing to
See all releases

Code changes from version 2.4.6.1 to 2.5

admin/aioseop_module_class.php CHANGED
@@ -326,37 +326,18 @@ if ( ! class_exists( 'All_in_One_SEO_Pack_Module' ) ) {
326
  }
327
 
328
  /**
329
- * convert xml string to php array - useful to get a serializable value
330
  *
331
  * @param string $xmlstr
332
  *
333
  * @return array
334
- *
335
- * @author Adrien aka Gaarf & contributors
336
- * @see http://gaarf.info/2009/08/13/xml-string-to-php-array/
337
- */
338
- function html_string_to_array( $xmlstr ) {
339
- if ( ! class_exists( 'DOMDocument' ) ) {
340
- return array();
341
- } else {
342
- $doc = new DOMDocument();
343
- $doc->loadHTML( $xmlstr );
344
-
345
- return $this->domnode_to_array( $doc->documentElement );
346
- }
347
- }
348
-
349
- /**
350
- * @param $xmlstr
351
- *
352
- * @return array|string
353
  */
354
- function xml_string_to_array( $xmlstr ) {
355
  if ( ! class_exists( 'DOMDocument' ) ) {
356
  return array();
357
  } else {
358
  $doc = new DOMDocument();
359
- $doc->loadXML( $xmlstr );
360
 
361
  return $this->domnode_to_array( $doc->documentElement );
362
  }
@@ -444,9 +425,6 @@ if ( ! class_exists( 'All_in_One_SEO_Pack_Module' ) ) {
444
  $result = get_post_meta( $post->ID, $matches[1], true );
445
  }
446
  }
447
- if ( empty( $result ) ) {
448
- $result = $matches[0];
449
- }
450
  } else {
451
  $result = $matches[0];
452
  }
@@ -2256,8 +2234,9 @@ if ( ! class_exists( 'All_in_One_SEO_Pack_Module' ) ) {
2256
  $onload = '';
2257
  if ( ! empty( $options['count'] ) ) {
2258
  $n ++;
2259
- $attr .= " onKeyDown='if (typeof countChars == \"function\") countChars(document.{$this->form}.$name,document.{$this->form}.{$prefix}length$n)' onKeyUp='if (typeof countChars == \"function\") countChars(document.{$this->form}.$name,document.{$this->form}.{$prefix}length$n)'";
2260
- $onload = "if (typeof countChars == \"function\") countChars(document.{$this->form}.$name,document.{$this->form}.{$prefix}length$n);";
 
2261
  }
2262
  if ( isset( $opts['id'] ) ) {
2263
  $attr .= " id=\"{$opts['id']}\" ";
326
  }
327
 
328
  /**
329
+ * Convert html string to php array - useful to get a serializable value.
330
  *
331
  * @param string $xmlstr
332
  *
333
  * @return array
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
334
  */
335
+ function html_string_to_array( $htmlstr ) {
336
  if ( ! class_exists( 'DOMDocument' ) ) {
337
  return array();
338
  } else {
339
  $doc = new DOMDocument();
340
+ $doc->loadXML( $htmlstr );
341
 
342
  return $this->domnode_to_array( $doc->documentElement );
343
  }
425
  $result = get_post_meta( $post->ID, $matches[1], true );
426
  }
427
  }
 
 
 
428
  } else {
429
  $result = $matches[0];
430
  }
2234
  $onload = '';
2235
  if ( ! empty( $options['count'] ) ) {
2236
  $n ++;
2237
+ $classes = isset( $options['class'] ) ? $options['class'] : '';
2238
+ $classes .= ' aioseop_count_chars';
2239
+ $attr .= " class='{$classes}' data-length-field='{$prefix}length$n'";
2240
  }
2241
  if ( isset( $opts['id'] ) ) {
2242
  $attr .= " id=\"{$opts['id']}\" ";
aioseop_class.php CHANGED
@@ -1211,10 +1211,11 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
1211
  $title_format = str_replace( '%page_title%', $replace_title, $title_format );
1212
  }
1213
  if ( strpos( $title_format, '%current_date%' ) !== false ) {
1214
- $title_format = str_replace( '%current_date%', date_i18n( get_option( 'date_format' ) ), $title_format );
1215
  }
1216
- if ( strpos( $title_format, '%post_date%' ) !== false ) {
1217
- $title_format = str_replace( '%post_date%', get_the_date(), $title_format );
 
1218
  }
1219
  if ( strpos( $title_format, '%post_year%' ) !== false ) {
1220
  $title_format = str_replace( '%post_year%', get_the_date( 'Y' ), $title_format );
@@ -2082,11 +2083,12 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
2082
  if ( strpos( $new_title, "%{$type}_author_lastname%" ) !== false ) {
2083
  $new_title = str_replace( "%{$type}_author_lastname%", $this->ucwords( $authordata->last_name ), $new_title );
2084
  }
2085
- if ( strpos( $new_title, '%current_date%' ) !== false ) {
2086
- $new_title = str_replace( '%current_date%', date_i18n( get_option( 'date_format' ) ), $new_title );
 
2087
  }
2088
- if ( strpos( $new_title, '%post_date%' ) !== false ) {
2089
- $new_title = str_replace( '%post_date%', get_the_date(), $new_title );
2090
  }
2091
  if ( strpos( $new_title, '%post_year%' ) !== false ) {
2092
  $new_title = str_replace( '%post_year%', get_the_date( 'Y' ), $new_title );
@@ -2659,7 +2661,11 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
2659
  return false;
2660
  }
2661
  $link = '';
2662
- $haspost = count( $query->posts ) > 0;
 
 
 
 
2663
  if ( get_query_var( 'm' ) ) {
2664
  $m = preg_replace( '/[^0-9]/', '', get_query_var( 'm' ) );
2665
  switch ( $this->strlen( $m ) ) {
@@ -3793,8 +3799,9 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
3793
  global $aioseop_update_checker, $wp_query, $aioseop_options, $posts;
3794
  static $aioseop_dup_counter = 0;
3795
  $aioseop_dup_counter ++;
3796
- if ( $aioseop_dup_counter > 1 ) {
3797
- echo "\n<!-- " . sprintf( __( 'Debug Warning: All in One SEO Pack meta data was included again from %1$s filter. Called %2$s times!', 'all-in-one-seo-pack' ), current_filter(), $aioseop_dup_counter ) . " -->\n";
 
3798
  if ( ! empty( $old_wp_query ) ) {
3799
  // Change the query back after we've finished.
3800
  $GLOBALS['wp_query'] = $old_wp_query;
1211
  $title_format = str_replace( '%page_title%', $replace_title, $title_format );
1212
  }
1213
  if ( strpos( $title_format, '%current_date%' ) !== false ) {
1214
+ $title_format = str_replace( '%current_date%', aioseop_formatted_date(), $title_format );
1215
  }
1216
+
1217
+ if ( strpos( $title_format, "%post_date%" ) !== false ){
1218
+ $title_format = str_replace( '%post_date%', aioseop_formatted_date( get_the_time( 'U' ) ), $title_format );
1219
  }
1220
  if ( strpos( $title_format, '%post_year%' ) !== false ) {
1221
  $title_format = str_replace( '%post_year%', get_the_date( 'Y' ), $title_format );
2083
  if ( strpos( $new_title, "%{$type}_author_lastname%" ) !== false ) {
2084
  $new_title = str_replace( "%{$type}_author_lastname%", $this->ucwords( $authordata->last_name ), $new_title );
2085
  }
2086
+
2087
+ if ( strpos( $new_title, "%current_date%" ) !== false ){
2088
+ $new_title = str_replace( '%current_date%', aioseop_formatted_date(), $new_title );
2089
  }
2090
+ if ( strpos( $new_title, "%post_date%" ) !== false ){
2091
+ $new_title = str_replace( '%post_date%', aioseop_formatted_date( get_the_date( 'U' ) ), $new_title );
2092
  }
2093
  if ( strpos( $new_title, '%post_year%' ) !== false ) {
2094
  $new_title = str_replace( '%post_year%', get_the_date( 'Y' ), $new_title );
2661
  return false;
2662
  }
2663
  $link = '';
2664
+ $haspost = false;
2665
+ if ( ! empty( $query->posts ) ) {
2666
+ $haspost = count( $query->posts ) > 0;
2667
+ }
2668
+
2669
  if ( get_query_var( 'm' ) ) {
2670
  $m = preg_replace( '/[^0-9]/', '', get_query_var( 'm' ) );
2671
  switch ( $this->strlen( $m ) ) {
3799
  global $aioseop_update_checker, $wp_query, $aioseop_options, $posts;
3800
  static $aioseop_dup_counter = 0;
3801
  $aioseop_dup_counter ++;
3802
+
3803
+ if ( ! defined('AIOSEOP_UNIT_TESTING') && $aioseop_dup_counter > 1 ) {
3804
+ echo "\n<!-- " . sprintf( __( 'Debug Warning: All in One SEO Pack meta data was included again from %s filter. Called %s times!', 'all-in-one-seo-pack' ), current_filter(), $aioseop_dup_counter ) . " -->\n";
3805
  if ( ! empty( $old_wp_query ) ) {
3806
  // Change the query back after we've finished.
3807
  $GLOBALS['wp_query'] = $old_wp_query;
all_in_one_seo_pack.php CHANGED
@@ -4,7 +4,7 @@
4
  Plugin Name: All In One SEO Pack
5
  Plugin URI: https://semperplugins.com/all-in-one-seo-pack-pro-version/
6
  Description: Out-of-the-box SEO for your WordPress blog. Features like XML Sitemaps, SEO for custom post types, SEO for blogs or business sites, SEO for ecommerce sites, and much more. More than 30 million downloads since 2007.
7
- Version: 2.4.6.1
8
  Author: Michael Torbert
9
  Author URI: https://semperplugins.com/all-in-one-seo-pack-pro-version/
10
  Text Domain: all-in-one-seo-pack
@@ -32,14 +32,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
32
  * The original WordPress SEO plugin.
33
  *
34
  * @package All-in-One-SEO-Pack
35
- * @version 2.4.6.1
36
  */
37
 
38
  if ( ! defined( 'AIOSEOPPRO' ) ) {
39
  define( 'AIOSEOPPRO', false );
40
  }
41
  if ( ! defined( 'AIOSEOP_VERSION' ) ) {
42
- define( 'AIOSEOP_VERSION', '2.4.6.1' );
43
  }
44
  global $aioseop_plugin_name;
45
  $aioseop_plugin_name = 'All in One SEO Pack';
4
  Plugin Name: All In One SEO Pack
5
  Plugin URI: https://semperplugins.com/all-in-one-seo-pack-pro-version/
6
  Description: Out-of-the-box SEO for your WordPress blog. Features like XML Sitemaps, SEO for custom post types, SEO for blogs or business sites, SEO for ecommerce sites, and much more. More than 30 million downloads since 2007.
7
+ Version: 2.5
8
  Author: Michael Torbert
9
  Author URI: https://semperplugins.com/all-in-one-seo-pack-pro-version/
10
  Text Domain: all-in-one-seo-pack
32
  * The original WordPress SEO plugin.
33
  *
34
  * @package All-in-One-SEO-Pack
35
+ * @version 2.5
36
  */
37
 
38
  if ( ! defined( 'AIOSEOPPRO' ) ) {
39
  define( 'AIOSEOPPRO', false );
40
  }
41
  if ( ! defined( 'AIOSEOP_VERSION' ) ) {
42
+ define( 'AIOSEOP_VERSION', '2.5' );
43
  }
44
  global $aioseop_plugin_name;
45
  $aioseop_plugin_name = 'All in One SEO Pack';
css/modules/aioseop_module.css CHANGED
@@ -1,1405 +1,1419 @@
1
- /**
2
- * Controls all the styling of the plugin.
3
- *
4
- * @author Michael Torbert.
5
- * @author Semper Fi Web Design.
6
- * @copyright http://semperplugins.com
7
- * @package All-in-One-SEO-Pack.
8
- */
9
-
10
- .form-table.aioseop {
11
- clear: none;
12
- }
13
-
14
- .form-table.aioseop td {
15
- vertical-align: top;
16
- padding: 16px 0 10px 0;
17
- line-height: 20px;
18
- font-size: 12px;
19
- }
20
-
21
- .form-table.aioseop th {
22
- width: 200px;
23
- padding: 10px 0 12px 9px;
24
- }
25
-
26
- .aioseop_help_text_link,
27
- .aioseop_help_text_link:active {
28
- text-align: left;
29
- float: left;
30
- max-width: 300px;
31
- min-width: 1px;
32
- padding-top: 2px;
33
- outline: none;
34
- color: #888;
35
- font-family: sans-serif;
36
- }
37
-
38
- .aioseop_help_text_link span {
39
- font-size: 14px;
40
- }
41
-
42
- .aioseop_help_text_link:before {
43
- content: "\f223";
44
- font-size: 27px;
45
- font-family: dashicons;
46
- vertical-align: middle;
47
- }
48
-
49
- #aioseop-support .aioseop_metabox_text,
50
- #aioseop-support a {
51
- font-size: 14px;
52
- color: #000;
53
- text-decoration: none;
54
- }
55
-
56
- .aioseop_icon {
57
- display: inline-block;
58
- width: 40px;
59
- height: 40px;
60
- background-repeat: no-repeat;
61
- background-size: 100%;
62
- vertical-align: middle;
63
- margin: 10px;
64
- }
65
-
66
- .aioseop_book_icon {
67
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABABAMAAABYR2ztAAAAKlBMVEUAAAAAn+cAneEAnuABnuEBnuEAnuEAn+QAn+QAneAAnuEAneAAnuAAneFPI9ocAAAADnRSTlMAII/P/wCQMADwANDvnyPbz6kAAAB9SURBVHgB7c+xCQMgEIVhZwiSSRzhkRBImsA5gVUmuBGcJbUDxlhY6T2wvh/sPvBd+HdJWCSj0N8bsEEiIIOAyEBhIDGAcwA4cDBy4MDBTeuqCR5abXCvBHy+6ybQrs2R0jsH/As+srEzC55qggi81AIZ+waQxkBmQK5tD34LnXJVZf9y5gAAAABJRU5ErkJggg==);
68
- }
69
-
70
- .aioseop_cog_icon {
71
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAeFBMVEUAAAAAn+MAnOIAn+cAneIAneEAn+MAnuEAneIAnuAAnuAAneEAn+cAn+QAn98AnuEAn98AneAAneEAneAAnOIAnuAAnuEAnuAAneEAn+EAnuEAnuAAneEAneAAneAAn+QAnuEAnuABnuEAneAAn+EAnuIAnuMBnuHeY3dlAAAAJ3RSTlMAQFAAYIAAkADP3wAgMACgEACfrwC/X++PbwAAcODwALDAANAATz8hP00ZAAACHklEQVR4Xq3XbWObIBAHcPAJJRjJVmtso4vL2vv+33AzJO2J/LuE9PfGFyR4HHiAgCQxyRMiYEtGTL5BBGzJiVEviIAtFTH6FRGowdBC/QsQqKGhhebeIdTkqe+LwFbkqew2SGyDftDKz12Q2AXYlhgeA46AD/G5oyD9zJO0zIEhvXd91L0mSPcmnZlek0nPhHu4mKu2ov+q2rZzOWE5kBRBFjNRzDRFqD6X8oGiHK5fo+0oSmcv06goknLfQk3RzHkaWwIGlUhrZaIGAto5iQn6uyw+yAFOpSgUTDEHJqqZc5DR2rgqw8lIa7mbRkkMLOOBoWZlWYrynwzGzx1C/3cdlEcvf7sgL5MTq8rGz22QNwjDP+cGBYBDOC6qcnLTNqQCeRbuYdEU4In47YjL84RSwEk+Tq8qT7xvhMc5eXsj78Buga866O4dQrXs4OEk3jaNTWC1Cfc43nSa0MQ0fCFFLWXL9saWFjQMgFOfEUR+zsl1KWeRBaWr3e7c01q3Lmld+FfiSVFQ/2ehp6B8IzaorGvJ8q8Jl/ViIkDv396tfX/bawKm81J+eGtLH91cX+xIUUZ7XYmPHTBmA0U4feMh6zqVwzTe8ubQvmBoUJeDphoIGtT5tVaq0Ttopvyom4M4xqz8YGXhiCLAnIKhg8N2iA30cLzrxmJH/H4cASejrjzcFHXpwrcukwIiRQZv2QICtjQP352/9fYuC+Qv593CTVvcgwkAAAAASUVORK5CYII=);
72
- }
73
-
74
- .aioseop_file_icon {
75
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAPFBMVEUAAAAAneAAn98AneIAneEAnuAAn+QAnuAAnuAAnuEAn+MAnuEAneAAnuEAn+EAneEAnOIAnuEAnuABnuG5yOaaAAAAE3RSTlMA0BBgn88wv++gQLCvX2+PUJDAyp/15gAAALdJREFUeF7t1z2ygzAMhVFJjm0C5Ff732uaMCSWCVzTJO/paz1zRsVtTM/OUT+Wx5PQchJ1Q2O/CETdVk51IOjWugAeYLvUAEU6rAO4oLhQB2bSvh+NAAKU2AgYQGIEDHgXbjhQCFcYKIQuoUApZBQwQg8CRhhAwArSBlCagNAI0LTqAQCq3fcC+jOA7e8DDuhK/wDwHfgOfAe+A98B2BcC3Aaw+XiCBdp3AtOcNAgs9FoACZ7ufwCe6pfMGb29UwAAAABJRU5ErkJggg==);
76
- }
77
-
78
- .aioseop_help_icon {
79
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAflBMVEUAAAAAn98AnuIAn+EAneAAnuAAnuAAn+QAn+QAneEAnuAAnuAAn+EAnuAAnuEAneAAn+cAneAAnuAAn98AnOIAnuEAneIAn+MAnuEAnuEAn+EAneIAneEAneEAnuEAn+MAneAAneEAnuMAnOIAn+cAneEBnuEAneAAnuMBnuEoGewkAAAAKXRSTlMAEE9/r7/fADCPzwBv718AIPDAAFCwYEAAoAAAn4CQAOAAPwAAcADQAFP96WQAAAMNSURBVHhelZcNc5swDIatBghpoCGEj9Jij2XLMv3/P7glkoNtZJo+d+0lhBOveSXZUjHgZZOkGf4nS5PNC5wiKPFqvnvFgNddvpVQy0tQZCiSFfCEAtiUGKXcwFcB3kpcpXx791HetypFn2NdH9EnrX67KPdL46g/tl3PeqHvWidM2fxyUM7n3fzgof8R0A9zjN3PGTV/HB+6teg66EeIUQqQIGOiSQMGmeRgUQfGPn/Ktyv0k9UQKrCxWzitAq3V6dvYIDG8f8mAROO6ULF/3ecTaHazcvIgjTw/PxfFeVFErCHd31C3fx2v39cKGy6qLKyA1tGr/v8BLWDyb3OLqiw+XGCiq8DFxIvypMKIHqMXvaeLmmyEkn1xSTCAjWcMS7gruFD+eo/QuEC7AYCy+nJXkC1/r5A4Gq2NrQCvjMnL7OZCLggY3KoAI5jMEvKt2hohBYK3wiveuwx8i3qn/uvVf0O2Hh5MnLwOZMTrXgGt4OCi7RuyXNg1F1oDqEZIQh2K6oUALalSWqgiIwUIM4VVqZZvdlkE7QQFFLRVNS3l5NLZarMkgkx6ebWiNPqzSu9nEkM2KDZhjbykh+19KKri3+LkIxLhVlE/E4CaAjsd4AYo9zJkR9huGF7CtPYSX9FyXG4XFHe2UQIt9fIGa6NNJBErX2r35O0wp7KEbZYSNpVtMYngSpbZYoI1G9YClFzOp+vKS6jviLFJ+fWgDralfZO5peW2xX8LKB9NdTtxsQuc7/wV0OTv/YRyiUuIugCls7FwizffsXHgzcRurjEjYgH8zdVKyODZJUDGAuxZubNnt5BIgMQ7YNyowy2c0XfCqyNX6HzE2Ve8A28+nmDDHaJyD9sNChpkxvCYRxgkEjitAkl40AzPjxm7KdNnSAzLgaNFZhcVATtkBmliGaTJSJ6mBnnkMWgpx+XAMZZoMbGZqXEHm6Q4sxA4F4k7DEkjD1PVGJCmGFDLQ5elO+Iqx7B/q88A0FKI+DSlBLMuE4pMF3h6+DZXDLia6PAtA41u67uUqW51E02uf46zvXx+HY4YAAAAAElFTkSuQmCC);
80
- }
81
-
82
- .aioseop_support_icon {
83
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAe1BMVEUAAAAAn98AnuIAn+EAneAAnuAAnuABnuEAn98An+QAneEAnuAAn+QAn+EAnuAAnuEAneAAnuEAneIAn+MAn+cAn+cAnuEAnuEAnOIAneEAneEAnOIAnuAAneEAn+MAneAAneEAneIAnuEAnuIAneAAnuAAneABnuEAnuPdwDkgAAAAKXRSTlMAEE9/r7/f/wAwj88Ab+9f0JBgQCAAALBQcAAAAJ8AAIAAoADgwPAAP4Dl7rAAAALsSURBVHgBtdcBc6I6EAfwRCH/KjUSTCW2eHK8kHff/xM+Dg5NlsTTOu830xmc0BhJdtllKXy1znKBgciz9Yq/JbC3mM22AFFsN+8x7H2B7wSixI4/sAK+lkiSa/63CfbXfy9VddAfA32oVHmdYn8MsaNP55jUhpOFmRqTXH/4mP/BSExOnxEnTKT58jDveouZaCIEZltvWna7POPm8GPhgJtzbIIMnvq4UMOTXWZsvjgjoD8IjcCZrkAh1H4SLUIq3EYDQjSEBGH8XdASVPUzUIGS2jsHORbyJpC8gzWDChGaPsL4ItnwxyUiuuPqnBdAkW9X/3SIkPxPMLWIkZJcL7XTNnKJb5J8XMEJ33YaVyCQYJUZ0tjGKIsE8XsXNuNUFpStvFMQGR4Xvhlyoppi51AjUAcZhdPRIVzr8UCzYzEfS91afxOJDle2Hc9IBaBoGMdg/raq/3s49/NPm/6TGQDl5Up3DoCN5G9uAbjOO6AlAMPa8Zd4JI0kP55k41EAWlaT+w0Ae4mytyAenQDUrCcZsCMr8igydADQM0ECrydf4zEA+uZGAygYBv96ivF4RG3GffNgsJiAfr439v9MUN7/CeXFgwGzrz1Eu9hG9eQ2Rg+SaKJE5CB1y6Ps7h1ld/FMR9mEm6vPEoCIBZMAIM/e8xoTQRjO+5y8fT0ZJvlc5PwJ57fymlDWMloBLKoHsb4mlPLCLnNKyxDIwpRGR72UtsEgUhoKrx7bR4Z3c1J9Tyft7ep3Wl9t04l/rFBefrFwh29y/N7L1TlynXy5JpbQHY3qS6Dslfnq4guYa+UXC4xBj4W+CSTvYFMEuOeLLKf9Ytssd5hw6TJv9FKhOeqeK3W7ZcNRP1Nsd7GOpXu83O/iLY8ij5CwmKlUz2TcIy2PIy2PT/eYZLRV5fsMk542XaHK3VrV/a+p7fu1uzWyjiZs9pPgrUOSa6ONJ8FPFlH2xB9uvlUJolTJ5juOm7buLQa2r1uvkSX+A/xd+1xZLxG0AAAAAElFTkSuQmCC);
84
- }
85
-
86
- .aioseop_youtube_icon {
87
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAARVBMVEUAAAAAn+cAn+EAneAAnuABnuEAn+cAn98AneEAn98AnOIAnuAAnOIAneIAneIAnuEAnuEAneEAnuEBnuEAn+QAneAAneCXjc90AAAAF3RSTlMAIG+vz/8AEJ8AUO8AYACgAHCwADDw0E/SOHoAAAEBSURBVHgB7dbBjsIgGATgH+UvCAso3fL+j7rDYZMerGGZQ5NNv8TrREZLRy47F3O7Wx1m7zezAMjSOa9/5t2jkweEqBNi+ALBJ+mklHOWnINOC/0buKjTokMHRQnlKUYpRl5HBQ32KFXfW783HVDFHgWsrg0EWNEDK4z0+yEAEhuAIsgAFMEFQOECILEBKIIMQBFcABQuABIbgCLIABTBBUBhAzx5BEuWGM/9GT35V7bkwxTPfZw9eaVZ8lKN517rI8NHmr43cPyufXi5Rh1Q+dc7PTAWduI83abTNteHJjvz6KEJYeoU2+/UBVcm+tuNbTCv2nRYq2k/9ylXwL8I+AGj+lzlceKDYQAAAABJRU5ErkJggg==);
88
- }
89
-
90
- .aioseop_meta_box_help > label {
91
- position: absolute;
92
- margin-left: 8px;
93
- }
94
-
95
- div.aioseop_tip_icon {
96
- font-size: 14px;
97
- border: 1px solid #888;
98
- width: 1em;
99
- text-align: center;
100
- padding: 0 4px;
101
- -webkit-border-radius: 12px;
102
- -moz-border-radius: 12px;
103
- -webkit-box-shadow: 1px 1px 1px #888;
104
- -moz-box-shadow: 1px 1px 1px #888;
105
- box-shadow: 1px 1px 1px #888;
106
- border-radius: 12px;
107
- }
108
-
109
- div.aioseop_tip_icon:before {
110
- content: '?';
111
- }
112
-
113
- .aioseop_help_text_link img {
114
- width: 40px;
115
- float: left;
116
- }
117
-
118
- .aioseop_meta_box_help,
119
- .aioseop_meta_box_help:active {
120
- float: right;
121
- padding-left: 0;
122
- width: 16px;
123
- margin-right: 32px;
124
- text-decoration: none;
125
- height: 15px;
126
- padding-top: 1px;
127
- position: relative;
128
- }
129
-
130
- .aioseop_tabs .aioseop_meta_box_help,
131
- .aioseop_tabs .aioseop_meta_box_help:active {
132
- margin-top: 4px;
133
- margin-right: 45px;
134
- }
135
-
136
- .aioseop_label {
137
- color: #5F5F5F;
138
- font-weight: bold;
139
- line-height: 19px;
140
- display: inline-block;
141
- text-align: left;
142
- position: absolute;
143
- font-family: 'Open Sans', sans-serif;
144
- width: 26%;
145
- min-width: 120px;
146
- max-width: 230px;
147
- }
148
-
149
- .aioseop_option_div {
150
- max-height: 360px;
151
- min-height: 37px;
152
- width: 95%;
153
- overflow-y: auto;
154
- }
155
-
156
- .aioseop_overflowed {
157
- border: 1px solid #e1e1e1;
158
- }
159
-
160
- .aioseop input[type="text"] {
161
- color: #515151;
162
- height: 35px;
163
- padding: 10px 0 10px 10px;
164
- font-size: 14px;
165
- width: 95%;
166
- max-width: 600px;
167
- }
168
-
169
- .aioseop textarea {
170
- color: #515151;
171
- padding: 10px 0 0 10px;
172
- margin: 0;
173
- font-size: 14px;
174
- line-height: 25px;
175
- width: 95%;
176
- max-width: 600px;
177
- }
178
-
179
- .aioseop_help_text_div {
180
- text-align: left;
181
- width: 100%;
182
- margin: 0;
183
- }
184
-
185
- .aioseop_help_text {
186
- font-size: 12px;
187
- float: left;
188
- clear: left;
189
- color: #797979;
190
- line-height: 15px;
191
- font-style: italic;
192
- }
193
-
194
- .aioseop_head_tagline {
195
- color: #5F5F5F;
196
- font-size: 13px;
197
- }
198
-
199
- .aioseop_head_nav {
200
- float: left;
201
- font-size: 18px;
202
- margin: 0 0 16px 0;
203
- font-family: "HelveticaNeue-Light",
204
- "Helvetica Neue Light",
205
- "Helvetica Neue",
206
- sans-serif;
207
- border-bottom: 1px solid #CCC;
208
- width: 100%;
209
- }
210
-
211
- .aioseop_head_nav_tab {
212
- padding: 10px 15px 10px 15px;
213
- margin: 0 0 0 15px;
214
- border-radius: 4px 4px 0 0;
215
- border: 1px solid #CCC;
216
- border-bottom: 0 white;
217
- float: left;
218
- opacity: 0.5;
219
- color: black;
220
- text-shadow: white 0 1px 0;
221
- text-decoration: none;
222
- }
223
-
224
- .aioseop_head_nav_tab.aioseop_head_nav_active {
225
- opacity: 1;
226
- margin-bottom: -1px;
227
- border-width: 1px;
228
- }
229
-
230
- .aioseop_head_nav_tab:first-child {
231
- margin-left: 0;
232
- }
233
-
234
- .aioseop_head_nav_tab:hover {
235
- opacity: 1;
236
- }
237
-
238
- .aioseop_header {
239
- float: left;
240
- clear: left;
241
- }
242
-
243
- .aioseop_advert {
244
- padding: 10px;
245
- margin-bottom: 30px;
246
- border: 1px solid #DDD;
247
- height: 200px;
248
- width: 423px;
249
- }
250
-
251
- .aioseop_nopad {
252
- padding-left: 0;
253
- padding-top: 0;
254
- }
255
-
256
- .aioseop_nopad_all {
257
- padding: 0;
258
- height: 220px;
259
- width: 445px;
260
- margin-bottom: 20px;
261
- border: none;
262
- }
263
-
264
- .aioseop_adverts {
265
- float: right;
266
- }
267
-
268
- .wincherad {
269
- width: 100%;
270
- height: 100%;
271
- background-size: 100%;
272
- background-repeat: no-repeat;
273
- margin-bottom: 0;
274
- border: none;
275
- }
276
-
277
- #wincher21 {
278
- background-image: url(../../modules/images/banner21.jpg);
279
- }
280
-
281
- #wincher22 {
282
- background-image: url(../../modules/images/banner22.jpg);
283
- }
284
-
285
- .aioseop_content {
286
- min-width: 760px;
287
- clear: left;
288
- }
289
-
290
- .aioseop_options_wrapper .hndle {
291
- font-size: 15px;
292
- font-family: Georgia,
293
- "Times New Roman",
294
- "Bitstream Charter",
295
- Times,
296
- serif;
297
- font-weight: normal;
298
- padding: 7px 10px;
299
- margin: 0;
300
- line-height: 1;
301
- }
302
-
303
- .aioseop_options_wrapper .submit input.button-primary {
304
- margin-bottom: 5px;
305
- }
306
-
307
- #aiosp_feature_manager_metabox.postbox {
308
- margin-top: 20px;
309
- float: left;
310
- }
311
-
312
- .aioseop_advert p {
313
- margin: 25px 0 25px 0;
314
- }
315
-
316
- .aioseop_options_wrapper .postarea {
317
- border-color: #DFDFDF;
318
- -moz-box-shadow: inset 0 1px 0 #fff;
319
- -webkit-box-shadow: inset 0 1px 0 #fff;
320
- box-shadow: inset 0 1px 0 #fff;
321
- -moz-border-radius: 3px;
322
- -webkit-border-radius: 3px;
323
- border-radius: 3px;
324
- }
325
-
326
- .aioseop_advert h3 {
327
- padding: 0;
328
- margin-top: 6px;
329
- }
330
-
331
- .aioseop_metabox_text p {
332
- margin: 0 0 0 0;
333
- width: 101%;
334
- }
335
-
336
- .aioseop_sidebar {
337
- width: 457px;
338
- margin-left: 10px;
339
- }
340
-
341
- .aioseop_metabox_text {
342
- margin-bottom: 0;
343
- }
344
-
345
- .aioseop_metabox_wrapper {
346
- padding: 0;
347
- }
348
-
349
- .aioseop_metabox_text *:last-child {
350
- margin: 0;
351
- }
352
-
353
- .aioseop_metabox_feature {
354
- margin-top: 20px;
355
- }
356
-
357
- .aioseop_translations {
358
- margin-top: 15px;
359
- }
360
-
361
- .aioseop_option_label {
362
- float: left;
363
- margin: 0;
364
- min-width: 150px;
365
- width: 37%;
366
- max-width: 270px;
367
- padding-top: 3px;
368
- padding-bottom: 3px;
369
- height: 67px !important; /*added for certain language support*/
370
- }
371
-
372
- .aioseop_metabox_text h2 {
373
- font-size: 14px;
374
- padding: 0;
375
- font-weight: bold;
376
- line-height: 29px;
377
- }
378
-
379
- #aioseop-about {
380
- width: 443px;
381
- margin-bottom: 20px;
382
- }
383
-
384
- #aioseop-about .aioseop_metabox_text #mc-embedded-subscribe-form h2 {
385
- font-size: 13px;
386
- }
387
-
388
- .aioseop_sidebar #mc-embedded-subscribe-form {
389
- margin: 0 0 10px 0;
390
- background: white;
391
- padding: 10px 10px;
392
- border: 1px solid #DDD;
393
- }
394
-
395
- #aioseop-about .aioseop_metabox_text ul {
396
- list-style-type: disc;
397
- padding-left: 15px;
398
- }
399
-
400
- .aioseop input[readonly] {
401
- background-color: #EEE;
402
- margin: 5px 0 5px 0 !important;
403
- }
404
-
405
- .aioseop_settings_left {
406
- float: left;
407
- padding: 0;
408
- margin: 0;
409
- width: 100%;
410
- }
411
-
412
- body.all-in-one-seo_page_all-in-one-seo-pack-aioseop_feature_manager .aioseop_settings_left {
413
- margin-top: 20px;
414
- }
415
-
416
- body.all-in-one-seo_page_all-in-one-seo-pack-pro-aioseop_feature_manager .aioseop_settings_left {
417
- margin-top: 20px;
418
- }
419
-
420
- #aioseop_top_button {
421
- margin-top: 5px;
422
- height: 30px;
423
- }
424
-
425
- #aioseop-list #mce-EMAIL {
426
- margin-top: 5px;
427
- width: 250px;
428
- }
429
-
430
- .aioseop_top {
431
- margin: 10px 10px 0 0;
432
- /* margin: 10px 477px 0px 0px; */
433
- }
434
-
435
- .aioseop_top #aioseop-list {
436
- margin-bottom: 0;
437
- }
438
-
439
- .aioseop_top #aioseop-list.postbox.closed {
440
- overflow: hidden;
441
- }
442
-
443
- .aioseop_right_sidebar {
444
- float: right;
445
- margin-top: 35px;
446
- }
447
-
448
- #aiosp_settings_form .button-primary.hidden {
449
- display: none;
450
- }
451
-
452
- form#edittag div#aiosp_titleatr_wrapper,
453
- form#edittag div#aiosp_menulabel_wrapper,
454
- form#edittag div#aiosp_sitemap_exclude_wrapper {
455
- display: none;
456
- }
457
-
458
- .All_in_One_SEO_Pack_Feature_Manager > #aiosp_settings_form > #aioseop_top_button {
459
- height: 5px;
460
- position: absolute;
461
- top: 0;
462
- width: 97%;
463
- }
464
-
465
- .All_in_One_SEO_Pack_Feature_Manager > #aiosp_settings_form > .aioseop_settings_left {
466
- margin-top: 10px;
467
- }
468
-
469
- .All_in_One_SEO_Pack_Feature_Manager > .aioseop_right_sidebar.aioseop_options_wrapper {
470
- margin-top: 10px;
471
- }
472
-
473
- div#aiosp_feature_manager_metabox .inside {
474
- padding: 8px;
475
- }
476
-
477
- div.aioseop_feature {
478
- position: relative;
479
- display: inline-block;
480
- float: left;
481
- vertical-align: top;
482
- width: 240px;
483
- height: 288px;
484
- margin: 8px;
485
- border: 1px solid #DEDEDE;
486
- -moz-border-radius: 3px;
487
- -webkit-border-radius: 3px;
488
- border-radius: 3px;
489
- background: white;
490
- padding: 10px 0 0;
491
- -webkit-box-shadow: inset 0 1px 0 #fff,
492
- inset 0 0 20px rgba(0, 0, 0, 0.05),
493
- 0 1px 2px rgba(0, 0, 0, 0.1);
494
- -moz-box-shadow: inset 0 1px 0 #fff,
495
- inset 0 0 20px rgba(0, 0, 0, 0.05),
496
- 0 1px 2px rgba(0, 0, 0, 0.1);
497
- box-shadow: inset 0 1px 0 #fff,
498
- inset 0 0 20px rgba(0, 0, 0, 0.05),
499
- 0 1px 2px rgba(0, 0, 0, 0.1);
500
- -webkit-transition-duration: .4s;
501
- -moz-transition-duration: .4s;
502
- }
503
-
504
- .aioseop_feature .flag {
505
- float: right;
506
- margin-right: -7px;
507
- background: none repeat scroll 0 0 #D23D46;
508
- color: #FFFFFF;
509
- padding: 5px 12px 6px 5px;
510
- position: relative;
511
- }
512
-
513
- .aioseop_feature .flag:before {
514
- border-color: #D23D46 #D23D46 #D23D46 transparent;
515
- border-style: solid;
516
- border-width: 14px 4px 15px 10px;
517
- content: "";
518
- left: -14px;
519
- position: absolute;
520
- top: 0;
521
- }
522
-
523
- .aioseop_feature .flag:after {
524
- border-color: #892026 transparent transparent;
525
- border-style: solid;
526
- border-width: 6px 6px 6px 0;
527
- bottom: -12px;
528
- content: "";
529
- position: absolute;
530
- right: 0;
531
- }
532
-
533
- .aioseop_feature .flag.pro {
534
- display: none;
535
- }
536
-
537
- #aioseop_coming_soon .free.flag,
538
- .all-in-one-seo_page_all-in-one-seo-pack-pro-modules-aioseop_feature_manager .aioseop_feature .free.flag {
539
- display: none;
540
- }
541
-
542
- #aioseop_coming_soon .flag.pro {
543
- display: block;
544
- margin-top: -30px;
545
- }
546
-
547
- .all-in-one-seo_page_all-in-one-seo-pack-pro-modules-aioseop_feature_manager #aioseop_coming_soon .flag.pro {
548
- display: none;
549
- }
550
-
551
- .aioseop_feature h3 {
552
- font-size: 17px;
553
- margin: 0;
554
- padding: 0 10px 5px 10px;
555
- font-weight: normal;
556
- font-style: normal;
557
- font-family: "Helvetica Neue",
558
- Helvetica,
559
- Arial,
560
- "Lucida Grande",
561
- Verdana,
562
- "Bitstream Vera Sans",
563
- sans-serif;
564
- }
565
-
566
- .aioseop_feature p {
567
- line-height: 150%;
568
- font-size: 12px;
569
- font-family: Georgia,
570
- "Times New Roman",
571
- "Bitstream Charter",
572
- Times, serif;
573
- margin-bottom: 20px;
574
- color: #666;
575
- padding: 0 10px;
576
- }
577
-
578
- .aioseop_feature p.aioseop_desc {
579
- min-height: 80px;
580
- }
581
-
582
- .aioseop_feature .feature_button {
583
- float: right;
584
- margin-bottom: 10px;
585
- margin-right: 10px;
586
- min-width: 80px;
587
- text-align: center;
588
- }
589
-
590
- .aioseop_feature .feature_button:before {
591
- content: "Activate";
592
- }
593
-
594
- .aioseop_feature .active.feature_button:before {
595
- content: "Deactivate";
596
- }
597
-
598
- div.aioseop_feature .aioseop_featured_image {
599
- min-height: 100px;
600
- background-repeat: no-repeat;
601
- display: block;
602
- margin: 0 auto;
603
- width: 133px;
604
- }
605
-
606
- div.aioseop_feature .aioseop_featured_image {
607
- background-image: url(../../modules/images/Default-BW-Standard.png);
608
- }
609
-
610
- div.aioseop_feature .aioseop_featured_image.active {
611
- background-image: url(../../modules/images/Default-Color-Standard.png);
612
- }
613
-
614
- div.aioseop_feature#aioseop_sitemap .aioseop_featured_image {
615
- background-image: url(../../modules/images/XMLSitemaps-BW-Standard.png);
616
- }
617
-
618
- div.aioseop_feature#aioseop_sitemap .aioseop_featured_image.active {
619
- background-image: url(../../modules/images/XMLSitemaps-Color-Standard.png);
620
- }
621
-
622
- div.aioseop_feature#aioseop_video_sitemap .aioseop_featured_image {
623
- background-image: url(../../modules/images/VideoSitemap-BW-Standard.png);
624
- }
625
-
626
- div.aioseop_feature#aioseop_video_sitemap .aioseop_featured_image.active {
627
- background-image: url(../../modules/images/VideoSitemap-Color-Standard.png);
628
- }
629
-
630
- div.aioseop_feature#aioseop_opengraph .aioseop_featured_image {
631
- background-image: url(../../modules/images/SocialMeta-BW-Standard.png);
632
- }
633
-
634
- div.aioseop_feature#aioseop_opengraph .aioseop_featured_image.active {
635
- background-image: url(../../modules/images/SocialMeta-Color-Standard.png);
636
- }
637
-
638
- div.aioseop_feature#aioseop_robots .aioseop_featured_image, div.aioseop_feature#aioseop_bad_robots .aioseop_featured_image {
639
- background-image: url(../../modules/images/Robots-BW-Standard.png);
640
- }
641
-
642
- div.aioseop_feature#aioseop_robots .aioseop_featured_image.active, div.aioseop_feature#aioseop_bad_robots .aioseop_featured_image.active {
643
- background-image: url(../../modules/images/Robots-Color-Standard.png);
644
- }
645
-
646
- div.aioseop_feature#aioseop_file_editor .aioseop_featured_image {
647
- background-image: url(../../modules/images/FileEditor-BW-Standard.png);
648
- }
649
-
650
- div.aioseop_feature#aioseop_file_editor .aioseop_featured_image.active {
651
- background-image: url(../../modules/images/FileEditor-Color-Standard.png);
652
- }
653
-
654
- div.aioseop_feature#aioseop_importer_exporter .aioseop_featured_image {
655
- background-image: url(../../modules/images/ImporterExporter-BW-Standard.png);
656
- }
657
-
658
- div.aioseop_feature#aioseop_importer_exporter .aioseop_featured_image.active {
659
- background-image: url(../../modules/images/ImporterExporter-Color-Standard.png);
660
- }
661
-
662
- div.aioseop_feature#aioseop_performance .aioseop_featured_image {
663
- background-image: url(../../modules/images/Performance-BW-Standard.png);
664
- }
665
-
666
- div.aioseop_feature#aioseop_performance .aioseop_featured_image.active {
667
- background-image: url(../../modules/images/Performance-Color-Standard.png);
668
- }
669
-
670
- div.aioseop_feature#aioseop_coming_soon .aioseop_featured_image {
671
- background-image: url(../../modules/images/Default-Color-Standard.png);
672
- }
673
-
674
- div.aioseop_feature#aioseop_coming_soon2 .aioseop_featured_image {
675
- background-image: url(../../modules/images/Default-Color-Standard.png);
676
- }
677
-
678
- .All_in_One_SEO_Pack_Sitemap > form > .wrap > .form-table,
679
- .All_in_One_SEO_Pack_Video_Sitemap > form > .wrap > .form-table {
680
- max-width: 500px;
681
- clear: none;
682
- }
683
-
684
- .aioseop_follow_button {
685
- min-height: 50px;
686
- background-repeat: no-repeat;
687
- display: inline-block;
688
- width: 100px;
689
- background-size: auto 50px !important;
690
- margin-right: 0;
691
- }
692
-
693
- .aioseop_facebook_follow {
694
- background-image: url(../../modules/images/facebook-follow-standard.png);
695
- }
696
-
697
- .aioseop_twitter_follow {
698
- background-image: url(../../modules/images/twitter-follow-standard.png);
699
- }
700
-
701
- @media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and ( min--moz-device-pixel-ratio: 1.5), only screen and ( -o-min-device-pixel-ratio: 3/2), only screen and ( min-device-pixel-ratio: 1.5), only screen and ( min-resolution: 1.5dppx) {
702
- div.aioseop_feature .aioseop_featured_image {
703
- background-size: auto 100px !important;
704
- }
705
-
706
- div.aioseop_feature .aioseop_featured_image.active {
707
- background-image: url(../../modules/images/Default-Color-Retina.png);
708
- }
709
-
710
- div.aioseop_feature .aioseop_featured_image {
711
- background-image: url(../../modules/images/Default-BW-Retina.png);
712
- }
713
-
714
- div.aioseop_feature#aioseop_sitemap .aioseop_featured_image {
715
- background-image: url(../../modules/images/XMLSitemaps-BW-Retina.png);
716
- }
717
-
718
- div.aioseop_feature#aioseop_sitemap .aioseop_featured_image.active {
719
- background-image: url(../../modules/images/XMLSitemaps-Color-Retina.png);
720
- }
721
-
722
- div.aioseop_feature#aioseop_video_sitemap .aioseop_featured_image {
723
- background-image: url(../../modules/images/VideoSitemap-BW-Retina.png);
724
- }
725
-
726
- div.aioseop_feature#aioseop_video_sitemap .aioseop_featured_image.active {
727
- background-image: url(../../modules/images/VideoSitemap-Color-Retina.png);
728
- }
729
-
730
- div.aioseop_feature#aioseop_opengraph .aioseop_featured_image {
731
- background-image: url(../../modules/images/SocialMeta-BW-Retina.png);
732
- }
733
-
734
- div.aioseop_feature#aioseop_opengraph .aioseop_featured_image.active {
735
- background-image: url(../../modules/images/SocialMeta-Color-Retina.png);
736
- }
737
-
738
- div.aioseop_feature#aioseop_robots .aioseop_featured_image, div.aioseop_feature#aioseop_bad_robots .aioseop_featured_image {
739
- background-image: url(../../modules/images/Robots-BW-Retina.png);
740
- }
741
-
742
- div.aioseop_feature#aioseop_robots .aioseop_featured_image.active, div.aioseop_feature#aioseop_bad_robots .aioseop_featured_image.active {
743
- background-image: url(../../modules/images/Robots-Color-Retina.png);
744
- }
745
-
746
- div.aioseop_feature#aioseop_file_editor .aioseop_featured_image {
747
- background-image: url(../../modules/images/FileEditor-BW-Retina.png);
748
- }
749
-
750
- div.aioseop_feature#aioseop_file_editor .aioseop_featured_image.active {
751
- background-image: url(../../modules/images/FileEditor-Color-Retina.png);
752
- }
753
-
754
- div.aioseop_feature#aioseop_importer_exporter .aioseop_featured_image {
755
- background-image: url(../../modules/images/ImporterExporter-BW-Retina.png);
756
- }
757
-
758
- div.aioseop_feature#aioseop_importer_exporter .aioseop_featured_image.active {
759
- background-image: url(../../modules/images/ImporterExporter-Color-Retina.png);
760
- }
761
-
762
- div.aioseop_feature#aioseop_performance .aioseop_featured_image {
763
- background-image: url(../../modules/images/Performance-BW-Retina.png);
764
- }
765
-
766
- div.aioseop_feature#aioseop_performance .aioseop_featured_image.active {
767
- background-image: url(../../modules/images/Performance-Color-Retina.png);
768
- }
769
-
770
- div.aioseop_feature#aioseop_coming_soon .aioseop_featured_image {
771
- background-image: url(../../modules/images/Default-BW-Retina.png);
772
- }
773
-
774
- div.aioseop_feature#aioseop_coming_soon2 .aioseop_featured_image {
775
- background-image: url(../../modules/images/Default-BW-Retina.png);
776
- }
777
-
778
- .aioseop_facebook_follow {
779
- background-image: url(../../modules/images/facebook-follow-retina.png);
780
- }
781
-
782
- .aioseop_twitter_follow {
783
- background-image: url(../../modules/images/twitter-follow-retina.png);
784
- }
785
- }
786
-
787
- .aioseop_options {
788
- width: 100%;
789
- margin: 18px 0 10px 0;
790
- }
791
-
792
- .aioseop_wrapper {
793
- width: 100%;
794
- padding-left: 5px;
795
- }
796
-
797
- .aioseop_input {
798
- clear: left;
799
- width: 100%;
800
- padding: 5px;
801
- display: inline;
802
- }
803
-
804
- .aioseop_option_input {
805
- float: left;
806
- width: 61%;
807
- margin: 0;
808
- padding-left: 1px;
809
- min-width: 160px;
810
- /* max-width: 900px; */
811
- }
812
-
813
- #aiosp_sitemap_addl_pages,
814
- #aiosp_video_sitemap_addl_pages {
815
- clear: left;
816
- margin-left: 20px;
817
- max-width: 1072px;
818
- }
819
-
820
- #aiosp_sitemap_addl_pages_metabox .aioseop_wrapper,
821
- #aiosp_video_sitemap_addl_pages_metabox .aioseop_wrapper {
822
- width: 23%;
823
- min-width: 165px;
824
- display: inline-block;
825
- max-width: 265px;
826
- }
827
-
828
- #aiosp_sitemap_addl_pages_metabox .aioseop_help_text_div,
829
- #aiosp_video_sitemap_addl_pages_metabox .aioseop_help_text_div {
830
- position: absolute;
831
- margin: 5px 0 10px 0;
832
- }
833
-
834
- #aiosp_sitemap_addl_pages_metabox .aioseop_option_input,
835
- #aiosp_video_sitemap_addl_pages_metabox .aioseop_option_input {
836
- width: 94%;
837
- min-width: 94%;
838
- }
839
-
840
- #aiosp_sitemap_addl_pages_metabox table.aioseop_table,
841
- #aiosp_video_sitemap_addl_pages_metabox table.aioseop_table {
842
- width: 96%;
843
- border: 1px solid #CCC;
844
- margin: 5px 0 10px 0;
845
- }
846
-
847
- table.aioseop_table tr:nth-child(odd) {
848
- background-color: #EEE;
849
- }
850
-
851
- .All_in_One_SEO_Pack_Opengraph table.aioseop_table tr:nth-child(odd) {
852
- background-color: rgba(238, 238, 238, 0.5);
853
- }
854
-
855
- table.aioseop_table td {
856
- width: 23%;
857
- }
858
-
859
- .All_in_One_SEO_Pack_Opengraph table.aioseop_table {
860
- width: 80%;
861
- max-width: 800px;
862
- display: block;
863
- border-top: 1px solid #dfdfdf;
864
- border-left: 1px solid #dfdfdf;
865
- }
866
-
867
- .All_in_One_SEO_Pack_Opengraph table.aioseop_table th {
868
- width: 18%;
869
- border-right: 1px solid #dfdfdf;
870
- border-bottom: 1px solid #dfdfdf;
871
- }
872
-
873
- .All_in_One_SEO_Pack_Opengraph div.aioseop_meta_info {
874
- margin-top: 10px;
875
- border: 1px solid #dfdfdf;
876
- width: 80%;
877
- max-width: 800px;
878
- }
879
-
880
- .All_in_One_SEO_Pack_Opengraph table.aioseop_table tr.aioseop_table_header th {
881
- background: #f1f1f1;
882
- background-image: -webkit-gradient(linear, left bottom, left top, from(#ececec), to(#f9f9f9));
883
- background-image: -webkit-linear-gradient(bottom, #ececec, #f9f9f9);
884
- background-image: -moz-linear-gradient(bottom, #ececec, #f9f9f9);
885
- background-image: -o-linear-gradient(bottom, #ececec, #f9f9f9);
886
- background-image: linear-gradient(to top, #ececec, #f9f9f9);
887
- padding: 5px;
888
- border-bottom-color: #dfdfdf;
889
- text-shadow: #fff 0 1px 0;
890
- -webkit-box-shadow: 0 1px 0 #fff;
891
- -moz-box-shadow: 0 1px 0 #fff;
892
- box-shadow: 0 1px 0 #fff;
893
- }
894
-
895
- .All_in_One_SEO_Pack_Opengraph table.aioseop_table td {
896
- border-right: 1px solid #dfdfdf;
897
- border-bottom: 1px solid #dfdfdf;
898
- }
899
-
900
- #aioseop_opengraph_settings_facebook_debug_result li.aioseop_opengraph_settings_facebook_debug_item {
901
- display: inline-block;
902
- width: 30%;
903
- vertical-align: top;
904
- }
905
-
906
- #aioseop_opengraph_settings_facebook_debug_result li.aioseop_opengraph_settings_facebook_debug_item:nth-child(even) {
907
- font-weight: bold;
908
- }
909
-
910
- #aioseop_opengraph_settings_facebook_debug_result li.aioseop_opengraph_settings_facebook_debug_item:nth-child(odd) {
911
- width: 70%;
912
- }
913
-
914
- #aiosp_sitemap_addl_pages_metabox table.aioseop_table td,
915
- #aiosp_video_sitemap_addl_pages_metabox table.aioseop_table td {
916
- width: 25%;
917
- padding-left: 5%;
918
- }
919
-
920
- table.aioseop_table td, table.aioseop_table th {
921
- padding: 3px;
922
- }
923
-
924
- .aioseop_top_label .aioseop_option_input,
925
- .aioseop_no_label .aioseop_option_input {
926
- width: 100%;
927
- }
928
-
929
- #aiosp_settings_form .postbox {
930
- margin: 0 0 20px 0;
931
- }
932
-
933
- .aioseop_settings_left .postbox {
934
- float: left;
935
- width: 100%;
936
- }
937
-
938
- .aioseop_option_setting_label {
939
- min-height: 35px;
940
- display: inline-block;
941
- white-space: nowrap;
942
- overflow: hidden;
943
- padding-left: 1px;
944
- max-width: 229px;
945
- min-width: 160px;
946
- width: 33%;
947
- }
948
-
949
- .aioseop_settings_left .postbox .inside {
950
- padding: 0;
951
- margin: 0;
952
- clear: right;
953
- }
954
-
955
- #aiosp_settings_form .aioseop_no_label, .aioseop_no_label {
956
- float: left;
957
- width: 92%;
958
- max-width: 100%;
959
- margin: 0 23px 0 13px;
960
- }
961
-
962
- #aiosp_sitemap_status_metabox .handlediv.button-link {
963
- display: none;
964
- }
965
-
966
- #aiosp_sitemap_status_metabox.closed .inside {
967
- display: block;
968
- }
969
-
970
- .aioseop_top_label {
971
- width: 96%;
972
- margin: 0 10px;
973
- }
974
-
975
- .aioseop_hidden_type {
976
- margin: 0;
977
- padding: 0;
978
- height: 0;
979
- }
980
-
981
- #aiosp_title_metabox #aiosp_force_rewrites_wrapper {
982
- display: none;
983
- height: 0;
984
- }
985
-
986
- .aioseop_module.error.below-h2 {
987
- padding: 5px 0;
988
- margin: 0 477px 15px 0 !important;
989
- }
990
-
991
- #aioseop_opengraph_settings .inside {
992
- margin: 0;
993
- }
994
-
995
- #aioseop_opengraph_settings_image_wrapper img {
996
- width: auto;
997
- height: 75px;
998
- }
999
-
1000
- #aioseop_opengraph_settings_image_wrapper .aioseop_option_setting_label {
1001
- max-width: 160px;
1002
- min-width: 100px;
1003
- width: 30%;
1004
- }
1005
-
1006
- .aioseop_input input[type="checkbox"],
1007
- .aioseop_input input[type="radio"] {
1008
- vertical-align: text-bottom;
1009
- margin-top: 8px;
1010
- }
1011
-
1012
- #aiosp_importer_exporter_import_export_help_wrapper .aioseop_option_div {
1013
- max-height: initial;
1014
- }
1015
-
1016
- #aiosp {
1017
- width: auto;
1018
- }
1019
-
1020
- .aioseop_input.aioseop_top_label .aioseop_option_input {
1021
- margin: 0 0 10px 0;
1022
- }
1023
-
1024
- .aiosp_file_editor_settings > .aioseop_textarea_type .aioseop_option_div {
1025
- max-height: none;
1026
- }
1027
-
1028
- /* Robots.txt styling */
1029
- #aiosp_robots_generator_robotgen_wrapper .aioseop_option_div,
1030
- #aiosp_robots_generator_robothtml_wrapper .aioseop_option_div {
1031
- max-height: none;
1032
- }
1033
-
1034
- .aioseop_option_input .widefat td {
1035
- vertical-align: middle;
1036
- }
1037
-
1038
- .entry-row.robots.quirks {
1039
- font-weight: bold;
1040
- opacity: 1;
1041
- }
1042
-
1043
- .entry-row.robots {
1044
- opacity: 0.8;
1045
- }
1046
-
1047
- .entry-row.robots.invalid {
1048
- opacity: 1;
1049
- font-weight: bold;
1050
- }
1051
-
1052
- .invalid .entry_label {
1053
- font-weight: bold;
1054
- }
1055
-
1056
- .aioseop .aioseop_option_input tbody {
1057
- background: #FCFCFC;
1058
- }
1059
-
1060
- .All_in_One_SEO_Pack_Robots .aioseop .aioseop_option_input tbody {
1061
- background: transparent;
1062
- }
1063
-
1064
- .entry-row.robots div {
1065
- height: 20px;
1066
- vertical-align: middle;
1067
- width: 90%;
1068
- margin: 0 0 4px 0;
1069
- }
1070
-
1071
- .robots img {
1072
- margin: 0 0 0 2px;
1073
- opacity: 0.6;
1074
- }
1075
-
1076
- .aioseop_option_docs {
1077
- width: 98%;
1078
- display: none;
1079
- border: 1px solid #D3D3D3;
1080
- margin-top: 20px;
1081
- padding: 1%;
1082
- background-color: #EEE;
1083
- }
1084
-
1085
- .aioseop_option_docs h3 {
1086
- background: none;
1087
- }
1088
-
1089
- div.aioseop_notice {
1090
- position: relative;
1091
- }
1092
-
1093
- div.aioseop_notice a.aioseop_dismiss_link {
1094
- position: absolute;
1095
- top: 10px;
1096
- right: 10px;
1097
- }
1098
-
1099
- .aioseop_error_notice {
1100
- color: #f00;
1101
- font-weight: bold;
1102
- }
1103
-
1104
- .aioseop_input select {
1105
- margin: 7px 0;
1106
- }
1107
-
1108
- .aioseop_help_text ul {
1109
- margin: 15px 0 0 20px;
1110
- }
1111
-
1112
- .aioseop_help_text ul li {
1113
- line-height: 20px;
1114
- margin: 0;
1115
- }
1116
-
1117
- .aioseop_sidebar #side-sortables {
1118
- width: 98%;
1119
- }
1120
-
1121
- #aioseop_opengraph_settings .aioseop_option_label {
1122
- width: 30%;
1123
- }
1124
-
1125
- .aioseop_tabs {
1126
- padding-top: 6px;
1127
- }
1128
-
1129
- .aioseop_tabs.hide,
1130
- .aioseop_header_tabs.hide {
1131
- display: block !important;
1132
- }
1133
-
1134
- .aioseop_header_tabs li {
1135
- display: inline;
1136
- padding: 0;
1137
- margin: 0;
1138
- }
1139
-
1140
- .aioseop_header_tabs {
1141
- margin: 0;
1142
- }
1143
-
1144
- .aioseop_header_nav {
1145
- margin: 0;
1146
- }
1147
-
1148
- .aioseop_header_tabs li a.aioseop_header_tab.active {
1149
- background-color: rgb(255, 255, 255);
1150
- border-bottom-color: rgba(255, 255, 255, 0.5);
1151
- font-weight: bold;
1152
- }
1153
-
1154
- .aioseop_header_tabs li a.aioseop_header_tab {
1155
- font-size: 14px;
1156
- line-height: 37px;
1157
- text-decoration: none;
1158
- margin: 5px 5px 0 0;
1159
- padding: 10px;
1160
- cursor: pointer;
1161
- -webkit-border-top-right-radius: 3px;
1162
- -webkit-border-top-left-radius: 3px;
1163
- border-top-right-radius: 3px;
1164
- border-top-left-radius: 3px;
1165
- background-color: #e5e5e5;
1166
- border: 1px solid #ccc;
1167
- color: #5F5F5F;
1168
- }
1169
-
1170
- .aioseop_header_tabs li:first-child a.aioseop_header_tab {
1171
- border-left: solid 1px #CCC;
1172
- margin-left: 5px;
1173
- }
1174
-
1175
- .aioseop_tab {
1176
- border: solid 1px #CCC;
1177
- background-color: rgb(255, 255, 255);
1178
- background-color: rgba(255, 255, 255, 0.5);
1179
- padding: 10px;
1180
- }
1181
-
1182
- .aioseop_loading {
1183
- background-image: url('../../images/activity.gif');
1184
- display: inline-block;
1185
- width: 24px;
1186
- height: 24px;
1187
- margin: 0;
1188
- padding: 0;
1189
- vertical-align: bottom;
1190
- }
1191
-
1192
- .aiosp_delete_url {
1193
- background-image: url('../../images/delete.png');
1194
- display: inline-block;
1195
- width: 16px;
1196
- height: 16px;
1197
- margin: 0;
1198
- padding: 0;
1199
- vertical-align: bottom;
1200
- }
1201
-
1202
- form#aiosp_settings_form,
1203
- .aioseop_tabs_div {
1204
- padding-right: 477px;
1205
- }
1206
-
1207
- .aioseop_tabs_div {
1208
- margin-top: 10px;
1209
- }
1210
-
1211
- #aiosp_settings_form ul.sfwd_debug_settings li strong {
1212
- display: block;
1213
- float: left;
1214
- text-align: right;
1215
- background-color: #DDD;
1216
- margin-right: 8px;
1217
- padding: 1px 8px 1px 1px;
1218
- overflow: auto;
1219
- width: 200px;
1220
- min-height: 16px;
1221
- }
1222
-
1223
- #aiosp_settings_form ul.sfwd_debug_settings li:nth-child(2n+1) strong {
1224
- background-color: #CCC;
1225
- }
1226
-
1227
- #aiosp_settings_form ul.sfwd_debug_settings li {
1228
- clear: left;
1229
- margin: 0;
1230
- padding: 0;
1231
- background-color: #EEE;
1232
- overflow: auto;
1233
- max-width: 75%;
1234
- min-width: 800px;
1235
- }
1236
-
1237
- #aiosp_settings_form ul.sfwd_debug_settings li:nth-child(2n) {
1238
- background-color: #DDD;
1239
- }
1240
-
1241
- div.sfwd_debug_mail_sent {
1242
- background-color: #080;
1243
- border: 1px solid #0A0;
1244
- margin: 10px 0 10px 0;
1245
- width: 598px;
1246
- color: #FFF;
1247
- text-align: center;
1248
- }
1249
-
1250
- div.sfwd_debug_error {
1251
- background-color: #F00;
1252
- color: #FFF;
1253
- border: 1px solid #A00;
1254
- margin: 10px 0 10px 0;
1255
- width: 598px;
1256
- text-align: center;
1257
- font-weight: bolder;
1258
- }
1259
-
1260
- #aiosp_performance_status_wrapper .aioseop_option_div {
1261
- max-height: 420px;
1262
- }
1263
-
1264
- #aioseop_coming_soon, #aioseop_coming_soon2 {
1265
- padding-top: 40px;
1266
- text-align: center;
1267
- height: 258px;
1268
- font-size: 16px;
1269
- }
1270
-
1271
- .MRL {
1272
- margin-left: 20px !important;
1273
- margin-bottom: 10px !important;
1274
- }
1275
-
1276
- /**
1277
- * Edit Post screen specific styling
1278
- *
1279
- */
1280
- .postbox-container .aioseop_option_div {
1281
- width: 100%;
1282
- }
1283
-
1284
- .postbox-container .aioseop_option_div input[type="text"],
1285
- .postbox-container .aioseop_option_div textarea {
1286
- width: 99%;
1287
- max-width: 900px;
1288
- }
1289
-
1290
- .postbox-container .aioseop_option_label {
1291
- max-width: none;
1292
- height: auto !important;
1293
- }
1294
-
1295
- .postbox-container .aioseop_wrapper {
1296
- padding: 0;
1297
- }
1298
-
1299
- .postbox-container .aioseop_input {
1300
- display: block;
1301
- margin-bottom: 10px;
1302
- padding: 0;
1303
- }
1304
-
1305
- .postbox-container .aioseop_option_input {
1306
- width: 63%;
1307
- padding: 0;
1308
- }
1309
-
1310
- .postbox-container div#aiosp_upgrade_wrapper {
1311
- float: none;
1312
- width: auto;
1313
- margin: 0;
1314
- padding: 0;
1315
- }
1316
-
1317
- .postbox-container div#aiosp_upgrade_wrapper .aioseop_input {
1318
- display: block;
1319
- padding: 0;
1320
- }
1321
-
1322
- .postbox-container div#aiosp_upgrade_wrapper .aioseop_input .aioseop_option_input {
1323
- float: none;
1324
- width: auto;
1325
- padding: 0;
1326
- }
1327
-
1328
- .postbox-container div#aiosp_upgrade_wrapper .aioseop_input .aioseop_option_input .aioseop_option_div {
1329
- width: auto;
1330
- min-height: 0;
1331
- padding: 10px 0;
1332
- }
1333
-
1334
- .aioseop_tabs .aioseop_options {
1335
- margin: 0;
1336
- }
1337
-
1338
- #aioseop_opengraph_settings .aioseop_options {
1339
- clear: both;
1340
- margin-top: 35px;
1341
- }
1342
-
1343
- #aioseop_opengraph_settings .aioseop_option_input {
1344
- width: 70%;
1345
- }
1346
-
1347
- /**
1348
- * Preview Snippet styling
1349
- *
1350
- */
1351
- div#aiosp_snippet_wrapper {
1352
- border: 1px solid #888;
1353
- clear: both;
1354
- padding: 10px 10px 0;
1355
- max-width: 97%;
1356
- margin-bottom: 15px;
1357
- }
1358
-
1359
- div#aiosp_snippet_wrapper .aioseop_option_label {
1360
- height: auto !important;
1361
- }
1362
-
1363
- div#aiosp_snippet_wrapper .aioseop_input.aioseop_top_label .aioseop_option_input {
1364
- margin: 0;
1365
- }
1366
-
1367
- div#aioseop_snippet {
1368
- font-family: arial, sans-serif;
1369
- font-size: 13px;
1370
- }
1371
-
1372
- div#aioseop_snippet > h3 {
1373
- margin: 10px 0 5px;
1374
- font-size: 18px;
1375
- border: 0;
1376
- background: inherit;
1377
- font-weight: normal;
1378
- }
1379
-
1380
- div#aioseop_snippet > h3 > a {
1381
- color: #12c;
1382
- text-decoration: none;
1383
- cursor: pointer;
1384
- }
1385
-
1386
- div#aioseop_snippet > div {
1387
- color: #545454;
1388
- max-width: 48em;
1389
- }
1390
-
1391
- div#aioseop_snippet > div > div {
1392
- display: block;
1393
- margin-bottom: 1px;
1394
- }
1395
-
1396
- div#aioseop_snippet > div > div > cite {
1397
- color: #093;
1398
- font-style: normal;
1399
- }
1400
-
1401
- div#aioseop_snippet > div > span {
1402
- margin: 0;
1403
- padding: 0;
1404
- border: 0;
1405
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Controls all the styling of the plugin.
3
+ *
4
+ * @author Michael Torbert.
5
+ * @author Semper Fi Web Design.
6
+ * @copyright http://semperplugins.com
7
+ * @package All-in-One-SEO-Pack.
8
+ */
9
+
10
+ .form-table.aioseop {
11
+ clear: none;
12
+ }
13
+
14
+ .form-table.aioseop td {
15
+ vertical-align: top;
16
+ padding: 16px 0 10px 0;
17
+ line-height: 20px;
18
+ font-size: 12px;
19
+ }
20
+
21
+ .form-table.aioseop th {
22
+ width: 200px;
23
+ padding: 10px 0 12px 9px;
24
+ }
25
+
26
+ .aioseop_help_text_link,
27
+ .aioseop_help_text_link:active {
28
+ text-align: left;
29
+ float: left;
30
+ max-width: 300px;
31
+ min-width: 1px;
32
+ padding-top: 2px;
33
+ outline: none;
34
+ color: #888;
35
+ font-family: sans-serif;
36
+ }
37
+
38
+ .aioseop_help_text_link span {
39
+ font-size: 14px;
40
+ }
41
+
42
+ .aioseop_help_text_link:before {
43
+ content: "\f223";
44
+ font-size: 27px;
45
+ font-family: dashicons;
46
+ vertical-align: middle;
47
+ }
48
+
49
+ #aioseop-support .aioseop_metabox_text,
50
+ #aioseop-support a {
51
+ font-size: 14px;
52
+ color: #000;
53
+ text-decoration: none;
54
+ }
55
+
56
+ .aioseop_icon {
57
+ display: inline-block;
58
+ width: 40px;
59
+ height: 40px;
60
+ background-repeat: no-repeat;
61
+ background-size: 100%;
62
+ vertical-align: middle;
63
+ margin: 10px;
64
+ }
65
+
66
+ .aioseop_book_icon {
67
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABABAMAAABYR2ztAAAAKlBMVEUAAAAAn+cAneEAnuABnuEBnuEAnuEAn+QAn+QAneAAnuEAneAAnuAAneFPI9ocAAAADnRSTlMAII/P/wCQMADwANDvnyPbz6kAAAB9SURBVHgB7c+xCQMgEIVhZwiSSRzhkRBImsA5gVUmuBGcJbUDxlhY6T2wvh/sPvBd+HdJWCSj0N8bsEEiIIOAyEBhIDGAcwA4cDBy4MDBTeuqCR5abXCvBHy+6ybQrs2R0jsH/As+srEzC55qggi81AIZ+waQxkBmQK5tD34LnXJVZf9y5gAAAABJRU5ErkJggg==);
68
+ }
69
+
70
+ .aioseop_cog_icon {
71
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAeFBMVEUAAAAAn+MAnOIAn+cAneIAneEAn+MAnuEAneIAnuAAnuAAneEAn+cAn+QAn98AnuEAn98AneAAneEAneAAnOIAnuAAnuEAnuAAneEAn+EAnuEAnuAAneEAneAAneAAn+QAnuEAnuABnuEAneAAn+EAnuIAnuMBnuHeY3dlAAAAJ3RSTlMAQFAAYIAAkADP3wAgMACgEACfrwC/X++PbwAAcODwALDAANAATz8hP00ZAAACHklEQVR4Xq3XbWObIBAHcPAJJRjJVmtso4vL2vv+33AzJO2J/LuE9PfGFyR4HHiAgCQxyRMiYEtGTL5BBGzJiVEviIAtFTH6FRGowdBC/QsQqKGhhebeIdTkqe+LwFbkqew2SGyDftDKz12Q2AXYlhgeA46AD/G5oyD9zJO0zIEhvXd91L0mSPcmnZlek0nPhHu4mKu2ov+q2rZzOWE5kBRBFjNRzDRFqD6X8oGiHK5fo+0oSmcv06goknLfQk3RzHkaWwIGlUhrZaIGAto5iQn6uyw+yAFOpSgUTDEHJqqZc5DR2rgqw8lIa7mbRkkMLOOBoWZlWYrynwzGzx1C/3cdlEcvf7sgL5MTq8rGz22QNwjDP+cGBYBDOC6qcnLTNqQCeRbuYdEU4In47YjL84RSwEk+Tq8qT7xvhMc5eXsj78Buga866O4dQrXs4OEk3jaNTWC1Cfc43nSa0MQ0fCFFLWXL9saWFjQMgFOfEUR+zsl1KWeRBaWr3e7c01q3Lmld+FfiSVFQ/2ehp6B8IzaorGvJ8q8Jl/ViIkDv396tfX/bawKm81J+eGtLH91cX+xIUUZ7XYmPHTBmA0U4feMh6zqVwzTe8ubQvmBoUJeDphoIGtT5tVaq0Ttopvyom4M4xqz8YGXhiCLAnIKhg8N2iA30cLzrxmJH/H4cASejrjzcFHXpwrcukwIiRQZv2QICtjQP352/9fYuC+Qv593CTVvcgwkAAAAASUVORK5CYII=);
72
+ }
73
+
74
+ .aioseop_file_icon {
75
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAPFBMVEUAAAAAneAAn98AneIAneEAnuAAn+QAnuAAnuAAnuEAn+MAnuEAneAAnuEAn+EAneEAnOIAnuEAnuABnuG5yOaaAAAAE3RSTlMA0BBgn88wv++gQLCvX2+PUJDAyp/15gAAALdJREFUeF7t1z2ygzAMhVFJjm0C5Ff732uaMCSWCVzTJO/paz1zRsVtTM/OUT+Wx5PQchJ1Q2O/CETdVk51IOjWugAeYLvUAEU6rAO4oLhQB2bSvh+NAAKU2AgYQGIEDHgXbjhQCFcYKIQuoUApZBQwQg8CRhhAwArSBlCagNAI0LTqAQCq3fcC+jOA7e8DDuhK/wDwHfgOfAe+A98B2BcC3Aaw+XiCBdp3AtOcNAgs9FoACZ7ufwCe6pfMGb29UwAAAABJRU5ErkJggg==);
76
+ }
77
+
78
+ .aioseop_help_icon {
79
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAflBMVEUAAAAAn98AnuIAn+EAneAAnuAAnuAAn+QAn+QAneEAnuAAnuAAn+EAnuAAnuEAneAAn+cAneAAnuAAn98AnOIAnuEAneIAn+MAnuEAnuEAn+EAneIAneEAneEAnuEAn+MAneAAneEAnuMAnOIAn+cAneEBnuEAneAAnuMBnuEoGewkAAAAKXRSTlMAEE9/r7/fADCPzwBv718AIPDAAFCwYEAAoAAAn4CQAOAAPwAAcADQAFP96WQAAAMNSURBVHhelZcNc5swDIatBghpoCGEj9Jij2XLMv3/P7glkoNtZJo+d+0lhBOveSXZUjHgZZOkGf4nS5PNC5wiKPFqvnvFgNddvpVQy0tQZCiSFfCEAtiUGKXcwFcB3kpcpXx791HetypFn2NdH9EnrX67KPdL46g/tl3PeqHvWidM2fxyUM7n3fzgof8R0A9zjN3PGTV/HB+6teg66EeIUQqQIGOiSQMGmeRgUQfGPn/Ktyv0k9UQKrCxWzitAq3V6dvYIDG8f8mAROO6ULF/3ecTaHazcvIgjTw/PxfFeVFErCHd31C3fx2v39cKGy6qLKyA1tGr/v8BLWDyb3OLqiw+XGCiq8DFxIvypMKIHqMXvaeLmmyEkn1xSTCAjWcMS7gruFD+eo/QuEC7AYCy+nJXkC1/r5A4Gq2NrQCvjMnL7OZCLggY3KoAI5jMEvKt2hohBYK3wiveuwx8i3qn/uvVf0O2Hh5MnLwOZMTrXgGt4OCi7RuyXNg1F1oDqEZIQh2K6oUALalSWqgiIwUIM4VVqZZvdlkE7QQFFLRVNS3l5NLZarMkgkx6ebWiNPqzSu9nEkM2KDZhjbykh+19KKri3+LkIxLhVlE/E4CaAjsd4AYo9zJkR9huGF7CtPYSX9FyXG4XFHe2UQIt9fIGa6NNJBErX2r35O0wp7KEbZYSNpVtMYngSpbZYoI1G9YClFzOp+vKS6jviLFJ+fWgDralfZO5peW2xX8LKB9NdTtxsQuc7/wV0OTv/YRyiUuIugCls7FwizffsXHgzcRurjEjYgH8zdVKyODZJUDGAuxZubNnt5BIgMQ7YNyowy2c0XfCqyNX6HzE2Ve8A28+nmDDHaJyD9sNChpkxvCYRxgkEjitAkl40AzPjxm7KdNnSAzLgaNFZhcVATtkBmliGaTJSJ6mBnnkMWgpx+XAMZZoMbGZqXEHm6Q4sxA4F4k7DEkjD1PVGJCmGFDLQ5elO+Iqx7B/q88A0FKI+DSlBLMuE4pMF3h6+DZXDLia6PAtA41u67uUqW51E02uf46zvXx+HY4YAAAAAElFTkSuQmCC);
80
+ }
81
+
82
+ .aioseop_support_icon {
83
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAe1BMVEUAAAAAn98AnuIAn+EAneAAnuAAnuABnuEAn98An+QAneEAnuAAn+QAn+EAnuAAnuEAneAAnuEAneIAn+MAn+cAn+cAnuEAnuEAnOIAneEAneEAnOIAnuAAneEAn+MAneAAneEAneIAnuEAnuIAneAAnuAAneABnuEAnuPdwDkgAAAAKXRSTlMAEE9/r7/f/wAwj88Ab+9f0JBgQCAAALBQcAAAAJ8AAIAAoADgwPAAP4Dl7rAAAALsSURBVHgBtdcBc6I6EAfwRCH/KjUSTCW2eHK8kHff/xM+Dg5NlsTTOu830xmc0BhJdtllKXy1znKBgciz9Yq/JbC3mM22AFFsN+8x7H2B7wSixI4/sAK+lkiSa/63CfbXfy9VddAfA32oVHmdYn8MsaNP55jUhpOFmRqTXH/4mP/BSExOnxEnTKT58jDveouZaCIEZltvWna7POPm8GPhgJtzbIIMnvq4UMOTXWZsvjgjoD8IjcCZrkAh1H4SLUIq3EYDQjSEBGH8XdASVPUzUIGS2jsHORbyJpC8gzWDChGaPsL4ItnwxyUiuuPqnBdAkW9X/3SIkPxPMLWIkZJcL7XTNnKJb5J8XMEJ33YaVyCQYJUZ0tjGKIsE8XsXNuNUFpStvFMQGR4Xvhlyoppi51AjUAcZhdPRIVzr8UCzYzEfS91afxOJDle2Hc9IBaBoGMdg/raq/3s49/NPm/6TGQDl5Up3DoCN5G9uAbjOO6AlAMPa8Zd4JI0kP55k41EAWlaT+w0Ae4mytyAenQDUrCcZsCMr8igydADQM0ECrydf4zEA+uZGAygYBv96ivF4RG3GffNgsJiAfr439v9MUN7/CeXFgwGzrz1Eu9hG9eQ2Rg+SaKJE5CB1y6Ps7h1ld/FMR9mEm6vPEoCIBZMAIM/e8xoTQRjO+5y8fT0ZJvlc5PwJ57fymlDWMloBLKoHsb4mlPLCLnNKyxDIwpRGR72UtsEgUhoKrx7bR4Z3c1J9Tyft7ep3Wl9t04l/rFBefrFwh29y/N7L1TlynXy5JpbQHY3qS6Dslfnq4guYa+UXC4xBj4W+CSTvYFMEuOeLLKf9Ytssd5hw6TJv9FKhOeqeK3W7ZcNRP1Nsd7GOpXu83O/iLY8ij5CwmKlUz2TcIy2PIy2PT/eYZLRV5fsMk542XaHK3VrV/a+p7fu1uzWyjiZs9pPgrUOSa6ONJ8FPFlH2xB9uvlUJolTJ5juOm7buLQa2r1uvkSX+A/xd+1xZLxG0AAAAAElFTkSuQmCC);
84
+ }
85
+
86
+ .aioseop_youtube_icon {
87
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAARVBMVEUAAAAAn+cAn+EAneAAnuABnuEAn+cAn98AneEAn98AnOIAnuAAnOIAneIAneIAnuEAnuEAneEAnuEBnuEAn+QAneAAneCXjc90AAAAF3RSTlMAIG+vz/8AEJ8AUO8AYACgAHCwADDw0E/SOHoAAAEBSURBVHgB7dbBjsIgGATgH+UvCAso3fL+j7rDYZMerGGZQ5NNv8TrREZLRy47F3O7Wx1m7zezAMjSOa9/5t2jkweEqBNi+ALBJ+mklHOWnINOC/0buKjTokMHRQnlKUYpRl5HBQ32KFXfW783HVDFHgWsrg0EWNEDK4z0+yEAEhuAIsgAFMEFQOECILEBKIIMQBFcABQuABIbgCLIABTBBUBhAzx5BEuWGM/9GT35V7bkwxTPfZw9eaVZ8lKN517rI8NHmr43cPyufXi5Rh1Q+dc7PTAWduI83abTNteHJjvz6KEJYeoU2+/UBVcm+tuNbTCv2nRYq2k/9ylXwL8I+AGj+lzlceKDYQAAAABJRU5ErkJggg==);
88
+ }
89
+
90
+ .aioseop_meta_box_help > label {
91
+ position: absolute;
92
+ margin-left: 8px;
93
+ }
94
+
95
+ div.aioseop_tip_icon {
96
+ font-size: 14px;
97
+ border: 1px solid #888;
98
+ width: 1em;
99
+ text-align: center;
100
+ padding: 0 4px;
101
+ -webkit-border-radius: 12px;
102
+ -moz-border-radius: 12px;
103
+ -webkit-box-shadow: 1px 1px 1px #888;
104
+ -moz-box-shadow: 1px 1px 1px #888;
105
+ box-shadow: 1px 1px 1px #888;
106
+ border-radius: 12px;
107
+ }
108
+
109
+ div.aioseop_tip_icon:before {
110
+ content: '?';
111
+ }
112
+
113
+ .aioseop_help_text_link img {
114
+ width: 40px;
115
+ float: left;
116
+ }
117
+
118
+ .aioseop_meta_box_help,
119
+ .aioseop_meta_box_help:active {
120
+ float: right;
121
+ padding-left: 0;
122
+ width: 16px;
123
+ margin-right: 32px;
124
+ text-decoration: none;
125
+ height: 15px;
126
+ padding-top: 1px;
127
+ position: relative;
128
+ }
129
+
130
+ .aioseop_tabs .aioseop_meta_box_help,
131
+ .aioseop_tabs .aioseop_meta_box_help:active {
132
+ margin-top: 4px;
133
+ margin-right: 45px;
134
+ }
135
+
136
+ .aioseop_label {
137
+ color: #5F5F5F;
138
+ font-weight: bold;
139
+ line-height: 19px;
140
+ display: inline-block;
141
+ text-align: left;
142
+ position: absolute;
143
+ font-family: 'Open Sans', sans-serif;
144
+ width: 26%;
145
+ min-width: 120px;
146
+ max-width: 230px;
147
+ }
148
+
149
+ .aioseop_option_div {
150
+ max-height: 360px;
151
+ min-height: 37px;
152
+ width: 95%;
153
+ overflow-y: auto;
154
+ }
155
+
156
+ .aioseop_overflowed {
157
+ border: 1px solid #e1e1e1;
158
+ }
159
+
160
+ .aioseop input[type="text"] {
161
+ color: #515151;
162
+ height: 35px;
163
+ padding: 10px 0 10px 10px;
164
+ font-size: 14px;
165
+ width: 95%;
166
+ max-width: 600px;
167
+ }
168
+
169
+ .aioseop textarea {
170
+ color: #515151;
171
+ padding: 10px 0 0 10px;
172
+ margin: 0;
173
+ font-size: 14px;
174
+ line-height: 25px;
175
+ width: 95%;
176
+ max-width: 600px;
177
+ }
178
+
179
+ .aioseop_help_text_div {
180
+ text-align: left;
181
+ width: 100%;
182
+ margin: 0;
183
+ }
184
+
185
+ .aioseop_help_text {
186
+ font-size: 12px;
187
+ float: left;
188
+ clear: left;
189
+ color: #797979;
190
+ line-height: 15px;
191
+ font-style: italic;
192
+ }
193
+
194
+ .aioseop_head_tagline {
195
+ color: #5F5F5F;
196
+ font-size: 13px;
197
+ }
198
+
199
+ .aioseop_head_nav {
200
+ float: left;
201
+ font-size: 18px;
202
+ margin: 0 0 16px 0;
203
+ font-family: "HelveticaNeue-Light",
204
+ "Helvetica Neue Light",
205
+ "Helvetica Neue",
206
+ sans-serif;
207
+ border-bottom: 1px solid #CCC;
208
+ width: 100%;
209
+ }
210
+
211
+ .aioseop_head_nav_tab {
212
+ padding: 10px 15px 10px 15px;
213
+ margin: 0 0 0 15px;
214
+ border-radius: 4px 4px 0 0;
215
+ border: 1px solid #CCC;
216
+ border-bottom: 0 white;
217
+ float: left;
218
+ opacity: 0.5;
219
+ color: black;
220
+ text-shadow: white 0 1px 0;
221
+ text-decoration: none;
222
+ }
223
+
224
+ .aioseop_head_nav_tab.aioseop_head_nav_active {
225
+ opacity: 1;
226
+ margin-bottom: -1px;
227
+ border-width: 1px;
228
+ }
229
+
230
+ .aioseop_head_nav_tab:first-child {
231
+ margin-left: 0;
232
+ }
233
+
234
+ .aioseop_head_nav_tab:hover {
235
+ opacity: 1;
236
+ }
237
+
238
+ .aioseop_header {
239
+ float: left;
240
+ clear: left;
241
+ }
242
+
243
+ .aioseop_advert {
244
+ padding: 10px;
245
+ margin-bottom: 30px;
246
+ border: 1px solid #DDD;
247
+ height: 200px;
248
+ width: 423px;
249
+ }
250
+
251
+ .aioseop_nopad {
252
+ padding-left: 0;
253
+ padding-top: 0;
254
+ }
255
+
256
+ .aioseop_nopad_all {
257
+ padding: 0;
258
+ height: 220px;
259
+ width: 445px;
260
+ margin-bottom: 20px;
261
+ border: none;
262
+ }
263
+
264
+ .aioseop_adverts {
265
+ float: right;
266
+ }
267
+
268
+ .wincherad {
269
+ width: 100%;
270
+ height: 100%;
271
+ background-size: 100%;
272
+ background-repeat: no-repeat;
273
+ margin-bottom: 0;
274
+ border: none;
275
+ }
276
+
277
+ #wincher21 {
278
+ background-image: url(../../modules/images/banner21.jpg);
279
+ }
280
+
281
+ #wincher22 {
282
+ background-image: url(../../modules/images/banner22.jpg);
283
+ }
284
+
285
+ .aioseop_content {
286
+ min-width: 760px;
287
+ clear: left;
288
+ }
289
+
290
+ .aioseop_options_wrapper .hndle {
291
+ font-size: 15px;
292
+ font-family: Georgia,
293
+ "Times New Roman",
294
+ "Bitstream Charter",
295
+ Times,
296
+ serif;
297
+ font-weight: normal;
298
+ padding: 7px 10px;
299
+ margin: 0;
300
+ line-height: 1;
301
+ }
302
+
303
+ .aioseop_options_wrapper .submit input.button-primary {
304
+ margin-bottom: 5px;
305
+ }
306
+
307
+ #aiosp_feature_manager_metabox.postbox {
308
+ margin-top: 20px;
309
+ float: left;
310
+ }
311
+
312
+ .aioseop_advert p {
313
+ margin: 25px 0 25px 0;
314
+ }
315
+
316
+ .aioseop_options_wrapper .postarea {
317
+ border-color: #DFDFDF;
318
+ -moz-box-shadow: inset 0 1px 0 #fff;
319
+ -webkit-box-shadow: inset 0 1px 0 #fff;
320
+ box-shadow: inset 0 1px 0 #fff;
321
+ -moz-border-radius: 3px;
322
+ -webkit-border-radius: 3px;
323
+ border-radius: 3px;
324
+ }
325
+
326
+ .aioseop_advert h3 {
327
+ padding: 0;
328
+ margin-top: 6px;
329
+ }
330
+
331
+ .aioseop_metabox_text p {
332
+ margin: 0 0 0 0;
333
+ width: 101%;
334
+ }
335
+
336
+ .aioseop_sidebar {
337
+ width: 457px;
338
+ margin-left: 10px;
339
+ }
340
+
341
+ .aioseop_metabox_text {
342
+ margin-bottom: 0;
343
+ }
344
+
345
+ .aioseop_metabox_wrapper {
346
+ padding: 0;
347
+ }
348
+
349
+ .aioseop_metabox_text *:last-child {
350
+ margin: 0;
351
+ }
352
+
353
+ .aioseop_metabox_feature {
354
+ margin-top: 20px;
355
+ }
356
+
357
+ .aioseop_translations {
358
+ margin-top: 15px;
359
+ }
360
+
361
+ .aioseop_option_label {
362
+ float: left;
363
+ margin: 0;
364
+ min-width: 150px;
365
+ width: 37%;
366
+ max-width: 270px;
367
+ padding-top: 3px;
368
+ padding-bottom: 3px;
369
+ height: 67px !important; /*added for certain language support*/
370
+ }
371
+
372
+ .aioseop_metabox_text h2 {
373
+ font-size: 14px;
374
+ padding: 0;
375
+ font-weight: bold;
376
+ line-height: 29px;
377
+ }
378
+
379
+ #aioseop-about {
380
+ width: 443px;
381
+ margin-bottom: 20px;
382
+ }
383
+
384
+ #aioseop-about .aioseop_metabox_text #mc-embedded-subscribe-form h2 {
385
+ font-size: 13px;
386
+ }
387
+
388
+ .aioseop_sidebar #mc-embedded-subscribe-form {
389
+ margin: 0 0 10px 0;
390
+ background: white;
391
+ padding: 10px 10px;
392
+ border: 1px solid #DDD;
393
+ }
394
+
395
+ #aioseop-about .aioseop_metabox_text ul {
396
+ list-style-type: disc;
397
+ padding-left: 15px;
398
+ }
399
+
400
+ .aioseop input[readonly] {
401
+ background-color: #EEE;
402
+ margin: 5px 0 5px 0 !important;
403
+ }
404
+
405
+ .aioseop_settings_left {
406
+ float: left;
407
+ padding: 0;
408
+ margin: 0;
409
+ width: 100%;
410
+ }
411
+
412
+ body.all-in-one-seo_page_all-in-one-seo-pack-aioseop_feature_manager .aioseop_settings_left {
413
+ margin-top: 20px;
414
+ }
415
+
416
+ body.all-in-one-seo_page_all-in-one-seo-pack-pro-aioseop_feature_manager .aioseop_settings_left {
417
+ margin-top: 20px;
418
+ }
419
+
420
+ #aioseop_top_button {
421
+ margin-top: 5px;
422
+ height: 30px;
423
+ }
424
+
425
+ #aioseop-list #mce-EMAIL {
426
+ margin-top: 5px;
427
+ width: 250px;
428
+ }
429
+
430
+ .aioseop_top {
431
+ margin: 10px 10px 0 0;
432
+ /* margin: 10px 477px 0px 0px; */
433
+ }
434
+
435
+ .aioseop_top #aioseop-list {
436
+ margin-bottom: 0;
437
+ }
438
+
439
+ .aioseop_top #aioseop-list.postbox.closed {
440
+ overflow: hidden;
441
+ }
442
+
443
+ .aioseop_right_sidebar {
444
+ float: right;
445
+ margin-top: 35px;
446
+ }
447
+
448
+ #aiosp_settings_form .button-primary.hidden {
449
+ display: none;
450
+ }
451
+
452
+ form#edittag div#aiosp_titleatr_wrapper,
453
+ form#edittag div#aiosp_menulabel_wrapper,
454
+ form#edittag div#aiosp_sitemap_exclude_wrapper {
455
+ display: none;
456
+ }
457
+
458
+ .All_in_One_SEO_Pack_Feature_Manager > #aiosp_settings_form > #aioseop_top_button {
459
+ height: 5px;
460
+ position: absolute;
461
+ top: 0;
462
+ width: 97%;
463
+ }
464
+
465
+ .All_in_One_SEO_Pack_Feature_Manager > #aiosp_settings_form > .aioseop_settings_left {
466
+ margin-top: 10px;
467
+ }
468
+
469
+ .All_in_One_SEO_Pack_Feature_Manager > .aioseop_right_sidebar.aioseop_options_wrapper {
470
+ margin-top: 10px;
471
+ }
472
+
473
+ div#aiosp_feature_manager_metabox .inside {
474
+ padding: 8px;
475
+ }
476
+
477
+ div.aioseop_feature {
478
+ position: relative;
479
+ display: inline-block;
480
+ float: left;
481
+ vertical-align: top;
482
+ width: 240px;
483
+ height: 288px;
484
+ margin: 8px;
485
+ border: 1px solid #DEDEDE;
486
+ -moz-border-radius: 3px;
487
+ -webkit-border-radius: 3px;
488
+ border-radius: 3px;
489
+ background: white;
490
+ padding: 10px 0 0;
491
+ -webkit-box-shadow: inset 0 1px 0 #fff,
492
+ inset 0 0 20px rgba(0, 0, 0, 0.05),
493
+ 0 1px 2px rgba(0, 0, 0, 0.1);
494
+ -moz-box-shadow: inset 0 1px 0 #fff,
495
+ inset 0 0 20px rgba(0, 0, 0, 0.05),
496
+ 0 1px 2px rgba(0, 0, 0, 0.1);
497
+ box-shadow: inset 0 1px 0 #fff,
498
+ inset 0 0 20px rgba(0, 0, 0, 0.05),
499
+ 0 1px 2px rgba(0, 0, 0, 0.1);
500
+ -webkit-transition-duration: .4s;
501
+ -moz-transition-duration: .4s;
502
+ }
503
+
504
+ .aioseop_feature .flag {
505
+ float: right;
506
+ margin-right: -7px;
507
+ background: none repeat scroll 0 0 #D23D46;
508
+ color: #FFFFFF;
509
+ padding: 5px 12px 6px 5px;
510
+ position: relative;
511
+ }
512
+
513
+ .aioseop_feature .flag:before {
514
+ border-color: #D23D46 #D23D46 #D23D46 transparent;
515
+ border-style: solid;
516
+ border-width: 14px 4px 15px 10px;
517
+ content: "";
518
+ left: -14px;
519
+ position: absolute;
520
+ top: 0;
521
+ }
522
+
523
+ .aioseop_feature .flag:after {
524
+ border-color: #892026 transparent transparent;
525
+ border-style: solid;
526
+ border-width: 6px 6px 6px 0;
527
+ bottom: -12px;
528
+ content: "";
529
+ position: absolute;
530
+ right: 0;
531
+ }
532
+
533
+ .aioseop_feature .flag.pro {
534
+ display: none;
535
+ }
536
+
537
+ #aioseop_coming_soon .free.flag,
538
+ .all-in-one-seo_page_all-in-one-seo-pack-pro-modules-aioseop_feature_manager .aioseop_feature .free.flag {
539
+ display: none;
540
+ }
541
+
542
+ #aioseop_coming_soon .flag.pro {
543
+ display: block;
544
+ margin-top: -30px;
545
+ }
546
+
547
+ .all-in-one-seo_page_all-in-one-seo-pack-pro-modules-aioseop_feature_manager #aioseop_coming_soon .flag.pro {
548
+ display: none;
549
+ }
550
+
551
+ .aioseop_feature h3 {
552
+ font-size: 17px;
553
+ margin: 0;
554
+ padding: 0 10px 5px 10px;
555
+ font-weight: normal;
556
+ font-style: normal;
557
+ font-family: "Helvetica Neue",
558
+ Helvetica,
559
+ Arial,
560
+ "Lucida Grande",
561
+ Verdana,
562
+ "Bitstream Vera Sans",
563
+ sans-serif;
564
+ }
565
+
566
+ .aioseop_feature p {
567
+ line-height: 150%;
568
+ font-size: 12px;
569
+ font-family: Georgia,
570
+ "Times New Roman",
571
+ "Bitstream Charter",
572
+ Times, serif;
573
+ margin-bottom: 20px;
574
+ color: #666;
575
+ padding: 0 10px;
576
+ }
577
+
578
+ .aioseop_feature p.aioseop_desc {
579
+ min-height: 80px;
580
+ }
581
+
582
+ .aioseop_feature .feature_button {
583
+ float: right;
584
+ margin-bottom: 10px;
585
+ margin-right: 10px;
586
+ min-width: 80px;
587
+ text-align: center;
588
+ }
589
+
590
+ .aioseop_feature .feature_button:before {
591
+ content: "Activate";
592
+ }
593
+
594
+ .aioseop_feature .active.feature_button:before {
595
+ content: "Deactivate";
596
+ }
597
+
598
+ div.aioseop_feature .aioseop_featured_image {
599
+ min-height: 100px;
600
+ background-repeat: no-repeat;
601
+ display: block;
602
+ margin: 0 auto;
603
+ width: 133px;
604
+ }
605
+
606
+ div.aioseop_feature .aioseop_featured_image {
607
+ background-image: url(../../modules/images/Default-BW-Standard.png);
608
+ }
609
+
610
+ div.aioseop_feature .aioseop_featured_image.active {
611
+ background-image: url(../../modules/images/Default-Color-Standard.png);
612
+ }
613
+
614
+ div.aioseop_feature#aioseop_sitemap .aioseop_featured_image {
615
+ background-image: url(../../modules/images/XMLSitemaps-BW-Standard.png);
616
+ }
617
+
618
+ div.aioseop_feature#aioseop_sitemap .aioseop_featured_image.active {
619
+ background-image: url(../../modules/images/XMLSitemaps-Color-Standard.png);
620
+ }
621
+
622
+ div.aioseop_feature#aioseop_video_sitemap .aioseop_featured_image {
623
+ background-image: url(../../modules/images/VideoSitemap-BW-Standard.png);
624
+ }
625
+
626
+ div.aioseop_feature#aioseop_video_sitemap .aioseop_featured_image.active {
627
+ background-image: url(../../modules/images/VideoSitemap-Color-Standard.png);
628
+ }
629
+
630
+ div.aioseop_feature#aioseop_opengraph .aioseop_featured_image {
631
+ background-image: url(../../modules/images/SocialMeta-BW-Standard.png);
632
+ }
633
+
634
+ div.aioseop_feature#aioseop_opengraph .aioseop_featured_image.active {
635
+ background-image: url(../../modules/images/SocialMeta-Color-Standard.png);
636
+ }
637
+
638
+ div.aioseop_feature#aioseop_robots .aioseop_featured_image, div.aioseop_feature#aioseop_bad_robots .aioseop_featured_image {
639
+ background-image: url(../../modules/images/Robots-BW-Standard.png);
640
+ }
641
+
642
+ div.aioseop_feature#aioseop_robots .aioseop_featured_image.active, div.aioseop_feature#aioseop_bad_robots .aioseop_featured_image.active {
643
+ background-image: url(../../modules/images/Robots-Color-Standard.png);
644
+ }
645
+
646
+ div.aioseop_feature#aioseop_file_editor .aioseop_featured_image {
647
+ background-image: url(../../modules/images/FileEditor-BW-Standard.png);
648
+ }
649
+
650
+ div.aioseop_feature#aioseop_file_editor .aioseop_featured_image.active {
651
+ background-image: url(../../modules/images/FileEditor-Color-Standard.png);
652
+ }
653
+
654
+ div.aioseop_feature#aioseop_importer_exporter .aioseop_featured_image {
655
+ background-image: url(../../modules/images/ImporterExporter-BW-Standard.png);
656
+ }
657
+
658
+ div.aioseop_feature#aioseop_importer_exporter .aioseop_featured_image.active {
659
+ background-image: url(../../modules/images/ImporterExporter-Color-Standard.png);
660
+ }
661
+
662
+ div.aioseop_feature#aioseop_performance .aioseop_featured_image {
663
+ background-image: url(../../modules/images/Performance-BW-Standard.png);
664
+ }
665
+
666
+ div.aioseop_feature#aioseop_performance .aioseop_featured_image.active {
667
+ background-image: url(../../modules/images/Performance-Color-Standard.png);
668
+ }
669
+
670
+ div.aioseop_feature#aioseop_coming_soon .aioseop_featured_image {
671
+ background-image: url(../../modules/images/Default-Color-Standard.png);
672
+ }
673
+
674
+ div.aioseop_feature#aioseop_coming_soon2 .aioseop_featured_image {
675
+ background-image: url(../../modules/images/Default-Color-Standard.png);
676
+ }
677
+
678
+ .All_in_One_SEO_Pack_Sitemap > form > .wrap > .form-table,
679
+ .All_in_One_SEO_Pack_Video_Sitemap > form > .wrap > .form-table {
680
+ max-width: 500px;
681
+ clear: none;
682
+ }
683
+
684
+ .aioseop_follow_button {
685
+ min-height: 50px;
686
+ background-repeat: no-repeat;
687
+ display: inline-block;
688
+ width: 100px;
689
+ background-size: auto 50px !important;
690
+ margin-right: 0;
691
+ }
692
+
693
+ .aioseop_facebook_follow {
694
+ background-image: url(../../modules/images/facebook-follow-standard.png);
695
+ }
696
+
697
+ .aioseop_twitter_follow {
698
+ background-image: url(../../modules/images/twitter-follow-standard.png);
699
+ }
700
+
701
+ @media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and ( min--moz-device-pixel-ratio: 1.5), only screen and ( -o-min-device-pixel-ratio: 3/2), only screen and ( min-device-pixel-ratio: 1.5), only screen and ( min-resolution: 1.5dppx) {
702
+ div.aioseop_feature .aioseop_featured_image {
703
+ background-size: auto 100px !important;
704
+ }
705
+
706
+ div.aioseop_feature .aioseop_featured_image.active {
707
+ background-image: url(../../modules/images/Default-Color-Retina.png);
708
+ }
709
+
710
+ div.aioseop_feature .aioseop_featured_image {
711
+ background-image: url(../../modules/images/Default-BW-Retina.png);
712
+ }
713
+
714
+ div.aioseop_feature#aioseop_sitemap .aioseop_featured_image {
715
+ background-image: url(../../modules/images/XMLSitemaps-BW-Retina.png);
716
+ }
717
+
718
+ div.aioseop_feature#aioseop_sitemap .aioseop_featured_image.active {
719
+ background-image: url(../../modules/images/XMLSitemaps-Color-Retina.png);
720
+ }
721
+
722
+ div.aioseop_feature#aioseop_video_sitemap .aioseop_featured_image {
723
+ background-image: url(../../modules/images/VideoSitemap-BW-Retina.png);
724
+ }
725
+
726
+ div.aioseop_feature#aioseop_video_sitemap .aioseop_featured_image.active {
727
+ background-image: url(../../modules/images/VideoSitemap-Color-Retina.png);
728
+ }
729
+
730
+ div.aioseop_feature#aioseop_opengraph .aioseop_featured_image {
731
+ background-image: url(../../modules/images/SocialMeta-BW-Retina.png);
732
+ }
733
+
734
+ div.aioseop_feature#aioseop_opengraph .aioseop_featured_image.active {
735
+ background-image: url(../../modules/images/SocialMeta-Color-Retina.png);
736
+ }
737
+
738
+ div.aioseop_feature#aioseop_robots .aioseop_featured_image, div.aioseop_feature#aioseop_bad_robots .aioseop_featured_image {
739
+ background-image: url(../../modules/images/Robots-BW-Retina.png);
740
+ }
741
+
742
+ div.aioseop_feature#aioseop_robots .aioseop_featured_image.active, div.aioseop_feature#aioseop_bad_robots .aioseop_featured_image.active {
743
+ background-image: url(../../modules/images/Robots-Color-Retina.png);
744
+ }
745
+
746
+ div.aioseop_feature#aioseop_file_editor .aioseop_featured_image {
747
+ background-image: url(../../modules/images/FileEditor-BW-Retina.png);
748
+ }
749
+
750
+ div.aioseop_feature#aioseop_file_editor .aioseop_featured_image.active {
751
+ background-image: url(../../modules/images/FileEditor-Color-Retina.png);
752
+ }
753
+
754
+ div.aioseop_feature#aioseop_importer_exporter .aioseop_featured_image {
755
+ background-image: url(../../modules/images/ImporterExporter-BW-Retina.png);
756
+ }
757
+
758
+ div.aioseop_feature#aioseop_importer_exporter .aioseop_featured_image.active {
759
+ background-image: url(../../modules/images/ImporterExporter-Color-Retina.png);
760
+ }
761
+
762
+ div.aioseop_feature#aioseop_performance .aioseop_featured_image {
763
+ background-image: url(../../modules/images/Performance-BW-Retina.png);
764
+ }
765
+
766
+ div.aioseop_feature#aioseop_performance .aioseop_featured_image.active {
767
+ background-image: url(../../modules/images/Performance-Color-Retina.png);
768
+ }
769
+
770
+ div.aioseop_feature#aioseop_coming_soon .aioseop_featured_image {
771
+ background-image: url(../../modules/images/Default-BW-Retina.png);
772
+ }
773
+
774
+ div.aioseop_feature#aioseop_coming_soon2 .aioseop_featured_image {
775
+ background-image: url(../../modules/images/Default-BW-Retina.png);
776
+ }
777
+
778
+ .aioseop_facebook_follow {
779
+ background-image: url(../../modules/images/facebook-follow-retina.png);
780
+ }
781
+
782
+ .aioseop_twitter_follow {
783
+ background-image: url(../../modules/images/twitter-follow-retina.png);
784
+ }
785
+ }
786
+
787
+ .aioseop_options {
788
+ width: 100%;
789
+ margin: 18px 0 10px 0;
790
+ }
791
+
792
+ .aioseop_wrapper {
793
+ width: 100%;
794
+ padding-left: 5px;
795
+ }
796
+
797
+ .aioseop_input {
798
+ clear: left;
799
+ width: 100%;
800
+ padding: 5px;
801
+ display: inline;
802
+ }
803
+
804
+ .aioseop_option_input {
805
+ float: left;
806
+ width: 61%;
807
+ margin: 0;
808
+ padding-left: 1px;
809
+ min-width: 160px;
810
+ /* max-width: 900px; */
811
+ }
812
+
813
+ #aiosp_sitemap_addl_pages,
814
+ #aiosp_video_sitemap_addl_pages {
815
+ clear: left;
816
+ margin-left: 20px;
817
+ max-width: 1072px;
818
+ }
819
+
820
+ #aiosp_sitemap_addl_pages_metabox .aioseop_wrapper,
821
+ #aiosp_video_sitemap_addl_pages_metabox .aioseop_wrapper {
822
+ width: 23%;
823
+ min-width: 165px;
824
+ display: inline-block;
825
+ max-width: 265px;
826
+ }
827
+
828
+ #aiosp_sitemap_addl_pages_metabox .aioseop_help_text_div,
829
+ #aiosp_video_sitemap_addl_pages_metabox .aioseop_help_text_div {
830
+ position: absolute;
831
+ margin: 5px 0 10px 0;
832
+ }
833
+
834
+ #aiosp_sitemap_addl_pages_metabox .aioseop_option_input,
835
+ #aiosp_video_sitemap_addl_pages_metabox .aioseop_option_input {
836
+ width: 94%;
837
+ min-width: 94%;
838
+ }
839
+
840
+ #aiosp_sitemap_addl_pages_metabox table.aioseop_table,
841
+ #aiosp_video_sitemap_addl_pages_metabox table.aioseop_table {
842
+ width: 96%;
843
+ border: 1px solid #CCC;
844
+ margin: 5px 0 10px 0;
845
+ }
846
+
847
+ table.aioseop_table tr:nth-child(odd) {
848
+ background-color: #EEE;
849
+ }
850
+
851
+ .All_in_One_SEO_Pack_Opengraph table.aioseop_table tr:nth-child(odd) {
852
+ background-color: rgba(238, 238, 238, 0.5);
853
+ }
854
+
855
+ table.aioseop_table td {
856
+ width: 23%;
857
+ }
858
+
859
+ .All_in_One_SEO_Pack_Opengraph table.aioseop_table {
860
+ width: 80%;
861
+ max-width: 800px;
862
+ display: block;
863
+ border-top: 1px solid #dfdfdf;
864
+ border-left: 1px solid #dfdfdf;
865
+ }
866
+
867
+ .All_in_One_SEO_Pack_Opengraph table.aioseop_table th {
868
+ width: 18%;
869
+ border-right: 1px solid #dfdfdf;
870
+ border-bottom: 1px solid #dfdfdf;
871
+ }
872
+
873
+ .All_in_One_SEO_Pack_Opengraph div.aioseop_meta_info {
874
+ margin-top: 10px;
875
+ border: 1px solid #dfdfdf;
876
+ width: 80%;
877
+ max-width: 800px;
878
+ }
879
+
880
+ .All_in_One_SEO_Pack_Opengraph table.aioseop_table tr.aioseop_table_header th {
881
+ background: #f1f1f1;
882
+ background-image: -webkit-gradient(linear, left bottom, left top, from(#ececec), to(#f9f9f9));
883
+ background-image: -webkit-linear-gradient(bottom, #ececec, #f9f9f9);
884
+ background-image: -moz-linear-gradient(bottom, #ececec, #f9f9f9);
885
+ background-image: -o-linear-gradient(bottom, #ececec, #f9f9f9);
886
+ background-image: linear-gradient(to top, #ececec, #f9f9f9);
887
+ padding: 5px;
888
+ border-bottom-color: #dfdfdf;
889
+ text-shadow: #fff 0 1px 0;
890
+ -webkit-box-shadow: 0 1px 0 #fff;
891
+ -moz-box-shadow: 0 1px 0 #fff;
892
+ box-shadow: 0 1px 0 #fff;
893
+ }
894
+
895
+ .All_in_One_SEO_Pack_Opengraph table.aioseop_table td {
896
+ border-right: 1px solid #dfdfdf;
897
+ border-bottom: 1px solid #dfdfdf;
898
+ }
899
+
900
+ #aioseop_opengraph_settings_facebook_debug_result li.aioseop_opengraph_settings_facebook_debug_item {
901
+ display: inline-block;
902
+ width: 30%;
903
+ vertical-align: top;
904
+ }
905
+
906
+ #aioseop_opengraph_settings_facebook_debug_result li.aioseop_opengraph_settings_facebook_debug_item:nth-child(even) {
907
+ font-weight: bold;
908
+ }
909
+
910
+ #aioseop_opengraph_settings_facebook_debug_result li.aioseop_opengraph_settings_facebook_debug_item:nth-child(odd) {
911
+ width: 70%;
912
+ }
913
+
914
+ #aiosp_sitemap_addl_pages_metabox table.aioseop_table td,
915
+ #aiosp_video_sitemap_addl_pages_metabox table.aioseop_table td {
916
+ width: 25%;
917
+ padding-left: 5%;
918
+ }
919
+
920
+ table.aioseop_table td, table.aioseop_table th {
921
+ padding: 3px;
922
+ }
923
+
924
+ .aioseop_top_label .aioseop_option_input,
925
+ .aioseop_no_label .aioseop_option_input {
926
+ width: 100%;
927
+ }
928
+
929
+ #aiosp_settings_form .postbox {
930
+ margin: 0 0 20px 0;
931
+ }
932
+
933
+ .aioseop_settings_left .postbox {
934
+ float: left;
935
+ width: 100%;
936
+ }
937
+
938
+ .aioseop_option_setting_label {
939
+ min-height: 35px;
940
+ display: inline-block;
941
+ white-space: nowrap;
942
+ overflow: hidden;
943
+ padding-left: 1px;
944
+ max-width: 229px;
945
+ min-width: 160px;
946
+ width: 33%;
947
+ }
948
+
949
+ .aioseop_settings_left .postbox .inside {
950
+ padding: 0;
951
+ margin: 0;
952
+ clear: right;
953
+ }
954
+
955
+ #aiosp_settings_form .aioseop_no_label, .aioseop_no_label {
956
+ float: left;
957
+ width: 92%;
958
+ max-width: 100%;
959
+ margin: 0 23px 0 13px;
960
+ }
961
+
962
+ #aiosp_sitemap_status_metabox .handlediv.button-link {
963
+ display: none;
964
+ }
965
+
966
+ #aiosp_sitemap_status_metabox.closed .inside {
967
+ display: block;
968
+ }
969
+
970
+ .aioseop_top_label {
971
+ width: 96%;
972
+ margin: 0 10px;
973
+ }
974
+
975
+ .aioseop_hidden_type {
976
+ margin: 0;
977
+ padding: 0;
978
+ height: 0;
979
+ }
980
+
981
+ #aiosp_title_metabox #aiosp_force_rewrites_wrapper {
982
+ display: none;
983
+ height: 0;
984
+ }
985
+
986
+ .aioseop_module.error.below-h2 {
987
+ padding: 5px 0;
988
+ margin: 0 477px 15px 0 !important;
989
+ }
990
+
991
+ #aioseop_opengraph_settings .inside {
992
+ margin: 0;
993
+ }
994
+
995
+ #aioseop_opengraph_settings_image_wrapper img {
996
+ width: auto;
997
+ height: 75px;
998
+ }
999
+
1000
+ #aioseop_opengraph_settings_image_wrapper .aioseop_option_setting_label {
1001
+ max-width: 160px;
1002
+ min-width: 100px;
1003
+ width: 30%;
1004
+ }
1005
+
1006
+ .aioseop_input input[type="checkbox"],
1007
+ .aioseop_input input[type="radio"] {
1008
+ vertical-align: text-bottom;
1009
+ margin-top: 8px;
1010
+ }
1011
+
1012
+ #aiosp_importer_exporter_import_export_help_wrapper .aioseop_option_div {
1013
+ max-height: initial;
1014
+ }
1015
+
1016
+ #aiosp {
1017
+ width: auto;
1018
+ }
1019
+
1020
+ .aioseop_input.aioseop_top_label .aioseop_option_input {
1021
+ margin: 0 0 10px 0;
1022
+ }
1023
+
1024
+ .aiosp_file_editor_settings > .aioseop_textarea_type .aioseop_option_div {
1025
+ max-height: none;
1026
+ }
1027
+
1028
+ /* Robots.txt styling */
1029
+ #aiosp_robots_generator_robotgen_wrapper .aioseop_option_div,
1030
+ #aiosp_robots_generator_robothtml_wrapper .aioseop_option_div {
1031
+ max-height: none;
1032
+ }
1033
+
1034
+ .aioseop_option_input .widefat td {
1035
+ vertical-align: middle;
1036
+ }
1037
+
1038
+ .entry-row.robots.quirks {
1039
+ font-weight: bold;
1040
+ opacity: 1;
1041
+ }
1042
+
1043
+ .entry-row.robots {
1044
+ opacity: 0.8;
1045
+ }
1046
+
1047
+ .entry-row.robots.invalid {
1048
+ opacity: 1;
1049
+ font-weight: bold;
1050
+ }
1051
+
1052
+ .invalid .entry_label {
1053
+ font-weight: bold;
1054
+ }
1055
+
1056
+ .aioseop .aioseop_option_input tbody {
1057
+ background: #FCFCFC;
1058
+ }
1059
+
1060
+ .All_in_One_SEO_Pack_Robots .aioseop .aioseop_option_input tbody {
1061
+ background: transparent;
1062
+ }
1063
+
1064
+ .entry-row.robots div {
1065
+ height: 20px;
1066
+ vertical-align: middle;
1067
+ width: 90%;
1068
+ margin: 0 0 4px 0;
1069
+ }
1070
+
1071
+ .robots img {
1072
+ margin: 0 0 0 2px;
1073
+ opacity: 0.6;
1074
+ }
1075
+
1076
+ .aioseop_option_docs {
1077
+ width: 98%;
1078
+ display: none;
1079
+ border: 1px solid #D3D3D3;
1080
+ margin-top: 20px;
1081
+ padding: 1%;
1082
+ background-color: #EEE;
1083
+ }
1084
+
1085
+ .aioseop_option_docs h3 {
1086
+ background: none;
1087
+ }
1088
+
1089
+ div.aioseop_notice {
1090
+ position: relative;
1091
+ }
1092
+
1093
+ div.aioseop_notice a.aioseop_dismiss_link {
1094
+ position: absolute;
1095
+ top: 10px;
1096
+ right: 10px;
1097
+ }
1098
+
1099
+ .aioseop_error_notice {
1100
+ color: #f00;
1101
+ font-weight: bold;
1102
+ }
1103
+
1104
+ .aioseop_input select {
1105
+ margin: 7px 0;
1106
+ }
1107
+
1108
+ .aioseop_help_text ul {
1109
+ margin: 15px 0 0 20px;
1110
+ }
1111
+
1112
+ .aioseop_help_text ul li {
1113
+ line-height: 20px;
1114
+ margin: 0;
1115
+ }
1116
+
1117
+ .aioseop_sidebar #side-sortables {
1118
+ width: 98%;
1119
+ }
1120
+
1121
+ #aioseop_opengraph_settings .aioseop_option_label {
1122
+ width: 30%;
1123
+ }
1124
+
1125
+ .aioseop_tabs {
1126
+ padding-top: 6px;
1127
+ }
1128
+
1129
+ .aioseop_tabs.hide,
1130
+ .aioseop_header_tabs.hide {
1131
+ display: block !important;
1132
+ }
1133
+
1134
+ .aioseop_header_tabs li {
1135
+ display: inline;
1136
+ padding: 0;
1137
+ margin: 0;
1138
+ }
1139
+
1140
+ .aioseop_header_tabs {
1141
+ margin: 0;
1142
+ }
1143
+
1144
+ .aioseop_header_nav {
1145
+ margin: 0;
1146
+ }
1147
+
1148
+ .aioseop_header_tabs li a.aioseop_header_tab.active {
1149
+ background-color: rgb(255, 255, 255);
1150
+ border-bottom-color: rgba(255, 255, 255, 0.5);
1151
+ font-weight: bold;
1152
+ }
1153
+
1154
+ .aioseop_header_tabs li a.aioseop_header_tab {
1155
+ font-size: 14px;
1156
+ line-height: 37px;
1157
+ text-decoration: none;
1158
+ margin: 5px 5px 0 0;
1159
+ padding: 10px;
1160
+ cursor: pointer;
1161
+ -webkit-border-top-right-radius: 3px;
1162
+ -webkit-border-top-left-radius: 3px;
1163
+ border-top-right-radius: 3px;
1164
+ border-top-left-radius: 3px;
1165
+ background-color: #e5e5e5;
1166
+ border: 1px solid #ccc;
1167
+ color: #5F5F5F;
1168
+ }
1169
+
1170
+ .aioseop_header_tabs li:first-child a.aioseop_header_tab {
1171
+ border-left: solid 1px #CCC;
1172
+ margin-left: 5px;
1173
+ }
1174
+
1175
+ .aioseop_tab {
1176
+ border: solid 1px #CCC;
1177
+ background-color: rgb(255, 255, 255);
1178
+ background-color: rgba(255, 255, 255, 0.5);
1179
+ padding: 10px;
1180
+ }
1181
+
1182
+ .aioseop_loading {
1183
+ background-image: url('../../images/activity.gif');
1184
+ display: inline-block;
1185
+ width: 24px;
1186
+ height: 24px;
1187
+ margin: 0;
1188
+ padding: 0;
1189
+ vertical-align: bottom;
1190
+ }
1191
+
1192
+ .aiosp_delete_url {
1193
+ background-image: url('../../images/delete.png');
1194
+ display: inline-block;
1195
+ width: 16px;
1196
+ height: 16px;
1197
+ margin: 0;
1198
+ padding: 0;
1199
+ vertical-align: bottom;
1200
+ }
1201
+
1202
+ form#aiosp_settings_form,
1203
+ .aioseop_tabs_div {
1204
+ padding-right: 477px;
1205
+ }
1206
+
1207
+ .aioseop_tabs_div {
1208
+ margin-top: 10px;
1209
+ }
1210
+
1211
+ #aiosp_settings_form ul.sfwd_debug_settings li strong {
1212
+ display: block;
1213
+ float: left;
1214
+ text-align: right;
1215
+ background-color: #DDD;
1216
+ margin-right: 8px;
1217
+ padding: 1px 8px 1px 1px;
1218
+ overflow: auto;
1219
+ width: 200px;
1220
+ min-height: 16px;
1221
+ }
1222
+
1223
+ #aiosp_settings_form ul.sfwd_debug_settings li:nth-child(2n+1) strong {
1224
+ background-color: #CCC;
1225
+ }
1226
+
1227
+ #aiosp_settings_form ul.sfwd_debug_settings li {
1228
+ clear: left;
1229
+ margin: 0;
1230
+ padding: 0;
1231
+ background-color: #EEE;
1232
+ overflow: auto;
1233
+ max-width: 75%;
1234
+ min-width: 800px;
1235
+ }
1236
+
1237
+ #aiosp_settings_form ul.sfwd_debug_settings li:nth-child(2n) {
1238
+ background-color: #DDD;
1239
+ }
1240
+
1241
+ div.sfwd_debug_mail_sent {
1242
+ background-color: #080;
1243
+ border: 1px solid #0A0;
1244
+ margin: 10px 0 10px 0;
1245
+ width: 598px;
1246
+ color: #FFF;
1247
+ text-align: center;
1248
+ }
1249
+
1250
+ div.sfwd_debug_error {
1251
+ background-color: #F00;
1252
+ color: #FFF;
1253
+ border: 1px solid #A00;
1254
+ margin: 10px 0 10px 0;
1255
+ width: 598px;
1256
+ text-align: center;
1257
+ font-weight: bolder;
1258
+ }
1259
+
1260
+ #aiosp_performance_status_wrapper .aioseop_option_div {
1261
+ max-height: 420px;
1262
+ }
1263
+
1264
+ #aioseop_coming_soon, #aioseop_coming_soon2 {
1265
+ padding-top: 40px;
1266
+ text-align: center;
1267
+ height: 258px;
1268
+ font-size: 16px;
1269
+ }
1270
+
1271
+ .MRL {
1272
+ margin-left: 20px !important;
1273
+ margin-bottom: 10px !important;
1274
+ }
1275
+
1276
+ /**
1277
+ * Edit Post screen specific styling
1278
+ *
1279
+ */
1280
+ .postbox-container .aioseop_option_div {
1281
+ width: 100%;
1282
+ }
1283
+
1284
+ .postbox-container .aioseop_option_div input[type="text"],
1285
+ .postbox-container .aioseop_option_div textarea {
1286
+ width: 99%;
1287
+ max-width: 900px;
1288
+ }
1289
+
1290
+ .postbox-container .aioseop_option_label {
1291
+ max-width: none;
1292
+ height: auto !important;
1293
+ }
1294
+
1295
+ .postbox-container .aioseop_wrapper {
1296
+ padding: 0;
1297
+ }
1298
+
1299
+ .postbox-container .aioseop_input {
1300
+ display: block;
1301
+ margin-bottom: 10px;
1302
+ padding: 0;
1303
+ }
1304
+
1305
+ .postbox-container .aioseop_option_input {
1306
+ width: 63%;
1307
+ padding: 0;
1308
+ }
1309
+
1310
+ .postbox-container div#aiosp_upgrade_wrapper {
1311
+ float: none;
1312
+ width: auto;
1313
+ margin: 0;
1314
+ padding: 0;
1315
+ }
1316
+
1317
+ .postbox-container div#aiosp_upgrade_wrapper .aioseop_input {
1318
+ display: block;
1319
+ padding: 0;
1320
+ }
1321
+
1322
+ .postbox-container div#aiosp_upgrade_wrapper .aioseop_input .aioseop_option_input {
1323
+ float: none;
1324
+ width: auto;
1325
+ padding: 0;
1326
+ }
1327
+
1328
+ .postbox-container div#aiosp_upgrade_wrapper .aioseop_input .aioseop_option_input .aioseop_option_div {
1329
+ width: auto;
1330
+ min-height: 0;
1331
+ padding: 10px 0;
1332
+ }
1333
+
1334
+ .aioseop_tabs .aioseop_options {
1335
+ margin: 0;
1336
+ }
1337
+
1338
+ #aioseop_opengraph_settings .aioseop_options {
1339
+ clear: both;
1340
+ margin-top: 35px;
1341
+ }
1342
+
1343
+ #aioseop_opengraph_settings .aioseop_option_input {
1344
+ width: 70%;
1345
+ }
1346
+
1347
+ /**
1348
+ * Preview Snippet styling
1349
+ *
1350
+ */
1351
+ div#aiosp_snippet_wrapper {
1352
+ border: 1px solid #888;
1353
+ clear: both;
1354
+ padding: 10px 10px 0;
1355
+ max-width: 97%;
1356
+ margin-bottom: 15px;
1357
+ }
1358
+
1359
+ div#aiosp_snippet_wrapper .aioseop_option_label {
1360
+ height: auto !important;
1361
+ }
1362
+
1363
+ div#aiosp_snippet_wrapper .aioseop_input.aioseop_top_label .aioseop_option_input {
1364
+ margin: 0;
1365
+ }
1366
+
1367
+ div#aioseop_snippet {
1368
+ font-family: arial, sans-serif;
1369
+ font-size: 13px;
1370
+ }
1371
+
1372
+ div#aioseop_snippet > h3 {
1373
+ margin: 10px 0 5px;
1374
+ font-size: 18px;
1375
+ border: 0;
1376
+ background: inherit;
1377
+ font-weight: normal;
1378
+ }
1379
+
1380
+ div#aioseop_snippet > h3 > a {
1381
+ color: #12c;
1382
+ text-decoration: none;
1383
+ cursor: pointer;
1384
+ }
1385
+
1386
+ div#aioseop_snippet > div {
1387
+ color: #545454;
1388
+ max-width: 48em;
1389
+ }
1390
+
1391
+ div#aioseop_snippet > div > div {
1392
+ display: block;
1393
+ margin-bottom: 1px;
1394
+ }
1395
+
1396
+ div#aioseop_snippet > div > div > cite {
1397
+ color: #093;
1398
+ font-style: normal;
1399
+ }
1400
+
1401
+ div#aioseop_snippet > div > span {
1402
+ margin: 0;
1403
+ padding: 0;
1404
+ border: 0;
1405
+ }
1406
+
1407
+ /* the good, the bad and the ugly character counts */
1408
+ .aioseop_count_good {
1409
+ color: #515151 !important;
1410
+ background-color: #eee !important;
1411
+ }
1412
+ .aioseop_count_bad {
1413
+ color: #515151 !important;
1414
+ background-color: #ff0 !important;
1415
+ }
1416
+ .aioseop_count_ugly {
1417
+ color: #fff !important;
1418
+ background-color: #f00 !important;
1419
+ }
inc/aioseop_functions.php CHANGED
@@ -1048,3 +1048,26 @@ if ( ! function_exists( 'aiosp_include_images' ) ) {
1048
  return true;
1049
  }
1050
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1048
  return true;
1049
  }
1050
  }
1051
+
1052
+
1053
+ if ( ! function_exists( 'aioseop_formatted_date' ) ) {
1054
+ /**
1055
+ * Get formatted date. For custom formatting, the user has 2 options:
1056
+ * 1. provide the native date_i18n filter.
1057
+ * 2. provide a custom aioseop_format_date filter.
1058
+ *
1059
+ * @param int $date Date in UNIX timestamp format.
1060
+ * @param string $format Require date format.
1061
+ */
1062
+ function aioseop_formatted_date( $date = null, $format = null ) {
1063
+ if ( ! $format ) {
1064
+ $format = get_option( 'date_format' );
1065
+ }
1066
+ if ( ! $date ) {
1067
+ $date = time();
1068
+ }
1069
+
1070
+ $formatted_date = date_i18n( $format, $date );
1071
+ return apply_filters( 'aioseop_format_date', $formatted_date, $date, $format );
1072
+ }
1073
+ }
inc/aiosp_common.php CHANGED
@@ -116,8 +116,15 @@ class aiosp_common {
116
  * @return string
117
  */
118
  static function absolutize_url( $url ) {
119
- if ( strpos( $url, 'http' ) !== 0 && strpos( $url, '//' ) !== 0 && $url != '/' ) {
120
- $url = home_url( $url );
 
 
 
 
 
 
 
121
  }
122
  return $url;
123
  }
116
  * @return string
117
  */
118
  static function absolutize_url( $url ) {
119
+ if ( 0 !== strpos( $url, 'http' ) && '/' !== $url ) {
120
+ if ( 0 === strpos( $url, '//' ) ) {
121
+ // for //<host>/resource type urls.
122
+ $scheme = parse_url( home_url(), PHP_URL_SCHEME );
123
+ $url = $scheme . ':' . $url;
124
+ } else {
125
+ // for /resource type urls.
126
+ $url = home_url( $url );
127
+ }
128
  }
129
  return $url;
130
  }
inc/deprecated.php DELETED
@@ -1,286 +0,0 @@
1
- <?php
2
-
3
- /**
4
- * @return bool
5
- */
6
- function oauth_init() {
7
- if ( ! is_user_logged_in() || ! current_user_can( 'aiosp_manage_seo' ) ) {
8
- return false;
9
- }
10
- $this->token = 'anonymous';
11
- $this->secret = 'anonymous';
12
- $preload = $this->get_class_option();
13
- $manual_ua = '';
14
- if ( ! empty( $_POST ) ) {
15
- if ( ! empty( $_POST[ "{$this->prefix}google_connect" ] ) ) {
16
- $manual_ua = 1;
17
- }
18
- } elseif ( ! empty( $preload[ "{$this->prefix}google_connect" ] ) ) {
19
- $manual_ua = 1;
20
- }
21
- if ( ! empty( $manual_ua ) ) {
22
- foreach ( array( 'token', 'secret', 'access_token', 'ga_token', 'account_cache' ) as $v ) {
23
- if ( ! empty( $preload[ "{$this->prefix}{$v}" ] ) ) {
24
- unset( $preload[ "{$this->prefix}{$v}" ] );
25
- unset( $this->$v );
26
- }
27
- }
28
- $this->update_class_option( $preload );
29
- $this->update_options();
30
- // return;
31
- }
32
- foreach ( array( 'token', 'secret', 'access_token', 'ga_token', 'account_cache' ) as $v ) {
33
- if ( ! empty( $preload[ "{$this->prefix}{$v}" ] ) ) {
34
- $this->$v = $preload[ "{$this->prefix}{$v}" ];
35
- }
36
- }
37
- $callback_url = null;
38
- if ( ! empty( $_REQUEST['oauth_verifier'] ) ) {
39
- $this->verifier = $_REQUEST['oauth_verifier'];
40
- if ( ! empty( $_REQUEST['oauth_token'] ) ) {
41
- if ( isset( $this->token ) && $this->token === $_REQUEST['oauth_token'] ) {
42
- $this->access_token = $this->oauth_get_token( $this->verifier );
43
- if ( is_array( $this->access_token ) && ! empty( $this->access_token['oauth_token'] ) ) {
44
- unset( $this->token );
45
- unset( $this->secret );
46
- $this->ga_token = $this->access_token['oauth_token'];
47
- foreach ( array( 'token', 'secret', 'access_token', 'ga_token' ) as $v ) {
48
- if ( ! empty( $this->$v ) ) {
49
- $preload[ "{$this->prefix}{$v}" ] = $this->$v;
50
- }
51
- }
52
- $this->update_class_option( $preload );
53
- }
54
- }
55
- wp_redirect( menu_page_url( plugin_basename( $this->file ), false ) );
56
- exit;
57
- }
58
- }
59
- if ( ! empty( $this->ga_token ) ) {
60
- if ( ! empty( $this->account_cache ) ) {
61
- $ua = $this->account_cache['ua'];
62
- $profiles = $this->account_cache['profiles'];
63
- } else {
64
- $this->token = $this->access_token['oauth_token'];
65
- $this->secret = $this->access_token['oauth_token_secret'];
66
-
67
- $data = $this->oauth_get_data( 'https://www.googleapis.com/analytics/v2.4/management/accounts/~all/webproperties/~all/profiles' );
68
-
69
- $http_code = wp_remote_retrieve_response_code( $data );
70
-
71
- if ( 200 === $http_code ) {
72
- $response = wp_remote_retrieve_body( $data );
73
- $xml = $this->xml_string_to_array( $response );
74
- $ua = array();
75
- $profiles = array();
76
- if ( ! empty( $xml['entry'] ) ) {
77
- $rec = array();
78
- $results = array();
79
- if ( ! empty( $xml['entry'][0] ) ) {
80
- $results = $xml['entry'];
81
- } else {
82
- $results[] = $xml['entry'];
83
- }
84
- foreach ( $results as $r ) {
85
- foreach ( $r as $k => $v ) {
86
- switch ( $k ) {
87
- case 'id':
88
- $rec['id'] = $v;
89
- break;
90
- case 'title':
91
- $rec['title'] = $v['@content'];
92
- break;
93
- case 'dxp:property':
94
- $attr = array();
95
- foreach ( $v as $a => $f ) {
96
- if ( is_array( $f ) && ! empty( $f['@attributes'] ) ) {
97
- $rec[ $f['@attributes']['name'] ] = $f['@attributes']['value'];
98
- }
99
- }
100
- break;
101
- }
102
- }
103
- $ua[ $rec['title'] ] = array( $rec['ga:webPropertyId'] => $rec['ga:webPropertyId'] );
104
- $profiles[ $rec['ga:webPropertyId'] ] = $rec['ga:profileId'];
105
- }
106
- }
107
- $this->account_cache = array();
108
- $this->account_cache['ua'] = $ua;
109
- $this->account_cache['profiles'] = $profiles;
110
- $preload[ "{$this->prefix}account_cache" ] = $this->account_cache;
111
- } else {
112
- unset( $this->token );
113
- unset( $this->secret );
114
- unset( $this->ga_token );
115
- unset( $preload[ "{$this->prefix}ga_token" ] ); // error condition here -- pdb
116
- $response = wp_remote_retrieve_body( $data );
117
- $xml = $this->xml_string_to_array( $response );
118
- if ( ! empty( $xml ) && ! empty( $xml['error'] ) ) {
119
- $error = 'Error: ';
120
- if ( ! empty( $xml['error']['internalReason'] ) ) {
121
- $error .= $xml['error']['internalReason'];
122
- } else {
123
- foreach ( $xml['error'] as $k => $v ) {
124
- $error .= "$k: $v\n";
125
- }
126
- }
127
- $this->output_error( $error );
128
- }
129
- }
130
- }
131
- }
132
- if ( ! empty( $this->ga_token ) ) {
133
- $this->default_options['google_analytics_id']['type'] = 'select';
134
- $this->default_options['google_analytics_id']['initial_options'] = $ua;
135
- $this->default_options['google_connect']['type'] = 'html';
136
- $this->default_options['google_connect']['nolabel'] = 1;
137
- $this->default_options['google_connect']['save'] = true;
138
- $this->default_options['google_connect']['name'] = __( 'Disconnect From Google Analytics', 'all-in-one-seo-pack' );
139
- $this->default_options['google_connect']['default'] = "<input name='aiosp_google_connect' type=submit class='button-primary' value='" . __( 'Remove Stored Credentials', 'all-in-one-seo-pack' ) . "'>";
140
- add_filter( $this->prefix . 'override_options', array( $this, 'override_options' ), 10, 3 );
141
- } else {
142
- $this->default_options['google_connect']['type'] = 'html';
143
- $this->default_options['google_connect']['nolabel'] = 1;
144
- $this->default_options['google_connect']['save'] = false;
145
- $url = $this->oauth_connect();
146
- $this->default_options['google_connect']['default'] = "<a href='{$url}' class='button-primary'>" . __( 'Connect With Google Analytics', 'all-in-one-seo-pack' ) . '</a>';
147
- foreach ( array( 'token', 'secret', 'access_token', 'ga_token', 'account_cache' ) as $v ) {
148
- if ( ! empty( $this->$v ) ) {
149
- $preload[ "{$this->prefix}{$v}" ] = $this->$v;
150
- }
151
- }
152
- }
153
- $this->update_class_option( $preload );
154
- $this->update_options();
155
- // $url = $this->report_query();
156
- if ( ! empty( $this->account_cache ) && ! empty( $this->options[ "{$this->prefix}google_analytics_id" ] ) && ! empty( $this->account_cache['profiles'][ $this->options[ "{$this->prefix}google_analytics_id" ] ] ) ) {
157
- $this->profile_id = $this->account_cache['profiles'][ $this->options[ "{$this->prefix}google_analytics_id" ] ];
158
- }
159
- }
160
-
161
- /**
162
- * @param $oauth_url
163
- * @param null $args
164
- *
165
- * @return array|WP_Error
166
- */
167
- function oauth_get_data( $oauth_url, $args = null ) {
168
- if ( ! class_exists( 'OAuthConsumer' ) ) {
169
- require_once( AIOSEOP_PLUGIN_DIR . 'inc/extlib/OAuth.php' );
170
- }
171
- if ( $args === null ) {
172
- $args = array(
173
- 'scope' => 'https://www.googleapis.com/auth/analytics.readonly',
174
- 'xoauth_displayname' => AIOSEOP_PLUGIN_NAME . ' ' . __( 'Google Analytics', 'all-in-one-seo-pack' ),
175
- );
176
- }
177
- $req_token = new OAuthConsumer( $this->token, $this->secret );
178
- $req = $this->oauth_get_creds( $oauth_url, $req_token, $args );
179
-
180
- return wp_remote_get( $req->to_url() );
181
- }
182
-
183
- /**
184
- * @param $oauth_url
185
- * @param null $req_token
186
- * @param array $args
187
- * @param null $callback
188
- *
189
- * @return OAuthRequest
190
- */
191
- function oauth_get_creds( $oauth_url, $req_token = null, $args = array(), $callback = null ) {
192
- if ( ! class_exists( 'OAuthConsumer' ) ) {
193
- require_once( AIOSEOP_PLUGIN_DIR . 'inc/extlib/OAuth.php' );
194
- }
195
- if ( ! empty( $callback ) ) {
196
- $args['oauth_callback'] = $callback;
197
- }
198
- if ( empty( $this->sig_method ) ) {
199
- $this->sig_method = new OAuthSignatureMethod_HMAC_SHA1();
200
- }
201
- if ( empty( $this->consumer ) ) {
202
- $this->consumer = new OAuthCOnsumer( 'anonymous', 'anonymous' );
203
- }
204
- $req_req = OAuthRequest::from_consumer_and_token( $this->consumer, $req_token, 'GET', $oauth_url, $args );
205
- $req_req->sign_request( $this->sig_method, $this->consumer, $req_token );
206
-
207
- return $req_req;
208
- }
209
-
210
- /**
211
- * @param $oauth_verifier
212
- *
213
- * @return array
214
- */
215
- function oauth_get_token( $oauth_verifier ) {
216
- if ( ! class_exists( 'OAuthConsumer' ) ) {
217
- require_once( AIOSEOP_PLUGIN_DIR . 'inc/extlib/OAuth.php' );
218
- }
219
- $args = array(
220
- 'scope' => 'https://www.google.com/analytics/feeds/',
221
- 'xoauth_displayname' => AIOSEOP_PLUGIN_NAME . ' ' . __( 'Google Analytics', 'all-in-one-seo-pack' ),
222
- );
223
- $args['oauth_verifier'] = $oauth_verifier;
224
- $oauth_access_token = 'https://www.google.com/accounts/OAuthGetAccessToken';
225
- $reqData = $this->oauth_get_data( $oauth_access_token, $args );
226
- $reqOAuthData = OAuthUtil::parse_parameters( wp_remote_retrieve_body( $reqData ) );
227
-
228
- return $reqOAuthData;
229
- }
230
-
231
- /**
232
- * @param int $count
233
- *
234
- * @return string
235
- */
236
- function oauth_connect( $count = 0 ) {
237
- global $aiosp_activation;
238
- if ( ! class_exists( 'OAuthConsumer' ) ) {
239
- require_once( AIOSEOP_PLUGIN_DIR . 'inc/extlib/OAuth.php' );
240
- }
241
- $url = '';
242
- $callback_url = null;
243
- $consumer_key = 'anonymous';
244
- $consumer_secret = 'anonymous';
245
- $oauth_request_token = 'https://www.google.com/accounts/OAuthGetRequestToken';
246
- $oauth_authorize = 'https://www.google.com/accounts/OAuthAuthorizeToken';
247
- $oauth_access_token = 'https://www.google.com/accounts/OAuthGetAccessToken';
248
- if ( $aiosp_activation ) {
249
- $oauth_current = false;
250
- } else {
251
- $oauth_current = get_transient( 'aioseop_oauth_current' );
252
- }
253
- if ( ! empty( $this->token ) && ( $this->token != 'anonymous' ) && $oauth_current ) {
254
- return $oauth_authorize . '?oauth_token=' . $this->token;
255
- } else {
256
- set_transient( 'aioseop_oauth_current', 1, 3600 );
257
- unset( $this->token );
258
- unset( $this->secret );
259
- }
260
- $args = array(
261
- 'scope' => 'https://www.google.com/analytics/feeds/',
262
- 'xoauth_displayname' => AIOSEOP_PLUGIN_NAME . ' ' . __( 'Google Analytics', 'all-in-one-seo-pack' ),
263
- );
264
- if ( AIOSEOPPRO ) {
265
- $req_req = $this->oauth_get_creds( $oauth_request_token, null, $args, admin_url( 'admin.php?page=all-in-one-seo-pack-pro/aioseop_class.php' ) );
266
- } else {
267
- $req_req = $this->oauth_get_creds( $oauth_request_token, null, $args, admin_url( 'admin.php?page=all-in-one-seo-pack/aioseop_class.php' ) );
268
- }
269
- $reqData = wp_remote_get( $req_req->to_url() );
270
- $reqOAuthData = OAuthUtil::parse_parameters( wp_remote_retrieve_body( $reqData ) );
271
- if ( ! empty( $reqOAuthData['oauth_token'] ) ) {
272
- $this->token = $reqOAuthData['oauth_token'];
273
- }
274
- if ( ! empty( $reqOAuthData['oauth_token_secret'] ) ) {
275
- $this->secret = $reqOAuthData['oauth_token_secret'];
276
- }
277
- if ( ! empty( $this->token ) && ( $this->token != 'anonymous' ) && $oauth_current ) {
278
- $url = $oauth_authorize . "?oauth_token={$this->token}";
279
- } else {
280
- if ( ! $count ) {
281
- return $this->oauth_connect( 1 );
282
- }
283
- }
284
-
285
- return $url;
286
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
js/modules/aioseop_module.js CHANGED
@@ -1,817 +1,834 @@
1
- /**
2
- * Controls all the styling of the plugin.
3
- *
4
- * AIOSEOP Updates class.
5
- * @author Michael Torbert.
6
- * @author Semper Fi Web Design.
7
- * @copyright https://semperplugins.com
8
- * @version 1.0.0
9
- */
10
- if ( typeof aiosp_data != 'undefined' ) {
11
-
12
- /**
13
- * @since 1.0.0
14
- * @param int $index.
15
- * @param $value
16
- */
17
- jQuery.each(
18
- aiosp_data, function( index, value ) {
19
- // aiosp_data[index] = value.json.replace(/&quot;/g, '"');
20
- // aiosp_data[index] = jQuery.parseJSON( value );
21
- if ( index == 0 ) {
22
- if ( typeof value.condshow == 'undefined' ) {
23
- aiosp_data[ index ].condshow = [];
24
- }
25
- } else {
26
- if ( typeof value.condshow != 'undefined' ) {
27
- aiosp_data[ 0 ].condshow =
28
- jQuery.merge( aiosp_data[0].condshow, value.condshow );
29
- }
30
- }
31
- }
32
- );
33
- aiosp_data = aiosp_data[0];
34
- }
35
-
36
- /**
37
- * @summary Changes visibility.
38
- *
39
- * @since 1.0.0
40
- * @param int $id.
41
- */
42
- function toggleVisibility( id ) {
43
- var e = document.getElementById( id );
44
- if ( e.style.display == 'block' ) {
45
- e.style.display = 'none';
46
- } else {
47
- e.style.display = 'block';
48
- }
49
- }
50
-
51
- /**
52
- * @summary Counts characters.
53
- *
54
- * @since 1.0.0
55
- * @param String $field.
56
- * @param Int $cntfield.
57
- * @return Mixed.
58
- */
59
- function countChars( field, cntfield ) {
60
- var extra = 0;
61
- var field_size;
62
- if ( ( field.name == 'aiosp_title' ) && ( typeof aiosp_title_extra !== 'undefined' ) ) {
63
- extra = aiosp_title_extra;
64
- }
65
- cntfield.value = field.value.length + extra;
66
- if ( typeof field.size != 'undefined' ) {
67
- field_size = field.size;
68
- } else {
69
- field_size = field.rows * field.cols;
70
- }
71
- if ( field_size < 10 ) {
72
- return;
73
- }
74
- if ( cntfield.value > field_size ) {
75
- cntfield.style.color = "#fff";
76
- cntfield.style.backgroundColor = "#f00";
77
- } else {
78
- if ( cntfield.value > ( field_size - 91 ) ) {
79
- cntfield.style.color = "#515151";
80
- cntfield.style.backgroundColor = "#ff0";
81
- } else {
82
- cntfield.style.color = "#515151";
83
- cntfield.style.backgroundColor = "#eee";
84
- }
85
- }
86
- }
87
-
88
- /**
89
- * @summary Returns the fields value.
90
- *
91
- * @since 1.0.0
92
- * @param String $field.
93
- * @return Mixed.
94
- */
95
- function aioseop_get_field_value( field ) {
96
- if ( field.length == 0 ) {
97
- return field;
98
- }
99
- cur = jQuery( '[name=' + field + ']' );
100
- if ( cur.length == 0 ) {
101
- return field;
102
- }
103
- type = cur.attr( 'type' );
104
- if ( type == "checkbox" || type == "radio" ) {
105
- cur = jQuery( 'input[name=' + field + ']:checked' );
106
- }
107
- return cur.val();
108
- }
109
-
110
- /**
111
- * @summary Returns the fields value.
112
- *
113
- * @since 1.0.0
114
- * @param String $field.
115
- * @return Mixed.
116
- */
117
- function aioseop_get_field_values( field ) {
118
- arr = [];
119
- cur = jQuery( '[name=' + field + ']' );
120
- if ( cur.length == 0 ) {
121
- return field;
122
- }
123
- type = cur.attr( 'type' );
124
- if ( type == "checkbox" || type == "radio" ) {
125
- jQuery( 'input[name=' + field + ']:checked' ).each(
126
- function() {
127
- arr.push( jQuery( this ).val() );
128
- }
129
- );
130
- }
131
- if ( arr.length <= 0 ) {
132
- arr.push( cur.val() );
133
- }
134
- return arr;
135
- }
136
-
137
- /**
138
- * @summary Evaluates condshow logic.
139
- *
140
- * @since 1.0.0
141
- * @param String $statement.
142
- * @return Mixed.
143
- */
144
- function aioseop_eval_condshow_logic( statement ) {
145
- var lhs, rhs;
146
- if ( ( typeof statement ) == 'object' ) {
147
- lhs = statement.lhs;
148
- rhs = statement.rhs;
149
- if ( lhs !== null && ( ( typeof lhs ) == 'object' ) ) {
150
- lhs = aioseop_eval_condshow_logic( lhs );
151
- }
152
- if ( rhs !== null && ( typeof rhs ) == 'object' ) {
153
- rhs = aioseop_eval_condshow_logic( rhs );
154
- }
155
- lhs = aioseop_get_field_value( lhs );
156
- rhs = aioseop_get_field_value( rhs );
157
- switch ( statement.op ) {
158
- case 'NOT':
159
- return ( ! lhs );
160
- case 'AND':
161
- return ( lhs && rhs );
162
- case 'OR' :
163
- return ( lhs || rhs );
164
- case '==' :
165
- return ( lhs == rhs );
166
- case '!=' :
167
- return ( lhs != rhs );
168
- default :
169
- return null;
170
- }
171
- }
172
- return statement;
173
- }
174
-
175
- /**
176
- * @summary Evaluates condshow logic.
177
- *
178
- * @since 1.0.0
179
- * @param String $index.
180
- * @param $value.
181
- * @return Mixed.
182
- */
183
- function aioseop_do_condshow_match( index, value ) {
184
- if ( typeof value != 'undefined' ) {
185
- matches = true;
186
- jQuery.each(
187
- value, function(subopt, setting) {
188
- var statement;
189
- if ( ( typeof setting ) == 'object' ) {
190
- statement = aioseop_eval_condshow_logic( setting );
191
- if ( ! statement ) {
192
- matches = false;
193
- }
194
- } else {
195
- if ( subopt.match( /\\\[\\\]/ ) ) { // special case for these -- pdb
196
- cur = aioseop_get_field_values( subopt );
197
- if ( jQuery.inArray( setting, cur, 0 ) < 0 ) {
198
- matches = false;
199
- }
200
- } else {
201
- cur = aioseop_get_field_value( subopt );
202
- if ( cur != setting ) {
203
- matches = false;
204
- }
205
- }
206
- }
207
- }
208
- );
209
- if ( matches ) {
210
- jQuery( '#' + index + '_wrapper' ).show();
211
- } else {
212
- jQuery( '#' + index + '_wrapper' ).hide();
213
- }
214
- return matches;
215
- }
216
- return false;
217
- }
218
-
219
- /**
220
- * @summary Adds condshow handlers.
221
- *
222
- * @since 1.0.0
223
- * @param String $index.
224
- * @param $value.
225
- */
226
- function aioseop_add_condshow_handlers( index, value ) {
227
- if ( typeof value != 'undefined' ) {
228
- jQuery.each(
229
- value, function(subopt, setting) {
230
- jQuery( '[name=' + subopt + ']' ).bind(
231
- "change keyup", function() {
232
- aioseop_do_condshow_match( index, value );
233
- }
234
- );
235
- }
236
- );
237
- }
238
- }
239
-
240
- /**
241
- * @summary Does condshow.
242
- *
243
- * @since 1.0.0
244
- * @param $condshow.
245
- */
246
- function aioseop_do_condshow( condshow ) {
247
- if ( typeof aiosp_data.condshow != 'undefined' ) {
248
- jQuery.each(
249
- aiosp_data.condshow, function( index, value ) {
250
- aioseop_do_condshow_match( index, value );
251
- aioseop_add_condshow_handlers( index, value );
252
- }
253
- );
254
- }
255
- }
256
-
257
- /**
258
- * @since 1.0.0
259
- */
260
- jQuery( document ).ready(
261
- function() {
262
- if ( typeof aiosp_data != 'undefined' ) {
263
- if ( typeof aiosp_data.condshow != 'undefined' ) {
264
- aioseop_do_condshow( aiosp_data.condshow );
265
- }
266
- }
267
-
268
- /**
269
- * Turns on image checker on custom url change.
270
- * @since 2.3.16
271
- */
272
- jQuery( '.aioseop_upload_image_label' ).on(
273
- 'change', function() {
274
- this.checker = jQuery( this ).parent().find( '.aioseop_upload_image_checker' );
275
- if ( this.checker.length > 0 ) {
276
- this.checker.val( 1 );
277
- }
278
- }
279
- );
280
- }
281
- );
282
-
283
- /**
284
- * @summary Custom jQuery plugin that enables image uploader in wordpress.
285
- *
286
- * @since 2.3.13
287
- * @since 2.4.14 Added success callback and options.
288
- * @see http://www.webmaster-source.com/2013/02/06/using-the-wordpress-3-5-media-uploader-in-your-plugin-or-theme/
289
- *
290
- * @param object options Plugin options.
291
- */
292
- jQuery.fn.aioseopImageUploader = function( options ) {
293
- // Keep reference to this.
294
- var self = this;
295
-
296
- // Options
297
- self.options = jQuery.extend(
298
- {
299
- success: undefined,
300
- }, options
301
- );
302
-
303
- // Set input target when to update image url value
304
- self.target = jQuery( self ).next();
305
-
306
- // Uploader per image button
307
- // * Having only one uploader was causing problems when multiple image buttons where in place
308
- self.uploader = wp.media(
309
- {
310
- title: 'Choose Image',
311
- button: {
312
- text: 'Choose Image'
313
- },
314
- multiple: false
315
- }
316
- );
317
-
318
- /**
319
- * Event handler that will be called when an image is selected from media uploader.
320
- */
321
- self.onSelect = function() {
322
- var url = self.uploader.state().get( 'selection' ).first().toJSON().url;
323
- if ( self.target.length >= 0 ) {
324
- jQuery( self.target ).val( url );
325
- }
326
- if ( self.options.success !== undefined ) {
327
- self.options.success( url, self );
328
- }
329
- };
330
-
331
- /**
332
- * Click event handler.
333
- * @param object e Click event.
334
- */
335
- self.onClick = function( e ) {
336
- e.preventDefault();
337
- self.uploader.open();
338
- };
339
-
340
- // Set uploader select handler
341
- self.uploader.on( 'select', self.onSelect );
342
-
343
- // Set click handler
344
- jQuery( self ).click( self.onClick );
345
- };
346
-
347
- /**
348
- * @summary Javascript for using WP media uploader. Indentifies which DOM should use custom uploader plugin.
349
- *
350
- * @see http://www.webmaster-source.com/2013/02/06/using-the-wordpress-3-5-media-uploader-in-your-plugin-or-theme/
351
- * @since ?
352
- * @since 2.3.11.2 Use WP 3.5 new media uploader
353
- * @since 2.3.13 Fixed issue #[740](https://github.com/semperfiwebdesign/all-in-one-seo-pack/issues/740)
354
- *
355
- */
356
- jQuery( document ).ready(
357
- function($){
358
-
359
- jQuery( '.aioseop_upload_image_button' ).each(
360
- function() {
361
- jQuery( this ).aioseopImageUploader(
362
- {
363
- success: function( url, el ) {
364
- // Update checker
365
- if ( jQuery( el ).prev().length > 0 ) {
366
- jQuery( el ).prev().val( 1 );
367
- }
368
- },
369
- }
370
- );
371
- }
372
- );
373
-
374
- }
375
- );
376
-
377
- /**
378
- * @summary workaround for bug that causes radio inputs to lose settings when meta box is dragged.
379
- *
380
- * props to commentluv for this fix
381
- * @author commentluv.
382
- * @link https://core.trac.wordpress.org/ticket/16972
383
- * @since 1.0.0
384
- */
385
- jQuery( document ).ready(
386
- function() {
387
-
388
- // listen for drag drop of metaboxes , bind mousedown to .hndle so it only fires when starting to drag
389
- jQuery( '.hndle' ).mousedown(
390
- function() {
391
-
392
- // set live event listener for mouse up on the content .wrap and wait a tick to give the dragged div time to settle before firing the reclick function
393
- jQuery( '.wrap' ).mouseup(
394
- function() {
395
- aiosp_store_radio();
396
- setTimeout( function() {
397
- aiosp_reclick_radio();
398
- }, 50 );
399
- }
400
- );
401
- }
402
- );
403
- }
404
- );
405
-
406
- /**
407
- * @summary Stores object of all radio buttons that are checked for entire form.
408
- *
409
- * @since 1.0.0
410
- */
411
- function aiosp_store_radio() {
412
- var radioshack = {};
413
- jQuery( 'input[type="radio"]' ).each(
414
- function() {
415
- if ( jQuery( this ).is( ':checked' ) ) {
416
- radioshack[ jQuery( this ).attr( 'name' ) ] = jQuery( this ).val();
417
- }
418
- jQuery( document ).data( 'radioshack', radioshack );
419
- }
420
- );
421
- }
422
-
423
- /**
424
- * @summary Detects mouseup and restore all radio buttons that were checked.
425
- *
426
- * @since 1.0.0
427
- */
428
- function aiosp_reclick_radio() {
429
-
430
- // gets the object of checked radio button names and values
431
- var radios = jQuery( document ).data( 'radioshack' );
432
-
433
- // steps thru each object element and trigger a click on it's corresponding radio button
434
- for ( var key in radios ) {
435
- jQuery( 'input[name="' + key + '"]' )
436
- .filter( '[value="' + radios[ key ] + '"]' )
437
- .trigger( 'click' );
438
- }
439
- // unbinds the event listener on .wrap (prevents clicks on inputs from triggering function)
440
- jQuery( '.wrap' ).unbind( 'mouseup' );
441
- }
442
-
443
- /**
444
- * @summary Handdles ajax call.
445
- *
446
- * @since 1.0.0
447
- * @param $action.
448
- * @param $setting.
449
- * @param $options.
450
- * @param $success.
451
- */
452
- function aioseop_handle_ajax_call( action, settings, options, success ) {
453
- var aioseop_sack = new sack( ajaxurl );
454
- aioseop_sack.execute = 1;
455
- aioseop_sack.method = 'POST';
456
- aioseop_sack.setVar( "action", action );
457
- aioseop_sack.setVar( "settings", settings );
458
- aioseop_sack.setVar( "options", options );
459
- if ( typeof success != 'undefined' ) {
460
- aioseop_sack.onCompletion = success;
461
- }
462
- aioseop_sack.setVar(
463
- "nonce-aioseop",
464
- jQuery( 'input[name="nonce-aioseop"]' ).val()
465
- );
466
- aioseop_sack.setVar(
467
- "nonce-aioseop-edit",
468
- jQuery( 'input[name="nonce-aioseop-edit"]' ).val()
469
- );
470
- aioseop_sack.onError = function() {
471
- alert( 'Ajax error on saving.' );
472
- };
473
- aioseop_sack.runAJAX();
474
- }
475
-
476
- /**
477
- * @summary Handdles posts URL.
478
- *
479
- * @since 1.0.0
480
- * @param $action.
481
- * @param $setting.
482
- * @param $options.
483
- * @param $success.
484
- */
485
- function aioseop_handle_post_url( action, settings, options, success) {
486
- jQuery( "div#aiosp_" + settings ).fadeOut(
487
- 'fast', function() {
488
- var loading = '<label class="aioseop_loading aioseop_' + settings + '_loading"></label> Please wait...';
489
- jQuery( "div#aiosp_" + settings ).fadeIn(
490
- 'fast', function() {
491
- aioseop_handle_ajax_call( action, settings, options, success );
492
- }
493
- );
494
- jQuery( "div#aiosp_" + settings ).html( loading );
495
- }
496
- );
497
- }
498
-
499
- /**
500
- * @summary Handles when AIOSEOP is overflowed.
501
- *
502
- * @since 1.0.0
503
- * @param $element.
504
- * @return mixed.
505
- */
506
- function aioseop_is_overflowed( element ) {
507
- return element.scrollHeight > element.clientHeight || element.scrollWidth > element.clientWidth;
508
- }
509
-
510
- /**
511
- * @summary Handles when overflowed border.
512
- *
513
- * @since 1.0.0
514
- * @param $el.
515
- */
516
- function aioseop_overflow_border( el ) {
517
- if ( aioseop_is_overflowed( el ) ) {
518
- el.className = 'aioseop_option_div aioseop_overflowed';
519
- } else {
520
- el.className = 'aioseop_option_div';
521
- }
522
- }
523
-
524
- /**
525
- * @since 1.0.0
526
- * @return mixed.
527
- */
528
- jQuery( document ).ready(
529
- function() {
530
- jQuery( "#poststuff .aioseop_radio_type input[type='radio']" ).on(
531
- 'click', function() {
532
- var previousValue = jQuery( this ).attr( 'previousValue' );
533
- var name = jQuery( this ).attr( 'name' );
534
- if ( typeof previousValue == 'undefined' ) {
535
- if ( jQuery( this ).prop( "checked" ) ) {
536
- jQuery( this ).prop( 'checked', true );
537
- jQuery( this ).attr( 'previousValue', 'checked' );
538
- } else {
539
- jQuery( this ).prop( 'checked', false );
540
- jQuery( this ).attr( 'previousValue', false );
541
- }
542
- return;
543
- }
544
- if ( previousValue == 'checked' ) {
545
- jQuery( this ).prop( 'checked', false );
546
- jQuery( this ).attr( 'previousValue', false );
547
- } else {
548
- jQuery( "input[name=" + name + "]:radio" )
549
- .attr( 'previousValue', false );
550
- jQuery( this ).attr( 'previousValue', 'checked' );
551
- }
552
- }
553
- );
554
- if ( typeof aiosp_data.pointers != 'undefined' ) {
555
-
556
- /**
557
- * @since 1.0.0
558
- * @param $index.
559
- * @param $value.
560
- * @return mixed.
561
- */
562
- jQuery.each(
563
- aiosp_data.pointers, function( index, value ) {
564
- if ( value != 'undefined' && value.pointer_text != '' ) {
565
- aioseop_show_pointer( index, value );
566
- }
567
- }
568
- );
569
- }
570
-
571
- /**
572
- * @since 1.0.0
573
- * @param $e.
574
- * @return boolean.
575
- */
576
- jQuery( ".all-in-one-seo_page_all-in-one-seo-pack-modules-aioseop_feature_manager #aiosp_settings_form .aioseop_settings_left" )
577
- .delegate(
578
- "input[name='Submit']", "click", function( e ) {
579
- e.preventDefault();
580
- return false;
581
- }
582
- );
583
-
584
- /**
585
- * @since 1.0.0
586
- * @param $e.
587
- * @return boolean.
588
- */
589
- jQuery( ".all-in-one-seo_page_all-in-one-seo-pack-modules-aioseop_feature_manager #aiosp_settings_form" )
590
- .delegate(
591
- "input[name='Submit']", "click", function( e ) {
592
- e.preventDefault();
593
- aioseop_handle_post_url(
594
- 'aioseop_ajax_save_settings',
595
- 'ajax_settings_message',
596
- jQuery( 'form#aiosp_settings_form' ).serialize(),
597
- function() {
598
- jQuery( '.wp-has-current-submenu' ).fadeIn(
599
- 'fast', function() {
600
- aioseop_handle_ajax_call(
601
- 'aioseop_ajax_get_menu_links',
602
- 'ajax_settings_message',
603
- jQuery.param( {target: '.wp-has-current-submenu > ul'} )
604
- );
605
- }
606
- );
607
- }
608
- );
609
- return false;
610
- }
611
- );
612
-
613
- /**
614
- * @since 1.0.0
615
- * @param $e.
616
- * @return boolean.
617
- */
618
- jQuery( ".all-in-one-seo_page_all-in-one-seo-pack-pro-modules-aioseop_feature_manager #aiosp_settings_form .aioseop_settings_left" )
619
- .delegate(
620
- "input[name='Submit']", "click", function( e ) {
621
- e.preventDefault();
622
- return false;
623
- }
624
- );
625
-
626
- /**
627
- * @since 1.0.0
628
- * @param $e.
629
- * @return boolean.
630
- */
631
- jQuery( ".all-in-one-seo_page_all-in-one-seo-pack-pro-modules-aioseop_feature_manager #aiosp_settings_form" )
632
- .delegate(
633
- "input[name='Submit']", "click", function( e ) {
634
- e.preventDefault();
635
- aioseop_handle_post_url(
636
- 'aioseop_ajax_save_settings',
637
- 'ajax_settings_message',
638
- jQuery( 'form#aiosp_settings_form' ).serialize(),
639
- function() {
640
- jQuery( '.wp-has-current-submenu' ).fadeIn(
641
- 'fast', function() {
642
- aioseop_handle_ajax_call(
643
- 'aioseop_ajax_get_menu_links',
644
- 'ajax_settings_message',
645
- jQuery.param( {target: '.wp-has-current-submenu > ul'} )
646
- );
647
- }
648
- );
649
- }
650
- );
651
- return false;
652
- }
653
- );
654
-
655
- var selectors =
656
- "div.aioseop_multicheckbox_type div.aioseop_option_div, #aiosp_sitemap_debug div.aioseop_option_div, #aiosp_performance_status div.aioseop_option_div";
657
-
658
- /**
659
- * @since 1.0.0
660
- * @return boolean.
661
- */
662
- jQuery( "div#aiosp_sitemap_addl_pages_metabox" )
663
- .delegate(
664
- "input[name='Submit']", "click", function() {
665
- aioseop_handle_post_url(
666
- 'aioseop_ajax_save_url',
667
- 'sitemap_addl_pages',
668
- jQuery( 'div#aiosp_sitemap_addl_pages_metabox input, div#aiosp_sitemap_addl_pages_metabox select' )
669
- .serialize()
670
- );
671
- return false;
672
- }
673
- );
674
-
675
- /**
676
- * @since 1.0.0
677
- * @return boolean.
678
- */
679
- jQuery( "div#aiosp_video_sitemap_addl_pages_metabox" )
680
- .delegate(
681
- "input[name='Submit']", "click", function() {
682
- aioseop_handle_post_url(
683
- 'aioseop_ajax_save_url',
684
- 'video_sitemap_addl_pages',
685
- jQuery( 'div#aiosp_video_sitemap_addl_pages_metabox input, div#aiosp_video_sitemap_addl_pages_metabox select' )
686
- .serialize()
687
- );
688
- return false;
689
- }
690
- );
691
-
692
- /**
693
- * @since 1.0.0
694
- * @param $e.
695
- * @return boolean.
696
- */
697
- jQuery( "div#aiosp_sitemap_addl_pages_metabox" )
698
- .delegate(
699
- "a.aiosp_delete_url", "click", function( e ) {
700
- e.preventDefault();
701
- aioseop_handle_post_url(
702
- 'aioseop_ajax_delete_url',
703
- 'sitemap_addl_pages',
704
- jQuery( this ).attr( "title" )
705
- );
706
- return false;
707
- }
708
- );
709
-
710
- /**
711
- * @since 1.0.0
712
- * @param $e.
713
- * @return boolean.
714
- */
715
- jQuery( "div#aiosp_video_sitemap_addl_pages_metabox" )
716
- .delegate(
717
- "a.aiosp_delete_url", "click", function( e ) {
718
- e.preventDefault();
719
- aioseop_handle_post_url(
720
- 'aioseop_ajax_delete_url',
721
- 'video_sitemap_addl_pages',
722
- jQuery( this ).attr( "title" )
723
- );
724
- return false;
725
- }
726
- );
727
-
728
- /**
729
- * @since 1.0.0
730
- * @param $e.
731
- * @return boolean.
732
- */
733
- jQuery( "div#aiosp_opengraph_scan_header" )
734
- .delegate(
735
- "input[name='aiosp_opengraph_scan_header']", "click", function( e ) {
736
- e.preventDefault();
737
- aioseop_handle_post_url(
738
- 'aioseop_ajax_scan_header',
739
- 'opengraph_scan_header',
740
- jQuery( 'div#aiosp_opengraph_scan_header' ).serialize()
741
- );
742
- return false;
743
- }
744
- );
745
-
746
- /**
747
- * @since 1.0.0
748
- */
749
- jQuery( 'input[name="aiosp_sitemap_posttypes[]"][value="all"], input[name="aiosp_video_sitemap_posttypes[]"][value="all"], input[name="aiosp_sitemap_taxonomies[]"][value="all"], input[name="aiosp_video_sitemap_taxonomies[]"][value="all"]' )
750
- .click(
751
- function() {
752
- jQuery( this )
753
- .parents( 'div:eq(0)' )
754
- .find( ':checkbox' )
755
- .prop( 'checked', this.checked );
756
- }
757
- );
758
-
759
- /**
760
- * @since 1.0.0
761
- */
762
- jQuery( 'input[name="aiosp_sitemap_posttypes[]"][value!="all"], input[name="aiosp_video_sitemap_posttypes[]"][value!="all"], input[name="aiosp_sitemap_taxonomies[]"][value!="all"], input[name="aiosp_video_sitemap_taxonomies[]"][value!="all"]' )
763
- .click(
764
- function () {
765
- if ( ! this.checked ) {
766
- jQuery( this )
767
- .parents( 'div:eq(0)' )
768
- .find( 'input[value="all"]:checkbox' )
769
- .prop( 'checked', this.checked );
770
- }
771
- }
772
- );
773
-
774
- /**
775
- * @since 1.0.0
776
- */
777
- jQuery( ".aioseop_tab:not(:first)" ).hide();
778
-
779
- /**
780
- * @since 1.0.0
781
- */
782
- jQuery( ".aioseop_tab:first" ).show();
783
-
784
- /**
785
- * @since 1.0.0
786
- * @return boolean.
787
- */
788
- jQuery( "a.aioseop_header_tab" ).click(
789
- function() {
790
- var stringref = jQuery( this ).attr( "href" ).split( '#' )[1];
791
- jQuery( '.aioseop_tab:not(#' + stringref + ')' ).hide( 'slow' );
792
- jQuery( '.aioseop_tab#' + stringref ).show( 'slow' );
793
- jQuery( '.aioseop_header_tab[href!="#' + stringref + '"]' ).removeClass( 'active' );
794
- jQuery( '.aioseop_header_tab[href="#' + stringref + '"]' ).addClass( 'active' );
795
- return false;
796
- }
797
- );
798
- }
799
- );
800
-
801
-
802
- jQuery( document ).ready(
803
- function() {
804
- // TODO: consider moving EVERYTHING that needs ready() to this function
805
- initAll( jQuery );
806
- }
807
- );
808
-
809
- function initAll($){
810
- if ( $( '.aiseop-date' ).length > 0 && $( '.aiseop-date' ).eq( 0 ).prop( 'type' ).toLowerCase() === 'text' ) {
811
- $( '.aiseop-date' ).datepicker(
812
- {
813
- dateFormat: "yy-mm-dd"
814
- }
815
- );
816
- }
817
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Controls all the styling of the plugin.
3
+ *
4
+ * AIOSEOP Updates class.
5
+ * @author Michael Torbert.
6
+ * @author Semper Fi Web Design.
7
+ * @copyright https://semperplugins.com
8
+ * @version 1.0.0
9
+ */
10
+ if ( typeof aiosp_data != 'undefined' ) {
11
+
12
+ /**
13
+ * @since 1.0.0
14
+ * @param int $index.
15
+ * @param $value
16
+ */
17
+ jQuery.each(
18
+ aiosp_data, function( index, value ) {
19
+ // aiosp_data[index] = value.json.replace(/&quot;/g, '"');
20
+ // aiosp_data[index] = jQuery.parseJSON( value );
21
+ if ( index == 0 ) {
22
+ if ( typeof value.condshow == 'undefined' ) {
23
+ aiosp_data[ index ].condshow = [];
24
+ }
25
+ } else {
26
+ if ( typeof value.condshow != 'undefined' ) {
27
+ aiosp_data[ 0 ].condshow =
28
+ jQuery.merge( aiosp_data[0].condshow, value.condshow );
29
+ }
30
+ }
31
+ }
32
+ );
33
+ aiosp_data = aiosp_data[0];
34
+ }
35
+
36
+ /**
37
+ * @summary Changes visibility.
38
+ *
39
+ * @since 1.0.0
40
+ * @param int $id.
41
+ */
42
+ function toggleVisibility( id ) {
43
+ var e = document.getElementById( id );
44
+ if ( e.style.display == 'block' ) {
45
+ e.style.display = 'none';
46
+ } else {
47
+ e.style.display = 'block';
48
+ }
49
+ }
50
+
51
+ /**
52
+ * @summary Counts characters.
53
+ *
54
+ * @since 1.0.0
55
+ * @param Object $field.
56
+ * @param Object $cntfield.
57
+ * @return Mixed.
58
+ */
59
+ function countChars( field, cntfield ) {
60
+ var extra = 0;
61
+ var field_size;
62
+ if ( ( field.attr('name') == 'aiosp_title' )
63
+ && ( typeof aiosp_title_extra !== 'undefined' ) ) {
64
+ extra = aiosp_title_extra;
65
+ }
66
+ cntfield.val(field.val().length + extra);
67
+ if ( typeof field.attr('size') != 'undefined' ) {
68
+ field_size = field.attr('size');
69
+ } else {
70
+ field_size = field.attr('rows') * field.attr('cols');
71
+ }
72
+ field_size = parseInt(field_size, 10);
73
+ if ( field_size < 10 ) {
74
+ return;
75
+ }
76
+ if ( cntfield.val() > field_size ) {
77
+ cntfield.removeClass().addClass('aioseop_count_ugly');
78
+ } else if ( ( 'aiosp_title' === field.attr('name' ) ) || ( 'aiosp_home_title' === field.attr('name') ) ) {
79
+ if ( cntfield.val() > ( field_size - 6 ) ) {
80
+ cntfield.removeClass().addClass('aioseop_count_bad');
81
+ } else {
82
+ cntfield.removeClass().addClass('aioseop_count_good');
83
+ }
84
+ } else {
85
+ if ( cntfield.val() > ( field_size - 91 ) ) {
86
+ cntfield.removeClass().addClass('aioseop_count_bad');
87
+ } else {
88
+ cntfield.removeClass().addClass('aioseop_count_good');
89
+ }
90
+ }
91
+ }
92
+
93
+ /**
94
+ * @summary Returns the fields value.
95
+ *
96
+ * @since 1.0.0
97
+ * @param String $field.
98
+ * @return Mixed.
99
+ */
100
+ function aioseop_get_field_value( field ) {
101
+ if ( field.length == 0 ) {
102
+ return field;
103
+ }
104
+ cur = jQuery( '[name=' + field + ']' );
105
+ if ( cur.length == 0 ) {
106
+ return field;
107
+ }
108
+ type = cur.attr( 'type' );
109
+ if ( type == "checkbox" || type == "radio" ) {
110
+ cur = jQuery( 'input[name=' + field + ']:checked' );
111
+ }
112
+ return cur.val();
113
+ }
114
+
115
+ /**
116
+ * @summary Returns the fields value.
117
+ *
118
+ * @since 1.0.0
119
+ * @param String $field.
120
+ * @return Mixed.
121
+ */
122
+ function aioseop_get_field_values( field ) {
123
+ arr = [];
124
+ cur = jQuery( '[name=' + field + ']' );
125
+ if ( cur.length == 0 ) {
126
+ return field;
127
+ }
128
+ type = cur.attr( 'type' );
129
+ if ( type == "checkbox" || type == "radio" ) {
130
+ jQuery( 'input[name=' + field + ']:checked' ).each(
131
+ function() {
132
+ arr.push( jQuery( this ).val() );
133
+ }
134
+ );
135
+ }
136
+ if ( arr.length <= 0 ) {
137
+ arr.push( cur.val() );
138
+ }
139
+ return arr;
140
+ }
141
+
142
+ /**
143
+ * @summary Evaluates condshow logic.
144
+ *
145
+ * @since 1.0.0
146
+ * @param String $statement.
147
+ * @return Mixed.
148
+ */
149
+ function aioseop_eval_condshow_logic( statement ) {
150
+ var lhs, rhs;
151
+ if ( ( typeof statement ) == 'object' ) {
152
+ lhs = statement.lhs;
153
+ rhs = statement.rhs;
154
+ if ( lhs !== null && ( ( typeof lhs ) == 'object' ) ) {
155
+ lhs = aioseop_eval_condshow_logic( lhs );
156
+ }
157
+ if ( rhs !== null && ( typeof rhs ) == 'object' ) {
158
+ rhs = aioseop_eval_condshow_logic( rhs );
159
+ }
160
+ lhs = aioseop_get_field_value( lhs );
161
+ rhs = aioseop_get_field_value( rhs );
162
+ switch ( statement.op ) {
163
+ case 'NOT':
164
+ return ( ! lhs );
165
+ case 'AND':
166
+ return ( lhs && rhs );
167
+ case 'OR' :
168
+ return ( lhs || rhs );
169
+ case '==' :
170
+ return ( lhs == rhs );
171
+ case '!=' :
172
+ return ( lhs != rhs );
173
+ default :
174
+ return null;
175
+ }
176
+ }
177
+ return statement;
178
+ }
179
+
180
+ /**
181
+ * @summary Evaluates condshow logic.
182
+ *
183
+ * @since 1.0.0
184
+ * @param String $index.
185
+ * @param $value.
186
+ * @return Mixed.
187
+ */
188
+ function aioseop_do_condshow_match( index, value ) {
189
+ if ( typeof value != 'undefined' ) {
190
+ matches = true;
191
+ jQuery.each(
192
+ value, function(subopt, setting) {
193
+ var statement;
194
+ if ( ( typeof setting ) == 'object' ) {
195
+ statement = aioseop_eval_condshow_logic( setting );
196
+ if ( ! statement ) {
197
+ matches = false;
198
+ }
199
+ } else {
200
+ if ( subopt.match( /\\\[\\\]/ ) ) { // special case for these -- pdb
201
+ cur = aioseop_get_field_values( subopt );
202
+ if ( jQuery.inArray( setting, cur, 0 ) < 0 ) {
203
+ matches = false;
204
+ }
205
+ } else {
206
+ cur = aioseop_get_field_value( subopt );
207
+ if ( cur != setting ) {
208
+ matches = false;
209
+ }
210
+ }
211
+ }
212
+ }
213
+ );
214
+ if ( matches ) {
215
+ jQuery( '#' + index + '_wrapper' ).show();
216
+ } else {
217
+ jQuery( '#' + index + '_wrapper' ).hide();
218
+ }
219
+ return matches;
220
+ }
221
+ return false;
222
+ }
223
+
224
+ /**
225
+ * @summary Adds condshow handlers.
226
+ *
227
+ * @since 1.0.0
228
+ * @param String $index.
229
+ * @param $value.
230
+ */
231
+ function aioseop_add_condshow_handlers( index, value ) {
232
+ if ( typeof value != 'undefined' ) {
233
+ jQuery.each(
234
+ value, function(subopt, setting) {
235
+ jQuery( '[name=' + subopt + ']' ).bind(
236
+ "change keyup", function() {
237
+ aioseop_do_condshow_match( index, value );
238
+ }
239
+ );
240
+ }
241
+ );
242
+ }
243
+ }
244
+
245
+ /**
246
+ * @summary Does condshow.
247
+ *
248
+ * @since 1.0.0
249
+ * @param $condshow.
250
+ */
251
+ function aioseop_do_condshow( condshow ) {
252
+ if ( typeof aiosp_data.condshow != 'undefined' ) {
253
+ jQuery.each(
254
+ aiosp_data.condshow, function( index, value ) {
255
+ aioseop_do_condshow_match( index, value );
256
+ aioseop_add_condshow_handlers( index, value );
257
+ }
258
+ );
259
+ }
260
+ }
261
+
262
+ /**
263
+ * @since 1.0.0
264
+ */
265
+ jQuery( document ).ready(
266
+ function() {
267
+ if ( typeof aiosp_data != 'undefined' ) {
268
+ if ( typeof aiosp_data.condshow != 'undefined' ) {
269
+ aioseop_do_condshow( aiosp_data.condshow );
270
+ }
271
+ }
272
+
273
+ /**
274
+ * Turns on image checker on custom url change.
275
+ * @since 2.3.16
276
+ */
277
+ jQuery( '.aioseop_upload_image_label' ).on(
278
+ 'change', function() {
279
+ this.checker = jQuery( this ).parent().find( '.aioseop_upload_image_checker' );
280
+ if ( this.checker.length > 0 ) {
281
+ this.checker.val( 1 );
282
+ }
283
+ }
284
+ );
285
+ }
286
+ );
287
+
288
+ /**
289
+ * @summary Custom jQuery plugin that enables image uploader in wordpress.
290
+ *
291
+ * @since 2.3.13
292
+ * @since 2.4.14 Added success callback and options.
293
+ * @see http://www.webmaster-source.com/2013/02/06/using-the-wordpress-3-5-media-uploader-in-your-plugin-or-theme/
294
+ *
295
+ * @param object options Plugin options.
296
+ */
297
+ jQuery.fn.aioseopImageUploader = function( options ) {
298
+ // Keep reference to this.
299
+ var self = this;
300
+
301
+ // Options
302
+ self.options = jQuery.extend(
303
+ {
304
+ success: undefined,
305
+ }, options
306
+ );
307
+
308
+ // Set input target when to update image url value
309
+ self.target = jQuery( self ).next();
310
+
311
+ // Uploader per image button
312
+ // * Having only one uploader was causing problems when multiple image buttons where in place
313
+ self.uploader = wp.media(
314
+ {
315
+ title: 'Choose Image',
316
+ button: {
317
+ text: 'Choose Image'
318
+ },
319
+ multiple: false
320
+ }
321
+ );
322
+
323
+ /**
324
+ * Event handler that will be called when an image is selected from media uploader.
325
+ */
326
+ self.onSelect = function() {
327
+ var url = self.uploader.state().get( 'selection' ).first().toJSON().url;
328
+ if ( self.target.length >= 0 ) {
329
+ jQuery( self.target ).val( url );
330
+ }
331
+ if ( self.options.success !== undefined ) {
332
+ self.options.success( url, self );
333
+ }
334
+ };
335
+
336
+ /**
337
+ * Click event handler.
338
+ * @param object e Click event.
339
+ */
340
+ self.onClick = function( e ) {
341
+ e.preventDefault();
342
+ self.uploader.open();
343
+ };
344
+
345
+ // Set uploader select handler
346
+ self.uploader.on( 'select', self.onSelect );
347
+
348
+ // Set click handler
349
+ jQuery( self ).click( self.onClick );
350
+ };
351
+
352
+ /**
353
+ * @summary Javascript for using WP media uploader. Indentifies which DOM should use custom uploader plugin.
354
+ *
355
+ * @see http://www.webmaster-source.com/2013/02/06/using-the-wordpress-3-5-media-uploader-in-your-plugin-or-theme/
356
+ * @since ?
357
+ * @since 2.3.11.2 Use WP 3.5 new media uploader
358
+ * @since 2.3.13 Fixed issue #[740](https://github.com/semperfiwebdesign/all-in-one-seo-pack/issues/740)
359
+ *
360
+ */
361
+ jQuery( document ).ready(
362
+ function($){
363
+
364
+ jQuery( '.aioseop_upload_image_button' ).each(
365
+ function() {
366
+ jQuery( this ).aioseopImageUploader(
367
+ {
368
+ success: function( url, el ) {
369
+ // Update checker
370
+ if ( jQuery( el ).prev().length > 0 ) {
371
+ jQuery( el ).prev().val( 1 );
372
+ }
373
+ },
374
+ }
375
+ );
376
+ }
377
+ );
378
+
379
+ }
380
+ );
381
+
382
+ /**
383
+ * @summary workaround for bug that causes radio inputs to lose settings when meta box is dragged.
384
+ *
385
+ * props to commentluv for this fix
386
+ * @author commentluv.
387
+ * @link https://core.trac.wordpress.org/ticket/16972
388
+ * @since 1.0.0
389
+ */
390
+ jQuery( document ).ready(
391
+ function() {
392
+
393
+ // listen for drag drop of metaboxes , bind mousedown to .hndle so it only fires when starting to drag
394
+ jQuery( '.hndle' ).mousedown(
395
+ function() {
396
+
397
+ // set live event listener for mouse up on the content .wrap and wait a tick to give the dragged div time to settle before firing the reclick function
398
+ jQuery( '.wrap' ).mouseup(
399
+ function() {
400
+ aiosp_store_radio();
401
+ setTimeout( function() {
402
+ aiosp_reclick_radio();
403
+ }, 50 );
404
+ }
405
+ );
406
+ }
407
+ );
408
+ }
409
+ );
410
+
411
+ /**
412
+ * @summary Stores object of all radio buttons that are checked for entire form.
413
+ *
414
+ * @since 1.0.0
415
+ */
416
+ function aiosp_store_radio() {
417
+ var radioshack = {};
418
+ jQuery( 'input[type="radio"]' ).each(
419
+ function() {
420
+ if ( jQuery( this ).is( ':checked' ) ) {
421
+ radioshack[ jQuery( this ).attr( 'name' ) ] = jQuery( this ).val();
422
+ }
423
+ jQuery( document ).data( 'radioshack', radioshack );
424
+ }
425
+ );
426
+ }
427
+
428
+ /**
429
+ * @summary Detects mouseup and restore all radio buttons that were checked.
430
+ *
431
+ * @since 1.0.0
432
+ */
433
+ function aiosp_reclick_radio() {
434
+
435
+ // gets the object of checked radio button names and values
436
+ var radios = jQuery( document ).data( 'radioshack' );
437
+
438
+ // steps thru each object element and trigger a click on it's corresponding radio button
439
+ for ( var key in radios ) {
440
+ jQuery( 'input[name="' + key + '"]' )
441
+ .filter( '[value="' + radios[ key ] + '"]' )
442
+ .trigger( 'click' );
443
+ }
444
+ // unbinds the event listener on .wrap (prevents clicks on inputs from triggering function)
445
+ jQuery( '.wrap' ).unbind( 'mouseup' );
446
+ }
447
+
448
+ /**
449
+ * @summary Handdles ajax call.
450
+ *
451
+ * @since 1.0.0
452
+ * @param $action.
453
+ * @param $setting.
454
+ * @param $options.
455
+ * @param $success.
456
+ */
457
+ function aioseop_handle_ajax_call( action, settings, options, success ) {
458
+ var aioseop_sack = new sack( ajaxurl );
459
+ aioseop_sack.execute = 1;
460
+ aioseop_sack.method = 'POST';
461
+ aioseop_sack.setVar( "action", action );
462
+ aioseop_sack.setVar( "settings", settings );
463
+ aioseop_sack.setVar( "options", options );
464
+ if ( typeof success != 'undefined' ) {
465
+ aioseop_sack.onCompletion = success;
466
+ }
467
+ aioseop_sack.setVar(
468
+ "nonce-aioseop",
469
+ jQuery( 'input[name="nonce-aioseop"]' ).val()
470
+ );
471
+ aioseop_sack.setVar(
472
+ "nonce-aioseop-edit",
473
+ jQuery( 'input[name="nonce-aioseop-edit"]' ).val()
474
+ );
475
+ aioseop_sack.onError = function() {
476
+ alert( 'Ajax error on saving.' );
477
+ };
478
+ aioseop_sack.runAJAX();
479
+ }
480
+
481
+ /**
482
+ * @summary Handdles posts URL.
483
+ *
484
+ * @since 1.0.0
485
+ * @param $action.
486
+ * @param $setting.
487
+ * @param $options.
488
+ * @param $success.
489
+ */
490
+ function aioseop_handle_post_url( action, settings, options, success) {
491
+ jQuery( "div#aiosp_" + settings ).fadeOut(
492
+ 'fast', function() {
493
+ var loading = '<label class="aioseop_loading aioseop_' + settings + '_loading"></label> Please wait...';
494
+ jQuery( "div#aiosp_" + settings ).fadeIn(
495
+ 'fast', function() {
496
+ aioseop_handle_ajax_call( action, settings, options, success );
497
+ }
498
+ );
499
+ jQuery( "div#aiosp_" + settings ).html( loading );
500
+ }
501
+ );
502
+ }
503
+
504
+ /**
505
+ * @summary Handles when AIOSEOP is overflowed.
506
+ *
507
+ * @since 1.0.0
508
+ * @param $element.
509
+ * @return mixed.
510
+ */
511
+ function aioseop_is_overflowed( element ) {
512
+ return element.scrollHeight > element.clientHeight || element.scrollWidth > element.clientWidth;
513
+ }
514
+
515
+ /**
516
+ * @summary Handles when overflowed border.
517
+ *
518
+ * @since 1.0.0
519
+ * @param $el.
520
+ */
521
+ function aioseop_overflow_border( el ) {
522
+ if ( aioseop_is_overflowed( el ) ) {
523
+ el.className = 'aioseop_option_div aioseop_overflowed';
524
+ } else {
525
+ el.className = 'aioseop_option_div';
526
+ }
527
+ }
528
+
529
+ /**
530
+ * @since 1.0.0
531
+ * @return mixed.
532
+ */
533
+ jQuery( document ).ready(
534
+ function() {
535
+ jQuery( "#poststuff .aioseop_radio_type input[type='radio']" ).on(
536
+ 'click', function() {
537
+ var previousValue = jQuery( this ).attr( 'previousValue' );
538
+ var name = jQuery( this ).attr( 'name' );
539
+ if ( typeof previousValue == 'undefined' ) {
540
+ if ( jQuery( this ).prop( "checked" ) ) {
541
+ jQuery( this ).prop( 'checked', true );
542
+ jQuery( this ).attr( 'previousValue', 'checked' );
543
+ } else {
544
+ jQuery( this ).prop( 'checked', false );
545
+ jQuery( this ).attr( 'previousValue', false );
546
+ }
547
+ return;
548
+ }
549
+ if ( previousValue == 'checked' ) {
550
+ jQuery( this ).prop( 'checked', false );
551
+ jQuery( this ).attr( 'previousValue', false );
552
+ } else {
553
+ jQuery( "input[name=" + name + "]:radio" )
554
+ .attr( 'previousValue', false );
555
+ jQuery( this ).attr( 'previousValue', 'checked' );
556
+ }
557
+ }
558
+ );
559
+ if ( typeof aiosp_data.pointers != 'undefined' ) {
560
+
561
+ /**
562
+ * @since 1.0.0
563
+ * @param $index.
564
+ * @param $value.
565
+ * @return mixed.
566
+ */
567
+ jQuery.each(
568
+ aiosp_data.pointers, function( index, value ) {
569
+ if ( value != 'undefined' && value.pointer_text != '' ) {
570
+ aioseop_show_pointer( index, value );
571
+ }
572
+ }
573
+ );
574
+ }
575
+
576
+ /**
577
+ * @since 1.0.0
578
+ * @param $e.
579
+ * @return boolean.
580
+ */
581
+ jQuery( ".all-in-one-seo_page_all-in-one-seo-pack-modules-aioseop_feature_manager #aiosp_settings_form .aioseop_settings_left" )
582
+ .delegate(
583
+ "input[name='Submit']", "click", function( e ) {
584
+ e.preventDefault();
585
+ return false;
586
+ }
587
+ );
588
+
589
+ /**
590
+ * @since 1.0.0
591
+ * @param $e.
592
+ * @return boolean.
593
+ */
594
+ jQuery( ".all-in-one-seo_page_all-in-one-seo-pack-modules-aioseop_feature_manager #aiosp_settings_form" )
595
+ .delegate(
596
+ "input[name='Submit']", "click", function( e ) {
597
+ e.preventDefault();
598
+ aioseop_handle_post_url(
599
+ 'aioseop_ajax_save_settings',
600
+ 'ajax_settings_message',
601
+ jQuery( 'form#aiosp_settings_form' ).serialize(),
602
+ function() {
603
+ jQuery( '.wp-has-current-submenu' ).fadeIn(
604
+ 'fast', function() {
605
+ aioseop_handle_ajax_call(
606
+ 'aioseop_ajax_get_menu_links',
607
+ 'ajax_settings_message',
608
+ jQuery.param( {target: '.wp-has-current-submenu > ul'} )
609
+ );
610
+ }
611
+ );
612
+ }
613
+ );
614
+ return false;
615
+ }
616
+ );
617
+
618
+ /**
619
+ * @since 1.0.0
620
+ * @param $e.
621
+ * @return boolean.
622
+ */
623
+ jQuery( ".all-in-one-seo_page_all-in-one-seo-pack-pro-modules-aioseop_feature_manager #aiosp_settings_form .aioseop_settings_left" )
624
+ .delegate(
625
+ "input[name='Submit']", "click", function( e ) {
626
+ e.preventDefault();
627
+ return false;
628
+ }
629
+ );
630
+
631
+ /**
632
+ * @since 1.0.0
633
+ * @param $e.
634
+ * @return boolean.
635
+ */
636
+ jQuery( ".all-in-one-seo_page_all-in-one-seo-pack-pro-modules-aioseop_feature_manager #aiosp_settings_form" )
637
+ .delegate(
638
+ "input[name='Submit']", "click", function( e ) {
639
+ e.preventDefault();
640
+ aioseop_handle_post_url(
641
+ 'aioseop_ajax_save_settings',
642
+ 'ajax_settings_message',
643
+ jQuery( 'form#aiosp_settings_form' ).serialize(),
644
+ function() {
645
+ jQuery( '.wp-has-current-submenu' ).fadeIn(
646
+ 'fast', function() {
647
+ aioseop_handle_ajax_call(
648
+ 'aioseop_ajax_get_menu_links',
649
+ 'ajax_settings_message',
650
+ jQuery.param( {target: '.wp-has-current-submenu > ul'} )
651
+ );
652
+ }
653
+ );
654
+ }
655
+ );
656
+ return false;
657
+ }
658
+ );
659
+
660
+ var selectors =
661
+ "div.aioseop_multicheckbox_type div.aioseop_option_div, #aiosp_sitemap_debug div.aioseop_option_div, #aiosp_performance_status div.aioseop_option_div";
662
+
663
+ /**
664
+ * @since 1.0.0
665
+ * @return boolean.
666
+ */
667
+ jQuery( "div#aiosp_sitemap_addl_pages_metabox" )
668
+ .delegate(
669
+ "input[name='Submit']", "click", function() {
670
+ aioseop_handle_post_url(
671
+ 'aioseop_ajax_save_url',
672
+ 'sitemap_addl_pages',
673
+ jQuery( 'div#aiosp_sitemap_addl_pages_metabox input, div#aiosp_sitemap_addl_pages_metabox select' )
674
+ .serialize()
675
+ );
676
+ return false;
677
+ }
678
+ );
679
+
680
+ /**
681
+ * @since 1.0.0
682
+ * @return boolean.
683
+ */
684
+ jQuery( "div#aiosp_video_sitemap_addl_pages_metabox" )
685
+ .delegate(
686
+ "input[name='Submit']", "click", function() {
687
+ aioseop_handle_post_url(
688
+ 'aioseop_ajax_save_url',
689
+ 'video_sitemap_addl_pages',
690
+ jQuery( 'div#aiosp_video_sitemap_addl_pages_metabox input, div#aiosp_video_sitemap_addl_pages_metabox select' )
691
+ .serialize()
692
+ );
693
+ return false;
694
+ }
695
+ );
696
+
697
+ /**
698
+ * @since 1.0.0
699
+ * @param $e.
700
+ * @return boolean.
701
+ */
702
+ jQuery( "div#aiosp_sitemap_addl_pages_metabox" )
703
+ .delegate(
704
+ "a.aiosp_delete_url", "click", function( e ) {
705
+ e.preventDefault();
706
+ aioseop_handle_post_url(
707
+ 'aioseop_ajax_delete_url',
708
+ 'sitemap_addl_pages',
709
+ jQuery( this ).attr( "title" )
710
+ );
711
+ return false;
712
+ }
713
+ );
714
+
715
+ /**
716
+ * @since 1.0.0
717
+ * @param $e.
718
+ * @return boolean.
719
+ */
720
+ jQuery( "div#aiosp_video_sitemap_addl_pages_metabox" )
721
+ .delegate(
722
+ "a.aiosp_delete_url", "click", function( e ) {
723
+ e.preventDefault();
724
+ aioseop_handle_post_url(
725
+ 'aioseop_ajax_delete_url',
726
+ 'video_sitemap_addl_pages',
727
+ jQuery( this ).attr( "title" )
728
+ );
729
+ return false;
730
+ }
731
+ );
732
+
733
+ /**
734
+ * @since 1.0.0
735
+ * @param $e.
736
+ * @return boolean.
737
+ */
738
+ jQuery( "div#aiosp_opengraph_scan_header" )
739
+ .delegate(
740
+ "input[name='aiosp_opengraph_scan_header']", "click", function( e ) {
741
+ e.preventDefault();
742
+ aioseop_handle_post_url(
743
+ 'aioseop_ajax_scan_header',
744
+ 'opengraph_scan_header',
745
+ jQuery( 'div#aiosp_opengraph_scan_header' ).serialize()
746
+ );
747
+ return false;
748
+ }
749
+ );
750
+
751
+ /**
752
+ * @since 1.0.0
753
+ */
754
+ jQuery( 'input[name="aiosp_sitemap_posttypes[]"][value="all"], input[name="aiosp_video_sitemap_posttypes[]"][value="all"], input[name="aiosp_sitemap_taxonomies[]"][value="all"], input[name="aiosp_video_sitemap_taxonomies[]"][value="all"]' )
755
+ .click(
756
+ function() {
757
+ jQuery( this )
758
+ .parents( 'div:eq(0)' )
759
+ .find( ':checkbox' )
760
+ .prop( 'checked', this.checked );
761
+ }
762
+ );
763
+
764
+ /**
765
+ * @since 1.0.0
766
+ */
767
+ jQuery( 'input[name="aiosp_sitemap_posttypes[]"][value!="all"], input[name="aiosp_video_sitemap_posttypes[]"][value!="all"], input[name="aiosp_sitemap_taxonomies[]"][value!="all"], input[name="aiosp_video_sitemap_taxonomies[]"][value!="all"]' )
768
+ .click(
769
+ function () {
770
+ if ( ! this.checked ) {
771
+ jQuery( this )
772
+ .parents( 'div:eq(0)' )
773
+ .find( 'input[value="all"]:checkbox' )
774
+ .prop( 'checked', this.checked );
775
+ }
776
+ }
777
+ );
778
+
779
+ /**
780
+ * @since 1.0.0
781
+ */
782
+ jQuery( ".aioseop_tab:not(:first)" ).hide();
783
+
784
+ /**
785
+ * @since 1.0.0
786
+ */
787
+ jQuery( ".aioseop_tab:first" ).show();
788
+
789
+ /**
790
+ * @since 1.0.0
791
+ * @return boolean.
792
+ */
793
+ jQuery( "a.aioseop_header_tab" ).click(
794
+ function() {
795
+ var stringref = jQuery( this ).attr( "href" ).split( '#' )[1];
796
+ jQuery( '.aioseop_tab:not(#' + stringref + ')' ).hide( 'slow' );
797
+ jQuery( '.aioseop_tab#' + stringref ).show( 'slow' );
798
+ jQuery( '.aioseop_header_tab[href!="#' + stringref + '"]' ).removeClass( 'active' );
799
+ jQuery( '.aioseop_header_tab[href="#' + stringref + '"]' ).addClass( 'active' );
800
+ return false;
801
+ }
802
+ );
803
+ }
804
+ );
805
+
806
+
807
+ jQuery( document ).ready(
808
+ function() {
809
+ // TODO: consider moving EVERYTHING that needs ready() to this function
810
+ initAll( jQuery );
811
+ initCounting( jQuery );
812
+ }
813
+ );
814
+
815
+ function initAll($){
816
+ if ( $( '.aiseop-date' ).length > 0 && $( '.aiseop-date' ).eq( 0 ).prop( 'type' ).toLowerCase() === 'text' ) {
817
+ $( '.aiseop-date' ).datepicker(
818
+ {
819
+ dateFormat: "yy-mm-dd"
820
+ }
821
+ );
822
+ }
823
+ }
824
+
825
+ function initCounting($){
826
+ /* count them characters */
827
+ $( '.aioseop_count_chars' ).on('keyup keydown', function(){
828
+ countChars( $(this).eq(0), $(this).parent().find('[name="' + $(this).attr('data-length-field') + '"]').eq(0));
829
+ });
830
+ $( '.aioseop_count_chars' ).each(function(){
831
+ countChars( $(this).eq(0), $(this).parent().find('[name="' + $(this).attr('data-length-field') + '"]').eq(0));
832
+ });
833
+ }
834
+
modules/aioseop_sitemap.php CHANGED
@@ -1046,9 +1046,12 @@ if ( ! class_exists( 'All_in_One_SEO_Pack_Sitemap' ) ) {
1046
  }
1047
  } else {
1048
  if ( $compressed ) {
1049
- $fn = 'compress.zlib://' . $fn;
 
 
 
 
1050
  }
1051
- $file = file_get_contents( $fn, false, null, - 1, 4096 );
1052
  }
1053
  if ( ! empty( $file ) ) {
1054
  $matches = array();
@@ -1071,6 +1074,8 @@ if ( ! class_exists( 'All_in_One_SEO_Pack_Sitemap' ) ) {
1071
  $msg .= '<p>' . sprintf( __( 'Removed empty file %s.', 'all-in-one-seo-pack' ), $f ) . "</p>\n";
1072
  $problem_files[] = $f;
1073
 
 
 
1074
  foreach ( $problem_files as $f => $file ) {
1075
  $files[ $f ] = realpath( $file );
1076
  $this->delete_file( realpath( $file ) );
@@ -1657,39 +1662,39 @@ if ( ! class_exists( 'All_in_One_SEO_Pack_Sitemap' ) ) {
1657
  $count = 1;
1658
  for ( $post_count = 0; $post_count < $post_counts[ $sm ]; $post_count += $this->max_posts ) {
1659
  $files[] = array(
1660
- 'loc' => aioseop_home_url( '/' . $prefix . '_' . $sm . '_' . ( $count ++ ) . $suffix ),
1661
- 'priority' => $prio,
1662
  'changefreq' => $freq,
 
1663
  );
1664
  }
1665
  } else {
1666
  $files[] = array(
1667
- 'loc' => aioseop_home_url( '/' . $prefix . '_' . $sm . $suffix ),
1668
- 'priority' => $prio,
1669
  'changefreq' => $freq,
 
1670
  );
1671
  }
1672
  } else {
1673
  $files[] = array(
1674
- 'loc' => aioseop_home_url( '/' . $prefix . '_' . $sm . $suffix ),
1675
- 'priority' => $prio,
1676
  'changefreq' => $freq,
 
1677
  );
1678
  }
1679
  }
1680
  }
1681
  if ( $this->option_isset( 'archive' ) ) {
1682
  $files[] = array(
1683
- 'loc' => aioseop_home_url( '/' . $prefix . '_archive' . $suffix ),
1684
- 'priority' => $this->get_default_priority( 'archive' ),
1685
  'changefreq' => $this->get_default_frequency( 'archive' ),
 
1686
  );
1687
  }
1688
  if ( $this->option_isset( 'author' ) ) {
1689
  $files[] = array(
1690
- 'loc' => aioseop_home_url( '/' . $prefix . '_author' . $suffix ),
1691
- 'priority' => $this->get_default_priority( 'author' ),
1692
  'changefreq' => $this->get_default_frequency( 'author' ),
 
1693
  );
1694
  }
1695
 
@@ -1702,23 +1707,23 @@ if ( ! class_exists( 'All_in_One_SEO_Pack_Sitemap' ) ) {
1702
  $count = 1;
1703
  for ( $tc = 0; $tc < $term_count; $tc += $this->max_posts ) {
1704
  $files[] = array(
1705
- 'loc' => aioseop_home_url( '/' . $prefix . '_' . $sm . '_' . ( $count ++ ) . $suffix ),
1706
- 'priority' => $this->get_default_priority( 'taxonomies' ),
1707
  'changefreq' => $this->get_default_frequency( 'taxonomies' ),
 
1708
  );
1709
  }
1710
  } else {
1711
  $files[] = array(
1712
- 'loc' => aioseop_home_url( '/' . $prefix . '_' . $sm . $suffix ),
1713
- 'priority' => $this->get_default_priority( 'taxonomies' ),
1714
  'changefreq' => $this->get_default_frequency( 'taxonomies' ),
 
1715
  );
1716
  }
1717
  } else {
1718
  $files[] = array(
1719
- 'loc' => aioseop_home_url( '/' . $prefix . '_' . $sm . $suffix ),
1720
- 'priority' => $this->get_default_priority( 'taxonomies' ),
1721
  'changefreq' => $this->get_default_frequency( 'taxonomies' ),
 
1722
  );
1723
  }
1724
  }
@@ -1727,8 +1732,8 @@ if ( ! class_exists( 'All_in_One_SEO_Pack_Sitemap' ) ) {
1727
  foreach ( $this->get_child_sitemap_urls() as $csm ) {
1728
  $files[] = array(
1729
  'loc' => $csm,
1730
- 'priority' => $this->get_default_priority( 'sitemap' ),
1731
  'changefreq' => $this->get_default_frequency( 'sitemap' ),
 
1732
  );
1733
  }
1734
 
@@ -1907,8 +1912,8 @@ if ( ! class_exists( 'All_in_One_SEO_Pack_Sitemap' ) ) {
1907
 
1908
  $home = array(
1909
  'loc' => aioseop_home_url(),
1910
- 'priority' => $this->get_default_priority( 'homepage' ),
1911
  'changefreq' => $this->get_default_frequency( 'homepage' ),
 
1912
  'image:image' => $this->get_images_from_post( (int) get_option( 'page_on_front' ) ),
1913
  );
1914
 
@@ -1919,8 +1924,8 @@ if ( ! class_exists( 'All_in_One_SEO_Pack_Sitemap' ) ) {
1919
  } else {
1920
  $posts = array(
1921
  'loc' => $posts,
1922
- 'priority' => $this->get_default_priority( 'blog' ),
1923
  'changefreq' => $this->get_default_frequency( 'blog' ),
 
1924
  );
1925
  }
1926
  }
@@ -1941,8 +1946,8 @@ if ( ! class_exists( 'All_in_One_SEO_Pack_Sitemap' ) ) {
1941
  if ( ( null != $posts ) && isset( $posts['loc'] ) ) {
1942
  foreach ( $prio as $k => $p ) {
1943
  if ( $p['loc'] === $posts['loc'] ) {
1944
- $prio[ $k ]['priority'] = $this->get_default_priority( 'blog' );
1945
  $prio[ $k ]['changefreq'] = $this->get_default_frequency( 'blog' );
 
1946
  $posts = null;
1947
  break;
1948
  }
@@ -2185,16 +2190,16 @@ if ( ! class_exists( 'All_in_One_SEO_Pack_Sitemap' ) ) {
2185
  foreach ( $terms as $term ) {
2186
  $pr_info = array();
2187
  $pr_info['loc'] = $this->get_term_link( $term, $term->taxonomy );
2188
- if ( ( 'sel' === $this->options[ $this->prefix . 'prio_taxonomies' ] ) && isset( $this->options[ $this->prefix . 'prio_taxonomies_' . $term->taxonomy ] ) && ( 'no' != $this->options[ $this->prefix . 'prio_taxonomies_' . $term->taxonomy ] ) ) {
2189
- $pr_info['priority'] = $this->options[ $this->prefix . 'prio_taxonomies_' . $term->taxonomy ];
2190
- } else {
2191
- $pr_info['priority'] = $def_prio;
2192
- }
2193
  if ( ( 'sel' === $this->options[ $this->prefix . 'freq_taxonomies' ] ) && isset( $this->options[ $this->prefix . 'freq_taxonomies_' . $term->taxonomy ] ) && ( 'no' != $this->options[ $this->prefix . 'freq_taxonomies_' . $term->taxonomy ] ) ) {
2194
  $pr_info['changefreq'] = $this->options[ $this->prefix . 'freq_taxonomies_' . $term->taxonomy ];
2195
  } else {
2196
  $pr_info['changefreq'] = $def_freq;
2197
  }
 
 
 
 
 
2198
 
2199
  $pr_info['image:image'] = $this->get_images_from_term( $term );
2200
  $prio[] = $pr_info;
@@ -2386,8 +2391,8 @@ if ( ! class_exists( 'All_in_One_SEO_Pack_Sitemap' ) ) {
2386
  $home = array();
2387
  $home = array(
2388
  'loc' => aioseop_home_url(),
2389
- 'priority' => $this->get_default_priority( 'homepage' ),
2390
  'changefreq' => $this->get_default_frequency( 'homepage' ),
 
2391
  'image:image' => $this->get_images_from_post( (int) get_option( 'page_on_front' ) ),
2392
  );
2393
 
@@ -2399,8 +2404,8 @@ if ( ! class_exists( 'All_in_One_SEO_Pack_Sitemap' ) ) {
2399
  } else {
2400
  $posts = array(
2401
  'loc' => $posts,
2402
- 'priority' => $this->get_default_priority( 'blog' ),
2403
  'changefreq' => $this->get_default_frequency( 'blog' ),
 
2404
  );
2405
  }
2406
  } else {
@@ -2681,12 +2686,12 @@ if ( ! class_exists( 'All_in_One_SEO_Pack_Sitemap' ) ) {
2681
  }
2682
  $pr_info = $this->get_prio_calc( $date, $stat );
2683
  }
2684
- if ( $prio_override ) {
2685
- $pr_info['priority'] = $prio_override;
2686
- }
2687
  if ( $freq_override ) {
2688
  $pr_info['changefreq'] = $freq_override;
2689
  }
 
 
 
2690
  if ( ( 'sel' === $this->options[ $this->prefix . 'prio_post' ] ) && isset( $this->options[ $this->prefix . 'prio_post_' . $post->post_type ] ) ) {
2691
  if ( ( 'no' != $this->options[ $this->prefix . 'prio_post_' . $post->post_type ] ) && ( 'sel' !== $this->options[ $this->prefix . 'prio_post_' . $post->post_type ] ) ) {
2692
  $pr_info['priority'] = $this->options[ $this->prefix . 'prio_post_' . $post->post_type ];
@@ -2699,11 +2704,11 @@ if ( ! class_exists( 'All_in_One_SEO_Pack_Sitemap' ) ) {
2699
  }
2700
  $pr_info = array(
2701
  'loc' => $url,
2702
- 'image:image' => $is_single ? $this->get_images_from_post( $post ) : null,
2703
  ) + $pr_info; // Prepend loc to the array.
2704
  if ( is_float( $pr_info['priority'] ) ) {
2705
  $pr_info['priority'] = sprintf( '%0.1F', $pr_info['priority'] );
2706
  }
 
2707
  $pr_info = apply_filters( $this->prefix . 'prio_item_filter', $pr_info, $post, $args );
2708
  if ( ! empty( $pr_info ) ) {
2709
  $prio[] = $pr_info;
@@ -2724,19 +2729,23 @@ if ( ! class_exists( 'All_in_One_SEO_Pack_Sitemap' ) ) {
2724
  * @return array
2725
  */
2726
  private function get_images_from_term( $term ) {
 
2727
 
2728
  if ( ! aiosp_include_images() ) {
2729
  return array();
2730
  }
2731
 
2732
  $images = array();
2733
- $thumbnail_id = get_term_meta( $term->term_id, 'thumbnail_id', true );
2734
- if ( $thumbnail_id ) {
2735
- $image = wp_get_attachment_url( $thumbnail_id );
2736
- if ( $image ) {
2737
- $images['image:image'] = array(
2738
- 'image:loc' => $image,
2739
- );
 
 
 
2740
  }
2741
  }
2742
 
@@ -2852,6 +2861,8 @@ if ( ! class_exists( 'All_in_One_SEO_Pack_Sitemap' ) ) {
2852
 
2853
  /**
2854
  * Validate the image.
 
 
2855
  *
2856
  * @param string $image The image src.
2857
  *
@@ -2861,13 +2872,18 @@ if ( ! class_exists( 'All_in_One_SEO_Pack_Sitemap' ) ) {
2861
  * @return bool
2862
  */
2863
  function is_image_valid( $image ) {
 
 
2864
  // Bail if empty image.
2865
  if ( empty( $image ) ) {
2866
  return false;
2867
  }
2868
 
2869
  global $wp_version;
2870
- if ( version_compare( $wp_version, '4.7', '<' ) ) {
 
 
 
2871
  // Compatability for older WP version that don't have 4.7 changes.
2872
  // @link https://core.trac.wordpress.org/changeset/38726
2873
  $p_url = wp_parse_url( $image );
@@ -2880,20 +2896,32 @@ if ( ! class_exists( 'All_in_One_SEO_Pack_Sitemap' ) ) {
2880
  // make the url absolute, if its relative.
2881
  $image = aiosp_common::absolutize_url( $image );
2882
 
2883
- $extn = pathinfo( $url, PATHINFO_EXTENSION );
2884
  $allowed = apply_filters( 'aioseop_allowed_image_extensions', self::$image_extensions );
2885
  // Bail if image does not refer to an image file otherwise google webmaster tools might reject the sitemap.
2886
  if ( ! in_array( $extn, $allowed, true ) ) {
2887
  return false;
2888
  }
2889
 
2890
- // Bail if image refers to an external URL.
2891
- $image_host = wp_parse_url( $image, PHP_URL_HOST );
2892
- $wp_host = wp_parse_url( home_url(), PHP_URL_HOST );
2893
- if ( $image_host !== $wp_host ) {
2894
- return false;
2895
- }
2896
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2897
  return true;
2898
  }
2899
 
1046
  }
1047
  } else {
1048
  if ( $compressed ) {
1049
+ $file_resource = gzopen( $fn, 'rb' );
1050
+ $file = gzread( $file_resource, 4096 );
1051
+ gzclose( $file_resource );
1052
+ } else {
1053
+ $file = file_get_contents( $fn, false, null, 0, 4096 );
1054
  }
 
1055
  }
1056
  if ( ! empty( $file ) ) {
1057
  $matches = array();
1074
  $msg .= '<p>' . sprintf( __( 'Removed empty file %s.', 'all-in-one-seo-pack' ), $f ) . "</p>\n";
1075
  $problem_files[] = $f;
1076
 
1077
+ // This is causing all problem_files to be deleted automatically; which may be the intent.
1078
+ // TODO Either create a seperate variable for this set of problem_files, or a final loop to clean problem_files before returning.
1079
  foreach ( $problem_files as $f => $file ) {
1080
  $files[ $f ] = realpath( $file );
1081
  $this->delete_file( realpath( $file ) );
1662
  $count = 1;
1663
  for ( $post_count = 0; $post_count < $post_counts[ $sm ]; $post_count += $this->max_posts ) {
1664
  $files[] = array(
1665
+ 'loc' => aioseop_home_url ( '/' . $prefix . '_' . $sm . '_' . ( $count ++ ) . $suffix ),
 
1666
  'changefreq' => $freq,
1667
+ 'priority' => $prio,
1668
  );
1669
  }
1670
  } else {
1671
  $files[] = array(
1672
+ 'loc' => aioseop_home_url ( '/' . $prefix . '_' . $sm . $suffix ),
 
1673
  'changefreq' => $freq,
1674
+ 'priority' => $prio,
1675
  );
1676
  }
1677
  } else {
1678
  $files[] = array(
1679
+ 'loc' => aioseop_home_url ( '/' . $prefix . '_' . $sm . $suffix ),
 
1680
  'changefreq' => $freq,
1681
+ 'priority' => $prio,
1682
  );
1683
  }
1684
  }
1685
  }
1686
  if ( $this->option_isset( 'archive' ) ) {
1687
  $files[] = array(
1688
+ 'loc' => aioseop_home_url ( '/' . $prefix . '_archive' . $suffix ),
 
1689
  'changefreq' => $this->get_default_frequency( 'archive' ),
1690
+ 'priority' => $this->get_default_priority( 'archive' ),
1691
  );
1692
  }
1693
  if ( $this->option_isset( 'author' ) ) {
1694
  $files[] = array(
1695
+ 'loc' => aioseop_home_url ( '/' . $prefix . '_author' . $suffix ),
 
1696
  'changefreq' => $this->get_default_frequency( 'author' ),
1697
+ 'priority' => $this->get_default_priority( 'author' ),
1698
  );
1699
  }
1700
 
1707
  $count = 1;
1708
  for ( $tc = 0; $tc < $term_count; $tc += $this->max_posts ) {
1709
  $files[] = array(
1710
+ 'loc' => aioseop_home_url ( '/' . $prefix . '_' . $sm . '_' . ( $count ++ ) . $suffix ),
 
1711
  'changefreq' => $this->get_default_frequency( 'taxonomies' ),
1712
+ 'priority' => $this->get_default_priority( 'taxonomies' ),
1713
  );
1714
  }
1715
  } else {
1716
  $files[] = array(
1717
+ 'loc' => aioseop_home_url ( '/' . $prefix . '_' . $sm . $suffix ),
 
1718
  'changefreq' => $this->get_default_frequency( 'taxonomies' ),
1719
+ 'priority' => $this->get_default_priority( 'taxonomies' ),
1720
  );
1721
  }
1722
  } else {
1723
  $files[] = array(
1724
+ 'loc' => aioseop_home_url ( '/' . $prefix . '_' . $sm . $suffix ),
 
1725
  'changefreq' => $this->get_default_frequency( 'taxonomies' ),
1726
+ 'priority' => $this->get_default_priority( 'taxonomies' ),
1727
  );
1728
  }
1729
  }
1732
  foreach ( $this->get_child_sitemap_urls() as $csm ) {
1733
  $files[] = array(
1734
  'loc' => $csm,
 
1735
  'changefreq' => $this->get_default_frequency( 'sitemap' ),
1736
+ 'priority' => $this->get_default_priority( 'sitemap' ),
1737
  );
1738
  }
1739
 
1912
 
1913
  $home = array(
1914
  'loc' => aioseop_home_url(),
 
1915
  'changefreq' => $this->get_default_frequency( 'homepage' ),
1916
+ 'priority' => $this->get_default_priority( 'homepage' ),
1917
  'image:image' => $this->get_images_from_post( (int) get_option( 'page_on_front' ) ),
1918
  );
1919
 
1924
  } else {
1925
  $posts = array(
1926
  'loc' => $posts,
 
1927
  'changefreq' => $this->get_default_frequency( 'blog' ),
1928
+ 'priority' => $this->get_default_priority( 'blog' ),
1929
  );
1930
  }
1931
  }
1946
  if ( ( null != $posts ) && isset( $posts['loc'] ) ) {
1947
  foreach ( $prio as $k => $p ) {
1948
  if ( $p['loc'] === $posts['loc'] ) {
 
1949
  $prio[ $k ]['changefreq'] = $this->get_default_frequency( 'blog' );
1950
+ $prio[ $k ]['priority'] = $this->get_default_priority( 'blog' );
1951
  $posts = null;
1952
  break;
1953
  }
2190
  foreach ( $terms as $term ) {
2191
  $pr_info = array();
2192
  $pr_info['loc'] = $this->get_term_link( $term, $term->taxonomy );
 
 
 
 
 
2193
  if ( ( 'sel' === $this->options[ $this->prefix . 'freq_taxonomies' ] ) && isset( $this->options[ $this->prefix . 'freq_taxonomies_' . $term->taxonomy ] ) && ( 'no' != $this->options[ $this->prefix . 'freq_taxonomies_' . $term->taxonomy ] ) ) {
2194
  $pr_info['changefreq'] = $this->options[ $this->prefix . 'freq_taxonomies_' . $term->taxonomy ];
2195
  } else {
2196
  $pr_info['changefreq'] = $def_freq;
2197
  }
2198
+ if ( ( 'sel' === $this->options[ $this->prefix . 'prio_taxonomies' ] ) && isset( $this->options[ $this->prefix . 'prio_taxonomies_' . $term->taxonomy ] ) && ( 'no' != $this->options[ $this->prefix . 'prio_taxonomies_' . $term->taxonomy ] ) ) {
2199
+ $pr_info['priority'] = $this->options[ $this->prefix . 'prio_taxonomies_' . $term->taxonomy ];
2200
+ } else {
2201
+ $pr_info['priority'] = $def_prio;
2202
+ }
2203
 
2204
  $pr_info['image:image'] = $this->get_images_from_term( $term );
2205
  $prio[] = $pr_info;
2391
  $home = array();
2392
  $home = array(
2393
  'loc' => aioseop_home_url(),
 
2394
  'changefreq' => $this->get_default_frequency( 'homepage' ),
2395
+ 'priority' => $this->get_default_priority( 'homepage' ),
2396
  'image:image' => $this->get_images_from_post( (int) get_option( 'page_on_front' ) ),
2397
  );
2398
 
2404
  } else {
2405
  $posts = array(
2406
  'loc' => $posts,
 
2407
  'changefreq' => $this->get_default_frequency( 'blog' ),
2408
+ 'priority' => $this->get_default_priority( 'blog' ),
2409
  );
2410
  }
2411
  } else {
2686
  }
2687
  $pr_info = $this->get_prio_calc( $date, $stat );
2688
  }
 
 
 
2689
  if ( $freq_override ) {
2690
  $pr_info['changefreq'] = $freq_override;
2691
  }
2692
+ if ( $prio_override ) {
2693
+ $pr_info['priority'] = $prio_override;
2694
+ }
2695
  if ( ( 'sel' === $this->options[ $this->prefix . 'prio_post' ] ) && isset( $this->options[ $this->prefix . 'prio_post_' . $post->post_type ] ) ) {
2696
  if ( ( 'no' != $this->options[ $this->prefix . 'prio_post_' . $post->post_type ] ) && ( 'sel' !== $this->options[ $this->prefix . 'prio_post_' . $post->post_type ] ) ) {
2697
  $pr_info['priority'] = $this->options[ $this->prefix . 'prio_post_' . $post->post_type ];
2704
  }
2705
  $pr_info = array(
2706
  'loc' => $url,
 
2707
  ) + $pr_info; // Prepend loc to the array.
2708
  if ( is_float( $pr_info['priority'] ) ) {
2709
  $pr_info['priority'] = sprintf( '%0.1F', $pr_info['priority'] );
2710
  }
2711
+ $pr_info['image:image'] = $is_single ? $this->get_images_from_post( $post ) : null;
2712
  $pr_info = apply_filters( $this->prefix . 'prio_item_filter', $pr_info, $post, $args );
2713
  if ( ! empty( $pr_info ) ) {
2714
  $prio[] = $pr_info;
2729
  * @return array
2730
  */
2731
  private function get_images_from_term( $term ) {
2732
+ global $wp_version;
2733
 
2734
  if ( ! aiosp_include_images() ) {
2735
  return array();
2736
  }
2737
 
2738
  $images = array();
2739
+ // the table term meta table is not defined for lower versions.
2740
+ if ( version_compare( $wp_version, '4.4.0', '>=' ) ) {
2741
+ $thumbnail_id = get_term_meta( $term->term_id, 'thumbnail_id', true );
2742
+ if ( $thumbnail_id ) {
2743
+ $image = wp_get_attachment_url( $thumbnail_id );
2744
+ if ( $image ) {
2745
+ $images['image:image'] = array(
2746
+ 'image:loc' => $image,
2747
+ );
2748
+ }
2749
  }
2750
  }
2751
 
2861
 
2862
  /**
2863
  * Validate the image.
2864
+ * NOTE: We will use parse_url here instead of wp_parse_url as we will correct the URLs beforehand and
2865
+ * this saves us the need to check PHP version support.
2866
  *
2867
  * @param string $image The image src.
2868
  *
2872
  * @return bool
2873
  */
2874
  function is_image_valid( $image ) {
2875
+ global $wp_version;
2876
+
2877
  // Bail if empty image.
2878
  if ( empty( $image ) ) {
2879
  return false;
2880
  }
2881
 
2882
  global $wp_version;
2883
+ if ( version_compare( $wp_version, '4.4', '<' ) ) {
2884
+ $p_url = parse_url( $image );
2885
+ $url = $p_url['scheme'] . $p_url['host'] . $p_url['path'];
2886
+ } elseif ( version_compare( $wp_version, '4.7', '<' ) ) {
2887
  // Compatability for older WP version that don't have 4.7 changes.
2888
  // @link https://core.trac.wordpress.org/changeset/38726
2889
  $p_url = wp_parse_url( $image );
2896
  // make the url absolute, if its relative.
2897
  $image = aiosp_common::absolutize_url( $image );
2898
 
2899
+ $extn = pathinfo( parse_url( $image, PHP_URL_PATH ), PATHINFO_EXTENSION );
2900
  $allowed = apply_filters( 'aioseop_allowed_image_extensions', self::$image_extensions );
2901
  // Bail if image does not refer to an image file otherwise google webmaster tools might reject the sitemap.
2902
  if ( ! in_array( $extn, $allowed, true ) ) {
2903
  return false;
2904
  }
2905
 
2906
+ $image_host = parse_url( $image, PHP_URL_HOST );
2907
+ $host = parse_url( home_url(), PHP_URL_HOST );
 
 
 
 
2908
 
2909
+ if ( $image_host !== $host ) {
2910
+ // Allowed hosts will be provided in a wildcard format i.e. img.yahoo.* or *.akamai.*.
2911
+ // And we will convert that into a regular expression for matching.
2912
+ $whitelist = apply_filters( 'aioseop_images_allowed_from_hosts', array() );
2913
+ $allowed = false;
2914
+ if ( $whitelist ) {
2915
+ foreach ( $whitelist as $pattern ) {
2916
+ if ( preg_match( '/' . str_replace( '*', '.*', $pattern ) . '/', $image_host ) === 1 ) {
2917
+ $allowed = true;
2918
+ break;
2919
+ }
2920
+ }
2921
+ }
2922
+ return $allowed;
2923
+
2924
+ }
2925
  return true;
2926
  }
2927
 
readme.txt CHANGED
@@ -4,14 +4,16 @@ Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=mrtor
4
  Tags: seo, all in one seo, google, twitter, page, image seo, social, search engine optimization, sitemap, WordPress SEO, meta, meta description, xml sitemap, google sitemap, sitemaps, robots meta, yahoo, bing, news sitemaps, multisite, canonical, nofollow, noindex, keywords, description, webmaster tools, google webmaster tools, google analytics
5
  Requires at least: 4.4
6
  Tested up to: 4.9
7
- Stable tag: 2.4.6.1
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
11
- The original SEO plugin for WordPress, downloaded over 30,000,000 times since 2007.
12
 
13
  == Description ==
14
 
 
 
15
  Use **All in One SEO Pack** to optimize your WordPress site for SEO. It's easy and works out of the box for beginners, and has advanced features and an API for developers.
16
 
17
  **[Upgrade to Pro Version](http://semperplugins.com/plugins/all-in-one-seo-pack-pro-version/?loc=readme_utpv)**
4
  Tags: seo, all in one seo, google, twitter, page, image seo, social, search engine optimization, sitemap, WordPress SEO, meta, meta description, xml sitemap, google sitemap, sitemaps, robots meta, yahoo, bing, news sitemaps, multisite, canonical, nofollow, noindex, keywords, description, webmaster tools, google webmaster tools, google analytics
5
  Requires at least: 4.4
6
  Tested up to: 4.9
7
+ Stable tag: 2.5
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
11
+ The original WordPress SEO plugin, downloaded over 45,000,000 times since 2007.
12
 
13
  == Description ==
14
 
15
+ ###The original WordPress SEO plugin, downloaded over 45,000,000 times since 2007.
16
+
17
  Use **All in One SEO Pack** to optimize your WordPress site for SEO. It's easy and works out of the box for beginners, and has advanced features and an API for developers.
18
 
19
  **[Upgrade to Pro Version](http://semperplugins.com/plugins/all-in-one-seo-pack-pro-version/?loc=readme_utpv)**