WP Meta SEO - Version 3.6.0

Version Description

  • Add : Full code reformating for better performance and code comments
  • Add : Using PHPCS to make standard definitions
Download this release

Release Info

Developer JoomUnited
Plugin Icon 128x128 WP Meta SEO
Version 3.6.0
Comparing to
See all releases

Code changes from version 3.5.3 to 3.6.0

Files changed (96) hide show
  1. css/broken_link.css +1 -1
  2. css/category_field.css +3 -3
  3. css/chart.css +2 -2
  4. css/dashboard.css +4 -6
  5. css/dashboard_widgets.css +4 -5
  6. css/google-analytics/admin-widgets.css +22 -33
  7. css/google-analytics/nprogress.css +1 -29
  8. css/google-analytics/wpms-tracking-code.css +3 -4
  9. css/html_sitemap.css +83 -18
  10. css/jquery.qtip.css +1 -4
  11. css/materialize/materialize.css +6 -7
  12. css/materialize/materialize_frontend_tab_theme.css +1 -2
  13. css/metabox-tabs.css +6 -6
  14. css/metaseo-quirk.css +25 -28
  15. css/metaseo_admin.css +10 -13
  16. css/metaseo_sitemap.css +3 -3
  17. css/notification.css +8 -9
  18. css/style.css +7 -7
  19. css/tooltip-metaimage.css +1 -1
  20. css/tooltip.css +1 -1
  21. inc/autoload.php +10 -4
  22. inc/breadcrumb/class.metaseo-breadcrumb.php +287 -131
  23. inc/class.image-helper.php +169 -94
  24. inc/class.metaseo-admin.php +1849 -738
  25. inc/class.metaseo-broken-link-table.php +1245 -670
  26. inc/class.metaseo-content-list-table.php +360 -192
  27. inc/class.metaseo-dashboard.php +243 -197
  28. inc/class.metaseo-front_end.php +55 -32
  29. inc/class.metaseo-google-analytics.php +54 -44
  30. inc/class.metaseo-image-list-table.php +837 -554
  31. inc/class.metaseo-link-list-table.php +304 -178
  32. inc/class.metaseo-meta.php +94 -66
  33. inc/class.metaseo-metabox.php +725 -345
  34. inc/class.metaseo-sitemap.php +1100 -490
  35. inc/class.metaseo-snippet-preview.php +91 -52
  36. inc/class.wp-metaseo.php +47 -21
  37. inc/google_analytics/tracking/classic_disconnect.php +14 -8
  38. inc/google_analytics/tracking/code-classic.php +22 -21
  39. inc/google_analytics/tracking/code-universal.php +122 -117
  40. inc/google_analytics/tracking/custom.php +7 -7
  41. inc/google_analytics/tracking/events-classic.php +42 -41
  42. inc/google_analytics/tracking/events-universal.php +46 -38
  43. inc/google_analytics/tracking/universal_disconnect.php +14 -8
  44. inc/google_analytics/wpmsga.php +42 -12
  45. inc/google_analytics/wpmsgapi.php +349 -337
  46. inc/google_analytics/wpmstools.php +107 -128
  47. inc/pages/content-meta.php +15 -15
  48. inc/pages/dashboard.php +188 -72
  49. inc/pages/dashboard/imgsmeta.php +10 -4
  50. inc/pages/dashboard/imgsresize.php +8 -3
  51. inc/pages/dashboard/link_meta.php +8 -3
  52. inc/pages/dashboard/meta_desc.php +8 -3
  53. inc/pages/dashboard/meta_title.php +8 -3
  54. inc/pages/dashboard/new_content.php +6 -2
  55. inc/pages/dashboard/permalink.php +6 -2
  56. inc/pages/dashboard_widgets.php +97 -37
  57. inc/pages/google-analytics/form-connect.php +111 -0
  58. inc/pages/google-analytics/ga-trackcode.php +337 -0
  59. inc/pages/google-analytics/google-analytics.php +97 -0
  60. inc/pages/google-analytics/menu.php +22 -18
  61. inc/pages/google-analytics/metaseo-form-clientID.php +0 -67
  62. inc/pages/google-analytics/metaseo-google-analytics-trackcode.php +0 -207
  63. inc/pages/google-analytics/metaseo-google-analytics.php +0 -56
  64. inc/pages/image-meta.php +6 -6
  65. inc/pages/link-meta.php +8 -9
  66. inc/pages/metaseo-broken-link.php +22 -20
  67. inc/pages/metaseo-image-compression.php +91 -39
  68. inc/pages/notification.php +22 -16
  69. inc/pages/settings.php +190 -138
  70. inc/pages/sitemaps/metaseo-google-sitemap.php +19 -12
  71. inc/pages/sitemaps/metaseo-source_menu.php +21 -15
  72. inc/pages/sitemaps/metaseo-source_pages.php +70 -35
  73. inc/pages/sitemaps/metaseo-source_posts.php +93 -55
  74. inc/pages/sitemaps/sitemap_menus.php +20 -9
  75. js/Chart.js +4 -4
  76. js/category_field.js +15 -15
  77. js/cliffpyles.js +8 -6
  78. js/dashboard.js +22 -16
  79. js/dashboard_widgets.js +20 -14
  80. js/google-analytics/google_analytics.js +69 -75
  81. js/google-analytics/nprogress.js +1 -1
  82. js/jPages.js +1 -1
  83. js/jquery.knob.js +2 -2
  84. js/metaseo_admin.js +314 -185
  85. js/metaseo_sitemap.js +36 -17
  86. js/notification.js +2 -1
  87. js/site-jPages.js +1 -1
  88. js/wp-metaseo-metabox.js +4 -6
  89. js/wpms-broken-link.js +31 -25
  90. js/wpms-bulk-action.js +16 -13
  91. jutranslation/assets/css/jutranslation.css +0 -3
  92. jutranslation/assets/js/jutranslation.js +13 -13
  93. jutranslation/jutranslation.php +193 -130
  94. languages/wp-meta-seo-en_US.mo +0 -0
  95. readme.txt +6 -2
  96. wp-meta-seo.php +444 -246
