Version Description
Download this release
Release Info
Developer | hallsofmontezuma |
Plugin | All in One SEO Pack |
Version | 2.3.16 |
Comparing to | |
See all releases |
Code changes from version 2.3.15.3 to 2.3.16
- admin/aioseop_module_class.php +14 -0
- aioseop_class.php +68 -36
- all_in_one_seo_pack.php +3 -3
- css/modules/aioseop_module-rtl.css +2 -1
- css/modules/aioseop_module.css +0 -1
- i18n/all-in-one-seo-pack-am.mo +0 -0
- i18n/all-in-one-seo-pack-arq.mo +0 -0
- i18n/all-in-one-seo-pack-az.mo +0 -0
- i18n/all-in-one-seo-pack-az_TR.mo +0 -0
- i18n/all-in-one-seo-pack-bg_NO.mo +0 -0
- i18n/all-in-one-seo-pack-bn_BD.mo +0 -0
- i18n/all-in-one-seo-pack-bs_BA.mo +0 -0
- i18n/all-in-one-seo-pack-ceb.mo +0 -0
- i18n/all-in-one-seo-pack-cs_CZ.mo +0 -0
- i18n/all-in-one-seo-pack-da_DK.mo +0 -0
- i18n/all-in-one-seo-pack-en_ZA.mo +0 -0
- i18n/all-in-one-seo-pack-eo.mo +0 -0
- i18n/all-in-one-seo-pack-es_AR.mo +0 -0
- i18n/all-in-one-seo-pack-es_CO.mo +0 -0
- i18n/all-in-one-seo-pack-es_PE.mo +0 -0
- i18n/all-in-one-seo-pack-es_PR.mo +0 -0
- i18n/all-in-one-seo-pack-es_VE.mo +0 -0
- i18n/all-in-one-seo-pack-et.mo +0 -0
- i18n/all-in-one-seo-pack-he_IL.mo +0 -0
- i18n/all-in-one-seo-pack-hy.mo +0 -0
- i18n/all-in-one-seo-pack-ja.mo +0 -0
- i18n/all-in-one-seo-pack-jv_ID.mo +0 -0
- i18n/all-in-one-seo-pack-lt.mo +0 -0
- i18n/all-in-one-seo-pack-mk_MK.mo +0 -0
- i18n/all-in-one-seo-pack-mn.mo +0 -0
- i18n/all-in-one-seo-pack-mr.mo +0 -0
- i18n/all-in-one-seo-pack-ms_MY.mo +0 -0
- i18n/all-in-one-seo-pack-pa_IN.mo +0 -0
- i18n/all-in-one-seo-pack-ps.mo +0 -0
- i18n/all-in-one-seo-pack-pt_BR.mo +0 -0
- i18n/all-in-one-seo-pack-ru_UA.mo +0 -0
- i18n/all-in-one-seo-pack-si_LK.mo +0 -0
- i18n/all-in-one-seo-pack-sk_SK.mo +0 -0
- i18n/all-in-one-seo-pack-sv_SE.mo +0 -0
- i18n/all-in-one-seo-pack-ta_IN.mo +0 -0
- i18n/all-in-one-seo-pack-tg.mo +0 -0
- i18n/all-in-one-seo-pack-uk.mo +0 -0
- i18n/all-in-one-seo-pack-ur.mo +0 -0
- i18n/all-in-one-seo-pack-zh_CH.mo +0 -0
- i18n/all-in-one-seo-pack-zh_TW.mo +0 -0
- inc/aioseop_functions.php +1 -1
- inc/commonstrings.php +9 -0
- inc/sitemap-xsl.php +7 -0
- js/modules/aioseop_module.js +11 -0
- modules/aioseop_feature_manager.php +1 -1
- modules/aioseop_opengraph.php +9 -6
- readme.txt +3 -46
admin/aioseop_module_class.php
CHANGED
@@ -2016,12 +2016,26 @@ if ( ! class_exists( 'All_in_One_SEO_Pack_Module' ) ) {
|
|
2016 |
foreach ( $v['display'] as $posttype ) {
|
2017 |
$v['location'] = $k;
|
2018 |
$v['posttype'] = $posttype;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019 |
if ( ! isset( $v['context'] ) ) {
|
2020 |
$v['context'] = 'advanced';
|
2021 |
}
|
2022 |
if ( ! isset( $v['priority'] ) ) {
|
2023 |
$v['priority'] = 'default';
|
2024 |
}
|
|
|
2025 |
if ( $this->tabbed_metaboxes ) {
|
2026 |
$this->post_metaboxes[] = array(
|
2027 |
'id' => $v['prefix'] . $k,
|
2016 |
foreach ( $v['display'] as $posttype ) {
|
2017 |
$v['location'] = $k;
|
2018 |
$v['posttype'] = $posttype;
|
2019 |
+
|
2020 |
+
if ( post_type_exists( $posttype ) ) {
|
2021 |
+
// Metabox priority/context on edit post screen.
|
2022 |
+
$v['context'] = apply_filters( 'aioseop_post_metabox_context', 'normal' );
|
2023 |
+
$v['priority'] = apply_filters( 'aioseop_post_metabox_priority', 'high' );
|
2024 |
+
}
|
2025 |
+
if ( false !== strpos( $posttype, 'edit-' ) ) {
|
2026 |
+
// Metabox priority/context on edit taxonomy screen.
|
2027 |
+
$v['context'] = 'advanced';
|
2028 |
+
$v['priority'] = 'default';
|
2029 |
+
}
|
2030 |
+
|
2031 |
+
// Metabox priority for everything else.
|
2032 |
if ( ! isset( $v['context'] ) ) {
|
2033 |
$v['context'] = 'advanced';
|
2034 |
}
|
2035 |
if ( ! isset( $v['priority'] ) ) {
|
2036 |
$v['priority'] = 'default';
|
2037 |
}
|
2038 |
+
|
2039 |
if ( $this->tabbed_metaboxes ) {
|
2040 |
$this->post_metaboxes[] = array(
|
2041 |
'id' => $v['prefix'] . $k,
|
aioseop_class.php
CHANGED
@@ -111,9 +111,9 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
|
|
111 |
__( "%page_author_firstname% - This page's author' first name (capitalized)", 'all-in-one-seo-pack' ) . '</li><li>' .
|
112 |
__( "%page_author_lastname% - This page's author' last name (capitalized)", 'all-in-one-seo-pack' ) . '</li><li>' .
|
113 |
__( "%current_date% - The current date (localized)", 'all-in-one-seo-pack' ) . '</li><li>'.
|
114 |
-
__( "%post_date% - The
|
115 |
-
__( "%post_year% - The
|
116 |
-
__( "%post_month% - The
|
117 |
'post_title_format' =>
|
118 |
__( 'This controls the format of the title tag for Posts.<br />The following macros are supported:', 'all-in-one-seo-pack' )
|
119 |
. '<li><li>' . __( '%blog_title% - Your blog title', 'all-in-one-seo-pack' ) . '</li><li>' .
|
@@ -126,9 +126,9 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
|
|
126 |
__( "%post_author_firstname% - This post's author' first name (capitalized)", 'all-in-one-seo-pack' ) . '</li><li>' .
|
127 |
__( "%post_author_lastname% - This post's author' last name (capitalized)", 'all-in-one-seo-pack' ) . '</li><li>' .
|
128 |
__( "%current_date% - The current date (localized)", 'all-in-one-seo-pack' ) . '</li><li>' .
|
129 |
-
__( "%post_date% - The
|
130 |
-
__( "%post_year% - The
|
131 |
-
__( "%post_month% - The
|
132 |
'category_title_format' =>
|
133 |
__( 'This controls the format of the title tag for Category Archives.<br />The following macros are supported:', 'all-in-one-seo-pack' ) .
|
134 |
'<ul><li>' . __( '%blog_title% - Your blog title', 'all-in-one-seo-pack' ) . '</li><li>' .
|
@@ -170,9 +170,9 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
|
|
170 |
__( '%post_title% - The original title of the post', 'all-in-one-seo-pack' ) . '</li><li>' .
|
171 |
__( '%wp_title% - The original WordPress title, e.g. post_title for posts', 'all-in-one-seo-pack' ) . '</li><li>' .
|
172 |
__( '%current_date% - The current date (localized)', 'all-in-one-seo-pack' ) . '</li><li>' .
|
173 |
-
__( "%post_date% - The
|
174 |
-
__( "%post_year% - The
|
175 |
-
__( "%post_month% - The
|
176 |
'404_title_format' => __( 'This controls the format of the title tag for the 404 page.<br />The following macros are supported:', 'all-in-one-seo-pack' ) .
|
177 |
'<ul><li>' . __( '%blog_title% - Your blog title', 'all-in-one-seo-pack' ) . '</li><li>' .
|
178 |
__( '%blog_description% - Your blog description', 'all-in-one-seo-pack' ) . '</li><li>' .
|
@@ -317,6 +317,16 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
|
|
317 |
'page_meta_tags' => '#additional-page-headers',
|
318 |
'front_meta_tags' => '#additional-front-page-headers',
|
319 |
'home_meta_tags' => '#additional-blog-page-headers',
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
320 |
);
|
321 |
|
322 |
$meta_help_text = array(
|
@@ -887,7 +897,7 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
|
|
887 |
'name' => $this->plugin_name,
|
888 |
'type' => 'metabox',
|
889 |
'prefix' => '',
|
890 |
-
'help_link' => 'https://semperplugins.com/
|
891 |
'options' => array(
|
892 |
'edit',
|
893 |
'nonce-aioseop-edit',
|
@@ -968,11 +978,11 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
|
|
968 |
'size' => 60,
|
969 |
),
|
970 |
'noindex' => array(
|
971 |
-
'name' => __( '
|
972 |
'default' => '',
|
973 |
),
|
974 |
'nofollow' => array(
|
975 |
-
'name' => __( '
|
976 |
'default' => '',
|
977 |
),
|
978 |
'sitemap_exclude' => array( 'name' => __( 'Exclude From Sitemap', 'all-in-one-seo-pack' ) ),
|
@@ -1489,12 +1499,14 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
|
|
1489 |
$get_opts[ $field ] = htmlspecialchars( stripslashes( $meta ) );
|
1490 |
}
|
1491 |
} else {
|
1492 |
-
|
1493 |
-
|
1494 |
-
|
1495 |
-
|
1496 |
-
|
1497 |
-
|
|
|
|
|
1498 |
}
|
1499 |
}
|
1500 |
|
@@ -3133,9 +3145,9 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
|
|
3133 |
__( "%post_author_firstname% - This post's author' first name (capitalized)", 'all-in-one-seo-pack' ) . '</li><li>' .
|
3134 |
__( "%post_author_lastname% - This post's author' last name (capitalized)", 'all-in-one-seo-pack' ) . '</li>' .
|
3135 |
__( "%current_date% - The current date (localized)", 'all-in-one-seo-pack' ) . '</li><li>' .
|
3136 |
-
__( "%post_date% - The
|
3137 |
-
__( "%post_year% - The
|
3138 |
-
__( "%post_month% - The
|
3139 |
'</ul>' .
|
3140 |
'</ul>';
|
3141 |
$this->help_anchors[ $field ] = '#custom-titles';
|
@@ -3903,7 +3915,7 @@ class All_in_One_SEO_Pack extends All_in_One_SEO_Pack_Module {
|
|
3903 |
|
3904 |
if ( $aioseop_options['aiosp_can'] ) {
|
3905 |
$url = '';
|
3906 |
-
if ( ! empty( $aioseop_options['aiosp_customize_canonical_links'] ) && ! empty( $opts['aiosp_custom_link'] ) ) {
|
3907 |
$url = $opts['aiosp_custom_link'];
|
3908 |
}
|
3909 |
if ( empty( $url ) ) {
|
@@ -4526,29 +4538,44 @@ EOF;
|
|
4526 |
if ( ! empty( $blog_page ) ) {
|
4527 |
$post = $blog_page;
|
4528 |
}
|
4529 |
-
|
4530 |
if ( ! is_home() || ( ! is_front_page() && ! is_home() ) ) {
|
4531 |
global $wp_the_query;
|
4532 |
$current_object = $wp_the_query->get_queried_object();
|
4533 |
|
4534 |
-
if (
|
4535 |
-
|
4536 |
-
|
4537 |
-
|
4538 |
-
|
4539 |
-
|
4540 |
-
|
4541 |
-
|
4542 |
-
|
4543 |
-
|
4544 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4545 |
$wp_admin_bar->add_menu( array(
|
4546 |
'id' => 'aiosp_edit_' . $post->ID,
|
4547 |
'parent' => AIOSEOP_PLUGIN_DIRNAME,
|
4548 |
'title' => __( 'Edit SEO', 'all-in-one-seo-pack' ),
|
4549 |
-
'href' =>
|
4550 |
) );
|
4551 |
}
|
|
|
|
|
4552 |
}
|
4553 |
}
|
4554 |
}
|
@@ -4705,7 +4732,12 @@ EOF;
|
|
4705 |
|
4706 |
if ( ! empty( $this->options['aiosp_enablecpost'] ) && $this->options['aiosp_enablecpost'] ) {
|
4707 |
if ( AIOSEOPPRO ) {
|
4708 |
-
|
|
|
|
|
|
|
|
|
|
|
4709 |
if ( ! empty( $this->options['aiosp_taxactive'] ) ) {
|
4710 |
foreach ( $this->options['aiosp_taxactive'] as $tax ) {
|
4711 |
$this->locations['aiosp']['display'][] = 'edit-' . $tax;
|
111 |
__( "%page_author_firstname% - This page's author' first name (capitalized)", 'all-in-one-seo-pack' ) . '</li><li>' .
|
112 |
__( "%page_author_lastname% - This page's author' last name (capitalized)", 'all-in-one-seo-pack' ) . '</li><li>' .
|
113 |
__( "%current_date% - The current date (localized)", 'all-in-one-seo-pack' ) . '</li><li>'.
|
114 |
+
__( "%post_date% - The date the page was published (localized)", 'all-in-one-seo-pack' ) . '</li><li>' .
|
115 |
+
__( "%post_year% - The year the page was published (localized)", 'all-in-one-seo-pack' ) . '</li><li>' .
|
116 |
+
__( "%post_month% - The month the page was published (localized)", 'all-in-one-seo-pack' ) . '</li>' ,
|
117 |
'post_title_format' =>
|
118 |
__( 'This controls the format of the title tag for Posts.<br />The following macros are supported:', 'all-in-one-seo-pack' )
|
119 |
. '<li><li>' . __( '%blog_title% - Your blog title', 'all-in-one-seo-pack' ) . '</li><li>' .
|
126 |
__( "%post_author_firstname% - This post's author' first name (capitalized)", 'all-in-one-seo-pack' ) . '</li><li>' .
|
127 |
__( "%post_author_lastname% - This post's author' last name (capitalized)", 'all-in-one-seo-pack' ) . '</li><li>' .
|
128 |
__( "%current_date% - The current date (localized)", 'all-in-one-seo-pack' ) . '</li><li>' .
|
129 |
+
__( "%post_date% - The date the post was published (localized)", 'all-in-one-seo-pack' ) . '</li><li>' .
|
130 |
+
__( "%post_year% - The year the post was published (localized)", 'all-in-one-seo-pack' ) . '</li><li>' .
|
131 |
+
__( "%post_month% - The month the post was published (localized)", 'all-in-one-seo-pack' ) . '</li>' ,
|
132 |
'category_title_format' =>
|
133 |
__( 'This controls the format of the title tag for Category Archives.<br />The following macros are supported:', 'all-in-one-seo-pack' ) .
|
134 |
'<ul><li>' . __( '%blog_title% - Your blog title', 'all-in-one-seo-pack' ) . '</li><li>' .
|
170 |
__( '%post_title% - The original title of the post', 'all-in-one-seo-pack' ) . '</li><li>' .
|
171 |
__( '%wp_title% - The original WordPress title, e.g. post_title for posts', 'all-in-one-seo-pack' ) . '</li><li>' .
|
172 |
__( '%current_date% - The current date (localized)', 'all-in-one-seo-pack' ) . '</li><li>' .
|
173 |
+
__( "%post_date% - The date the page/post was published (localized)", 'all-in-one-seo-pack' ) . '</li><li>' .
|
174 |
+
__( "%post_year% - The year the page/post was published (localized)", 'all-in-one-seo-pack' ) . '</li><li>' .
|
175 |
+
__( "%post_month% - The month the page/post was published (localized)", 'all-in-one-seo-pack' ) . '</li>' ,
|
176 |
'404_title_format' => __( 'This controls the format of the title tag for the 404 page.<br />The following macros are supported:', 'all-in-one-seo-pack' ) .
|
177 |
'<ul><li>' . __( '%blog_title% - Your blog title', 'all-in-one-seo-pack' ) . '</li><li>' .
|
178 |
__( '%blog_description% - Your blog description', 'all-in-one-seo-pack' ) . '</li><li>' .
|
317 |
'page_meta_tags' => '#additional-page-headers',
|
318 |
'front_meta_tags' => '#additional-front-page-headers',
|
319 |
'home_meta_tags' => '#additional-blog-page-headers',
|
320 |
+
'snippet' => '#preview-snippet',
|
321 |
+
'title' => '#title',
|
322 |
+
'description' => '#description',
|
323 |
+
'keywords' => '#keywords',
|
324 |
+
'custom_link' => '#custom-canonical-url',
|
325 |
+
'noindex' => '#robots-meta-noindex',
|
326 |
+
'nofollow' => '#robots-meta-nofollow',
|
327 |
+
'sitemap_exclude' => '#exclude-from-sitemap',
|
328 |
+
'disable' => '#disable-on-this-post',
|
329 |
+
'disable_analytics' => '#disable-google-analytics',
|
330 |
);
|
331 |
|
332 |
$meta_help_text = array(
|
897 |
'name' => $this->plugin_name,
|
898 |
'type' => 'metabox',
|
899 |
'prefix' => '',
|
900 |
+
'help_link' => 'https://semperplugins.com/documentation/post-settings/',
|
901 |
'options' => array(
|
902 |
'edit',
|
903 |
'nonce-aioseop-edit',
|
978 |
'size' => 60,
|
979 |
),
|
980 |
'noindex' => array(
|
981 |
+
'name' => __( 'NOINDEX this page/post', 'all-in-one-seo-pack' ),
|
982 |
'default' => '',
|
983 |
),
|
984 |
'nofollow' => array(
|
985 |
+
'name' => __( 'NOFOLLOW this page/post', 'all-in-one-seo-pack' ),
|
986 |
'default' => '',
|
987 |
),
|
988 |
'sitemap_exclude' => array( 'name' => __( 'Exclude From Sitemap', 'all-in-one-seo-pack' ) ),
|
1499 |
$get_opts[ $field ] = htmlspecialchars( stripslashes( $meta ) );
|
1500 |
}
|
1501 |
} else {
|
1502 |
+
if ( ! is_category() && ! is_tag() && ! is_tax() ) {
|
1503 |
+
$field = "aiosp_$f";
|
1504 |
+
$meta = get_post_meta( $post_id, '_aioseop_' . $f, true );
|
1505 |
+
if ( 'title' === $f || 'description' === $f ) {
|
1506 |
+
$get_opts[ $field ] = htmlspecialchars( $meta );
|
1507 |
+
} else {
|
1508 |
+
$get_opts[ $field ] = htmlspecialchars( stripslashes( $meta ) );
|
1509 |
+
}
|
1510 |
}
|
1511 |
}
|
1512 |
|
3145 |
__( "%post_author_firstname% - This post's author' first name (capitalized)", 'all-in-one-seo-pack' ) . '</li><li>' .
|
3146 |
__( "%post_author_lastname% - This post's author' last name (capitalized)", 'all-in-one-seo-pack' ) . '</li>' .
|
3147 |
__( "%current_date% - The current date (localized)", 'all-in-one-seo-pack' ) . '</li><li>' .
|
3148 |
+
__( "%post_date% - The date the post was published (localized)", 'all-in-one-seo-pack' ) . '</li><li>' .
|
3149 |
+
__( "%post_year% - The year the post was published (localized)", 'all-in-one-seo-pack' ) . '</li><li>' .
|
3150 |
+
__( "%post_month% - The month the post was published (localized)", 'all-in-one-seo-pack' ) . '</li>' .
|
3151 |
'</ul>' .
|
3152 |
'</ul>';
|
3153 |
$this->help_anchors[ $field ] = '#custom-titles';
|
3915 |
|
3916 |
if ( $aioseop_options['aiosp_can'] ) {
|
3917 |
$url = '';
|
3918 |
+
if ( ! empty( $aioseop_options['aiosp_customize_canonical_links'] ) && ! empty( $opts['aiosp_custom_link'] ) && ! is_home() ) {
|
3919 |
$url = $opts['aiosp_custom_link'];
|
3920 |
}
|
3921 |
if ( empty( $url ) ) {
|
4538 |
if ( ! empty( $blog_page ) ) {
|
4539 |
$post = $blog_page;
|
4540 |
}
|
4541 |
+
// Don't show if we're on the home page and the home page is the latest posts.
|
4542 |
if ( ! is_home() || ( ! is_front_page() && ! is_home() ) ) {
|
4543 |
global $wp_the_query;
|
4544 |
$current_object = $wp_the_query->get_queried_object();
|
4545 |
|
4546 |
+
if ( is_singular() ) {
|
4547 |
+
if ( ! empty( $current_object ) && ! empty( $current_object->post_type ) ) {
|
4548 |
+
// Try the main query.
|
4549 |
+
$edit_post_link = get_edit_post_link( $current_object->ID );
|
4550 |
+
$wp_admin_bar->add_menu( array(
|
4551 |
+
'id' => 'aiosp_edit_' . $current_object->ID,
|
4552 |
+
'parent' => AIOSEOP_PLUGIN_DIRNAME,
|
4553 |
+
'title' => 'Edit SEO',
|
4554 |
+
'href' => $edit_post_link . '#aiosp',
|
4555 |
+
) );
|
4556 |
+
} else {
|
4557 |
+
// Try the post object.
|
4558 |
+
$wp_admin_bar->add_menu( array(
|
4559 |
+
'id' => 'aiosp_edit_' . $post->ID,
|
4560 |
+
'parent' => AIOSEOP_PLUGIN_DIRNAME,
|
4561 |
+
'title' => __( 'Edit SEO', 'all-in-one-seo-pack' ),
|
4562 |
+
'href' => get_edit_post_link( $post->ID ) . '#aiosp',
|
4563 |
+
) );
|
4564 |
+
}
|
4565 |
+
}
|
4566 |
+
|
4567 |
+
if ( AIOSEOPPRO && ( is_category() || is_tax() || is_tag() ) ) {
|
4568 |
+
// SEO for taxonomies are only available in Pro version.
|
4569 |
+
$edit_term_link = get_edit_term_link( $current_object->term_id, $current_object->taxonomy );
|
4570 |
$wp_admin_bar->add_menu( array(
|
4571 |
'id' => 'aiosp_edit_' . $post->ID,
|
4572 |
'parent' => AIOSEOP_PLUGIN_DIRNAME,
|
4573 |
'title' => __( 'Edit SEO', 'all-in-one-seo-pack' ),
|
4574 |
+
'href' => $edit_term_link . '#aiosp',
|
4575 |
) );
|
4576 |
}
|
4577 |
+
|
4578 |
+
|
4579 |
}
|
4580 |
}
|
4581 |
}
|
4732 |
|
4733 |
if ( ! empty( $this->options['aiosp_enablecpost'] ) && $this->options['aiosp_enablecpost'] ) {
|
4734 |
if ( AIOSEOPPRO ) {
|
4735 |
+
if( is_array( $this->options['aiosp_cpostactive'] ) ) {
|
4736 |
+
$this->locations['aiosp']['display'] = $this->options['aiosp_cpostactive'];
|
4737 |
+
}else{
|
4738 |
+
$this->locations['aiosp']['display'][] = $this->options['aiosp_cpostactive']; // Store as an array in case there are taxonomies to add also.
|
4739 |
+
}
|
4740 |
+
|
4741 |
if ( ! empty( $this->options['aiosp_taxactive'] ) ) {
|
4742 |
foreach ( $this->options['aiosp_taxactive'] as $tax ) {
|
4743 |
$this->locations['aiosp']['display'][] = 'edit-' . $tax;
|
all_in_one_seo_pack.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: All In One SEO Pack
|
4 |
Plugin URI: https://semperplugins.com/all-in-one-seo-pack-pro-version/
|
5 |
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.
|
6 |
-
Version: 2.3.
|
7 |
Author: Michael Torbert
|
8 |
Author URI: https://semperplugins.com/all-in-one-seo-pack-pro-version/
|
9 |
Text Domain: all-in-one-seo-pack
|
@@ -31,14 +31,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
31 |
* The original WordPress SEO plugin.
|
32 |
*
|
33 |
* @package All-in-One-SEO-Pack
|
34 |
-
* @version 2.3.
|
35 |
*/
|
36 |
|
37 |
if ( ! defined( 'AIOSEOPPRO' ) ) {
|
38 |
define( 'AIOSEOPPRO', false );
|
39 |
}
|
40 |
if ( ! defined( 'AIOSEOP_VERSION' ) ) {
|
41 |
-
define( 'AIOSEOP_VERSION', '2.3.
|
42 |
}
|
43 |
global $aioseop_plugin_name;
|
44 |
$aioseop_plugin_name = 'All in One SEO Pack';
|
3 |
Plugin Name: All In One SEO Pack
|
4 |
Plugin URI: https://semperplugins.com/all-in-one-seo-pack-pro-version/
|
5 |
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.
|
6 |
+
Version: 2.3.16
|
7 |
Author: Michael Torbert
|
8 |
Author URI: https://semperplugins.com/all-in-one-seo-pack-pro-version/
|
9 |
Text Domain: all-in-one-seo-pack
|
31 |
* The original WordPress SEO plugin.
|
32 |
*
|
33 |
* @package All-in-One-SEO-Pack
|
34 |
+
* @version 2.3.16
|
35 |
*/
|
36 |
|
37 |
if ( ! defined( 'AIOSEOPPRO' ) ) {
|
38 |
define( 'AIOSEOPPRO', false );
|
39 |
}
|
40 |
if ( ! defined( 'AIOSEOP_VERSION' ) ) {
|
41 |
+
define( 'AIOSEOP_VERSION', '2.3.16' );
|
42 |
}
|
43 |
global $aioseop_plugin_name;
|
44 |
$aioseop_plugin_name = 'All in One SEO Pack';
|
css/modules/aioseop_module-rtl.css
CHANGED
@@ -46,6 +46,7 @@
|
|
46 |
}
|
47 |
|
48 |
.aioseop input[type="text"] {
|
|
|
49 |
padding: 2px 10px 2px 0
|
50 |
}
|
51 |
|
@@ -316,4 +317,4 @@ form#aiosp_settings_form,
|
|
316 |
|
317 |
#aioseop-about .aioseop_metabox_text ul {
|
318 |
padding-right: 15px;
|
319 |
-
}
|
46 |
}
|
47 |
|
48 |
.aioseop input[type="text"] {
|
49 |
+
height: 35px;
|
50 |
padding: 2px 10px 2px 0
|
51 |
}
|
52 |
|
317 |
|
318 |
#aioseop-about .aioseop_metabox_text ul {
|
319 |
padding-right: 15px;
|
320 |
+
}
|
css/modules/aioseop_module.css
CHANGED
@@ -163,7 +163,6 @@ div.aioseop_tip_icon:before {
|
|
163 |
|
164 |
.aioseop input[type="text"] {
|
165 |
color: #515151;
|
166 |
-
height: 35px;
|
167 |
padding: 10px 0 10px 10px;
|
168 |
font-size: 14px;
|
169 |
width: 95%;
|
163 |
|
164 |
.aioseop input[type="text"] {
|
165 |
color: #515151;
|
|
|
166 |
padding: 10px 0 10px 10px;
|
167 |
font-size: 14px;
|
168 |
width: 95%;
|
i18n/all-in-one-seo-pack-am.mo
DELETED
Binary file
|
i18n/all-in-one-seo-pack-arq.mo
DELETED
Binary file
|
i18n/all-in-one-seo-pack-az.mo
DELETED
Binary file
|
i18n/all-in-one-seo-pack-az_TR.mo
DELETED
Binary file
|
i18n/all-in-one-seo-pack-bg_NO.mo
DELETED
Binary file
|
i18n/all-in-one-seo-pack-bn_BD.mo
DELETED
Binary file
|
i18n/all-in-one-seo-pack-bs_BA.mo
DELETED
Binary file
|
i18n/all-in-one-seo-pack-ceb.mo
DELETED
Binary file
|
i18n/all-in-one-seo-pack-cs_CZ.mo
DELETED
Binary file
|
i18n/all-in-one-seo-pack-da_DK.mo
DELETED
Binary file
|
i18n/all-in-one-seo-pack-en_ZA.mo
DELETED
Binary file
|
i18n/all-in-one-seo-pack-eo.mo
DELETED
Binary file
|
i18n/all-in-one-seo-pack-es_AR.mo
DELETED
Binary file
|
i18n/all-in-one-seo-pack-es_CO.mo
DELETED
Binary file
|
i18n/all-in-one-seo-pack-es_PE.mo
DELETED
Binary file
|
i18n/all-in-one-seo-pack-es_PR.mo
DELETED
Binary file
|
i18n/all-in-one-seo-pack-es_VE.mo
DELETED
Binary file
|
i18n/all-in-one-seo-pack-et.mo
DELETED
Binary file
|
i18n/all-in-one-seo-pack-he_IL.mo
DELETED
Binary file
|
i18n/all-in-one-seo-pack-hy.mo
DELETED
Binary file
|
i18n/all-in-one-seo-pack-ja.mo
DELETED
Binary file
|
i18n/all-in-one-seo-pack-jv_ID.mo
DELETED
Binary file
|
i18n/all-in-one-seo-pack-lt.mo
DELETED
Binary file
|
i18n/all-in-one-seo-pack-mk_MK.mo
DELETED
Binary file
|
i18n/all-in-one-seo-pack-mn.mo
DELETED
Binary file
|
i18n/all-in-one-seo-pack-mr.mo
DELETED
Binary file
|
i18n/all-in-one-seo-pack-ms_MY.mo
DELETED
Binary file
|
i18n/all-in-one-seo-pack-pa_IN.mo
DELETED
Binary file
|
i18n/all-in-one-seo-pack-ps.mo
DELETED
Binary file
|
i18n/all-in-one-seo-pack-pt_BR.mo
DELETED
Binary file
|
i18n/all-in-one-seo-pack-ru_UA.mo
DELETED
Binary file
|
i18n/all-in-one-seo-pack-si_LK.mo
DELETED
Binary file
|
i18n/all-in-one-seo-pack-sk_SK.mo
DELETED
Binary file
|
i18n/all-in-one-seo-pack-sv_SE.mo
DELETED
Binary file
|
i18n/all-in-one-seo-pack-ta_IN.mo
DELETED
Binary file
|
i18n/all-in-one-seo-pack-tg.mo
DELETED
Binary file
|
i18n/all-in-one-seo-pack-uk.mo
DELETED
Binary file
|
i18n/all-in-one-seo-pack-ur.mo
DELETED
Binary file
|
i18n/all-in-one-seo-pack-zh_CH.mo
DELETED
Binary file
|
i18n/all-in-one-seo-pack-zh_TW.mo
DELETED
Binary file
|
inc/aioseop_functions.php
CHANGED
@@ -296,7 +296,7 @@ if ( ! function_exists( 'aioseop_output_notice' ) ) {
|
|
296 |
$class .= ' id="' . esc_attr( $id ) . '"';
|
297 |
}
|
298 |
$dismiss = ' ';
|
299 |
-
echo "<div{$class}>" . wp_kses_post( $message ) . '
|
300 |
|
301 |
return true;
|
302 |
}
|
296 |
$class .= ' id="' . esc_attr( $id ) . '"';
|
297 |
}
|
298 |
$dismiss = ' ';
|
299 |
+
echo "<div{$class}>" . wp_kses_post( $message ) . '</div>';
|
300 |
|
301 |
return true;
|
302 |
}
|
inc/commonstrings.php
CHANGED
@@ -45,5 +45,14 @@ class AIOSP_Common_Strings {
|
|
45 |
__( 'This displays an SEO News widget on the dashboard.', 'all-in-one-seo-pack' );
|
46 |
__( 'Check this to add All in One SEO Pack to the Admin Bar for easy access to your SEO settings.', 'all-in-one-seo-pack' );
|
47 |
__( 'Check this to move the All in One SEO Pack menu item to the top of your WordPress Dashboard menu.', 'all-in-one-seo-pack' );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
48 |
}
|
49 |
}
|
45 |
__( 'This displays an SEO News widget on the dashboard.', 'all-in-one-seo-pack' );
|
46 |
__( 'Check this to add All in One SEO Pack to the Admin Bar for easy access to your SEO settings.', 'all-in-one-seo-pack' );
|
47 |
__( 'Check this to move the All in One SEO Pack menu item to the top of your WordPress Dashboard menu.', 'all-in-one-seo-pack' );
|
48 |
+
__('%s is almost ready.', 'all-in-one-seo-pack' );
|
49 |
+
__('You must <a href="%s">enter a valid License Key</a> for it to work.', 'all-in-one-seo-pack' );
|
50 |
+
__( ' Need a license key?', 'all-in-one-seo-pack' );
|
51 |
+
__( 'Purchase one now', 'all-in-one-seo-pack' );
|
52 |
+
__( "There is a new version of %s available. Go to <a href='%s'>the plugins page</a> for details.", 'all-in-one-seo-pack' );
|
53 |
+
sprintf( __( 'Your license has expired. Please %1$s click here %2$s to purchase a new one.', 'all-in-one-seo-pack' ), '<a href="https://semperplugins.com/all-in-one-seo-pack-pro-version/" target="_blank">', '</a>' );
|
54 |
+
__( 'Manage Licenses', 'all-in-one-seo-pack' );
|
55 |
+
__( 'License Key is not set yet or invalid. ', 'all-in-one-seo-pack' );
|
56 |
+
__( ' Need a license key?', 'all-in-one-seo-pack' );
|
57 |
}
|
58 |
}
|
inc/sitemap-xsl.php
CHANGED
@@ -76,6 +76,13 @@ echo '<?xml version="1.0" encoding="UTF-8"?>';
|
|
76 |
tr.stripe {
|
77 |
background-color: #f7f7f7;
|
78 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
79 |
</style>
|
80 |
</head>
|
81 |
<body>
|
76 |
tr.stripe {
|
77 |
background-color: #f7f7f7;
|
78 |
}
|
79 |
+
table td a {
|
80 |
+
display: block;
|
81 |
+
}
|
82 |
+
table td a img {
|
83 |
+
max-height: 30px;
|
84 |
+
margin: 6px 3px;
|
85 |
+
}
|
86 |
</style>
|
87 |
</head>
|
88 |
<body>
|
js/modules/aioseop_module.js
CHANGED
@@ -242,6 +242,17 @@ jQuery( document ).ready(function() {
|
|
242 |
aioseop_do_condshow( aiosp_data.condshow );
|
243 |
}
|
244 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
245 |
});
|
246 |
|
247 |
/**
|
242 |
aioseop_do_condshow( aiosp_data.condshow );
|
243 |
}
|
244 |
}
|
245 |
+
|
246 |
+
/**
|
247 |
+
* Turns on image checker on custom url change.
|
248 |
+
* @since 2.3.16
|
249 |
+
*/
|
250 |
+
jQuery( '.aioseop_upload_image_label' ).on( 'change', function() {
|
251 |
+
this.checker = jQuery( this ).parent().find( '.aioseop_upload_image_checker' );
|
252 |
+
if ( this.checker.length > 0 ) {
|
253 |
+
this.checker.val( 1 );
|
254 |
+
}
|
255 |
+
} );
|
256 |
});
|
257 |
|
258 |
/**
|
modules/aioseop_feature_manager.php
CHANGED
@@ -31,7 +31,7 @@ if ( ! class_exists( 'All_in_One_SEO_Pack_Feature_Manager' ) ) {
|
|
31 |
),
|
32 |
'opengraph' => array(
|
33 |
'name' => __( 'Social Meta', 'all-in-one-seo-pack' ),
|
34 |
-
'description' => __( '
|
35 |
),
|
36 |
'robots' => array(
|
37 |
'name' => __( 'Robots.txt', 'all-in-one-seo-pack' ),
|
31 |
),
|
32 |
'opengraph' => array(
|
33 |
'name' => __( 'Social Meta', 'all-in-one-seo-pack' ),
|
34 |
+
'description' => __( 'Add Social Meta data to your site to deliver closer integration between your website/blog and social media.', 'all-in-one-seo-pack' ),
|
35 |
),
|
36 |
'robots' => array(
|
37 |
'name' => __( 'Robots.txt', 'all-in-one-seo-pack' ),
|
modules/aioseop_opengraph.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* The Opengraph class.
|
4 |
*
|
5 |
* @package All-in-One-SEO-Pack
|
6 |
-
* @version 2.
|
7 |
*/
|
8 |
if ( ! class_exists( 'All_in_One_SEO_Pack_Opengraph' ) ) {
|
9 |
class All_in_One_SEO_Pack_Opengraph extends All_in_One_SEO_Pack_Module {
|
@@ -13,7 +13,8 @@ if ( ! class_exists( 'All_in_One_SEO_Pack_Opengraph' ) ) {
|
|
13 |
/**
|
14 |
* Module constructor.
|
15 |
*
|
16 |
-
* @since 2.
|
|
|
17 |
*/
|
18 |
function __construct() {
|
19 |
add_action( 'admin_enqueue_scripts', array( $this, 'og_admin_enqueue_scripts' ) );
|
@@ -105,8 +106,8 @@ if ( ! class_exists( 'All_in_One_SEO_Pack_Opengraph' ) ) {
|
|
105 |
"video" => __( "This option lets you specify a link to the Open Graph video used on this Page or Post.", 'all-in-one-seo-pack' ),
|
106 |
"videowidth" => __( "Enter the width for your Open Graph video in pixels (i.e. 600).", 'all-in-one-seo-pack' ),
|
107 |
"videoheight" => __( "Enter the height for your Open Graph video in pixels (i.e. 600).", 'all-in-one-seo-pack' ),
|
108 |
-
"defcard" => __( "Select the default type of Twitter
|
109 |
-
"setcard" => __( "Select the
|
110 |
"twitter_site" => __( "Enter the Twitter username associated with your website here.", 'all-in-one-seo-pack' ),
|
111 |
"twitter_creator" => __( "Allows your authors to be identified by their Twitter usernames as content creators on the Twitter cards for their posts.", 'all-in-one-seo-pack' ),
|
112 |
"twitter_domain" => __( "Enter the name of your website here.", 'all-in-one-seo-pack' ),
|
@@ -196,6 +197,8 @@ if ( ! class_exists( 'All_in_One_SEO_Pack_Opengraph' ) ) {
|
|
196 |
add_action( 'edited_term', array( &$this, 'save_tax_data' ), 10, 3 );
|
197 |
// Adds special filters
|
198 |
add_filter( 'aioseop_opengraph_placeholder', array( &$this, 'filter_placeholder' ) );
|
|
|
|
|
199 |
}
|
200 |
|
201 |
/**
|
@@ -415,7 +418,7 @@ if ( ! class_exists( 'All_in_One_SEO_Pack_Opengraph' ) ) {
|
|
415 |
'types' => array(
|
416 |
'name' => __( 'Enable Facebook Meta for Post Types', 'all-in-one-seo-pack' ),
|
417 |
'type' => 'multicheckbox',
|
418 |
-
'default' => array( 'post' => '
|
419 |
'initial_options' => $this->get_post_type_titles( array( '_builtin' => false ) ),
|
420 |
),
|
421 |
'title' => array(
|
@@ -491,7 +494,7 @@ if ( ! class_exists( 'All_in_One_SEO_Pack_Opengraph' ) ) {
|
|
491 |
// load initial options / set defaults
|
492 |
$this->update_options();
|
493 |
$display = Array();
|
494 |
-
if ( isset( $this->options['aiosp_opengraph_types'] ) ) {
|
495 |
$display = $this->options['aiosp_opengraph_types'];
|
496 |
}
|
497 |
$this->locations = array(
|
3 |
* The Opengraph class.
|
4 |
*
|
5 |
* @package All-in-One-SEO-Pack
|
6 |
+
* @version 2.3.16
|
7 |
*/
|
8 |
if ( ! class_exists( 'All_in_One_SEO_Pack_Opengraph' ) ) {
|
9 |
class All_in_One_SEO_Pack_Opengraph extends All_in_One_SEO_Pack_Module {
|
13 |
/**
|
14 |
* Module constructor.
|
15 |
*
|
16 |
+
* @since 2.3.14 Added display filter.
|
17 |
+
* @since 2.3.16 #1066 Force init on constructor.
|
18 |
*/
|
19 |
function __construct() {
|
20 |
add_action( 'admin_enqueue_scripts', array( $this, 'og_admin_enqueue_scripts' ) );
|
106 |
"video" => __( "This option lets you specify a link to the Open Graph video used on this Page or Post.", 'all-in-one-seo-pack' ),
|
107 |
"videowidth" => __( "Enter the width for your Open Graph video in pixels (i.e. 600).", 'all-in-one-seo-pack' ),
|
108 |
"videoheight" => __( "Enter the height for your Open Graph video in pixels (i.e. 600).", 'all-in-one-seo-pack' ),
|
109 |
+
"defcard" => __( "Select the default type of Twitter Card to display.", 'all-in-one-seo-pack' ),
|
110 |
+
"setcard" => __( "Select the Twitter Card type to use for this Page or Post, overriding the default setting.", 'all-in-one-seo-pack' ),
|
111 |
"twitter_site" => __( "Enter the Twitter username associated with your website here.", 'all-in-one-seo-pack' ),
|
112 |
"twitter_creator" => __( "Allows your authors to be identified by their Twitter usernames as content creators on the Twitter cards for their posts.", 'all-in-one-seo-pack' ),
|
113 |
"twitter_domain" => __( "Enter the name of your website here.", 'all-in-one-seo-pack' ),
|
197 |
add_action( 'edited_term', array( &$this, 'save_tax_data' ), 10, 3 );
|
198 |
// Adds special filters
|
199 |
add_filter( 'aioseop_opengraph_placeholder', array( &$this, 'filter_placeholder' ) );
|
200 |
+
// Call to init to generate menus
|
201 |
+
$this->init();
|
202 |
}
|
203 |
|
204 |
/**
|
418 |
'types' => array(
|
419 |
'name' => __( 'Enable Facebook Meta for Post Types', 'all-in-one-seo-pack' ),
|
420 |
'type' => 'multicheckbox',
|
421 |
+
'default' => array( 'post' => 'post', 'page' => 'page' ),
|
422 |
'initial_options' => $this->get_post_type_titles( array( '_builtin' => false ) ),
|
423 |
),
|
424 |
'title' => array(
|
494 |
// load initial options / set defaults
|
495 |
$this->update_options();
|
496 |
$display = Array();
|
497 |
+
if ( isset( $this->options['aiosp_opengraph_types'] ) && ! empty( $this->options['aiosp_opengraph_types'] ) ) {
|
498 |
$display = $this->options['aiosp_opengraph_types'];
|
499 |
}
|
500 |
$this->locations = array(
|
readme.txt
CHANGED
@@ -4,7 +4,7 @@ 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.0
|
6 |
Tested up to: 4.8
|
7 |
-
Stable tag: 2.3.
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
@@ -86,51 +86,8 @@ https://www.youtube.com/watch?v=A0VKinM5s00
|
|
86 |
|
87 |
== Upgrade Notice ==
|
88 |
|
89 |
-
= 2.3 =
|
90 |
-
|
91 |
-
-Various under the hood improvements
|
92 |
-
-Increased WooCommerce support, especially in pro version
|
93 |
-
-New SEO data importer
|
94 |
-
-New custom roles and capabilities for multi-user sites
|
95 |
-
-API improvements
|
96 |
-
|
97 |
-
= 2.2.7.6.2 =
|
98 |
-
|
99 |
-
-Additional WooCommerce support
|
100 |
-
|
101 |
-
= 2.2.7.6.1 =
|
102 |
-
|
103 |
-
-New Indonesian translation – Thanks to Rio Bermano
|
104 |
-
-Updated translations files (57 total languages!)
|
105 |
-
-Improved support for WooCommerce when the Home page is also set as the Shop page
|
106 |
-
-Social Meta Module – Update for Facebook’s Admin App ID
|
107 |
-
|
108 |
-
= 2.2.7.6 -
|
109 |
-
|
110 |
-
-Social Meta Module – Added support for Facebook App ID
|
111 |
-
-Added a warning message when Search Engine Visibility is enabled in WordPress Reading Settings
|
112 |
-
-Various under-the-hood code improvements
|
113 |
-
-Changed when Noindex Settings are displayed in relation to Custom Post Type Settings
|
114 |
-
|
115 |
-
= 2.2.7.5 =
|
116 |
-
-fixes:
|
117 |
-
-category capitalization fixes
|
118 |
-
|
119 |
-
enhancements:
|
120 |
-
-futureproofing the performance function for PHP7,8
|
121 |
-
-futureproofing the open graph and social meta function for PHP7,8
|
122 |
-
-futureproofing the file editor function for PHP7,8
|
123 |
-
-futureproofing the import-export function for PHP7,8
|
124 |
-
|
125 |
-
= 2.2.7.4 =
|
126 |
-
|
127 |
-
-Update for WordPress 4.4
|
128 |
-
-CSS fixes
|
129 |
-
-Important localization improvements
|
130 |
-
-Update for Social Meta Module - Photo Twitter Card
|
131 |
-
-Add support for the full set of Twitter meta tags (https://dev.twitter.com/cards/markup)
|
132 |
-
-Bugfix for issue with Nonindex options for post types
|
133 |
-
-Bugfix for schema.org OG markup
|
134 |
|
135 |
|
136 |
|
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.0
|
6 |
Tested up to: 4.8
|
7 |
+
Stable tag: 2.3.16
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
86 |
|
87 |
== Upgrade Notice ==
|
88 |
|
89 |
+
= 2.3.16 =
|
90 |
+
Various bugfixes, under the hood improvements, and new features.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
91 |
|
92 |
|
93 |
|