SEOPress - Version 1.0

Version Description

  • NEW Google Analytics
  • NEW Import Yoast Posts metadata in SEOPress (Title tags, Meta description, Facebook Open Graph tags (title, description and image thumbnail), Twitter tags (title, description and image thumbnail), Meta Robots (noindex, nofollow...), Canonical URL)
  • NEW Google News Sitemap (SEOPress PRO only)
  • NEW Breadcrumbs (SEOPress PRO only)
  • NEW Google Page Speed tool (SEOPress PRO only)
  • NEW Robots.txt (SEOPress PRO only)
  • NEW htaccess (SEOPress PRO only)
  • NEW WooCommerce OG:PRICE meta for product (SEOPress PRO only)
  • NEW WooCommerce OG:CURRENCY meta for product (SEOPress PRO only)
  • NEW WooCommerce Noindex cart page (SEOPress PRO only)
  • NEW WooCommerce Noindex checkout page (SEOPress PRO only)
  • NEW WooCommerce Noindex customer account pages (SEOPress PRO only)
  • NEW Add Title tag column in post types
  • NEW Add Meta description column in post types
  • NEW Set default values (settings need to be reset if you already own the plugin)
  • NEW Add SEOPress in Admin Bar for quick access (you can remove it)
  • NEW Manage Titles, Meta Descriptions and Meta Robots for Custom Post Type Archives
  • NEW Add new checks in notifications center
  • NEW Add Logo preview in Knowledge graph
  • INFO If Jetpack enabled, disable Jetpack Open Graph Tags for compatibility
  • INFO Check if SEOPress is installed, if not, display a notice for SEOPress Pro users
  • INFO Improve some labels
  • INFO Add minimum size required for Facebook and Twitter thumbnail
  • INFO Add SEOPress icon in admin menu
  • INFO Add descriptions / tooltips for labels, inputs...
  • FIX Disable article:published_time, article:modified_time and og:updated_time on homepage
  • FIX CSS bugs
  • FIX XML Sitemaps namespaces
  • FIX Escape HTML in OG:Title, Twitter:title
  • FIX Wrong link for rating SEOPress on w.org
  • FIX Replace get_site_url() by get_home_url() (thanks to Ludovic Riaudel)
  • FIX Title tag and meta description for frontpage
  • FIX Notification center checks
  • FIX if function exists errors
  • FIX WooCommerce checks
Download this release

Release Info

Developer rainbowgeek
Plugin Icon 128x128 SEOPress
Version 1.0
Comparing to
See all releases

Code changes from version 0.9 to 1.0

Files changed (65) hide show
  1. assets/css/seopress.css +325 -35
  2. assets/img/logo-seopress.png +0 -0
  3. assets/js/seopress-dashboard.js +212 -0
  4. assets/js/seopress-tabs.js +36 -1
  5. assets/js/seopress-tabs6.js +28 -0
  6. assets/js/seopress-yoast-migrate.js +25 -0
  7. contributors.txt +4 -0
  8. inc/admin/admin-header.php +63 -0
  9. inc/admin/admin-metaboxes.php +77 -20
  10. inc/admin/admin.php +1620 -231
  11. inc/admin/adminbar.php +64 -0
  12. inc/admin/ajax.php +85 -0
  13. inc/functions/options-advanced-admin.php +72 -1
  14. inc/functions/options-google-analytics.php +285 -0
  15. inc/functions/options-import-export.php +13 -3
  16. inc/functions/options-social.php +37 -39
  17. inc/functions/options-titles-metas.php +183 -70
  18. inc/functions/options.php +40 -23
  19. inc/functions/sitemap/index.php +3 -0
  20. inc/functions/sitemap/template-xml-sitemaps-single-term.php +15 -21
  21. inc/functions/sitemap/template-xml-sitemaps-single.php +5 -5
  22. inc/functions/sitemap/template-xml-sitemaps-xsl.php +22 -17
  23. inc/functions/sitemap/template-xml-sitemaps.php +33 -12
  24. languages/wp-seopress-fr_FR.mo +0 -0
  25. languages/wp-seopress-fr_FR.po +844 -262
  26. languages/wp-seopress.mo +0 -0
  27. languages/wp-seopress.po +761 -234
  28. readme.txt +58 -5
  29. seopress.php +153 -18
  30. wpgod/composer-temp.phar +0 -0
  31. wpgod/composer.json +16 -0
  32. wpgod/composer.phar +0 -0
  33. wpgod/public/js/send-error.js +8 -0
  34. wpgod/public/js/send-tracking-general.js +8 -0
  35. wpgod/src/WPGod/Handler/GodAdminNoticeHandler.php +118 -0
  36. wpgod/src/WPGod/Handler/GodErrorHandler.php +136 -0
  37. wpgod/src/WPGod/Handler/GodTrackingHandler.php +101 -0
  38. wpgod/src/WPGod/Helpers/GodEnvironmentInfo.php +107 -0
  39. wpgod/src/WPGod/Helpers/GodError.php +73 -0
  40. wpgod/src/WPGod/Helpers/GodServerInfo.php +101 -0
  41. wpgod/src/WPGod/Helpers/GodTypeDevelopment.php +21 -0
  42. wpgod/src/WPGod/Models/GodHandlerInterface.php +34 -0
  43. wpgod/src/WPGod/Models/HelperInterface.php +14 -0
  44. wpgod/src/WPGod/Models/HooksInterface.php +25 -0
  45. wpgod/src/WPGod/Models/ServiceInterface.php +14 -0
  46. wpgod/src/WPGod/Models/Specification/AbstractSpecification.php +55 -0
  47. wpgod/src/WPGod/Models/Specification/AndX.php +39 -0
  48. wpgod/src/WPGod/Models/Specification/ContainsSpecification.php +22 -0
  49. wpgod/src/WPGod/Models/Specification/EqualsSpecification.php +16 -0
  50. wpgod/src/WPGod/Models/Specification/NotX.php +36 -0
  51. wpgod/src/WPGod/Models/Specification/OrX.php +40 -0
  52. wpgod/src/WPGod/Models/Specification/SpecificationInterface.php +43 -0
  53. wpgod/src/WPGod/Services/GodAbstractService.php +71 -0
  54. wpgod/src/WPGod/Services/GodApi.php +148 -0
  55. wpgod/src/WPGod/Services/GodAuthorizeError.php +69 -0
  56. wpgod/src/WPGod/Services/GodCheckErrors.php +86 -0
  57. wpgod/src/WPGod/Services/GodFilesRules.php +154 -0
  58. wpgod/src/WPGod/WPGod.php +164 -0
  59. wpgod/vendor/autoload.php +7 -0
  60. wpgod/vendor/composer/ClassLoader.php +413 -0
  61. wpgod/vendor/composer/LICENSE +21 -0
  62. wpgod/vendor/composer/autoload_classmap.php +9 -0
  63. wpgod/vendor/composer/autoload_namespaces.php +9 -0
  64. wpgod/vendor/composer/autoload_psr4.php +10 -0
  65. wpgod/vendor/composer/autoload_real.php +45 -0
assets/css/seopress.css CHANGED
@@ -9,19 +9,30 @@
9
  z-index: 50;
10
  margin: 0;
11
  padding: 0;
 
 
12
  }
13
  #seopress_cpt .ui-helper-clearfix:after {
14
  content:none;
15
  }
 
 
 
16
  #seopress_cpt .ui-tabs .ui-tabs-panel {
17
  background: none repeat scroll 0 0 #FFFFFF;
18
  border: 1px solid #DDDDDD;
19
- border-radius: 0 3px 3px 3px;
20
  display: inline-block;
21
  padding: 1em 1.4em;
22
  width: 100%;
23
  box-sizing: border-box;
24
  }
 
 
 
 
 
 
25
  #seopress_cpt .ui-tabs .ui-tabs-nav li, #seopress_cpt .ui-tabs-anchor {
26
  cursor:pointer !important;
27
  }
@@ -34,15 +45,18 @@
34
  position: relative;
35
  z-index: 60;
36
  cursor:pointer;
 
37
  }
38
  #seopress_cpt #tabs-1 label,
39
  #seopress_cpt #tabs-2 label[for=seopress_robots_canonical_meta],
40
  #seopress_cpt #tabs-3 label,
41
  #seopress_cpt #tabs-4 label,
 
42
  #seopress_cpt .subsection-title {
43
  border-bottom: 1px solid #DDDDDD;
44
  display: block;
45
  margin: 20px 0 5px;
 
46
  }
47
  #seopress_cpt .wp-color-result {
48
  margin:0;
@@ -51,22 +65,31 @@
51
  #seopress_cpt #tabs-2 input[type=text],
52
  #seopress_cpt #tabs-3 textarea,
53
  #seopress_cpt #tabs-3 input[type=text],
54
- #seopress_cpt #tabs-4 input[type=text] {
 
55
  width:100%;
56
  }
57
  #seopress_cpt select {
58
  width:300px;
59
  }
60
  #seopress_cpt #tabs-4 select {
61
- width:50px;
62
  display: inline;
63
  }
64
  #seopress_cpt #tabs-4 #seopress_redirections_value_meta {
65
- width: calc(100% - 58px);
66
  float: right;
67
  }
68
- #seopress_cpt #tabs-4 #seopress_redirections_enabled {
 
69
  border-bottom: none;
 
 
 
 
 
 
 
70
  }
71
  #seopress_cpt .mandatory {
72
  color: #cc0000;
@@ -129,16 +152,21 @@
129
  #seopress_cpt .ui-tabs {
130
  position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
131
  padding: .2em;
 
 
 
132
  }
133
  #seopress_cpt .ui-tabs .ui-tabs-nav li {
134
  list-style: none;
135
  float: left;
136
  position: relative;
137
  top: 0;
138
- margin: 1px .2em 0 0;
139
  border-bottom-width: 0;
140
  padding: 0;
141
  white-space: nowrap;
 
 
142
  }
143
  #seopress_cpt .ui-tabs .ui-tabs-nav li a {
144
  float: left;
@@ -157,6 +185,8 @@
157
  #seopress_cpt .ui-tabs .ui-tabs-nav li a, /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
158
  #seopress_cpt .ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a {
159
  cursor: pointer;
 
 
160
  }
161
  #seopress_cpt .ui-tabs-vertical { width: 55em; }
162
  #seopress_cpt .ui-tabs-vertical .ui-tabs-nav { padding: .2em .1em .2em .2em; float: left; width: 12em; }
@@ -172,21 +202,76 @@
172
  /*************************************************************************************************/
173
  /* Admin - Options panel */
174
  /*************************************************************************************************/
175
- .wp-admin.seopress-styles {
176
- background: #F7F7F7;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
177
  }
178
  .seopress-styles #wpcontent {
179
  padding-left: 0;
 
180
  }
181
  .seopress-styles #seopress-admin {
182
  background: #FFF;
183
- box-shadow: 0 0 0 1px rgba(224, 224, 224, 0),0 0px 2px #a8a8a8;
 
 
 
 
 
 
184
  }
185
  .seopress-styles #seopress-navbar {
186
  padding: 10px 25px;
187
  height: 40px;
188
  margin: 0 auto;
189
- width: 48rem;
190
  }
191
  #seopress-header {
192
  margin: 0;
@@ -203,7 +288,7 @@
203
  }
204
  #seopress-header #seopress-admin h1 .seopress-info-version {
205
  position: relative;
206
- left: 170px;
207
  top: -17px;
208
  }
209
  #seopress-header #seopress-admin .wpc-info-version {
@@ -252,6 +337,8 @@
252
  }
253
  .seopress-tab {
254
  display: none;
 
 
255
  }
256
  .seopress-tab.active {
257
  display: block;
@@ -322,7 +409,7 @@
322
  .seopress-page-list .seopress-feature, #seopress-notifications-center {
323
  background: #fff;
324
  margin: 20px auto;
325
- box-shadow: 0 0 0 1px rgba(224, 224, 224, 0.5),0 1px 2px #a8a8a8;
326
  max-width: 45rem;
327
  padding: 1.5rem;
328
  width: 100%;
@@ -348,23 +435,41 @@
348
  margin: 0px;
349
  display: block;
350
  }
351
- .seopress-page-list .seopress-feature h4 {
352
  margin: 0;
353
  font-size: 16px;
354
  font-weight: bold;
355
  }
356
- .seopress-page-list .seopress-feature h4 .dashicons {
357
  font-size: 16px;
358
  margin-left: 5px;
359
  vertical-align: middle;
360
  }
361
- .seopress-page-list a {
362
- color: #333;
 
363
  text-decoration: none;
364
- }
365
- .seopress-page-list a:hover {
 
 
 
 
 
 
 
 
 
 
 
 
366
  text-decoration: none;
367
- color: #09C;
 
 
 
 
 
368
  }
369
  #seopress-notifications-center h2 {
370
  margin: 5px 0px 15px 5px;
@@ -375,22 +480,46 @@
375
  margin-right: 10px;
376
  }
377
  #seopress-notifications-center .seopress-alert {
378
- padding: 10px 15px 10px;
379
- display: block;
380
- margin: 10px 10px 10px 5px;
381
- border: 1px solid rgba(224, 224, 224, 1);
382
- border-radius: 5px;
383
  }
384
  #seopress-notifications-center .seopress-alert p {
385
  display: inline-block;
386
  }
387
- #seopress-notifications-center .seopress-alert .button-primary {
388
- display: inline;
389
- float: right;
390
- margin: 10px 0px;
 
 
 
 
 
 
 
 
 
 
 
 
391
  }
392
  #seopress-notifications-center .seopress-alert .dashicons {
393
- color:#09C;
 
 
 
 
 
 
 
 
 
 
 
 
394
  }