css/broken_link.css CHANGED
@@ -37,7 +37,7 @@ table.metaseo_images .wpms-input-text-wrap input{
37
}
38
39
.custom_redirect_editor_content .wpms-input-text-wrap td{
40
- padding: 15px 0px;
41
}
42
43
.wpms-update-link-button{
37
}
38
39
.custom_redirect_editor_content .wpms-input-text-wrap td{
40
+ padding: 15px 0;
41
}
42
43
.wpms-update-link-button{
css/category_field.css CHANGED
@@ -1,18 +1,18 @@
1
.cat-title-len , .cat-desc-len , .cat-keywords-len {
2
- background: none repeat scroll 0% 0% #7ad03a;
3
color: #FFF;
4
border-radius: 2px;
5
min-width: 15px;
6
text-align: center;
7
float: left;
8
- padding: 0px 10px;
9
position: relative;
10
bottom: 12px;
11
left: 15px;
12
}
13
14
.length-wrong {
15
- background: none repeat scroll 0% 0% #FFCC00;
16
}
17
18
.wpms_custom_cat_field{
1
.cat-title-len , .cat-desc-len , .cat-keywords-len {
2
+ background: none repeat scroll 0 0 #7ad03a;
3
color: #FFF;
4
border-radius: 2px;
5
min-width: 15px;
6
text-align: center;
7
float: left;
8
+ padding: 0 10px;
9
position: relative;
10
bottom: 12px;
11
left: 15px;
12
}
13
14
.length-wrong {
15
+ background: none repeat scroll 0 0 #FFCC00;
16
}
17
18
.wpms_custom_cat_field{
css/chart.css CHANGED
@@ -10,11 +10,11 @@
10
.dashboard .right{width: 30%; float: right;background: #fff;min-height: 150px}
11
12
.dashboard h1 {
13
- padding: 10px 0px 10px 20px
14
}
15
16
.dashboard-left {
17
- margin: 10px 0px 10px 0px;
18
width: 100%;
19
float: left;
20
10
.dashboard .right{width: 30%; float: right;background: #fff;min-height: 150px}
11
12
.dashboard h1 {
13
+ padding: 10px 0 10px 20px
14
}
15
16
.dashboard-left {
17
+ margin: 10px 0 10px 0;
18
width: 100%;
19
float: left;
20
css/dashboard.css CHANGED
@@ -13,7 +13,7 @@
13
background: #f8f8f8;
14
border: solid 1px #ddd;
15
padding: 10px;
16
- box-shadow: 0px 1px 3px #cacaca;
17
box-sizing: border-box;
18
font-size: 13px;
19
color: #555;
@@ -60,8 +60,7 @@
60
font-size: 13px;
61
font-weight: normal;
62
color: #666;
63
- margin: 0;
64
- margin-bottom: 10px;
65
}
66
#alexa-ranking .img-inline {
67
margin-bottom: 10px;
@@ -104,7 +103,7 @@
104
display: block;
105
width: 100%;
106
border-radius: 2px;
107
- margin: 32px 0px;
108
overflow: hidden;
109
background-color: rgba(255, 255, 255, 0.33);
110
float: left;
@@ -112,7 +111,6 @@
112
113
.dashboard .progress-rating .determinate {
114
position: absolute;
115
- background-color: inherit;
116
top: 0;
117
left: 0;
118
bottom: 0;
@@ -157,7 +155,7 @@
157
}
158
159
.dashboard .wpms_dashboard_widgets_left .percent_1{
160
- margin: 12px 0px 10px 0px !important;
161
}
162
163
.dashboard .wpms_dashboard_widgets_left .percent_2{
13
background: #f8f8f8;
14
border: solid 1px #ddd;
15
padding: 10px;
16
+ box-shadow: 0 1px 3px #cacaca;
17
box-sizing: border-box;
18
font-size: 13px;
19
color: #555;
60
font-size: 13px;
61
font-weight: normal;
62
color: #666;
63
+ margin: 0 0 10px;
64
}
65
#alexa-ranking .img-inline {
66
margin-bottom: 10px;
103
display: block;
104
width: 100%;
105
border-radius: 2px;
106
+ margin: 32px 0;
107
overflow: hidden;
108
background-color: rgba(255, 255, 255, 0.33);
109
float: left;
111
112
.dashboard .progress-rating .determinate {
113
position: absolute;
114
top: 0;
115
left: 0;
116
bottom: 0;
155
}
156
157
.dashboard .wpms_dashboard_widgets_left .percent_1{
158
+ margin: 12px 0 10px 0 !important;
159
}
160
161
.dashboard .wpms_dashboard_widgets_left .percent_2{
css/dashboard_widgets.css CHANGED
@@ -1,9 +1,9 @@
1
.wpms_dashboard_widgets h1 {
2
- padding: 10px 0px 10px 20px
3
}
4
5
.wpms_dash_widgets{
6
- margin: 7px 0px;
7
}
8
9
.wpms_dash_widgets .percent_1{
@@ -34,7 +34,7 @@
34
display: block;
35
width: 100%;
36
border-radius: 2px;
37
- margin: 32px 0px;
38
overflow: hidden;
39
background-color: rgba(255, 255, 255, 0.33);
40
float: left;
@@ -42,7 +42,6 @@
42
43
.wpms_dashboard_widgets .progress-rating .determinate {
44
position: absolute;
45
- background-color: inherit;
46
top: 0;
47
left: 0;
48
bottom: 0;
@@ -100,7 +99,7 @@
100
}
101
102
.wpms_dashboard_widgets_left .percent_1{
103
- margin: 12px 0px 10px 0px !important;
104
float: left;
105
}
106
1
.wpms_dashboard_widgets h1 {
2
+ padding: 10px 0 10px 20px
3
}
4
5
.wpms_dash_widgets{
6
+ margin: 7px 0;
7
}
8
9
.wpms_dash_widgets .percent_1{
34
display: block;
35
width: 100%;
36
border-radius: 2px;
37
+ margin: 32px 0;
38
overflow: hidden;
39
background-color: rgba(255, 255, 255, 0.33);
40
float: left;
42
43
.wpms_dashboard_widgets .progress-rating .determinate {
44
position: absolute;
45
top: 0;
46
left: 0;
47
bottom: 0;
99
}
100
101
.wpms_dashboard_widgets_left .percent_1{
102
+ margin: 12px 0 10px 0 !important;
103
float: left;
104
}
105
css/google-analytics/admin-widgets.css CHANGED
@@ -4,9 +4,9 @@
4
margin: 0 0;
5
padding: 5px 0 5px 0;
6
background: #fff;
7
- -moz-box-shadow: 0px 0px 3px 0px #BBB;
8
- -webkit-box-shadow: 0px 0px 3px 0px #BBB;
9
- box-shadow: 0px 0px 3px 0px #BBB;
10
display: table;
11
overflow: hidden;
12
}
@@ -33,9 +33,9 @@
33
margin: 0 0;
34
background: #fff;
35
text-align: center;
36
- -moz-box-shadow: 0px 0px 5px 0px #BBB;
37
- -webkit-box-shadow: 0px 0px 5px 0px #BBB;
38
- box-shadow: 0px 0px 5px 0px #BBB;
39
display: table;
40
}
41
@@ -48,7 +48,7 @@
48
49
.wpms-tdo-right {
50
width: 35%;
51
- margin: 0px 10px 0px 0;
52
text-align: left;
53
font-weight: bold;
54
vertical-align: middle;
@@ -70,9 +70,9 @@
70
margin: 0 0;
71
padding: 5px 5px 5px 5px;
72
background: #fff;
73
- -moz-box-shadow: 0px 0px 3px 0px #BBB;
74
- -webkit-box-shadow: 0px 0px 3px 0px #BBB;
75
- box-shadow: 0px 0px 3px 0px #BBB;
76
display: table;
77
overflow: hidden;
78
}
@@ -98,7 +98,6 @@
98
99
[id^=wpms-areachart-] {
100
width: 98%;
101
- height: 100%;
102
margin: 10px auto 10px 0;
103
height: 250px;
104
}
@@ -138,18 +137,18 @@
138
[id^=wpms-progressbar-] {
139
width: 100%;
140
height: 3px;
141
- margin: 5px 0 0px 0;
142
}
143
144
[id^=wpms-bottomstats-] {
145
width: 50%;
146
- margin: 0px auto;
147
}
148
149
[id^=wpms-bottomstats-] .inside {
150
display: table;
151
margin: 0 auto;
152
- padding: 0px;
153
width: 100%;
154
}
155
@@ -159,16 +158,16 @@
159
margin: 0 5px 10px 5px;
160
background: #fff;
161
text-align: center;
162
- -moz-box-shadow: 0px 0px 7px 0px #BBB;
163
- -webkit-box-shadow: 0px 0px 7px 0px #BBB;
164
- box-shadow: 0px 0px 7px 0px #BBB;
165
}
166
167
.inside .small-box h3 {
168
font-size: 1em;
169
color: #777;
170
- padding: 0px 5px 0px 5px;
171
- margin: 0px 0px 0px 0px;
172
text-overflow: ellipsis;
173
overflow: hidden;
174
white-space: nowrap;
@@ -176,7 +175,7 @@
176
177
.inside .small-box p {
178
font-size: 1.2em;
179
- margin: 0px 0px 2px 0px;
180
}
181
182
@media screen and (max-width: 410px) {
@@ -202,9 +201,7 @@
202
}
203
204
.google-visualization-table-th{
205
- padding-top: 4px;
206
vertical-align: middle;
207
- padding: 11px 0 0 3px;
208
font-weight: 400;
209
padding: 8px !important;
210
color: #0073aa;
@@ -227,27 +224,19 @@
227
}
228
229
.google-visualization-table-table th, .google-visualization-table-table td{
230
- border-width: 0 0px 1px 0 !important;
231
}
232
233
.google-visualization-table-page-number{
234
width: 24px;
235
- padding: 2px 0px;
236
border-radius: 0;
237
border: #ddd 1px solid;
238
color: #a0a5aa;
239
}
240
-
241
- .charts-custom-button-inner-box{
242
- padding: 5px 8px 7px !important;
243
- border-radius: 0 !important;
244
- border-style: none !important;
245
- border: #ddd 1px solid;
246
- }
247
248
.google-visualization-table .gradient{
249
- background-image: none;
250
- background-color: #fff;
251
}
252
253
.google-visualization-table-page-number.current{
4
margin: 0 0;
5
padding: 5px 0 5px 0;
6
background: #fff;
7
+ -moz-box-shadow: 0 0 3px 0 #BBB;
8
+ -webkit-box-shadow: 0 0 3px 0 #BBB;
9
+ box-shadow: 0 0 3px 0 #BBB;
10
display: table;
11
overflow: hidden;
12
}
33
margin: 0 0;
34
background: #fff;
35
text-align: center;
36
+ -moz-box-shadow: 0 0 5px 0 #BBB;
37
+ -webkit-box-shadow: 0 0 5px 0 #BBB;
38
+ box-shadow: 0 0 5px 0 #BBB;
39
display: table;
40
}
41
48
49
.wpms-tdo-right {
50
width: 35%;
51
+ margin: 0 10px 0 0;
52
text-align: left;
53
font-weight: bold;
54
vertical-align: middle;
70
margin: 0 0;
71
padding: 5px 5px 5px 5px;
72
background: #fff;
73
+ -moz-box-shadow: 0 0 3px 0 #BBB;
74
+ -webkit-box-shadow: 0 0 3px 0 #BBB;
75
+ box-shadow: 0 0 3px 0 #BBB;
76
display: table;
77
overflow: hidden;
78
}
98
99
[id^=wpms-areachart-] {
100
width: 98%;
101
margin: 10px auto 10px 0;
102
height: 250px;
103
}
137
[id^=wpms-progressbar-] {
138
width: 100%;
139
height: 3px;
140
+ margin: 5px 0 0 0;
141
}
142
143
[id^=wpms-bottomstats-] {
144
width: 50%;
145
+ margin: 0 auto;
146
}
147
148
[id^=wpms-bottomstats-] .inside {
149
display: table;
150
margin: 0 auto;
151
+ padding: 0;
152
width: 100%;
153
}
154
158
margin: 0 5px 10px 5px;
159
background: #fff;
160
text-align: center;
161
+ -moz-box-shadow: 0 0 7px 0 #BBB;
162
+ -webkit-box-shadow: 0 0 7px 0 #BBB;
163
+ box-shadow: 0 0 7px 0 #BBB;
164
}
165
166
.inside .small-box h3 {
167
font-size: 1em;
168
color: #777;
169
+ padding: 0 5px 0 5px;
170
+ margin: 0 0 0 0;
171
text-overflow: ellipsis;
172
overflow: hidden;
173
white-space: nowrap;
175
176
.inside .small-box p {
177
font-size: 1.2em;
178
+ margin: 0 0 2px 0;
179
}
180
181
@media screen and (max-width: 410px) {
201
}
202
203
.google-visualization-table-th{
204
vertical-align: middle;
205
font-weight: 400;
206
padding: 8px !important;
207
color: #0073aa;
224
}
225
226
.google-visualization-table-table th, .google-visualization-table-table td{
227
+ border-width: 0 0 1px 0 !important;
228
}
229
230
.google-visualization-table-page-number{
231
width: 24px;
232
+ padding: 2px 0;
233
border-radius: 0;
234
border: #ddd 1px solid;
235
color: #a0a5aa;
236
}
237
238
.google-visualization-table .gradient{
239
+ background: #fff none;
240
}
241
242
.google-visualization-table-page-number.current{
css/google-analytics/nprogress.css CHANGED
@@ -16,7 +16,7 @@
16
#nprogress .peg {
17
display: block;
18
position: absolute;
19
- right: 0px;
20
width: 100px;
21
height: 100%;
22
box-shadow: 0 0 10px #29d, 0 0 5px #29d;
@@ -55,31 +55,3 @@
55
.nprogress-custom-parent #nprogress .spinner, .nprogress-custom-parent #nprogress .bar {
56
position: absolute;
57
}
58
-
59
- @-webkit-keyframes nprogress-spinner { 0% {
60
- -webkit-transform: rotate(0deg);
61
- }
62
-
63
- 100%
64
- {
65
- -webkit-transform
66
- :
67
-
68
- rotate
69
- (360deg);
70
-
71
- }
72
- }
73
- @keyframes nprogress-spinner { 0% {
74
- transform: rotate(0deg);
75
- }
76
- 100%
77
- {
78
- transform
79
- :
80
-
81
- rotate
82
- (360deg);
83
-
84
- }
85
- }
16
#nprogress .peg {
17
display: block;
18
position: absolute;
19
+ right: 0;
20
width: 100px;
21
height: 100%;
22
box-shadow: 0 0 10px #29d, 0 0 5px #29d;
55
.nprogress-custom-parent #nprogress .spinner, .nprogress-custom-parent #nprogress .bar {
56
position: absolute;
57
}
css/google-analytics/wpms-tracking-code.css CHANGED
@@ -5,7 +5,7 @@ table.wpmsga-settings-options {
5
}
6
7
.wpmsga-settings-options td {
8
- padding: 0px 5px 5px 5px;
9
}
10
11
td.wpmsga-settings-title, td.info {
@@ -61,8 +61,7 @@ td.wpmsga-settings-roles {
61
}
62
63
#poststuff.wpmsga h2 {
64
- padding-bottom: 0;
65
- font-size: 19.5px;
66
font-weight: normal;
67
padding: 0;
68
margin: 20px 0 15px 0;
@@ -183,7 +182,7 @@ input.wpmsga-settings-switchoo-checkbox {
183
}
184
185
.wpmsga-settings-switchoo-checkbox:checked+.wpmsga-settings-switchoo-label .wpmsga-settings-switchoo-switch {
186
- right: 0px;
187
}
188
189
.switch-desc {
5
}
6
7
.wpmsga-settings-options td {
8
+ padding: 0 5px 5px 5px;
9
}
10
11
td.wpmsga-settings-title, td.info {
61
}
62
63
#poststuff.wpmsga h2 {
64
+ font-size: 20px;
65
font-weight: normal;
66
padding: 0;
67
margin: 20px 0 15px 0;
182
}
183
184
.wpmsga-settings-switchoo-checkbox:checked+.wpmsga-settings-switchoo-label .wpmsga-settings-switchoo-switch {
185
+ right: 0;
186
}
187
188
.switch-desc {
css/html_sitemap.css CHANGED
@@ -1,25 +1,90 @@
1
- #wpms_sitemap{width:100%; position:relative; clear:both;}
2
- #wpms_sitemap div{width:100%;}
3
- #wpms_sitemap h3{font-size:26px; line-height:32px; padding-bottom:0; margin-bottom:8px; width:100%}
4
- #wpms_sitemap h4{font-size:18px; line-height:20px; padding-bottom:0; margin-bottom:4px}
5
- #wpms_sitemap ul{list-style-type:disc; margin-bottom:0; padding-bottom:15px; margin-before:1em; margin-after:1em; padding-start:40px; font-size:15px; line-height:24px; font-weight:normal; background:none;}
6
- #wpms_sitemap ul ul , #sitemap_pages ul{margin-bottom:0; list-style-type:circle;}
7
- .wpms_frontend_menus_sitemap li{margin-bottom:0; list-style-type:circle;}
8
- #wpms_sitemap li{display:list-item;}
9
- .wpms_clearRow{width:100%; height:24px; display:block; clear:both; position:relative;}
10
- #credits_link{font-size:12px;}
11
12
/* Responsive */
13
- @media screen and (max-width:960px){
14
- #wpms_sitemap.columns_4{-moz-column-count: 3 !important; -webkit-column-count: 3 !important; column-count: 3 !important;}
15
}
16
- @media screen and (max-width:640px){
17
- #wpms_sitemap.columns_3,#wpms_sitemap.columns_4{-moz-column-count: 2 !important; -webkit-column-count: 2 !important; column-count: 2 !important;}
18
}
19
- @media screen and (max-width:480px){
20
- #wpms_sitemap.columns_4,#wpms_sitemap.columns_3,#wpms_sitemap.columns_2{-moz-column-count: 1 !important; -webkit-column-count: 1 !important; column-count: 1 !important;}
21
}
22
- .wpms_li_cate .cat_name{
23
- font-weight:bold;
24
font-size: 14px;
25
}
1
+ #wpms_sitemap {
2
+ width: 100%;
3
+ position: relative;
4
+ clear: both;
5
+ }
6
+
7
+ #wpms_sitemap div {
8
+ width: 100%;
9
+ }
10
+
11
+ #wpms_sitemap h3 {
12
+ font-size: 26px;
13
+ line-height: 32px;
14
+ padding-bottom: 0;
15
+ margin-bottom: 8px;
16
+ width: 100%
17
+ }
18
+
19
+ #wpms_sitemap h4 {
20
+ font-size: 18px;
21
+ line-height: 20px;
22
+ padding-bottom: 0;
23
+ margin-bottom: 4px
24
+ }
25
+
26
+ #wpms_sitemap ul {
27
+ list-style-type: disc;
28
+ margin-bottom: 0;
29
+ padding-bottom: 15px;
30
+ font-size: 15px;
31
+ line-height: 24px;
32
+ font-weight: normal;
33
+ background: none;
34
+ }
35
+
36
+ #wpms_sitemap ul ul, #sitemap_pages ul {
37
+ margin-bottom: 0;
38
+ list-style-type: circle;
39
+ }
40
+
41
+ .wpms_frontend_menus_sitemap li {
42
+ margin-bottom: 0;
43
+ list-style-type: circle;
44
+ }
45
+
46
+ #wpms_sitemap li {
47
+ display: list-item;
48
+ }
49
+
50
+ .wpms_clearRow {
51
+ width: 100%;
52
+ height: 24px;
53
+ display: block;
54
+ clear: both;
55
+ position: relative;
56
+ }
57
+
58
+ #credits_link {
59
+ font-size: 12px;
60
+ }
61
62
/* Responsive */
63
+ @media screen and (max-width: 960px) {
64
+ #wpms_sitemap.columns_4 {
65
+ -moz-column-count: 3 !important;
66
+ -webkit-column-count: 3 !important;
67
+ column-count: 3 !important;
68
+ }
69
}
70
+
71
+ @media screen and (max-width: 640px) {
72
+ #wpms_sitemap.columns_3, #wpms_sitemap.columns_4 {
73
+ -moz-column-count: 2 !important;
74
+ -webkit-column-count: 2 !important;
75
+ column-count: 2 !important;
76
+ }
77
}
78
+
79
+ @media screen and (max-width: 480px) {
80
+ #wpms_sitemap.columns_4, #wpms_sitemap.columns_3, #wpms_sitemap.columns_2 {
81
+ -moz-column-count: 1 !important;
82
+ -webkit-column-count: 1 !important;
83
+ column-count: 1 !important;
84
+ }
85
}
86
+
87
+ .wpms_li_cate .cat_name {
88
+ font-weight: bold;
89
font-size: 14px;
90
}
css/jquery.qtip.css CHANGED
@@ -19,7 +19,7 @@
19
max-width: 280px;
20
padding: 0;
21
box-shadow: none;
22
- font-size: 10.5px;
23
line-height: 12px;
24
25
direction: ltr;
@@ -272,7 +272,6 @@
272
273
/* jQuery TOOLS Tooltip style */
274
.qtip-jtools {
275
- border: 2px solid #ddd;
276
border: 2px solid rgba(241,241,241,1);
277
border-radius: 2px;
278
background: #232323;
@@ -400,7 +399,6 @@
400
.qtip-bootstrap {
401
/** Taken from Bootstrap .popover */
402
padding: 1px;
403
- border: 1px solid #ccc;
404
border: 1px solid rgba(0, 0, 0, 0.2);
405
border-radius: 6px;
406
color: #333;
@@ -505,7 +503,6 @@
505
506
/* Opera bug #357 - Incorrect tip position
507
https://github.com/Craga89/qTip2/issues/367 */
508
- x:-o-prefocus,
509
.qtip .qtip-tip {
510
visibility: hidden;
511
}
19
max-width: 280px;
20
padding: 0;
21
box-shadow: none;
22
+ font-size: 11px;
23
line-height: 12px;
24
25
direction: ltr;
272
273
/* jQuery TOOLS Tooltip style */
274
.qtip-jtools {
275
border: 2px solid rgba(241,241,241,1);
276
border-radius: 2px;
277
background: #232323;
399
.qtip-bootstrap {
400
/** Taken from Bootstrap .popover */
401
padding: 1px;
402
border: 1px solid rgba(0, 0, 0, 0.2);
403
border-radius: 6px;
404
color: #333;
503
504
/* Opera bug #357 - Incorrect tip position
505
https://github.com/Craga89/qTip2/issues/367 */
506
.qtip .qtip-tip {
507
visibility: hidden;
508
}
css/materialize/materialize.css CHANGED
@@ -1,4 +1,4 @@
1
-
2
.wpmsrow {
3
margin-left: auto;
4
margin-right: auto;
@@ -213,7 +213,7 @@ input:checked + .slider:before {
213
height: 16px;
214
display: block;
215
float: left;
216
- margin: 10px 0px 10px 10px;
217
border: 3px solid #ccc;
218
border-radius: 50%;
219
background-color: #fff;
@@ -235,7 +235,6 @@ input:checked + .slider:before {
235
}
236
237
/* checkbox */
238
- @import "https://fonts.googleapis.com/css?family=Raleway";
239
.pure-checkbox input[type="checkbox"]{
240
border: 0;
241
clip: rect(0 0 0 0);
@@ -332,7 +331,7 @@ input:checked + .slider:before {
332
color: #fff !important;
333
background-color: #2196F3;
334
text-align: center;
335
- letter-spacing: .5px;
336
-webkit-transition: 0.2s ease-out;
337
-moz-transition: 0.2s ease-out;
338
-o-transition: 0.2s ease-out;
@@ -366,7 +365,7 @@ input:checked + .slider:before {
366
color: #444 !important;
367
border: #ccc 1px solid;
368
text-transform: none;
369
- padding: 0px 7px;
370
}
371
372
.wpms_input_material{
@@ -376,7 +375,7 @@ input:checked + .slider:before {
376
377
.wpms-nav-tab-wrapper{
378
display: block !important;
379
- margin: 10px 0px 10px 0px;
380
}
381
382
.wpms-nav-tab-wrapper .wpmstab{
@@ -394,7 +393,7 @@ input:checked + .slider:before {
394
395
.wpms_wrap_hr{
396
width: 100%;
397
- margin: 15px 0px;
398
float: left;
399
}
400
1
+ @import "https://fonts.googleapis.com/css?family=Raleway";
2
.wpmsrow {
3
margin-left: auto;
4
margin-right: auto;
213
height: 16px;
214
display: block;
215
float: left;
216
+ margin: 10px 0 10px 10px;
217
border: 3px solid #ccc;
218
border-radius: 50%;
219
background-color: #fff;
235
}
236
237
/* checkbox */
238
.pure-checkbox input[type="checkbox"]{
239
border: 0;
240
clip: rect(0 0 0 0);
331
color: #fff !important;
332
background-color: #2196F3;
333
text-align: center;
334
+ letter-spacing: 1px;
335
-webkit-transition: 0.2s ease-out;
336
-moz-transition: 0.2s ease-out;
337
-o-transition: 0.2s ease-out;
365
color: #444 !important;
366
border: #ccc 1px solid;
367
text-transform: none;
368
+ padding: 0 7px;
369
}
370
371
.wpms_input_material{
375
376
.wpms-nav-tab-wrapper{
377
display: block !important;
378
+ margin: 10px 0 10px 0;
379
}
380
381
.wpms-nav-tab-wrapper .wpmstab{
393
394
.wpms_wrap_hr{
395
width: 100%;
396
+ margin: 15px 0;
397
float: left;
398
}
399
css/materialize/materialize_frontend_tab_theme.css CHANGED
@@ -66,8 +66,7 @@
66
line-height: 48px;
67
height: 48px;
68
padding: 0;
69
- margin: 0;
70
- margin: 0px 10px;
71
}
72
73
.wpmstabs .wpmstab a {
66
line-height: 48px;
67
height: 48px;
68
padding: 0;
69
+ margin: 0 10px;
70
}
71
72
.wpmstabs .wpmstab a {
css/metabox-tabs.css CHANGED
@@ -367,13 +367,13 @@ div.wpmseo-tab-content {
367
368
.metaseo_analysis{
369
width: 60%;
370
- padding: 8px 10px 8px 0px;
371
line-height: 20px;
372
float: left;
373
}
374
375
.metaseo_left{
376
- margin: 0px auto;
377
float: left;
378
}
379
.metaseo-progress-bar{
@@ -416,17 +416,17 @@ div.wpmseo-tab-content {
416
position: absolute;
417
left: 20px;
418
bottom: 12px;
419
- background: none repeat scroll 0% 0% #7ad03a;
420
color: #fff;
421
border-radius: 2px;
422
min-width: 15px;
423
text-align: center;
424
float: left;
425
- padding: 0px 10px;
426
}
427
428
#metaseo_wpmseo_desc-length.length-wrong,#metaseo_wpmseo_title-length.length-wrong,#metaseo_wpmseo_keywords-length.length-wrong{
429
- background: none repeat scroll 0% 0% #FFCC00;
430
}
431
432
.reload_analysis{
@@ -434,7 +434,7 @@ div.wpmseo-tab-content {
434
}
435
436
.gsc_keywords_filter{
437
- margin: 5px 0px;
438
width: 100%;
439
float: left;
440
}
367
368
.metaseo_analysis{
369
width: 60%;
370
+ padding: 8px 10px 8px 0;
371
line-height: 20px;
372
float: left;
373
}
374
375
.metaseo_left{
376
+ margin: 0 auto;
377
float: left;
378
}
379
.metaseo-progress-bar{
416
position: absolute;
417
left: 20px;
418
bottom: 12px;
419
+ background: none repeat scroll 0 0 #7ad03a;
420
color: #fff;
421
border-radius: 2px;
422
min-width: 15px;
423
text-align: center;
424
float: left;
425
+ padding: 0 10px;
426
}
427
428
#metaseo_wpmseo_desc-length.length-wrong,#metaseo_wpmseo_title-length.length-wrong,#metaseo_wpmseo_keywords-length.length-wrong{
429
+ background: none repeat scroll 0 0 #FFCC00;
430
}
431
432
.reload_analysis{
434
}
435
436
.gsc_keywords_filter{
437
+ margin: 5px 0;
438
width: 100%;
439
float: left;
440
}
css/metaseo-quirk.css CHANGED
@@ -43,17 +43,16 @@ h4,.h4 {
43
44
h3,.h3 {
45
font-family: inherit;
46
- font-weight: bold;
47
line-height: 1.1;
48
color: #262b36;
49
margin-top: 17px;
50
- margin-bottom: 8.5px;
51
font-weight: 500 !important;
52
}
53
54
h4,.h4 {
55
- margin-top: 8.5px;
56
- margin-bottom: 8.5px;
57
}
58
59
.h1 {
@@ -86,7 +85,7 @@ h6,
86
}
87
88
p {
89
- margin: 0 0 8.5px;
90
}
91
92
.lead {
@@ -99,7 +98,7 @@ p {
99
@media (min-width: 768px) {
100
.lead {
101
font-size: 18px;
102
- };
103
}
104
105
small,
@@ -241,7 +240,7 @@ a.bg-danger:focus {
241
}
242
243
.page-header {
244
- padding-bottom: 7.5px;
245
margin: 34px 0 17px;
246
border-bottom: 1px solid #eeeeee;
247
}
@@ -249,7 +248,7 @@ a.bg-danger:focus {
249
ul,
250
ol {
251
margin-top: 0;
252
- margin-bottom: 8.5px;
253
}
254
255
ul ul,
@@ -307,7 +306,7 @@ dd {
307
308
.dl-horizontal dd {
309
margin-left: 180px;
310
- };
311
}
312
313
abbr[title],
@@ -322,7 +321,7 @@ abbr[data-original-title] {
322
}
323
324
blockquote {
325
- padding: 8.5px 17px;
326
margin: 0 0 17px;
327
font-size: 15px;
328
border-left: 5px solid #eeeeee;
@@ -416,7 +415,7 @@ kbd kbd {
416
pre {
417
display: block;
418
padding: 8px;
419
- margin: 0 0 8.5px;
420
font-size: 11px;
421
line-height: 1.42857143;
422
word-break: break-all;
@@ -451,19 +450,19 @@ pre code {
451
@media (min-width: 768px) {
452
.container {
453
width: 740px;
454
- };
455
}
456
457
@media (min-width: 992px) {
458
.container {
459
width: 960px;
460
- };
461
}
462
463
@media (min-width: 1650px) {
464
.container {
465
width: 1160px;
466
- };
467
}
468
469
.container-fluid {
@@ -690,7 +689,7 @@ pre code {
690
}
691
692
.col-xs-offset-0 {
693
- margin-left: 0%;
694
}
695
696
@media (min-width: 768px) {
@@ -900,8 +899,8 @@ pre code {
900
}
901
902
.col-sm-offset-0 {
903
- margin-left: 0%;
904
- };
905
}
906
907
@media (min-width: 992px) {
@@ -923,8 +922,7 @@ pre code {
923
924
.col-md-9 {
925
width: 75%;
926
- margin: 0px auto;
927
- margin-top: 20px;
928
}
929
930
.col-md-8 {
@@ -1112,8 +1110,8 @@ pre code {
1112
}
1113
1114
.col-md-offset-0 {
1115
- margin-left: 0%;
1116
- };
1117
}
1118
1119
@media (min-width: 1650px) {
@@ -1322,8 +1320,8 @@ pre code {
1322
}
1323
1324
.col-lg-offset-0 {
1325
- margin-left: 0%;
1326
- };
1327
}
1328
1329
label {
@@ -1345,7 +1343,7 @@ label {
1345
1346
.progress-bar {
1347
float: left;
1348
- width: 0%;
1349
height: 100%;
1350
font-size: 11px;
1351
line-height: 17px;
@@ -1509,7 +1507,7 @@ label {
1509
font-size: 12px;
1510
font-weight: 700;
1511
color: #313745;
1512
- letter-spacing: .2px;
1513
font-family: 'Open Sans', 'Helvetica Neue', Helvetica, sans-serif;
1514
}
1515
@@ -1615,14 +1613,13 @@ label {
1615
@media (max-width: 480px) {
1616
.panel-group .panel > .panel-heading .panel-title {
1617
line-height: 18px;
1618
- };
1619
}
1620
1621
.panel-group .panel > .panel-heading .panel-title > a {
1622
display: block;
1623
position: relative;
1624
padding: 18px 20px 15px;
1625
- color: #505b72;
1626
color: #259dab;
1627
background-color: #fff;
1628
-webkit-transition: all 0.2s ease-out 0s;
@@ -2063,7 +2060,7 @@ a.text-danger:focus {
2063
2064
.panel-statistics > div:last-child > .panel {
2065
border-bottom-left-radius: 2px;
2066
- };
2067
}
2068
2069
.panel-updates h3 {
43
44
h3,.h3 {
45
font-family: inherit;
46
line-height: 1.1;
47
color: #262b36;
48
margin-top: 17px;
49
+ margin-bottom: 9px;
50
font-weight: 500 !important;
51
}
52
53
h4,.h4 {
54
+ margin-top: 9px;
55
+ margin-bottom: 9px;
56
}
57
58
.h1 {
85
}
86
87
p {
88
+ margin: 0 0 9px;
89
}
90
91
.lead {
98
@media (min-width: 768px) {
99
.lead {
100
font-size: 18px;
101
+ }
102
}
103
104
small,
240
}
241
242
.page-header {
243
+ padding-bottom: 8px;
244
margin: 34px 0 17px;
245
border-bottom: 1px solid #eeeeee;
246
}
248
ul,
249
ol {
250
margin-top: 0;
251
+ margin-bottom: 9px;
252
}
253
254
ul ul,
306
307
.dl-horizontal dd {
308
margin-left: 180px;
309
+ }
310
}
311
312
abbr[title],
321
}
322
323
blockquote {
324
+ padding: 9px 17px;
325
margin: 0 0 17px;
326
font-size: 15px;
327
border-left: 5px solid #eeeeee;
415
pre {
416
display: block;
417
padding: 8px;
418
+ margin: 0 0 9px;
419
font-size: 11px;
420
line-height: 1.42857143;
421
word-break: break-all;
450
@media (min-width: 768px) {
451
.container {
452
width: 740px;
453
+ }
454
}
455
456
@media (min-width: 992px) {
457
.container {
458
width: 960px;
459
+ }
460
}
461
462
@media (min-width: 1650px) {
463
.container {
464
width: 1160px;
465
+ }
466
}
467
468
.container-fluid {
689
}
690
691
.col-xs-offset-0 {
692
+ margin-left: 0;
693
}
694
695
@media (min-width: 768px) {
899
}
900
901
.col-sm-offset-0 {
902
+ margin-left: 0;
903
+ }
904
}
905
906
@media (min-width: 992px) {
922
923
.col-md-9 {
924
width: 75%;
925
+ margin: 20px auto 0;
926
}
927
928
.col-md-8 {
1110
}
1111
1112
.col-md-offset-0 {
1113
+ margin-left: 0;
1114
+ }
1115
}
1116
1117
@media (min-width: 1650px) {
1320
}
1321
1322
.col-lg-offset-0 {
1323
+ margin-left: 0;
1324
+ }
1325
}
1326
1327
label {
1343
1344
.progress-bar {
1345
float: left;
1346
+ width: 0;
1347
height: 100%;
1348
font-size: 11px;
1349
line-height: 17px;
1507
font-size: 12px;
1508
font-weight: 700;
1509
color: #313745;
1510
+ letter-spacing: 0;
1511
font-family: 'Open Sans', 'Helvetica Neue', Helvetica, sans-serif;
1512
}
1513
1613
@media (max-width: 480px) {
1614
.panel-group .panel > .panel-heading .panel-title {
1615
line-height: 18px;
1616
+ }
1617
}
1618
1619
.panel-group .panel > .panel-heading .panel-title > a {
1620
display: block;
1621
position: relative;
1622
padding: 18px 20px 15px;
1623
color: #259dab;
1624
background-color: #fff;
1625
-webkit-transition: all 0.2s ease-out 0s;
2060
2061
.panel-statistics > div:last-child > .panel {
2062
border-bottom-left-radius: 2px;
2063
+ }
2064
}
2065
2066
.panel-updates h3 {
css/metaseo_admin.css CHANGED
@@ -8,7 +8,7 @@ and open the template in the editor.
8
Author : Vien Nguyen
9
*/
10
11
- .search-box{padding: 0px 0px 20px 0px; float: left}
12
.widefat .column-col_id {
13
width: 2.2em;
14
vertical-align: top;
@@ -35,18 +35,18 @@ and open the template in the editor.
35
min-width: 15px;
36
text-align: center;
37
float: left;
38
- padding: 0px 10px;
39
position: relative;
40
bottom: 12px;
41
left: 15px;
42
}
43
44
.title-len, .desc-len, .keywords-len {
45
- background: none repeat scroll 0% 0% #7ad03a;
46
47
}
48
.word-exceed {
49
- background: none repeat scroll 0% 0% #FFCC00;
50
}
51
52
.savedInfo {
@@ -162,7 +162,7 @@ a.info-content .tooltip-metacontent
162
/* Alexa CSS */
163
.rank-row, .metrics-row {
164
margin-bottom: 25px;
165
- margin-top: 0px !important;
166
}
167
a.tt {
168
cursor: help;
@@ -363,7 +363,6 @@ strong {
363
display: none;
364
float: left;
365
background: #00a0d2;
366
- border-color: #0073aa;
367
box-shadow: inset 0 1px 0 rgba( 120, 200, 230, 0.5 ), 0 1px 0 rgba( 0, 0, 0, 0.15 );
368
color: #fff;
369
text-decoration: none;
@@ -374,8 +373,7 @@ strong {
374
margin: 0;
375
padding: 0 10px 1px;
376
cursor: pointer;
377
- border-width: 1px;
378
- border-style: solid;
379
-webkit-appearance: none;
380
border-radius: 3px;
381
white-space: nowrap;
@@ -485,7 +483,7 @@ strong {
485
.metaseo-dashicons.icons-mwarning {
486
width: 20px;
487
height: 20px;
488
- margin: 0px 5px;
489
background-image: url(../img/warnig-red.png);
490
background-size: 100% 100%;
491
}
@@ -507,7 +505,7 @@ strong {
507
.wpms_process{
508
background:#81b5ee;
509
height: 2px;
510
- width:0%;
511
display: none;
512
}
513
@@ -641,8 +639,7 @@ span.wpms-seoImgRemove{
641
642
.wpmseotab th.header {
643
cursor: pointer;
644
- background-repeat: no-repeat;
645
- background-position: center right;
646
}
647
648
.wpmseotab .column-first{
@@ -669,7 +666,7 @@ span.wpms-seoImgRemove{
669
.wpms_process_meta{
670
background: #81b5ee;
671
height: 2px;
672
- width: 0%;
673
position: absolute;
674
top: -2px;
675
}
8
Author : Vien Nguyen
9
*/
10
11
+ .search-box{padding: 0 0 20px 0; float: left}
12
.widefat .column-col_id {
13
width: 2.2em;
14
vertical-align: top;
35
min-width: 15px;
36
text-align: center;
37
float: left;
38
+ padding: 0 10px;
39
position: relative;
40
bottom: 12px;
41
left: 15px;
42
}
43
44
.title-len, .desc-len, .keywords-len {
45
+ background: none repeat scroll 0 0 #7ad03a;
46
47
}
48
.word-exceed {
49
+ background: none repeat scroll 0 0 #FFCC00;
50
}
51
52
.savedInfo {
162
/* Alexa CSS */
163
.rank-row, .metrics-row {
164
margin-bottom: 25px;
165
+ margin-top: 0 !important;
166
}
167
a.tt {
168
cursor: help;
363
display: none;
364
float: left;
365
background: #00a0d2;
366
box-shadow: inset 0 1px 0 rgba( 120, 200, 230, 0.5 ), 0 1px 0 rgba( 0, 0, 0, 0.15 );
367
color: #fff;
368
text-decoration: none;
373
margin: 0;
374
padding: 0 10px 1px;
375
cursor: pointer;
376
+ border: 1px solid #0073aa;
377
-webkit-appearance: none;
378
border-radius: 3px;
379
white-space: nowrap;
483
.metaseo-dashicons.icons-mwarning {
484
width: 20px;
485
height: 20px;
486
+ margin: 0 5px;
487
background-image: url(../img/warnig-red.png);
488
background-size: 100% 100%;
489
}
505
.wpms_process{
506
background:#81b5ee;
507
height: 2px;
508
+ width:0;
509
display: none;
510
}
511
639
640
.wpmseotab th.header {
641
cursor: pointer;
642
+ background: no-repeat center right;
643
}
644
645
.wpmseotab .column-first{
666
.wpms_process_meta{
667
background: #81b5ee;
668
height: 2px;
669
+ width: 0;
670
position: absolute;
671
top: -2px;
672
}
css/metaseo_sitemap.css CHANGED
@@ -8,7 +8,7 @@
8
}
9
10
.spinner_save_sitemaps{
11
- margin: 8px 10px 0px;
12
}
13
14
.div_wpms_save_sitemaps{
@@ -21,7 +21,7 @@
21
.div_sitemap_check_all{
22
width: 100%;
23
float: left;
24
- margin: 10px 10px 0px 0px;
25
}
26
27
.wpms_wrap .nav-tab{
@@ -50,7 +50,7 @@
50
51
52
a:active {
53
- outline: 0px dashed red;
54
}
55
56
.wpmsleft{
8
}
9
10
.spinner_save_sitemaps{
11
+ margin: 8px 10px 0;
12
}
13
14
.div_wpms_save_sitemaps{
21
.div_sitemap_check_all{
22
width: 100%;
23
float: left;
24
+ margin: 10px 10px 0 0;
25
}
26
27
.wpms_wrap .nav-tab{
50
51
52
a:active {
53
+ outline: 0 dashed red;
54
}
55
56
.wpmsleft{
css/notification.css CHANGED
@@ -1,12 +1,12 @@
1
/* dashboard */
2
.toplevel_page_metaseo_dashboard .wpms_dashboard_notification{
3
width: 75%;
4
- margin: 0px auto;
5
- padding: 0px 10px;
6
}
7
8
.toplevel_page_metaseo_dashboard .wpms_dashboard_notification h1 {
9
- padding: 10px 0px 10px 20px
10
}
11
12
.toplevel_page_metaseo_dashboard .wpms_dashboard_notification .dashboard_noti_title {
@@ -14,12 +14,12 @@
14
width: 100%;
15
font-size: 22px;
16
color: #fff;
17
- margin: 10px 0px 15px 0px;
18
}
19
20
.toplevel_page_metaseo_dashboard .wpms_dashboard_notification .msg{
21
font-size: 14px !important;
22
- margin: 10px 0px 30px 0px;
23
float: left;
24
}
25
@@ -51,13 +51,12 @@
51
/* Sitemap */
52
.wpms_notification{
53
width: 99%;
54
- margin: 0px auto;
55
float: left;
56
- margin-top: 10px;
57
}
58
59
.wpms_notification h1 {
60
- padding: 10px 0px 10px 20px
61
}
62
63
.wpms_notification .dashboard_noti_title {
@@ -65,7 +64,7 @@
65
width: 100%;
66
font-size: 22px;
67
color: #fff;
68
- margin: 10px 0px 15px 0px;
69
float: left;
70
}
71
1
/* dashboard */
2
.toplevel_page_metaseo_dashboard .wpms_dashboard_notification{
3
width: 75%;
4
+ margin: 0 auto;
5
+ padding: 0 10px;
6
}
7
8
.toplevel_page_metaseo_dashboard .wpms_dashboard_notification h1 {
9
+ padding: 10px 0 10px 20px
10
}
11
12
.toplevel_page_metaseo_dashboard .wpms_dashboard_notification .dashboard_noti_title {
14
width: 100%;
15
font-size: 22px;
16
color: #fff;
17
+ margin: 10px 0 15px 0;
18
}
19
20
.toplevel_page_metaseo_dashboard .wpms_dashboard_notification .msg{
21
font-size: 14px !important;
22
+ margin: 10px 0 30px 0;
23
float: left;
24
}
25
51
/* Sitemap */
52
.wpms_notification{
53
width: 99%;
54
float: left;
55
+ margin: 10px auto 0;
56
}
57
58
.wpms_notification h1 {
59
+ padding: 10px 0 10px 20px
60
}
61
62
.wpms_notification .dashboard_noti_title {
64
width: 100%;
65
font-size: 22px;
66
color: #fff;
67
+ margin: 10px 0 15px 0;
68
float: left;
69
}
70
css/style.css CHANGED
@@ -1,5 +1,6 @@
1
- .search-box{padding: 0px 0px 20px 0px; float: left}
2
- .img_advan{border: #CCC 1px solid;border-radius: 0px 30px 30px 0px}
3
.listpre img{float: left; padding: 5px}
4
5
.metaseo_images div.popup-bg {
@@ -29,7 +30,7 @@
29
30
.metaseo_images .popup-header .pop-title{
31
background: #FFF;
32
- padding: 6px 0px 0px 15px;
33
color:#555!important;
34
margin:0;
35
font-size:16px;
@@ -131,8 +132,8 @@ td.metaseo-action{
131
132
.metaseo-img .img-choosen{
133
position: absolute;
134
- top:0px;
135
- left: 0px;
136
float:left;
137
}
138
@@ -183,7 +184,6 @@ a.info .tooltip{
183
a.info:hover .tooltip {
184
display:inline;
185
position:absolute;
186
- color:#111;
187
border:1px solid #DCA;
188
border-radius: 10px;
189
background:rgba(51,51,51,0.8);
@@ -235,7 +235,7 @@ a.img-resize, a.fix-metas{
235
float:right;
236
margin-left:8px!important;
237
text-transform: none;
238
- padding: 0px 7px;
239
color: #fff;
240
}
241
1
+ .search-box{padding: 0 0 20px 0; float: left}
2
+ .img_advan{border: #CCC 1px solid;border-radius: 0 30px 30px 0
3
+ }
4
.listpre img{float: left; padding: 5px}
5
6
.metaseo_images div.popup-bg {
30
31
.metaseo_images .popup-header .pop-title{
32
background: #FFF;
33
+ padding: 6px 0 0 15px;
34
color:#555!important;
35
margin:0;
36
font-size:16px;
132
133
.metaseo-img .img-choosen{
134
position: absolute;
135
+ top:0;
136
+ left: 0;
137
float:left;
138
}
139
184
a.info:hover .tooltip {
185
display:inline;
186
position:absolute;
187
border:1px solid #DCA;
188
border-radius: 10px;
189
background:rgba(51,51,51,0.8);
235
float:right;
236
margin-left:8px!important;
237
text-transform: none;
238
+ padding: 0 7px;
239
color: #fff;
240
}
241
css/tooltip-metaimage.css CHANGED
@@ -6,7 +6,7 @@ a.info .tooltip{
6
width:250px; line-height:15px;
7
}
8
a.info:hover .tooltip {
9
- display:inline; position:absolute; color:#111;
10
border:1px solid #DCA;
11
border-radius: 10px;
12
background:rgba(51,51,51,0.8);
6
width:250px; line-height:15px;
7
}
8
a.info:hover .tooltip {
9
+ display:inline; position:absolute;
10
border:1px solid #DCA;
11
border-radius: 10px;
12
background:rgba(51,51,51,0.8);
css/tooltip.css CHANGED
@@ -6,7 +6,7 @@ a.info .tooltip {
6
width:250px; line-height:16px;
7
}
8
a.info:hover .tooltip{
9
- display:inline; position:absolute; color:#111;
10
border:1px solid #DCA;
11
border-radius: 10px;
12
background:rgba(51,51,51,0.8);
6
width:250px; line-height:16px;
7
}
8
a.info:hover .tooltip{
9
+ display:inline; position:absolute;
10
border:1px solid #DCA;
11
border-radius: 10px;
12
background:rgba(51,51,51,0.8);
inc/autoload.php CHANGED
@@ -15,10 +15,16 @@
15
* See the License for the specific language governing permissions and
16
* limitations under the License.
17
*/
18
-
19
if (!function_exists('google_api_php_client_autoload')) {
20
21
- function google_api_php_client_autoload($className) {
22
$classPath = explode('_', $className);
23
if ($classPath[0] != 'Google') {
24
return;
@@ -29,9 +35,9 @@ if (!function_exists('google_api_php_client_autoload')) {
29
}
30
$filePath = dirname(__FILE__) . '/SrcGoogle/' . implode('/', $classPath) . '.php';
31
if (file_exists($filePath)) {
32
- require_once ($filePath);
33
}
34
}
35
36
spl_autoload_register('google_api_php_client_autoload');
37
- }
15
* See the License for the specific language governing permissions and
16
* limitations under the License.
17
*/
18
+ /* Prohibit direct script loading */
19
+ defined('ABSPATH') || die('No direct script access allowed!');
20
if (!function_exists('google_api_php_client_autoload')) {
21
22
+ /**
23
+ * Auto include class
24
+ * @param $className
25
+ */
26
+ function google_api_php_client_autoload($className)
27
+ {
28
$classPath = explode('_', $className);
29
if ($classPath[0] != 'Google') {
30
return;
35
}
36
$filePath = dirname(__FILE__) . '/SrcGoogle/' . implode('/', $classPath) . '.php';
37
if (file_exists($filePath)) {
38
+ require_once($filePath);
39
}
40
}
41
42
spl_autoload_register('google_api_php_client_autoload');
43
+ }
inc/breadcrumb/class.metaseo-breadcrumb.php CHANGED
@@ -1,15 +1,34 @@
1
<?php
2
3
- class MetaSeo_Breadcrumb
4
{
5
public $breadcrumbs = array();
6
public $breadcrumb_settings = array();
7
public $template_no_anchor;
8
9
- function __construct()
10
{
11
- $home_title = get_the_title( get_option('page_on_front') );
12
- if(empty($home_title)) $home_title = get_bloginfo('title');
13
$this->breadcrumb_settings = array(
14
'separator' => ' &gt; ',
15
'include_home' => 1,
@@ -25,33 +44,46 @@ class MetaSeo_Breadcrumb
25
}
26
}
27
28
- public function wpms_check_posts()
29
{
30
global $wp_query;
31
//For the front page, as it may also validate as a page, do it first
32
if (is_front_page()) {
33
global $current_site;
34
$site_name = get_option('blogname');
35
- $this->wpms_add_breadcrumb($site_name, WPMSEO_TEMPLATE_BREADCRUMB, array('home', 'current-item'));
36
if (!is_main_site()) {
37
$site_name = get_site_option('site_name');
38
- $template = __('<span property="itemListElement" typeof="ListItem"><a property="item" typeof="WebPage" title="Go to %title%." href="%link%" class="%type%"><span property="name">%htitle%</span></a><meta property="position" content="%position%"></span>', 'wp-meta-seo');
39
- $this->wpms_add_breadcrumb($site_name, $template, array('main-home'), get_home_url($current_site->blog_id));
40
}
41
- } else if (is_singular()) {
42
-
43
if (is_attachment()) {
44
// attachments
45
- $this->wpms_attachment();
46
} else {
47
// other post types
48
- $this->wpms_post(get_post());
49
}
50
- } else if (is_search()) {
51
- $this->wpms_search();
52
- } else if (is_author()) {
53
- $this->wpms_author();
54
- } else if (is_archive()) {
55
$type = $wp_query->get_queried_object();
56
$type_str = get_query_var('post_type');
57
if (is_array($type_str)) {
@@ -59,29 +91,35 @@ class MetaSeo_Breadcrumb
59
}
60
//For date based archives
61
if (is_date()) {
62
- $this->wpms_archive_by_date($this->wpms_get_type());
63
- } else if (is_post_type_archive() && !isset($type->taxonomy) && (!is_numeric($this->breadcrumb_settings['apost_' . $type_str . '_root']))) {
64
- $this->wpms_archive_by_post_type();
65
- } else if (is_category() || is_tag() || is_tax()) {
66
- $this->wpms_archive_by_term();
67
}
68
- } else if (is_404()) {
69
- $this->wpms_add_breadcrumb('404', WPMSEO_TEMPLATE_BREADCRUMB, array('404', 'current-item'));
70
} else {
71
$type = $wp_query->get_queried_object();
72
if (isset($type->taxonomy)) {
73
- $this->wpms_archive_by_term();
74
}
75
}
76
// home
77
if (!is_front_page()) {
78
- if(!empty($this->breadcrumb_settings['include_home'])){
79
- $this->wpms_home();
80
}
81
}
82
}
83
84
- public function wpms_breadcrumb_display($return = false, $reverse = false)
85
{
86
// order breadcrumb
87
if ($reverse) {
@@ -105,7 +143,7 @@ class MetaSeo_Breadcrumb
105
}
106
}
107
108
- $html .= $this->wpms_breadcrumb_createhtml($breadcrumb,$position);
109
$position++;
110
}
111
@@ -117,9 +155,12 @@ class MetaSeo_Breadcrumb
117
}
118
119
/**
120
- * create html string
121
*/
122
- public function wpms_breadcrumb_createhtml($breadcrumb, $position)
123
{
124
$params = array(
125
'%title%' => esc_attr(strip_tags($breadcrumb['name'])),
@@ -135,9 +176,9 @@ class MetaSeo_Breadcrumb
135
$params['%type%'] = implode(' ', $params['%type%']);
136
}
137
138
- if(empty($this->breadcrumb_settings['clickable'])){
139
return str_replace(array_keys($params), $params, $this->template_no_anchor);
140
- }else{
141
if ($breadcrumb['click']) {
142
//Return template
143
return str_replace(array_keys($params), $params, $breadcrumb['template']);
@@ -146,30 +187,16 @@ class MetaSeo_Breadcrumb
146
return str_replace(array_keys($params), $params, $this->template_no_anchor);
147
}
148
}
149
-
150
-
151
- }
152
-
153
- /**
154
- * breadcrumb for front page
155
- */
156
- public function wpms_front_page()
157
- {
158
- global $current_site;
159
- $site_name = get_option('blogname');
160
- $this->wpms_add_breadcrumb($site_name, WPMSEO_TEMPLATE_BREADCRUMB, array('home', 'current-item'));
161
- if (!is_main_site()) {
162
- $site_name = get_site_option('site_name');
163
- // Add to breadcrumbs list
164
- $template = __('<span property="itemListElement" typeof="ListItem"><a property="item" typeof="WebPage" title="Go to %title%." href="%link%" class="%type%"><span property="name">%htitle%</span></a><meta property="position" content="%position%"></span>', 'wp-meta-seo');
165
- $this->wpms_add_breadcrumb($site_name, $template, array('main-home'), get_home_url($current_site->blog_id));
166
- }
167
}
168
169
/**
170
- * breadcrumb for posts
171
*/
172
- public function wpms_post($post)
173
{
174
if (!($post instanceof WP_Post)) {
175
return;
@@ -179,13 +206,15 @@ class MetaSeo_Breadcrumb
179
'name' => get_the_title($post),
180
'template' => WPMSEO_TEMPLATE_BREADCRUMB,
181
'type' => array('post', 'post-' . $post->post_type, 'current-item'),
182
- 'url' => NULL,
183
'id' => $post->ID,
184
'click' => false
185
);
186
187
if (is_attachment()) {
188
- $template = __('<span property="itemListElement" typeof="ListItem"><a property="item" typeof="WebPage" title="Go to %title%." href="%link%" class="%type%"><span property="name">%htitle%</span></a><meta property="position" content="%position%"></span>', 'wp-meta-seo');
189
$arrays['template'] = $template;
190
$arrays['url'] = get_permalink($post);
191
$arrays['click'] = true;
@@ -194,61 +223,88 @@ class MetaSeo_Breadcrumb
194
if ($post->post_type === 'page') {
195
$frontpage = get_option('page_on_front');
196
if ($post->post_parent && $post->ID != $post->post_parent && $frontpage != $post->post_parent) {
197
-
198
- $this->wpms_post_parents($post->post_parent, $frontpage);
199
}
200
} else {
201
- $this->wpms_post_hierarchy($post->ID);
202
}
203
}
204
205
- /*
206
- * find breadcrumb of parent
207
*/
208
- public function wpms_post_parents($id, $frontpage)
209
{
210
$parent = get_post($id);
211
// Add to breadcrumbs list
212
- $template = __('<span property="itemListElement" typeof="ListItem"><a property="item" typeof="WebPage" title="Go to %title%." href="%link%" class="%type%"><span property="name">%htitle%</span></a><meta property="position" content="%position%"></span>', 'wp-meta-seo');
213
- $this->wpms_add_breadcrumb(get_the_title($id), $template, array('post', 'post-' . $parent->post_type), get_permalink($id), $id);
214
- if($parent->post_parent >= 0 && $parent->post_parent != false && $id != $parent->post_parent && $frontpage != $parent->post_parent)
215
- {
216
//If valid call this function
217
- $parent = $this->wpms_post_parents($parent->post_parent, $frontpage);
218
}
219
return $parent;
220
}
221
222
/**
223
- * breadcrumb for an attachment page.
224
*/
225
- public function wpms_attachment()
226
{
227
$post = get_post();
228
// Add to breadcrumbs list
229
- $this->wpms_add_breadcrumb(get_the_title(), WPMSEO_TEMPLATE_BREADCRUMB, array('post', 'post-attachment', 'current-item'), NULL, $post->ID);
230
//Done with the current item, now on to the parents
231
$frontpage = get_option('page_on_front');
232
- if ($post->post_parent >= 0 && $post->post_parent != false && $post->ID != $post->post_parent && $frontpage != $post->post_parent) {
233
$parent = get_post($post->post_parent);
234
//set the parent's breadcrumb
235
- $this->wpms_post($parent);
236
}
237
}
238
239
/**
240
- * breadcrumb for search
241
*/
242
- public function wpms_search()
243
{
244
- $template = __('<span property="itemListElement" typeof="ListItem"><span property="name">Search results for &#39;%htitle%&#39;</span><meta property="position" content="%position%"></span>', 'wp-meta-seo');
245
- $this->wpms_add_breadcrumb(get_search_query(), $template, array('search', 'current-item'));
246
}
247
248
/**
249
- * breadcrumb for author
250
*/
251
- public function wpms_author()
252
{
253
if (get_query_var('author_name')) {
254
$author = get_user_by('slug', get_query_var('author_name'));
@@ -259,28 +315,57 @@ class MetaSeo_Breadcrumb
259
$author_name = array('display_name', 'nickname', 'first_name', 'last_name');
260
if (in_array('display_name', $author_name)) {
261
// Add to breadcrumbs list
262
- $template = __('<span property="itemListElement" typeof="ListItem"><span property="name">Articles by: %htitle%</span><meta property="position" content="%position%"></span>', 'wp-meta-seo');
263
- $this->wpms_add_breadcrumb(get_the_author_meta('display_name', $author->ID), $template, array('author', 'current-item'), NULL, $author->ID);
264
}
265
}
266
267
/**
268
- * breadcrumb for an archive by post_type.
269
*/
270
- public function wpms_archive_by_post_type()
271
{
272
- $type = $this->wpms_get_type();
273
// Add to breadcrumbs list
274
- $this->wpms_add_breadcrumb(post_type_archive_title('', false), WPMSEO_TEMPLATE_BREADCRUMB, array('archive', 'post-' . $type . '-archive', 'current-item'));
275
}
276
277
/**
278
- * breadcrumb for date
279
*/
280
- public function wpms_archive_by_date($type)
281
{
282
- global $wp_query;
283
- $date_template = __('<span property="itemListElement" typeof="ListItem"><a property="item" typeof="WebPage" title="Go to the %title% archives." href="%link%" class="%type%"><span property="name">%htitle%</span></a><meta property="position" content="%position%"></span>', 'wp-meta-seo');
284
if (is_day() || is_single()) {
285
$arrays = array(
286
'name' => get_the_time(_x('d', 'day archive breadcrumb date format', 'wp-meta-seo')),
@@ -290,14 +375,14 @@ class MetaSeo_Breadcrumb
290
291
if (is_day()) {
292
$arrays['type'] = 'current-item';
293
- $arrays['url'] = NULL;
294
$arrays['click'] = false;
295
}
296
// if is single
297
if (is_single()) {
298
$arrays['template'] = $date_template;
299
$url = get_day_link(get_the_time('Y'), get_the_time('m'), get_the_time('d'));
300
- $url = $this->wpms_add_post_type_arg($url, $type);
301
$arrays['url'] = $url;
302
$arrays['click'] = true;
303
}
@@ -315,14 +400,14 @@ class MetaSeo_Breadcrumb
315
316
if (is_month()) {
317
$arrays['type'] = 'current-item';
318
- $arrays['url'] = NULL;
319
$arrays['click'] = false;
320
}
321
322
if (is_day() || is_single()) {
323
$arrays['template'] = $date_template;
324
$url = get_month_link(get_the_time('Y'), get_the_time('m'));
325
- $url = $this->wpms_add_post_type_arg($url, $type);
326
$arrays['url'] = $url;
327
$arrays['click'] = true;
328
}
@@ -340,7 +425,7 @@ class MetaSeo_Breadcrumb
340
//If this is a year archive, add current-item type
341
if (is_year()) {
342
$arrays['type'] = 'current-item';
343
- $arrays['url'] = NULL;
344
$arrays['click'] = false;
345
}
346
// day or month or single
@@ -348,7 +433,7 @@ class MetaSeo_Breadcrumb
348
//We're linking, so set the linked template
349
$arrays['template'] = $date_template;
350
$url = get_year_link(get_the_time('Y'));
351
- $url = $this->wpms_add_post_type_arg($url, $type);
352
$arrays['url'] = $url;
353
$arrays['click'] = true;
354
}
@@ -356,57 +441,110 @@ class MetaSeo_Breadcrumb
356
$this->breadcrumbs[] = $arrays;
357
}
358
359
- public function wpms_archive_by_term()
360
{
361
global $wp_query;
362
$term = $wp_query->get_queried_object();
363
// Add to breadcrumbs list
364
- $template = __('<span property="itemListElement" typeof="ListItem"><a property="item" typeof="WebPage" title="Go to the %title% category archives." href="%link%" class="%type%"><span property="name">%htitle%</span></a><meta property="position" content="%position%"></span>', 'wp-meta-seo');
365
- $this->wpms_add_breadcrumb($term->name, $template, array('archive', 'taxonomy', $term->taxonomy, 'current-item'), NULL, $term->term_id);
366
//Get parents of current term
367
if ($term->parent) {
368
- $this->term_parents($term->parent, $term->taxonomy);
369
}
370
}
371
372
- public function term_parents($id, $taxonomy)
373
{
374
//Get the current category
375
$term = get_term($id, $taxonomy);
376
// Add to breadcrumbs list
377
- $template = __('<span property="itemListElement" typeof="ListItem"><a property="item" typeof="WebPage" title="Go to the %title% category archives." href="%link%" class="%type%"><span property="name">%htitle%</span></a><meta property="position" content="%position%"></span>', 'wp-meta-seo');
378
- $this->wpms_add_breadcrumb($term->name, $template, array('taxonomy', $taxonomy), $this->wpms_add_post_type_arg(get_term_link($term), NULL, $taxonomy), $id);
379
if ($term->parent && $term->parent != $id) {
380
- $term = $this->term_parents($term->parent, $taxonomy);
381
}
382
return $term;
383
}
384
385
- /*
386
* add a enlement to lists
387
*/
388
- public function wpms_add_breadcrumb($name = '', $template = '', array $type = array(), $url = '', $id = NULL , $click = true)
389
- {
390
$allowed_html = wp_kses_allowed_html('post');
391
- $tmp = __('<span property="itemListElement" typeof="ListItem"><a property="item" typeof="WebPage" title="Go to %title%." href="%link%" class="%type%"><span property="name">%htitle%</span></a><meta property="position" content="%position%"></span>', 'wp-meta-seo');
392
$this->template_no_anchor = WPMSEO_TEMPLATE_BREADCRUMB;
393
- if ($template == NULL) {
394
- $template = wp_kses($tmp,$allowed_html);
395
} else {
396
- //Loose comparison, evaluates to true if URL is '' or NULL
397
- if ($url == NULL) {
398
$this->template_no_anchor = wp_kses($template, $allowed_html);
399
- $template = wp_kses($tmp,$allowed_html);
400
} else {
401
- $template = wp_kses($template,$allowed_html);
402
}
403
}
404
405
// check click or not
406
- if(empty($this->breadcrumb_settings['clickable'])){
407
$click = false;
408
- }else{
409
- if ($url == NULL) {
410
$click = false;
411
} else {
412
$click = true;
@@ -424,7 +562,13 @@ class MetaSeo_Breadcrumb
424
);
425
}
426
427
- public function wpms_post_hierarchy($id)
428
{
429
$taxonomy = 'category';
430
if (is_taxonomy_hierarchical($taxonomy)) {
@@ -446,21 +590,27 @@ class MetaSeo_Breadcrumb
446
447
if ($term instanceof WP_Term) {
448
//Fill out the term hiearchy
449
- $parent = $this->term_parents($term->term_id, $taxonomy);
450
}
451
- } else {
452
- $this->post_terms($id, $taxonomy);
453
}
454
}
455
456
/**
457
- * Add post type argument to the URL
458
*/
459
- public function wpms_add_post_type_arg($url, $type = NULL, $taxonomy = NULL)
460
{
461
global $wp_taxonomies;
462
- if ($type == NULL) {
463
- $type = $this->wpms_get_type();
464
}
465
466
// add post_type to url
@@ -473,8 +623,10 @@ class MetaSeo_Breadcrumb
473
474
/**
475
* get post type
476
*/
477
- public function wpms_get_type($default = 'post')
478
{
479
$type = get_query_var('post_type', $default);
480
if ($type === '' || is_array($type)) {
@@ -489,26 +641,30 @@ class MetaSeo_Breadcrumb
489
}
490
491
/**
492
- * breadcrumb for the home page.
493
*/
494
- public function wpms_home()
495
{
496
global $current_site;
497
//Get the site name
498
$site_name = get_option('blogname');
499
- $template = __('<span property="itemListElement" typeof="ListItem"><a property="item" typeof="WebPage" title="Go to %title%." href="%link%" class="%type%"><span property="name">%htitle%</span></a><meta property="position" content="%position%"></span>', 'wp-meta-seo');
500
501
- if(!empty($this->breadcrumb_settings['home_text_default'])){
502
$title = $this->breadcrumb_settings['home_text'];
503
- }else{
504
$title = $site_name;
505
}
506
- $this->wpms_add_breadcrumb($title, $template, array('home'), get_home_url());
507
if (!is_main_site()) {
508
//Get the site name
509
$site_name = get_site_option('site_name');
510
// Add to breadcrumbs list
511
- $this->wpms_add_breadcrumb($site_name, $template, array('main-home'), get_home_url($current_site->blog_id));
512
}
513
}
514
- }
1
<?php
2
+ /* Prohibit direct script loading */
3
+ defined('ABSPATH') || die('No direct script access allowed!');
4
5
+ /**
6
+ * Class MetaSeoBreadcrumb
7
+ */
8
+ class MetaSeoBreadcrumb
9
{
10
+ /**
11
+ * @var array
12
+ */
13
public $breadcrumbs = array();
14
+ /**
15
+ * @var array
16
+ */
17
public $breadcrumb_settings = array();
18
+ /**
19
+ * @var
20
+ */
21
public $template_no_anchor;
22
23
+ /**
24
+ * MetaSeoBreadcrumb constructor.
25
+ */
26
+ public function __construct()
27
{
28
+ $home_title = get_the_title(get_option('page_on_front'));
29
+ if (empty($home_title)) {
30
+ $home_title = get_bloginfo('title');
31
+ }
32
$this->breadcrumb_settings = array(
33
'separator' => ' &gt; ',
34
'include_home' => 1,
44
}
45
}
46
47
+ /**
48
+ * Breadcrumb Trail Filling Function
49
+ *
50
+ * This functions fills the breadcrumb trail.
51
+ */
52
+ public function checkPosts()
53
{
54
global $wp_query;
55
//For the front page, as it may also validate as a page, do it first
56
if (is_front_page()) {
57
global $current_site;
58
$site_name = get_option('blogname');
59
+ $this->addBreadcrumb($site_name, WPMSEO_TEMPLATE_BREADCRUMB, array('home', 'current-item'));
60
if (!is_main_site()) {
61
$site_name = get_site_option('site_name');
62
+ $template = __('<span property="itemListElement" typeof="ListItem">
63
+ <a property="item" typeof="WebPage" title="Go to %title%." href="%link%" class="%type%">
64
+ <span property="name">%htitle%</span></a><meta property="position" content="%position%"></span>', 'wp-meta-seo');
65
+ $this->addBreadcrumb(
66
+ $site_name,
67
+ $template,
68
+ array(
69
+ 'main-home'
70
+ ),
71
+ get_home_url($current_site->blog_id)
72
+ );
73
}
74
+ } elseif (is_singular()) {
75
if (is_attachment()) {
76
// attachments
77
+ $this->attachment();
78
} else {
79
// other post types
80
+ $this->post(get_post());
81
}
82
+ } elseif (is_search()) {
83
+ $this->search();
84
+ } elseif (is_author()) {
85
+ $this->author();
86
+ } elseif (is_archive()) {
87
$type = $wp_query->get_queried_object();
88
$type_str = get_query_var('post_type');
89
if (is_array($type_str)) {
91
}
92
//For date based archives
93
if (is_date()) {
94
+ $this->archiveByDate($this->getType());
95
+ } elseif (is_post_type_archive() && !isset($type->taxonomy)
96
+ && (!is_numeric($this->breadcrumb_settings['apost_' . $type_str . '_root']))) {
97
+ $this->archiveByPosttype();
98
+ } elseif (is_category() || is_tag() || is_tax()) {
99
+ $this->archiveByTerm();
100
}
101
+ } elseif (is_404()) {
102
+ $this->addBreadcrumb('404', WPMSEO_TEMPLATE_BREADCRUMB, array('404', 'current-item'));
103
} else {
104
$type = $wp_query->get_queried_object();
105
if (isset($type->taxonomy)) {
106
+ $this->archiveByTerm();
107
}
108
}
109
// home
110
if (!is_front_page()) {
111
+ if (!empty($this->breadcrumb_settings['include_home'])) {
112
+ $this->home();
113
}
114
}
115
}
116
117
+ /**
118
+ * @param bool $return Whether to return or echo the trail. (optional)
119
+ * @param bool $reverse Whether to reverse the output or not. (optional)
120
+ * @return string
121
+ */
122
+ public function breadcrumbDisplay($return = false, $reverse = false)
123
{
124
// order breadcrumb
125
if ($reverse) {
143
}
144
}
145
146
+ $html .= $this->generateBreadcrumb($breadcrumb, $position);
147
$position++;
148
}
149
155
}
156
157
/**
158
+ * Generate breadcrumb
159
+ * @param array $breadcrumb breadcrumb info
160
+ * @param int $position position of breadcrumb element
161
+ * @return mixed
162
*/
163
+ public function generateBreadcrumb($breadcrumb, $position)
164
{
165
$params = array(
166
'%title%' => esc_attr(strip_tags($breadcrumb['name'])),
176
$params['%type%'] = implode(' ', $params['%type%']);
177
}
178
179
+ if (empty($this->breadcrumb_settings['clickable'])) {
180
return str_replace(array_keys($params), $params, $this->template_no_anchor);
181
+ } else {
182
if ($breadcrumb['click']) {
183
//Return template
184
return str_replace(array_keys($params), $params, $breadcrumb['template']);
187
return str_replace(array_keys($params), $params, $this->template_no_anchor);
188
}
189
}
190
}
191
192
/**
193
+ * A Breadcrumb Trail Filling Function
194
+ *
195
+ * This functions fills a breadcrumb for posts
196
+ *
197
+ * @param $post WP_Post Instance of WP_Post object to create a breadcrumb for
198
*/
199
+ public function post($post)
200
{
201
if (!($post instanceof WP_Post)) {
202
return;
206
'name' => get_the_title($post),
207
'template' => WPMSEO_TEMPLATE_BREADCRUMB,
208
'type' => array('post', 'post-' . $post->post_type, 'current-item'),
209
+ 'url' => null,
210
'id' => $post->ID,
211
'click' => false
212
);
213
214
if (is_attachment()) {
215
+ $template = __('<span property="itemListElement" typeof="ListItem">
216
+ <a property="item" typeof="WebPage" title="Go to %title%." href="%link%" class="%type%">
217
+ <span property="name">%htitle%</span></a><meta property="position" content="%position%"></span>', 'wp-meta-seo');
218
$arrays['template'] = $template;
219
$arrays['url'] = get_permalink($post);
220
$arrays['click'] = true;
223
if ($post->post_type === 'page') {
224
$frontpage = get_option('page_on_front');
225
if ($post->post_parent && $post->ID != $post->post_parent && $frontpage != $post->post_parent) {
226
+ $this->postParents($post->post_parent, $frontpage);
227
}
228
} else {
229
+ $this->postHierarchy($post->ID);
230
}
231
}
232
233
+ /**
234
+ * A Breadcrumb Trail Filling Function
235
+ *
236
+ * This recursive functions fills the trail with breadcrumbs for parent posts/pages.
237
+ * @param int $id The id of the parent page.
238
+ * @param int $frontpage The id of the front page.
239
+ * @return WP_Post The parent we stopped at
240
*/
241
+ public function postParents($id, $frontpage)
242
{
243
$parent = get_post($id);
244
// Add to breadcrumbs list
245
+ $template = __('<span property="itemListElement" typeof="ListItem">
246
+ <a property="item" typeof="WebPage" title="Go to %title%." href="%link%" class="%type%">
247
+ <span property="name">%htitle%</span></a><meta property="position" content="%position%"></span>', 'wp-meta-seo');
248
+ $this->addBreadcrumb(
249
+ get_the_title($id),
250
+ $template,
251
+ array('post', 'post-' . $parent->post_type),
252
+ get_permalink($id),
253
+ $id
254
+ );
255
+ if ($parent->post_parent >= 0 && $parent->post_parent != false
256
+ && $id != $parent->post_parent && $frontpage != $parent->post_parent) {
257
//If valid call this function
258
+ $parent = $this->postParents($parent->post_parent, $frontpage);
259
}
260
return $parent;
261
}
262
263
/**
264
+ * A Breadcrumb Trail Filling Function
265
+ *
266
+ * This functions fills a breadcrumb for an attachment page.
267
*/
268
+ public function attachment()
269
{
270
$post = get_post();
271
// Add to breadcrumbs list
272
+ $this->addBreadcrumb(
273
+ get_the_title(),
274
+ WPMSEO_TEMPLATE_BREADCRUMB,
275
+ array('post', 'post-attachment', 'current-item'),
276
+ null,
277
+ $post->ID
278
+ );
279
//Done with the current item, now on to the parents
280
$frontpage = get_option('page_on_front');
281
+ if ($post->post_parent >= 0 && $post->post_parent != false && $post->ID != $post->post_parent
282
+ && $frontpage != $post->post_parent) {
283
$parent = get_post($post->post_parent);
284
//set the parent's breadcrumb
285
+ $this->post($parent);
286
}
287
}
288
289
/**
290
+ * A Breadcrumb Trail Filling Function
291
+ *
292
+ * This functions fills a breadcrumb for a search page.
293
*/
294
+ public function search()
295
{
296
+ $template = __('<span property="itemListElement" typeof="ListItem">
297
+ <span property="name">Search results for &#39;%htitle%&#39;</span>
298
+ <meta property="position" content="%position%"></span>', 'wp-meta-seo');
299
+ $this->addBreadcrumb(get_search_query(), $template, array('search', 'current-item'));
300
}
301
302
/**
303
+ * A Breadcrumb Trail Filling Function
304
+ *
305
+ * This functions fills a breadcrumb for an author page.
306
*/
307
+ public function author()
308
{
309
if (get_query_var('author_name')) {
310
$author = get_user_by('slug', get_query_var('author_name'));
315
$author_name = array('display_name', 'nickname', 'first_name', 'last_name');
316
if (in_array('display_name', $author_name)) {
317
// Add to breadcrumbs list
318
+ $template = __('<span property="itemListElement" typeof="ListItem">
319
+ <span property="name">Articles by: %htitle%</span>
320
+ <meta property="position" content="%position%"></span>', 'wp-meta-seo');
321
+ $this->addBreadcrumb(
322
+ get_the_author_meta(
323
+ 'display_name',
324
+ $author->ID
325
+ ),
326
+ $template,
327
+ array(
328
+ 'author',
329
+ 'current-item'
330
+ ),
331
+ null,
332
+ $author->ID
333
+ );
334
}
335
}
336
337
/**
338
+ * A Breadcrumb Trail Filling Function
339
+ *
340
+ * This functions fills a breadcrumb for a post type archive (WP 3.1 feature)
341
*/
342
+ public function archiveByPosttype()
343
{
344
+ $type = $this->getType();
345
// Add to breadcrumbs list
346
+ $this->addBreadcrumb(
347
+ post_type_archive_title('', false),
348
+ WPMSEO_TEMPLATE_BREADCRUMB,
349
+ array(
350
+ 'archive',
351
+ 'post-' . $type . '-archive',
352
+ 'current-item'
353
+ )
354
+ );
355
}
356
357
/**
358
+ * A Breadcrumb Trail Filling Function
359
+ *
360
+ * This functions fills a breadcrumb for a date archive.
361
+ *
362
+ * @param string $type The type to restrict the date archives to
363
*/
364
+ public function archiveByDate($type)
365
{
366
+ $date_template = __('<span property="itemListElement" typeof="ListItem">
367
+ <a property="item" typeof="WebPage" title="Go to the %title% archives." href="%link%" class="%type%">
368
+ <span property="name">%htitle%</span></a><meta property="position" content="%position%"></span>', 'wp-meta-seo');
369
if (is_day() || is_single()) {
370
$arrays = array(
371
'name' => get_the_time(_x('d', 'day archive breadcrumb date format', 'wp-meta-seo')),
375
376
if (is_day()) {
377
$arrays['type'] = 'current-item';
378
+ $arrays['url'] = null;
379
$arrays['click'] = false;
380
}
381
// if is single
382
if (is_single()) {
383
$arrays['template'] = $date_template;
384
$url = get_day_link(get_the_time('Y'), get_the_time('m'), get_the_time('d'));
385
+ $url = $this->addPosttypeArg($url, $type);
386
$arrays['url'] = $url;
387
$arrays['click'] = true;
388
}
400
401
if (is_month()) {
402
$arrays['type'] = 'current-item';
403
+ $arrays['url'] = null;
404
$arrays['click'] = false;
405
}
406
407
if (is_day() || is_single()) {
408
$arrays['template'] = $date_template;
409
$url = get_month_link(get_the_time('Y'), get_the_time('m'));
410
+ $url = $this->addPosttypeArg($url, $type);
411
$arrays['url'] = $url;
412
$arrays['click'] = true;
413
}
425
//If this is a year archive, add current-item type
426
if (is_year()) {
427
$arrays['type'] = 'current-item';
428
+ $arrays['url'] = null;
429
$arrays['click'] = false;
430
}
431
// day or month or single
433
//We're linking, so set the linked template
434
$arrays['template'] = $date_template;
435
$url = get_year_link(get_the_time('Y'));
436
+ $url = $this->addPosttypeArg($url, $type);
437
$arrays['url'] = $url;
438
$arrays['click'] = true;
439
}
441
$this->breadcrumbs[] = $arrays;
442
}
443
444
+ /**
445
+ * A Breadcrumb Trail Filling Function
446
+ *
447
+ * This function fills a breadcrumb for any taxonomy archive, was previously two separate functions
448
+ */
449
+ public function archiveByTerm()
450
{
451
global $wp_query;
452
$term = $wp_query->get_queried_object();
453
// Add to breadcrumbs list
454
+ $template = __('<span property="itemListElement" typeof="ListItem">
455
+ <a property="item" typeof="WebPage" title="Go to the %title% category archives." href="%link%" class="%type%">
456
+ <span property="name">%htitle%</span></a><meta property="position" content="%position%"></span>', 'wp-meta-seo');
457
+ $this->addBreadcrumb(
458
+ $term->name,
459
+ $template,
460
+ array(
461
+ 'archive',
462
+ 'taxonomy',
463
+ $term->taxonomy,
464
+ 'current-item'
465
+ ),
466
+ null,
467
+ $term->term_id
468
+ );
469
//Get parents of current term
470
if ($term->parent) {
471
+ $this->termParents($term->parent, $term->taxonomy);
472
}
473
}
474
475
+ /**
476
+ * A Breadcrumb Trail Filling Function
477
+ *
478
+ * This recursive functions fills the trail with breadcrumbs for parent terms.
479
+ * @param int $id The id of the term.
480
+ * @param string $taxonomy The name of the taxonomy that the term belongs to
481
+ * @return WP_Term The term we stopped at
482
+ */
483
+ public function termParents($id, $taxonomy)
484
{
485
//Get the current category
486
$term = get_term($id, $taxonomy);
487
// Add to breadcrumbs list
488
+ $template = __('<span property="itemListElement" typeof="ListItem">
489
+ <a property="item" typeof="WebPage" title="Go to the %title% category archives." href="%link%" class="%type%">
490
+ <span property="name">%htitle%</span></a><meta property="position" content="%position%"></span>', 'wp-meta-seo');
491
+ $this->addBreadcrumb(
492
+ $term->name,
493
+ $template,
494
+ array(
495
+ 'taxonomy',
496
+ $taxonomy
497
+ ),
498
+ $this->addPosttypeArg(
499
+ get_term_link($term),
500
+ null,
501
+ $taxonomy
502
+ ),
503
+ $id
504
+ );
505
if ($term->parent && $term->parent != $id) {
506
+ $term = $this->termParents($term->parent, $taxonomy);
507
}
508
return $term;
509
}
510
511
+ /**
512
* add a enlement to lists
513
+ * @param string $name
514
+ * @param string $template
515
+ * @param array $type
516
+ * @param string $url
517
+ * @param null $id
518
*/
519
+ public function addBreadcrumb(
520
+ $name = '',
521
+ $template = '',
522
+ array $type = array(),
523
+ $url = '',
524
+ $id = null
525
+ ) {
526
$allowed_html = wp_kses_allowed_html('post');
527
+ $tmp = __('<span property="itemListElement" typeof="ListItem">
528
+ <a property="item" typeof="WebPage" title="Go to %title%." href="%link%" class="%type%">
529
+ <span property="name">%htitle%</span></a><meta property="position" content="%position%"></span>', 'wp-meta-seo');
530
$this->template_no_anchor = WPMSEO_TEMPLATE_BREADCRUMB;
531
+ if ($template == null) {
532
+ $template = wp_kses($tmp, $allowed_html);
533
} else {
534
+ //Loose comparison, evaluates to true if URL is '' or null
535
+ if ($url == null) {
536
$this->template_no_anchor = wp_kses($template, $allowed_html);
537
+ $template = wp_kses($tmp, $allowed_html);
538
} else {
539
+ $template = wp_kses($template, $allowed_html);
540
}
541
}
542
543
// check click or not
544
+ if (empty($this->breadcrumb_settings['clickable'])) {
545
$click = false;
546
+ } else {
547
+ if ($url == null) {
548
$click = false;
549
} else {
550
$click = true;
562
);
563
}
564
565
+ /**
566
+ * A Breadcrumb Trail Filling Function
567
+ *
568
+ * This function fills breadcrumbs for any post taxonomy
569
+ * @param int $id The id of the post to figure out the taxonomy for
570
+ */
571
+ public function postHierarchy($id)
572
{
573
$taxonomy = 'category';
574
if (is_taxonomy_hierarchical($taxonomy)) {
590
591
if ($term instanceof WP_Term) {
592
//Fill out the term hiearchy
593
+ $this->termParents($term->term_id, $taxonomy);
594
}
595
}
596
+ //else {//$this->post_terms($id, $taxonomy);
597
+ //}
598
}
599
600
/**
601
+ * Adds the post type argument to the URL iff the passed in type is not post
602
+ *
603
+ * @param string $url The URL to possibly add the post_type argument to
604
+ * @param string $type [optional] The type to possibly add to the URL
605
+ * @param string $taxonomy [optional] If we're dealing with a taxonomy term, the taxonomy of that term
606
+ *
607
+ * @return string The possibly modified URL
608
*/
609
+ public function addPosttypeArg($url, $type = null, $taxonomy = null)
610
{
611
global $wp_taxonomies;
612
+ if ($type == null) {
613
+ $type = $this->getType();
614
}
615
616
// add post_type to url
623
624
/**
625
* get post type
626
+ * @param string $default
627
+ * @return string
628
*/
629
+ public function getType($default = 'post')
630
{
631
$type = get_query_var('post_type', $default);
632
if ($type === '' || is_array($type)) {
641
}
642
643
/**
644
+ * A Breadcrumb Trail Filling Function
645
+ *
646
+ * This functions fills a breadcrumb for the home page.
647
*/
648
+ public function home()
649
{
650
global $current_site;
651
//Get the site name
652
$site_name = get_option('blogname');
653
+ $template = __('<span property="itemListElement" typeof="ListItem">
654
+ <a property="item" typeof="WebPage" title="Go to %title%." href="%link%" class="%type%">
655
+ <span property="name">%htitle%</span></a><meta property="position" content="%position%"></span>', 'wp-meta-seo');
656
657
+ if (!empty($this->breadcrumb_settings['home_text_default'])) {
658
$title = $this->breadcrumb_settings['home_text'];
659
+ } else {
660
$title = $site_name;
661
}
662
+ $this->addBreadcrumb($title, $template, array('home'), get_home_url());
663
if (!is_main_site()) {
664
//Get the site name
665
$site_name = get_site_option('site_name');
666
// Add to breadcrumbs list
667
+ $this->addBreadcrumb($site_name, $template, array('main-home'), get_home_url($current_site->blog_id));
668
}
669
}
670
+ }
inc/class.image-helper.php CHANGED
@@ -1,14 +1,26 @@
1
<?php
2
- /*
3
* This class implements some function for image optimize
4
- *
5
*/
6
7
- class ImageHelper {
8
-
9
public static $src = '';
10
11
- public function __construct(array $params = array()) {
12
$c = new ReflectionClass(__CLASS__);
13
$statics = $c->getStaticProperties();
14
@@ -20,11 +32,14 @@ class ImageHelper {
20
}
21
}
22
}
23
-
24
- /*
25
* get image info
26
*/
27
- public static function IGetPart($src = '') {
28
if ($src == '') {
29
$src = self::$src;
30
}
@@ -62,10 +77,13 @@ class ImageHelper {
62
return $ipart;
63
}
64
65
- /*
66
* get Image width and height
67
*/
68
- public static function IGetDimension($src) {
69
if (preg_match_all('/(\d+)x(\d+)/i', $src, $match)) {
70
return count($match) > 0 ? end($match[0]) : '';
71
}
@@ -73,18 +91,14 @@ class ImageHelper {
73
return '';
74
}
75
76
- public static function get($part, $src = '') {
77
- if ($src == '') {
78
- $src = self::$src;
79
- }
80
- $ipart = self::getIPart($src);
81
- return isset($ipart->{$part}) ? $ipart->{$part} : '';
82
- }
83
-