SEO SQUIRRLY™ - Version 11.0.03

Version Description

  • 02/26/2021 = Fixed - Optimized layout for smaller screens to include all SEO elements Fixed - getimagesize warning when the image path is not found Fixed - Focus Pages dissapear on applying filters Fixed - Snippet transparency on frontend reload Fixed - Add all custom taxonomies in the SEO Automation
Download this release

Release Info

Developer cifi
Plugin Icon 128x128 SEO SQUIRRLY™
Version 11.0.03
Comparing to
See all releases

Code changes from version 11.0.02 to 11.0.03

Files changed (78) hide show
  1. classes/ActionController.php +2 -3
  2. classes/RemoteController.php +1 -1
  3. classes/helpers/DevKit.php +2 -3
  4. classes/helpers/Tools.php +126 -37
  5. config.json +1 -0
  6. controllers/Menu.php +10 -2
  7. controllers/Post.php +1 -4
  8. controllers/SeoSettings.php +30 -2
  9. controllers/Snippet.php +1 -0
  10. models/Audits.php +1 -1
  11. models/Ico.php +1 -3
  12. models/domain/Patterns.php +4 -0
  13. readme.txt +9 -0
  14. squirrly.php +3 -3
  15. view/Assistant/Assistant.php +14 -14
  16. view/Assistant/Settings.php +33 -33
  17. view/Audits/Addpage.php +18 -20
  18. view/Audits/Audit.php +12 -13
  19. view/Audits/AuditPageRow.php +1 -1
  20. view/Audits/AuditPages.php +7 -7
  21. view/Audits/AuditStats.php +18 -18
  22. view/Audits/Audits.php +17 -19
  23. view/Audits/Compare.php +11 -11
  24. view/Audits/Settings.php +13 -13
  25. view/Blocks/Account.php +2 -2
  26. view/Blocks/Connect.php +2 -2
  27. view/Blocks/Features.php +48 -62
  28. view/Blocks/Jorney.php +15 -15
  29. view/Blocks/Login.php +1 -1
  30. view/Blocks/Snippet.php +28 -18
  31. view/Blocks/Stats.php +10 -10
  32. view/Blocks/Support.php +2 -2
  33. view/Blocks/Toolbar.php +8 -8
  34. view/BulkSeo/Bulkseo.php +17 -19
  35. view/BulkSeo/BulkseoRow.php +1 -1
  36. view/Connect/GoogleAnalytics.php +5 -5
  37. view/Connect/GoogleSearchConsole.php +5 -5
  38. view/Errors/Error.php +6 -6
  39. view/Errors/Maintenance.php +6 -6
  40. view/FocusPages/Addpage.php +18 -19
  41. view/FocusPages/Bestpractice.php +6 -6
  42. view/FocusPages/FocusPageRow.php +1 -1
  43. view/FocusPages/FocusPageStats.php +9 -9
  44. view/FocusPages/FocusPages.php +14 -11
  45. view/FocusPages/Pagelist.php +9 -9
  46. view/FocusPages/Settings.php +7 -7
  47. view/Goals/CheckSeo.php +11 -11
  48. view/Goals/Goals.php +26 -26
  49. view/Help.php +1 -1
  50. view/Onboarding/Step1.php +11 -11
  51. view/Onboarding/Step2.1.php +14 -14
  52. view/Onboarding/Step2.2.php +18 -18
  53. view/Onboarding/Step3.php +19 -19
  54. view/Onboarding/Step4.php +7 -7
  55. view/Overview.php +23 -24
  56. view/Ranking/Gscsync.php +9 -9
  57. view/Ranking/Rankings.php +43 -41
  58. view/Ranking/Settings.php +14 -14
  59. view/Research/Briefcase.php +186 -185
  60. view/Research/History.php +8 -8
  61. view/Research/HistoryDetails.php +2 -2
  62. view/Research/Labels.php +74 -66
  63. view/Research/Research.php +53 -50
  64. view/Research/Suggested.php +8 -8
  65. view/SeoSettings/Advanced.php +22 -22
  66. view/SeoSettings/Automation.php +153 -141
  67. view/SeoSettings/Backup.php +58 -43
  68. view/SeoSettings/Favicon.php +27 -27
  69. view/SeoSettings/Jsonld.php +63 -63
  70. view/SeoSettings/Metas.php +54 -54
  71. view/SeoSettings/Robots.php +19 -19
  72. view/SeoSettings/Sitemap.php +81 -81
  73. view/SeoSettings/Social.php +58 -58
  74. view/SeoSettings/Tracking.php +32 -32
  75. view/SeoSettings/Webmaster.php +27 -27
  76. view/assets/css/audits.min.css +1 -1
  77. view/assets/css/bootstrap.min.css +1 -1
  78. view/assets/css/bootstrap.rtl.min.css +1 -2