395
  .seopress-option .seopress-table {
396
  background: #FFF none repeat scroll 0% 0%;
@@ -411,12 +540,35 @@
411
  font-weight: bold;
412
  background: #f1f1f1;
413
  }
414
- #seopress-admin .wpalacarte-banner {
415
- position: absolute;
416
- right: 28px;
417
- top: 10px;
418
- height: 200px;
419
- width: auto;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
420
  }
421
  .seopress-option input[type="text"].seopress-admin-menu-input {
422
  min-width: inherit;
@@ -425,3 +577,141 @@
425
  .seopress_page_seopress-import-export .postbox {
426
  width: calc(100% - 20px);
427
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9
  z-index: 50;
10
  margin: 0;
11
  padding: 0;
12
+ background: none;
13
+ border: none;
14
  }
15
  #seopress_cpt .ui-helper-clearfix:after {
16
  content:none;
17
  }
18
+ .seopress_page_seopress-titles #seopress-tabs .form-table td {
19
+ padding: 0;
20
+ }
21
  #seopress_cpt .ui-tabs .ui-tabs-panel {
22
  background: none repeat scroll 0 0 #FFFFFF;
23
  border: 1px solid #DDDDDD;
24
+ border-radius: 0;
25
  display: inline-block;
26
  padding: 1em 1.4em;
27
  width: 100%;
28
  box-sizing: border-box;
29
  }
30
+ #seopress_cpt .ui-tabs .ui-tabs-panel .dashicons-info {
31
+ font-size: 16px;
32
+ vertical-align: middle;
33
+ height: 16px;
34
+ width: 16px;
35
+ }
36
  #seopress_cpt .ui-tabs .ui-tabs-nav li, #seopress_cpt .ui-tabs-anchor {
37
  cursor:pointer !important;
38
  }
45
  position: relative;
46
  z-index: 60;
47
  cursor:pointer;
48
+ border-radius: 0;
49
  }
50
  #seopress_cpt #tabs-1 label,
51
  #seopress_cpt #tabs-2 label[for=seopress_robots_canonical_meta],
52
  #seopress_cpt #tabs-3 label,
53
  #seopress_cpt #tabs-4 label,
54
+ #seopress_cpt #tabs-5 label,
55
  #seopress_cpt .subsection-title {
56
  border-bottom: 1px solid #DDDDDD;
57
  display: block;
58
  margin: 20px 0 5px;
59
+ font-weight: bold;
60
  }
61
  #seopress_cpt .wp-color-result {
62
  margin:0;
65
  #seopress_cpt #tabs-2 input[type=text],
66
  #seopress_cpt #tabs-3 textarea,
67
  #seopress_cpt #tabs-3 input[type=text],
68
+ #seopress_cpt #tabs-4 input[type=text],
69
+ #seopress_cpt #tabs-5 input[type=text] {
70
  width:100%;
71
  }
72
  #seopress_cpt select {
73
  width:300px;
74
  }
75
  #seopress_cpt #tabs-4 select {
76
+ width:60px;
77
  display: inline;
78
  }
79
  #seopress_cpt #tabs-4 #seopress_redirections_value_meta {
80
+ width: calc(100% - 68px);
81
  float: right;
82
  }
83
+ #seopress_cpt #tabs-4 #seopress_redirections_enabled,
84
+ #seopress_cpt #tabs-5 #seopress_news_disabled {
85
  border-bottom: none;
86
+ font-weight: normal;
87
+ }
88
+ #seopress_cpt .advise {
89
+ margin: 5px;
90
+ display: block;
91
+ color: red;
92
+ font-style: italic;
93
  }
94
  #seopress_cpt .mandatory {
95
  color: #cc0000;
152
  #seopress_cpt .ui-tabs {
153
  position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
154
  padding: .2em;
155
+ border: none;
156
+ font-family: inherit;
157
+ font-size: inherit;
158
  }
159
  #seopress_cpt .ui-tabs .ui-tabs-nav li {
160
  list-style: none;
161
  float: left;
162
  position: relative;
163
  top: 0;
164
+ margin: -1px .2em 0 0;
165
  border-bottom-width: 0;
166
  padding: 0;
167
  white-space: nowrap;
168
+ border: none;
169
+ background: none;
170
  }
171
  #seopress_cpt .ui-tabs .ui-tabs-nav li a {
172
  float: left;
185
  #seopress_cpt .ui-tabs .ui-tabs-nav li a, /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
186
  #seopress_cpt .ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a {
187
  cursor: pointer;
188
+ color: #0073aa;
189
+ text-decoration: none;
190
  }
191
  #seopress_cpt .ui-tabs-vertical { width: 55em; }
192
  #seopress_cpt .ui-tabs-vertical .ui-tabs-nav { padding: .2em .1em .2em .2em; float: left; width: 12em; }
202
  /*************************************************************************************************/
203
  /* Admin - Options panel */
204
  /*************************************************************************************************/
205
+ .seopress-styles .seopress-option {
206
+ margin: 20px auto 0;
207
+ max-width: 90%;
208
+ box-shadow: 0px 0px 20px rgba(0,0,0,0.1);
209
+ padding: 1.0rem;
210
+ background: #fff;
211
+ }
212
+ .seopress-styles .seopress-option h1 span,
213
+ .seopress-styles .seopress-option h2 span {
214
+ margin: 0 10px;
215
+ font-size: 40px;
216
+ width: 40px;
217
+ height: 40px;
218
+ vertical-align: middle;
219
+ }
220
+ .seopress-styles .seopress-option .metabox-holder h2 span {
221
+ font-size: 16px;
222
+ }
223
+ .seopress-styles .wrap {
224
+ margin: 0;
225
+ }
226
+ .seopress-styles .seopress-option .submit {
227
+ background: #fff;
228
+ text-align: center;
229
+ border-top: 1px solid #F1F1F1;
230
+ padding-top: 20px;
231
+ padding-bottom: 20px;
232
+ margin: 0;
233
+ }
234
+ .seopress-styles .seopress-option #submit,
235
+ .seopress-styles .seopress-option #seopress-yoast-migrate {
236
+ color: #232323;
237
+ text-decoration: none;
238
+ background: #F1F1F1;
239
+ border: none;
240
+ border-radius: 30px;
241
+ padding-right: 20px;
242
+ padding-left: 20px;
243
+ line-height: 34px;
244
+ text-transform: uppercase;
245
+ height: 34px;
246
+ transition: all 300ms linear;
247
+ box-shadow: none;
248
+ text-shadow: none;
249
+ }
250
+ .seopress-styles .seopress-option #submit:hover,
251
+ .seopress-styles .seopress-option #seopress-yoast-migrate:hover {
252
+ text-decoration: none;
253
+ color: #FFF;
254
+ background: #232323;
255
  }
256
  .seopress-styles #wpcontent {
257
  padding-left: 0;
258
+ background: #F7F7F7;
259
  }
260
  .seopress-styles #seopress-admin {
261
  background: #FFF;
262
+ box-shadow: 0px 0px 20px rgba(0,0,0,0.1);
263
+ }
264
+ #adminmenu div.wp-menu-image.dashicons-admin-seopress {
265
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABV0RVh0Q3JlYXRpb24gVGltZQA1LzEyLzE2LEZ4ogAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTNui8sowAABn1SURBVHic7Z2/bxtJnsWfvQPsJupVeAB7sZzQnYwvIgMN1heogaOwWB9E4GhMMmJAX2YGVCielw7FgAytgJqNxIDEzQZmQAZnwwrI6OwJyMuGA5DAhRr2H7AXSE3LMkk1u6u7qrrfBxgMLIvNksV69f1dDxAB6XT6CYDHAHYBPLn58p+ieG9CNOHdzf/fArgC8GE6nb4N+00fhPHQdDr9GMDTm/++CeM9CEkIHwH8CODH6XT6QfTDhQlAOp1OAyjjetP/UdRzCSFLfsG1GDSm0+lUxAMDC8CNeV8G8JfAqyGEeOXvuBaCt0Ee4lsAbsz8BujLEyKTdwDKft2D3/h5UTqdfgngAkDaz+sJIcJIA/iP3d3dB1dXV2+3ffFWFsDNqf8DGNgjREU+Avh+G2vAswCk0+mnuN78v99+XYSQiPgV1yLwo5dv9uQCpNPp73Ft8v/O/7oIIRHwOwCF3d3dX66uru61BO4VgJvNfy5gYYSQ6HjqRQQ2ugA3Zv9/CV0WISRK/m2TO7BWAG4Cfm9Bn58QnfkVwJN1gcGHG174A7j5CdGd3+N6L69kZQzgJs//7+GshxASMf+0rk7gCxfgxvT/nyhWRQiJlH++6wqscgEaES2GEBItX+ztzwTgprGHtf2ExJM/3ezxJXctgJeRLYUQIoOXt/+wjAHc9PP/HPFiCCHR87U7T+C2BVCWsxZCSMQs9/ptAXgqYSGEkOhZ7vWHwDL1xzFehCSDP97s+aUF8L28tRBCJPA98EkAnkhbBiFEBk+ATwLACT+EJItvAODBTWHAf0tdCiFEBv/yENc39hBCksfjh+BkX0KSSpoWACHJ5fGmgSCEkJjzIJ1O/0P2IgghcqAFQEiCoQAQkmAoAIQkGAoAIQmGAkBIgqEAEJJgKACEJBgKACEJhgJASIKhABCSYCgAhCSYr2QvIEmYpgnTND/72mw2w2w2k7QiknQoAILJZrOwLAumaS7/n0qlPL12MplgsVhgOBxiPB5jPB5THEiosBswIKZpwrZt2LaNTCYj/Pnz+Rz9fh+dTgfj8Vj480myoQD4wDAM5PN55PN5PHr0KLL3nc/naDQa6Pf7WCwWkb0viS8UgC2wLAvFYhGHh4dS1+E4DlqtFhoN3uROgkEB8EA2m0W5XA7FxA/CfD5HrVZDv9/39P3tdnvlz/D111+LXhrRBKYBN2CaJur1Oi4uLpTb/ACQSqXw+vVrnJ2dwTCMjd+bzWZX/gyTySSs5RENoACsoVwuo9frSTf3vbC/v4/Ly0tks9m131Mur778mYHFZEMBuINlWej1enjx4gV2dnZkL8czOzs7uLi4WLnR153+AAUg6VAAbpHP59FutyON7IvmxYsXqNfrn30tn8+v/f7hcBj2kojCMAh4Q71eF27uTyYTDIdDzGaz5Uk7Ho8/S+EZhgHLsgB8KiLKZrOBrY/JZIJCoQDDMPD+/fu138cAYLJJvAAYhoF6vY79/X0hzxsMBuj3+4Fz9W5xURBRmkwmmM1ma3+20WiEQqHg+/lEfxItAIZhCDH53bx8q9USXqBjmibK5XIowcjz83PUajXhzyX6kNgYgKjN32w2sbe3h0ajEUp13mw2Q6VSwbNnz+A4jtBn0/8niRWAarUaaPNPJhMcHByEtvHvMhwOsbe3JzRvzwwASaQAVKvVQCb1YDBAoVCIfAMtFgsUCgUhIuA4DjsNSfIEwLZtHB0d+X59t9tFqVSS1oyzWCxQKpUCuwM0/wmQMAFwS3v9MhgMUKlUBK7IH25cIAg0/wmQMAGo1+u+8+uTyUSJze/S7/cxGo18v54WAAESJAD5fD5QQ0+lUlGuBz9IOzAtAAIkZCSYYRhrm2G80Gw2ldwww+EQo9Foa2FzR4/pSrFYvLf78S7D4ZBWzwoSIQDFYtHzXL67uEU+qtJqtbYWABXFzCumaeLk5GTr17mzFsnnxN4FMAwDxWLR9+vDqO4TSb/f3zojoLMAbGp53gQ3/2piLwD5fD5QY02n0xG4mnDwOhHIRWcBsG1769fM53Otf+Ywib0ABDn93WYa1dlWAHQ+Df1YADr/vGETawGwLMu37w9sv7Fksc0HPEjqUDa2bfuy5igA64m1AGwahOEFXczGxWLhuTxYl59pFfT/xRNrAfDjL95G5eDfXbx+yHUWAL/+vw5unCxiKwDbXMm1Dp02i9e16noa+v196uLGySK2AuDXXLyNThaAl1NO5w5Av9acroIXFbEVAHfOXhC2rTaTiZcPuk4WzV0oAOFAAQj5GSqh62YwDMNXH4fuJc9REFsBEHF662QBAPen+HQVAEb/wyO2AiBitn/cLABdXQC/5j8DgPcTWwEQgYhAYpRs2uDz+Vxbc5j+f3hQADaQyWS0cgM2bXBdT3/LsnxV/+lc8RglFIB7CFpNqAq6noY8/cOFAnAPQZqJVEJXC4D+f7hQAO4hlUppIwKbXAAdT0TDMHwFcx3H0Vbwoia2V4P99NNPwq73dhwHe3t72gbRdCWfz+P09HTr1w0GA5RKpRBWFD9iawGIPAF2dnZwdnYm7HnEG/T/wye2MwFns1mgKcB3yWQyKJfLgSbxku0QXQBkmiZM01z5d4vFIpFuQ2wFYDweC79R98WLF5jNZlqMCdOdbDbry4VzHAemacK27eWG3zaV6E6CGo/HGA6HGI/HsXX/YhsDsCwLb968Ef5cx3Gk3AuYNKrVaqAr3EQzGo3Q7/fR7/e17ahcRWwFABAbCLwNRSB8Li8vA89zCIvBYIBWqxWLWENsg4BAeLngnZ0dtNvt2PUKqIKIYS5hsr+/j4uLC7Tbbe3Kxe8SawEI01enCIRH0FFuUZHJZHBxcYFqtapVyfhtYi0Aw+EQ8/k8tOe7IqDLB1YHTNPUrvz66OgIvV5Py8Mg1gIABLtA0ws7Ozt4/fq1NtWCqpLNZtFut/H+/XshrdxRk0ql8ObNG+3EK9ZBQJeoAkrdbhe1Wi22KaMwsG0bxWJRaM2GbI6Pj7VJFSdCAGzbxuvXryN5r8lkglKpFKtUURhks1mUy+XQNv7dceDD4XAZsIsiyKiLCCRCAADg7OwM+/v7kbyX4zioVCrsSFuBZVmoVqvCN36320Wn08FsNvMkvoZhwLZt5PP50ETo2bNnyqcKEyMAhmHg8vIylLqAdZyfn6NWq0X2fipjGAaq1arw6kyXg4MD33UZYYmS4zjI5XJKW4OxDwK6LBYLVCqVSN/z6OgI7XZ7bf15Usjn87i8vAxt8we9/Xc8HqNQKODVq1cCV3UdIK7X60KfKZrECABwXRjU7XYjfc9MJoNer5fIVKFpmmi32zg9PQ3V8hJlZrdaLRwcHMBxHCHPA65//ypnBhIlAABQq9U8X6QpCjdVWK1WI31fmeTzefR6vUii+yL9bNcaEEm5XBb6PJEkTgAWiwVKpZJQlfeKzgUjXjEMA2dnZ6Gf+rcRHWgbj8c4Pj4W9rxUKqWsFZA4AQCuZwWIVnmvPHr0CG/evIll4ZBlWej1eltnW7rdru8pvm7rrmg6nQ4Gg4Gw56lqBSRSAADxKr8tJycnODs707aG/C7FYhFv3rzZKr8+Go1wcHCASqXi2yoKM81WqVSEWYqpVErJOFBiBQC4VnmZIrC/vx8Ll6Ber+Pk5MTz9zuOg+Pj42VLtd/hH0C4ArBYLNBqtYQ9jwKgILJFQNcacuDa3+/1elul9waDAfb29j6rkguyMcIutGm1WsKsAAqAosgWAQA4PT1VPmd8G9ff99q44zgOnj9/jlKp9EWvhN+e+tFoFHrfxWKxEFbSu7Ozo9z8AArADSqIwOHhIdrttvJxAcuy0G63Pfv7o9EIe3t7K0ujTdP03f0XVZmtyJp+CoDCdDod4YUg25LJZJQWAdu20W63PfvszWYThUJh7UmtsvnvMh6Phc2VoAAojlsIEuYgkft49OiRksHBfD6P169fe9r8juPg2bNn985j8LshHMeJtNFG1Hup9julAKxgPB4jl8tFXjF4m1QqpdTIsW1u6ZlMJsjlcp42jd8Ozai77ES9X5TNaF6gAKxhsVggl8tF3jtwG1XmDm6z+bvdLgqFgqfiHB3MfxeRxUYquQEUgHuoVCpSg4OyRcC2bc+bv9lsolKpeI7M6yQAqvf1+4UC4AE3OCgrLiBLBCzL8pyaPD4+3nr+YhD/X8adDKKCwyoFeCkAHnHjAiLrw7fB7S2P6sPjtvLe57O6VX3bpsosy/I9lkvWpCVRoiPbpbsNBWAL3E7C4+NjKanCR48eRXZL8Ww2u3ejuTck+cmTB/GD42qOy4AC4INOpyMtS5DJZCKbK1CpVNYGQYNej6aT/x9nKAA+mc1myOVyOD8/j/y9j46OIoskrxKBoJvfMAzfg0LuTvslwaAABKRWq+H58+eRuwRRthLfFgERF6MGOf05aVksFAAB9Pv9yF2CnZ2dSEeMVSoVnJ+fC7kVOen+v0q3SlMABOFOGYqycOjw8DDSopJarSbkw5t0/1+lm6MoAAJxR4+LHi+9CZ1aiIHrFJjfctjJZCJ188RxvDsFIARarVZkcQGVB06uQmf/X9R1YnQBEkC/30ehUIhEBFQdOLkKXc1/kac/XYCEEFVXoS5WQJDhH0A8BMDv9OOwoACEjBscDFsEdLACggQsZZVgu4gKtqpk/gMUgEhYLBahi0AqlVKqxnwVupr/gLj6fQpAQolCBFR3A3TO/4sSANk/x10oABEStgioOHbaxbZt3+k/We2/LkE6F2+jYhkzBSBiwrybMJVKKZurDnL6y07/ifL/Zf8cq6AASCDMuwlVjQPo7P+Lcq1k/xyroABIIqy7CVUUANM0A5nQstN/QVKXLo7j0AIgn9PpdIT3Dqg0cNIlyOkv228WFVcRebmISCgAkqnValLvIIgCnf1/Ude4i7xkVCRfyV7AJorF4sqe906no1w01S9uA9HFxYWQ5/kdtBEWhmH4nv0PyDX/bdsWEv0fjUbKfl6VFoB1V06Px2Nl/0H9MBwOcX5+jqOjI9lLEU5Ql0SmAIg6/bedlhwlyroAm4JZKga6gtJoNKTeSRgWQXxome2/2WxWiDU1Go2UjP67KCsAquazw2KxWCjrJwZBV/9fVG+Fyqc/oLAAbDrl4yoOqkaK/RK0gk7WyZmU0x+gACjFbDaT3vUmkqApNFmbR9SsxVqtJuQ5YaKsAGza5HEVAEDNajG/BBEAWUJYLBaFFP6cn58r1/m3CmUFYNMvQdRoJhWJiwAYhqHd8A/DMIT4/o7jKO/7uygpAF6i/CpWvIkg6KmhSlGRjuZ/vV733bF4m21uSJaNkgLgxcSPsxsQZGyUKvURQQRaRvuvbduBCpZcBoOB9OrFbVBSALxYAHGsBRCBKgKgU/efaZpCxqvP53NUKhUBK4oObQUgri4AEGwDqCAA2Ww2kCkd9QkqyvQvlUramP4uSgqAF/NeRKQ2jqgQRNTJ/69Wq0Jy/q9evdIi6n8XJQXA6+ZWeQSWLFT4EAaxzqJs/83n80L6L7rdrrZVnMoJwDa+fZzdAD/IvjoL0Gf2v2VZOD09DfycyWSiRcHPOpQTgG2uvI6rBeBX2FQw/4OKchT+v2VZaLfbgZ8zmUxQKBSki24QlBOAbT5AOszC98M2IngbFdJPqvv/pmmi3W4HDvo5jqNVvn8dygnAtvl91Wfh+8GPCT2fz5WwAILk0sN2YQzDwNnZmZDNXygUlIi3BEV7AYibG+DXhObpvxnX7A+aPYrT5gcUFIBtUzK6XIzpFb+bSIUotKr+Pzf/epQSAL/lvUkXAFVmzqloAWSzWSE+/3w+j93mB2IiAJlMJhYpQb9DKFXoPAs6/COMa7Pz+TwuLi4Cb/7JZIJcLhe7zQ8oJgBBNrEO12Pfh58hlKpMnVHN/K/X60Ly/IPBQPtU3yaUEoAgHX6ZTEbrgKBt275KUlU4/QF1zH/LstDr9XB4eBj4Wc1mU8v6/m2IjQAA13XdfnPoMjEMw9cYqsFgoMTpbxhGoHp6Ue2/xWJRWLDv+fPnyohrmCglAEGbMlKplLB5blFSLpe39p8dx1GmBFX27H+3uOfk5ESYv69CWjUKlBEAUQM+Dg8PtcoK+G1IabVaSkT+geDmf5DNVi6X0ev1hHT0NZtN5HI5Zf5do0CZm4FETvipVqsYj8fKR20ty/JlsYxGI6XMUxn+fz6f92U5rcId5KGCOxU1ylgAItN4Ozs7aLfbSvcJuMUp25qsbg26KliWFcjs3rb9183rn56eCtn87qmfxM0PKCQAomf8qSwCtm37Lk6pVCpKmahRnf75fB69Xg8XFxfCLu04ODhAo9GIdZT/PmLpAri4IqBSBVe5XMaLFy98vbbZbCoXnArT/zdNE/l8Hvl8Xtgo+Pl8jkajEbtbmPzyIJ1O/0P2IgDg559/3vj3juMEMjVfvXoltV7eHTzp9/TqdrtKmf7Adfrv48ePgZ7xzTfffHYCG4YB27aFTel1cRwHrVYLrVYr0Sf+XZSwAO47/QeDARqNRqCa7pOTE9i2HbkJbRgGisWi71MfUHPzA8FPf7f917IsZLNZZLNZoZse4Ma/Dy0EYDgcYjweo1AoBBKBTCaD9+/fo9vtotFohCoErvlaLBYDWS6qbn4guACYpomffvpJyETeu3Dje0MJF+A+v/jbb79dblbLsnB2dibEJ3Qvcej3+0I+JKLNV5U3P4DQNm8QXB9f1O807ighAPV6fW3t9nw+x97e3mdfMwxDSMnnbdymmuFwiMVi4SlomM1mYZrm0oQVuZ5ms6lUrv8u2WwWFxcXspexZDAYoNVqJTad5xflXYBVv9DFYoFcLrdROLYlk8kgk8l8YYncHVMVNO99H26eX7Vo/11UaLyaz+dotVro9/tKpUZ1QgkB2BQZ37QR3OqtarUa2qaM8gKSyWSCUqmkxYdZlgDM53P0+310Oh1lUrs6I10AvAQAN9HpdDAcDgOl2FRAdZP/NqZpRnpF+2g0Qr/fXwaDiTiUFgCvU2JnsxkKhQKKxSLK5bJygalNjEYj5ar77iPs038ymSzjMW5MhoSDdAHY1AOwrR/carXQ6XRQLpeFXPkUJjo3oIjs23DnGbrNWzr+e+iMdAHYZAH4CYQtFgvUajW0Wi2Uy2VhQUJRTCaTpVDpStAUZxR1GMQb0puB1glA0Ckxs9kMlUoF3377LZrNJubzue9niaDb7eLZs2fI5XJab34R5r9KswySjnQLYF23nihTcDabodFooNFoLIt0bNuOJE4gutBIBYIKgKjxX0QMShQCycCtPc9ms8KyB6PRaOnHxjV4dXl5GSgDMBgMUCqVBK6IBEG6BSALd5O6mKYJ0zSXAS73z6uYzWZLE3abykHdCTr7H1DjBmPyicQKwF3cTc0P6HpERP/576sW0oOARB+CDludz+eJsJR0ggJAPGEYRuCyaJ7+6kEBIJ4Qkf6jAKgHBYB4gv5/PKEAEE+IGP/F4h/1oACQexExA4Gnv5pQAMi9iLhqjQKgJhQAci/0/+MLBYBsxDTNwOm/0WgUy7LoOEABIBvh6R9vKABkI8z/xxsKANlIUAvAcRwKgMJQAMhaRMxN4OZXGwoAWQv9//hDASBrof8ffygAZCUiZv+z/Vd9KABkJTz9kwEFgKyEApAMKADkCwzDEDIoVfULTgkFgKxARPSf5b96QAEgX0DzPzlQAMgXMP+fHCgA5DNEzP4HQPNfEygA5DNEXf3N/L8eUADIZ4gSAKIHFACyRMTwD6IXFACypFwuC3uWiEAiCR8KAAFwffofHh4Kex5dCT2gABAYhoGzszOhzzw6OoJlWUKfScRDAUg4hmGg3W6H4vu3222KgOL8Znd396XsRZDoMQwDf/7zn/G3v/1NSN5/Fb/97W/x3Xff4Q9/+AMWiwVvBlKQB+l0+h+yF0HCxzRNmKYJy7KQzWaRzWYDj/vaFsdxMB6PMRwOMR6Pl6JAYZAHBSCGVKtV5PP5yDe4KLrdLiqViuxlJALGAGKIiLv8ZEKLIDooADFERC+/TCgA0UEBiBmGYcheQmAoANFBAYgZcUi7sZEoOigAMSMOAsBW4uigAMQM3V2A0WgkewmJ4ivZCyBiGY/HaDabspfhG/r/0cI6AEISDF0AQhIMBYCQBEMBICTBUAAISTAUAEISDAWAkARDASAkwTwE8E72IgghUnhHC4CQBPMQwAfZiyCESOHDQwBT2asghEhhSguAkOTy4QEAsCGIkOQxnU4fuEHAj1JXQgiJmo/ApzqAt/LWQQiRwFvgkwD8IG0ZhBAZ/AAAD9w/pdPpKYA/SloMISQ6fplOp2ng81LgH+WshRASMcu9flsAGhIWQgiJnuVeXwrAdDqdgn0BhMSddzd7HcCX3YAvI10KISRqXt7+w4O7f5tOp98C+FNEiyGERMe76XT65PYXVnUDlqNZCyEkYr7Y27+5+4Wrq6v/293dfQDgSRQrIoREwl+n02n77he/cAFc0un0BwDfhLokQkgUfJxOp49X/cWmgSDfA/g1lOUQQqLiV1zv5ZWsFYDpdPph0wsJIVrw/c1eXskXMYDbXF1d/e/u7u4vAJ4KXxYhJGyOVvn9t9koAABwdXX1gSJAiHYcTafTH+77pnsFAFiKwEcA/wrgdwEXRggJj18BPLvv5HdZmwVYRTqdfozrNkJmBwhRj4+4x+e/y1YC4JJOp18C+E8/ryWEhMJfp9Ppy21f5EsAgKU10ADLhgmRyTsA5W1O/dv4FgCXdDr9BNclhn8J+ixCiGf+DqAxnU7fBnlIYAFwSafTaVwLwVNwshAhYfALrod5NG639AZBmADc5sY9eHrzHwOGhPjnI643/Y9+zfxNhCIAd7lxEx4D2MWnJiPGDgj5hDuM5y2AKwAfgpr3Xvh/hENXm+CaxHYAAAAASUVORK5CYII=');
266
+ background-repeat: no-repeat;
267
+ background-position: center center;
268
+ background-size: 22px;
269
  }