classes/ActionController.php CHANGED
@@ -70,9 +70,8 @@ class SQ_Classes_ActionController extends SQ_Classes_FrontController {
70
  *
71
  */
72
  public function getActions() {
73
- global $wp_filesystem;
74
- require_once(ABSPATH . '/wp-admin/includes/file.php');
75
- WP_Filesystem();
76
 
77
  $this->actions = array();
78
  $cur_action = SQ_Classes_Helpers_Tools::getValue('action', false);
70
  *
71
  */
72
  public function getActions() {
73
+
74
+ $wp_filesystem = SQ_Classes_Helpers_Tools::initFilesystem();
 
75
 
76
  $this->actions = array();
77
  $cur_action = SQ_Classes_Helpers_Tools::getValue('action', false);
classes/RemoteController.php CHANGED
@@ -1019,7 +1019,7 @@ class SQ_Classes_RemoteController {
1019
  public static function getInspectURL($args = array()) {
1020
  self::$apimethod = 'get'; //call method
1021
 
1022
- $json = json_decode(self::apiCall('api/posts/crawl', $args));
1023
 
1024
  if (isset($json->error) && $json->error <> '') {
1025
  return (new WP_Error('api_error', $json->error));
1019
  public static function getInspectURL($args = array()) {
1020
  self::$apimethod = 'get'; //call method
1021
 
1022
+ $json = json_decode(self::apiCall('api/posts/crawl', $args, ['timeout' => 60]));
1023
 
1024
  if (isset($json->error) && $json->error <> '') {
1025
  return (new WP_Error('api_error', $json->error));
classes/helpers/DevKit.php CHANGED
@@ -25,9 +25,8 @@ class SQ_Classes_Helpers_DevKit {
25
  * @return bool
26
  */
27
  public function updatePluginData() {
28
- global $wp_filesystem;
29
- require_once(ABSPATH . '/wp-admin/includes/file.php');
30
- WP_Filesystem();
31
 
32
  $package_file = _SQ_ROOT_DIR_ . 'package.json';
33
  if (!$wp_filesystem->exists($package_file)) {
25
  * @return bool
26
  */
27
  public function updatePluginData() {
28
+
29
+ $wp_filesystem = SQ_Classes_Helpers_Tools::initFilesystem();
 
30
 
31
  $package_file = _SQ_ROOT_DIR_ . 'package.json';
32
  if (!$wp_filesystem->exists($package_file)) {
classes/helpers/Tools.php CHANGED
@@ -973,51 +973,87 @@ class SQ_Classes_Helpers_Tools {
973
 
974
  /**
975
  * Empty the cache from other plugins
976
- * @param null $post_id
977
  */
978
- public static function emptyCache($post_id = null) {
979
- if (function_exists('w3tc_pgcache_flush')) {
980
- w3tc_pgcache_flush();
981
- }
 
 
982
 
983
- if (function_exists('w3tc_minify_flush')) {
984
- w3tc_minify_flush();
985
- }
986
- if (function_exists('w3tc_dbcache_flush')) {
987
- w3tc_dbcache_flush();
988
- }
989
- if (function_exists('w3tc_objectcache_flush')) {
990
- w3tc_objectcache_flush();
991
- }
 
992
 
993
- if (function_exists('wp_cache_clear_cache')) {
994
- wp_cache_clear_cache();
995
- }
996
 
997
- if (function_exists('rocket_clean_domain')) {
998
- // Remove all cache files
999
- rocket_clean_domain();
1000
- }
 
 
 
1001
 
1002
- if (function_exists('opcache_reset')) {
1003
- // Remove all opcache if enabled
1004
- opcache_reset();
1005
- }
 
1006
 
1007
- if (function_exists('apc_clear_cache')) {
1008
- // Remove all apc if enabled
1009
- apc_clear_cache();
1010
- }
 
1011
 
1012
- if (class_exists('Cache_Enabler_Disk') && method_exists('Cache_Enabler_Disk', 'clear_cache')) {
1013
- // clear disk cache
1014
- Cache_Enabler_Disk::clear_cache();
1015
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1016
 
1017
- //Clear the fastest cache
1018
- global $wp_fastest_cache;
1019
- if (isset($wp_fastest_cache) && method_exists($wp_fastest_cache, 'deleteCache')) {
1020
- $wp_fastest_cache->deleteCache();
1021
  }
1022
  }
1023
 
@@ -1111,4 +1147,57 @@ class SQ_Classes_Helpers_Tools {
1111
  return apply_filters('sq_menu_url', $url, $page, $tab, $args);
1112
  }
1113
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1114
  }
973
 
974
  /**
975
  * Empty the cache from other plugins
 
976
  */
977
+ public static function emptyCache() {
978
+ try {
979
+ //////////////////////////////////////////////////////////////////////////////
980
+ if ( function_exists( 'w3tc_pgcache_flush' ) ) {
981
+ w3tc_pgcache_flush();
982
+ }
983
 
984
+ if ( function_exists( 'w3tc_minify_flush' ) ) {
985
+ w3tc_minify_flush();
986
+ }
987
+ if ( function_exists( 'w3tc_dbcache_flush' ) ) {
988
+ w3tc_dbcache_flush();
989
+ }
990
+ if ( function_exists( 'w3tc_objectcache_flush' ) ) {
991
+ w3tc_objectcache_flush();
992
+ }
993
+ //////////////////////////////////////////////////////////////////////////////
994
 
995
+ if ( function_exists( 'wp_cache_clear_cache' ) ) {
996
+ wp_cache_clear_cache();
997
+ }
998
 
999
+ if ( function_exists( 'rocket_clean_domain' ) && function_exists( 'rocket_clean_minify' ) && function_exists( 'rocket_clean_cache_busting' ) ) {
1000
+ // Remove all cache files
1001
+ rocket_clean_domain();
1002
+ rocket_clean_minify();
1003
+ rocket_clean_cache_busting();
1004
+ }
1005
+ //////////////////////////////////////////////////////////////////////////////
1006
 
1007
+ if ( function_exists( 'apc_clear_cache' ) ) {
1008
+ // Remove all apc if enabled
1009
+ apc_clear_cache();
1010
+ }
1011
+ //////////////////////////////////////////////////////////////////////////////
1012
 
1013
+ if ( class_exists( 'Cache_Enabler_Disk' ) && method_exists( 'Cache_Enabler_Disk', 'clear_cache' ) ) {
1014
+ // clear disk cache
1015
+ Cache_Enabler_Disk::clear_cache();
1016
+ }
1017
+ //////////////////////////////////////////////////////////////////////////////
1018
 
1019
+ if ( class_exists( 'LiteSpeed_Cache' ) ) {
1020
+ LiteSpeed_Cache::get_instance()->purge_all();
1021
+ }
1022
+ //////////////////////////////////////////////////////////////////////////////
1023
+
1024
+ if ( self::isPluginInstalled( 'hummingbird-performance/wp-hummingbird.php' ) ) {
1025
+ do_action( 'wphb_clear_page_cache' );
1026
+ }
1027
+ //////////////////////////////////////////////////////////////////////////////
1028
+
1029
+ if ( class_exists( 'WpeCommon' ) ) {
1030
+ if ( method_exists( 'WpeCommon', 'purge_memcached' ) ) {
1031
+ WpeCommon::purge_memcached();
1032
+ }
1033
+ if ( method_exists( 'WpeCommon', 'clear_maxcdn_cache' ) ) {
1034
+ WpeCommon::clear_maxcdn_cache();
1035
+ }
1036
+ if ( method_exists( 'WpeCommon', 'purge_varnish_cache' ) ) {
1037
+ WpeCommon::purge_varnish_cache();
1038
+ }
1039
+ }
1040
+ //////////////////////////////////////////////////////////////////////////////
1041
+
1042
+ if ( self::isPluginInstalled( 'sg-cachepress/sg-cachepress.php' ) && class_exists( 'Supercacher' ) ) {
1043
+ if ( method_exists( 'Supercacher', 'purge_cache' ) && method_exists( 'Supercacher', 'delete_assets' ) ) {
1044
+ Supercacher::purge_cache();
1045
+ Supercacher::delete_assets();
1046
+ }
1047
+ }
1048
+
1049
+ //Clear the fastest cache
1050
+ global $wp_fastest_cache;
1051
+ if ( isset( $wp_fastest_cache ) && method_exists( $wp_fastest_cache, 'deleteCache' ) ) {
1052
+ $wp_fastest_cache->deleteCache();
1053
+ }
1054
+ //////////////////////////////////////////////////////////////////////////////
1055
+ }catch (Exception $e){
1056
 
 
 
 
 
1057
  }
1058
  }
1059
 
1147
  return apply_filters('sq_menu_url', $url, $page, $tab, $args);
1148
  }
1149
 
1150
+ /**
1151
+ * Instantiates the WordPress filesystem.
1152
+ *
1153
+ * @static
1154
+ * @access public
1155
+ * @return object
1156
+ */
1157
+ public static function initFilesystem() {
1158
+ // The WordPress filesystem.
1159
+ global $wp_filesystem;
1160
+
1161
+ if ( !$wp_filesystem || empty( $wp_filesystem ) ) {
1162
+ $credentials = array();
1163
+
1164
+ if ( !defined( 'FS_METHOD' ) ) {
1165
+ define( 'FS_METHOD', 'direct' );
1166
+ }
1167
+
1168
+ $method = defined( 'FS_METHOD' ) ? FS_METHOD : false;
1169
+
1170
+ if ( 'ftpext' === $method ) {
1171
+ // If defined, set it to that, Else, set to NULL.
1172
+ $credentials['hostname'] = defined( 'FTP_HOST' ) ? preg_replace( '|\w+://|', '', FTP_HOST ) : null;
1173
+ $credentials['username'] = defined( 'FTP_USER' ) ? FTP_USER : null;
1174
+ $credentials['password'] = defined( 'FTP_PASS' ) ? FTP_PASS : null;
1175
+
1176
+ // Set FTP port.
1177
+ if ( strpos( $credentials['hostname'], ':' ) && null !== $credentials['hostname'] ) {
1178
+ list( $credentials['hostname'], $credentials['port'] ) = explode( ':', $credentials['hostname'], 2 );
1179
+ if ( !is_numeric( $credentials['port'] ) ) {
1180
+ unset( $credentials['port'] );
1181
+ }
1182
+ } else {
1183
+ unset( $credentials['port'] );
1184
+ }
1185
+
1186
+ // Set connection type.
1187
+ if ( (defined( 'FTP_SSL' ) && FTP_SSL) && 'ftpext' === $method ) {
1188
+ $credentials['connection_type'] = 'ftps';
1189
+ } elseif ( !array_filter( $credentials ) ) {
1190
+ $credentials['connection_type'] = null;
1191
+ } else {
1192
+ $credentials['connection_type'] = 'ftp';
1193
+ }
1194
+ }
1195
+
1196
+
1197
+ require_once wp_normalize_path( ABSPATH . '/wp-admin/includes/file.php' );
1198
+ WP_Filesystem( $credentials );
1199
+ }
1200
+
1201
+ return $wp_filesystem;
1202
+ }
1203
  }
config.json CHANGED
@@ -136,6 +136,7 @@
136
  "sq_seosettings_importall",
137
  "sq_seosettings_ga_revoke",
138
  "sq_seosettings_gsc_revoke",
 
139
  "sq_rollback",
140
  "sq_alerts_close",
141
  "sq_ajax_seosettings_save",
136
  "sq_seosettings_importall",
137
  "sq_seosettings_ga_revoke",
138
  "sq_seosettings_gsc_revoke",
139
+ "sq_reinstall",
140
  "sq_rollback",
141
  "sq_alerts_close",
142
  "sq_ajax_seosettings_save",
controllers/Menu.php CHANGED
@@ -15,7 +15,6 @@ class SQ_Controllers_Menu extends SQ_Classes_FrontController {
15
  add_action('admin_bar_menu', array($this, 'hookTopmenuDashboard'), 10);
16
  add_action('admin_bar_menu', array($this, 'hookTopmenuSquirrly'), 91);
17
  add_action('do_meta_boxes', array($this, 'addMetabox'));
18
-
19
  //run compatibility check on Squirrly settings
20
  if (SQ_Classes_Helpers_Tools::getIsset('page')) {
21
  $menus = $this->model->getMainMenu();
@@ -23,6 +22,7 @@ class SQ_Controllers_Menu extends SQ_Classes_FrontController {
23
 
24
  if (in_array($page, array_keys($menus))) {
25
  add_action('admin_enqueue_scripts', array(SQ_Classes_ObjController::getClass('SQ_Models_Compatibility'), 'fixEnqueueErrors'), PHP_INT_MAX);
 
26
  }
27
  }
28
 
@@ -490,7 +490,6 @@ class SQ_Controllers_Menu extends SQ_Classes_FrontController {
490
  echo '<script type="text/javascript" src="//www.google.com/jsapi"></script>';
491
  echo '<script>google.load("visualization", "1.0", {packages: ["corechart"]});</script>';
492
  echo '<div id="sq_preloader" class="sq_loading"></div>';
493
-
494
  if ($page <> 'sq_dashboard') {
495
  $sq_fullscreen = true;
496
  SQ_Classes_ObjController::getClass('SQ_Classes_DisplayController')->loadMedia('fullwidth', array('trigger' => true, 'media' => 'all'));
@@ -511,6 +510,15 @@ class SQ_Controllers_Menu extends SQ_Classes_FrontController {
511
  }
512
  }
513
 
 
 
 
 
 
 
 
 
 
514
  public function hookBuilders() {
515
  add_action('elementor/editor/footer', array(SQ_Classes_ObjController::getClass('SQ_Controllers_Post'), 'loadLiveAssistant'), 99);
516
  }
15
  add_action('admin_bar_menu', array($this, 'hookTopmenuDashboard'), 10);
16
  add_action('admin_bar_menu', array($this, 'hookTopmenuSquirrly'), 91);
17
  add_action('do_meta_boxes', array($this, 'addMetabox'));
 
18
  //run compatibility check on Squirrly settings
19
  if (SQ_Classes_Helpers_Tools::getIsset('page')) {
20
  $menus = $this->model->getMainMenu();
22
 
23
  if (in_array($page, array_keys($menus))) {
24
  add_action('admin_enqueue_scripts', array(SQ_Classes_ObjController::getClass('SQ_Models_Compatibility'), 'fixEnqueueErrors'), PHP_INT_MAX);
25
+ add_action( 'admin_head', array($this, 'setViewport'), PHP_INT_MAX);
26
  }
27
  }
28
 
490
  echo '<script type="text/javascript" src="//www.google.com/jsapi"></script>';
491
  echo '<script>google.load("visualization", "1.0", {packages: ["corechart"]});</script>';
492
  echo '<div id="sq_preloader" class="sq_loading"></div>';
 
493
  if ($page <> 'sq_dashboard') {
494
  $sq_fullscreen = true;
495
  SQ_Classes_ObjController::getClass('SQ_Classes_DisplayController')->loadMedia('fullwidth', array('trigger' => true, 'media' => 'all'));
510
  }
511
  }
512
 
513
+ function setViewport() {
514
+ $page = apply_filters('sq_page', SQ_Classes_Helpers_Tools::getValue('page', ''));
515
+ if ($page == 'sq_dashboard') {
516
+ echo '<meta name="viewport" content="width=900">';
517
+ }else{
518
+ echo '<meta name="viewport" content="width=1200">';
519
+ }
520
+ }
521
+
522
  public function hookBuilders() {
523
  add_action('elementor/editor/footer', array(SQ_Classes_ObjController::getClass('SQ_Controllers_Post'), 'loadLiveAssistant'), 99);
524
  }
controllers/Post.php CHANGED
@@ -259,9 +259,7 @@ class SQ_Controllers_Post extends SQ_Classes_FrontController {
259
 
260
  $post_type = 'post';
261
  if (post_type_exists($post_type)) {
262
- global $wp_filesystem;
263
- require_once(ABSPATH . '/wp-admin/includes/file.php');
264
- WP_Filesystem();
265
 
266
  if ($wp_filesystem->exists(_SQ_ROOT_DIR_ . 'demo.json')) {
267
  $json = json_decode($wp_filesystem->get_contents(_SQ_ROOT_DIR_ . 'demo.json'));
@@ -332,7 +330,6 @@ class SQ_Controllers_Post extends SQ_Classes_FrontController {
332
  wp_update_attachment_metadata($attach_id, $attach_data);
333
  }
334
  SQ_Classes_Helpers_Tools::setHeader('json');
335
- SQ_Classes_Helpers_Tools::emptyCache();
336
 
337
  echo wp_json_encode($return);
338
  exit();
259
 
260
  $post_type = 'post';
261
  if (post_type_exists($post_type)) {
262
+ $wp_filesystem = SQ_Classes_Helpers_Tools::initFilesystem();
 
 
263
 
264
  if ($wp_filesystem->exists(_SQ_ROOT_DIR_ . 'demo.json')) {
265
  $json = json_decode($wp_filesystem->get_contents(_SQ_ROOT_DIR_ . 'demo.json'));
330
  wp_update_attachment_metadata($attach_id, $attach_data);
331
  }
332
  SQ_Classes_Helpers_Tools::setHeader('json');
 
333
 
334
  echo wp_json_encode($return);
335
  exit();
controllers/SeoSettings.php CHANGED
@@ -563,6 +563,28 @@ class SQ_Controllers_SeoSettings extends SQ_Classes_FrontController {
563
  ]
564
  );
565
  exit();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
566
  case 'sq_alerts_close':
567
  //remove the specified alert from showing again
568
  if ($alert = SQ_Classes_Helpers_Tools::getValue('alert', false)) {
@@ -674,10 +696,16 @@ class SQ_Controllers_SeoSettings extends SQ_Classes_FrontController {
674
  exit();
675
  }
676
 
677
-
678
  //Get the new post type
679
  $posttype = SQ_Classes_Helpers_Tools::getValue('value', false);
680
- $types = get_post_types();
 
 
 
 
 
 
 
681
 
682
  //If the post type is in the list of types
683
  if ($posttype && in_array($posttype, $types)) {
563
  ]
564
  );
565
  exit();
566
+ case 'sq_reinstall':
567
+ SQ_Classes_Helpers_Tools::setHeader('html');
568
+ $plugin_slug = basename(_SQ_PLUGIN_NAME_, '.php');
569
+
570
+
571
+ $rollback = SQ_Classes_ObjController::getClass('SQ_Models_Rollback');
572
+
573
+ $rollback->set_plugin(array(
574
+ 'version' => SQ_VERSION,
575
+ 'plugin_name' => _SQ_ROOT_DIR_,
576
+ 'plugin_slug' => $plugin_slug,
577
+ 'package_url' => sprintf('https://downloads.wordpress.org/plugin/%s.%s.zip', $plugin_slug, SQ_VERSION),
578
+ ));
579
+
580
+ $rollback->run();
581
+
582
+ wp_die(
583
+ '', esc_html__("Reinstall Current Version", _SQ_PLUGIN_NAME_), [
584
+ 'response' => 200,
585
+ ]
586
+ );
587
+ exit();
588
  case 'sq_alerts_close':
589
  //remove the specified alert from showing again
590
  if ($alert = SQ_Classes_Helpers_Tools::getValue('alert', false)) {
696
  exit();
697
  }
698
 
 
699
  //Get the new post type
700
  $posttype = SQ_Classes_Helpers_Tools::getValue('value', false);
701
+ $filter = array('public' => true, '_builtin' => false);
702
+ $types = get_post_types($filter);
703
+
704
+ $filter = array('public' => true,);
705
+ $taxonomies = get_taxonomies($filter);
706
+ foreach ($taxonomies as $pattern => $type) {
707
+ $types['tax-' . $pattern] = 'tax-' . $pattern;
708
+ }
709
 
710
  //If the post type is in the list of types
711
  if ($posttype && in_array($posttype, $types)) {
controllers/Snippet.php CHANGED
@@ -195,6 +195,7 @@ class SQ_Controllers_Snippet extends SQ_Classes_FrontController {
195
  }
196
  if (SQ_Classes_Helpers_Tools::isAjax()) {
197
  SQ_Classes_Helpers_Tools::setHeader('json');
 
198
 
199
  echo wp_json_encode($json);
200
  exit();
195
  }
196
  if (SQ_Classes_Helpers_Tools::isAjax()) {
197
  SQ_Classes_Helpers_Tools::setHeader('json');
198
+ SQ_Classes_Helpers_Tools::emptyCache();
199
 
200
  echo wp_json_encode($json);
201
  exit();
models/Audits.php CHANGED
@@ -57,7 +57,7 @@ class SQ_Models_Audits {
57
  'title' => esc_html__("Visible for search engines?", _SQ_PLUGIN_NAME_),
58
  'success' => esc_html__("Yes") . '!',
59
  'fail' => esc_html__("No") . '!' . '<div class="sq_list_error_title">' . esc_html__("The pages with noindex", _SQ_PLUGIN_NAME_) . ':</div><div class="sq_list_error">%s</div>',
60
- 'description' => sprintf(esc_html__("How can we fix the noindex for our pages? %s You're currently telling Google not to index some of your pages through a robots tag inside your code. %s On WordPress, it's super easy to control on which pages to place no-index and which pages should never get tagged with no-index if you use the Squirrly SEO Plugin. %s If you decided you 100% want these pages to be No-Index (you don’t want Google to index them) - then remove these pages from the SEO Audit. Use the SEO Audit for the pages you want to be seen on search engines.%s", _SQ_PLUGIN_NAME_), '<ul><li>', '</li><li>', '</li><li>', '</li><li>','</li></ul>'),
61
  'protip' => esc_html__("Some pages are better off if they have an associated no-index tag. Every website has a couple of pages that would be completely pointless to appear in search results, because they wouldn't ever make any sense for potential searchers.", _SQ_PLUGIN_NAME_),
62
  'solution' => esc_html__("Add the correct meta robots tag in the pages", _SQ_PLUGIN_NAME_),
63
  'link' => SQ_Classes_Helpers_Tools::getAdminUrl('sq_bulkseo', 'bulkseo'),
57
  'title' => esc_html__("Visible for search engines?", _SQ_PLUGIN_NAME_),
58
  'success' => esc_html__("Yes") . '!',
59
  'fail' => esc_html__("No") . '!' . '<div class="sq_list_error_title">' . esc_html__("The pages with noindex", _SQ_PLUGIN_NAME_) . ':</div><div class="sq_list_error">%s</div>',
60
+ 'description' => sprintf(esc_html__("How can we fix the noindex for our pages? %s You're currently telling Google not to index some of your pages through a robots tag inside your code. %s On WordPress, it's super easy to control on which pages to place no-index and which pages should never get tagged with no-index if you use the Squirrly SEO Plugin. %s If you decided you 100%% want these pages to be No-Index (you don’t want Google to index them) - then remove these pages from the SEO Audit. Use the SEO Audit for the pages you want to be seen on search engines.%s", _SQ_PLUGIN_NAME_), '<ul><li>', '</li><li>', '</li><li>', '</li><li>','</li></ul>'),
61
  'protip' => esc_html__("Some pages are better off if they have an associated no-index tag. Every website has a couple of pages that would be completely pointless to appear in search results, because they wouldn't ever make any sense for potential searchers.", _SQ_PLUGIN_NAME_),
62
  'solution' => esc_html__("Add the correct meta robots tag in the pages", _SQ_PLUGIN_NAME_),
63
  'link' => SQ_Classes_Helpers_Tools::getAdminUrl('sq_bulkseo', 'bulkseo'),
models/Ico.php CHANGED
@@ -308,9 +308,7 @@ class SQ_Models_Ico {
308
  * @access private
309
  */
310
  function _load_image_file($file) {
311
- global $wp_filesystem;
312
- require_once(ABSPATH . '/wp-admin/includes/file.php');
313
- WP_Filesystem();
314
 
315
  //initiate image as false
316
  $im = false;
308
  * @access private
309
  */
310
  function _load_image_file($file) {
311
+ $wp_filesystem = SQ_Classes_Helpers_Tools::initFilesystem();
 
 
312
 
313
  //initiate image as false
314
  $im = false;
models/domain/Patterns.php CHANGED
@@ -337,6 +337,10 @@ class SQ_Models_Domain_Patterns extends SQ_Models_Abstract_Domain {
337
  if ($search !== '') {
338
  $this->_searchphrase = esc_html($search);
339
  }
 
 
 
 
340
  }
341
  return $this->_searchphrase;
342
  }
337
  if ($search !== '') {
338
  $this->_searchphrase = esc_html($search);
339
  }
340
+ $search = SQ_Classes_Helpers_Tools::getValue('s');
341
+ if ($search !== '') {
342
+ $this->_searchphrase = esc_html($search);
343
+ }
344
  }
345
  return $this->_searchphrase;
346
  }
readme.txt CHANGED
@@ -417,6 +417,13 @@ Type a keyword to the right of the screen and start using Squirrly Seo. Enjoy!
417
  28. Wp Seo - Facebook Pixel, Google Analytics and Google Search Console
418
 
419
  == Changelog ==
 
 
 
 
 
 
 
420
  = 11.0.02 - 02/17/2021 =
421
  Update - Added the option to delete keywords from Keyword Suggestion
422
  Update - Changed the Ranking column in Briefcase
@@ -425,6 +432,8 @@ Update - Show more results in Keyword Research Tool
425
  Update - Select up to 3 keyword suggestions in the Research Process
426
  Update - Make the main keyword more visible in the Focus Page section
427
  Update - The limit for Google News to match the number of Posts per Page from Sitemap XML
 
 
428
  Fixed - UI in Briefcase to look more friendly
429
  Fixed - Already in SERP Checker button to show when a keyword is already added in Rankings
430
  Fixed - Make sure to save the optimizations for all keywords in Live Assistant > Briefcase
417
  28. Wp Seo - Facebook Pixel, Google Analytics and Google Search Console
418
 
419
  == Changelog ==
420
+ = 11.0.03 - 02/26/2021 =
421
+ Fixed - Optimized layout for smaller screens to include all SEO elements
422
+ Fixed - getimagesize warning when the image path is not found
423
+ Fixed - Focus Pages dissapear on applying filters
424
+ Fixed - Snippet transparency on frontend reload
425
+ Fixed - Add all custom taxonomies in the SEO Automation
426
+
427
  = 11.0.02 - 02/17/2021 =
428
  Update - Added the option to delete keywords from Keyword Suggestion
429
  Update - Changed the Ranking column in Briefcase
432
  Update - Select up to 3 keyword suggestions in the Research Process
433
  Update - Make the main keyword more visible in the Focus Page section
434
  Update - The limit for Google News to match the number of Posts per Page from Sitemap XML
435
+ Update - Add the NewsArticle OG in Squirrly SEO Open Graph
436
+ Update - Change Json-LD Validation link in SEO Snippet with the new Google Validation link
437
  Fixed - UI in Briefcase to look more friendly
438
  Fixed - Already in SERP Checker button to show when a keyword is already added in Rankings
439
  Fixed - Make sure to save the optimizations for all keywords in Live Assistant > Briefcase
squirrly.php CHANGED
@@ -8,7 +8,7 @@
8
  * Description: A.I.-based Private SEO Consultant. In a Plugin. Powered by Machine Learning and Cloud Services. Over 300 functionalities for SEO available when you need them.<BR> <a href="http://cloud.squirrly.co/user" target="_blank"><strong>Account Info</strong></a>
9
  * Author: Squirrly SEO
10
  * Author URI: https://plugin.squirrly.co
11
- * Version: 11.0.02
12
  * License: GPLv2 or later
13
  * License URI: http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
14
  * Text Domain: squirrly-seo
@@ -17,9 +17,9 @@
17
 
18
  if (!defined('SQ_VERSION')) {
19
  /* SET THE CURRENT VERSION ABOVE AND BELOW */
20
- define('SQ_VERSION', '11.0.02');
21
  //The last stable version
22
- define('SQ_STABLE_VERSION', '10.2.05');
23
  // Call config files
24
  try {
25
  require_once(dirname(__FILE__) . '/config/config.php');
8
  * Description: A.I.-based Private SEO Consultant. In a Plugin. Powered by Machine Learning and Cloud Services. Over 300 functionalities for SEO available when you need them.<BR> <a href="http://cloud.squirrly.co/user" target="_blank"><strong>Account Info</strong></a>
9
  * Author: Squirrly SEO
10
  * Author URI: https://plugin.squirrly.co
11
+ * Version: 11.0.03
12
  * License: GPLv2 or later
13
  * License URI: http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
14
  * Text Domain: squirrly-seo
17
 
18
  if (!defined('SQ_VERSION')) {
19
  /* SET THE CURRENT VERSION ABOVE AND BELOW */
20
+ define('SQ_VERSION', '11.0.03');
21
  //The last stable version
22
+ define('SQ_STABLE_VERSION', '11.0.02');
23
  // Call config files
24
  try {
25
  require_once(dirname(__FILE__) . '/config/config.php');
view/Assistant/Assistant.php CHANGED
@@ -1,13 +1,13 @@
1
  <div id="sq_wrap">
2
  <?php SQ_Classes_ObjController::getClass('SQ_Core_BlockToolbar')->init(); ?>
3
  <?php do_action('sq_notices'); ?>
4
- <div class="d-flex flex-row my-0 bg-white">
5
  <?php echo SQ_Classes_ObjController::getClass('SQ_Models_Menu')->getAdminTabs(SQ_Classes_Helpers_Tools::getValue('tab', 'assistant'), 'sq_assistant'); ?>
6
- <div class="d-flex flex-row flex-nowrap flex-grow-1 bg-white pl-3 pr-0 mr-0">
7
- <div class="flex-grow-1 mr-3 sq_flex">
8
  <?php do_action('sq_form_notices'); ?>
9
 
10
- <div class="card col-sm-12 p-0">
11
  <div class="card-body p-2 bg-title rounded-top">
12
  <div class="sq_help_question float-right"><a href="https://howto.squirrly.co/kb/squirrly-live-assistant/" target="_blank"><i class="fa fa-question-circle"></i></a></div>
13
  <div class="sq_icons_content p-3 py-4">
@@ -16,27 +16,27 @@
16
  <h3 class="card-title"><?php echo esc_html__("Optimize with Squirrly Live Assistant", _SQ_PLUGIN_NAME_); ?>:</h3>
17
  <div class="card-title-description m-2"><?php echo esc_html__("Use Squirrly to optimize the content for your posts, pages, products, etc.", _SQ_PLUGIN_NAME_); ?></div>
18
  </div>
19
- <div id="sq_assistant" class="card col-sm-12 p-0 tab-panel border-0">
20
  <?php do_action('sq_subscription_notices'); ?>
21
 
22
  <div class="card-body p-0">
23
- <div class="col-sm-12 m-0 p-0">
24
- <div class="row col-sm-12 m-0 py-3 px-0 border-0 ">
25
- <div class="col-sm">
26
- <div class="col-sm-12 my-3 p-0 text-right">
27
  <?php if (current_user_can('sq_manage_snippet')) { ?>
28
  <form method="POST">
29
  <?php SQ_Classes_Helpers_Tools::setNonce('sq_create_demo', 'sq_nonce'); ?>
30
  <input type="hidden" name="action" value="sq_create_demo"/>
31
- <button type="submit" class="btn rounded-0 btn-green btn-lg px-5 mx-4" style="min-width: 300px"><?php echo esc_html__("Practice/Test Round", _SQ_PLUGIN_NAME_); ?></button>
32
  </form>
33
  <?php } ?>
34
  </div>
35
  </div>
36
- <div class="col-sm">
37
- <div class="col-sm-12 my-3 p-0 text-left">
38
  <div class="dropdown">
39
- <button class="btn btn-success btn-lg dropdown-toggle" style="min-width: 300px" type="button" id="add_new_dropdown" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
40
  <?php echo esc_html__("Add New", _SQ_PLUGIN_NAME_); ?>
41
  </button>
42
  <div class="dropdown-menu mt-1" style="min-width: 200px" aria-labelledby="add_new_dropdown">
@@ -59,7 +59,7 @@
59
  </div>
60
  </div>
61
  <div class="sq_col_side sticky">
62
- <div class="card col-sm-12 p-0">
63
  <?php echo SQ_Classes_ObjController::getClass('SQ_Core_BlockSupport')->init(); ?>
64
  <?php echo SQ_Classes_ObjController::getClass('SQ_Core_BlockAssistant')->init(); ?>
65
  </div>
1
  <div id="sq_wrap">
2
  <?php SQ_Classes_ObjController::getClass('SQ_Core_BlockToolbar')->init(); ?>
3
  <?php do_action('sq_notices'); ?>
4
+ <div class="d-flex flex-row my-0 bg-white" style="clear: both !important;">
5
  <?php echo SQ_Classes_ObjController::getClass('SQ_Models_Menu')->getAdminTabs(SQ_Classes_Helpers_Tools::getValue('tab', 'assistant'), 'sq_assistant'); ?>
6
+ <div class="d-flex flex-row flex-nowrap flex-grow-1 bg-white px-1 m-0">
7
+ <div class="flex-grow-1 px-1 sq_flex">
8
  <?php do_action('sq_form_notices'); ?>
9
 
10
+ <div class="card col-12 p-0">
11
  <div class="card-body p-2 bg-title rounded-top">
12
  <div class="sq_help_question float-right"><a href="https://howto.squirrly.co/kb/squirrly-live-assistant/" target="_blank"><i class="fa fa-question-circle"></i></a></div>
13
  <div class="sq_icons_content p-3 py-4">
16
  <h3 class="card-title"><?php echo esc_html__("Optimize with Squirrly Live Assistant", _SQ_PLUGIN_NAME_); ?>:</h3>
17
  <div class="card-title-description m-2"><?php echo esc_html__("Use Squirrly to optimize the content for your posts, pages, products, etc.", _SQ_PLUGIN_NAME_); ?></div>
18
  </div>
19
+ <div id="sq_assistant" class="card col-12 p-0 tab-panel border-0">
20
  <?php do_action('sq_subscription_notices'); ?>
21
 
22
  <div class="card-body p-0">
23
+ <div class="col-12 m-0 p-0">
24
+ <div class="row col-12 m-0 py-3 px-0 border-0 ">
25
+ <div class="col-6">
26
+ <div class="col-12 my-3 p-0 text-right">
27
  <?php if (current_user_can('sq_manage_snippet')) { ?>
28
  <form method="POST">
29
  <?php SQ_Classes_Helpers_Tools::setNonce('sq_create_demo', 'sq_nonce'); ?>
30
  <input type="hidden" name="action" value="sq_create_demo"/>
31
+ <button type="submit" class="btn rounded-0 btn-green btn-lg px-5" style="min-width: 280px"><?php echo esc_html__("Practice/Test Round", _SQ_PLUGIN_NAME_); ?></button>
32
  </form>
33
  <?php } ?>
34
  </div>
35
  </div>
36
+ <div class="col-6">
37
+ <div class="col-12 my-3 p-0 text-left">
38
  <div class="dropdown">
39
+ <button class="btn btn-success btn-lg dropdown-toggle" style="min-width: 280px" type="button" id="add_new_dropdown" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
40
  <?php echo esc_html__("Add New", _SQ_PLUGIN_NAME_); ?>
41
  </button>
42
  <div class="dropdown-menu mt-1" style="min-width: 200px" aria-labelledby="add_new_dropdown">
59
  </div>
60
  </div>
61
  <div class="sq_col_side sticky">
62
+ <div class="card col-12 p-0">
63
  <?php echo SQ_Classes_ObjController::getClass('SQ_Core_BlockSupport')->init(); ?>
64
  <?php echo SQ_Classes_ObjController::getClass('SQ_Core_BlockAssistant')->init(); ?>
65
  </div>
view/Assistant/Settings.php CHANGED
@@ -4,19 +4,19 @@
4
  <div class="d-flex flex-row my-0 bg-white" >
5
  <?php
6
  if (!current_user_can('sq_manage_settings')) {
7
- echo '<div class="col-sm-12 alert alert-success text-center m-0 p-3">'. esc_html__("You do not have permission to access this page. You need Squirrly SEO Admin role.", _SQ_PLUGIN_NAME_).'</div>';
8
  return;
9
  }
10
  ?>
11
  <?php echo SQ_Classes_ObjController::getClass('SQ_Models_Menu')->getAdminTabs(SQ_Classes_Helpers_Tools::getValue('tab'), 'sq_assistant'); ?>
12
- <div class="d-flex flex-row flex-nowrap flex-grow-1 bg-white pl-3 pr-0 mr-0">
13
- <div class="flex-grow-1 mr-3 sq_flex">
14
  <?php do_action('sq_form_notices'); ?>
15
  <form method="POST">
16
  <?php SQ_Classes_Helpers_Tools::setNonce('sq_settings_assistant', 'sq_nonce'); ?>
17
  <input type="hidden" name="action" value="sq_settings_assistant"/>
18
 
19
- <div class="card col-sm-12 p-0">
20
  <div class="card-body p-0 m-0 bg-title rounded-top row">
21
  <div class="card-body p-2 bg-title rounded-top">
22
  <div class="sq_icons_content p-3 py-4">
@@ -26,15 +26,15 @@
26
  <div class="card-title-description m-2"></div>
27
  </div>
28
  </div>
29
- <div id="sq_seosettings" class="card col-sm-12 p-0 m-0 border-0 tab-panel border-0">
30
  <div class="card-body p-0">
31
- <div class="col-sm-12 m-0 p-0">
32
- <div class="card col-sm-12 p-0 border-0 ">
33
 
34
- <div class="col-sm-12 pt-0 pb-4 border-bottom tab-panel">
35
- <div class="col-sm-12 row mb-1 ml-1">
36
- <div class="checker col-sm-12 row my-2 py-1">
37
- <div class="col-sm-12 p-0 sq-switch sq-switch-sm">
38
  <input type="hidden" name="sq_keyword_help" value="0"/>
39
  <input type="checkbox" id="sq_keyword_help" name="sq_keyword_help" class="sq-switch" <?php echo(SQ_Classes_Helpers_Tools::getOption('sq_keyword_help') ? 'checked="checked"' : '') ?> value="1"/>
40
  <label for="sq_keyword_help" class="ml-2"><?php echo esc_html__("Squirrly Tooltips", _SQ_PLUGIN_NAME_); ?></label>
@@ -43,9 +43,9 @@
43
  </div>
44
  </div>
45
 
46
- <div class="col-sm-12 row mb-1 ml-1 sq_advanced">
47
- <div class="checker col-sm-12 row my-2 py-1">
48
- <div class="col-sm-12 p-0 sq-switch sq-switch-sm">
49
  <input type="hidden" name="sq_local_images" value="0"/>
50
  <input type="checkbox" id="sq_local_images" name="sq_local_images" class="sq-switch" <?php echo(SQ_Classes_Helpers_Tools::getOption('sq_local_images') ? 'checked="checked"' : '') ?> value="1"/>
51
  <label for="sq_local_images" class="ml-2"><?php echo esc_html__("Download Remote Images", _SQ_PLUGIN_NAME_); ?></label>
@@ -56,9 +56,9 @@
56
  </div>
57
 
58
 
59
- <div class="col-sm-12 row mb-1 ml-1">
60
- <div class="checker col-sm-12 row my-2 py-1">
61
- <div class="col-sm-12 p-0 sq-switch sq-switch-sm">
62
  <input type="hidden" name="sq_img_licence" value="0"/>
63
  <input type="checkbox" id="sq_img_licence" name="sq_img_licence" class="sq-switch" <?php echo(SQ_Classes_Helpers_Tools::getOption('sq_img_licence') ? 'checked="checked"' : '') ?> value="1"/>
64
  <label for="sq_img_licence" class="ml-2"><?php echo esc_html__("Copyright Free Images", _SQ_PLUGIN_NAME_); ?></label>
@@ -67,15 +67,15 @@
67
  </div>
68
  </div>
69
 
70
- <div class="col-sm-12 row mb-1 ml-1">
71
- <div class="checker col-sm-12 row my-2 py-1">
72
- <div class="col-sm-12 p-0">
73
- <div class="col-sm-12 row py-2 mx-0 my-3">
74
- <div class="col-sm-4 p-1 pr-3">
75
  <div class="font-weight-bold"><?php echo esc_html__("Live Assistant Type", _SQ_PLUGIN_NAME_); ?>:</div>
76
  <div class="small text-black-50"><?php echo esc_html__("Select how you want Squirrly Live Assistant to load in editor.", _SQ_PLUGIN_NAME_); ?></div>
77
  </div>
78
- <div class="col-sm-8 p-0 input-group">
79
  <select name="sq_sla_type" class="form-control bg-input mb-1">
80
  <option value="auto" <?php echo((SQ_Classes_Helpers_Tools::getOption('sq_sla_type') == 'auto') ? 'selected="selected"' : '') ?>><?php echo esc_html__("Auto", _SQ_PLUGIN_NAME_); ?></option>
81
  <option value="integrated" <?php echo((SQ_Classes_Helpers_Tools::getOption('sq_sla_type') == 'integrated') ? 'selected="selected"' : '') ?>><?php echo esc_html__("Integrated Box", _SQ_PLUGIN_NAME_); ?></option>
@@ -87,9 +87,9 @@
87
  </div>
88
  </div>
89
 
90
- <div class="col-sm-12 row mb-1 ml-1">
91
- <div class="checker col-sm-12 row my-2 py-1">
92
- <div class="col-sm-12 p-0 sq-switch sq-switch-sm">
93
  <input type="hidden" name="sq_sla_frontend" value="0"/>
94
  <input type="checkbox" id="sq_sla_frontend" name="sq_sla_frontend" class="sq-switch" <?php echo(SQ_Classes_Helpers_Tools::getOption('sq_sla_frontend') ? 'checked="checked"' : '') ?> value="1"/>
95
  <label for="sq_sla_frontend" class="ml-2"><?php echo esc_html__("Activate Live Assistant in Frontend", _SQ_PLUGIN_NAME_); ?><span class="text-danger"></span><a href="https://howto.squirrly.co/kb/squirrly-live-assistant/#Add-Live-Assistant-in-Frontend" target="_blank"><i class="fa fa-question-circle m-0 px-2" style="display: inline;"></i></a></label>
@@ -102,18 +102,18 @@
102
 
103
  <div class="bg-title p-2 sq_advanced">
104
  <h3 class="card-title"><?php echo esc_html__("Places where you do NOT want Squirrly Live Assistant to load", _SQ_PLUGIN_NAME_); ?>:</h3>
105
- <div class="col-sm-12 text-left m-0 p-0">
106
  <div class="card-title-description mb-0 text-danger"><?php echo esc_html__("Don't select anything if you wish Squirrly Live Assistant to load for all post types.", _SQ_PLUGIN_NAME_); ?></div>
107
  </div>
108
  </div>
109
- <div class="col-sm-12 py-4 border-bottom tab-panel sq_advanced">
110
- <div class="col-sm-12 row py-2 mx-0 my-3">
111
- <div class="col-sm-4 p-0 pr-3 font-weight-bold">
112
  <?php echo esc_html__("Exclusions", _SQ_PLUGIN_NAME_); ?>:
113
  <div class="small text-black-50 my-1"><?php echo esc_html__("Select places where you do NOT want Squirrly Live Assistant to load.", _SQ_PLUGIN_NAME_); ?></div>
114
  <div class="small text-black-50 my-1"><?php echo esc_html__("Hold Control key to select multiple places", _SQ_PLUGIN_NAME_); ?></div>
115
  </div>
116
- <div class="col-sm-8 p-0 input-group">
117
  <input type="hidden" name="sq_sla_exclude_post_types[]" value="0"/>
118
  <select multiple name="sq_sla_exclude_post_types[]" class="form-control bg-input mb-1" style="height: auto;">
119
  <?php
@@ -135,7 +135,7 @@
135
 
136
  </div>
137
 
138
- <div class="col-sm-12 my-3 p-0">
139
  <?php if (!SQ_Classes_Helpers_Tools::getOption('sq_seoexpert')) { ?>
140
  <div class="py-0 float-right text-right m-2">
141
  <button type="button" class="show_advanced btn rounded-0 btn-link text-black-50 btn-sm p-0 pr-2 m-0"><?php echo esc_html__("Show Advanced Options", _SQ_PLUGIN_NAME_); ?></button>
@@ -147,7 +147,7 @@
147
  </form>
148
  </div>
149
  <div class="sq_col_side sticky">
150
- <div class="card col-sm-12 p-0">
151
  <?php echo SQ_Classes_ObjController::getClass('SQ_Core_BlockSupport')->init(); ?>
152
  <?php echo SQ_Classes_ObjController::getClass('SQ_Core_BlockAssistant')->init(); ?>
153
  </div>
4
  <div class="d-flex flex-row my-0 bg-white" >
5
  <?php
6
  if (!current_user_can('sq_manage_settings')) {
7
+ echo '<div class="col-12 alert alert-success text-center m-0 p-3">'. esc_html__("You do not have permission to access this page. You need Squirrly SEO Admin role.", _SQ_PLUGIN_NAME_).'</div>';
8
  return;
9
  }
10
  ?>
11
  <?php echo SQ_Classes_ObjController::getClass('SQ_Models_Menu')->getAdminTabs(SQ_Classes_Helpers_Tools::getValue('tab'), 'sq_assistant'); ?>
12
+ <div class="d-flex flex-row flex-nowrap flex-grow-1 bg-white px-1 m-0">
13
+ <div class="flex-grow-1 px-1 sq_flex">
14
  <?php do_action('sq_form_notices'); ?>
15
  <form method="POST">
16
  <?php SQ_Classes_Helpers_Tools::setNonce('sq_settings_assistant', 'sq_nonce'); ?>
17
  <input type="hidden" name="action" value="sq_settings_assistant"/>
18
 
19
+ <div class="card col-12 p-0">
20
  <div class="card-body p-0 m-0 bg-title rounded-top row">
21
  <div class="card-body p-2 bg-title rounded-top">
22
  <div class="sq_icons_content p-3 py-4">
26
  <div class="card-title-description m-2"></div>
27
  </div>
28
  </div>
29
+ <div id="sq_seosettings" class="card col-12 p-0 m-0 border-0 tab-panel border-0">
30
  <div class="card-body p-0">
31
+ <div class="col-12 m-0 p-0">
32
+ <div class="card col-12 p-0 border-0 ">
33
 
34
+ <div class="col-12 pt-0 pb-4 border-bottom tab-panel">
35
+ <div class="col-12 row mb-1 ml-1">
36
+ <div class="checker col-12 row my-2 py-1">
37
+ <div class="col-12 p-0 sq-switch sq-switch-sm">
38
  <input type="hidden" name="sq_keyword_help" value="0"/>
39
  <input type="checkbox" id="sq_keyword_help" name="sq_keyword_help" class="sq-switch" <?php echo(SQ_Classes_Helpers_Tools::getOption('sq_keyword_help') ? 'checked="checked"' : '') ?> value="1"/>
40
  <label for="sq_keyword_help" class="ml-2"><?php echo esc_html__("Squirrly Tooltips", _SQ_PLUGIN_NAME_); ?></label>
43
  </div>
44
  </div>
45
 
46
+ <div class="col-12 row mb-1 ml-1 sq_advanced">
47
+ <div class="checker col-12 row my-2 py-1">
48
+ <div class="col-12 p-0 sq-switch sq-switch-sm">
49
  <input type="hidden" name="sq_local_images" value="0"/>
50
  <input type="checkbox" id="sq_local_images" name="sq_local_images" class="sq-switch" <?php echo(SQ_Classes_Helpers_Tools::getOption('sq_local_images') ? 'checked="checked"' : '') ?> value="1"/>
51
  <label for="sq_local_images" class="ml-2"><?php echo esc_html__("Download Remote Images", _SQ_PLUGIN_NAME_); ?></label>
56
  </div>
57
 
58
 
59
+ <div class="col-12 row mb-1 ml-1">
60
+ <div class="checker col-12 row my-2 py-1">
61
+ <div class="col-12 p-0 sq-switch sq-switch-sm">
62
  <input type="hidden" name="sq_img_licence" value="0"/>
63
  <input type="checkbox" id="sq_img_licence" name="sq_img_licence" class="sq-switch" <?php echo(SQ_Classes_Helpers_Tools::getOption('sq_img_licence') ? 'checked="checked"' : '') ?> value="1"/>
64
  <label for="sq_img_licence" class="ml-2"><?php echo esc_html__("Copyright Free Images", _SQ_PLUGIN_NAME_); ?></label>
67
  </div>
68
  </div>
69
 
70
+ <div class="col-12 row mb-1 ml-1">
71
+ <div class="checker col-12 row my-2 py-1">
72
+ <div class="col-12 p-0">
73
+ <div class="col-12 row py-2 mx-0 my-3">
74
+ <div class="col-4 p-1 pr-3">
75
  <div class="font-weight-bold"><?php echo esc_html__("Live Assistant Type", _SQ_PLUGIN_NAME_); ?>:</div>
76
  <div class="small text-black-50"><?php echo esc_html__("Select how you want Squirrly Live Assistant to load in editor.", _SQ_PLUGIN_NAME_); ?></div>
77
  </div>
78
+ <div class="col-8 p-0 input-group">
79
  <select name="sq_sla_type" class="form-control bg-input mb-1">
80
  <option value="auto" <?php echo((SQ_Classes_Helpers_Tools::getOption('sq_sla_type') == 'auto') ? 'selected="selected"' : '') ?>><?php echo esc_html__("Auto", _SQ_PLUGIN_NAME_); ?></option>
81
  <option value="integrated" <?php echo((SQ_Classes_Helpers_Tools::getOption('sq_sla_type') == 'integrated') ? 'selected="selected"' : '') ?>><?php echo esc_html__("Integrated Box", _SQ_PLUGIN_NAME_); ?></option>
87
  </div>
88
  </div>
89
 
90
+ <div class="col-12 row mb-1 ml-1">
91
+ <div class="checker col-12 row my-2 py-1">
92
+ <div class="col-12 p-0 sq-switch sq-switch-sm">
93
  <input type="hidden" name="sq_sla_frontend" value="0"/>
94
  <input type="checkbox" id="sq_sla_frontend" name="sq_sla_frontend" class="sq-switch" <?php echo(SQ_Classes_Helpers_Tools::getOption('sq_sla_frontend') ? 'checked="checked"' : '') ?> value="1"/>
95
  <label for="sq_sla_frontend" class="ml-2"><?php echo esc_html__("Activate Live Assistant in Frontend", _SQ_PLUGIN_NAME_); ?><span class="text-danger"></span><a href="https://howto.squirrly.co/kb/squirrly-live-assistant/#Add-Live-Assistant-in-Frontend" target="_blank"><i class="fa fa-question-circle m-0 px-2" style="display: inline;"></i></a></label>
102
 
103
  <div class="bg-title p-2 sq_advanced">
104
  <h3 class="card-title"><?php echo esc_html__("Places where you do NOT want Squirrly Live Assistant to load", _SQ_PLUGIN_NAME_); ?>:</h3>
105
+ <div class="col-12 text-left m-0 p-0">
106
  <div class="card-title-description mb-0 text-danger"><?php echo esc_html__("Don't select anything if you wish Squirrly Live Assistant to load for all post types.", _SQ_PLUGIN_NAME_); ?></div>
107
  </div>
108
  </div>
109
+ <div class="col-12 py-4 border-bottom tab-panel sq_advanced">
110
+ <div class="col-12 row py-2 mx-0 my-3">
111
+ <div class="col-4 p-0 pr-3 font-weight-bold">
112
  <?php echo esc_html__("Exclusions", _SQ_PLUGIN_NAME_); ?>:
113
  <div class="small text-black-50 my-1"><?php echo esc_html__("Select places where you do NOT want Squirrly Live Assistant to load.", _SQ_PLUGIN_NAME_); ?></div>
114
  <div class="small text-black-50 my-1"><?php echo esc_html__("Hold Control key to select multiple places", _SQ_PLUGIN_NAME_); ?></div>
115
  </div>
116
+ <div class="col-8 p-0 input-group">
117
  <input type="hidden" name="sq_sla_exclude_post_types[]" value="0"/>
118
  <select multiple name="sq_sla_exclude_post_types[]" class="form-control bg-input mb-1" style="height: auto;">
119
  <?php
135
 
136
  </div>
137
 
138
+ <div class="col-12 my-3 p-0">
139
  <?php if (!SQ_Classes_Helpers_Tools::getOption('sq_seoexpert')) { ?>
140
  <div class="py-0 float-right text-right m-2">
141
  <button type="button" class="show_advanced btn rounded-0 btn-link text-black-50 btn-sm p-0 pr-2 m-0"><?php echo esc_html__("Show Advanced Options", _SQ_PLUGIN_NAME_); ?></button>
147
  </form>
148
  </div>
149
  <div class="sq_col_side sticky">
150
+ <div class="card col-12 p-0">
151
  <?php echo SQ_Classes_ObjController::getClass('SQ_Core_BlockSupport')->init(); ?>
152
  <?php echo SQ_Classes_ObjController::getClass('SQ_Core_BlockAssistant')->init(); ?>
153
  </div>
view/Audits/Addpage.php CHANGED
@@ -2,19 +2,19 @@
2
  <div id="sq_wrap">
3
  <?php SQ_Classes_ObjController::getClass('SQ_Core_BlockToolbar')->init(); ?>
4
  <?php do_action('sq_notices'); ?>
5
- <div class="d-flex flex-row my-0 bg-white" style="clear: both !important;">
6
  <?php
7
  if (!current_user_can('sq_manage_focuspages')) {
8
- echo '<div class="col-sm-12 alert alert-success text-center m-0 p-3">' . esc_html__("You do not have permission to access this page. You need Squirrly SEO Admin role.", _SQ_PLUGIN_NAME_) . '</div>';
9
  return;
10
  }
11
  ?>
12
  <?php echo SQ_Classes_ObjController::getClass('SQ_Models_Menu')->getAdminTabs(SQ_Classes_Helpers_Tools::getValue('tab', 'boost'), 'sq_audits'); ?>
13
- <div class="sq_row d-flex flex-row bg-white px-3">
14
- <div class="flex-grow-1 mr-3 sq_flex">
15
  <?php do_action('sq_form_notices'); ?>
16
 
17
- <div class="card col-sm-12 p-0">
18
  <div class="card-body p-2 bg-title rounded-top">
19
  <div class="sq_icons_content p-3 py-4">
20
  <div class="sq_icons sq_addpage_icon m-2"></div>
@@ -22,12 +22,12 @@
22
  <h3 class="card-title"><?php echo esc_html__("Add a page in Audit", _SQ_PLUGIN_NAME_); ?>:</h3>
23
  <div class="card-title-description m-2"><?php echo esc_html__("Verifies the online presence of your website by knowing how your website is performing in terms of Blogging, SEO, Social, Authority, Links, and Traffic", _SQ_PLUGIN_NAME_); ?></div>
24
  </div>
25
- <div id="sq_auditpage" class="card col-sm-12 p-0 tab-panel border-0">
26
  <div class="row px-3">
27
- <form id="sq_auditpage_form" method="get" class="form-inline col-sm-12 ignore">
28
  <input type="hidden" name="page" value="<?php echo SQ_Classes_Helpers_Tools::getValue('page') ?>">
29
  <input type="hidden" name="tab" value="<?php echo SQ_Classes_Helpers_Tools::getValue('tab') ?>">
30
- <div class="sq_filter_label col-sm-12 row p-2">
31
  <?php if (isset($view->labels) && !empty($view->labels)) {
32
  $keyword_labels = SQ_Classes_Helpers_Tools::getValue('slabel', array());
33
  foreach ($view->labels as $category => $label) {
@@ -42,11 +42,11 @@
42
  } ?>
43
  </div>
44
 
45
- <div class="col-sm-12 row px-0 mx-0">
46
 
47
- <div class="col-sm-2 py-2 pl-0 pr-1 mx-0">
48
 
49
- <select name="stype" class="col-sm-12 d-inline-block m-0 p-1" onchange="jQuery('form#sq_auditpage_form').submit();">
50
  <?php
51
  foreach ($patterns as $pattern => $type) {
52
  if (in_array($pattern, array('custom', 'tax-category', 'search', 'archive', '404'))) continue;
@@ -83,13 +83,11 @@
83
  ?>
84
  </select>
85
 
86
- </div>
87
- <div class="col-sm-2 py-2 pl-0 pr-1 mx-0">
88
  <?php if (!empty($view->pages)) {
89
  foreach ($view->pages as $index => $post) {
90
  if (isset($post->ID)) {
91
  ?>
92
- <select name="sstatus" class="col-sm-12 d-inline-block m-0 p-1" onchange="jQuery('form#sq_auditpage_form').submit();">
93
  <option <?php echo((!SQ_Classes_Helpers_Tools::getValue('sstatus', false)) ? 'selected="selected"' : '') ?> value="all"><?php echo esc_html__("Any status", _SQ_PLUGIN_NAME_); ?></option>
94
  <?php
95
 
@@ -107,9 +105,9 @@
107
  } ?>
108
 
109
  </div>
110
- <div class="col-sm-8 p-0 py-2 mx-0">
111
  <div class="d-flex flex-row justify-content-end p-0 m-0">
112
- <input type="search" class="d-inline-block align-middle col-sm-7 p-2 mr-2" id="post-search-input" autofocus name="skeyword" value="<?php echo SQ_Classes_Helpers_Sanitize::escapeKeyword(SQ_Classes_Helpers_Tools::getValue('skeyword')) ?>"/>
113
  <input type="submit" class="btn btn-primary" value="<?php echo esc_html__("Search", _SQ_PLUGIN_NAME_) ?>"/>
114
  <?php if ((SQ_Classes_Helpers_Tools::getIsset('skeyword') && SQ_Classes_Helpers_Tools::getValue('skeyword') <> '#all') || SQ_Classes_Helpers_Tools::getIsset('slabel') || SQ_Classes_Helpers_Tools::getIsset('sid') || SQ_Classes_Helpers_Tools::getIsset('sstatus')) { ?>
115
  <button type="button" class="btn btn-info ml-1 p-v-xs" onclick="location.href = '<?php echo SQ_Classes_Helpers_Tools::getAdminUrl('sq_audits', 'addpage', array('stype=' . SQ_Classes_Helpers_Tools::getValue('stype', 'post') )) ?>';" style="cursor: pointer"><?php echo esc_html__("Show All", _SQ_PLUGIN_NAME_) ?></button>
@@ -123,8 +121,8 @@
123
 
124
  <?php if (!empty($view->pages)) { ?>
125
  <div class="card-body p-0 position-relative">
126
- <div class="col-sm-12 m-0 p-2">
127
- <div class="card col-sm-12 my-1 p-0 border-0 " style="display: inline-block;">
128
 
129
  <table class="table table-striped table-hover">
130
  <thead>
@@ -155,7 +153,7 @@
155
  ?>
156
  <tr>
157
  <td>
158
- <div class="col-sm-12 px-0 mx-0 font-weight-bold" style="font-size: 15px"><?php echo wp_kses_post($post->sq->title) ?></div>
159
  <div class="small " style="font-size: 11px"><?php echo '<a href="' . $post->url . '" class="text-link" rel="permalink" target="_blank">' . urldecode($post->url) . '</a>' ?></div>
160
  </td>
161
  <td style="width: 140px; text-align: center; vertical-align: middle">
@@ -206,7 +204,7 @@
206
  </div>
207
  </div>
208
  <div class="sq_col sq_col_side ">
209
- <div class="card col-sm-12 p-0">
210
  <?php echo SQ_Classes_ObjController::getClass('SQ_Core_BlockSupport')->init(); ?>
211
  <?php //echo SQ_Classes_ObjController::getClass('SQ_Core_BlockAssistant')->init(); ?>
212
  </div>
2
  <div id="sq_wrap">
3
  <?php SQ_Classes_ObjController::getClass('SQ_Core_BlockToolbar')->init(); ?>
4
  <?php do_action('sq_notices'); ?>
5
+ <div class="d-flex flex-row flex-nowrap my-0 bg-nav" style="clear: both !important;">
6
  <?php
7
  if (!current_user_can('sq_manage_focuspages')) {
8
+ echo '<div class="col-12 alert alert-success text-center m-0 p-3">' . esc_html__("You do not have permission to access this page. You need Squirrly SEO Admin role.", _SQ_PLUGIN_NAME_) . '</div>';
9
  return;
10
  }
11
  ?>
12
  <?php echo SQ_Classes_ObjController::getClass('SQ_Models_Menu')->getAdminTabs(SQ_Classes_Helpers_Tools::getValue('tab', 'boost'), 'sq_audits'); ?>
13
+ <div class="d-flex flex-row flex-nowrap flex-grow-1 bg-white px-1 m-0">
14
+ <div class="flex-grow-1 px-1 sq_flex">
15
  <?php do_action('sq_form_notices'); ?>
16
 
17
+ <div class="card col-12 p-0">
18
  <div class="card-body p-2 bg-title rounded-top">
19
  <div class="sq_icons_content p-3 py-4">
20
  <div class="sq_icons sq_addpage_icon m-2"></div>
22
  <h3 class="card-title"><?php echo esc_html__("Add a page in Audit", _SQ_PLUGIN_NAME_); ?>:</h3>
23
  <div class="card-title-description m-2"><?php echo esc_html__("Verifies the online presence of your website by knowing how your website is performing in terms of Blogging, SEO, Social, Authority, Links, and Traffic", _SQ_PLUGIN_NAME_); ?></div>
24
  </div>
25
+ <div id="sq_auditpage" class="card col-12 p-0 tab-panel border-0">
26
  <div class="row px-3">
27
+ <form id="sq_auditpage_form" method="get" class="form-inline col-12 ignore">
28
  <input type="hidden" name="page" value="<?php echo SQ_Classes_Helpers_Tools::getValue('page') ?>">
29
  <input type="hidden" name="tab" value="<?php echo SQ_Classes_Helpers_Tools::getValue('tab') ?>">
30
+ <div class="sq_filter_label col-12 row p-2">
31
  <?php if (isset($view->labels) && !empty($view->labels)) {
32
  $keyword_labels = SQ_Classes_Helpers_Tools::getValue('slabel', array());
33
  foreach ($view->labels as $category => $label) {
42
  } ?>
43
  </div>
44
 
45
+ <div class="col-12 row px-0 mx-0">
46
 
47
+ <div class="col-5 py-2 pl-0 pr-1 mx-0">
48
 
49
+ <select name="stype" class="d-inline-block m-0 p-1" onchange="jQuery('form#sq_auditpage_form').submit();">
50
  <?php
51
  foreach ($patterns as $pattern => $type) {
52
  if (in_array($pattern, array('custom', 'tax-category', 'search', 'archive', '404'))) continue;
83
  ?>
84
  </select>
85
 
 
 
86
  <?php if (!empty($view->pages)) {
87
  foreach ($view->pages as $index => $post) {
88
  if (isset($post->ID)) {
89
  ?>
90
+ <select name="sstatus" class="d-inline-block m-0 p-1" onchange="jQuery('form#sq_auditpage_form').submit();">
91
  <option <?php echo((!SQ_Classes_Helpers_Tools::getValue('sstatus', false)) ? 'selected="selected"' : '') ?> value="all"><?php echo esc_html__("Any status", _SQ_PLUGIN_NAME_); ?></option>
92
  <?php
93
 
105
  } ?>
106
 
107
  </div>
108
+ <div class="col-7 p-0 py-2 mx-0">
109
  <div class="d-flex flex-row justify-content-end p-0 m-0">
110
+ <input type="search" class="d-inline-block align-middle col-7 p-1 mr-1" id="post-search-input" autofocus name="skeyword" value="<?php echo SQ_Classes_Helpers_Sanitize::escapeKeyword(SQ_Classes_Helpers_Tools::getValue('skeyword')) ?>"/>
111
  <input type="submit" class="btn btn-primary" value="<?php echo esc_html__("Search", _SQ_PLUGIN_NAME_) ?>"/>
112
  <?php if ((SQ_Classes_Helpers_Tools::getIsset('skeyword') && SQ_Classes_Helpers_Tools::getValue('skeyword') <> '#all') || SQ_Classes_Helpers_Tools::getIsset('slabel') || SQ_Classes_Helpers_Tools::getIsset('sid') || SQ_Classes_Helpers_Tools::getIsset('sstatus')) { ?>
113
  <button type="button" class="btn btn-info ml-1 p-v-xs" onclick="location.href = '<?php echo SQ_Classes_Helpers_Tools::getAdminUrl('sq_audits', 'addpage', array('stype=' . SQ_Classes_Helpers_Tools::getValue('stype', 'post') )) ?>';" style="cursor: pointer"><?php echo esc_html__("Show All", _SQ_PLUGIN_NAME_) ?></button>
121
 
122
  <?php if (!empty($view->pages)) { ?>
123
  <div class="card-body p-0 position-relative">
124
+ <div class="col-12 m-0 p-2">
125
+ <div class="card col-12 my-1 p-0 border-0 " style="display: inline-block;">
126
 
127
  <table class="table table-striped table-hover">
128
  <thead>
153
  ?>
154
  <tr>
155
  <td>
156
+ <div class="col-12 px-0 mx-0 font-weight-bold" style="font-size: 15px"><?php echo wp_kses_post($post->sq->title) ?></div>
157
  <div class="small " style="font-size: 11px"><?php echo '<a href="' . $post->url . '" class="text-link" rel="permalink" target="_blank">' . urldecode($post->url) . '</a>' ?></div>
158
  </td>
159
  <td style="width: 140px; text-align: center; vertical-align: middle">
204
  </div>
205
  </div>
206
  <div class="sq_col sq_col_side ">
207
+ <div class="card col-12 p-0">
208
  <?php echo SQ_Classes_ObjController::getClass('SQ_Core_BlockSupport')->init(); ?>
209
  <?php //echo SQ_Classes_ObjController::getClass('SQ_Core_BlockAssistant')->init(); ?>
210
  </div>
view/Audits/Audit.php CHANGED
@@ -5,20 +5,19 @@
5
  <div class="d-flex flex-row flex-nowrap my-0 bg-nav" style="clear: both !important;">
6
  <?php
7
  if (!current_user_can('sq_manage_focuspages')) {
8
- echo '<div class="col-sm-12 alert alert-success text-center m-0 p-3">' . esc_html__("You do not have permission to access this page. You need Squirrly SEO Admin role.", _SQ_PLUGIN_NAME_) . '</div>';
9
  return;
10
  }
11
  ?>
12
  <?php echo SQ_Classes_ObjController::getClass('SQ_Models_Menu')->getAuditTabs(); ?>
13
-
14
- <div class="d-flex flex-row flex-nowrap flex-grow-1 bg-white pl-3 pr-0 mr-0">
15
- <div class="flex-grow-1 mr-3 sq_flex">
16
  <?php do_action('sq_form_notices'); ?>
17
 
18
- <div class="card col-sm-12 p-0">
19
 
20
  <div class="card-body p-2 bg-title rounded-top row">
21
- <div class="col-sm-10 text-left m-0 p-0">
22
  <div class="sq_icons_content p-3 py-4">
23
  <div class="sq_icons sq_audit_icon m-2"></div>
24
  </div>
@@ -30,10 +29,10 @@
30
 
31
  <?php if ($view->audit) { ?>
32
 
33
- <div id="sq_audit" class="card col-sm-12 p-0 tab-panel border-0">
34
  <div class="card-content" style="min-height: 150px">
35
  <?php if (SQ_Classes_Helpers_Tools::getValue('sid', false)) { ?>
36
- <div class="form-group text-right col-sm-12 p-0 m-0 mb-3">
37
  <div class="sq_serp_settings_button mx-2 my-0 p-0" style="margin-top:-70px !important">
38
  <button type="button" class="btn btn-info p-v-xs" onclick="location.href = '<?php echo SQ_Classes_Helpers_Tools::getAdminUrl('sq_audits', 'audits') ?>';" style="cursor: pointer"><?php echo esc_html__("Show All", _SQ_PLUGIN_NAME_) ?></button>
39
  </div>
@@ -80,14 +79,14 @@
80
  <div class="sq_separator"></div>
81
 
82
 
83
- <div class="card col-sm-12 p-0 m-0 border-0 shadow-none">
84
- <div class="col-sm-12 text-center row p-0 m-0">
85
- <div class="col-sm-6 m-0 p-2 text-right">
86
  <button class="sq_audit_completed_tasks btn btn-sm btn-success px-3">
87
  <i class="fa fa-check-circle-o mr-2 py-2"></i><?php echo esc_html__("Show Only Completed Tasks", _SQ_PLUGIN_NAME_) ?>
88
  </button>
89
  </div>
90
- <div class="col-sm-6 m-0 p-2 text-left">
91
  <button class="sq_audit_incompleted_tasks btn btn-sm btn-danger px-3">
92
  <i class="fa fa-circle-o mr-2 py-2"></i><?php echo esc_html__("Show Only Incompleted Tasks", _SQ_PLUGIN_NAME_) ?>
93
  </button>
@@ -164,7 +163,7 @@
164
  </div>
165
  </div>
166
  <div class="sq_col_side sticky">
167
- <div class="card col-sm-12 p-0">
168
  <?php echo SQ_Classes_ObjController::getClass('SQ_Core_BlockSupport')->init(); ?>
169
  <?php echo SQ_Classes_ObjController::getClass('SQ_Core_BlockAssistant')->init(); ?>
170
  </div>
5
  <div class="d-flex flex-row flex-nowrap my-0 bg-nav" style="clear: both !important;">
6
  <?php
7
  if (!current_user_can('sq_manage_focuspages')) {
8
+ echo '<div class="col-12 alert alert-success text-center m-0 p-3">' . esc_html__("You do not have permission to access this page. You need Squirrly SEO Admin role.", _SQ_PLUGIN_NAME_) . '</div>';
9
  return;
10
  }
11
  ?>
12
  <?php echo SQ_Classes_ObjController::getClass('SQ_Models_Menu')->getAuditTabs(); ?>
13
+ <div class="d-flex flex-row flex-nowrap flex-grow-1 bg-white px-1 m-0">
14
+ <div class="flex-grow-1 px-1 sq_flex">
 
15
  <?php do_action('sq_form_notices'); ?>
16
 
17
+ <div class="card col-12 p-0">
18
 
19
  <div class="card-body p-2 bg-title rounded-top row">
20
+ <div class="col-10 text-left m-0 p-0">
21
  <div class="sq_icons_content p-3 py-4">
22
  <div class="sq_icons sq_audit_icon m-2"></div>
23
  </div>
29
 
30
  <?php if ($view->audit) { ?>
31
 
32
+ <div id="sq_audit" class="card col-12 p-0 tab-panel border-0">
33
  <div class="card-content" style="min-height: 150px">
34
  <?php if (SQ_Classes_Helpers_Tools::getValue('sid', false)) { ?>
35
+ <div class="form-group text-right col-12 p-0 m-0 mb-3">
36
  <div class="sq_serp_settings_button mx-2 my-0 p-0" style="margin-top:-70px !important">
37
  <button type="button" class="btn btn-info p-v-xs" onclick="location.href = '<?php echo SQ_Classes_Helpers_Tools::getAdminUrl('sq_audits', 'audits') ?>';" style="cursor: pointer"><?php echo esc_html__("Show All", _SQ_PLUGIN_NAME_) ?></button>
38
  </div>
79
  <div class="sq_separator"></div>
80
 
81
 
82
+ <div class="card col-12 p-0 m-0 border-0 shadow-none">
83
+ <div class="col-12 text-center row p-0 m-0">
84
+ <div class="col-6 m-0 p-2 text-right">
85
  <button class="sq_audit_completed_tasks btn btn-sm btn-success px-3">
86
  <i class="fa fa-check-circle-o mr-2 py-2"></i><?php echo esc_html__("Show Only Completed Tasks", _SQ_PLUGIN_NAME_) ?>
87
  </button>
88
  </div>
89
+ <div class="col-6 m-0 p-2 text-left">
90
  <button class="sq_audit_incompleted_tasks btn btn-sm btn-danger px-3">
91
  <i class="fa fa-circle-o mr-2 py-2"></i><?php echo esc_html__("Show Only Incompleted Tasks", _SQ_PLUGIN_NAME_) ?>
92
  </button>
163
  </div>
164
  </div>
165
  <div class="sq_col_side sticky">
166
+ <div class="card col-12 p-0">
167
  <?php echo SQ_Classes_ObjController::getClass('SQ_Core_BlockSupport')->init(); ?>
168
  <?php echo SQ_Classes_ObjController::getClass('SQ_Core_BlockAssistant')->init(); ?>
169
  </div>
view/Audits/AuditPageRow.php CHANGED
@@ -26,7 +26,7 @@ if (strtotime($view->auditpage->audit_datetime)) {
26
  <td style="min-width: 380px;">
27
 
28
  <?php if ($post instanceof SQ_Models_Domain_Post) { ?>
29
- <div class="sq_auditpages_title col-sm-12 px-0 mx-0 font-weight-bold">
30
  <?php echo (isset($post->sq->title) ? $post->sq->title : '') ?> <?php echo(($post->post_status <> 'publish' && $post->post_status <> 'inherit' && $post->post_status <> '') ? ' <spam style="font-weight: normal">(' . esc_html($post->post_status) . ')</spam>' : '') ?>
31
  <?php if (isset($edit_link) && $edit_link <> '') { ?>
32
  <a href="<?php echo esc_url($edit_link) ?>" target="_blank">
26
  <td style="min-width: 380px;">
27
 
28
  <?php if ($post instanceof SQ_Models_Domain_Post) { ?>
29
+ <div class="sq_auditpages_title col-12 px-0 mx-0 font-weight-bold">
30
  <?php echo (isset($post->sq->title) ? $post->sq->title : '') ?> <?php echo(($post->post_status <> 'publish' && $post->post_status <> 'inherit' && $post->post_status <> '') ? ' <spam style="font-weight: normal">(' . esc_html($post->post_status) . ')</spam>' : '') ?>
31
  <?php if (isset($edit_link) && $edit_link <> '') { ?>
32
  <a href="<?php echo esc_url($edit_link) ?>" target="_blank">
view/Audits/AuditPages.php CHANGED
@@ -1,12 +1,12 @@
1
- <div class="card col-sm-12 px-0 py-2 border-0 m-0">
2
- <div class="card-body">
3
  <?php
4
  if (!empty($view->auditpages)) { ?>
5
 
6
  <h4 class="card-title"><?php echo esc_html__("Audited pages", _SQ_PLUGIN_NAME_) ?></h4>
7
  <div class="card-text mx-0 my-2 p-0">
8
  <div class="card-body p-0 position-relative">
9
- <div class=" col-sm-12 m-0 p-0 my-2 py-2 py-0 flexcroll">
10
  <table class="table table-striped table-hover">
11
  <thead>
12
  <tr>
@@ -51,7 +51,7 @@
51
 
52
  <div class="card-body">
53
  <h4 class="text-center"><?php echo esc_html__("Welcome to Squirrly SEO Audits", _SQ_PLUGIN_NAME_); ?></h4>
54
- <div class="col-sm-12 m-2 text-center">
55
  <a href="<?php echo SQ_Classes_Helpers_Tools::getAdminUrl('sq_audits', 'addpage') ?>" class="btn btn-lg btn-success"><i class="fa fa-plus-square-o"></i> <?php echo esc_html__("Add a new page for Audit to get started", _SQ_PLUGIN_NAME_); ?>
56
  </a>
57
  </div>
@@ -60,11 +60,11 @@
60
  <?php } else { ?>
61
 
62
  <div class="card-body">
63
- <div class="col-sm-12 px-2 py-3 text-center">
64
  <img src="<?php echo _SQ_ASSETS_URL_ . 'img/settings/noconnection.jpg' ?>" style="width: 300px">
65
  </div>
66
- <div class="col-sm-12 m-2 text-center">
67
- <div class="col-sm-12 alert alert-success text-center m-0 p-3">
68
  <i class="fa fa-exclamation-triangle" style="font-size: 18px !important;"></i> <?php echo sprintf(esc_html__("There is a connection error with Squirrly Cloud. Please check the connection and %srefresh the page%s.", _SQ_PLUGIN_NAME_), '<a href="javascript:location.reload();" >', '</a>') ?>
69
  </div>
70
  </div>
1
+ <div class="card col-12 px-0 py-2 border-0 m-0">
2
+ <div class="card-body p-1">
3
  <?php
4
  if (!empty($view->auditpages)) { ?>
5
 
6
  <h4 class="card-title"><?php echo esc_html__("Audited pages", _SQ_PLUGIN_NAME_) ?></h4>
7
  <div class="card-text mx-0 my-2 p-0">
8
  <div class="card-body p-0 position-relative">
9
+ <div class=" col-12 m-0 p-0 my-2 py-2 py-0 flexcroll">
10
  <table class="table table-striped table-hover">
11
  <thead>
12
  <tr>
51
 
52
  <div class="card-body">
53
  <h4 class="text-center"><?php echo esc_html__("Welcome to Squirrly SEO Audits", _SQ_PLUGIN_NAME_); ?></h4>
54
+ <div class="col-12 m-2 text-center">
55
  <a href="<?php echo SQ_Classes_Helpers_Tools::getAdminUrl('sq_audits', 'addpage') ?>" class="btn btn-lg btn-success"><i class="fa fa-plus-square-o"></i> <?php echo esc_html__("Add a new page for Audit to get started", _SQ_PLUGIN_NAME_); ?>
56
  </a>
57
  </div>
60
  <?php } else { ?>
61
 
62
  <div class="card-body">
63
+ <div class="col-12 px-2 py-3 text-center">
64
  <img src="<?php echo _SQ_ASSETS_URL_ . 'img/settings/noconnection.jpg' ?>" style="width: 300px">
65
  </div>
66
+ <div class="col-12 m-2 text-center">
67
+ <div class="col-12 alert alert-success text-center m-0 p-3">
68
  <i class="fa fa-exclamation-triangle" style="font-size: 18px !important;"></i> <?php echo sprintf(esc_html__("There is a connection error with Squirrly Cloud. Please check the connection and %srefresh the page%s.", _SQ_PLUGIN_NAME_), '<a href="javascript:location.reload();" >', '</a>') ?>
69
  </div>
70
  </div>
view/Audits/AuditStats.php CHANGED
@@ -1,5 +1,5 @@
1
  <?php if (!empty($view->auditpages)) { ?>
2
- <div class="card-body px-3 p-2">
3
  <?php
4
 
5
  $call_timestamp = 0;
@@ -35,7 +35,7 @@
35
  ?>
36
  <div class="sq_audit_score row p-2">
37
  <?php if (SQ_Classes_Helpers_Tools::getValue('sid', false)) { ?>
38
- <div class="col-sm row sq_audit_header">
39
  <div class="m-2 p-0 text-center" style="width: 115px;">
40
  <input id="knob_<?php echo (int)$view->audit->id ?>" type="text" value="<?php echo (int)$view->audit->score ?>" class="dial" style="box-shadow: none; border: none; background: none; width: 1px; color: white" title="<?php echo esc_html__("Audit Score", _SQ_PLUGIN_NAME_) ?>">
41
  <script>jQuery("#knob_<?php echo (int)$view->audit->id ?>").knob({
@@ -48,7 +48,7 @@
48
  'fgColor': '<?php echo esc_attr($color) ?>'
49
  });</script>
50
  </div>
51
- <div class="col-sm">
52
  <div>
53
  <span class="sq_audit_header_title"><?php echo esc_html__("Your audit score is", _SQ_PLUGIN_NAME_) . ': ' ?></span>
54
  <span class="sq_audit_header_score"><?php echo (int)$view->audit->score ?></span>
@@ -57,8 +57,8 @@
57
  </div>
58
  </div>
59
  <?php } else { ?>
60
- <div class="col-sm sq_audit_header">
61
- <a href="<?php echo SQ_Classes_Helpers_Tools::getAdminUrl('sq_audits', 'addpage') ?>" class="btn btn-lg btn-warning text-white mx-3">
62
  <i class="fa fa-plus-square-o"></i> <?php echo esc_html__("Add a new page for Audit", _SQ_PLUGIN_NAME_); ?>
63
  </a>
64
  </div>
@@ -83,14 +83,14 @@
83
  </div>
84
  <?php } else { ?>
85
  <div class="sq_audit_score row p-2">
86
- <div class="col-sm-8 sq_audit_header">
87
  <?php if ($call_timestamp > 0) { ?>
88
  <h3 class="card-title text-info">
89
  <i class="fa fa-clock-o" style="font-size: 26px !important;" aria-hidden="true"></i> <?php echo esc_html__("Audit in progress", _SQ_PLUGIN_NAME_); ?>
90
  </h3>
91
  <?php } ?>
92
  </div>
93
- <div class="col-sm-4 float-right text-right">
94
  <div class="my-1">
95
  <?php echo esc_html__("Audit not ready yet", _SQ_PLUGIN_NAME_) ?>
96
  </div>
@@ -158,8 +158,8 @@
158
  }
159
 
160
  ?>
161
- <div class="sq_stats row p-3 m-0 ">
162
- <div class="card col-sm p-0 m-1 bg-white shadow-sm">
163
  <div class="card-content overflow-hidden m-0">
164
  <div class="media align-items-stretch">
165
  <div class="sq_stats_icons_content p-3 py-4 media-middle">
@@ -169,7 +169,7 @@
169
  <h5><?php echo esc_html__("Scores", _SQ_PLUGIN_NAME_) ?></h5>
170
  <span class="small"><?php echo sprintf(esc_html__("the latest %s days evolution for Audit", _SQ_PLUGIN_NAME_), $days_back) ?></span>
171
  <div class="media-right py-3 media-middle ">
172
- <div class="col-sm-12 px-0">
173
  <div id="sq_chart_score" class="sq_chart no-p" style="width:95%; height: 90px;"></div>
174
  <script>
175
  if (typeof google !== 'undefined') {
@@ -185,7 +185,7 @@
185
  </div>
186
  </div>
187
  </div>
188
- <div class="card col-sm p-0 m-1 bg-white shadow-sm">
189
  <div class="card-content overflow-hidden m-0">
190
  <div class="media align-items-stretch">
191
  <div class="sq_stats_icons_content p-3 py-4 media-middle">
@@ -198,12 +198,12 @@
198
  <div class="media-right py-3 media-middle ">
199
  <?php if (!empty($progress)) {
200
  foreach ($progress as $value) {
201
- echo '<h6 class="col-sm-12 px-0 text-success" style="line-height: 25px;font-size: 14px;"><i class="fa fa-arrow-up" style="font-size: 9px !important;margin: 0 5px;vertical-align: middle;"></i> ' . $value . '</h6>';
202
  }
203
  ?>
204
  <a class="btn btn-sm btn-success" href="https://twitter.com/intent/tweet?text=<?php echo urlencode('I love the results I get with Squirrly SEO Audit for my website. @SquirrlyHQ #SEO') ?>">Share Your Success</a><?php
205
  } else {
206
- echo '<h4 class="col-sm-12 px-0 text-info">' . esc_html__("No progress found yet", _SQ_PLUGIN_NAME_) . '</h4>';
207
  } ?>
208
  </div>
209
 
@@ -214,8 +214,8 @@
214
  </div>
215
  </div>
216
 
217
- <div class="card col-sm-12 px-0 py-2 border-0 m-0">
218
- <div class="card-body">
219
  <h4 class="card-title"><?php echo esc_html__("Audit History", _SQ_PLUGIN_NAME_) ?></h4>
220
  <div class="card-text mx-0 my-2 p-0">
221
  <form class="sq_form_bulk_submit" method="get">
@@ -234,7 +234,7 @@
234
  <th scope="col" class="text-center"><?php echo esc_html__("Audit Score", _SQ_PLUGIN_NAME_) ?></th>
235
  <th scope="col" class="text-right"><?php echo esc_html__("Page(s)", _SQ_PLUGIN_NAME_) ?></th>
236
  <th scope="col" class="text-center"><?php echo esc_html__("Date", _SQ_PLUGIN_NAME_) ?></th>
237
- <th></th>
238
  </tr>
239
  </thead>
240
  <tbody>
@@ -252,8 +252,8 @@
252
  echo count((array)$audit->urls) . ' ' . esc_html__("pages", _SQ_PLUGIN_NAME_);
253
  } ?></td>
254
  <td class="text-center"><?php echo date('d M Y', strtotime($date)) ?></td>
255
- <td style="width: 100px;">
256
- <a href="<?php echo SQ_Classes_Helpers_Tools::getAdminUrl('sq_audits', 'audit', array('sid=' . (int)$audit->id)) ?>" class="btn btn-success btn-sm"><?php echo esc_html__("Show Audit", _SQ_PLUGIN_NAME_) ?></a>
257
  </td>
258
  </tr>
259
  <?php } ?>
1
  <?php if (!empty($view->auditpages)) { ?>
2
+ <div class="card-body p-2">
3
  <?php
4
 
5
  $call_timestamp = 0;
35
  ?>
36
  <div class="sq_audit_score row p-2">
37
  <?php if (SQ_Classes_Helpers_Tools::getValue('sid', false)) { ?>
38
+ <div class="col row sq_audit_header">
39
  <div class="m-2 p-0 text-center" style="width: 115px;">
40
  <input id="knob_<?php echo (int)$view->audit->id ?>" type="text" value="<?php echo (int)$view->audit->score ?>" class="dial" style="box-shadow: none; border: none; background: none; width: 1px; color: white" title="<?php echo esc_html__("Audit Score", _SQ_PLUGIN_NAME_) ?>">
41
  <script>jQuery("#knob_<?php echo (int)$view->audit->id ?>").knob({
48
  'fgColor': '<?php echo esc_attr($color) ?>'
49
  });</script>
50
  </div>
51
+ <div class="col">
52
  <div>
53
  <span class="sq_audit_header_title"><?php echo esc_html__("Your audit score is", _SQ_PLUGIN_NAME_) . ': ' ?></span>
54
  <span class="sq_audit_header_score"><?php echo (int)$view->audit->score ?></span>
57
  </div>
58
  </div>
59
  <?php } else { ?>
60
+ <div class="col sq_audit_header">
61
+ <a href="<?php echo SQ_Classes_Helpers_Tools::getAdminUrl('sq_audits', 'addpage') ?>" class="btn btn-lg btn-warning text-white mx-1">
62
  <i class="fa fa-plus-square-o"></i> <?php echo esc_html__("Add a new page for Audit", _SQ_PLUGIN_NAME_); ?>
63
  </a>
64
  </div>
83
  </div>
84
  <?php } else { ?>
85
  <div class="sq_audit_score row p-2">
86
+ <div class="col-8 sq_audit_header">
87
  <?php if ($call_timestamp > 0) { ?>
88
  <h3 class="card-title text-info">
89
  <i class="fa fa-clock-o" style="font-size: 26px !important;" aria-hidden="true"></i> <?php echo esc_html__("Audit in progress", _SQ_PLUGIN_NAME_); ?>
90
  </h3>
91
  <?php } ?>
92
  </div>
93
+ <div class="col-4 float-right text-right">
94
  <div class="my-1">
95
  <?php echo esc_html__("Audit not ready yet", _SQ_PLUGIN_NAME_) ?>
96
  </div>
158
  }
159
 
160
  ?>
161
+ <div class="sq_stats row p-2 m-0 ">
162
+ <div class="card col p-0 m-1 bg-white shadow-sm">
163
  <div class="card-content overflow-hidden m-0">
164
  <div class="media align-items-stretch">
165
  <div class="sq_stats_icons_content p-3 py-4 media-middle">
169
  <h5><?php echo esc_html__("Scores", _SQ_PLUGIN_NAME_) ?></h5>
170
  <span class="small"><?php echo sprintf(esc_html__("the latest %s days evolution for Audit", _SQ_PLUGIN_NAME_), $days_back) ?></span>
171
  <div class="media-right py-3 media-middle ">
172
+ <div class="col-12 px-0">
173
  <div id="sq_chart_score" class="sq_chart no-p" style="width:95%; height: 90px;"></div>
174
  <script>
175
  if (typeof google !== 'undefined') {
185
  </div>
186
  </div>
187
  </div>
188
+ <div class="card col p-0 m-1 bg-white shadow-sm">
189
  <div class="card-content overflow-hidden m-0">
190
  <div class="media align-items-stretch">
191
  <div class="sq_stats_icons_content p-3 py-4 media-middle">
198
  <div class="media-right py-3 media-middle ">
199
  <?php if (!empty($progress)) {
200
  foreach ($progress as $value) {
201
+ echo '<h6 class="col-12 px-0 text-success" style="line-height: 25px;font-size: 14px;"><i class="fa fa-arrow-up" style="font-size: 9px !important;margin: 0 5px;vertical-align: middle;"></i> ' . $value . '</h6>';
202
  }
203
  ?>
204
  <a class="btn btn-sm btn-success" href="https://twitter.com/intent/tweet?text=<?php echo urlencode('I love the results I get with Squirrly SEO Audit for my website. @SquirrlyHQ #SEO') ?>">Share Your Success</a><?php
205
  } else {
206
+ echo '<h4 class="col-12 px-0 text-info">' . esc_html__("No progress found yet", _SQ_PLUGIN_NAME_) . '</h4>';
207
  } ?>
208
  </div>
209
 
214
  </div>
215
  </div>
216
 
217
+ <div class="card col-12 px-0 py-2 border-0 m-0">
218
+ <div class="card-body p-1">
219
  <h4 class="card-title"><?php echo esc_html__("Audit History", _SQ_PLUGIN_NAME_) ?></h4>
220
  <div class="card-text mx-0 my-2 p-0">
221
  <form class="sq_form_bulk_submit" method="get">
234
  <th scope="col" class="text-center"><?php echo esc_html__("Audit Score", _SQ_PLUGIN_NAME_) ?></th>
235
  <th scope="col" class="text-right"><?php echo esc_html__("Page(s)", _SQ_PLUGIN_NAME_) ?></th>
236
  <th scope="col" class="text-center"><?php echo esc_html__("Date", _SQ_PLUGIN_NAME_) ?></th>
237
+ <th scope="col" ></th>
238
  </tr>
239
  </thead>
240
  <tbody>
252
  echo count((array)$audit->urls) . ' ' . esc_html__("pages", _SQ_PLUGIN_NAME_);
253
  } ?></td>
254
  <td class="text-center"><?php echo date('d M Y', strtotime($date)) ?></td>
255
+ <td >
256
+ <a href="<?php echo SQ_Classes_Helpers_Tools::getAdminUrl('sq_audits', 'audit', array('sid=' . (int)$audit->id)) ?>" class="btn <?php echo ($cnt == 1 ? 'btn-success' : 'btn-light border') ?> btn-sm" style="min-width: 150px"><?php echo ($cnt == 1 ? esc_html__("Show Latest Audit", _SQ_PLUGIN_NAME_) : esc_html__("Show Audit", _SQ_PLUGIN_NAME_)) ?></a>
257
  </td>
258
  </tr>
259
  <?php } ?>
view/Audits/Audits.php CHANGED
@@ -5,51 +5,51 @@
5
  <div class="d-flex flex-row my-0 bg-white" style="clear: both !important;">
6
  <?php
7
  if (!current_user_can('sq_manage_focuspages')) {
8
- echo '<div class="col-sm-12 alert alert-success text-center m-0 p-3">' . esc_html__("You do not have permission to access this page. You need Squirrly SEO Admin role.", _SQ_PLUGIN_NAME_) . '</div>';
9
  return;
10
  }
11
  ?>
12
  <?php echo SQ_Classes_ObjController::getClass('SQ_Models_Menu')->getAdminTabs(SQ_Classes_Helpers_Tools::getValue('tab', 'audits'), 'sq_audits'); ?>
13
 
14
- <div class="d-flex flex-row flex-nowrap flex-grow-1 bg-white pl-3 pr-0 mr-0">
15
- <div class="flex-grow-1 mr-3 sq_flex">
16
  <?php do_action('sq_form_notices'); ?>
17
 
18
- <div class="card col-sm-12 p-0">
19
 
20
  <div class="card-body p-2 bg-title rounded-top row">
21
- <div class="col-sm-10 text-left m-0 p-0">
22
  <div class="sq_icons_content p-3 py-4">
23
  <div class="sq_icons sq_audit_icon m-2"></div>
24
  </div>
25
  <h3 class="card-title"><?php echo esc_html__("Audits", _SQ_PLUGIN_NAME_); ?>:</h3>
26
  <div class="card-title-description m-2"><?php echo esc_html__("Verifies the online presence of your website by knowing how your website is performing in terms of Blogging, SEO, Social, Authority, Links, and Traffic", _SQ_PLUGIN_NAME_); ?></div>
27
  </div>
28
- <div class="col-sm-2 text-right">
29
  <i class="fa fa-refresh m-2 sq_auditpages_refresh" style="font-size: 20px !important; cursor: pointer;"></i>
30
 
31
  </div>
32
  </div>
33
 
34
- <div id="sq_audits" class="card col-sm-12 p-0 tab-panel border-0">
35
  <?php do_action('sq_subscription_notices'); ?>
36
 
37
  <?php
38
  $connect = json_decode(wp_json_encode(SQ_Classes_Helpers_Tools::getOption('connect')));
39
  if (!$connect->google_analytics) { ?>
40
- <div class="form-group my-2 col-sm-8 offset-2">
41
  <?php echo $view->getView('Connect/GoogleAnalytics'); ?>
42
  </div>
43
  <?php } ?>
44
 
45
- <div class="card col-sm-12 p-0 m-0 border-0 shadow-none">
46
  <div class="card-content sq_auditstatus_content m-0">
47
  <?php echo $view->getView('Audits/AuditStats'); ?>
48
  </div>
49
  </div>
50
  </div>
51
 
52
- <div class="card col-sm-12 border-0 m-0 p-0">
53
  <div class="sq_auditpages_content">
54
  <?php
55
  $content = $view->getView('Audits/AuditPages');
@@ -62,12 +62,12 @@
62
  </div>
63
 
64
  <div class="card-body">
65
- <div class="col-sm-12 my-2 text-black-50">
66
  <em><?php echo sprintf(esc_html__("%sNote:%s remember that it takes anywhere between %s1 minute to 5 minutes%s to generate the new audit for each page. There is a lot of processing involved.", _SQ_PLUGIN_NAME_), '<strong>', '</strong>', '<strong>', '</strong>'); ?></em>
67
  </div>
68
  </div>
69
 
70
- <div class="card col-sm-12 bg-cta text-white rounded-0 py-0">
71
  <div class="card-body">
72
  <h4 class="text-center text-white">
73
  <?php echo sprintf(esc_html__("Learn how to improve your SEO Audit score over time %sClick Here%s", _SQ_PLUGIN_NAME_), '<a href="https://plugin.squirrly.co/wordpress-seo/what-is-the-site-visibility-score/" target="_blank" style="color: #ffea2a" >', '</a>') ?>
@@ -76,13 +76,11 @@
76
  </div>
77
  </div>
78
  </div>
79
-
80
-
81
- </div>
82
- <div class="sq_col_side sticky">
83
- <div class="card col-sm-12 p-0">
84
- <?php echo SQ_Classes_ObjController::getClass('SQ_Core_BlockSupport')->init(); ?>
85
- <?php echo SQ_Classes_ObjController::getClass('SQ_Core_BlockAssistant')->init(); ?>
86
  </div>
87
  </div>
88
  </div>
5
  <div class="d-flex flex-row my-0 bg-white" style="clear: both !important;">
6
  <?php
7
  if (!current_user_can('sq_manage_focuspages')) {
8
+ echo '<div class="col-12 alert alert-success text-center m-0 p-3">' . esc_html__("You do not have permission to access this page. You need Squirrly SEO Admin role.", _SQ_PLUGIN_NAME_) . '</div>';
9
  return;
10
  }
11
  ?>
12
  <?php echo SQ_Classes_ObjController::getClass('SQ_Models_Menu')->getAdminTabs(SQ_Classes_Helpers_Tools::getValue('tab', 'audits'), 'sq_audits'); ?>
13
 
14
+ <div class="d-flex flex-row flex-nowrap flex-grow-1 bg-white px-1 m-0">
15
+ <div class="flex-grow-1 px-1 sq_flex">
16
  <?php do_action('sq_form_notices'); ?>
17
 
18
+ <div class="card col-12 p-0">
19
 
20
  <div class="card-body p-2 bg-title rounded-top row">
21
+ <div class="col-10 text-left m-0 p-0">
22
  <div class="sq_icons_content p-3 py-4">
23
  <div class="sq_icons sq_audit_icon m-2"></div>
24
  </div>
25
  <h3 class="card-title"><?php echo esc_html__("Audits", _SQ_PLUGIN_NAME_); ?>:</h3>
26
  <div class="card-title-description m-2"><?php echo esc_html__("Verifies the online presence of your website by knowing how your website is performing in terms of Blogging, SEO, Social, Authority, Links, and Traffic", _SQ_PLUGIN_NAME_); ?></div>
27
  </div>
28
+ <div class="col-2 text-right">
29
  <i class="fa fa-refresh m-2 sq_auditpages_refresh" style="font-size: 20px !important; cursor: pointer;"></i>
30
 
31
  </div>
32
  </div>
33
 
34
+ <div id="sq_audits" class="card col-12 p-0 tab-panel border-0">
35
  <?php do_action('sq_subscription_notices'); ?>
36
 
37
  <?php
38
  $connect = json_decode(wp_json_encode(SQ_Classes_Helpers_Tools::getOption('connect')));
39
  if (!$connect->google_analytics) { ?>
40
+ <div class="form-group my-2 col-8 offset-2">
41
  <?php echo $view->getView('Connect/GoogleAnalytics'); ?>
42
  </div>
43
  <?php } ?>
44
 
45
+ <div class="card col-12 p-0 m-0 border-0 shadow-none">
46
  <div class="card-content sq_auditstatus_content m-0">
47
  <?php echo $view->getView('Audits/AuditStats'); ?>
48
  </div>
49
  </div>
50
  </div>
51
 
52
+ <div class="card col-12 border-0 m-0 p-0">
53
  <div class="sq_auditpages_content">
54
  <?php
55
  $content = $view->getView('Audits/AuditPages');
62
  </div>
63
 
64
  <div class="card-body">
65
+ <div class="col-12 my-2 text-black-50">
66
  <em><?php echo sprintf(esc_html__("%sNote:%s remember that it takes anywhere between %s1 minute to 5 minutes%s to generate the new audit for each page. There is a lot of processing involved.", _SQ_PLUGIN_NAME_), '<strong>', '</strong>', '<strong>', '</strong>'); ?></em>
67
  </div>
68
  </div>
69
 
70
+ <div class="card col-12 bg-cta text-white rounded-0 py-0">
71
  <div class="card-body">
72
  <h4 class="text-center text-white">
73
  <?php echo sprintf(esc_html__("Learn how to improve your SEO Audit score over time %sClick Here%s", _SQ_PLUGIN_NAME_), '<a href="https://plugin.squirrly.co/wordpress-seo/what-is-the-site-visibility-score/" target="_blank" style="color: #ffea2a" >', '</a>') ?>
76
  </div>
77
  </div>
78
  </div>
79
+ <div class="sq_col_side sticky">
80
+ <div class="card col-12 p-0">
81
+ <?php echo SQ_Classes_ObjController::getClass('SQ_Core_BlockSupport')->init(); ?>
82
+ <?php echo SQ_Classes_ObjController::getClass('SQ_Core_BlockAssistant')->init(); ?>
83
+ </div>
 
 
84
  </div>
85
  </div>
86
  </div>
view/Audits/Compare.php CHANGED
@@ -8,20 +8,20 @@
8
  <div class="d-flex flex-row flex-nowrap my-0 bg-nav">
9
  <?php
10
  if (!current_user_can('sq_manage_focuspages')) {
11
- echo '<div class="col-sm-12 alert alert-success text-center m-0 p-3">' . esc_html__("You do not have permission to access this page. You need Squirrly SEO Admin role.", _SQ_PLUGIN_NAME_) . '</div>';
12
  return;
13
  }
14
  ?>
15
  <?php echo SQ_Classes_ObjController::getClass('SQ_Models_Menu')->getAuditTabs(); ?>
16
 
17
- <div class="d-flex flex-row flex-nowrap flex-grow-1 bg-white pl-3 pr-0 mr-0">
18
- <div class="flex-grow-1 mr-3 sq_flex">
19
  <?php do_action('sq_form_notices'); ?>
20
 
21
- <div class="card col-sm-12 p-0">
22
 
23
  <div class="card-body p-2 bg-title rounded-top row">
24
- <div class="col-sm-10 text-left m-0 p-0">
25
  <div class="sq_icons_content p-3 py-4">
26
  <div class="sq_icons sq_audit_icon m-2"></div>
27
  </div>
@@ -30,7 +30,7 @@
30
  </div>
31
  </div>
32
 
33
- <div id="sq_audit" class="card col-sm-12 p-0 tab-panel border-0">
34
  <div class="card-content" style="min-height: 150px">
35
  <?php if (!empty($view->audits)) {
36
  //set the first audit as referrence
@@ -39,7 +39,7 @@
39
  //get the modal window for the assistant popup
40
  echo SQ_Classes_ObjController::getClass('SQ_Models_Assistant')->getModal();
41
  ?>
42
- <div class="form-group text-right col-sm-12 p-0 m-0 mb-3">
43
  <div class="sq_serp_settings_button mx-2 my-0 p-0" style="margin-top:-70px !important">
44
  <button type="button" class="btn btn-info p-v-xs" onclick="location.href = '<?php echo SQ_Classes_Helpers_Tools::getAdminUrl('sq_audits', 'audits') ?>';" style="cursor: pointer"><?php echo esc_html__("Show All", _SQ_PLUGIN_NAME_) ?></button>
45
  </div>
@@ -69,7 +69,7 @@
69
  <td rowspan="2" class="sq_first_header_column text-center px-3">
70
 
71
 
72
- <div class="col-sm-12">
73
  <input id="knob_<?php echo (int)$all->id ?>" type="text" value="<?php echo (int)$all->score ?>" class="dial audit_score" title="<?php echo esc_html__("Audit Score", _SQ_PLUGIN_NAME_) ?>">
74
  <script>jQuery("#knob_<?php echo (int)$all->id ?>").knob({
75
  'min': 0,
@@ -82,7 +82,7 @@
82
  });</script>
83
  </div>
84
 
85
- <div class="col-sm-12 mt-2">
86
  <?php echo date('d M Y', strtotime($all->audit_datetime)) ?>
87
  </div>
88
  </td>
@@ -144,7 +144,7 @@
144
  ?>
145
  <td class="sq_first_header_column text-center px-3">
146
 
147
- <div class="col-sm-12 sq_task <?php echo esc_attr($dbtask['status']) ?>">
148
  <i class="fa fa-check" style="font-size: 30px !important;" data-category="<?php echo esc_attr($category_name) ?>" data-name="<?php echo esc_attr(ucfirst($group)) ?>" data-completed="<?php echo (int)$audit_task->complete ?>" data-dismiss="modal"></i>
149
  <h4 style="display: none"><?php echo wp_kses_post($audit_task->title) ?></h4>
150
  <div class="description" style="display: none">
@@ -167,7 +167,7 @@
167
  </div>
168
  <div class="message" style="display: none"></div>
169
  </div>
170
- <div class="col-sm-12 mt-2">
171
  <?php echo date('d M Y', strtotime($all->audit_datetime)) ?>
172
  </div>
173
  </td>
8
  <div class="d-flex flex-row flex-nowrap my-0 bg-nav">
9
  <?php
10
  if (!current_user_can('sq_manage_focuspages')) {
11
+ echo '<div class="col-12 alert alert-success text-center m-0 p-3">' . esc_html__("You do not have permission to access this page. You need Squirrly SEO Admin role.", _SQ_PLUGIN_NAME_) . '</div>';
12
  return;
13
  }
14
  ?>
15
  <?php echo SQ_Classes_ObjController::getClass('SQ_Models_Menu')->getAuditTabs(); ?>
16
 
17
+ <div class="d-flex flex-row flex-nowrap flex-grow-1 bg-white px-1 m-0">
18
+ <div class="flex-grow-1 px-1 sq_flex">
19
  <?php do_action('sq_form_notices'); ?>
20
 
21
+ <div class="card col-12 p-0">
22
 
23
  <div class="card-body p-2 bg-title rounded-top row">
24
+ <div class="col-10 text-left m-0 p-0">
25
  <div class="sq_icons_content p-3 py-4">
26
  <div class="sq_icons sq_audit_icon m-2"></div>
27
  </div>
30
  </div>
31
  </div>
32
 
33
+ <div id="sq_audit" class="card col-12 p-0 tab-panel border-0">
34
  <div class="card-content" style="min-height: 150px">
35
  <?php if (!empty($view->audits)) {
36
  //set the first audit as referrence
39
  //get the modal window for the assistant popup
40
  echo SQ_Classes_ObjController::getClass('SQ_Models_Assistant')->getModal();
41
  ?>
42
+ <div class="form-group text-right col-12 p-0 m-0 mb-3">
43
  <div class="sq_serp_settings_button mx-2 my-0 p-0" style="margin-top:-70px !important">
44
  <button type="button" class="btn btn-info p-v-xs" onclick="location.href = '<?php echo SQ_Classes_Helpers_Tools::getAdminUrl('sq_audits', 'audits') ?>';" style="cursor: pointer"><?php echo esc_html__("Show All", _SQ_PLUGIN_NAME_) ?></button>
45
  </div>
69
  <td rowspan="2" class="sq_first_header_column text-center px-3">
70
 
71
 
72
+ <div class="col-12">
73
  <input id="knob_<?php echo (int)$all->id ?>" type="text" value="<?php echo (int)$all->score ?>" class="dial audit_score" title="<?php echo esc_html__("Audit Score", _SQ_PLUGIN_NAME_) ?>">
74
  <script>jQuery("#knob_<?php echo (int)$all->id ?>").knob({
75
  'min': 0,
82
  });</script>
83
  </div>
84
 
85
+ <div class="col-12 mt-2">
86
  <?php echo date('d M Y', strtotime($all->audit_datetime)) ?>
87
  </div>
88
  </td>
144
  ?>
145
  <td class="sq_first_header_column text-center px-3">
146
 
147
+ <div class="col-12 sq_task <?php echo esc_attr($dbtask['status']) ?>">
148
  <i class="fa fa-check" style="font-size: 30px !important;" data-category="<?php echo esc_attr($category_name) ?>" data-name="<?php echo esc_attr(ucfirst($group)) ?>" data-completed="<?php echo (int)$audit_task->complete ?>" data-dismiss="modal"></i>
149
  <h4 style="display: none"><?php echo wp_kses_post($audit_task->title) ?></h4>
150
  <div class="description" style="display: none">
167
  </div>
168
  <div class="message" style="display: none"></div>
169
  </div>
170
+ <div class="col-12 mt-2">
171
  <?php echo date('d M Y', strtotime($all->audit_datetime)) ?>
172
  </div>
173
  </td>
view/Audits/Settings.php CHANGED
@@ -4,14 +4,14 @@
4
  <div class="d-flex flex-row my-0 bg-white" style="clear: both !important;">
5
  <?php
6
  if (!current_user_can('sq_manage_focuspages')) {
7
- echo '<div class="col-sm-12 alert alert-success text-center m-0 p-3">'. esc_html__("You do not have permission to access this page. You need Squirrly SEO Admin role.", _SQ_PLUGIN_NAME_).'</div>';
8
  return;
9
  }
10
  ?>
11
  <?php echo SQ_Classes_ObjController::getClass('SQ_Models_Menu')->getAdminTabs(SQ_Classes_Helpers_Tools::getValue('tab'), 'sq_audits'); ?>
12
- <div class="d-flex flex-row flex-nowrap flex-grow-1 bg-white pl-3 pr-0 mr-0">
13
- <div class="flex-grow-1 mr-3 sq_flex">
14
- <div class="form-group my-4 col-sm-10 offset-1">
15
  <?php echo $view->getView('Connect/GoogleAnalytics'); ?>
16
  <?php echo $view->getView('Connect/GoogleSearchConsole'); ?>
17
  </div>
@@ -21,7 +21,7 @@
21
  <?php SQ_Classes_Helpers_Tools::setNonce('sq_audits_settings', 'sq_nonce'); ?>
22
  <input type="hidden" name="action" value="sq_audits_settings"/>
23
 
24
- <div class="card col-sm-12 p-0">
25
  <div class="card-body p-0 m-0 bg-title rounded-top row">
26
  <div class="card-body p-2 bg-title rounded-top">
27
  <div class="sq_icons_content p-3 py-4">
@@ -32,18 +32,18 @@
32
  </div>
33
  </div>
34
 
35
- <div id="sq_seosettings" class="card col-sm-12 p-0 m-0 border-0 tab-panel border-0">
36
  <div class="card-body p-0">
37
- <div class="col-sm-12 m-0 p-0">
38
- <div class="card col-sm-12 p-0 border-0 ">
39
 
40
 
41
- <div class="col-sm-12 row py-2 mx-0 my-3">
42
- <div class="col-sm-4 p-0 pr-3 font-weight-bold">
43
  <?php echo esc_html__("Audit Email", _SQ_PLUGIN_NAME_); ?>:
44
  <div class="small text-black-50 my-1"><?php echo esc_html__("Enter the email address on which you want to receive the weekly audits.", _SQ_PLUGIN_NAME_); ?></div>
45
  </div>
46
- <div class="col-sm-8 p-0 input-group input-group-lg">
47
  <input type="text" class="form-control bg-input" name="sq_audit_email" value="<?php echo SQ_Classes_Helpers_Tools::getOption('sq_audit_email') ?>"/>
48
  </div>
49
  </div>
@@ -56,14 +56,14 @@
56
 
57
  </div>
58
 
59
- <div class="col-sm-12 my-3 p-0">
60
  <button type="submit" class="btn rounded-0 btn-success btn-lg px-5 mx-4"><?php echo esc_html__("Save Settings", _SQ_PLUGIN_NAME_); ?></button>
61
  </div>
62
  </form>
63
 
64
  </div>
65
  <div class="sq_col_side sticky">
66
- <div class="card col-sm-12 p-0">
67
  <?php echo SQ_Classes_ObjController::getClass('SQ_Core_BlockSupport')->init(); ?>
68
  <?php echo SQ_Classes_ObjController::getClass('SQ_Core_BlockAssistant')->init(); ?>
69
  </div>
4
  <div class="d-flex flex-row my-0 bg-white" style="clear: both !important;">
5
  <?php
6
  if (!current_user_can('sq_manage_focuspages')) {
7
+ echo '<div class="col-12 alert alert-success text-center m-0 p-3">'. esc_html__("You do not have permission to access this page. You need Squirrly SEO Admin role.", _SQ_PLUGIN_NAME_).'</div>';
8
  return;
9
  }
10
  ?>
11
  <?php echo SQ_Classes_ObjController::getClass('SQ_Models_Menu')->getAdminTabs(SQ_Classes_Helpers_Tools::getValue('tab'), 'sq_audits'); ?>
12
+ <div class="d-flex flex-row flex-nowrap flex-grow-1 bg-white px-1 m-0">
13
+ <div class="flex-grow-1 px-1 sq_flex">
14
+ <div class="form-group my-4 col-10 offset-1">
15
  <?php echo $view->getView('Connect/GoogleAnalytics'); ?>
16
  <?php echo $view->getView('Connect/GoogleSearchConsole'); ?>
17
  </div>
21
  <?php SQ_Classes_Helpers_Tools::setNonce('sq_audits_settings', 'sq_nonce'); ?>
22
  <input type="hidden" name="action" value="sq_audits_settings"/>
23
 
24
+ <div class="card col-12 p-0">
25
  <div class="card-body p-0 m-0 bg-title rounded-top row">
26
  <div class="card-body p-2 bg-title rounded-top">
27
  <div class="sq_icons_content p-3 py-4">
32
  </div>
33
  </div>
34
 
35
+ <div id="sq_seosettings" class="card col-12 p-0 m-0 border-0 tab-panel border-0">
36
  <div class="card-body p-0">
37
+ <div class="col-12 m-0 p-0">
38
+ <div class="card col-12 p-0 border-0 ">
39
 
40
 
41
+ <div class="col-12 row py-2 mx-0 my-3">
42
+ <div class="col-4 p-0 pr-3 font-weight-bold">
43
  <?php echo esc_html__("Audit Email", _SQ_PLUGIN_NAME_); ?>:
44
  <div class="small text-black-50 my-1"><?php echo esc_html__("Enter the email address on which you want to receive the weekly audits.", _SQ_PLUGIN_NAME_); ?></div>
45
  </div>
46
+ <div class="col-8 p-0 input-group input-group-lg">
47
  <input type="text" class="form-control bg-input" name="sq_audit_email" value="<?php echo SQ_Classes_Helpers_Tools::getOption('sq_audit_email') ?>"/>
48
  </div>
49
  </div>
56
 
57
  </div>
58
 
59
+ <div class="col-12 my-3 p-0">
60
  <button type="submit" class="btn rounded-0 btn-success btn-lg px-5 mx-4"><?php echo esc_html__("Save Settings", _SQ_PLUGIN_NAME_); ?></button>
61
  </div>
62
  </form>
63
 
64
  </div>
65
  <div class="sq_col_side sticky">
66
+ <div class="card col-12 p-0">
67
  <?php echo SQ_Classes_ObjController::getClass('SQ_Core_BlockSupport')->init(); ?>
68
  <?php echo SQ_Classes_ObjController::getClass('SQ_Core_BlockAssistant')->init(); ?>
69
  </div>
view/Blocks/Account.php CHANGED
@@ -2,7 +2,7 @@
2
  $whole = $decimal = 0;
3
  if (isset($view->checkin->subscription_devkit) && $view->checkin->subscription_devkit) {
4
  ?>
5
- <div class="card-text col-sm-12 p-0 m-0 border-0">
6
  <div class="author">
7
  <i class="avatar sq_icons sq_icon_package"></i>
8
  </div>
@@ -23,7 +23,7 @@ if (isset($view->checkin->subscription_status) && isset($view->checkin->product_
23
  }
24
  ?>
25
  <?php if (SQ_Classes_Helpers_Tools::getMenuVisible('show_panel') && current_user_can('manage_options')) { ?>
26
- <div class="card-text col-sm-12 p-0 m-0 border-0">
27
  <div class="author">
28
  <i class="avatar sq_icons sq_icon_package"></i>
29
  </div>
2
  $whole = $decimal = 0;
3
  if (isset($view->checkin->subscription_devkit) && $view->checkin->subscription_devkit) {
4
  ?>
5
+ <div class="card-text col-12 p-0 m-0 border-0">
6
  <div class="author">
7
  <i class="avatar sq_icons sq_icon_package"></i>
8
  </div>
23
  }
24
  ?>
25
  <?php if (SQ_Classes_Helpers_Tools::getMenuVisible('show_panel') && current_user_can('manage_options')) { ?>
26
+ <div class="card-text col-12 p-0 m-0 border-0">
27
  <div class="author">
28
  <i class="avatar sq_icons sq_icon_package"></i>
29
  </div>
view/Blocks/Connect.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php if (current_user_can('sq_manage_snippets') && SQ_Classes_Helpers_Tools::getOption('sq_seoexpert')) { ?>
2
- <div class="card col-sm-12 p-0 m-0 border-0">
3
- <div class="card-body py-1">
4
  <div id="sq_assistant_sq_seosettings" class="sq_assistant">
5
  <form method="post" action="">
6
  <ul id="sq_assistant_tasks_sq_seosettings" class="p-0 m-0">
1
  <?php if (current_user_can('sq_manage_snippets') && SQ_Classes_Helpers_Tools::getOption('sq_seoexpert')) { ?>
2
+ <div class="card col-12 p-0 m-0 border-0">
3
+ <div class="card-body px-2 py-1">
4
  <div id="sq_assistant_sq_seosettings" class="sq_assistant">
5
  <form method="post" action="">
6
  <ul id="sq_assistant_tasks_sq_seosettings" class="p-0 m-0">
view/Blocks/Features.php CHANGED
@@ -169,7 +169,7 @@ $features = array(
169
  'title' => esc_html__("Remove META Duplicate", _SQ_PLUGIN_NAME_),
170
  'description' => esc_html__("Fix Duplicate Titles and Descriptions without writing a line of code.", _SQ_PLUGIN_NAME_),
171
  'mode' => esc_html__("Free", _SQ_PLUGIN_NAME_),
172
- 'option' => (SQ_Classes_Helpers_Tools::getOption('sq_auto_title') || SQ_Classes_Helpers_Tools::getOption('sq_auto_description') || SQ_Classes_Helpers_Tools::getOption('sq_auto_canonical') || SQ_Classes_Helpers_Tools::getOption('sq_auto_noindex') || (SQ_Classes_Helpers_Tools::getOption('sq_jsonld_clearcode') && SQ_Classes_Helpers_Tools::getOption('sq_auto_jsonld')) ),
173
  'logo' => 'metas_92.png',
174
  'link' => SQ_Classes_Helpers_Tools::getAdminUrl('sq_seosettings', 'metas'),
175
  'details' => 'https://plugin.squirrly.co/duplicate-removal-tool/',
@@ -223,17 +223,17 @@ $features = array(
223
  );
224
  ?>
225
  <a name="features"></a>
226
- <div class="sq_features border my-3 py-3">
227
- <div class="row text-left m-0 p-3">
228
  <div class="px-2 text-center" style="width: 38%;">
229
  <img src="<?php echo _SQ_ASSETS_URL_ . 'img/onboarding/speedometer.png' ?>" style="width: 100%; max-width: 320px;">
230
  </div>
231
- <div class="col-sm px-2 py-5">
232
- <div class="col-sm-12 m-0 p-0">
233
  <h3><?php echo esc_html__("Squirrly SEO Feature Categories", _SQ_PLUGIN_NAME_) ?></h3>
234
  </div>
235
  <div class="sq_separator"></div>
236
- <div class="col-sm-12 m-2 p-0">
237
  <div class="my-2"><?php echo sprintf(esc_html__("With a total of over %s200%s free in-depth features that only Squirrly can offer.", _SQ_PLUGIN_NAME_), '<strong>', '</strong>'); ?>
238
  <a href="https://trello.com/c/BSOkxHSv/116-official-list-squirrly-seo-2019-strategy-features-grouped-by-tools-given-to-you-when-you-install-squirrly" target="_blank">See the full list</a>
239
  </div>
@@ -241,74 +241,60 @@ $features = array(
241
  </div>
242
  </div>
243
 
244
- <div class="row px-3 py-0">
245
- <?php foreach ($features
246
-
247
- as $index => $feature){ ?>
248
- <?php
249
- $color = 'text-info';
250
- $background_color = '#fff';
251
- switch (strtolower($feature['mode'])) {
252
- case 'free':
253
- $color = 'text-success';
254
- $background_color = '#f6fff966';
255
- break;
256
- case 'freemium':
257
- $color = 'text-info';
258
- $background_color = '#f6f7ff57';
259
- break;
260
- case 'pro':
261
- case 'business':
262
- $color = 'text-warning';
263
- $background_color = '#fff6f64d';
264
- break;
265
- }
266
- if($feature['option'] == false){
267
- $background_color = '#d6d6d6';
268
- }
269
- ?>
270
- <?php if ($index % 3 == 0){ ?></div>
271
- <div class="row px-3 py-0"><?php } ?>
272
- <div class="col-sm-4 px-2">
273
- <div class="card py-3 px-3 shadow-sm" style="background-color: <?php echo esc_attr($background_color) ?>">
274
- <div class="card-body m-0 p-0">
275
- <div class="row px-3">
276
- <div class="col-sm-1 p-0">
277
- <img src="<?php echo _SQ_ASSETS_URL_ . 'img/logos/' . $feature['logo'] ?>" style="width: 24px; vertical-align: middle;">
278
  </div>
279
- <div class="col-sm-11 p-0 pl-3"><h5><?php echo wp_kses_post($feature['title']) ?></h5></div>
280
- </div>
281
- <div class="row px-3">
282
-
283
- <div class="col-sm-12 font-weight-bold text-right" style="font-size: 14px">
284
- <a href="https://plugin.squirrly.co/squirrly-seo-pricing/" target="_blank" class="<?php echo esc_attr($color) ?>"><?php echo (string)$feature['mode'] ?></a>
285
  </div>
286
  </div>
287
- <div class="my-2 text-black-50" style="min-height: 70px"><?php echo wp_kses_post($feature['description']) ?></div>
288
- <div class="row my-2 px-3">
289
- <div class="col-sm-6 p-0 text-left">
290
- <a href="<?php echo esc_url($feature['link']) ?>" target="_blank">
291
  <?php if ($feature['option'] === 'na') { ?>
292
- <strong class="text-info"><?php echo esc_html__("Go to feature", _SQ_PLUGIN_NAME_) ?></strong>
 
 
293
  <?php } elseif ($feature['option'] == true) { ?>
294
- <strong class="text-success"><?php echo esc_html__("Active", _SQ_PLUGIN_NAME_) ?></strong>
 
 
295
  <?php } elseif ($feature['option'] == false) { ?>
296
- <strong class="text-danger"><?php echo esc_html__("Inactive", _SQ_PLUGIN_NAME_) ?></strong>
297
  <?php } else { ?>
298
- <strong class="text-info"><?php echo (string)$feature['option'] ?></strong>
 
 
299
  <?php } ?>
300
- </a>
301
- </div>
302
- <div class="col-sm-6 p-0 text-right">
303
- <?php if ($feature['details']) { ?>
304
- <a href="<?php echo esc_url($feature['details']) ?>" target="_blank" class="text-black-50"><?php echo esc_html__("more details", _SQ_PLUGIN_NAME_) ?></a>
305
- <?php } ?>
306
-
307
  </div>
308
  </div>
309
  </div>
310
  </div>
311
- </div>
312
  <?php } ?>
313
  </div>
314
 
169
  'title' => esc_html__("Remove META Duplicate", _SQ_PLUGIN_NAME_),
170
  'description' => esc_html__("Fix Duplicate Titles and Descriptions without writing a line of code.", _SQ_PLUGIN_NAME_),
171
  'mode' => esc_html__("Free", _SQ_PLUGIN_NAME_),
172
+ 'option' => (SQ_Classes_Helpers_Tools::getOption('sq_auto_title') || SQ_Classes_Helpers_Tools::getOption('sq_auto_description') || SQ_Classes_Helpers_Tools::getOption('sq_auto_canonical') || SQ_Classes_Helpers_Tools::getOption('sq_auto_noindex') || (SQ_Classes_Helpers_Tools::getOption('sq_jsonld_clearcode') && SQ_Classes_Helpers_Tools::getOption('sq_auto_jsonld'))),
173
  'logo' => 'metas_92.png',
174
  'link' => SQ_Classes_Helpers_Tools::getAdminUrl('sq_seosettings', 'metas'),
175
  'details' => 'https://plugin.squirrly.co/duplicate-removal-tool/',
223
  );
224
  ?>
225
  <a name="features"></a>
226
+ <div class="sq_features border my-3 py-3" >
227
+ <div class="row text-left m-0 p-3" style="max-width: 1200px;">
228
  <div class="px-2 text-center" style="width: 38%;">
229
  <img src="<?php echo _SQ_ASSETS_URL_ . 'img/onboarding/speedometer.png' ?>" style="width: 100%; max-width: 320px;">
230
  </div>
231
+ <div class="col px-2 py-5">
232
+ <div class="col-12 m-0 p-0">
233
  <h3><?php echo esc_html__("Squirrly SEO Feature Categories", _SQ_PLUGIN_NAME_) ?></h3>
234
  </div>
235
  <div class="sq_separator"></div>
236
+ <div class="col-12 m-2 p-0">
237
  <div class="my-2"><?php echo sprintf(esc_html__("With a total of over %s200%s free in-depth features that only Squirrly can offer.", _SQ_PLUGIN_NAME_), '<strong>', '</strong>'); ?>
238
  <a href="https://trello.com/c/BSOkxHSv/116-official-list-squirrly-seo-2019-strategy-features-grouped-by-tools-given-to-you-when-you-install-squirrly" target="_blank">See the full list</a>
239
  </div>
241
  </div>
242
  </div>
243
 
244
+ <div class="row row-cols-1 row-cols-md-3 px-1 mx-1" style="max-width: 1200px;">
245
+ <?php foreach ($features as $index => $feature) {
246
+ $opacity = 1;
247
+ $background_color = '#f6fff966';
248
+ if ($feature['option'] === false) {
249
+ $background_color = '#eee';
250
+ $opacity = 1;
251
+ }
252
+ ?>
253
+ <div class="col-4 px-2 mb-3">
254
+ <div class="card h-100 p-0 shadow-0 rounded-0" style="background-color: <?php echo esc_attr($background_color) ?>; opacity: <?php echo $opacity ?>">
255
+ <div class="card-body m-0 p-0">
256
+ <div class="row mx-3 my-4">
257
+ <div class="col-1 p-0">
258
+ <img src="<?php echo _SQ_ASSETS_URL_ . 'img/logos/' . $feature['logo'] ?>" style="width: 24px; vertical-align: middle;">
259
+ </div>
260
+ <div class="col-11 p-0 pl-3">
261
+ <h5><?php echo wp_kses_post($feature['title']) ?></h5>
262
+ </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
263
  </div>
264
+ <div class="mx-3 my-4 text-black" style="min-height: 100px; font-size: 16px;">
265
+ <div class="my-2 text-black-50">
266
+ <?php echo wp_kses_post($feature['description']) ?>
267
+ </div>
 
 
268
  </div>
269
  </div>
270
+ <div class="card-footer p-0">
271
+ <div class="row m-0">
272
+ <div class="col-6 px-2 py-1 m-0 align-middle text-left" style="line-height: 30px">
 
273
  <?php if ($feature['option'] === 'na') { ?>
274
+ <a href="<?php echo esc_url($feature['link']) ?>" target="_blank">
275
+ <strong class="text-info"><?php echo esc_html__("Go to feature", _SQ_PLUGIN_NAME_) ?></strong>
276
+ </a>
277
  <?php } elseif ($feature['option'] == true) { ?>
278
+ <a href="<?php echo esc_url($feature['link']) ?>" target="_blank">
279
+ <strong class="text-success"><?php echo esc_html__("Active", _SQ_PLUGIN_NAME_) ?></strong>
280
+ </a>
281
  <?php } elseif ($feature['option'] == false) { ?>
282
+ <a href="<?php echo esc_url($feature['link']) ?>" class="btn btn-success btn-sm px-4"><?php echo esc_html__("Activate", _SQ_PLUGIN_NAME_) ?></a>
283
  <?php } else { ?>
284
+ <a href="<?php echo esc_url($feature['link']) ?>" target="_blank">
285
+ <strong class="text-info"><?php echo (string)$feature['option'] ?></strong>
286
+ </a>
287
  <?php } ?>
288
+ </div>
289
+ <div class="col-6 p-2 m-0 align-middle text-right">
290
+ <?php if ($feature['details']) { ?>
291
+ <a href="<?php echo esc_url($feature['details']) ?>" target="_blank" class="text-black-50"><?php echo esc_html__("more details", _SQ_PLUGIN_NAME_) ?></a>
292
+ <?php } ?>
293
+ </div>
 
294
  </div>
295
  </div>
296
  </div>
297
  </div>
 
298
  <?php } ?>
299
  </div>
300
 
view/Blocks/Jorney.php CHANGED
@@ -1,19 +1,19 @@
1
  <div id="sq_journey">
2
  <?php if ($view->days) { ?>
3
- <div class="card col-sm-12 my-3 p-0">
4
  <div class="card-body m-0 p-0">
5
  <div class="row text-left m-0 p-0">
6
  <div class="row text-left m-0 p-0">
7
  <div class="px-2 py-3" style="max-width: 350px;width: 40%;">
8
  <img src="<?php echo _SQ_ASSETS_URL_ . 'img/onboarding/racing_car.png' ?>" style="width: 100%">
9
  </div>
10
- <div class="col-sm px-2 py-3">
11
- <div class="col-sm-12 m-0 p-0">
12
  <h3 class="card-title" style="color: green;"><?php echo esc_html__("14 Days Journey Course", _SQ_PLUGIN_NAME_); ?>:</h3>
13
  </div>
14
 
15
  <div class="sq_separator"></div>
16
- <div class="col-sm-12 m-2 p-0">
17
  <div class="my-2"><?php echo sprintf(esc_html__("Follow the %sdaily recipe%s from below.", _SQ_PLUGIN_NAME_), '<strong>', '</strong>'); ?></div>
18
  <div class="my-2"><?php echo sprintf(esc_html__("%sJoin%s the rest of the %sJourneyTeam on the Facebook Group%s and if you want you can share with the members that you have started your Journey.", _SQ_PLUGIN_NAME_), '<strong>', '</strong>', '<strong><a href="https://www.facebook.com/groups/SquirrlySEOCustomerService/" target="_blank" >', '</a></strong>'); ?></div>
19
  </div>
@@ -22,16 +22,16 @@
22
  </div>
23
  </div>
24
  <div class="sq_separator"></div>
25
- <div class="card col-sm-12 p-0 m-0 border-0 tab-panel border-0">
26
  <div class="card-body p-0">
27
- <div class="col-sm-12 m-0 p-0">
28
- <div class="card col-sm-12 m-0 p-0 border-0 ">
29
 
30
- <div class="col-sm-12 m-0 p-3 text-center">
31
  <?php if ($view->days > 14) { ?>
32
- <h5 class="col-sm-12 card-title py-3 "><?php echo esc_html__("Congratulations! You've completed the 14 Days Journey To Better Ranking", _SQ_PLUGIN_NAME_); ?></h5>
33
  <?php } else { ?>
34
- <h2 class="col-sm-12 card-title py-3 "><?php echo esc_html__("Your 14 Days Journey To Better Ranking", _SQ_PLUGIN_NAME_); ?></h2>
35
  <?php } ?>
36
 
37
  <ul class="stepper horizontal horizontal-fix focused" id="horizontal-stepper-fix">
@@ -84,22 +84,22 @@
84
 
85
  </div>
86
  <?php } else { ?>
87
- <div class="col-sm-12 my-3 py-3" style="box-shadow: 0 0 10px -3px #994525;">
88
  <div class="row text-left m-0 p-0">
89
  <div class="row text-left m-0 p-0">
90
  <div class="px-2 py-3" style="max-width: 350px;width: 40%;">
91
  <img src="<?php echo _SQ_ASSETS_URL_ . 'img/onboarding/racing_car.png' ?>" style="width: 100%">
92
  </div>
93
- <div class="col-sm px-2 py-3">
94
- <div class="col-sm-12 m-0 p-0">
95
  <h3 class="card-title" style="color: green;"><?php echo esc_html__("14 Days Journey Course", _SQ_PLUGIN_NAME_); ?>:</h3>
96
  </div>
97
 
98
  <div class="sq_separator"></div>
99
- <div class="col-sm-12 m-2 p-0">
100
  <div class="card-title-description m-2 text-black-50"><?php echo esc_html__("All you need now is to start driving One of your most valuable pages to Better Rankings.", _SQ_PLUGIN_NAME_); ?></div>
101
  </div>
102
- <div class="col-sm-12 m-0 p-3 text-center">
103
  <a href="<?php echo SQ_Classes_Helpers_Tools::getAdminUrl('sq_onboarding', 'step2.1') ?>" class="btn btn-sm btn-success m-0 py-2 px-4"><?php echo esc_html__("I'm ready to start the Journey To Better Ranking", _SQ_PLUGIN_NAME_); ?></a>
104
  </div>
105
  </div>
1
  <div id="sq_journey">
2
  <?php if ($view->days) { ?>
3
+ <div class="card col-12 my-3 p-0">
4
  <div class="card-body m-0 p-0">
5
  <div class="row text-left m-0 p-0">
6
  <div class="row text-left m-0 p-0">
7
  <div class="px-2 py-3" style="max-width: 350px;width: 40%;">
8
  <img src="<?php echo _SQ_ASSETS_URL_ . 'img/onboarding/racing_car.png' ?>" style="width: 100%">
9
  </div>
10
+ <div class="col px-2 py-3">
11
+ <div class="col-12 m-0 p-0">
12
  <h3 class="card-title" style="color: green;"><?php echo esc_html__("14 Days Journey Course", _SQ_PLUGIN_NAME_); ?>:</h3>
13
  </div>
14
 
15
  <div class="sq_separator"></div>
16
+ <div class="col-12 m-2 p-0">
17
  <div class="my-2"><?php echo sprintf(esc_html__("Follow the %sdaily recipe%s from below.", _SQ_PLUGIN_NAME_), '<strong>', '</strong>'); ?></div>
18
  <div class="my-2"><?php echo sprintf(esc_html__("%sJoin%s the rest of the %sJourneyTeam on the Facebook Group%s and if you want you can share with the members that you have started your Journey.", _SQ_PLUGIN_NAME_), '<strong>', '</strong>', '<strong><a href="https://www.facebook.com/groups/SquirrlySEOCustomerService/" target="_blank" >', '</a></strong>'); ?></div>
19
  </div>
22
  </div>
23
  </div>
24
  <div class="sq_separator"></div>
25
+ <div class="card col-12 p-0 m-0 border-0 tab-panel border-0">
26
  <div class="card-body p-0">
27
+ <div class="col-12 m-0 p-0">
28
+ <div class="card col-12 m-0 p-0 border-0 ">
29
 
30
+ <div class="col-12 m-0 p-3 text-center">
31
  <?php if ($view->days > 14) { ?>
32
+ <h5 class="col-12 card-title py-3 "><?php echo esc_html__("Congratulations! You've completed the 14 Days Journey To Better Ranking", _SQ_PLUGIN_NAME_); ?></h5>
33
  <?php } else { ?>
34
+ <h2 class="col-12 card-title py-3 "><?php echo esc_html__("Your 14 Days Journey To Better Ranking", _SQ_PLUGIN_NAME_); ?></h2>
35
  <?php } ?>
36
 
37
  <ul class="stepper horizontal horizontal-fix focused" id="horizontal-stepper-fix">
84
 
85
  </div>
86
  <?php } else { ?>
87
+ <div class="col-12 my-3 py-3" style="box-shadow: 0 0 10px -3px #994525;">
88
  <div class="row text-left m-0 p-0">
89
  <div class="row text-left m-0 p-0">
90
  <div class="px-2 py-3" style="max-width: 350px;width: 40%;">
91
  <img src="<?php echo _SQ_ASSETS_URL_ . 'img/onboarding/racing_car.png' ?>" style="width: 100%">
92
  </div>
93
+ <div class="col px-2 py-3">
94
+ <div class="col-12 m-0 p-0">
95
  <h3 class="card-title" style="color: green;"><?php echo esc_html__("14 Days Journey Course", _SQ_PLUGIN_NAME_); ?>:</h3>
96
  </div>
97
 
98
  <div class="sq_separator"></div>
99
+ <div class="col-12 m-2 p-0">
100
  <div class="card-title-description m-2 text-black-50"><?php echo esc_html__("All you need now is to start driving One of your most valuable pages to Better Rankings.", _SQ_PLUGIN_NAME_); ?></div>
101
  </div>
102
+ <div class="col-12 m-0 p-3 text-center">
103
  <a href="<?php echo SQ_Classes_Helpers_Tools::getAdminUrl('sq_onboarding', 'step2.1') ?>" class="btn btn-sm btn-success m-0 py-2 px-4"><?php echo esc_html__("I'm ready to start the Journey To Better Ranking", _SQ_PLUGIN_NAME_); ?></a>
104
  </div>
105
  </div>
view/Blocks/Login.php CHANGED
@@ -1,5 +1,5 @@
1
  <?php $tab = SQ_Classes_Helpers_Tools::getValue('tab', 'register'); ?>
2
- <div class="card col-sm-12 p-0 border-0">
3
  <div class="card-body">
4
  <?php if ($tab == 'login') { ?>
5
  <form method="post" action="<?php echo SQ_Classes_Helpers_Tools::getAdminUrl('sq_dashboard', 'login') ?>">
1
  <?php $tab = SQ_Classes_Helpers_Tools::getValue('tab', 'register'); ?>
2
+ <div class="card col-12 p-0 border-0">
3
  <div class="card-body">
4
  <?php if ($tab == 'login') { ?>
5
  <form method="post" action="<?php echo SQ_Classes_Helpers_Tools::getAdminUrl('sq_dashboard', 'login') ?>">
view/Blocks/Snippet.php CHANGED
@@ -65,9 +65,7 @@ if (SQ_Classes_Helpers_Tools::getOption('sq_api') <> '') {
65
  <input type="hidden" name="sq_hash" id="sq_hash" value="<?php echo esc_attr($view->post->hash); ?>">
66
  <input type="hidden" name="sq_keyword" id="sq_keyword" value="">
67
 
68
- <?php
69
- //Run only is frontend admin and ajax call
70
- if (SQ_Classes_Helpers_Tools::isAjax()) { ?>
71
  <div id="snippet_<?php echo esc_attr($view->post->hash) ?>" class="sq_snippet_wrap sq-card sq-col-sm-12 sq-p-0 sq-pr-1 sq-m-0 sq-border-0">
72
 
73
  <div class="sq-card-body sq-p-0">
@@ -89,7 +87,7 @@ if (SQ_Classes_Helpers_Tools::getOption('sq_api') <> '') {
89
  </li>
90
  <?php } ?>
91
  <li class="sq-nav-item">
92
- <a href="https://howto.squirrly.co/kb/bulk-seo/#bulk_seo_snippet_og" class="sq-nav-icon"target="_blank"><i class="fa fa-question-circle-o m-0 px-2"></i></a>
93
  <a href="#sqtab<?php echo esc_attr($view->post->hash) ?>3" class="sq-nav-item sq-nav-link sq-py-3 sq-text-info" id="sq-nav-item_opengraph" data-category="opengraph" data-toggle="sqtab"><?php echo esc_html__("Open Graph", _SQ_PLUGIN_NAME_) ?></a>
94
  </li>
95
  <li class="sq-nav-item">
@@ -500,14 +498,20 @@ if (SQ_Classes_Helpers_Tools::getOption('sq_api') <> '') {
500
  <?php
501
  if ($view->post->sq->og_media <> '') {
502
  try {
503
- list($width, $height) = getimagesize($view->post->sq->og_media);
504
- if ((int)$width > 0 && (int)$width < 500) {
505
- ?>
506
- <div class="sq-col-sm-12">
507
- <div class="sq-alert sq-alert-danger"><?php echo esc_html__("The image size must be at least 500 pixels wide", _SQ_PLUGIN_NAME_) ?></div>
508
- </div>
509
- <?php
 
 
 
 
 
510
  }
 
511
  } catch (Exception $e) {
512
  }
513
  }
@@ -758,14 +762,20 @@ if (SQ_Classes_Helpers_Tools::getOption('sq_api') <> '') {
758
  <?php
759
  if ($view->post->sq->tw_media <> '') {
760
  try {
761
- list($width, $height) = getimagesize($view->post->sq->tw_media);
762
- if ((int)$width > 0 && (int)$width < 500) {
763
- ?>
764
- <div class="sq-col-sm-12">
765
- <div class="sq-alert sq-alert-danger"><?php echo esc_html__("The image size must be at least 500 pixels wide", _SQ_PLUGIN_NAME_) ?></div>
766
- </div>
767
- <?php
 
 
 
 
 
768
  }
 
769
  } catch (Exception $e) {
770
  }
771
  }
65
  <input type="hidden" name="sq_hash" id="sq_hash" value="<?php echo esc_attr($view->post->hash); ?>">
66
  <input type="hidden" name="sq_keyword" id="sq_keyword" value="">
67
 
68
+ <?php if (SQ_Classes_Helpers_Tools::isAjax()) { //Run only is frontend admin and ajax call ?>
 
 
69
  <div id="snippet_<?php echo esc_attr($view->post->hash) ?>" class="sq_snippet_wrap sq-card sq-col-sm-12 sq-p-0 sq-pr-1 sq-m-0 sq-border-0">
70
 
71
  <div class="sq-card-body sq-p-0">
87
  </li>
88
  <?php } ?>
89
  <li class="sq-nav-item">
90
+ <a href="https://howto.squirrly.co/kb/bulk-seo/#bulk_seo_snippet_og" class="sq-nav-icon" target="_blank"><i class="fa fa-question-circle-o m-0 px-2"></i></a>
91
  <a href="#sqtab<?php echo esc_attr($view->post->hash) ?>3" class="sq-nav-item sq-nav-link sq-py-3 sq-text-info" id="sq-nav-item_opengraph" data-category="opengraph" data-toggle="sqtab"><?php echo esc_html__("Open Graph", _SQ_PLUGIN_NAME_) ?></a>
92
  </li>
93
  <li class="sq-nav-item">
498
  <?php
499
  if ($view->post->sq->og_media <> '') {
500
  try {
501
+ if (defined('WP_CONTENT_DIR') && $imagepath = str_replace(content_url(), WP_CONTENT_DIR, $view->post->sq->og_media)) {
502
+
503
+ if (file_exists($imagepath)) {
504
+ list($width, $height) = @getimagesize($imagepath);
505
+
506
+ if ((int)$width > 0 && (int)$width < 500) { ?>
507
+ <div class="sq-col-sm-12">
508
+ <div class="sq-alert sq-alert-danger"><?php echo esc_html__("The image size must be at least 500 pixels wide", _SQ_PLUGIN_NAME_) ?></div>
509
+ </div>
510
+ <?php
511
+ }
512
+ }
513
  }
514
+
515
  } catch (Exception $e) {
516
  }
517
  }
762
  <?php
763
  if ($view->post->sq->tw_media <> '') {
764
  try {
765
+ if (defined('WP_CONTENT_DIR') && $imagepath = str_replace(content_url(), WP_CONTENT_DIR, $view->post->sq->tw_media)) {
766
+
767
+ if (file_exists($imagepath)) {
768
+ list($width, $height) = @getimagesize($imagepath);
769
+
770
+ if ((int)$width > 0 && (int)$width < 500) { ?>
771
+ <div class="sq-col-sm-12">
772
+ <div class="sq-alert sq-alert-danger"><?php echo esc_html__("The image size must be at least 500 pixels wide", _SQ_PLUGIN_NAME_) ?></div>
773
+ </div>
774
+ <?php
775
+ }
776
+ }
777
  }
778
+
779
  } catch (Exception $e) {
780
  }
781
  }
view/Blocks/Stats.php CHANGED
@@ -33,19 +33,19 @@
33
  }
34
  ////////////////////////////////////////////////////////////
35
  ?>
36
- <div class="card col-sm-12 m-0 mt-2 p-0" style="box-shadow: 0 0 10px -3px #994525;">
37
  <div class="card-body m-0 p-0 bg-title">
38
  <div class="row text-left m-0 p-0">
39
- <div class="col-sm p-4">
40
  <div class="text-left m-0 p-0 py-1">
41
- <div class="col-sm m-0 p-0">
42
  <h2 class="m-0 p-0" style="font-size: 40px;font-weight: bold;"><?php echo esc_html__("Hello", _SQ_PLUGIN_NAME_); ?> <?php echo ucfirst($username)?>,</h2>
43
  </div>
44
  </div>
45
  <div class="sq_separator"></div>
46
- <div class="row text-left m-0 p-0 py-3">
47
- <div class="col-sm-8 m-0 p-0">
48
- <h3 class="card-title m-0 p-0"><?php echo sprintf(esc_html__("%s SEO Protection", _SQ_PLUGIN_NAME_), '<strong class="text-info" style="font-size: 40px; text-shadow: 1px 1px white;">' . (int)$view->stats['seo_percent'] . '%' . '</strong>'); ?></h3>
49
  <div class="card-title-description m-0 p-0 text-black-50">
50
  <?php if ((int)$view->stats['seo_percent'] == 100) { ?>
51
  <?php echo esc_html__("All protection layers are activated.", _SQ_PLUGIN_NAME_); ?>
@@ -58,13 +58,13 @@
58
  </div>
59
 
60
  <div class="row text-left m-0 p-0 pt-4">
61
- <div class="col-sm-5 m-0 p-0">
62
  <h5 class="m-0 p-0 text-info" style="text-shadow: 1px 1px white;"><?php echo (int)$view->stats['post_count'] ?>
63
  <span class="small"><?php echo(isset($view->stats['all_post_count']) ? " (" . (int)$view->stats['all_post_count'] . " total)" : '') ?></span>
64
  </h5>
65
  <div class="card-title-description m-0 p-0 text-black-50"><?php echo esc_html__("Pages SEO'ed", _SQ_PLUGIN_NAME_); ?></div>
66
  </div>
67
- <div class="col-sm-7 m-0 p-0" style="min-width: 100px">
68
  <h5 class="m-0 p-0 text-info" style="text-shadow: 1px 1px white;"><?php echo (int)$view->stats['post_types_count'] ?>
69
  <span class="small"><?php echo(isset($view->stats['all_post_types_count']) ? " (" . (int)$view->stats['all_post_types_count'] . " total)" : '') ?></span>
70
 </