270
  .seopress-styles #seopress-navbar {
271
  padding: 10px 25px;
272
  height: 40px;
273
  margin: 0 auto;
274
+ width: 55rem;
275
  }
276
  #seopress-header {
277
  margin: 0;
288
  }
289
  #seopress-header #seopress-admin h1 .seopress-info-version {
290
  position: relative;
291
+ left: 190px;
292
  top: -17px;
293
  }
294
  #seopress-header #seopress-admin .wpc-info-version {
337
  }
338
  .seopress-tab {
339
  display: none;
340
+ background: #fff;
341
+ padding: 1.5rem;
342
  }
343
  .seopress-tab.active {
344
  display: block;
409
  .seopress-page-list .seopress-feature, #seopress-notifications-center {
410
  background: #fff;
411
  margin: 20px auto;
412
+ box-shadow: 0px 0px 20px rgba(0,0,0,0.1);
413
  max-width: 45rem;
414
  padding: 1.5rem;
415
  width: 100%;
435
  margin: 0px;
436
  display: block;
437
  }
438
+ .seopress-page-list .seopress-feature h3 {
439
  margin: 0;
440
  font-size: 16px;
441
  font-weight: bold;
442
  }
443
+ .seopress-page-list .seopress-feature h3 .dashicons {
444
  font-size: 16px;
445
  margin-left: 5px;
446
  vertical-align: middle;
447
  }
448
+ #seopress-content .seopress-page-list .seopress-feature a,
449
+ #seopress-notifications-center .seopress-alert .button-primary {
450
+ color: #232323;
451
  text-decoration: none;
452
+ background: #F1F1F1;
453
+ border: none;
454
+ border-radius: 30px;
455
+ padding-right: 20px;
456
+ padding-left: 20px;
457
+ line-height: 34px;
458
+ text-transform: uppercase;
459
+ height: 34px;
460
+ transition: all 300ms linear;
461
+ box-shadow: none;
462
+ text-shadow: none;
463
+ }
464
+ #seopress-content .seopress-page-list .seopress-feature a:hover,
465
+ #seopress-notifications-center .seopress-alert .button-primary:hover {
466
  text-decoration: none;
467
+ color: #FFF;
468
+ background: #232323;
469
+ }
470
+ #seopress-notifications-center .seopress-alert .button-primary {
471
+ float: right;
472
+ margin: 5px 0;
473
  }
474
  #seopress-notifications-center h2 {
475
  margin: 5px 0px 15px 5px;
480
  margin-right: 10px;
481
  }
482
  #seopress-notifications-center .seopress-alert {
483
+ padding: 0;
484
+ display: inline-block;
485
+ margin: 0px 10px 10px 5px;
486
+ border-bottom: 1px solid rgba(224, 224, 224, 1);
487
+ width: calc(100% - 30px);
488
  }
489
  #seopress-notifications-center .seopress-alert p {
490
  display: inline-block;
491
  }
492
+ #seopress-notifications-center .seopress-alert .impact {
493
+ padding: 4px 5px;
494
+ color: #fff;
495
+ text-transform: uppercase;
496
+ font-weight: bold;
497
+ font-size: 10px;
498
+ }
499
+ #seopress-notifications-center .seopress-alert .impact.low {
500
+ background: #F89406;
501
+ }
502
+ #seopress-notifications-center .seopress-alert .impact.medium {
503
+ background: #F9F04C;
504
+ color: #515151;
505
+ }
506
+ #seopress-notifications-center .seopress-alert .impact.high {
507
+ background: #ff4949;
508
  }
509
  #seopress-notifications-center .seopress-alert .dashicons {
510
+ color: #FFC82C;
511
+ }
512
+ #seopress-content .seopress-page-list .seopress-feature .seopress-doc {
513
+ background: none;
514
+ float: right;
515
+ padding: 0;
516
+ width: inherit;
517
+ height: inherit;
518
+ text-align: right;
519
+ }
520
+ #seopress-content .seopress-page-list .seopress-feature .seopress-doc:hover {
521
+ color: #747474;
522
+ background: none;
523
  }
524
  .seopress-option .seopress-table {
525
  background: #FFF none repeat scroll 0% 0%;
540
  font-weight: bold;
541
  background: #f1f1f1;
542
  }
543
+ #seopress-content .feature-state {
544
+ font-style: italic;
545
+ font-size: 12px;
546
+ }
547
+ #seopress-content .feature-state.feature-state-on {
548
+ display: inline;
549
+ }
550
+ #seopress-content .feature-state-on {
551
+ display: inline;
552
+ }
553
+ #seopress-content .feature-state-off {
554
+ display: none;
555
+ }
556
+ .seopress-option .postbox .inside li {
557
+ list-style: square inside;
558
+ padding-left: 5px;
559
+ }
560
+ #tab_seopress_page_speed .inside li {
561
+ list-style: none;
562
+ padding-left: 0;
563
+ }
564
+ .seopress-option .log {
565
+ margin: 0;
566
+ text-transform: uppercase;
567
+ display: inline-block;
568
+ vertical-align: middle;
569
+ padding: 5px;
570
+ color: rgba(19,191,17,1);
571
+ font-style: italic;
572
  }
573
  .seopress-option input[type="text"].seopress-admin-menu-input {
574
  min-width: inherit;
577
  .seopress_page_seopress-import-export .postbox {
578
  width: calc(100% - 20px);
579
  }
580
+ .seopress-option .wrap-tags {
581
+ position: relative;
582
+ display: inline-block;
583
+ width: 100%;
584
+ margin-bottom: 10px;
585
+ }
586
+ .seopress-option .tag-title {
587
+ padding: 3px 5px;
588
+ background: #F1F1F1;
589
+ font-weight: bold;
590
+ position: relative;
591
+ top: 5px;
592
+ left: 0;
593
+ font-size: 11px;
594
+ transition: all 300ms linear;
595
+ cursor: pointer;
596
+ float: left;
597
+ margin-right: 5px;
598
+ user-select: none;
599
+ }
600
+ .seopress-option .tag-title:hover, .seopress-option .tag-title:focus, .seopress-option .tag-title:active {
601
+ background: #232323;
602
+ color: #fff;
603
+ user-select: none;
604
+ }
605
+ .seopress-option .tag-title .dashicons {
606
+ padding: 0;
607
+ height: 16px;
608
+ width: 16px;
609
+ font-size: 16px;
610
+ margin-right: 5px;
611
+ vertical-align: middle;
612
+ }
613
+
614
+ /*************************************************************************************************/
615
+ /* Admin - Dashboard */
616
+ /*************************************************************************************************/
617
+ input.toggle {
618
+ max-height: 0;
619
+ max-width: 0;
620
+ opacity: 0;
621
+ }
622
+ input.toggle + label {
623
+ display: inline-block;
624
+ position: relative;
625
+ box-shadow: inset 0 0 0px 1px #d5d5d5;
626
+ text-indent: -5000px;
627
+ height: 30px;
628
+ width: 50px;
629
+ border-radius: 15px;
630
+ }
631
+ input.toggle + label:before {
632
+ content: "";
633
+ position: absolute;
634
+ display: block;
635
+ height: 30px;
636
+ width: 30px;
637
+ top: 0;
638
+ left: 0;
639
+ border-radius: 15px;
640
+ background: rgba(19,191,17,0);
641
+ -moz-transition: .25s ease-in-out;
642
+ -webkit-transition: .25s ease-in-out;
643
+ transition: .25s ease-in-out;
644
+ }
645
+ input.toggle + label:after {
646
+ content: "";
647
+ position: absolute;
648
+ display: block;
649
+ height: 30px;
650
+ width: 30px;
651
+ top: 0;
652
+ left: 0px;
653
+ border-radius: 15px;
654
+ background: white;
655
+ box-shadow: inset 0 0 0 1px rgba(0,0,0,.2), 0 2px 4px rgba(0,0,0,.2);
656
+ -moz-transition: .25s ease-in-out;
657
+ -webkit-transition: .25s ease-in-out;
658
+ transition: .25s ease-in-out;
659
+ }
660
+ input.toggle[data-toggle="1"] + label:before {
661
+ width: 50px;
662
+ background: rgba(19,191,17,1);
663
+ }
664
+ input.toggle[data-toggle="1"] + label:after {
665
+ left: 20px;
666
+ box-shadow: inset 0 0 0 1px rgba(19,191,17,1), 0 2px 4px rgba(0,0,0,.2);
667
+ }
668
+ #seopress-content .seopress-page-list {
669
+ position: relative;
670
+ }
671
+ #seopress-notice-save {
672
+ position: fixed;
673
+ color: #fff;
674
+ padding: 15px 40px;
675
+ font-size: 14px;
676
+ text-align: center;
677
+ border-radius: 50px;
678
+ background: #4AB866;
679
+ top: 50px;
680
+ right: 20px;
681
+ }
682
+ .seopress_page_seopress-pro-page #wpcontent {
683
+ background: #F4F7FA;
684
+ }
685
+ .seopress-option .wrap h2.nav-tab-wrapper, .seopress-option h1.nav-tab-wrapper, .seopress-option h3.nav-tab-wrapper {
686
+ border-bottom: 1px solid #EEE;
687
+ margin: 0;
688
+ padding-top: 9px;
689
+ padding-bottom: 0;
690
+ line-height: inherit;
691
+ background: none;
692
+ }
693
+ .seopress-option .nav-tab {
694
+ border: 0px solid #ccc;
695
+ border-bottom: none;
696
+ background: none;
697
+ opacity: 0.5;
698
+ transition: opacity 300ms linear;
699
+ }
700
+ .seopress-option .about-wrap h2 .nav-tab-active, .seopress-option .nav-tab-active, .seopress-option .nav-tab-active:hover {
701
+ background-color: #fff;
702
+ border-bottom-color: rgb(35, 40, 45);
703
+ }
704
+ .seopress-option .nav-tab-active, .nav-tab-active:focus, .seopress-option .nav-tab-active:focus:active, .seopress-option .nav-tab-active:hover {
705
+ border-bottom: 2px solid rgb(35, 40, 45);
706
+ background: none;
707
+ color: rgb(35, 40, 45);
708
+ opacity: 1;
709
+ outline: none;
710
+ }
711
+ .seopress-option .nav-tab:hover {
712
+ opacity:1;
713
+ }
714
+ .seopress-option .nav-tab:focus {
715
+ outline: none;
716
+ box-shadow: none;
717
+ }
assets/img/logo-seopress.png CHANGED
Binary file
assets/js/seopress-dashboard.js ADDED
@@ -0,0 +1,212 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ jQuery(document).ready(function(){
2
+ //Titles
3
+ jQuery('#toggle-titles').on('click', function() {
4
+ jQuery('#toggle-titles').attr('data-toggle', jQuery('#toggle-titles').attr('data-toggle') == '1' ? '0' : '1');
5
+ jQuery.ajax({
6
+ method : 'POST',
7
+ url : seopressAjaxToggleFeatures.seopress_toggle_features,
8
+ _ajax_nonce: seopressAjaxToggleFeatures.seopress_nonce,
9
+ data : {
10
+ action: 'seopress_toggle_features',
11
+ feature: 'toggle-titles',
12
+ feature_value: jQuery('#toggle-titles').attr('data-toggle'),
13
+ },
14
+ success : function( data ) {
15
+ jQuery( '#seopress-notice-save' ).css('display', 'block');
16
+ jQuery( '#seopress-notice-save .html' ).html('Titles & metas has been successfully updated!');
17
+ jQuery( '#titles-state' ).toggleClass('feature-state-on');
18
+ jQuery( '#titles-state-default' ).toggleClass('feature-state-off');
19
+ jQuery( '#seopress-notice-save' ).delay(3500).fadeOut();
20
+ },
21
+ });
22
+ });
23
+ //XML Sitemap
24
+ jQuery('#toggle-xml-sitemap').on('click', function() {
25
+ jQuery('#toggle-xml-sitemap').attr('data-toggle', jQuery('#toggle-xml-sitemap').attr('data-toggle') == '1' ? '0' : '1');
26
+ jQuery.ajax({
27
+ method : 'POST',
28
+ url : seopressAjaxToggleFeatures.seopress_toggle_features,
29
+ _ajax_nonce: seopressAjaxToggleFeatures.seopress_nonce,
30
+ data : {
31
+ action: 'seopress_toggle_features',
32
+ feature: 'toggle-xml-sitemap',
33
+ feature_value: jQuery('#toggle-xml-sitemap').attr('data-toggle'),
34
+ },
35
+ success : function( data ) {
36
+ jQuery( '#seopress-notice-save' ).css('display', 'block');
37
+ jQuery( '#seopress-notice-save .html' ).html('XML Sitemap has been successfully updated!');
38
+ jQuery( '#sitemap-state' ).toggleClass('feature-state-on');
39
+ jQuery( '#sitemap-state-default' ).toggleClass('feature-state-off');
40
+ jQuery( '#seopress-notice-save' ).delay(3500).fadeOut();
41
+ },
42
+ });
43
+ });
44
+ //Social
45
+ jQuery('#toggle-social').on('click', function() {
46
+ jQuery('#toggle-social').attr('data-toggle', jQuery('#toggle-social').attr('data-toggle') == '1' ? '0' : '1');
47
+ jQuery.ajax({
48
+ method : 'POST',
49
+ url : seopressAjaxToggleFeatures.seopress_toggle_features,
50
+ _ajax_nonce: seopressAjaxToggleFeatures.seopress_nonce,
51
+ data : {
52
+ action: 'seopress_toggle_features',
53
+ feature: 'toggle-social',
54
+ feature_value: jQuery('#toggle-social').attr('data-toggle'),
55
+ },
56
+ success : function( data ) {
57
+ jQuery( '#seopress-notice-save' ).css('display', 'block');
58
+ jQuery( '#seopress-notice-save .html' ).html('Social has been successfully updated!');
59
+ jQuery( '#social-state' ).toggleClass('feature-state-on');
60
+ jQuery( '#social-state-default' ).toggleClass('feature-state-off');
61
+ jQuery( '#seopress-notice-save' ).delay(3500).fadeOut();
62
+ },
63
+ });
64
+ });
65
+ //Google Analytics
66
+ jQuery('#toggle-google-analytics').on('click', function() {
67
+ jQuery('#toggle-google-analytics').attr('data-toggle', jQuery('#toggle-google-analytics').attr('data-toggle') == '1' ? '0' : '1');
68
+ jQuery.ajax({
69
+ method : 'POST',
70
+ url : seopressAjaxToggleFeatures.seopress_toggle_features,
71
+ _ajax_nonce: seopressAjaxToggleFeatures.seopress_nonce,
72
+ data : {
73
+ action: 'seopress_toggle_features',
74
+ feature: 'toggle-google-analytics',
75
+ feature_value: jQuery('#toggle-google-analytics').attr('data-toggle'),
76
+ },
77
+ success : function( data ) {
78
+ jQuery( '#seopress-notice-save' ).css('display', 'block');
79
+ jQuery( '#seopress-notice-save .html' ).html('Google Analytics has been successfully updated!');
80
+ jQuery( '#analytics-state' ).toggleClass('feature-state-on');
81
+ jQuery( '#analytics-state-default' ).toggleClass('feature-state-off');
82
+ jQuery( '#seopress-notice-save' ).delay(3500).fadeOut();
83
+ },
84
+ });
85
+ });
86
+ //Advanced
87
+ jQuery('#toggle-advanced').on('click', function() {
88
+ jQuery('#toggle-advanced').attr('data-toggle', jQuery('#toggle-advanced').attr('data-toggle') == '1' ? '0' : '1');
89
+ jQuery.ajax({
90
+ method : 'POST',
91
+ url : seopressAjaxToggleFeatures.seopress_toggle_features,
92
+ _ajax_nonce: seopressAjaxToggleFeatures.seopress_nonce,
93
+ data : {
94
+ action: 'seopress_toggle_features',
95
+ feature: 'toggle-advanced',
96
+ feature_value: jQuery('#toggle-advanced').attr('data-toggle'),
97
+ },
98
+ success : function( data ) {
99
+ jQuery( '#seopress-notice-save' ).css('display', 'block');
100
+ jQuery( '#seopress-notice-save .html' ).html('Advanced features has been successfully updated!');
101
+ jQuery( '#advanced-state' ).toggleClass('feature-state-on');
102
+ jQuery( '#advanced-state-default' ).toggleClass('feature-state-off');
103
+ jQuery( '#seopress-notice-save' ).delay(3500).fadeOut();
104
+ },
105
+ });
106
+ });
107
+ //WooCommerce
108
+ jQuery('#toggle-woocommerce').on('click', function() {
109
+ jQuery('#toggle-woocommerce').attr('data-toggle', jQuery('#toggle-woocommerce').attr('data-toggle') == '1' ? '0' : '1');
110
+ jQuery.ajax({
111
+ method : 'POST',
112
+ url : seopressAjaxToggleFeatures.seopress_toggle_features,
113
+ _ajax_nonce: seopressAjaxToggleFeatures.seopress_nonce,
114
+ data : {
115
+ action: 'seopress_toggle_features',
116
+ feature: 'toggle-woocommerce',
117
+ feature_value: jQuery('#toggle-woocommerce').attr('data-toggle'),
118
+ },
119
+ success : function( data ) {
120
+ jQuery( '#seopress-notice-save' ).css('display', 'block');
121
+ jQuery( '#seopress-notice-save .html' ).html('WooCommerce has been successfully updated!');
122
+ jQuery( '#woocommerce-state' ).toggleClass('feature-state-on');
123
+ jQuery( '#woocommerce-state-default' ).toggleClass('feature-state-off');
124
+ jQuery( '#seopress-notice-save' ).delay(3500).fadeOut();
125
+ },
126
+ });
127
+ });
128
+ //Breadcrumbs
129
+ jQuery('#toggle-breadcrumbs').on('click', function() {
130
+ jQuery('#toggle-breadcrumbs').attr('data-toggle', jQuery('#toggle-breadcrumbs').attr('data-toggle') == '1' ? '0' : '1');
131
+ jQuery.ajax({
132
+ method : 'POST',
133
+ url : seopressAjaxToggleFeatures.seopress_toggle_features,
134
+ _ajax_nonce: seopressAjaxToggleFeatures.seopress_nonce,
135
+ data : {
136
+ action: 'seopress_toggle_features',
137
+ feature: 'toggle-breadcrumbs',
138
+ feature_value: jQuery('#toggle-breadcrumbs').attr('data-toggle'),
139
+ },
140
+ success : function( data ) {
141
+ jQuery( '#seopress-notice-save' ).css('display', 'block');
142
+ jQuery( '#seopress-notice-save .html' ).html('Breadcrumbs has been successfully updated!');
143
+ jQuery( '#breadcrumbs-state' ).toggleClass('feature-state-on');
144
+ jQuery( '#breadcrumbs-state-default' ).toggleClass('feature-state-off');
145
+ jQuery( '#seopress-notice-save' ).delay(3500).fadeOut();
146
+ },
147
+ });
148
+ });
149
+ //Robots
150
+ jQuery('#toggle-robots').on('click', function() {
151
+ jQuery('#toggle-robots').attr('data-toggle', jQuery('#toggle-robots').attr('data-toggle') == '1' ? '0' : '1');
152
+ jQuery.ajax({
153
+ method : 'POST',
154
+ url : seopressAjaxToggleFeatures.seopress_toggle_features,
155
+ _ajax_nonce: seopressAjaxToggleFeatures.seopress_nonce,
156
+ data : {
157
+ action: 'seopress_toggle_features',
158
+ feature: 'toggle-robots',
159
+ feature_value: jQuery('#toggle-robots').attr('data-toggle'),
160
+ },
161
+ success : function( data ) {
162
+ jQuery( '#seopress-notice-save' ).css('display', 'block');
163
+ jQuery( '#seopress-notice-save .html' ).html('Robots has been successfully updated!');
164
+ jQuery( '#robots-state' ).toggleClass('feature-state-on');
165
+ jQuery( '#robots-state-default' ).toggleClass('feature-state-off');
166
+ jQuery( '#seopress-notice-save' ).delay(3500).fadeOut();
167
+ },
168
+ });
169
+ });
170
+ //Google News
171
+ jQuery('#toggle-news').on('click', function() {
172
+ jQuery('#toggle-news').attr('data-toggle', jQuery('#toggle-news').attr('data-toggle') == '1' ? '0' : '1');
173
+ jQuery.ajax({
174
+ method : 'POST',
175
+ url : seopressAjaxToggleFeatures.seopress_toggle_features,
176
+ _ajax_nonce: seopressAjaxToggleFeatures.seopress_nonce,
177
+ data : {
178
+ action: 'seopress_toggle_features',
179
+ feature: 'toggle-news',
180
+ feature_value: jQuery('#toggle-news').attr('data-toggle'),
181
+ },
182
+ success : function( data ) {
183
+ jQuery( '#seopress-notice-save' ).css('display', 'block');
184
+ jQuery( '#seopress-notice-save .html' ).html('Google News Sitemap has been successfully updated!');
185
+ jQuery( '#news-state' ).toggleClass('feature-state-on');
186
+ jQuery( '#news-state-default' ).toggleClass('feature-state-off');
187
+ jQuery( '#seopress-notice-save' ).delay(3500).fadeOut();
188
+ },
189
+ });
190
+ });
191
+ //404
192
+ jQuery('#toggle-404').on('click', function() {
193
+ jQuery('#toggle-404').attr('data-toggle', jQuery('#toggle-404').attr('data-toggle') == '1' ? '0' : '1');
194
+ jQuery.ajax({
195
+ method : 'POST',
196
+ url : seopressAjaxToggleFeatures.seopress_toggle_features,
197
+ _ajax_nonce: seopressAjaxToggleFeatures.seopress_nonce,
198
+ data : {
199
+ action: 'seopress_toggle_features',
200
+ feature: 'toggle-404',
201
+ feature_value: jQuery('#toggle-404').attr('data-toggle'),
202
+ },
203
+ success : function( data ) {
204
+ jQuery( '#seopress-notice-save' ).css('display', 'block');
205
+ jQuery( '#seopress-notice-save .html' ).html('Redirections has been successfully updated!');
206
+ jQuery( '#redirections-state' ).toggleClass('feature-state-on');
207
+ jQuery( '#redirections-state-default' ).toggleClass('feature-state-off');
208
+ jQuery( '#seopress-notice-save' ).delay(3500).fadeOut();
209
+ },
210
+ });
211
+ });
212
+ });
assets/js/seopress-tabs.js CHANGED
@@ -20,10 +20,45 @@ jQuery(document).ready(function($) {
20
  jQuery('#seopress-tabs').find('.nav-tab.nav-tab-active').removeClass("nav-tab-active");
21
  jQuery('#'+hash+'-tab').addClass("nav-tab-active");
22
 
23
-
24
  sessionStorage.setItem("seopress_titles_tab", hash);
25
 
26
  jQuery('#seopress-tabs').find('.seopress-tab.active').removeClass("active");
27
  jQuery('#'+hash).addClass("active");
28
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29
  });
20
  jQuery('#seopress-tabs').find('.nav-tab.nav-tab-active').removeClass("nav-tab-active");
21
  jQuery('#'+hash+'-tab').addClass("nav-tab-active");
22
 
 
23
  sessionStorage.setItem("seopress_titles_tab", hash);
24
 
25
  jQuery('#seopress-tabs').find('.seopress-tab.active').removeClass("active");
26
  jQuery('#'+hash).addClass("active");
27
  });
28
+ });
29
+
30
+ jQuery(document).ready(function($) {
31
+ jQuery('#seopress-tag-site-title').click(function() {
32
+ jQuery("#seopress_titles_home_site_title").val(jQuery("#seopress_titles_home_site_title").val() + ' ' + jQuery('#seopress-tag-site-title').attr('data-tag'));
33
+ });
34
+ jQuery('#seopress-tag-site-title-author').click(function() {
35
+ jQuery("#seopress_titles_archive_post_author").val(jQuery("#seopress_titles_archive_post_author").val() + ' ' + jQuery('#seopress-tag-site-title-author').attr('data-tag'));
36
+ });
37
+ jQuery('#seopress-tag-site-title-date').click(function() {
38
+ jQuery("#seopress_titles_archives_date_title").val(jQuery("#seopress_titles_archives_date_title").val() + ' ' + jQuery('#seopress-tag-site-title-date').attr('data-tag'));
39
+ });
40
+ jQuery('#seopress-tag-site-title-search').click(function() {
41
+ jQuery("#seopress_titles_archives_search_title").val(jQuery("#seopress_titles_archives_search_title").val() + ' ' + jQuery('#seopress-tag-site-title-search').attr('data-tag'));
42
+ });
43
+ jQuery('#seopress-tag-site-title-404').click(function() {
44
+ jQuery("#seopress_titles_archives_404_title").val(jQuery("#seopress_titles_archives_404_title").val() + ' ' + jQuery('#seopress-tag-site-title-404').attr('data-tag'));
45
+ });
46
+ jQuery('#seopress-tag-site-desc').click(function() {
47
+ jQuery("#seopress_titles_home_site_title").val(jQuery("#seopress_titles_home_site_title").val() + ' ' + jQuery('#seopress-tag-site-desc').attr('data-tag'));
48
+ });
49
+ jQuery('#seopress-tag-meta-desc').click(function() {
50
+ jQuery("#seopress_titles_home_site_desc").val(jQuery("#seopress_titles_home_site_desc").val() + ' ' + jQuery('#seopress-tag-meta-desc').attr('data-tag'));
51
+ });
52
+ jQuery('#seopress-tag-post-author').click(function() {
53
+ jQuery("#seopress_titles_archive_post_author").val(jQuery("#seopress_titles_archive_post_author").val() + ' ' + jQuery('#seopress-tag-post-author').attr('data-tag'));
54
+ });
55
+ jQuery('#seopress-tag-archive-date').click(function() {
56
+ jQuery("#seopress_titles_archives_date_title").val(jQuery("#seopress_titles_archives_date_title").val() + ' ' + jQuery('#seopress-tag-archive-date').attr('data-tag'));
57
+ });
58
+ jQuery('#seopress-tag-search-keywords').click(function() {
59
+ jQuery("#seopress_titles_archives_search_title").val(jQuery("#seopress_titles_archives_search_title").val() + ' ' + jQuery('#seopress-tag-search-keywords').attr('data-tag'));
60
+ });
61
+ jQuery('.more-tags').click(function() {
62
+ jQuery('#contextual-help-link').click();
63
+ });
64
  });
assets/js/seopress-tabs6.js ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ jQuery(document).ready(function($) {
2
+ if(typeof sessionStorage!='undefined') {
3
+ var seopress_tab_session_storage = sessionStorage.getItem("tab_seopress_google_analytics_enable");
4
+ if (seopress_tab_session_storage) {
5
+ jQuery('#seopress-tabs').find('.nav-tab.nav-tab-active').removeClass("nav-tab-active");
6
+ jQuery('#seopress-tabs').find('.seopress-tab.active').removeClass("active");
7
+
8
+ jQuery('#'+seopress_tab_session_storage+'-tab').addClass("nav-tab-active");
9
+ jQuery('#'+seopress_tab_session_storage).addClass("active");
10
+ } else {
11
+ //Default TAB
12
+ jQuery('#tab_seopress_google_analytics_enable-tab').addClass("nav-tab-active");
13
+ jQuery('#tab_seopress_google_analytics_enable').addClass("active");
14
+ }
15
+ };
16
+ jQuery("#seopress-tabs").find("a.nav-tab").click(function(e){
17
+ e.preventDefault();
18
+ var hash = jQuery(this).attr('href').split('#tab=')[1];
19
+
20
+ jQuery('#seopress-tabs').find('.nav-tab.nav-tab-active').removeClass("nav-tab-active");
21
+ jQuery('#'+hash+'-tab').addClass("nav-tab-active");
22
+
23
+ sessionStorage.setItem("tab_seopress_google_analytics_enable", hash);
24
+
25
+ jQuery('#seopress-tabs').find('.seopress-tab.active').removeClass("active");
26
+ jQuery('#'+hash).addClass("active");
27
+ });
28
+ });
assets/js/seopress-yoast-migrate.js ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ jQuery(document).ready(function(){
2
+ jQuery('#seopress-yoast-migrate').on('click', function() {
3
+ jQuery.ajax({
4
+ method : 'POST',
5
+ url : seopressAjaxYoastMigrate.seopress_yoast_migration,
6
+ _ajax_nonce: seopressAjaxYoastMigrate.seopress_nonce,
7
+ data : {
8
+ action: 'seopress_yoast_migration',
9
+ },
10
+ success : function( data ) {
11
+ jQuery('#seopress-yoast-migrate').removeAttr("disabled");
12
+ jQuery( '.spinner' ).css( "visibility", "hidden" );
13
+ jQuery( '#yoast-migration-tool .log' ).html('Migration completed!');
14
+ },
15
+ });
16
+ });
17
+ });
18
+ jQuery(document).ready(function(){
19
+ jQuery('#seopress-yoast-migrate').on('click', function() {
20
+ jQuery(this).attr("disabled", "disabled");
21
+ jQuery( '.spinner' ).css( "visibility", "visible" );
22
+ jQuery( '.spinner' ).css( "float", "none" );
23
+ jQuery( '#yoast-migration-tool .log' ).html('');
24
+ });
25
+ });
contributors.txt CHANGED
@@ -2,3 +2,7 @@ Great people who contributed to this plugin :
2
 
3
  Developers:
4
  - Benjamin Denis: contact@seopress.org / @wpcloudy
 
 
 
 
2
 
3
  Developers:
4
  - Benjamin Denis: contact@seopress.org / @wpcloudy
5
+
6
+ Beta testers:
7
+ - Mickael Gris: mickael.gris@gmail.com / @mickaelgris
8
+ - Aurélien Denis: contact@wp-alacarte.com / @wpchannel
inc/admin/admin-header.php ADDED
@@ -0,0 +1,63 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ defined( 'ABSPATH' ) or die( 'Please don&rsquo;t call the plugin directly. Thanks :)' );
4
+
5
+ function seopress_admin_header() { ?>
6
+ <div id="seopress-header">
7
+ <div id="seopress-admin">
8
+ <div id="seopress-navbar">
9
+ <h1>
10
+ <span class="screen-reader-text"><?php _e( 'SEOPress', 'wp-seopress' ); ?></span>
11
+ <?php if ( is_plugin_active( 'seopress-pro/seopress-pro.php' ) ) { ?>
12
+ <span class="seopress-info-version">
13
+ <strong>
14
+ <?php _e('PRO', 'wp-seopress'); ?>
15
+ <?php echo SEOPRESSPRO_VERSION; ?>
16
+ </strong>
17
+ </span>
18
+ <?php } else { ?>
19
+ <span class="seopress-info-version"><?php echo SEOPRESS_VERSION; ?></span>
20
+ <?php } ?>
21
+ </h1>
22
+ <div id="seopress-notice">
23
+ <div class="small">
24
+ <span class="dashicons dashicons-wordpress"></span>
25
+ <?php _e( 'You like SEOPress? Don\'t forget to rate it 5 stars!', 'wp-seopress' ); ?>
26
+
27
+ <div class="wporg-ratings rating-stars">
28
+ <a href="//wordpress.org/support/view/plugin-reviews/wp-seopress?rate=1#postform" data-rating="1" title="" target="_blank"><span class="dashicons dashicons-star-filled" style="color:#e6b800 !important;"></span></a>
29
+ <a href="//wordpress.org/support/view/plugin-reviews/wp-seopress?rate=2#postform" data-rating="2" title="" target="_blank"><span class="dashicons dashicons-star-filled" style="color:#e6b800 !important;"></span></a>
30
+ <a href="//wordpress.org/support/view/plugin-reviews/wp-seopress?rate=3#postform" data-rating="3" title="" target="_blank"><span class="dashicons dashicons-star-filled" style="color:#e6b800 !important;"></span></a>
31
+ <a href="//wordpress.org/support/view/plugin-reviews/wp-seopress?rate=4#postform" data-rating="4" title="" target="_blank"><span class="dashicons dashicons-star-filled" style="color:#e6b800 !important;"></span></a>
32
+ <a href="//wordpress.org/support/view/plugin-reviews/wp-seopress?rate=5#postform" data-rating="5" title="" target="_blank"><span class="dashicons dashicons-star-filled" style="color:#e6b800 !important;"></span></a>
33
+ </div>
34
+ <script>
35
+ jQuery(document).ready( function($) {
36
+ $('.rating-stars').find('a').hover(
37
+ function() {
38
+ $(this).nextAll('a').children('span').removeClass('dashicons-star-filled').addClass('dashicons-star-empty');
39
+ $(this).prevAll('a').children('span').removeClass('dashicons-star-empty').addClass('dashicons-star-filled');
40
+ $(this).children('span').removeClass('dashicons-star-empty').addClass('dashicons-star-filled');
41
+ }, function() {
42
+ var rating = $('input#rating').val();
43
+ if (rating) {
44
+ var list = $('.rating-stars a');
45
+ list.children('span').removeClass('dashicons-star-filled').addClass('dashicons-star-empty');
46
+ list.slice(0, rating).children('span').removeClass('dashicons-star-empty').addClass('dashicons-star-filled');
47
+ }
48
+ }
49
+ );
50
+ });
51
+ </script>
52
+ </div>
53
+ <div class="small">
54
+ <a href="http://twitter.com/wpcloudy" target="_blank"><div class="dashicons dashicons-twitter"></div></a>
55
+ <a href="https://www.seopress.org/" target="_blank"><div class="dashicons dashicons-info"></div></a>
56
+ &nbsp;
57
+ <a href="https://www.seopress.org/support" target="_blank"><?php _e( 'Support', 'wp-seopress' ); ?></a>
58
+ </div>
59
+ </div>
60
+ </div>
61
+ </div>
62
+ </div>
63
+ <?php } ?>
inc/admin/admin-metaboxes.php CHANGED
@@ -8,11 +8,13 @@ defined( 'ABSPATH' ) or die( 'Please don&rsquo;t call the plugin directly. Thank
8
  add_action('add_meta_boxes','seopress_init_metabox');
9
  function seopress_init_metabox(){
10
  foreach (seopress_get_post_types() as $key => $value) {
11
- add_meta_box('seopress_cpt', __('SEOPress','wp-seopress'), 'seopress_cpt', $key, 'advanced');
12
  }
 
13
  }
14
 
15
  function seopress_cpt($post){
 
16
  $seopress_titles_title = get_post_meta($post->ID,'_seopress_titles_title',true);
17
  $seopress_titles_desc = get_post_meta($post->ID,'_seopress_titles_desc',true);
18
  $seopress_robots_index = get_post_meta($post->ID,'_seopress_robots_index',true);
@@ -31,7 +33,10 @@ function seopress_cpt($post){
31
  $seopress_redirections_enabled = get_post_meta($post->ID,'_seopress_redirections_enabled',true);
32
  $seopress_redirections_type = get_post_meta($post->ID,'_seopress_redirections_type',true);
33
  $seopress_redirections_value = get_post_meta($post->ID,'_seopress_redirections_value',true);
34
-
 
 
 
35
  function seopress_titles_title($seopress_titles_title) {
36
  if ($seopress_titles_title !='') {
37
  return $seopress_titles_title;
@@ -75,15 +80,23 @@ function seopress_cpt($post){
75
  }
76
  }
77
 
78
- echo '<div id="seopress-tabs">
79
- <ul>
80
- <li><a href="#tabs-1"><span class="dashicons dashicons-editor-table"></span>'. __( 'Titles settings', 'wp-seopress' ) .'</a></li>
81
- <li><a href="#tabs-2"><span class="dashicons dashicons-admin-generic"></span>'. __( 'Advanced', 'wp-seopress' ) .'</a></li>
82
- <li><a href="#tabs-3"><span class="dashicons dashicons-share"></span>'. __( 'Social', 'wp-seopress' ) .'</a></li>
83
- <li><a href="#tabs-4"><span class="dashicons dashicons-admin-links"></span>'. __( 'Redirections', 'wp-seopress' ) .'</a></li>
84
- </ul>
 
 
 
 
 
 
 
85
 
86
- <div id="tabs-1">
 
87
  <div class="box-left">
88
  <p>
89
  <label for="seopress_titles_title_meta">'. __( 'Title', 'wp-seopress' ) .'</label>
@@ -122,37 +135,37 @@ function seopress_cpt($post){
122
  <label for="seopress_robots_index_meta">
123
  <input type="checkbox" name="seopress_robots_index" id="seopress_robots_index_meta" value="yes" '. checked( $seopress_robots_index, 'yes', false ) .' />
124
  '. __( 'noindex', 'wp-seopress' ) .'
125
- </label>
126
  </p>
127
  <p>
128
  <label for="seopress_robots_follow_meta">
129
  <input type="checkbox" name="seopress_robots_follow" id="seopress_robots_follow_meta" value="yes" '. checked( $seopress_robots_follow, 'yes', false ) .' />
130
  '. __( 'nofollow', 'wp-seopress' ) .'
131
- </label>
132
  </p>
133
  <p>
134
  <label for="seopress_robots_odp_meta">
135
  <input type="checkbox" name="seopress_robots_odp" id="seopress_robots_odp_meta" value="yes" '. checked( $seopress_robots_odp, 'yes', false ) .' />
136
  '. __( 'noodp', 'wp-seopress' ) .'
137
- </label>
138
  </p>
139
  <p>
140
  <label for="seopress_robots_imageindex_meta">
141
  <input type="checkbox" name="seopress_robots_imageindex" id="seopress_robots_imageindex_meta" value="yes" '. checked( $seopress_robots_imageindex, 'yes', false ) .' />
142
  '. __( 'noimageindex', 'wp-seopress' ) .'
143
- </label>
144
  </p>
145
  <p>
146
  <label for="seopress_robots_archive_meta">
147
  <input type="checkbox" name="seopress_robots_archive" id="seopress_robots_archive_meta" value="yes" '. checked( $seopress_robots_archive, 'yes', false ) .' />
148
  '. __( 'noarchive', 'wp-seopress' ) .'
149
- </label>
150
  </p>
151
  <p>
152
  <label for="seopress_robots_snippet_meta">
153
  <input type="checkbox" name="seopress_robots_snippet" id="seopress_robots_snippet_meta" value="yes" '. checked( $seopress_robots_snippet, 'yes', false ) .' />
154
  '. __( 'nosnippet', 'wp-seopress' ) .'
155
- </label>
156
  </p>
157
  <p>
158
  <label for="seopress_robots_canonical_meta">'. __( 'Canonical URL', 'wp-seopress' ) .'</label>
@@ -171,6 +184,7 @@ function seopress_cpt($post){
171
  </p>
172
  <p>
173
  <label for="seopress_social_fb_img_meta">'. __( 'Facebook Thumbnail', 'wp-seopress' ) .'</label>
 
174
  <input id="seopress_social_fb_img_meta" type="text" name="seopress_social_fb_img" placeholder="'.__('Select your default thumbnail','wp-seopress').'" value="'.$seopress_social_fb_img.'" />
175
  <input id="seopress_social_fb_img_upload" class="button" type="button" value="'.__('Upload an Image','wp-seopress').'" />
176
  </p>
@@ -186,11 +200,14 @@ function seopress_cpt($post){
186
  </p>
187
  <p>
188
  <label for="seopress_social_twitter_img_meta">'. __( 'Twitter Thumbnail', 'wp-seopress' ) .'</label>
 
189
  <input id="seopress_social_twitter_img_meta" type="text" name="seopress_social_twitter_img" placeholder="'.__('Select your default thumbnail','wp-seopress').'" value="'.$seopress_social_twitter_img.'" />
190
  <input id="seopress_social_twitter_img_upload" class="button" type="button" value="'.__('Upload an Image','wp-seopress').'" />
191
  </p>
192
- </div>
193
- <div id="tabs-4">
 
 
194
  <p>
195
  <label for="seopress_redirections_enabled_meta" id="seopress_redirections_enabled">
196
  <input type="checkbox" name="seopress_redirections_enabled" id="seopress_redirections_enabled_meta" value="yes" '. checked( $seopress_redirections_enabled, 'yes', false ) .' />
@@ -211,8 +228,37 @@ function seopress_cpt($post){
211
  }
212
  echo '<a href="" id="seopress_redirections_value_live" class="button" target="_blank" style="display: none">'.__('Test your URL','wp-seopress').'</a>
213
  </p>
214
- </div>
215
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
216
  ';
217
  }
218
 
@@ -287,6 +333,17 @@ function seopress_save_metabox($post_id){
287
  } else {
288
  delete_post_meta( $post_id, '_seopress_redirections_enabled', '' );
289
  }
 
 
 
 
 
 
 
 
 
 
 
290
  }
291
  }
292
  ?>
8
  add_action('add_meta_boxes','seopress_init_metabox');
9
  function seopress_init_metabox(){
10
  foreach (seopress_get_post_types() as $key => $value) {
11
+ add_meta_box('seopress_cpt', __('SEO','wp-seopress'), 'seopress_cpt', $key, 'advanced');
12
  }
13
+ add_meta_box('seopress_cpt', __('SEO','wp-seopress'), 'seopress_cpt', 'seopress_404', 'advanced');
14
  }
15
 
16
  function seopress_cpt($post){
17
+ global $typenow;
18
  $seopress_titles_title = get_post_meta($post->ID,'_seopress_titles_title',true);
19
  $seopress_titles_desc = get_post_meta($post->ID,'_seopress_titles_desc',true);
20
  $seopress_robots_index = get_post_meta($post->ID,'_seopress_robots_index',true);
33
  $seopress_redirections_enabled = get_post_meta($post->ID,'_seopress_redirections_enabled',true);
34
  $seopress_redirections_type = get_post_meta($post->ID,'_seopress_redirections_type',true);
35
  $seopress_redirections_value = get_post_meta($post->ID,'_seopress_redirections_value',true);
36
+ $seopress_news_disabled = get_post_meta($post->ID,'_seopress_news_disabled',true);
37
+ $seopress_news_genres = get_post_meta($post->ID,'_seopress_news_genres',true);
38
+ $seopress_news_keyboard = get_post_meta($post->ID,'_seopress_news_keyboard',true);
39
+
40
  function seopress_titles_title($seopress_titles_title) {
41
  if ($seopress_titles_title !='') {
42
  return $seopress_titles_title;
80
  }
81
  }
82
 
83
+ echo '<div id="seopress-tabs">';
84
+ echo'<ul>';
85
+ if ("seopress_404" != $typenow) {
86
+ echo '<li><a href="#tabs-1"><span class="dashicons dashicons-editor-table"></span>'. __( 'Titles settings', 'wp-seopress' ) .'</a></li>
87
+ <li><a href="#tabs-2"><span class="dashicons dashicons-admin-generic"></span>'. __( 'Advanced', 'wp-seopress' ) .'</a></li>
88
+ <li><a href="#tabs-3"><span class="dashicons dashicons-share"></span>'. __( 'Social', 'wp-seopress' ) .'</a></li>';
89
+ }
90
+ echo '<li><a href="#tabs-4"><span class="dashicons dashicons-admin-links"></span>'. __( 'Redirections', 'wp-seopress' ) .'</a></li>';
91
+ if (is_plugin_active( 'wp-seopress-pro/seopress-pro.php' )) {
92
+ if ("seopress_404" != $typenow) {
93
+ echo '<li><a href="#tabs-5"><span class="dashicons dashicons-admin-post"></span>'. __( 'Google News', 'wp-seopress-pro' ) .'</a></li>';
94
+ }
95
+ }
96
+ echo '</ul>';
97
 
98
+ if ("seopress_404" != $typenow) {
99
+ echo '<div id="tabs-1">
100
  <div class="box-left">
101
  <p>
102
  <label for="seopress_titles_title_meta">'. __( 'Title', 'wp-seopress' ) .'</label>
135
  <label for="seopress_robots_index_meta">
136
  <input type="checkbox" name="seopress_robots_index" id="seopress_robots_index_meta" value="yes" '. checked( $seopress_robots_index, 'yes', false ) .' />
137
  '. __( 'noindex', 'wp-seopress' ) .'
138
+ </label><span class="dashicons dashicons-info" title="'.__('Do not display all pages of the site in Google search results and do not display "Cached" links in search results.','wp-seopress').'"></span>
139
  </p>
140
  <p>
141
  <label for="seopress_robots_follow_meta">
142
  <input type="checkbox" name="seopress_robots_follow" id="seopress_robots_follow_meta" value="yes" '. checked( $seopress_robots_follow, 'yes', false ) .' />
143
  '. __( 'nofollow', 'wp-seopress' ) .'
144
+ </label><span class="dashicons dashicons-info" title="'.__('Do not follow links for all pages.','wp-seopress').'"></span>
145
  </p>
146
  <p>
147
  <label for="seopress_robots_odp_meta">
148
  <input type="checkbox" name="seopress_robots_odp" id="seopress_robots_odp_meta" value="yes" '. checked( $seopress_robots_odp, 'yes', false ) .' />
149
  '. __( 'noodp', 'wp-seopress' ) .'
150
+ </label><span class="dashicons dashicons-info" title="'.__('Do not use Open Directory project metadata for titles or excerpts for all pages.','wp-seopress').'"></span>
151
  </p>
152
  <p>
153
  <label for="seopress_robots_imageindex_meta">
154
  <input type="checkbox" name="seopress_robots_imageindex" id="seopress_robots_imageindex_meta" value="yes" '. checked( $seopress_robots_imageindex, 'yes', false ) .' />
155
  '. __( 'noimageindex', 'wp-seopress' ) .'
156
+ </label><span class="dashicons dashicons-info" title="'.__('Do not index images from the entire site.','wp-seopress').'"></span>
157
  </p>
158
  <p>
159
  <label for="seopress_robots_archive_meta">
160
  <input type="checkbox" name="seopress_robots_archive" id="seopress_robots_archive_meta" value="yes" '. checked( $seopress_robots_archive, 'yes', false ) .' />
161
  '. __( 'noarchive', 'wp-seopress' ) .'
162
+ </label><span class="dashicons dashicons-info" title="'.__('Do not display a "Cached" link in the Google search results.','wp-seopress').'"></span>
163
  </p>
164
  <p>
165
  <label for="seopress_robots_snippet_meta">
166
  <input type="checkbox" name="seopress_robots_snippet" id="seopress_robots_snippet_meta" value="yes" '. checked( $seopress_robots_snippet, 'yes', false ) .' />
167
  '. __( 'nosnippet', 'wp-seopress' ) .'
168
+ </label><span class="dashicons dashicons-info" title="'.__('Do not display a description in the Google search results for all pages.','wp-seopress').'"></span>
169
  </p>
170
  <p>
171
  <label for="seopress_robots_canonical_meta">'. __( 'Canonical URL', 'wp-seopress' ) .'</label>
184
  </p>
185
  <p>
186
  <label for="seopress_social_fb_img_meta">'. __( 'Facebook Thumbnail', 'wp-seopress' ) .'</label>
187
+ <span class="advise">'. __('Minimum size: 200x200px', 'wp-seopress') .'</span>
188
  <input id="seopress_social_fb_img_meta" type="text" name="seopress_social_fb_img" placeholder="'.__('Select your default thumbnail','wp-seopress').'" value="'.$seopress_social_fb_img.'" />
189
  <input id="seopress_social_fb_img_upload" class="button" type="button" value="'.__('Upload an Image','wp-seopress').'" />
190
  </p>
200
  </p>
201
  <p>
202
  <label for="seopress_social_twitter_img_meta">'. __( 'Twitter Thumbnail', 'wp-seopress' ) .'</label>
203
+ <span class="advise">'. __('Minimum size: 160x160px', 'wp-seopress') .'</span>
204
  <input id="seopress_social_twitter_img_meta" type="text" name="seopress_social_twitter_img" placeholder="'.__('Select your default thumbnail','wp-seopress').'" value="'.$seopress_social_twitter_img.'" />
205
  <input id="seopress_social_twitter_img_upload" class="button" type="button" value="'.__('Upload an Image','wp-seopress').'" />
206
  </p>
207
+ </div>';
208
+ }
209
+
210
+ echo '<div id="tabs-4">
211
  <p>
212
  <label for="seopress_redirections_enabled_meta" id="seopress_redirections_enabled">
213
  <input type="checkbox" name="seopress_redirections_enabled" id="seopress_redirections_enabled_meta" value="yes" '. checked( $seopress_redirections_enabled, 'yes', false ) .' />
228
  }
229
  echo '<a href="" id="seopress_redirections_value_live" class="button" target="_blank" style="display: none">'.__('Test your URL','wp-seopress').'</a>
230
  </p>
231
+ </div>';
232
+ if (is_plugin_active( 'wp-seopress-pro/seopress-pro.php' )) {
233
+ if ("seopress_404" != $typenow) {
234
+ echo '<div id="tabs-5">
235
+ <p>
236
+ <label for="seopress_news_disabled_meta" id="seopress_news_disabled">
237
+ <input type="checkbox" name="seopress_news_disabled" id="seopress_news_disabled_meta" value="yes" '. checked( $seopress_news_disabled, 'yes', false ) .' />
238
+ '. __( 'Exclude this post from Google News Sitemap?', 'wp-seopress' ) .'
239
+ </label>
240
+ </p>
241
+ <p>
242
+ <label for="seopress_news_genres_meta">'. __( 'Google News Genres', 'wp-seopress' ) .'</label>
243
+ <select name="seopress_news_genres">
244
+ <option ' . selected( 'none', $seopress_news_genres, false ) . ' value="none">'. __( 'None', 'wp-seopress' ) .'</option>
245
+ <option ' . selected( 'pressrelease', $seopress_news_genres, false ) . ' value="pressrelease">'. __( 'Press Release', 'wp-seopress' ) .'</option>
246
+ <option ' . selected( 'satire', $seopress_news_genres, false ) . ' value="satire">'. __( 'Satire', 'wp-seopress' ) .'</option>
247
+ <option ' . selected( 'blog', $seopress_news_genres, false ) . ' value="blog">'. __( 'Blog', 'wp-seopress' ) .'</option>
248
+ <option ' . selected( 'oped', $seopress_news_genres, false ) . ' value="oped">'. __( 'OpEd', 'wp-seopress' ) .'</option>
249
+ <option ' . selected( 'opinion', $seopress_news_genres, false ) . ' value="opinion">'. __( 'Opinion', 'wp-seopress' ) .'</option>
250
+ <option ' . selected( 'usergenerated', $seopress_news_genres, false ) . ' value="usergenerated">'. __( 'UserGenerated', 'wp-seopress' ) .'</option>
251
+ </select>
252
+ </p>
253
+ <p>
254
+ <label for="seopress_news_keyboard_meta" id="seopress_news_keyboard">
255
+ '. __( 'Google News Keywords <em>(max recommended limit: 12)</em>', 'wp-seopress' ) .'</label>
256
+ <input id="seopress_news_keyboard_meta" type="text" name="seopress_news_keyboard" placeholder="'.__('Enter your Google News Keywords','wp-seopress').'" value="'.$seopress_news_keyboard.'" />
257
+ </p>
258
+ </div>';
259
+ }
260
+ }
261
+ echo '</div>
262
  ';
263
  }
264
 
333
  } else {
334
  delete_post_meta( $post_id, '_seopress_redirections_enabled', '' );
335
  }
336
+ if( isset( $_POST[ 'seopress_news_disabled' ] ) ) {
337
+ update_post_meta( $post_id, '_seopress_news_disabled', 'yes' );
338
+ } else {
339
+ delete_post_meta( $post_id, '_seopress_news_disabled', '' );
340
+ }
341
+ if(isset($_POST['seopress_news_genres'])){
342
+ update_post_meta($post_id, '_seopress_news_genres', $_POST['seopress_news_genres']);
343
+ }
344
+ if(isset($_POST['seopress_news_keyboard'])){
345
+ update_post_meta($post_id, '_seopress_news_keyboard', esc_html($_POST['seopress_news_keyboard']));
346
+ }
347
  }
348
  }
349
  ?>
inc/admin/admin.php CHANGED
@@ -14,6 +14,7 @@ class seopress_options
14
  */
15
  public function __construct() {
16
  add_action( 'admin_menu', array( $this, 'add_plugin_page' ), 10 );
 
17
  add_action( 'admin_init', array( $this, 'page_init' ) );
18
  }
19
 
@@ -25,15 +26,151 @@ class seopress_options
25
  delete_option($this->seopress_options);
26
  }
27
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28
  /**
29
  * Add options page
30
  */
31
  public function add_plugin_page()
32
  {
33
- add_menu_page('SEOPress Option Page', 'SEOPress', 'manage_options', 'seopress-option', array( $this, 'create_admin_page' ), 'dashicons-admin-generic', 90);
34
  $seopress_titles_help_tab = add_submenu_page('seopress-option', __('Titles & Metas','wp-seopress'), __('Titles & Metas','wp-seopress'), 'manage_options', 'seopress-titles', array( $this, 'seopress_titles_page' ));
35
  add_submenu_page('seopress-option', __('XML Sitemap','wp-seopress'), __('XML Sitemap','wp-seopress'), 'manage_options', 'seopress-xml-sitemap', array( $this, 'seopress_xml_sitemap_page' ));
36
  add_submenu_page('seopress-option', __('Social','wp-seopress'), __('Social','wp-seopress'), 'manage_options', 'seopress-social', array( $this, 'seopress_social_page' ));
 
37
  add_submenu_page('seopress-option', __('Advanced','wp-seopress'), __('Advanced','wp-seopress'), 'manage_options', 'seopress-advanced', array( $this, 'seopress_advanced_page' ));
38
  add_submenu_page('seopress-option', __('Import / Export / Reset settings','wp-seopress'), __('Import / Export / Reset','wp-seopress'), 'manage_options', 'seopress-import-export', array( $this,'seopress_import_export_page'));
39
 
@@ -56,6 +193,8 @@ class seopress_options
56
  <li><span>'.__('%%term_description%%','wp-seopress').'</span>'.__('Term description','wp-seopress').'</li>
57
  <li><span>'.__('%%search_keywords%%','wp-seopress').'</span>'.__('Search keywords','wp-seopress').'</li>
58
  <li><span>'.__('%%current_pagination%%','wp-seopress').'</span>'.__('Current number page','wp-seopress').'</li>
 
 
59
  </ul>
60
  ';
61
 
@@ -71,6 +210,9 @@ class seopress_options
71
 
72
  function seopress_titles_page(){
73
  $this->options = get_option( 'seopress_titles_option_name' );
 
 
 
74
  ?>
75
  <form method="post" action="options.php" class="seopress-option">
76
  <?php
@@ -83,7 +225,7 @@ class seopress_options
83
  global $wp_version, $title;
84
  $current_tab = '';
85
  $tag = version_compare( $wp_version, '4.4' ) >= 0 ? 'h1' : 'h2';
86
- echo '<'.$tag.'>'.$title.'</'.$tag.'>';
87
  settings_fields( 'seopress_titles_option_group' );
88
  ?>
89
 
@@ -93,8 +235,8 @@ class seopress_options
93
  $plugin_settings_tabs = array(
94
  'tab_seopress_titles_home' => __( "Home", "wp-seopress" ),
95
  'tab_seopress_titles_single' => __( "Single Post Types", "wp-seopress" ),
96
- 'tab_seopress_titles_tax' => __( "Taxonomies", "wp-seopress" ),
97
  'tab_seopress_titles_archives' => __( "Archives", "wp-seopress" ),
 
98
  'tab_seopress_titles_advanced' => __( "Advanced", "wp-seopress" ),
99
  );
100
 
@@ -106,8 +248,8 @@ class seopress_options
106
  ?>
107
  <div class="seopress-tab <?php if ($current_tab == 'tab_seopress_titles_home') { echo 'active'; } ?>" id="tab_seopress_titles_home"><?php do_settings_sections( 'seopress-settings-admin-titles-home' ); ?></div>
108
  <div class="seopress-tab <?php if ($current_tab == 'tab_seopress_titles_single') { echo 'active'; } ?>" id="tab_seopress_titles_single"><?php do_settings_sections( 'seopress-settings-admin-titles-single' ); ?></div>
109
- <div class="seopress-tab <?php if ($current_tab == 'tab_seopress_titles_tax') { echo 'active'; } ?>" id="tab_seopress_titles_tax"><?php do_settings_sections( 'seopress-settings-admin-titles-tax' ); ?></div>
110
  <div class="seopress-tab <?php if ($current_tab == 'tab_seopress_titles_archives') { echo 'active'; } ?>" id="tab_seopress_titles_archives"><?php do_settings_sections( 'seopress-settings-admin-titles-archives' ); ?></div>
 
111
  <div class="seopress-tab <?php if ($current_tab == 'tab_seopress_titles_advanced') { echo 'active'; } ?>" id="tab_seopress_titles_advanced"><?php do_settings_sections( 'seopress-settings-admin-titles-advanced' ); ?></div>
112
  </div>
113
 
@@ -118,13 +260,16 @@ class seopress_options
118
 
119
  function seopress_xml_sitemap_page(){
120
  $this->options = get_option( 'seopress_xml_sitemap_option_name' );
 
 
 
121
  ?>
122
- <form method="post" action="options.php" class="seopress-option">
123
  <?php
124
  global $wp_version, $title;
125
  $current_tab = '';
126
  $tag = version_compare( $wp_version, '4.4' ) >= 0 ? 'h1' : 'h2';
127
- echo '<'.$tag.'>'.$title.'</'.$tag.'>';
128
  settings_fields( 'seopress_xml_sitemap_option_group' );
129
  ?>
130
 
@@ -147,7 +292,6 @@ class seopress_options
147
  <div class="seopress-tab <?php if ($current_tab == 'tab_seopress_xml_sitemap_post_types') { echo 'active'; } ?>" id="tab_seopress_xml_sitemap_post_types"><?php do_settings_sections( 'seopress-settings-admin-xml-sitemap-post-types' ); ?></div>
148
  <div class="seopress-tab <?php if ($current_tab == 'tab_seopress_xml_sitemap_taxonomies') { echo 'active'; } ?>" id="tab_seopress_xml_sitemap_taxonomies"><?php do_settings_sections( 'seopress-settings-admin-xml-sitemap-taxonomies' ); ?></div>
149
  </div>
150
-
151
  <?php submit_button(); ?>
152
  </form>
153
  <?php
@@ -155,13 +299,16 @@ class seopress_options
155
 
156
  function seopress_social_page(){
157
  $this->options = get_option( 'seopress_social_option_name' );
 
 
 
158
  ?>
159
  <form method="post" action="options.php" class="seopress-option">
160
  <?php
161
  global $wp_version, $title;
162
  $current_tab = '';
163
  $tag = version_compare( $wp_version, '4.4' ) >= 0 ? 'h1' : 'h2';
164
- echo '<'.$tag.'>'.$title.'</'.$tag.'>';
165
  settings_fields( 'seopress_social_option_group' );
166
  ?>
167
 
@@ -192,8 +339,51 @@ class seopress_options
192
  <?php
193
  }
194
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
195
  function seopress_advanced_page(){
196
  $this->options = get_option( 'seopress_advanced_option_name' );
 
 
 
197
  ?>
198
  <form method="post" action="options.php" class="seopress-option">
199
  <?php
@@ -201,7 +391,7 @@ class seopress_options
201
  global $wp_version, $title;
202
  $current_tab = '';
203
  $tag = version_compare( $wp_version, '4.4' ) >= 0 ? 'h1' : 'h2';
204
- echo '<'.$tag.'>'.$title.'</'.$tag.'>';
205
  settings_fields( 'seopress_advanced_option_group' );
206
  ?>
207
 
@@ -210,6 +400,7 @@ class seopress_options
210
 
211
  $plugin_settings_tabs = array(
212
  'tab_seopress_advanced_advanced' => __( "Advanced", "wp-seopress" ),
 
213
  );
214
 
215
  echo '<h2 class="nav-tab-wrapper">';
@@ -219,6 +410,7 @@ class seopress_options
219
  echo '</h2>';
220
  ?>
221
  <div class="seopress-tab <?php if ($current_tab == 'tab_seopress_advanced_advanced') { echo 'active'; } ?>" id="tab_seopress_advanced_advanced"><?php do_settings_sections( 'seopress-settings-admin-advanced-advanced' ); ?></div>
 
222
  </div>
223
 
224
  <?php submit_button(); ?>
@@ -228,59 +420,81 @@ class seopress_options
228
 
229
  function seopress_import_export_page(){
230
  $this->options = get_option( 'seopress_import_export_option_name' );
 
 
 
231
  ?>
232
- <?php global $wp_version, $title;
233
- $tag = version_compare( $wp_version, '4.4' ) >= 0 ? 'h1' : 'h2';
234
- echo '<'.$tag.'>'.$title.'</'.$tag.'>';
235
- ?>
236
- <h3><span><?php _e( 'Import / Export Settings', 'wp-seopress' ); ?></span></h3>
237
- <?php print __('Import / Export SEOPress settings from site to site', 'wp-seopress'); ?>
238
- <div class="metabox-holder">
239
- <div class="postbox">
240
- <h3><span><?php _e( 'Export Settings', 'wp-seopress' ); ?></span></h3>
241
- <div class="inside">
242
- <p><?php _e( 'Export the plugin settings for this site as a .json file. This allows you to easily import the configuration into another site.', 'wp-seopress' ); ?></p>
243
- <form method="post">
244
- <p><input type="hidden" name="seopress_action" value="export_settings" /></p>
245
- <p>
246
- <?php wp_nonce_field( 'seopress_export_nonce', 'seopress_export_nonce' ); ?>
247
- <?php submit_button( __( 'Export', 'wp-seopress' ), 'secondary', 'submit', false ); ?>
248
- </p>
249
- </form>
250
- </div><!-- .inside -->
251
- </div><!-- .postbox -->
252
-
253
- <div class="postbox">
254
- <h3><span><?php _e( 'Import Settings', 'wp-seopress' ); ?></span></h3>
255
- <div class="inside">
256
- <p><?php _e( 'Import the plugin settings from a .json file. This file can be obtained by exporting the settings on another site using the form above.', 'wp-seopress' ); ?></p>
257
- <form method="post" enctype="multipart/form-data">
258
- <p>
259
- <input type="file" name="import_file"/>
260
- </p>
261
- <p>
262
- <input type="hidden" name="seopress_action" value="import_settings" />
263
- <?php wp_nonce_field( 'seopress_import_nonce', 'seopress_import_nonce' ); ?>
264
- <?php submit_button( __( 'Import', 'wp-seopress' ), 'secondary', 'submit', false ); ?>
265
- </p>
266
- </form>
267
- </div><!-- .inside -->
268
- </div><!-- .postbox -->
269
-
270
- <div class="postbox">
271
- <h3><span><?php _e( 'Reset All Settings', 'wp-seopress' ); ?></span></h3>
272
- <div class="inside">
273
- <p style="color:red"><?php _e( '<strong>WARNING:</strong> Delete all options related to SEOPress in your database.', 'wp-seopress' ); ?></p>
274
- <form method="post" enctype="multipart/form-data">
275
- <p>
276
- <input type="hidden" name="seopress_action" value="reset_settings" />
277
- <?php wp_nonce_field( 'seopress_reset_nonce', 'seopress_reset_nonce' ); ?>
278
- <?php submit_button( __( 'Reset settings', 'wp-seopress' ), 'secondary', 'submit', false ); ?>
279
- </p>
280
- </form>
281
- </div><!-- .inside -->
282
- </div><!-- .postbox -->
283
- </div><!-- .metabox-holder -->
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
284
  <?php
285
  }
286
 
@@ -292,103 +506,101 @@ class seopress_options
292
 
293
  // Set class property
294
  $this->options = get_option( 'seopress_option_name' );
 
 
295
  ?>
296
- <div id="seopress-header">
297
- <div id="seopress-admin">
298
- <div id="seopress-navbar">
299
- <h1>
300
- <span class="screen-reader-text"><?php _e( 'SEOPress', 'wp-seopress' ); ?></span>
301
- <?php if ( is_plugin_active( 'seopress-pro/seopress-pro.php' ) ) { ?>
302
- <span class="seopress-info-version">
303
- <strong>
304
- <?php _e('PRO', 'wp-seopress'); ?>
305
- <?php echo SEOPRESSPRO_VERSION; ?>
306
- </strong>
307
- </span>
308
- <?php } else { ?>
309
- <span class="seopress-info-version"><?php echo SEOPRESS_VERSION; ?></span>
310
- <?php } ?>
311
- </h1>
312
- <div id="seopress-notice">
313
- <div class="small">
314
- <span class="dashicons dashicons-wordpress"></span>
315
- <?php _e( 'You like SEOPress? Don\'t forget to rate it 5 stars!', 'wp-seopress' ); ?>
316
-
317
- <div class="wporg-ratings rating-stars">
318
- <a href="//wordpress.org/support/view/plugin-reviews/seopress?rate=1#postform" data-rating="1" title="" target="_blank"><span class="dashicons dashicons-star-filled" style="color:#e6b800 !important;"></span></a>
319
- <a href="//wordpress.org/support/view/plugin-reviews/seopress?rate=2#postform" data-rating="2" title="" target="_blank"><span class="dashicons dashicons-star-filled" style="color:#e6b800 !important;"></span></a>
320
- <a href="//wordpress.org/support/view/plugin-reviews/seopress?rate=3#postform" data-rating="3" title="" target="_blank"><span class="dashicons dashicons-star-filled" style="color:#e6b800 !important;"></span></a>
321
- <a href="//wordpress.org/support/view/plugin-reviews/seopress?rate=4#postform" data-rating="4" title="" target="_blank"><span class="dashicons dashicons-star-filled" style="color:#e6b800 !important;"></span></a>
322
- <a href="//wordpress.org/support/view/plugin-reviews/seopress?rate=5#postform" data-rating="5" title="" target="_blank"><span class="dashicons dashicons-star-filled" style="color:#e6b800 !important;"></span></a>
323
- </div>
324
- <script>
325
- jQuery(document).ready( function($) {
326
- $('.rating-stars').find('a').hover(
327
- function() {
328
- $(this).nextAll('a').children('span').removeClass('dashicons-star-filled').addClass('dashicons-star-empty');
329
- $(this).prevAll('a').children('span').removeClass('dashicons-star-empty').addClass('dashicons-star-filled');
330
- $(this).children('span').removeClass('dashicons-star-empty').addClass('dashicons-star-filled');
331
- }, function() {
332
- var rating = $('input#rating').val();
333
- if (rating) {
334
- var list = $('.rating-stars a');
335
- list.children('span').removeClass('dashicons-star-filled').addClass('dashicons-star-empty');
336
- list.slice(0, rating).children('span').removeClass('dashicons-star-empty').addClass('dashicons-star-filled');
337
- }
338
- }
339
- );
340
- });
341
- </script>
342
- </div>
343
- <div class="small">
344
- <a href="http://twitter.com/wpcloudy" target="_blank"><div class="dashicons dashicons-twitter"></div></a>
345
- <a href="http://www.seopress.org/" target="_blank"><div class="dashicons dashicons-info"></div></a>
346
- &nbsp;
347
- <a href="http://www.seopress.org/support" target="_blank"><?php _e( 'Support', 'wp-seopress' ); ?></a>
348
- </div>
349
  </div>
350
- </div>