Version Description
- 07/08/2019 =
- Update - Added refresh button for Squirrly SEO Snippet on ajax error
- Fix - Canonical link verification on Focus Pages
- Fix - PHP count() warning when the array is empty
- Fix - The Inner Links count when the links are not absolute
Download this release
Release Info
Developer | cifi |
Plugin | SEO SQUIRRLY™ |
Version | 9.1.19 |
Comparing to | |
See all releases |
Code changes from version 9.1.10 to 9.1.19
- classes/FrontController.php +2 -2
- classes/RemoteController.php +36 -2
- classes/helpers/DevKit.php +7 -4
- classes/helpers/Sanitize.php +15 -10
- classes/helpers/Tools.php +22 -3
- config.json +21 -0
- config/paths.php +2 -3
- controllers/Audits.php +3 -0
- controllers/FocusPages.php +26 -23
- controllers/Menu.php +57 -29
- controllers/Onboarding.php +3 -0
- controllers/Post.php +6 -8
- controllers/Ranking.php +3 -0
- controllers/Research.php +7 -2
- controllers/SeoSettings.php +9 -6
- controllers/Snippet.php +1 -1
- core/BlockFocusPages.php +15 -13
- core/BlockJorney.php +18 -4
- core/BlockStats.php +4 -0
- core/BlockSupport.php +4 -4
- languages/squirrly-seo-en_US.mo +0 -0
- languages/squirrly-seo-en_US.po +490 -436
- models/Assistant.php +12 -1
- models/CheckSeo.php +6 -9
- models/Compatibility.php +35 -0
- models/FocusPages.php +11 -1
- models/Frontend.php +51 -60
- models/Ico.php +3 -3
- models/ImportExport.php +1 -1
- models/Snippet.php +30 -25
- models/bulkseo/Metas.php +10 -5
- models/bulkseo/Opengraph.php +4 -4
- models/bulkseo/Twittercard.php +4 -4
- models/domain/FocusPage.php +16 -2
- models/focuspages/Accuracy.php +10 -5
- models/focuspages/Audit.php +7 -2
- models/focuspages/Authority.php +14 -0
- models/focuspages/Backlinks.php +13 -0
- models/focuspages/Clicks.php +5 -0
- models/focuspages/Content.php +6 -2
- models/focuspages/Ctr.php +5 -0
- models/focuspages/Image.php +5 -1
- models/focuspages/Impressions.php +5 -0
- models/focuspages/Indexability.php +20 -7
- models/focuspages/Innerlinks.php +15 -6
- models/focuspages/Keyword.php +8 -3
- models/focuspages/Length.php +10 -2
- models/focuspages/Nofollow.php +19 -4
- models/focuspages/Onpage.php +8 -1
- models/focuspages/Ranking.php +12 -0
- models/focuspages/Snippet.php +5 -0
- models/focuspages/Social.php +8 -1
- models/focuspages/Strategy.php +5 -0
- models/focuspages/Traffic.php +22 -11
- models/services/JsonLD.php +20 -6
- models/services/OpenGraph.php +82 -3
- readme.txt +77 -2
- squirrly.php +2 -2
- view/Audits/Audits.php +2 -2
- view/Blocks/FocusPages.php +2 -0
- view/Blocks/Jorney.php +34 -16
- view/Blocks/KRFound.php +46 -41
- view/Blocks/KRHistory.php +20 -16
- view/Blocks/Ranks.php +1 -1
- view/Blocks/Snippet.php +2 -2
- view/Blocks/Stats.php +22 -20
- view/Blocks/Support.php +9 -11
- view/Blocks/Toolbar.php +9 -2
- view/Dashboard.php +4 -2
- view/FocusPages/FocusPageRow.php +19 -10
- view/FocusPages/Pagelist.php +6 -0
- view/Onboarding/Step2.php +1 -1
- view/Onboarding/Step3.php +9 -2
- view/Ranking/Rankings.php +16 -14
- view/Research/Briefcase.php +5 -9
- view/Research/Research.php +1 -0
- view/Research/ResearchDetails.php +3 -3
- view/SeoSettings/Automation.php +1 -2
- view/SeoSettings/Backup.php +2 -2
- view/SeoSettings/Bulkseo.php +1 -0
- view/SeoSettings/Jsonld.php +26 -0
- view/SeoSettings/Metas.php +1 -1
- view/assets/css/global.css +21 -2
- view/assets/css/global.min.css +1 -1
- view/assets/css/jorney.css +1 -1
- view/assets/css/jorney.min.css +1 -1
- view/assets/css/rankings.css +4 -0
- view/assets/css/rankings.min.css +1 -1
- view/assets/css/switchery.css +4 -0
- view/assets/css/switchery.min.css +1 -1
- view/assets/js/global.js +13 -1
- view/assets/js/global.min.js +13 -11
- view/assets/js/research.js +26 -2
- view/assets/js/research.min.js +9 -9
- view/assets/js/snippet.js +51 -32
- view/assets/js/snippet.min.js +36 -34
- view/assets/js/support.js +12 -41
- view/assets/js/support.min.js +5 -6
classes/FrontController.php
CHANGED
@@ -25,7 +25,7 @@ class SQ_Classes_FrontController {
|
|
25 |
/* load the model and hooks here for wordpress actions to take efect */
|
26 |
/* create the model and view instances */
|
27 |
$model_classname = str_replace('Controllers', 'Models', $this->name);
|
28 |
-
if(SQ_Classes_ObjController::getClassPath($model_classname)) {
|
29 |
$this->model = SQ_Classes_ObjController::getClass($model_classname);
|
30 |
}
|
31 |
|
@@ -127,6 +127,6 @@ class SQ_Classes_FrontController {
|
|
127 |
*
|
128 |
* @return void
|
129 |
*/
|
130 |
-
public function hookHead() {}
|
131 |
|
132 |
}
|
25 |
/* load the model and hooks here for wordpress actions to take efect */
|
26 |
/* create the model and view instances */
|
27 |
$model_classname = str_replace('Controllers', 'Models', $this->name);
|
28 |
+
if (SQ_Classes_ObjController::getClassPath($model_classname)) {
|
29 |
$this->model = SQ_Classes_ObjController::getClass($model_classname);
|
30 |
}
|
31 |
|
127 |
*
|
128 |
* @return void
|
129 |
*/
|
130 |
+
public function hookHead() { }
|
131 |
|
132 |
}
|
classes/RemoteController.php
CHANGED
@@ -100,7 +100,11 @@ class SQ_Classes_RemoteController {
|
|
100 |
* @return string
|
101 |
*/
|
102 |
public static function getMySquirrlyLink($path) {
|
103 |
-
|
|
|
|
|
|
|
|
|
104 |
}
|
105 |
|
106 |
/**
|
@@ -139,7 +143,7 @@ class SQ_Classes_RemoteController {
|
|
139 |
}
|
140 |
|
141 |
if (is_wp_error($response)) {
|
142 |
-
|
143 |
return false;
|
144 |
}
|
145 |
|
@@ -209,6 +213,10 @@ class SQ_Classes_RemoteController {
|
|
209 |
$json = json_decode(self::apiCall('api/user/checkin', $args));
|
210 |
|
211 |
if (isset($json->error) && $json->error <> '') {
|
|
|
|
|
|
|
|
|
212 |
return (new WP_Error('api_error', $json->error));
|
213 |
}
|
214 |
|
@@ -240,6 +248,10 @@ class SQ_Classes_RemoteController {
|
|
240 |
if ($json = json_decode(self::apiCall('api/user/stats', $args))) {
|
241 |
|
242 |
if (isset($json->error) && $json->error <> '') {
|
|
|
|
|
|
|
|
|
243 |
return (new WP_Error('api_error', $json->error));
|
244 |
}
|
245 |
|
@@ -377,6 +389,10 @@ class SQ_Classes_RemoteController {
|
|
377 |
$json = json_decode(self::apiCall('api/briefcase/stats', $args));
|
378 |
|
379 |
if (isset($json->error) && $json->error <> '') {
|
|
|
|
|
|
|
|
|
380 |
return (new WP_Error('api_error', $json->error));
|
381 |
}
|
382 |
|
@@ -911,6 +927,24 @@ class SQ_Classes_RemoteController {
|
|
911 |
|
912 |
|
913 |
/******************** OTHERS *****************************/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
914 |
|
915 |
public static function saveSettings($args) {
|
916 |
self::$apiversion = 1; //api v1
|
100 |
* @return string
|
101 |
*/
|
102 |
public static function getMySquirrlyLink($path) {
|
103 |
+
if (SQ_Classes_Helpers_Tools::getMenuVisible('show_panel')) {
|
104 |
+
return _SQ_DASH_URL_ . 'login/?token=' . SQ_Classes_Helpers_Tools::getOption('sq_api') . '&user_url=' . get_bloginfo('url') . '&redirect_to=' . _SQ_DASH_URL_ . 'user/' . $path;
|
105 |
+
} else {
|
106 |
+
return _SQ_DASH_URL_;
|
107 |
+
}
|
108 |
}
|
109 |
|
110 |
/**
|
143 |
}
|
144 |
|
145 |
if (is_wp_error($response)) {
|
146 |
+
SQ_Classes_Error::setError($response->get_error_message(), 'sq_error');
|
147 |
return false;
|
148 |
}
|
149 |
|
213 |
$json = json_decode(self::apiCall('api/user/checkin', $args));
|
214 |
|
215 |
if (isset($json->error) && $json->error <> '') {
|
216 |
+
if($json->error == 'invalid_token'){
|
217 |
+
SQ_Classes_Helpers_Tools::saveOptions('sq_api',false);
|
218 |
+
}
|
219 |
+
|
220 |
return (new WP_Error('api_error', $json->error));
|
221 |
}
|
222 |
|
248 |
if ($json = json_decode(self::apiCall('api/user/stats', $args))) {
|
249 |
|
250 |
if (isset($json->error) && $json->error <> '') {
|
251 |
+
if($json->error == 'invalid_token'){
|
252 |
+
SQ_Classes_Helpers_Tools::saveOptions('sq_api',false);
|
253 |
+
}
|
254 |
+
|
255 |
return (new WP_Error('api_error', $json->error));
|
256 |
}
|
257 |
|
389 |
$json = json_decode(self::apiCall('api/briefcase/stats', $args));
|
390 |
|
391 |
if (isset($json->error) && $json->error <> '') {
|
392 |
+
if($json->error == 'invalid_token'){
|
393 |
+
SQ_Classes_Helpers_Tools::saveOptions('sq_api',false);
|
394 |
+
}
|
395 |
+
|
396 |
return (new WP_Error('api_error', $json->error));
|
397 |
}
|
398 |
|
927 |
|
928 |
|
929 |
/******************** OTHERS *****************************/
|
930 |
+
public static function crawlURL($args = array()) {
|
931 |
+
self::$apiversion = 2; //api v2
|
932 |
+
self::$apimethod = 'get'; //post call
|
933 |
+
|
934 |
+
|
935 |
+
if ($json = json_decode(self::apiCall('api/url/crawl', $args, array('timeout' => 60)))) {
|
936 |
+
|
937 |
+
if (isset($json->error) && $json->error <> '') {
|
938 |
+
return (new WP_Error('api_error', $json->error));
|
939 |
+
}
|
940 |
+
|
941 |
+
if (isset($json->data)) {
|
942 |
+
return $json->data;
|
943 |
+
}
|
944 |
+
}
|
945 |
+
|
946 |
+
return false;
|
947 |
+
}
|
948 |
|
949 |
public static function saveSettings($args) {
|
950 |
self::$apiversion = 1; //api v1
|
classes/helpers/DevKit.php
CHANGED
@@ -12,7 +12,7 @@ class SQ_Classes_Helpers_DevKit {
|
|
12 |
$data = get_plugin_data(_SQ_ROOT_DIR_ . 'squirrly.php');
|
13 |
if (isset($data['Name'])) {
|
14 |
self::$plugin['name'] = $data['Name'];
|
15 |
-
add_filter('pre_kses', array(
|
16 |
}
|
17 |
}
|
18 |
}
|
@@ -24,8 +24,8 @@ class SQ_Classes_Helpers_DevKit {
|
|
24 |
*
|
25 |
* @return bool
|
26 |
*/
|
27 |
-
public
|
28 |
-
$package_file = _SQ_ROOT_DIR_ . '
|
29 |
if (!file_exists($package_file)) {
|
30 |
return false;
|
31 |
}
|
@@ -36,14 +36,17 @@ class SQ_Classes_Helpers_DevKit {
|
|
36 |
self::$package = $config['package'];
|
37 |
|
38 |
if (isset(self::$package['settings']) && !empty(SQ_Classes_Helpers_Tools::$options)) {
|
39 |
-
SQ_Classes_Helpers_Tools::$options = @
|
40 |
|
41 |
if (isset(self::$package['name']) && self::$package['name'] <> '') {
|
42 |
SQ_Classes_Helpers_Tools::$options['sq_name'] = self::$package['name'] . ' - Squirrly Special';
|
43 |
}
|
44 |
|
45 |
SQ_Classes_Helpers_Tools::saveOptions();
|
|
|
|
|
46 |
wp_redirect(SQ_Classes_Helpers_Tools::getAdminUrl('sq_dashboard'));
|
|
|
47 |
}
|
48 |
}
|
49 |
|
12 |
$data = get_plugin_data(_SQ_ROOT_DIR_ . 'squirrly.php');
|
13 |
if (isset($data['Name'])) {
|
14 |
self::$plugin['name'] = $data['Name'];
|
15 |
+
add_filter('pre_kses', array($this, 'changeString'), 1, 1);
|
16 |
}
|
17 |
}
|
18 |
}
|
24 |
*
|
25 |
* @return bool
|
26 |
*/
|
27 |
+
public function updatePluginData() {
|
28 |
+
$package_file = _SQ_ROOT_DIR_ . 'package.json';
|
29 |
if (!file_exists($package_file)) {
|
30 |
return false;
|
31 |
}
|
36 |
self::$package = $config['package'];
|
37 |
|
38 |
if (isset(self::$package['settings']) && !empty(SQ_Classes_Helpers_Tools::$options)) {
|
39 |
+
SQ_Classes_Helpers_Tools::$options = @array_replace_recursive(SQ_Classes_Helpers_Tools::$options, self::$package['settings']);
|
40 |
|
41 |
if (isset(self::$package['name']) && self::$package['name'] <> '') {
|
42 |
SQ_Classes_Helpers_Tools::$options['sq_name'] = self::$package['name'] . ' - Squirrly Special';
|
43 |
}
|
44 |
|
45 |
SQ_Classes_Helpers_Tools::saveOptions();
|
46 |
+
@unlink($package_file);
|
47 |
+
|
48 |
wp_redirect(SQ_Classes_Helpers_Tools::getAdminUrl('sq_dashboard'));
|
49 |
+
exit();
|
50 |
}
|
51 |
}
|
52 |
|
classes/helpers/Sanitize.php
CHANGED
@@ -72,13 +72,17 @@ class SQ_Classes_Helpers_Sanitize {
|
|
72 |
* @return bool|mixed|null|string|string[]
|
73 |
*/
|
74 |
public static function truncate($text, $min = 100, $max = 110) {
|
75 |
-
|
|
|
|
|
|
|
|
|
76 |
if (function_exists('strip_tags')) {
|
77 |
$text = strip_tags($text);
|
78 |
}
|
|
|
79 |
$text = str_replace(']]>', ']]>', $text);
|
80 |
$text = @preg_replace('/\[(.+?)\]/is', '', $text);
|
81 |
-
$text = strip_tags($text);
|
82 |
|
83 |
if ($max < strlen($text)) {
|
84 |
while ($text[$max] != ' ' && $max > $min) {
|
@@ -91,6 +95,7 @@ class SQ_Classes_Helpers_Sanitize {
|
|
91 |
|
92 |
return $text;
|
93 |
}
|
|
|
94 |
/**
|
95 |
* Check the google code saved at settings
|
96 |
*
|
@@ -272,7 +277,7 @@ class SQ_Classes_Helpers_Sanitize {
|
|
272 |
* @return string
|
273 |
*/
|
274 |
public static function checkTwitterAccount($account) {
|
275 |
-
if ($account <> '' && strpos($account, '
|
276 |
$account = 'https://twitter.com/' . $account;
|
277 |
}
|
278 |
|
@@ -286,7 +291,7 @@ class SQ_Classes_Helpers_Sanitize {
|
|
286 |
* @return string
|
287 |
*/
|
288 |
public static function checkTwitterAccountName($account) {
|
289 |
-
if ($account <> '' && strpos($account, '
|
290 |
$account = parse_url($account, PHP_URL_PATH);
|
291 |
if ($account <> '') {
|
292 |
$account = str_replace('/', '', $account);
|
@@ -306,7 +311,7 @@ class SQ_Classes_Helpers_Sanitize {
|
|
306 |
* @return string
|
307 |
*/
|
308 |
public static function checkGoogleAccount($account) {
|
309 |
-
if ($account <> '' && strpos($account, '
|
310 |
$account = 'https://plus.google.com/' . $account;
|
311 |
}
|
312 |
return str_replace(" ", "+", $account);
|
@@ -319,7 +324,7 @@ class SQ_Classes_Helpers_Sanitize {
|
|
319 |
* @return string
|
320 |
*/
|
321 |
public static function checkLinkeinAccount($account) {
|
322 |
-
if ($account <> '' && strpos($account, '
|
323 |
$account = 'https://www.linkedin.com/in/' . $account;
|
324 |
}
|
325 |
return $account;
|
@@ -332,7 +337,7 @@ class SQ_Classes_Helpers_Sanitize {
|
|
332 |
* @return string
|
333 |
*/
|
334 |
public static function checkFacebookAccount($account) {
|
335 |
-
if ($account <> '' && strpos($account, '
|
336 |
$account = 'https://www.facebook.com/' . $account;
|
337 |
}
|
338 |
return $account;
|
@@ -344,7 +349,7 @@ class SQ_Classes_Helpers_Sanitize {
|
|
344 |
* @return string
|
345 |
*/
|
346 |
public static function checkPinterestAccount($account) {
|
347 |
-
if ($account <> '' && strpos($account, '
|
348 |
$account = 'https://www.pinterest.com/' . $account;
|
349 |
}
|
350 |
return $account;
|
@@ -357,7 +362,7 @@ class SQ_Classes_Helpers_Sanitize {
|
|
357 |
* @return string
|
358 |
*/
|
359 |
public static function checkInstagramAccount($account) {
|
360 |
-
if ($account <> '' && strpos($account, '
|
361 |
$account = 'https://www.instagram.com/' . $account;
|
362 |
}
|
363 |
return $account;
|
@@ -370,7 +375,7 @@ class SQ_Classes_Helpers_Sanitize {
|
|
370 |
* @return string
|
371 |
*/
|
372 |
public static function checkYoutubeAccount($account) {
|
373 |
-
if ($account <> '' && strpos($account, '
|
374 |
if (strpos($account, 'user/') === false && strpos($account, 'channel/') === false) {
|
375 |
$account = 'https://www.youtube.com/channel/' . $account;
|
376 |
}
|
72 |
* @return bool|mixed|null|string|string[]
|
73 |
*/
|
74 |
public static function truncate($text, $min = 100, $max = 110) {
|
75 |
+
//make sure they are values
|
76 |
+
$max = (int)$max;
|
77 |
+
$min = (int)$min;
|
78 |
+
|
79 |
+
if ($max > 0 && $text <> '' && strlen($text) > $max) {
|
80 |
if (function_exists('strip_tags')) {
|
81 |
$text = strip_tags($text);
|
82 |
}
|
83 |
+
|
84 |
$text = str_replace(']]>', ']]>', $text);
|
85 |
$text = @preg_replace('/\[(.+?)\]/is', '', $text);
|
|
|
86 |
|
87 |
if ($max < strlen($text)) {
|
88 |
while ($text[$max] != ' ' && $max > $min) {
|
95 |
|
96 |
return $text;
|
97 |
}
|
98 |
+
|
99 |
/**
|
100 |
* Check the google code saved at settings
|
101 |
*
|
277 |
* @return string
|
278 |
*/
|
279 |
public static function checkTwitterAccount($account) {
|
280 |
+
if ($account <> '' && strpos($account, '//') === false) {
|
281 |
$account = 'https://twitter.com/' . $account;
|
282 |
}
|
283 |
|
291 |
* @return string
|
292 |
*/
|
293 |
public static function checkTwitterAccountName($account) {
|
294 |
+
if ($account <> '' && strpos($account, '//') !== false) {
|
295 |
$account = parse_url($account, PHP_URL_PATH);
|
296 |
if ($account <> '') {
|
297 |
$account = str_replace('/', '', $account);
|
311 |
* @return string
|
312 |
*/
|
313 |
public static function checkGoogleAccount($account) {
|
314 |
+
if ($account <> '' && strpos($account, '//') === false) {
|
315 |
$account = 'https://plus.google.com/' . $account;
|
316 |
}
|
317 |
return str_replace(" ", "+", $account);
|
324 |
* @return string
|
325 |
*/
|
326 |
public static function checkLinkeinAccount($account) {
|
327 |
+
if ($account <> '' && strpos($account, '//') === false) {
|
328 |
$account = 'https://www.linkedin.com/in/' . $account;
|
329 |
}
|
330 |
return $account;
|
337 |
* @return string
|
338 |
*/
|
339 |
public static function checkFacebookAccount($account) {
|
340 |
+
if ($account <> '' && strpos($account, '//') === false) {
|
341 |
$account = 'https://www.facebook.com/' . $account;
|
342 |
}
|
343 |
return $account;
|
349 |
* @return string
|
350 |
*/
|
351 |
public static function checkPinterestAccount($account) {
|
352 |
+
if ($account <> '' && strpos($account, '//') === false) {
|
353 |
$account = 'https://www.pinterest.com/' . $account;
|
354 |
}
|
355 |
return $account;
|
362 |
* @return string
|
363 |
*/
|
364 |
public static function checkInstagramAccount($account) {
|
365 |
+
if ($account <> '' && strpos($account, '//') === false) {
|
366 |
$account = 'https://www.instagram.com/' . $account;
|
367 |
}
|
368 |
return $account;
|
375 |
* @return string
|
376 |
*/
|
377 |
public static function checkYoutubeAccount($account) {
|
378 |
+
if ($account <> '' && strpos($account, '//') === false) {
|
379 |
if (strpos($account, 'user/') === false && strpos($account, 'channel/') === false) {
|
380 |
$account = 'https://www.youtube.com/channel/' . $account;
|
381 |
}
|
classes/helpers/Tools.php
CHANGED
@@ -66,8 +66,6 @@ class SQ_Classes_Helpers_Tools {
|
|
66 |
add_filter("plugin_row_meta", array($this, 'hookExtraLinks'), 10, 4);
|
67 |
//add setting link in plugin
|
68 |
add_filter('plugin_action_links', array($this, 'hookActionlink'), 5, 2);
|
69 |
-
//load the DevKit
|
70 |
-
SQ_Classes_ObjController::getClass('SQ_Classes_Helpers_DevKit');
|
71 |
}
|
72 |
|
73 |
/**
|
@@ -130,6 +128,7 @@ class SQ_Classes_Helpers_Tools {
|
|
130 |
'sq_support_email' => '',
|
131 |
'sq_audit_email' => '',
|
132 |
'sq_seojourney' => 0,
|
|
|
133 |
'sq_onboarding' => 0,
|
134 |
|
135 |
//Settings Assistant
|
@@ -147,6 +146,8 @@ class SQ_Classes_Helpers_Tools {
|
|
147 |
//JsonLD
|
148 |
'sq_auto_jsonld' => 1,
|
149 |
'sq_jsonld_type' => 'Organization',
|
|
|
|
|
150 |
'sq_jsonld' => array(
|
151 |
'Organization' => array(
|
152 |
'name' => '',
|
@@ -212,7 +213,6 @@ class SQ_Classes_Helpers_Tools {
|
|
212 |
'sq_auto_dublincore' => 1,
|
213 |
'sq_auto_feed' => 0,
|
214 |
'sq_auto_noindex' => 1,
|
215 |
-
'sq_exclude_post_types' => array(),
|
216 |
'sq_use_frontend' => 1,
|
217 |
'sq_attachment_redirect' => 0,
|
218 |
'sq_metas' => array(
|
@@ -250,6 +250,8 @@ class SQ_Classes_Helpers_Tools {
|
|
250 |
'show_panel' => 1,
|
251 |
'show_tutorial' => 1,
|
252 |
'show_audit' => 1,
|
|
|
|
|
253 |
'show_ads' => 1,
|
254 |
),
|
255 |
|
@@ -655,6 +657,23 @@ class SQ_Classes_Helpers_Tools {
|
|
655 |
return apply_filters('sq_option_' . $key, self::$options[$key]);
|
656 |
}
|
657 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
658 |
/**
|
659 |
* Save the Options in user option table in DB
|
660 |
*
|
66 |
add_filter("plugin_row_meta", array($this, 'hookExtraLinks'), 10, 4);
|
67 |
//add setting link in plugin
|
68 |
add_filter('plugin_action_links', array($this, 'hookActionlink'), 5, 2);
|
|
|
|
|
69 |
}
|
70 |
|
71 |
/**
|
128 |
'sq_support_email' => '',
|
129 |
'sq_audit_email' => '',
|
130 |
'sq_seojourney' => 0,
|
131 |
+
'sq_seojourney_congrats' => 1,
|
132 |
'sq_onboarding' => 0,
|
133 |
|
134 |
//Settings Assistant
|
146 |
//JsonLD
|
147 |
'sq_auto_jsonld' => 1,
|
148 |
'sq_jsonld_type' => 'Organization',
|
149 |
+
'sq_jsonld_breadcrumbs' => 1,
|
150 |
+
'sq_jsonld_clearcode' => 0,
|
151 |
'sq_jsonld' => array(
|
152 |
'Organization' => array(
|
153 |
'name' => '',
|
213 |
'sq_auto_dublincore' => 1,
|
214 |
'sq_auto_feed' => 0,
|
215 |
'sq_auto_noindex' => 1,
|
|
|
216 |
'sq_use_frontend' => 1,
|
217 |
'sq_attachment_redirect' => 0,
|
218 |
'sq_metas' => array(
|
250 |
'show_panel' => 1,
|
251 |
'show_tutorial' => 1,
|
252 |
'show_audit' => 1,
|
253 |
+
'show_rankings' => 1,
|
254 |
+
'show_focuspages' => 1,
|
255 |
'show_ads' => 1,
|
256 |
),
|
257 |
|
657 |
return apply_filters('sq_option_' . $key, self::$options[$key]);
|
658 |
}
|
659 |
|
660 |
+
/**
|
661 |
+
* Get the option from database
|
662 |
+
* @param $key
|
663 |
+
* @return mixed
|
664 |
+
*/
|
665 |
+
public static function getMenuVisible($key) {
|
666 |
+
if (!isset(self::$options['menu'][$key])) {
|
667 |
+
self::$options = self::getOptions();
|
668 |
+
|
669 |
+
if (!isset(self::$options['menu'][$key])) {
|
670 |
+
self::$options['menu'][$key] = false;
|
671 |
+
}
|
672 |
+
}
|
673 |
+
|
674 |
+
return self::$options['menu'][$key];
|
675 |
+
}
|
676 |
+
|
677 |
/**
|
678 |
* Save the Options in user option table in DB
|
679 |
*
|
config.json
CHANGED
@@ -189,8 +189,29 @@
|
|
189 |
},
|
190 |
"admin": "1",
|
191 |
"active": "1"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
192 |
}
|
193 |
|
|
|
194 |
]
|
195 |
}
|
196 |
}
|
189 |
},
|
190 |
"admin": "1",
|
191 |
"active": "1"
|
192 |
+
},
|
193 |
+
{
|
194 |
+
"name": "SQ_Core_BlockJorney",
|
195 |
+
"actions": {
|
196 |
+
"action": [
|
197 |
+
"sq_journey_close"
|
198 |
+
]
|
199 |
+
},
|
200 |
+
"admin": "1",
|
201 |
+
"active": "1"
|
202 |
+
},
|
203 |
+
{
|
204 |
+
"name": "SQ_Core_BlockSupport",
|
205 |
+
"actions": {
|
206 |
+
"action": [
|
207 |
+
"sq_feedback"
|
208 |
+
]
|
209 |
+
},
|
210 |
+
"admin": "1",
|
211 |
+
"active": "1"
|
212 |
}
|
213 |
|
214 |
+
|
215 |
]
|
216 |
}
|
217 |
}
|
config/paths.php
CHANGED
@@ -7,15 +7,14 @@ define('_SQ_NAMESPACE_', 'SQ');
|
|
7 |
define('_SQ_DB_', 'QSS');
|
8 |
define('_SQ_PLUGIN_NAME_', 'squirrly-seo'); //THIS LINE WILL BE CHANGED WITH THE USER SETTINGS
|
9 |
|
10 |
-
$scheme = (((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") || (defined('FORCE_SSL_ADMIN') && FORCE_SSL_ADMIN)) ? 'https:' : 'http:'); //CHECK IF SCURE
|
11 |
defined('SQ_URI') || define('SQ_URI', 'wp500');
|
12 |
defined('_SQ_DASH_URL_') || define('_SQ_DASH_URL_', 'https://my.squirrly.co/');
|
13 |
defined('_SQ_API_URL_') || define('_SQ_API_URL_', $scheme . '//api.squirrly.co/sq/');
|
14 |
-
defined('_SQ_APIKR_URL_') || define('_SQ_APIKR_URL_', $scheme . '//kr.squirrly.co/sq/');
|
15 |
defined('_SQ_APIV2_URL_') || define('_SQ_APIV2_URL_', $scheme . '//api.squirrly.co/v2/');
|
16 |
define('_SQ_SITE_HOST_', @parse_url(home_url(), PHP_URL_HOST));
|
17 |
|
18 |
-
define('_SQ_SUPPORT_EMAIL_', '
|
19 |
defined('_SQ_STATIC_API_URL_') || define('_SQ_STATIC_API_URL_', '//storage.googleapis.com/squirrly/');
|
20 |
defined('_SQ_SUPPORT_EMAIL_URL_') || define('_SQ_SUPPORT_EMAIL_URL_', 'http://plugin.squirrly.co/contact/');
|
21 |
defined('_SQ_SUPPORT_FACEBOOK_URL_') || define('_SQ_SUPPORT_FACEBOOK_URL_', 'https://www.facebook.com/Squirrly.co');
|
7 |
define('_SQ_DB_', 'QSS');
|
8 |
define('_SQ_PLUGIN_NAME_', 'squirrly-seo'); //THIS LINE WILL BE CHANGED WITH THE USER SETTINGS
|
9 |
|
10 |
+
$scheme = (((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") || (defined('FORCE_SSL_ADMIN') && FORCE_SSL_ADMIN) || (function_exists('is_ssl') && is_ssl())) ? 'https:' : 'http:'); //CHECK IF SCURE
|
11 |
defined('SQ_URI') || define('SQ_URI', 'wp500');
|
12 |
defined('_SQ_DASH_URL_') || define('_SQ_DASH_URL_', 'https://my.squirrly.co/');
|
13 |
defined('_SQ_API_URL_') || define('_SQ_API_URL_', $scheme . '//api.squirrly.co/sq/');
|
|
|
14 |
defined('_SQ_APIV2_URL_') || define('_SQ_APIV2_URL_', $scheme . '//api.squirrly.co/v2/');
|
15 |
define('_SQ_SITE_HOST_', @parse_url(home_url(), PHP_URL_HOST));
|
16 |
|
17 |
+
define('_SQ_SUPPORT_EMAIL_', 'https://go.bucketforms.com/ds/fc7b9084');
|
18 |
defined('_SQ_STATIC_API_URL_') || define('_SQ_STATIC_API_URL_', '//storage.googleapis.com/squirrly/');
|
19 |
defined('_SQ_SUPPORT_EMAIL_URL_') || define('_SQ_SUPPORT_EMAIL_URL_', 'http://plugin.squirrly.co/contact/');
|
20 |
defined('_SQ_SUPPORT_FACEBOOK_URL_') || define('_SQ_SUPPORT_FACEBOOK_URL_', 'https://www.facebook.com/Squirrly.co');
|
controllers/Audits.php
CHANGED
@@ -9,6 +9,9 @@ class SQ_Controllers_Audits extends SQ_Classes_FrontController {
|
|
9 |
public $limit = 10;
|
10 |
|
11 |
function init() {
|
|
|
|
|
|
|
12 |
//Checkin to API V2
|
13 |
SQ_Classes_RemoteController::checkin();
|
14 |
|
9 |
public $limit = 10;
|
10 |
|
11 |
function init() {
|
12 |
+
//Clear the Scripts and Styles from other plugins
|
13 |
+
SQ_Classes_ObjController::getClass('SQ_Models_Compatibility')->clearStyles();
|
14 |
+
|
15 |
//Checkin to API V2
|
16 |
SQ_Classes_RemoteController::checkin();
|
17 |
|
controllers/FocusPages.php
CHANGED
@@ -16,10 +16,12 @@ class SQ_Controllers_FocusPages extends SQ_Classes_FrontController {
|
|
16 |
* @return mixed|void
|
17 |
*/
|
18 |
function init() {
|
|
|
|
|
|
|
19 |
//Checkin to API V2
|
20 |
$this->checkin = SQ_Classes_RemoteController::checkin();
|
21 |
|
22 |
-
|
23 |
$tab = SQ_Classes_Helpers_Tools::getValue('tab', 'pagelist');
|
24 |
|
25 |
|
@@ -134,37 +136,38 @@ class SQ_Controllers_FocusPages extends SQ_Classes_FrontController {
|
|
134 |
//Get the audits for the focus pages
|
135 |
$audits = SQ_Classes_RemoteController::getFocusAudits();
|
136 |
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
$focuspage->
|
|
|
|
|
143 |
}
|
144 |
}
|
145 |
-
}
|
146 |
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
|
153 |
-
|
154 |
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
|
|
161 |
}
|
162 |
}
|
163 |
-
|
164 |
}
|
165 |
}
|
166 |
//Get the labels for view use
|
167 |
-
if (!empty($labels) || count($this->focuspages) > 1) {
|
168 |
$this->labels = SQ_Classes_ObjController::getClass('SQ_Models_FocusPages')->getLabels();
|
169 |
}
|
170 |
}
|
@@ -188,7 +191,7 @@ class SQ_Controllers_FocusPages extends SQ_Classes_FrontController {
|
|
188 |
$post_id = SQ_Classes_Helpers_Tools::getValue('id', false);
|
189 |
if ($post_id) {
|
190 |
if ($post = SQ_Classes_ObjController::getClass('SQ_Models_Snippet')->setPostByID($post_id)) {
|
191 |
-
if ($post->post_status == 'publish') {
|
192 |
$args = array();
|
193 |
$args['post_id'] = $post->ID;
|
194 |
$args['permalink'] = $post->url;
|
16 |
* @return mixed|void
|
17 |
*/
|
18 |
function init() {
|
19 |
+
//Clear the Scripts and Styles from other plugins
|
20 |
+
SQ_Classes_ObjController::getClass('SQ_Models_Compatibility')->clearStyles();
|
21 |
+
|
22 |
//Checkin to API V2
|
23 |
$this->checkin = SQ_Classes_RemoteController::checkin();
|
24 |
|
|
|
25 |
$tab = SQ_Classes_Helpers_Tools::getValue('tab', 'pagelist');
|
26 |
|
27 |
|
136 |
//Get the audits for the focus pages
|
137 |
$audits = SQ_Classes_RemoteController::getFocusAudits();
|
138 |
|
139 |
+
if(!empty($focuspages)) {
|
140 |
+
foreach ($focuspages as $focuspage) {
|
141 |
+
//Add the audit data if exists
|
142 |
+
if (isset($focuspage->user_post_id) && !empty($audits)) {
|
143 |
+
foreach ($audits as $audit) {
|
144 |
+
if ($focuspage->user_post_id == $audit->user_post_id) {
|
145 |
+
$focuspage->audit = json_decode($audit->audit);
|
146 |
+
}
|
147 |
}
|
148 |
}
|
|
|
149 |
|
150 |
+
/** @var SQ_Models_Domain_FocusPage $focuspage */
|
151 |
+
$focuspage = SQ_Classes_ObjController::getDomain('SQ_Models_Domain_FocusPage', $focuspage);
|
152 |
+
//set the connection info with GSC and GA
|
153 |
+
$focuspage->audit->sq_analytics_gsc_connected = (isset($this->checkin->connection_gsc) ? $this->checkin->connection_gsc : 0);
|
154 |
+
$focuspage->audit->sq_analytics_google_connected = (isset($this->checkin->connection_ga) ? $this->checkin->connection_ga : 0);
|
155 |
|
156 |
+
SQ_Debug::dump($focuspage, $focuspage->audit);
|
157 |
|
158 |
+
//If there is a local page, then show focus
|
159 |
+
if ($focuspage->getWppost()) {
|
160 |
+
$this->focuspages[] = SQ_Classes_ObjController::getClass('SQ_Models_FocusPages')->parseFocusPage($focuspage, $labels)->getFocusPage();
|
161 |
+
} elseif ($focuspage->user_post_id) {
|
162 |
+
SQ_Classes_Error::setError(__('Focus Page does not exist or was deleted from your website.', _SQ_PLUGIN_NAME_));
|
163 |
+
SQ_Classes_RemoteController::deleteFocusPage(array('user_post_id' => $focuspage->user_post_id));
|
164 |
+
}
|
165 |
}
|
166 |
}
|
|
|
167 |
}
|
168 |
}
|
169 |
//Get the labels for view use
|
170 |
+
if (!empty($labels) || count((array)$this->focuspages) > 1) {
|
171 |
$this->labels = SQ_Classes_ObjController::getClass('SQ_Models_FocusPages')->getLabels();
|
172 |
}
|
173 |
}
|
191 |
$post_id = SQ_Classes_Helpers_Tools::getValue('id', false);
|
192 |
if ($post_id) {
|
193 |
if ($post = SQ_Classes_ObjController::getClass('SQ_Models_Snippet')->setPostByID($post_id)) {
|
194 |
+
if ($post->post_status == 'publish' && $post->ID == $post_id) {
|
195 |
$args = array();
|
196 |
$args['post_id'] = $post->ID;
|
197 |
$args['permalink'] = $post->url;
|
controllers/Menu.php
CHANGED
@@ -10,9 +10,19 @@ class SQ_Controllers_Menu extends SQ_Classes_FrontController {
|
|
10 |
|
11 |
public function __construct() {
|
12 |
parent::__construct();
|
13 |
-
|
14 |
-
|
15 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
16 |
|
17 |
}
|
18 |
|
@@ -20,28 +30,31 @@ class SQ_Controllers_Menu extends SQ_Classes_FrontController {
|
|
20 |
* Hook the Admin load
|
21 |
*/
|
22 |
public function hookInit() {
|
23 |
-
|
24 |
//in case the token is not set
|
25 |
if (SQ_Classes_Helpers_Tools::getOption('sq_api') == '') {
|
26 |
if (SQ_Classes_Helpers_Tools::getIsset('page')) {
|
27 |
if (in_array(SQ_Classes_Helpers_Tools::getValue('page'), $this->sq_pages)) {
|
28 |
-
|
29 |
wp_safe_redirect(SQ_Classes_Helpers_Tools::getAdminUrl('sq_dashboard'));
|
30 |
exit();
|
31 |
}
|
32 |
}
|
33 |
} elseif (SQ_Classes_Helpers_Tools::getIsset('page')) {
|
34 |
-
if
|
35 |
-
|
36 |
-
if (
|
37 |
-
|
38 |
-
|
39 |
-
|
|
|
|
|
|
|
40 |
}
|
41 |
}
|
42 |
}
|
43 |
}
|
44 |
|
|
|
45 |
if (SQ_Classes_Helpers_Tools::getIsset('page')) {
|
46 |
if (SQ_Classes_Helpers_Tools::getValue('page') == 'sq_help') {
|
47 |
wp_redirect(_SQ_HOWTO_URL_);
|
@@ -49,17 +62,18 @@ class SQ_Controllers_Menu extends SQ_Classes_FrontController {
|
|
49 |
}
|
50 |
}
|
51 |
|
|
|
52 |
if (SQ_Classes_Helpers_Tools::getIsset('page')) {
|
53 |
-
if(current_user_can('sq_manage_settings')) {
|
54 |
if (SQ_Classes_Helpers_Tools::getValue('page') == 'sq_account') {
|
55 |
wp_redirect(SQ_Classes_RemoteController::getMySquirrlyLink('account'));
|
56 |
exit();
|
57 |
}
|
58 |
}
|
59 |
}
|
|
|
60 |
/* add the plugin menu in admin */
|
61 |
if (current_user_can('manage_options')) {
|
62 |
-
|
63 |
try {
|
64 |
//check if activated
|
65 |
if (get_transient('sq_activate') == 1) {
|
@@ -85,17 +99,16 @@ class SQ_Controllers_Menu extends SQ_Classes_FrontController {
|
|
85 |
SQ_Classes_Error::setMessage(sprintf(__("An error occurred during activation. If this error persists, please contact us at: %s", _SQ_PLUGIN_NAME_), _SQ_SUPPORT_EMAIL_));
|
86 |
}
|
87 |
|
88 |
-
//This option is use for custom Package
|
89 |
-
SQ_Classes_Helpers_DevKit
|
90 |
|
91 |
}
|
92 |
|
93 |
//activate the cron job if not exists
|
94 |
-
if (!
|
95 |
wp_schedule_event(time(), 'hourly', 'sq_cron_process');
|
96 |
}
|
97 |
|
98 |
-
|
99 |
//Add Squirrly SEO in Posts list
|
100 |
SQ_Classes_ObjController::getClass('SQ_Controllers_PostsList')->init();
|
101 |
|
@@ -151,6 +164,14 @@ class SQ_Controllers_Menu extends SQ_Classes_FrontController {
|
|
151 |
$mainmenu = $this->model->getMainMenu();
|
152 |
if (!empty($mainmenu)) {
|
153 |
foreach ($mainmenu as $menuid => $item) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
154 |
//make sure the user has the capabilities
|
155 |
if (current_user_can($item['capability'])) {
|
156 |
$wp_admin_bar->add_node(array(
|
@@ -163,7 +184,7 @@ class SQ_Controllers_Menu extends SQ_Classes_FrontController {
|
|
163 |
if (!empty($tabs)) {
|
164 |
foreach ($tabs as $id => $tab) {
|
165 |
$array_id = explode('/', $id);
|
166 |
-
if (count($array_id) == 2) {
|
167 |
$wp_admin_bar->add_node(array(
|
168 |
'id' => $menuid . str_replace('/', '_', $id),
|
169 |
'title' => $tab['title'],
|
@@ -233,7 +254,6 @@ class SQ_Controllers_Menu extends SQ_Classes_FrontController {
|
|
233 |
public function hookMenu() {
|
234 |
|
235 |
$this->post_type = SQ_Classes_Helpers_Tools::getOption('sq_post_types');
|
236 |
-
$menu = SQ_Classes_Helpers_Tools::getOption('menu');
|
237 |
|
238 |
//Push the Analytics Check
|
239 |
if (strpos($_SERVER['REQUEST_URI'], '?page=sq_dashboard') !== false) {
|
@@ -264,6 +284,14 @@ class SQ_Controllers_Menu extends SQ_Classes_FrontController {
|
|
264 |
|
265 |
$mainmenu = $this->model->getMainMenu();
|
266 |
foreach ($mainmenu as $name => $item) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
267 |
$this->model->addSubmenu(array($item['parent'],
|
268 |
$item['description'],
|
269 |
$item['title'],
|
@@ -275,14 +303,16 @@ class SQ_Controllers_Menu extends SQ_Classes_FrontController {
|
|
275 |
}
|
276 |
|
277 |
//show account only for Admins
|
278 |
-
if(current_user_can('sq_manage_settings')) {
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
|
|
|
|
286 |
}
|
287 |
|
288 |
$this->model->addSubmenu(array('sq_dashboard',
|
@@ -294,7 +324,6 @@ class SQ_Controllers_Menu extends SQ_Classes_FrontController {
|
|
294 |
));
|
295 |
|
296 |
|
297 |
-
|
298 |
}
|
299 |
|
300 |
/**
|
@@ -350,7 +379,6 @@ class SQ_Controllers_Menu extends SQ_Classes_FrontController {
|
|
350 |
public function hookHead() {
|
351 |
global $sq_fullscreen;
|
352 |
|
353 |
-
|
354 |
if (SQ_Classes_Helpers_Tools::getIsset('page')) {
|
355 |
if (in_array(SQ_Classes_Helpers_Tools::getValue('page', ''), $this->sq_pages)) {
|
356 |
$sq_fullscreen = true;
|
10 |
|
11 |
public function __construct() {
|
12 |
parent::__construct();
|
13 |
+
|
14 |
+
if (!is_network_admin()) {
|
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 |
+
if (in_array(SQ_Classes_Helpers_Tools::getValue('page', ''), $this->sq_pages)) {
|
22 |
+
add_action('admin_enqueue_scripts', array(SQ_Classes_ObjController::getClass('SQ_Models_Compatibility'), 'fixEnqueueErrors'), PHP_INT_MAX);
|
23 |
+
}
|
24 |
+
}
|
25 |
+
}
|
26 |
|
27 |
}
|
28 |
|
30 |
* Hook the Admin load
|
31 |
*/
|
32 |
public function hookInit() {
|
|
|
33 |
//in case the token is not set
|
34 |
if (SQ_Classes_Helpers_Tools::getOption('sq_api') == '') {
|
35 |
if (SQ_Classes_Helpers_Tools::getIsset('page')) {
|
36 |
if (in_array(SQ_Classes_Helpers_Tools::getValue('page'), $this->sq_pages)) {
|
37 |
+
//redirect to dashboard to login
|
38 |
wp_safe_redirect(SQ_Classes_Helpers_Tools::getAdminUrl('sq_dashboard'));
|
39 |
exit();
|
40 |
}
|
41 |
}
|
42 |
} elseif (SQ_Classes_Helpers_Tools::getIsset('page')) {
|
43 |
+
//check if onboarding should load
|
44 |
+
if (SQ_Classes_Helpers_Tools::getMenuVisible('show_tutorial')) {
|
45 |
+
if (in_array(SQ_Classes_Helpers_Tools::getValue('page'), $this->sq_pages) || SQ_Classes_Helpers_Tools::getValue('page') === 'sq_dashboard') {
|
46 |
+
//redirect users to onboarding if necessary
|
47 |
+
if (!$onboarding = SQ_Classes_Helpers_Tools::getOption('sq_onboarding')) {
|
48 |
+
if (SQ_Classes_Helpers_Tools::getValue('page') !== 'sq_onboarding') {
|
49 |
+
wp_safe_redirect(SQ_Classes_Helpers_Tools::getAdminUrl('sq_onboarding', 'step1'));
|
50 |
+
die();
|
51 |
+
}
|
52 |
}
|
53 |
}
|
54 |
}
|
55 |
}
|
56 |
|
57 |
+
//Check if help page is selected
|
58 |
if (SQ_Classes_Helpers_Tools::getIsset('page')) {
|
59 |
if (SQ_Classes_Helpers_Tools::getValue('page') == 'sq_help') {
|
60 |
wp_redirect(_SQ_HOWTO_URL_);
|
62 |
}
|
63 |
}
|
64 |
|
65 |
+
//Check if account page is selected
|
66 |
if (SQ_Classes_Helpers_Tools::getIsset('page')) {
|
67 |
+
if (current_user_can('sq_manage_settings')) {
|
68 |
if (SQ_Classes_Helpers_Tools::getValue('page') == 'sq_account') {
|
69 |
wp_redirect(SQ_Classes_RemoteController::getMySquirrlyLink('account'));
|
70 |
exit();
|
71 |
}
|
72 |
}
|
73 |
}
|
74 |
+
|
75 |
/* add the plugin menu in admin */
|
76 |
if (current_user_can('manage_options')) {
|
|
|
77 |
try {
|
78 |
//check if activated
|
79 |
if (get_transient('sq_activate') == 1) {
|
99 |
SQ_Classes_Error::setMessage(sprintf(__("An error occurred during activation. If this error persists, please contact us at: %s", _SQ_PLUGIN_NAME_), _SQ_SUPPORT_EMAIL_));
|
100 |
}
|
101 |
|
102 |
+
//This option is use for custom Package installs
|
103 |
+
SQ_Classes_ObjController::getClass('SQ_Classes_Helpers_DevKit')->updatePluginData(); //update text in case of devkit
|
104 |
|
105 |
}
|
106 |
|
107 |
//activate the cron job if not exists
|
108 |
+
if (!wp_next_scheduled('sq_cron_process')) {
|
109 |
wp_schedule_event(time(), 'hourly', 'sq_cron_process');
|
110 |
}
|
111 |
|
|
|
112 |
//Add Squirrly SEO in Posts list
|
113 |
SQ_Classes_ObjController::getClass('SQ_Controllers_PostsList')->init();
|
114 |
|
164 |
$mainmenu = $this->model->getMainMenu();
|
165 |
if (!empty($mainmenu)) {
|
166 |
foreach ($mainmenu as $menuid => $item) {
|
167 |
+
if ($menuid == 'sq_audits' && !SQ_Classes_Helpers_Tools::getMenuVisible('show_audit')) {
|
168 |
+
continue;
|
169 |
+
} elseif ($menuid == 'sq_rankings' && !SQ_Classes_Helpers_Tools::getMenuVisible('show_rankings')) {
|
170 |
+
continue;
|
171 |
+
} elseif ($menuid == 'sq_focuspages' && !SQ_Classes_Helpers_Tools::getMenuVisible('show_focuspages')) {
|
172 |
+
continue;
|
173 |
+
}
|
174 |
+
|
175 |
//make sure the user has the capabilities
|
176 |
if (current_user_can($item['capability'])) {
|
177 |
$wp_admin_bar->add_node(array(
|
184 |
if (!empty($tabs)) {
|
185 |
foreach ($tabs as $id => $tab) {
|
186 |
$array_id = explode('/', $id);
|
187 |
+
if (count((array)$array_id) == 2) {
|
188 |
$wp_admin_bar->add_node(array(
|
189 |
'id' => $menuid . str_replace('/', '_', $id),
|
190 |
'title' => $tab['title'],
|
254 |
public function hookMenu() {
|
255 |
|
256 |
$this->post_type = SQ_Classes_Helpers_Tools::getOption('sq_post_types');
|
|
|
257 |
|
258 |
//Push the Analytics Check
|
259 |
if (strpos($_SERVER['REQUEST_URI'], '?page=sq_dashboard') !== false) {
|
284 |
|
285 |
$mainmenu = $this->model->getMainMenu();
|
286 |
foreach ($mainmenu as $name => $item) {
|
287 |
+
if ($name == 'sq_audits' && !SQ_Classes_Helpers_Tools::getMenuVisible('show_audit')) {
|
288 |
+
continue;
|
289 |
+
} elseif ($name == 'sq_rankings' && !SQ_Classes_Helpers_Tools::getMenuVisible('show_rankings')) {
|
290 |
+
continue;
|
291 |
+
} elseif ($name == 'sq_focuspages' && !SQ_Classes_Helpers_Tools::getMenuVisible('show_focuspages')) {
|
292 |
+
continue;
|
293 |
+
}
|
294 |
+
|
295 |
$this->model->addSubmenu(array($item['parent'],
|
296 |
$item['description'],
|
297 |
$item['title'],
|
303 |
}
|
304 |
|
305 |
//show account only for Admins
|
306 |
+
if (current_user_can('sq_manage_settings')) {
|
307 |
+
if (SQ_Classes_Helpers_Tools::getMenuVisible('show_account_info')) {
|
308 |
+
$this->model->addSubmenu(array('sq_dashboard',
|
309 |
+
__('Squirrly Account Info', _SQ_PLUGIN_NAME_),
|
310 |
+
__('Account Info', _SQ_PLUGIN_NAME_),
|
311 |
+
'edit_posts',
|
312 |
+
'sq_account',
|
313 |
+
array(SQ_Classes_ObjController::getClass('SQ_Controllers_Account'), 'init')
|
314 |
+
));
|
315 |
+
}
|
316 |
}
|
317 |
|
318 |
$this->model->addSubmenu(array('sq_dashboard',
|
324 |
));
|
325 |
|
326 |
|
|
|
327 |
}
|
328 |
|
329 |
/**
|
379 |
public function hookHead() {
|
380 |
global $sq_fullscreen;
|
381 |
|
|
|
382 |
if (SQ_Classes_Helpers_Tools::getIsset('page')) {
|
383 |
if (in_array(SQ_Classes_Helpers_Tools::getValue('page', ''), $this->sq_pages)) {
|
384 |
$sq_fullscreen = true;
|
controllers/Onboarding.php
CHANGED
@@ -10,6 +10,9 @@ class SQ_Controllers_Onboarding extends SQ_Classes_FrontController {
|
|
10 |
* @return mixed|void
|
11 |
*/
|
12 |
public function init() {
|
|
|
|
|
|
|
13 |
$tab = SQ_Classes_Helpers_Tools::getValue('tab', 'step1');
|
14 |
|
15 |
SQ_Classes_ObjController::getClass('SQ_Classes_DisplayController')->loadMedia('bootstrap-reboot');
|
10 |
* @return mixed|void
|
11 |
*/
|
12 |
public function init() {
|
13 |
+
//Clear the Scripts and Styles from other plugins
|
14 |
+
SQ_Classes_ObjController::getClass('SQ_Models_Compatibility')->clearStyles();
|
15 |
+
|
16 |
$tab = SQ_Classes_Helpers_Tools::getValue('tab', 'step1');
|
17 |
|
18 |
SQ_Classes_ObjController::getClass('SQ_Classes_DisplayController')->loadMedia('bootstrap-reboot');
|
controllers/Post.php
CHANGED
@@ -83,16 +83,14 @@ class SQ_Controllers_Post extends SQ_Classes_FrontController {
|
|
83 |
@preg_match_all('/<img[^>]*src=[\'"]([^\'"]+)[\'"][^>]*>/i', stripslashes($post_data['post_content']), $out);
|
84 |
|
85 |
if (!empty($out)) {
|
86 |
-
if (!is_array($out[1]) || count($out[1]) == 0)
|
87 |
return $post_data;
|
88 |
|
89 |
if (get_bloginfo('wpurl') <> '') {
|
90 |
-
$domain = parse_url(
|
91 |
|
92 |
foreach ($out[1] as $row) {
|
93 |
-
if (strpos($row, '//') !== false &&
|
94 |
-
strpos($row, $domain['host']) === false
|
95 |
-
) {
|
96 |
if (!in_array($row, $urls)) {
|
97 |
$urls[] = $row;
|
98 |
}
|
@@ -102,7 +100,7 @@ class SQ_Controllers_Post extends SQ_Classes_FrontController {
|
|
102 |
}
|
103 |
}
|
104 |
|
105 |
-
if (!is_array($urls) || (is_array($urls) && count($urls) == 0)) {
|
106 |
return $post_data;
|
107 |
}
|
108 |
|
@@ -161,7 +159,7 @@ class SQ_Controllers_Post extends SQ_Classes_FrontController {
|
|
161 |
|
162 |
$seo = SQ_Classes_Helpers_Tools::getValue('sq_seo', '');
|
163 |
|
164 |
-
if (is_array($seo) && count($seo) > 0)
|
165 |
$args['seo'] = implode(',', $seo);
|
166 |
|
167 |
$args['keyword'] = SQ_Classes_Helpers_Tools::getValue('sq_keyword', '');
|
@@ -187,7 +185,7 @@ class SQ_Controllers_Post extends SQ_Classes_FrontController {
|
|
187 |
wp_schedule_single_event(time(), 'sq_cron_process_single');
|
188 |
|
189 |
//If the queue is too big ... means that the cron is not working
|
190 |
-
if (count($process) > 5) SQ_Classes_Helpers_Tools::saveOptions('sq_force_savepost', 1);
|
191 |
}
|
192 |
}
|
193 |
|
83 |
@preg_match_all('/<img[^>]*src=[\'"]([^\'"]+)[\'"][^>]*>/i', stripslashes($post_data['post_content']), $out);
|
84 |
|
85 |
if (!empty($out)) {
|
86 |
+
if (!is_array($out[1]) || count((array)$out[1]) == 0)
|
87 |
return $post_data;
|
88 |
|
89 |
if (get_bloginfo('wpurl') <> '') {
|
90 |
+
$domain = parse_url(home_url(), PHP_URL_HOST);
|
91 |
|
92 |
foreach ($out[1] as $row) {
|
93 |
+
if (strpos($row, '//') !== false && strpos($row, $domain) === false) {
|
|
|
|
|
94 |
if (!in_array($row, $urls)) {
|
95 |
$urls[] = $row;
|
96 |
}
|
100 |
}
|
101 |
}
|
102 |
|
103 |
+
if (!is_array($urls) || (is_array($urls) && count((array)$urls) == 0)) {
|
104 |
return $post_data;
|
105 |
}
|
106 |
|
159 |
|
160 |
$seo = SQ_Classes_Helpers_Tools::getValue('sq_seo', '');
|
161 |
|
162 |
+
if (is_array($seo) && count((array)$seo) > 0)
|
163 |
$args['seo'] = implode(',', $seo);
|
164 |
|
165 |
$args['keyword'] = SQ_Classes_Helpers_Tools::getValue('sq_keyword', '');
|
185 |
wp_schedule_single_event(time(), 'sq_cron_process_single');
|
186 |
|
187 |
//If the queue is too big ... means that the cron is not working
|
188 |
+
if (count((array)$process) > 5) SQ_Classes_Helpers_Tools::saveOptions('sq_force_savepost', 1);
|
189 |
}
|
190 |
}
|
191 |
|
controllers/Ranking.php
CHANGED
@@ -9,6 +9,9 @@ class SQ_Controllers_Ranking extends SQ_Classes_FrontController {
|
|
9 |
|
10 |
|
11 |
function init() {
|
|
|
|
|
|
|
12 |
//Checkin to API V2
|
13 |
$this->checkin = SQ_Classes_RemoteController::checkin();
|
14 |
|
9 |
|
10 |
|
11 |
function init() {
|
12 |
+
//Clear the Scripts and Styles from other plugins
|
13 |
+
SQ_Classes_ObjController::getClass('SQ_Models_Compatibility')->clearStyles();
|
14 |
+
|
15 |
//Checkin to API V2
|
16 |
$this->checkin = SQ_Classes_RemoteController::checkin();
|
17 |
|
controllers/Research.php
CHANGED
@@ -16,6 +16,9 @@ class SQ_Controllers_Research extends SQ_Classes_FrontController {
|
|
16 |
public $user;
|
17 |
|
18 |
function init() {
|
|
|
|
|
|
|
19 |
$tab = SQ_Classes_Helpers_Tools::getValue('tab', 'research');
|
20 |
|
21 |
SQ_Classes_ObjController::getClass('SQ_Classes_DisplayController')->loadMedia('bootstrap-reboot');
|
@@ -278,7 +281,7 @@ class SQ_Controllers_Research extends SQ_Classes_FrontController {
|
|
278 |
|
279 |
SQ_Classes_Helpers_Tools::setHeader('json');
|
280 |
|
281 |
-
$name = (string)SQ_Classes_Helpers_Tools::getValue('name',
|
282 |
$color = (string)SQ_Classes_Helpers_Tools::getValue('color', '#ffffff');
|
283 |
|
284 |
if ($name <> '' && $color <> '') {
|
@@ -441,7 +444,7 @@ class SQ_Controllers_Research extends SQ_Classes_FrontController {
|
|
441 |
$num = 0;
|
442 |
$fp = fopen($_FILES['sq_upload_file']['tmp_name'], 'rb');
|
443 |
while (($data = fgetcsv($fp, 1000, ",")) !== FALSE) {
|
444 |
-
$num = count($data);
|
445 |
for ($c = 0; $c < $num; $c++) {
|
446 |
if (is_string($data[$c]) && $data[$c] <> '') {
|
447 |
$args = array();
|
@@ -515,6 +518,8 @@ class SQ_Controllers_Research extends SQ_Classes_FrontController {
|
|
515 |
|
516 |
exit();
|
517 |
case 'sq_ajax_research_process':
|
|
|
|
|
518 |
SQ_Classes_Helpers_Tools::setHeader('json');
|
519 |
$keywords = SQ_Classes_Helpers_Tools::getValue('keywords', false);
|
520 |
$country = SQ_Classes_Helpers_Tools::getValue('country', 'com');
|
16 |
public $user;
|
17 |
|
18 |
function init() {
|
19 |
+
//Clear the Scripts and Styles from other plugins
|
20 |
+
SQ_Classes_ObjController::getClass('SQ_Models_Compatibility')->clearStyles();
|
21 |
+
|
22 |
$tab = SQ_Classes_Helpers_Tools::getValue('tab', 'research');
|
23 |
|
24 |
SQ_Classes_ObjController::getClass('SQ_Classes_DisplayController')->loadMedia('bootstrap-reboot');
|
281 |
|
282 |
SQ_Classes_Helpers_Tools::setHeader('json');
|
283 |
|
284 |
+
$name = (string)SQ_Classes_Helpers_Tools::getValue('name', '');
|
285 |
$color = (string)SQ_Classes_Helpers_Tools::getValue('color', '#ffffff');
|
286 |
|
287 |
if ($name <> '' && $color <> '') {
|
444 |
$num = 0;
|
445 |
$fp = fopen($_FILES['sq_upload_file']['tmp_name'], 'rb');
|
446 |
while (($data = fgetcsv($fp, 1000, ",")) !== FALSE) {
|
447 |
+
$num = count((array)$data);
|
448 |
for ($c = 0; $c < $num; $c++) {
|
449 |
if (is_string($data[$c]) && $data[$c] <> '') {
|
450 |
$args = array();
|
518 |
|
519 |
exit();
|
520 |
case 'sq_ajax_research_process':
|
521 |
+
@ini_set("max_execution_time", 300);
|
522 |
+
|
523 |
SQ_Classes_Helpers_Tools::setHeader('json');
|
524 |
$keywords = SQ_Classes_Helpers_Tools::getValue('keywords', false);
|
525 |
$country = SQ_Classes_Helpers_Tools::getValue('country', 'com');
|
controllers/SeoSettings.php
CHANGED
@@ -5,6 +5,9 @@ class SQ_Controllers_SeoSettings extends SQ_Classes_FrontController {
|
|
5 |
public $pages = array();
|
6 |
|
7 |
function init() {
|
|
|
|
|
|
|
8 |
$tab = SQ_Classes_Helpers_Tools::getValue('tab', 'bulkseo');
|
9 |
|
10 |
SQ_Classes_ObjController::getClass('SQ_Classes_DisplayController')->loadMedia('bootstrap-reboot');
|
@@ -49,11 +52,11 @@ class SQ_Controllers_SeoSettings extends SQ_Classes_FrontController {
|
|
49 |
$paged = SQ_Classes_Helpers_Tools::getValue('spage', 1);
|
50 |
$post_id = SQ_Classes_Helpers_Tools::getValue('sid', false);
|
51 |
$post_type = SQ_Classes_Helpers_Tools::getValue('stype', 'post');
|
52 |
-
$post_per_page = SQ_Classes_Helpers_Tools::getValue('cnt',
|
53 |
$post_status = SQ_Classes_Helpers_Tools::getValue('sstatus', '');
|
54 |
|
55 |
if ($search <> '') {
|
56 |
-
$post_per_page =
|
57 |
} else {
|
58 |
$patterns = SQ_Classes_Helpers_Tools::getOption('patterns');
|
59 |
if (!isset($patterns[$post_type])) {
|
@@ -95,7 +98,6 @@ class SQ_Controllers_SeoSettings extends SQ_Classes_FrontController {
|
|
95 |
'order' => 'DESC',
|
96 |
);
|
97 |
|
98 |
-
|
99 |
//If post id is set in URL
|
100 |
if ($post_id) {
|
101 |
$query['post__in'] = explode(',', $post_id);
|
@@ -108,6 +110,7 @@ class SQ_Controllers_SeoSettings extends SQ_Classes_FrontController {
|
|
108 |
|
109 |
$wp_query = new WP_Query($query);
|
110 |
$posts = $wp_query->get_posts();
|
|
|
111 |
|
112 |
if (!empty($posts)) {
|
113 |
foreach ($posts as $post) {
|
@@ -209,7 +212,7 @@ class SQ_Controllers_SeoSettings extends SQ_Classes_FrontController {
|
|
209 |
}
|
210 |
|
211 |
|
212 |
-
if (!empty($labels) || count($this->pages) > 1) {
|
213 |
//Get the labels for view use
|
214 |
$this->labels = SQ_Classes_ObjController::getClass('SQ_Models_BulkSeo')->getLabels();
|
215 |
}
|
@@ -604,7 +607,7 @@ class SQ_Controllers_SeoSettings extends SQ_Classes_FrontController {
|
|
604 |
maybe_serialize($metas),
|
605 |
gmdate('Y-m-d H:i:s'));
|
606 |
}
|
607 |
-
SQ_Classes_Error::setMessage(sprintf(__('%s SEO records were imported successfuly! You can now deactivate the %s plugin', _SQ_PLUGIN_NAME_), count($seo), SQ_Classes_ObjController::getClass('SQ_Models_ImportExport')->getName($platform)));
|
608 |
}
|
609 |
}
|
610 |
break;
|
@@ -642,7 +645,7 @@ class SQ_Controllers_SeoSettings extends SQ_Classes_FrontController {
|
|
642 |
maybe_serialize($metas),
|
643 |
gmdate('Y-m-d H:i:s'));
|
644 |
}
|
645 |
-
SQ_Classes_Error::setMessage(sprintf(__('%s SEO records were imported successfuly! You can now deactivate the %s plugin', _SQ_PLUGIN_NAME_), count($seo), SQ_Classes_ObjController::getClass('SQ_Models_ImportExport')->getName($platform)));
|
646 |
} else {
|
647 |
SQ_Classes_Error::setMessage(sprintf(__('There are no SEO records with this plugin. You can now deactivate the %s plugin', _SQ_PLUGIN_NAME_), SQ_Classes_ObjController::getClass('SQ_Models_ImportExport')->getName($platform)));
|
648 |
|
5 |
public $pages = array();
|
6 |
|
7 |
function init() {
|
8 |
+
//Clear the Scripts and Styles from other plugins
|
9 |
+
SQ_Classes_ObjController::getClass('SQ_Models_Compatibility')->clearStyles();
|
10 |
+
|
11 |
$tab = SQ_Classes_Helpers_Tools::getValue('tab', 'bulkseo');
|
12 |
|
13 |
SQ_Classes_ObjController::getClass('SQ_Classes_DisplayController')->loadMedia('bootstrap-reboot');
|
52 |
$paged = SQ_Classes_Helpers_Tools::getValue('spage', 1);
|
53 |
$post_id = SQ_Classes_Helpers_Tools::getValue('sid', false);
|
54 |
$post_type = SQ_Classes_Helpers_Tools::getValue('stype', 'post');
|
55 |
+
$post_per_page = SQ_Classes_Helpers_Tools::getValue('cnt', 10);
|
56 |
$post_status = SQ_Classes_Helpers_Tools::getValue('sstatus', '');
|
57 |
|
58 |
if ($search <> '') {
|
59 |
+
$post_per_page = 50;
|
60 |
} else {
|
61 |
$patterns = SQ_Classes_Helpers_Tools::getOption('patterns');
|
62 |
if (!isset($patterns[$post_type])) {
|
98 |
'order' => 'DESC',
|
99 |
);
|
100 |
|
|
|
101 |
//If post id is set in URL
|
102 |
if ($post_id) {
|
103 |
$query['post__in'] = explode(',', $post_id);
|
110 |
|
111 |
$wp_query = new WP_Query($query);
|
112 |
$posts = $wp_query->get_posts();
|
113 |
+
$wp_query->is_paged = false; //remove pagination
|
114 |
|
115 |
if (!empty($posts)) {
|
116 |
foreach ($posts as $post) {
|
212 |
}
|
213 |
|
214 |
|
215 |
+
if (!empty($labels) || count((array)$this->pages) > 1) {
|
216 |
//Get the labels for view use
|
217 |
$this->labels = SQ_Classes_ObjController::getClass('SQ_Models_BulkSeo')->getLabels();
|
218 |
}
|
607 |
maybe_serialize($metas),
|
608 |
gmdate('Y-m-d H:i:s'));
|
609 |
}
|
610 |
+
SQ_Classes_Error::setMessage(sprintf(__('%s SEO records were imported successfuly! You can now deactivate the %s plugin', _SQ_PLUGIN_NAME_), count((array)$seo), SQ_Classes_ObjController::getClass('SQ_Models_ImportExport')->getName($platform)));
|
611 |
}
|
612 |
}
|
613 |
break;
|
645 |
maybe_serialize($metas),
|
646 |
gmdate('Y-m-d H:i:s'));
|
647 |
}
|
648 |
+
SQ_Classes_Error::setMessage(sprintf(__('%s SEO records were imported successfuly! You can now deactivate the %s plugin', _SQ_PLUGIN_NAME_), count((array)$seo), SQ_Classes_ObjController::getClass('SQ_Models_ImportExport')->getName($platform)));
|
649 |
} else {
|
650 |
SQ_Classes_Error::setMessage(sprintf(__('There are no SEO records with this plugin. You can now deactivate the %s plugin', _SQ_PLUGIN_NAME_), SQ_Classes_ObjController::getClass('SQ_Models_ImportExport')->getName($platform)));
|
651 |
|
controllers/Snippet.php
CHANGED
@@ -179,7 +179,6 @@ class SQ_Controllers_Snippet extends SQ_Classes_FrontController {
|
|
179 |
if ($this->post = $this->model->getCurrentSnippet($post_id, $term_id, $taxonomy, $post_type)) {
|
180 |
$json['html'] = $this->getView('Blocks/Snippet');
|
181 |
}
|
182 |
-
|
183 |
if (SQ_Classes_Helpers_Tools::isAjax()) {
|
184 |
SQ_Classes_Helpers_Tools::setHeader('json');
|
185 |
|
@@ -201,6 +200,7 @@ class SQ_Controllers_Snippet extends SQ_Classes_FrontController {
|
|
201 |
$post_type = SQ_Classes_Helpers_Tools::getValue('post_type', 'post');
|
202 |
|
203 |
if ($this->post = $this->model->getCurrentSnippet($post_id, $term_id, $taxonomy, $post_type)) {
|
|
|
204 |
$json['html'] = $this->getView('Blocks/Snippet');
|
205 |
}
|
206 |
|
179 |
if ($this->post = $this->model->getCurrentSnippet($post_id, $term_id, $taxonomy, $post_type)) {
|
180 |
$json['html'] = $this->getView('Blocks/Snippet');
|
181 |
}
|
|
|
182 |
if (SQ_Classes_Helpers_Tools::isAjax()) {
|
183 |
SQ_Classes_Helpers_Tools::setHeader('json');
|
184 |
|
200 |
$post_type = SQ_Classes_Helpers_Tools::getValue('post_type', 'post');
|
201 |
|
202 |
if ($this->post = $this->model->getCurrentSnippet($post_id, $term_id, $taxonomy, $post_type)) {
|
203 |
+
SQ_Debug::dump($this->post);
|
204 |
$json['html'] = $this->getView('Blocks/Snippet');
|
205 |
}
|
206 |
|
core/BlockFocusPages.php
CHANGED
@@ -8,24 +8,26 @@ class SQ_Core_BlockFocusPages extends SQ_Classes_BlockController {
|
|
8 |
//Get the audits for the focus pages
|
9 |
$audits = SQ_Classes_RemoteController::getFocusAudits();
|
10 |
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
$
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
|
|
|
|
21 |
}
|
22 |
}
|
23 |
}
|
24 |
-
}
|
25 |
|
26 |
-
|
27 |
-
|
28 |
|
|
|
29 |
}
|
30 |
}
|
31 |
echo $this->getView('Blocks/FocusPages');
|
8 |
//Get the audits for the focus pages
|
9 |
$audits = SQ_Classes_RemoteController::getFocusAudits();
|
10 |
|
11 |
+
if(!empty($focuspages)) {
|
12 |
+
foreach ($focuspages as $focuspage) {
|
13 |
+
//Add the audit data if exists
|
14 |
+
if (isset($focuspage->user_post_id) && !empty($audits)) {
|
15 |
+
foreach ($audits as $audit) {
|
16 |
+
if ($focuspage->user_post_id == $audit->user_post_id) {
|
17 |
+
$audit = json_decode($audit->audit);
|
18 |
+
if (isset($audit->properties) && isset($audit->properties->created_at->date)) {
|
19 |
+
$focuspage->audit_datetime = date(get_option('date_format') . ' ' . get_option('time_format'), strtotime($audit->properties->created_at->date));
|
20 |
+
} else {
|
21 |
+
$focuspage->audit_datetime = __('Audit in progress', _SQ_PLUGIN_NAME_);
|
22 |
+
}
|
23 |
}
|
24 |
}
|
25 |
}
|
|
|
26 |
|
27 |
+
/** @var SQ_Models_Domain_FocusPage $focuspage */
|
28 |
+
$this->focuspages[] = SQ_Classes_ObjController::getDomain('SQ_Models_Domain_FocusPage', $focuspage);
|
29 |
|
30 |
+
}
|
31 |
}
|
32 |
}
|
33 |
echo $this->getView('Blocks/FocusPages');
|
core/BlockJorney.php
CHANGED
@@ -16,6 +16,10 @@ class SQ_Core_BlockJorney extends SQ_Classes_BlockController {
|
|
16 |
return false;
|
17 |
}
|
18 |
|
|
|
|
|
|
|
|
|
19 |
$days = 1;
|
20 |
$seconds = strtotime(date('Y-m-d')) - strtotime($seojorney);
|
21 |
|
@@ -24,10 +28,6 @@ class SQ_Core_BlockJorney extends SQ_Classes_BlockController {
|
|
24 |
$days = (int)$days + 1;
|
25 |
}
|
26 |
|
27 |
-
if ($days > 14) {
|
28 |
-
return false;
|
29 |
-
}
|
30 |
-
|
31 |
$this->days = $days;
|
32 |
echo $this->getView('Blocks/Jorney');
|
33 |
}
|
@@ -35,4 +35,18 @@ class SQ_Core_BlockJorney extends SQ_Classes_BlockController {
|
|
35 |
public function getJourneyDays() {
|
36 |
return $this->days;
|
37 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
38 |
}
|
16 |
return false;
|
17 |
}
|
18 |
|
19 |
+
if (!SQ_Classes_Helpers_Tools::getOption('sq_seojourney_congrats')) {
|
20 |
+
return false;
|
21 |
+
}
|
22 |
+
|
23 |
$days = 1;
|
24 |
$seconds = strtotime(date('Y-m-d')) - strtotime($seojorney);
|
25 |
|
28 |
$days = (int)$days + 1;
|
29 |
}
|
30 |
|
|
|
|
|
|
|
|
|
31 |
$this->days = $days;
|
32 |
echo $this->getView('Blocks/Jorney');
|
33 |
}
|
35 |
public function getJourneyDays() {
|
36 |
return $this->days;
|
37 |
}
|
38 |
+
|
39 |
+
/**
|
40 |
+
* 14 days journey action
|
41 |
+
*/
|
42 |
+
public function action() {
|
43 |
+
parent::action();
|
44 |
+
switch (SQ_Classes_Helpers_Tools::getValue('action')) {
|
45 |
+
//login action
|
46 |
+
case 'sq_journey_close':
|
47 |
+
SQ_Classes_Helpers_Tools::saveOptions('sq_seojourney_congrats', 0);
|
48 |
+
break;
|
49 |
+
|
50 |
+
}
|
51 |
+
}
|
52 |
}
|
core/BlockStats.php
CHANGED
@@ -14,6 +14,10 @@ class SQ_Core_BlockStats extends SQ_Classes_BlockController {
|
|
14 |
function hookGetContent() {
|
15 |
//get the stats from Dashboard
|
16 |
$this->stats = SQ_Classes_RemoteController::getStats();
|
|
|
|
|
|
|
|
|
17 |
}
|
18 |
|
19 |
|
14 |
function hookGetContent() {
|
15 |
//get the stats from Dashboard
|
16 |
$this->stats = SQ_Classes_RemoteController::getStats();
|
17 |
+
|
18 |
+
if(is_wp_error($this->stats)){
|
19 |
+
$this->stats = array();
|
20 |
+
}
|
21 |
}
|
22 |
|
23 |
|
core/BlockSupport.php
CHANGED
@@ -2,11 +2,12 @@
|
|
2 |
|
3 |
class SQ_Core_BlockSupport extends SQ_Classes_BlockController {
|
4 |
|
5 |
-
public function init(){
|
6 |
SQ_Classes_ObjController::getClass('SQ_Classes_DisplayController')->loadMedia('support');
|
7 |
|
8 |
echo $this->getView('Blocks/Support');
|
9 |
}
|
|
|
10 |
/**
|
11 |
* Called when Post action is triggered
|
12 |
*
|
@@ -26,10 +27,9 @@ class SQ_Core_BlockSupport extends SQ_Classes_BlockController {
|
|
26 |
$from = $current_user->user_email;
|
27 |
}
|
28 |
$subject = __('Plugin Feedback', _SQ_PLUGIN_NAME_);
|
29 |
-
$face = SQ_Classes_Helpers_Tools::getValue('feedback');
|
30 |
-
$message = SQ_Classes_Helpers_Tools::getValue('message');
|
31 |
|
32 |
-
if ($
|
33 |
switch ($face) {
|
34 |
case 1:
|
35 |
$face = 'Angry';
|
2 |
|
3 |
class SQ_Core_BlockSupport extends SQ_Classes_BlockController {
|
4 |
|
5 |
+
public function init() {
|
6 |
SQ_Classes_ObjController::getClass('SQ_Classes_DisplayController')->loadMedia('support');
|
7 |
|
8 |
echo $this->getView('Blocks/Support');
|
9 |
}
|
10 |
+
|
11 |
/**
|
12 |
* Called when Post action is triggered
|
13 |
*
|
27 |
$from = $current_user->user_email;
|
28 |
}
|
29 |
$subject = __('Plugin Feedback', _SQ_PLUGIN_NAME_);
|
30 |
+
$face = SQ_Classes_Helpers_Tools::getValue('feedback', false);
|
|
|
31 |
|
32 |
+
if ($face) {
|
33 |
switch ($face) {
|
34 |
case 1:
|
35 |
$face = 'Angry';
|
languages/squirrly-seo-en_US.mo
CHANGED
Binary file
|
languages/squirrly-seo-en_US.po
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
msgid ""
|
2 |
msgstr ""
|
3 |
"Project-Id-Version: \n"
|
4 |
-
"POT-Creation-Date: 2019-04-19
|
5 |
-
"PO-Revision-Date: 2019-04-19
|
6 |
"Last-Translator: \n"
|
7 |
"Language-Team: \n"
|
8 |
"Language: en_US\n"
|
@@ -19,244 +19,244 @@ msgstr ""
|
|
19 |
msgid "Don't bother me!"
|
20 |
msgstr ""
|
21 |
|
22 |
-
#: classes/RemoteController.php:
|
23 |
msgid "Articles optimized so far"
|
24 |
msgstr ""
|
25 |
|
26 |
-
#: classes/RemoteController.php:
|
27 |
msgid "add post"
|
28 |
msgstr ""
|
29 |
|
30 |
-
#: classes/RemoteController.php:
|
31 |
msgid "Average optimization"
|
32 |
msgstr ""
|
33 |
|
34 |
-
#: classes/RemoteController.php:
|
35 |
msgid "All Keyword Researches performed for all websites"
|
36 |
msgstr ""
|
37 |
|
38 |
-
#: classes/RemoteController.php:
|
39 |
msgid "do research"
|
40 |
msgstr ""
|
41 |
|
42 |
-
#: classes/RemoteController.php:
|
43 |
msgid "Keywords stored in Squirrly Briefcase"
|
44 |
msgstr ""
|
45 |
|
46 |
-
#: classes/RemoteController.php:
|
47 |
msgid "add keyword"
|
48 |
msgstr ""
|
49 |
|
50 |
-
#: classes/RemoteController.php:
|
51 |
msgid "Pages ranking in top 100 Google"
|
52 |
msgstr ""
|
53 |
|
54 |
-
#: classes/RemoteController.php:
|
55 |
msgid "see rankings"
|
56 |
msgstr ""
|
57 |
|
58 |
-
#: classes/RemoteController.php:
|
59 |
msgid "SEO Audits"
|
60 |
msgstr ""
|
61 |
|
62 |
-
#: classes/RemoteController.php:
|
63 |
msgid "see audits"
|
64 |
msgstr ""
|
65 |
|
66 |
-
#: classes/RemoteController.php:
|
67 |
msgid "Recent discussions:"
|
68 |
msgstr ""
|
69 |
|
70 |
-
#: classes/RemoteController.php:
|
71 |
msgid "SEO Search Volume:"
|
72 |
msgstr ""
|
73 |
|
74 |
-
#: classes/RemoteController.php:
|
75 |
msgid "Competition:"
|
76 |
msgstr ""
|
77 |
|
78 |
-
#: classes/RemoteController.php:
|
79 |
msgid "Trend:"
|
80 |
msgstr ""
|
81 |
|
82 |
-
#: classes/RemoteController.php:
|
83 |
msgid "Keyword:"
|
84 |
msgstr ""
|
85 |
|
86 |
-
#: classes/RemoteController.php:
|
87 |
msgid "date"
|
88 |
msgstr ""
|
89 |
|
90 |
-
#: classes/RemoteController.php:
|
91 |
#: controllers/Patterns.php:15 controllers/Research.php:292
|
92 |
#: controllers/Research.php:324 controllers/Research.php:380
|
93 |
msgid "Saved!"
|
94 |
msgstr ""
|
95 |
|
96 |
-
#: classes/RemoteController.php:
|
97 |
msgid "Read it!"
|
98 |
msgstr ""
|
99 |
|
100 |
-
#: classes/RemoteController.php:
|
101 |
msgid "Insert it!"
|
102 |
msgstr ""
|
103 |
|
104 |
-
#: classes/RemoteController.php:
|
105 |
msgid "Reference"
|
106 |
msgstr ""
|
107 |
|
108 |
-
#: classes/RemoteController.php:
|
109 |
msgid "Insert as box"
|
110 |
msgstr ""
|
111 |
|
112 |
-
#: classes/RemoteController.php:
|
113 |
msgid "Insert Link"
|
114 |
msgstr ""
|
115 |
|
116 |
-
#: classes/RemoteController.php:
|
117 |
msgid "Not relevant?"
|
118 |
msgstr ""
|
119 |
|
120 |
-
#: classes/RemoteController.php:
|
121 |
msgid "Insert in your article"
|
122 |
msgstr ""
|
123 |
|
124 |
-
#: classes/RemoteController.php:
|
125 |
msgid ":( An error occurred while processing your request. Please try again"
|
126 |
msgstr ""
|
127 |
|
128 |
-
#: classes/RemoteController.php:
|
129 |
msgid "Keyword Research takes too long to get the results. Click to try again"
|
130 |
msgstr ""
|
131 |
|
132 |
-
#: classes/RemoteController.php:
|
133 |
msgid "No results found!"
|
134 |
msgstr ""
|
135 |
|
136 |
-
#: classes/RemoteController.php:
|
137 |
msgid "Enter one more word to find relevant results"
|
138 |
msgstr ""
|
139 |
|
140 |
-
#: classes/RemoteController.php:
|
141 |
#, fuzzy
|
142 |
#| msgid "Takes too long to check this keyword ..."
|
143 |
msgid "It's taking too long to check this keyword"
|
144 |
msgstr "It’s taking too long to check this keyword"
|
145 |
|
146 |
-
#: classes/RemoteController.php:
|
147 |
msgid "Do a research!"
|
148 |
msgstr ""
|
149 |
|
150 |
-
#: classes/RemoteController.php:
|
151 |
msgid "Do more research!"
|
152 |
msgstr ""
|
153 |
|
154 |
-
#: classes/RemoteController.php:
|
155 |
#, php-format
|
156 |
msgid "[ ATTRIBUTE: Please check: %s to find out how to attribute this image ]"
|
157 |
msgstr ""
|
158 |
|
159 |
-
#: classes/RemoteController.php:
|
160 |
msgid "Has creative commons attributes"
|
161 |
msgstr ""
|
162 |
|
163 |
-
#: classes/RemoteController.php:
|
164 |
msgid "No known copyright restrictions"
|
165 |
msgstr ""
|
166 |
|
167 |
-
#: classes/RemoteController.php:
|
168 |
msgid ""
|
169 |
"You haven`t used Squirrly SEO to optimize your article. Do you want to "
|
170 |
"optimize for a keyword before publishing?"
|
171 |
msgstr ""
|
172 |
|
173 |
-
#: classes/RemoteController.php:
|
174 |
msgid "Keyword Research limit exceeded"
|
175 |
msgstr ""
|
176 |
|
177 |
-
#: classes/RemoteController.php:
|
178 |
msgid "Your Subscription has Expired"
|
179 |
msgstr ""
|
180 |
|
181 |
-
#: classes/RemoteController.php:
|
182 |
msgid "Add 20 Keyword Researches"
|
183 |
msgstr ""
|
184 |
|
185 |
-
#: classes/RemoteController.php:
|
186 |
msgid "There are no keywords saved in briefcase yet"
|
187 |
msgstr ""
|
188 |
|
189 |
-
#: classes/RemoteController.php:
|
190 |
#, php-format
|
191 |
msgid "Congratulations! Your article is 100% optimized!"
|
192 |
msgstr ""
|
193 |
|
194 |
-
#: classes/RemoteController.php:
|
195 |
#, php-format
|
196 |
msgid "appears too many times. Try to remove %s of them"
|
197 |
msgstr ""
|
198 |
|
199 |
-
#: classes/RemoteController.php:
|
200 |
#, php-format
|
201 |
msgid "write %s more words"
|
202 |
msgstr ""
|
203 |
|
204 |
-
#: classes/RemoteController.php:
|
205 |
#, php-format
|
206 |
msgid "Add the keyword in the %s of your article"
|
207 |
msgstr ""
|
208 |
|
209 |
-
#: classes/RemoteController.php:
|
210 |
msgid "Click to keep the highlight on"
|
211 |
msgstr ""
|
212 |
|
213 |
-
#: classes/RemoteController.php:
|
214 |
msgid "introduction"
|
215 |
msgstr ""
|
216 |
|
217 |
-
#: classes/RemoteController.php:
|
218 |
#, php-format
|
219 |
msgid "Write more words after the %s keyword"
|
220 |
msgstr ""
|
221 |
|
222 |
-
#: classes/RemoteController.php:
|
223 |
msgid "or use synonyms"
|
224 |
msgstr ""
|
225 |
|
226 |
-
#: classes/RemoteController.php:
|
227 |
#, php-format
|
228 |
msgid "add %s more word(s)"
|
229 |
msgstr ""
|
230 |
|
231 |
-
#: classes/RemoteController.php:
|
232 |
#, php-format
|
233 |
msgid "or remove %s word(s)"
|
234 |
msgstr ""
|
235 |
|
236 |
-
#: classes/RemoteController.php:
|
237 |
#, php-format
|
238 |
msgid "add %s more keyword(s)"
|
239 |
msgstr ""
|
240 |
|
241 |
-
#: classes/RemoteController.php:
|
242 |
#, php-format
|
243 |
msgid "write %s more words to start calculating"
|
244 |
msgstr ""
|
245 |
|
246 |
-
#: classes/RemoteController.php:
|
247 |
msgid "Add to Briefcase"
|
248 |
msgstr ""
|
249 |
|
250 |
-
#: classes/RemoteController.php:
|
251 |
msgid "Add Keyword to Briefcase"
|
252 |
msgstr ""
|
253 |
|
254 |
-
#: classes/RemoteController.php:
|
255 |
msgid "Use Keyword"
|
256 |
msgstr ""
|
257 |
|
258 |
-
#: classes/RemoteController.php:
|
259 |
-
#: view/Blocks/Snippet.php:
|
260 |
msgid "Auto Draft"
|
261 |
msgstr ""
|
262 |
|
@@ -296,59 +296,59 @@ msgstr "The code for Facebook Pixel must only contain numbers."
|
|
296 |
msgid "The code for Facebook App must only contain numbers."
|
297 |
msgstr "The code for Facebook App must only contain numbers."
|
298 |
|
299 |
-
#: classes/helpers/Tools.php:
|
300 |
msgid "Getting started"
|
301 |
msgstr ""
|
302 |
|
303 |
-
#: classes/helpers/Tools.php:
|
304 |
msgid "Documentation"
|
305 |
msgstr ""
|
306 |
|
307 |
-
#: classes/helpers/Tools.php:
|
308 |
msgid "Leave a review"
|
309 |
msgstr ""
|
310 |
|
311 |
-
#: classes/helpers/Tools.php:
|
312 |
msgid "Format"
|
313 |
msgstr ""
|
314 |
|
315 |
-
#: classes/helpers/Tools.php:
|
316 |
msgid "Category"
|
317 |
msgstr ""
|
318 |
|
319 |
-
#: classes/helpers/Tools.php:
|
320 |
msgid "Tag"
|
321 |
msgstr ""
|
322 |
|
323 |
-
#: classes/helpers/Tools.php:
|
324 |
msgid "Shipping Option"
|
325 |
msgstr ""
|
326 |
|
327 |
-
#: classes/helpers/Tools.php:
|
328 |
msgid "Author at"
|
329 |
msgstr ""
|
330 |
|
331 |
-
#: classes/helpers/Tools.php:
|
332 |
msgid "Are you looking for"
|
333 |
msgstr ""
|
334 |
|
335 |
-
#: classes/helpers/Tools.php:
|
336 |
msgid "These are the results for"
|
337 |
msgstr ""
|
338 |
|
339 |
-
#: classes/helpers/Tools.php:
|
340 |
msgid "that you can find on our website."
|
341 |
msgstr ""
|
342 |
|
343 |
-
#: classes/helpers/Tools.php:
|
344 |
msgid "Page not found"
|
345 |
msgstr ""
|
346 |
|
347 |
-
#: classes/helpers/Tools.php:
|
348 |
msgid "This page could not be found on our website."
|
349 |
msgstr ""
|
350 |
|
351 |
-
#: classes/helpers/Tools.php:
|
352 |
#, fuzzy, php-format
|
353 |
#| msgid ""
|
354 |
#| "Good news, %s is integrated in Squirrly SEO now and you don't have to run "
|
@@ -484,12 +484,12 @@ msgid "No keyword found."
|
|
484 |
msgstr ""
|
485 |
|
486 |
#: controllers/Assistant.php:95 controllers/Assistant.php:122
|
487 |
-
#: controllers/Audits.php:
|
488 |
-
#: controllers/SeoSettings.php:
|
489 |
-
#: controllers/SeoSettings.php:
|
490 |
-
#: controllers/SeoSettings.php:
|
491 |
-
#: controllers/SeoSettings.php:
|
492 |
-
#: controllers/SeoSettings.php:
|
493 |
msgid "Saved"
|
494 |
msgstr ""
|
495 |
|
@@ -500,11 +500,11 @@ msgstr ""
|
|
500 |
#: controllers/Research.php:213 controllers/Research.php:273
|
501 |
#: controllers/Research.php:304 controllers/Research.php:332
|
502 |
#: controllers/Research.php:357 controllers/Research.php:388
|
503 |
-
#: controllers/Research.php:
|
504 |
-
#: controllers/SeoSettings.php:
|
505 |
-
#: controllers/SeoSettings.php:
|
506 |
-
#: controllers/SeoSettings.php:
|
507 |
-
#: controllers/Snippet.php:
|
508 |
msgid "You do not have permission to perform this action"
|
509 |
msgstr ""
|
510 |
|
@@ -512,7 +512,7 @@ msgstr ""
|
|
512 |
msgid "Error: Could not save the data."
|
513 |
msgstr ""
|
514 |
|
515 |
-
#: controllers/Audits.php:
|
516 |
msgid "Not a valid email address"
|
517 |
msgstr ""
|
518 |
|
@@ -532,103 +532,103 @@ msgstr ""
|
|
532 |
msgid "Saved! This task will be ignored in the future."
|
533 |
msgstr ""
|
534 |
|
535 |
-
#: controllers/FocusPages.php:
|
536 |
#, fuzzy
|
537 |
#| msgid "Focus Page does not exists or was deleted from your website."
|
538 |
msgid "Focus Page does not exist or was deleted from your website."
|
539 |
msgstr "Focus Page does not exist or was deleted from your website."
|
540 |
|
541 |
-
#: controllers/FocusPages.php:
|
542 |
msgid "Focus page is added. The audit may take a while so please be patient."
|
543 |
msgstr ""
|
544 |
|
545 |
-
#: controllers/FocusPages.php:
|
546 |
msgid "You reached the maximum number of focus pages for your account."
|
547 |
msgstr ""
|
548 |
|
549 |
-
#: controllers/FocusPages.php:
|
550 |
msgid "Error! Could not add the focus page."
|
551 |
msgstr ""
|
552 |
|
553 |
-
#: controllers/FocusPages.php:
|
554 |
msgid "Error! This focus page is not public."
|
555 |
msgstr ""
|
556 |
|
557 |
-
#: controllers/FocusPages.php:
|
558 |
msgid "Error! Could not find the focus page in your website."
|
559 |
msgstr ""
|
560 |
|
561 |
-
#: controllers/FocusPages.php:
|
562 |
msgid "Focus page sent for recheck. It may take a while so please be patient."
|
563 |
msgstr ""
|
564 |
|
565 |
-
#: controllers/FocusPages.php:
|
566 |
#, fuzzy
|
567 |
#| msgid "Too many requests, please wait 5 minutes."
|
568 |
msgid "You've made too many requests, please wait a few minutes."
|
569 |
msgstr "You've made too many requests, please wait a few minutes. "
|
570 |
|
571 |
-
#: controllers/FocusPages.php:
|
572 |
msgid "Error! Could not refresh the focus page."
|
573 |
msgstr ""
|
574 |
|
575 |
-
#: controllers/FocusPages.php:
|
576 |
msgid "The focus page is deleted"
|
577 |
msgstr ""
|
578 |
|
579 |
-
#: controllers/FocusPages.php:
|
580 |
#: controllers/Research.php:180 controllers/Research.php:183
|
581 |
#: controllers/Research.php:207 controllers/Research.php:326
|
582 |
-
#: controllers/Research.php:351 controllers/Research.php:
|
583 |
-
#: controllers/Research.php:
|
584 |
msgid "Invalid params!"
|
585 |
msgstr ""
|
586 |
|
587 |
-
#: controllers/Menu.php:
|
588 |
#, php-format
|
589 |
msgid ""
|
590 |
"An error occurred during activation. If this error persists, please contact "
|
591 |
"us at: %s"
|
592 |
msgstr ""
|
593 |
|
594 |
-
#: controllers/Menu.php:
|
595 |
msgid "Dashboard"
|
596 |
msgstr ""
|
597 |
|
598 |
-
#: controllers/Menu.php:
|
599 |
#: view/Blocks/SLASearch.php:7
|
600 |
msgid "Squirrly SEO"
|
601 |
msgstr ""
|
602 |
|
603 |
-
#: controllers/Menu.php:
|
604 |
msgid "SEO Snippet"
|
605 |
msgstr ""
|
606 |
|
607 |
-
#: controllers/Menu.php:
|
608 |
msgid "Custom SEO"
|
609 |
msgstr ""
|
610 |
|
611 |
-
#: controllers/Menu.php:
|
612 |
msgid "Squirrly Onboarding"
|
613 |
msgstr ""
|
614 |
|
615 |
-
#: controllers/Menu.php:
|
616 |
msgid "Onboarding"
|
617 |
msgstr ""
|
618 |
|
619 |
-
#: controllers/Menu.php:
|
620 |
msgid "Squirrly Account Info"
|
621 |
msgstr ""
|
622 |
|
623 |
-
#: controllers/Menu.php:
|
624 |
msgid "Account Info"
|
625 |
msgstr ""
|
626 |
|
627 |
-
#: controllers/Menu.php:
|
628 |
msgid "Squirrly How To & Support"
|
629 |
msgstr ""
|
630 |
|
631 |
-
#: controllers/Menu.php:
|
632 |
msgid "Help & Support"
|
633 |
msgstr ""
|
634 |
|
@@ -720,102 +720,106 @@ msgstr ""
|
|
720 |
msgid "Invalid Label or Color!"
|
721 |
msgstr ""
|
722 |
|
723 |
-
#: controllers/Research.php:
|
724 |
-
#: controllers/SeoSettings.php:
|
725 |
msgid "Great! The backup is restored."
|
726 |
msgstr ""
|
727 |
|
728 |
-
#: controllers/Research.php:
|
729 |
-
#: controllers/SeoSettings.php:
|
730 |
-
#: controllers/SeoSettings.php:
|
731 |
msgid "Error! The backup is not valid."
|
732 |
msgstr ""
|
733 |
|
734 |
-
#: controllers/Research.php:
|
735 |
-
#: controllers/SeoSettings.php:
|
736 |
#, fuzzy
|
737 |
#| msgid "Error! You have to enter a previous saved backup file."
|
738 |
msgid "Error! You have to enter a previously saved backup file."
|
739 |
msgstr "Error! You have to enter a previously saved backup file."
|
740 |
|
741 |
-
#: controllers/Research.php:
|
742 |
#, fuzzy
|
743 |
#| msgid "Could not add the keyword to Serp Check. Please try again."
|
744 |
msgid "Could not add the keyword to SERP Check. Please try again."
|
745 |
msgstr "Could not add the keyword to SERP Check. Please try again."
|
746 |
|
747 |
-
#: controllers/Research.php:
|
748 |
#, fuzzy
|
749 |
#| msgid "The keyword is added to Serp Check."
|
750 |
msgid "The keyword is added to SERP Check."
|
751 |
msgstr "The keyword is added to SERP Check."
|
752 |
|
753 |
-
#: controllers/Research.php:
|
754 |
msgid "Invalid parameters."
|
755 |
msgstr ""
|
756 |
|
757 |
-
#: controllers/SeoSettings.php:
|
758 |
msgid "Google Analytics account is disconnected."
|
759 |
msgstr ""
|
760 |
|
761 |
-
#: controllers/SeoSettings.php:
|
762 |
msgid "Error! Could not disconnect the account."
|
763 |
msgstr ""
|
764 |
|
765 |
-
#: controllers/SeoSettings.php:
|
766 |
msgid "Google Search Console account is disconnected."
|
767 |
msgstr ""
|
768 |
|
769 |
-
#: controllers/SeoSettings.php:
|
770 |
msgid "Great! The SEO backup is restored."
|
771 |
msgstr ""
|
772 |
|
773 |
-
#: controllers/SeoSettings.php:
|
774 |
msgid "Settings imported successfuly!"
|
775 |
msgstr ""
|
776 |
|
777 |
-
#: controllers/SeoSettings.php:
|
778 |
#, php-format
|
779 |
msgid ""
|
780 |
"%s SEO records were imported successfuly! You can now deactivate the %s "
|
781 |
"plugin"
|
782 |
msgstr ""
|
783 |
|
784 |
-
#: controllers/SeoSettings.php:
|
785 |
msgid "All the Plugin settings were imported successfuly!"
|
786 |
msgstr ""
|
787 |
|
788 |
-
#: controllers/SeoSettings.php:
|
789 |
msgid "No settings found for this plugin/theme."
|
790 |
msgstr ""
|
791 |
|
792 |
-
#: controllers/SeoSettings.php:
|
793 |
#, php-format
|
794 |
msgid ""
|
795 |
"There are no SEO records with this plugin. You can now deactivate the %s "
|
796 |
"plugin"
|
797 |
msgstr ""
|
798 |
|
799 |
-
#: controllers/SeoSettings.php:
|
800 |
msgid "Could not save the changes"
|
801 |
msgstr ""
|
802 |
|
803 |
-
#: controllers/SeoSettings.php:
|
804 |
msgid "Could not add the post type"
|
805 |
msgstr ""
|
806 |
|
807 |
-
#: controllers/Snippet.php:
|
808 |
msgid "Squirrly SEO Snippet"
|
809 |
msgstr ""
|
810 |
|
811 |
-
#: controllers/Snippet.php:
|
812 |
msgid "Could not save the data"
|
813 |
msgstr ""
|
814 |
|
815 |
-
#: core/BlockFocusPages.php:
|
816 |
msgid "Audit in progress"
|
817 |
msgstr ""
|
818 |
|
|
|
|
|
|
|
|
|
819 |
#: core/BlockSupport.php:28
|
820 |
msgid "Plugin Feedback"
|
821 |
msgstr ""
|
@@ -955,8 +959,8 @@ msgid ""
|
|
955 |
"you'll find out what you need to do to complete the task and turn it Green."
|
956 |
msgstr ""
|
957 |
|
958 |
-
#: models/Assistant.php:109 view/Blocks/Jorney.php:
|
959 |
-
#: view/Blocks/KRHistory.php:
|
960 |
msgid "Do Keyword Research"
|
961 |
msgstr ""
|
962 |
|
@@ -1064,7 +1068,7 @@ msgid ""
|
|
1064 |
"sure you click on SAVE settings after you switch anything on or off."
|
1065 |
msgstr ""
|
1066 |
|
1067 |
-
#: models/Assistant.php:148 view/Blocks/Snippet.php:
|
1068 |
#: view/SeoSettings/Jsonld.php:28
|
1069 |
#, fuzzy
|
1070 |
#| msgid "Activate Json-LD"
|
@@ -1104,7 +1108,7 @@ msgstr ""
|
|
1104 |
"Then, at URL-level you will be able to add custom JSON-LD if you're an "
|
1105 |
"advanced user."
|
1106 |
|
1107 |
-
#: models/Assistant.php:153 view/Blocks/Snippet.php:
|
1108 |
#: view/SeoSettings/Automation.php:323 view/SeoSettings/Social.php:52
|
1109 |
msgid "Activate Open Graph"
|
1110 |
msgstr ""
|
@@ -1119,7 +1123,7 @@ msgid ""
|
|
1119 |
"your site."
|
1120 |
msgstr ""
|
1121 |
|
1122 |
-
#: models/Assistant.php:158 view/Blocks/Snippet.php:
|
1123 |
#: view/SeoSettings/Automation.php:350 view/SeoSettings/Social.php:275
|
1124 |
msgid "Activate Twitter Card"
|
1125 |
msgstr ""
|
@@ -1323,7 +1327,7 @@ msgid ""
|
|
1323 |
"those tasks and turning elements to green you'll complete this task."
|
1324 |
msgstr ""
|
1325 |
|
1326 |
-
#: models/Assistant.php:277
|
1327 |
#, fuzzy
|
1328 |
#| msgid "You choosed to ignore this task. Click to activate it."
|
1329 |
msgid "You chose to ignore this task. Click to activate it."
|
@@ -1333,15 +1337,15 @@ msgstr "You chose to ignore this task. Click to activate it."
|
|
1333 |
msgid "METAs"
|
1334 |
msgstr ""
|
1335 |
|
1336 |
-
#: models/BulkSeo.php:18 view/Blocks/Snippet.php:
|
1337 |
msgid "Open Graph"
|
1338 |
msgstr ""
|
1339 |
|
1340 |
-
#: models/BulkSeo.php:19 view/Blocks/Snippet.php:
|
1341 |
msgid "Twitter Card"
|
1342 |
msgstr ""
|
1343 |
|
1344 |
-
#: models/BulkSeo.php:20 models/FocusPages.php:20 view/Blocks/Snippet.php:
|
1345 |
msgid "Visibility"
|
1346 |
msgstr ""
|
1347 |
|
@@ -1469,7 +1473,7 @@ msgid ""
|
|
1469 |
msgstr ""
|
1470 |
|
1471 |
#: models/CheckSeo.php:56 models/CheckSeo.php:57
|
1472 |
-
#: models/bulkseo/Visibility.php:104 view/Blocks/Snippet.php:
|
1473 |
msgid "Discourage search engines from indexing this site"
|
1474 |
msgstr ""
|
1475 |
|
@@ -1517,8 +1521,8 @@ msgstr ""
|
|
1517 |
msgid "Change the Tagline with your Brand or the Store name from %s"
|
1518 |
msgstr ""
|
1519 |
|
1520 |
-
#: models/CheckSeo.php:69 models/Menu.php:
|
1521 |
-
#: models/Menu.php:
|
1522 |
msgid "Settings"
|
1523 |
msgstr ""
|
1524 |
|
@@ -1542,11 +1546,11 @@ msgstr ""
|
|
1542 |
msgid "Activate AMP tracking in %s Squirrly > SEO Settings > Tracking Tools%s "
|
1543 |
msgstr ""
|
1544 |
|
1545 |
-
#: models/CheckSeo.php:
|
1546 |
msgid "Could not verify the frontend."
|
1547 |
msgstr ""
|
1548 |
|
1549 |
-
#: models/CheckSeo.php:
|
1550 |
msgid "Just another WordPress site"
|
1551 |
msgstr ""
|
1552 |
|
@@ -1557,7 +1561,7 @@ msgstr ""
|
|
1557 |
#: models/focuspages/Keyword.php:82 models/focuspages/Snippet.php:124
|
1558 |
#: models/focuspages/Strategy.php:88 view/Blocks/KRFound.php:15
|
1559 |
#: view/Blocks/KRHistory.php:15 view/Ranking/Gscsync.php:29
|
1560 |
-
#: view/Ranking/Rankings.php:
|
1561 |
#: view/Research/Briefcase.php:66 view/Research/Briefcase.php:106
|
1562 |
#: view/Research/History.php:25 view/Research/HistoryDetails.php:7
|
1563 |
#: view/Research/Research.php:158 view/Research/Suggested.php:24
|
@@ -1625,12 +1629,12 @@ msgid "CTR"
|
|
1625 |
msgstr ""
|
1626 |
|
1627 |
#: models/FocusPages.php:37 view/Ranking/Gscsync.php:31
|
1628 |
-
#: view/Ranking/Rankings.php:
|
1629 |
msgid "Impressions"
|
1630 |
msgstr ""
|
1631 |
|
1632 |
#: models/FocusPages.php:38 view/Ranking/Gscsync.php:30
|
1633 |
-
#: view/Ranking/Rankings.php:
|
1634 |
msgid "Clicks"
|
1635 |
msgstr ""
|
1636 |
|
@@ -1663,7 +1667,7 @@ msgstr ""
|
|
1663 |
msgid "The favicon has been updated."
|
1664 |
msgstr ""
|
1665 |
|
1666 |
-
#: models/Menu.php:123 models/Menu.php:
|
1667 |
msgid "First Step"
|
1668 |
msgstr ""
|
1669 |
|
@@ -1695,7 +1699,7 @@ msgstr ""
|
|
1695 |
msgid " SEO Settings"
|
1696 |
msgstr ""
|
1697 |
|
1698 |
-
#: models/Menu.php:155 models/Menu.php:
|
1699 |
#: view/FocusPages/Pagelist.php:19
|
1700 |
msgid "Focus Pages"
|
1701 |
msgstr ""
|
@@ -1712,7 +1716,7 @@ msgstr ""
|
|
1712 |
msgid " SEO Audit"
|
1713 |
msgstr ""
|
1714 |
|
1715 |
-
#: models/Menu.php:171 models/Menu.php:
|
1716 |
msgid "Rankings"
|
1717 |
msgstr ""
|
1718 |
|
@@ -1720,215 +1724,217 @@ msgstr ""
|
|
1720 |
msgid " Rankings"
|
1721 |
msgstr ""
|
1722 |
|
1723 |
-
#: models/Menu.php:
|
1724 |
msgid "Find Keywords"
|
1725 |
msgstr ""
|
1726 |
|
1727 |
-
#: models/Menu.php:
|
1728 |
msgid "do a keyword research"
|
1729 |
msgstr ""
|
1730 |
|
1731 |
-
#: models/Menu.php:
|
1732 |
msgid "Briefcase"
|
1733 |
msgstr ""
|
1734 |
|
1735 |
-
#: models/Menu.php:
|
1736 |
msgid "save the best Keywords"
|
1737 |
msgstr ""
|
1738 |
|
1739 |
-
#: models/Menu.php:
|
1740 |
msgid "Labels"
|
1741 |
msgstr ""
|
1742 |
|
1743 |
-
#: models/Menu.php:
|
1744 |
msgid "group keywords"
|
1745 |
msgstr ""
|
1746 |
|
1747 |
-
#: models/Menu.php:
|
1748 |
msgid "Suggested"
|
1749 |
msgstr ""
|
1750 |
|
1751 |
-
#: models/Menu.php:
|
1752 |
msgid "better keywords found"
|
1753 |
msgstr ""
|
1754 |
|
1755 |
-
#: models/Menu.php:
|
1756 |
msgid "History"
|
1757 |
msgstr ""
|
1758 |
|
1759 |
-
#: models/Menu.php:
|
1760 |
msgid "keyword research history"
|
1761 |
msgstr ""
|
1762 |
|
1763 |
-
#: models/Menu.php:
|
1764 |
msgid "Optimize Posts"
|
1765 |
msgstr ""
|
1766 |
|
1767 |
-
#: models/Menu.php:
|
1768 |
#, fuzzy
|
1769 |
#| msgid "use live assistant"
|
1770 |
msgid "use the Live Assistant"
|
1771 |
msgstr "use the Live Assistant"
|
1772 |
|
1773 |
-
#: models/Menu.php:
|
1774 |
msgid "live assistant setup"
|
1775 |
msgstr ""
|
1776 |
|
1777 |
-
#: models/Menu.php:
|
1778 |
msgid "all my focus pages"
|
1779 |
msgstr ""
|
1780 |
|
1781 |
-
#: models/Menu.php:
|
1782 |
msgid "Add New Page"
|
1783 |
msgstr ""
|
1784 |
|
1785 |
-
#: models/Menu.php:
|
1786 |
msgid "add page in focus pages"
|
1787 |
msgstr ""
|
1788 |
|
1789 |
-
#: models/Menu.php:
|
1790 |
msgid "Overview"
|
1791 |
msgstr ""
|
1792 |
|
1793 |
-
#: models/Menu.php:
|
1794 |
#, fuzzy
|
1795 |
#| msgid "See all the seo audits"
|
1796 |
msgid "See all the SEO audits"
|
1797 |
msgstr "See all the SEO audits"
|
1798 |
|
1799 |
-
#: models/Menu.php:
|
1800 |
msgid "Audit settings"
|
1801 |
msgstr ""
|
1802 |
|
1803 |
-
#: models/Menu.php:
|
1804 |
msgid "See Google ranking"
|
1805 |
msgstr ""
|
1806 |
|
1807 |
-
#: models/Menu.php:
|
1808 |
msgid "Add Keywords"
|
1809 |
msgstr ""
|
1810 |
|
1811 |
-
#: models/Menu.php:
|
1812 |
msgid "Add briefcase keywords"
|
1813 |
msgstr ""
|
1814 |
|
1815 |
-
#: models/Menu.php:
|
1816 |
msgid "Ranking settings"
|
1817 |
msgstr ""
|
1818 |
|
1819 |
-
#: models/Menu.php:
|
1820 |
msgid "Bulk SEO"
|
1821 |
msgstr ""
|
1822 |
|
1823 |
-
#: models/Menu.php:
|
1824 |
msgid "optimize all pages"
|
1825 |
msgstr ""
|
1826 |
|
1827 |
-
#: models/Menu.php:
|
1828 |
msgid "SEO Metas"
|
1829 |
msgstr ""
|
1830 |
|
1831 |
-
#: models/Menu.php:
|
1832 |
msgid "required on-page metas"
|
1833 |
msgstr ""
|
1834 |
|
1835 |
-
#: models/Menu.php:
|
1836 |
-
|
1837 |
-
|
|
|
|
|
1838 |
|
1839 |
-
#: models/Menu.php:
|
1840 |
msgid "google structured data"
|
1841 |
msgstr ""
|
1842 |
|
1843 |
-
#: models/Menu.php:
|
1844 |
msgid "Social Media"
|
1845 |
msgstr ""
|
1846 |
|
1847 |
-
#: models/Menu.php:
|
1848 |
msgid "social share options"
|
1849 |
msgstr ""
|
1850 |
|
1851 |
-
#: models/Menu.php:
|
1852 |
msgid "Automation"
|
1853 |
msgstr ""
|
1854 |
|
1855 |
-
#: models/Menu.php:
|
1856 |
msgid "patterns & automation"
|
1857 |
msgstr ""
|
1858 |
|
1859 |
-
#: models/Menu.php:
|
1860 |
msgid "Tracking Tools"
|
1861 |
msgstr ""
|
1862 |
|
1863 |
-
#: models/Menu.php:
|
1864 |
msgid "google analytics, pixel, etc."
|
1865 |
msgstr ""
|
1866 |
|
1867 |
-
#: models/Menu.php:
|
1868 |
msgid "Connection"
|
1869 |
msgstr ""
|
1870 |
|
1871 |
-
#: models/Menu.php:
|
1872 |
msgid "webmaster tools"
|
1873 |
msgstr ""
|
1874 |
|
1875 |
-
#: models/Menu.php:
|
1876 |
msgid "Sitemap XML"
|
1877 |
msgstr ""
|
1878 |
|
1879 |
-
#: models/Menu.php:
|
1880 |
msgid "setup the sitemap"
|
1881 |
msgstr ""
|
1882 |
|
1883 |
-
#: models/Menu.php:
|
1884 |
msgid "Robots.txt"
|
1885 |
msgstr ""
|
1886 |
|
1887 |
-
#: models/Menu.php:
|
1888 |
msgid "search engine filters"
|
1889 |
msgstr ""
|
1890 |
|
1891 |
-
#: models/Menu.php:
|
1892 |
msgid "Favicon"
|
1893 |
msgstr ""
|
1894 |
|
1895 |
-
#: models/Menu.php:
|
1896 |
msgid "add website icon"
|
1897 |
msgstr ""
|
1898 |
|
1899 |
-
#: models/Menu.php:
|
1900 |
msgid "Import/Export"
|
1901 |
msgstr ""
|
1902 |
|
1903 |
-
#: models/Menu.php:
|
1904 |
msgid "import & export SEO"
|
1905 |
msgstr ""
|
1906 |
|
1907 |
-
#: models/Menu.php:
|
1908 |
msgid "all the SEO features"
|
1909 |
msgstr ""
|
1910 |
|
1911 |
-
#: models/Menu.php:
|
1912 |
msgid "14 days jorney"
|
1913 |
msgstr ""
|
1914 |
|
1915 |
-
#: models/Menu.php:
|
1916 |
msgid "sign up for better ranking"
|
1917 |
msgstr ""
|
1918 |
|
1919 |
-
#: models/Menu.php:
|
1920 |
msgid "Import"
|
1921 |
msgstr ""
|
1922 |
|
1923 |
-
#: models/Menu.php:
|
1924 |
msgid "import settings and SEO"
|
1925 |
msgstr ""
|
1926 |
|
1927 |
-
#: models/Menu.php:
|
1928 |
msgid "Final Step"
|
1929 |
msgstr ""
|
1930 |
|
1931 |
-
#: models/Menu.php:
|
1932 |
msgid "start using Squirrly SEO"
|
1933 |
msgstr ""
|
1934 |
|
@@ -2010,7 +2016,7 @@ msgstr ""
|
|
2010 |
msgid "Can't get snippet data"
|
2011 |
msgstr ""
|
2012 |
|
2013 |
-
#: models/PostsList.php:55 models/PostsList.php:80 view/Blocks/Snippet.php:
|
2014 |
msgid "Edit Snippet"
|
2015 |
msgstr ""
|
2016 |
|
@@ -2026,7 +2032,7 @@ msgstr ""
|
|
2026 |
msgid "You don't have enough pemission to edit this article"
|
2027 |
msgstr ""
|
2028 |
|
2029 |
-
#: models/Snippet.php:117
|
2030 |
msgid "Couldn't find the page"
|
2031 |
msgstr ""
|
2032 |
|
@@ -2042,20 +2048,16 @@ msgstr ""
|
|
2042 |
msgid "Not enough data to process this task"
|
2043 |
msgstr ""
|
2044 |
|
2045 |
-
#: models/abstract/Assistant.php:164 view/Blocks/Snippet.php:
|
2046 |
msgid "Current"
|
2047 |
msgstr ""
|
2048 |
|
2049 |
-
#: models/abstract/Assistant.php:178
|
2050 |
-
msgid "You choosed to ignore this task. Click to activate it."
|
2051 |
-
msgstr "You chose to ignore this task. Click to activate it."
|
2052 |
-
|
2053 |
#: models/bulkseo/Metas.php:56
|
2054 |
msgid "Title not empty"
|
2055 |
msgstr ""
|
2056 |
|
2057 |
-
#: models/bulkseo/Metas.php:57 view/Blocks/Snippet.php:
|
2058 |
-
#: view/Blocks/Snippet.php:
|
2059 |
msgid "Current Title"
|
2060 |
msgstr ""
|
2061 |
|
@@ -2126,8 +2128,8 @@ msgstr ""
|
|
2126 |
msgid "Description not empty"
|
2127 |
msgstr ""
|
2128 |
|
2129 |
-
#: models/bulkseo/Metas.php:75 view/Blocks/Snippet.php:
|
2130 |
-
#: view/Blocks/Snippet.php:
|
2131 |
msgid "Current Description"
|
2132 |
msgstr ""
|
2133 |
|
@@ -2521,7 +2523,7 @@ msgid ""
|
|
2521 |
"visibility settings."
|
2522 |
msgstr ""
|
2523 |
|
2524 |
-
#: models/bulkseo/Visibility.php:31 view/Blocks/Snippet.php:
|
2525 |
msgid "Send Authority to this page"
|
2526 |
msgstr ""
|
2527 |
|
@@ -2825,7 +2827,7 @@ msgstr ""
|
|
2825 |
#: models/focuspages/Ctr.php:71 models/focuspages/Image.php:81
|
2826 |
#: models/focuspages/Impressions.php:60 models/focuspages/Impressions.php:71
|
2827 |
#: models/focuspages/Keyword.php:83 models/focuspages/Keyword.php:95
|
2828 |
-
#: models/focuspages/Strategy.php:99 view/Research/Briefcase.php:
|
2829 |
msgid "Do a research"
|
2830 |
msgstr ""
|
2831 |
|
@@ -3065,7 +3067,7 @@ msgid ""
|
|
3065 |
"Search Console API to send Google the request on your behalf."
|
3066 |
msgstr ""
|
3067 |
|
3068 |
-
#: models/focuspages/Indexability.php:67 view/Blocks/Snippet.php:
|
3069 |
msgid "Canonical link"
|
3070 |
msgstr ""
|
3071 |
|
@@ -3337,10 +3339,10 @@ msgid "Nofollow on external links"
|
|
3337 |
msgstr ""
|
3338 |
|
3339 |
#: models/focuspages/Snippet.php:69 models/focuspages/Snippet.php:180
|
3340 |
-
#: models/focuspages/Snippet.php:202 view/Blocks/Snippet.php:
|
3341 |
-
#: view/Blocks/Snippet.php:
|
3342 |
#: view/FocusPages/Addpage.php:50 view/SeoSettings/Automation.php:86
|
3343 |
-
#: view/SeoSettings/Bulkseo.php:
|
3344 |
msgid "Title"
|
3345 |
msgstr ""
|
3346 |
|
@@ -3358,8 +3360,8 @@ msgid ""
|
|
3358 |
msgstr ""
|
3359 |
|
3360 |
#: models/focuspages/Snippet.php:75 models/focuspages/Snippet.php:181
|
3361 |
-
#: models/focuspages/Snippet.php:203 view/Blocks/Snippet.php:
|
3362 |
-
#: view/Blocks/Snippet.php:
|
3363 |
#: view/SeoSettings/Metas.php:168
|
3364 |
msgid "Description"
|
3365 |
msgstr ""
|
@@ -3848,7 +3850,7 @@ msgstr ""
|
|
3848 |
|
3849 |
#: view/Audits/Audits.php:115 view/Audits/Audits.php:157
|
3850 |
#: view/Blocks/Audits.php:21 view/Blocks/KRHistory.php:17
|
3851 |
-
#: view/Ranking/Rankings.php:
|
3852 |
msgid "Date"
|
3853 |
msgstr ""
|
3854 |
|
@@ -3970,39 +3972,51 @@ msgstr ""
|
|
3970 |
msgid "Permalink"
|
3971 |
msgstr ""
|
3972 |
|
3973 |
-
#: view/Blocks/FocusPages.php:17 view/FocusPages/FocusPageRow.php:
|
3974 |
msgid "Last audited"
|
3975 |
msgstr ""
|
3976 |
|
3977 |
-
#: view/Blocks/FocusPages.php:
|
3978 |
msgid "Check Focus Page"
|
3979 |
msgstr ""
|
3980 |
|
3981 |
-
#: view/Blocks/FocusPages.php:
|
3982 |
msgid "To get started with managing the focus pages"
|
3983 |
msgstr ""
|
3984 |
|
3985 |
-
#: view/Blocks/FocusPages.php:
|
3986 |
msgid "Add new page"
|
3987 |
msgstr ""
|
3988 |
|
3989 |
-
#: view/Blocks/FocusPages.php:
|
3990 |
msgid "Then set a page as focus"
|
3991 |
msgstr ""
|
3992 |
|
3993 |
-
#: view/Blocks/Jorney.php:
|
|
|
|
|
|
|
|
|
3994 |
msgid "Your 14 Days Journey To Better Ranking"
|
3995 |
msgstr ""
|
3996 |
|
3997 |
-
#: view/Blocks/Jorney.php:
|
3998 |
msgid "Day"
|
3999 |
msgstr ""
|
4000 |
|
4001 |
-
#: view/Blocks/Jorney.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4002 |
msgid "Open the SEO recipe for today"
|
4003 |
msgstr ""
|
4004 |
|
4005 |
-
#: view/Blocks/Jorney.php:
|
4006 |
msgid "Add a page in Focus Pages"
|
4007 |
msgstr ""
|
4008 |
|
@@ -4011,7 +4025,7 @@ msgid "Suggested Keywords"
|
|
4011 |
msgstr ""
|
4012 |
|
4013 |
#: view/Blocks/KRFound.php:16 view/Blocks/KRHistory.php:16
|
4014 |
-
#: view/Ranking/Rankings.php:
|
4015 |
#: view/Research/History.php:26 view/Research/Research.php:159
|
4016 |
#: view/Research/Suggested.php:25
|
4017 |
msgid "Country"
|
@@ -4024,7 +4038,7 @@ msgid "Co"
|
|
4024 |
msgstr ""
|
4025 |
|
4026 |
#: view/Blocks/KRFound.php:18 view/Blocks/KRFound.php:19
|
4027 |
-
#: view/Blocks/KRFound.php:
|
4028 |
#: view/Research/HistoryDetails.php:16 view/Research/HistoryDetails.php:18
|
4029 |
#: view/Research/Research.php:161 view/Research/Research.php:162
|
4030 |
#: view/Research/Suggested.php:27 view/Research/Suggested.php:28
|
@@ -4032,7 +4046,7 @@ msgstr ""
|
|
4032 |
msgid "Competition"
|
4033 |
msgstr ""
|
4034 |
|
4035 |
-
#: view/Blocks/KRFound.php:22 view/Blocks/KRFound.php:
|
4036 |
#: view/Research/HistoryDetails.php:12 view/Research/Research.php:165
|
4037 |
#: view/Research/Suggested.php:31 view/Research/Suggested.php:82
|
4038 |
msgid "SEO Search Volume"
|
@@ -4043,7 +4057,7 @@ msgstr ""
|
|
4043 |
msgid "SV"
|
4044 |
msgstr ""
|
4045 |
|
4046 |
-
#: view/Blocks/KRFound.php:26 view/Blocks/KRFound.php:
|
4047 |
#: view/Research/Briefcase.php:131 view/Research/HistoryDetails.php:8
|
4048 |
#: view/Research/Research.php:169 view/Research/Suggested.php:35
|
4049 |
#: view/Research/Suggested.php:87
|
@@ -4056,37 +4070,37 @@ msgid "Discussion"
|
|
4056 |
msgstr ""
|
4057 |
|
4058 |
#: view/Blocks/KRFound.php:30 view/Blocks/KRFound.php:31
|
4059 |
-
#: view/Blocks/KRFound.php:
|
4060 |
#: view/Research/HistoryDetails.php:20 view/Research/Research.php:173
|
4061 |
#: view/Research/Suggested.php:39
|
4062 |
msgid "Trending"
|
4063 |
msgstr ""
|
4064 |
|
4065 |
-
#: view/Blocks/KRFound.php:
|
4066 |
-
#: view/Blocks/KRFound.php:
|
4067 |
#: view/Research/Briefcase.php:120 view/Research/Briefcase.php:126
|
4068 |
#: view/Research/Briefcase.php:132 view/Research/Suggested.php:77
|
4069 |
#: view/Research/Suggested.php:82 view/Research/Suggested.php:87
|
4070 |
msgid "-"
|
4071 |
msgstr ""
|
4072 |
|
4073 |
-
#: view/Blocks/KRFound.php:
|
4074 |
#, fuzzy
|
4075 |
#| msgid "We check once a week all the keywords from your briefcase"
|
4076 |
msgid "Once a week, Squirrly checks all the keywords from your briefcase."
|
4077 |
msgstr "Once a week, Squirrly checks all the keywords from your briefcase."
|
4078 |
|
4079 |
-
#: view/Blocks/KRFound.php:
|
4080 |
#, fuzzy
|
4081 |
#| msgid "If we find better keywords, they will be listed here"
|
4082 |
msgid "If it finds better keywords, they will be listed here"
|
4083 |
msgstr "If it finds better keywords, they will be listed here"
|
4084 |
|
4085 |
-
#: view/Blocks/KRFound.php:
|
4086 |
msgid "Until then, add keywords in Briefcase"
|
4087 |
msgstr ""
|
4088 |
|
4089 |
-
#: view/Blocks/KRFound.php:
|
4090 |
#: view/Ranking/Gscsync.php:103 view/Research/Suggested.php:155
|
4091 |
msgid "Go to Briefcase"
|
4092 |
msgstr ""
|
@@ -4099,7 +4113,7 @@ msgstr ""
|
|
4099 |
msgid "See Research History"
|
4100 |
msgstr ""
|
4101 |
|
4102 |
-
#: view/Blocks/KRHistory.php:
|
4103 |
msgid "See your research results and compare them over time"
|
4104 |
msgstr ""
|
4105 |
|
@@ -4178,15 +4192,15 @@ msgstr ""
|
|
4178 |
msgid "keywords found"
|
4179 |
msgstr ""
|
4180 |
|
4181 |
-
#: view/Blocks/Ranks.php:121 view/Ranking/Rankings.php:
|
4182 |
msgid "To see how your website is ranking on Google"
|
4183 |
msgstr ""
|
4184 |
|
4185 |
-
#: view/Blocks/Ranks.php:125 view/Ranking/Rankings.php:
|
4186 |
msgid "Add keywords in Briefcase"
|
4187 |
msgstr ""
|
4188 |
|
4189 |
-
#: view/Blocks/Ranks.php:131 view/Ranking/Rankings.php:
|
4190 |
msgid "Then send keywords to Rank Checker"
|
4191 |
msgstr ""
|
4192 |
|
@@ -4316,153 +4330,153 @@ msgstr ""
|
|
4316 |
msgid "Split Window"
|
4317 |
msgstr ""
|
4318 |
|
4319 |
-
#: view/Blocks/Snippet.php:
|
4320 |
msgid "Meta Tags"
|
4321 |
msgstr ""
|
4322 |
|
4323 |
-
#: view/Blocks/Snippet.php:
|
4324 |
msgid "JSON-LD"
|
4325 |
msgstr ""
|
4326 |
|
4327 |
-
#: view/Blocks/Snippet.php:
|
4328 |
msgid "Tracking"
|
4329 |
msgstr ""
|
4330 |
|
4331 |
-
#: view/Blocks/Snippet.php:
|
4332 |
-
#: view/Blocks/Snippet.php:
|
4333 |
#, php-format
|
4334 |
msgid ""
|
4335 |
"Post Type (%s) was excluded from %sSquirrly > SEO Settings%s. Squirrly SEO "
|
4336 |
"will not load for this post type on the frontend"
|
4337 |
msgstr ""
|
4338 |
|
4339 |
-
#: view/Blocks/Snippet.php:
|
4340 |
#: view/SeoSettings/Automation.php:159 view/SeoSettings/Automation.php:221
|
4341 |
msgid "Activate Metas"
|
4342 |
msgstr ""
|
4343 |
|
4344 |
-
#: view/Blocks/Snippet.php:
|
4345 |
msgid "How this page will appear on Search Engines"
|
4346 |
msgstr ""
|
4347 |
|
4348 |
-
#: view/Blocks/Snippet.php:
|
4349 |
-
#: view/Blocks/Snippet.php:
|
4350 |
-
#: view/Blocks/Snippet.php:
|
4351 |
msgid "Refresh"
|
4352 |
msgstr ""
|
4353 |
|
4354 |
-
#: view/Blocks/Snippet.php:
|
4355 |
-
#: view/Blocks/Snippet.php:
|
4356 |
msgid "AUTO-DRAFT"
|
4357 |
msgstr ""
|
4358 |
|
4359 |
-
#: view/Blocks/Snippet.php:
|
4360 |
-
#: view/Blocks/Snippet.php:
|
4361 |
msgid "Please save the post first to be able to edit the Squirrly SEO Snippet"
|
4362 |
msgstr ""
|
4363 |
|
4364 |
-
#: view/Blocks/Snippet.php:
|
4365 |
-
#: view/Blocks/Snippet.php:
|
4366 |
msgid "Cancel"
|
4367 |
msgstr ""
|
4368 |
|
4369 |
-
#: view/Blocks/Snippet.php:
|
4370 |
-
#: view/Blocks/Snippet.php:
|
4371 |
-
#: view/Blocks/Snippet.php:
|
4372 |
msgid "Save"
|
4373 |
msgstr ""
|
4374 |
|
4375 |
-
#: view/Blocks/Snippet.php:
|
4376 |
msgid "Activate Title"
|
4377 |
msgstr ""
|
4378 |
|
4379 |
-
#: view/Blocks/Snippet.php:
|
4380 |
-
#: view/Blocks/Snippet.php:
|
4381 |
-
#: view/Blocks/Snippet.php:
|
4382 |
#, php-format
|
4383 |
msgid "Tips: Length %s-%s chars"
|
4384 |
msgstr ""
|
4385 |
|
4386 |
-
#: view/Blocks/Snippet.php:
|
4387 |
-
#: view/Blocks/Snippet.php:
|
4388 |
-
#: view/Blocks/Snippet.php:
|
4389 |
msgid "Pattern: "
|
4390 |
msgstr ""
|
4391 |
|
4392 |
-
#: view/Blocks/Snippet.php:
|
4393 |
-
#: view/Blocks/Snippet.php:
|
4394 |
msgid "Default Title"
|
4395 |
msgstr ""
|
4396 |
|
4397 |
-
#: view/Blocks/Snippet.php:
|
4398 |
-
#: view/Blocks/Snippet.php:
|
4399 |
-
#: view/Blocks/Snippet.php:
|
4400 |
msgid "Pattern"
|
4401 |
msgstr ""
|
4402 |
|
4403 |
-
#: view/Blocks/Snippet.php:
|
4404 |
msgid "Activate Description"
|
4405 |
msgstr ""
|
4406 |
|
4407 |
-
#: view/Blocks/Snippet.php:
|
4408 |
msgid "Meta Description"
|
4409 |
msgstr ""
|
4410 |
|
4411 |
-
#: view/Blocks/Snippet.php:
|
4412 |
-
#: view/Blocks/Snippet.php:
|
4413 |
msgid "Default Description"
|
4414 |
msgstr ""
|
4415 |
|
4416 |
-
#: view/Blocks/Snippet.php:
|
4417 |
msgid "Activate Keywords"
|
4418 |
msgstr ""
|
4419 |
|
4420 |
-
#: view/Blocks/Snippet.php:
|
4421 |
msgid "Meta Keywords"
|
4422 |
msgstr ""
|
4423 |
|
4424 |
-
#: view/Blocks/Snippet.php:
|
4425 |
msgid "+ Add keyword"
|
4426 |
msgstr ""
|
4427 |
|
4428 |
-
#: view/Blocks/Snippet.php:
|
4429 |
msgid "Activate Canonical"
|
4430 |
msgstr ""
|
4431 |
|
4432 |
-
#: view/Blocks/Snippet.php:
|
4433 |
msgid "Leave it blank if you don't have an external canonical"
|
4434 |
msgstr ""
|
4435 |
|
4436 |
-
#: view/Blocks/Snippet.php:
|
4437 |
msgid "Found: "
|
4438 |
msgstr ""
|
4439 |
|
4440 |
-
#: view/Blocks/Snippet.php:
|
4441 |
msgid "Default Link"
|
4442 |
msgstr ""
|
4443 |
|
4444 |
-
#: view/Blocks/Snippet.php:
|
4445 |
-
#: view/Blocks/Snippet.php:
|
4446 |
-
#: view/Blocks/Snippet.php:
|
4447 |
msgid ""
|
4448 |
"To edit the snippet, you have to activate Squirrly SEO for this page first"
|
4449 |
msgstr ""
|
4450 |
|
4451 |
-
#: view/Blocks/Snippet.php:
|
4452 |
msgid "Activate Squirrly Snippet for this page"
|
4453 |
msgstr ""
|
4454 |
|
4455 |
-
#: view/Blocks/Snippet.php:
|
4456 |
-
#: view/Blocks/Snippet.php:
|
4457 |
msgid "Post Type"
|
4458 |
msgstr ""
|
4459 |
|
4460 |
-
#: view/Blocks/Snippet.php:
|
4461 |
-
#: view/Blocks/Snippet.php:
|
4462 |
msgid "OG Type"
|
4463 |
msgstr ""
|
4464 |
|
4465 |
-
#: view/Blocks/Snippet.php:
|
4466 |
#, fuzzy, php-format
|
4467 |
#| msgid ""
|
4468 |
#| "Json-LD is disable for this Post Type (%s). See %sSquirrly > SEO Settings "
|
@@ -4474,56 +4488,56 @@ msgstr ""
|
|
4474 |
"JSON-LD is disable for this Post Type (%s). See %sSquirrly > SEO Settings > "
|
4475 |
"Automation%s."
|
4476 |
|
4477 |
-
#: view/Blocks/Snippet.php:
|
4478 |
#, fuzzy
|
4479 |
#| msgid "Json-LD Type"
|
4480 |
msgid "JSON-LD Type"
|
4481 |
msgstr "JSON-LD Type"
|
4482 |
|
4483 |
-
#: view/Blocks/Snippet.php:
|
4484 |
-
#: view/Blocks/Snippet.php:
|
4485 |
msgid "(Auto)"
|
4486 |
msgstr ""
|
4487 |
|
4488 |
-
#: view/Blocks/Snippet.php:
|
4489 |
msgid "Custom Code"
|
4490 |
msgstr ""
|
4491 |
|
4492 |
-
#: view/Blocks/Snippet.php:
|
4493 |
#, fuzzy
|
4494 |
#| msgid "Custom Json-LD Code"
|
4495 |
msgid "Custom JSON-LD Code"
|
4496 |
msgstr "Custom JSON-LD Code"
|
4497 |
|
4498 |
-
#: view/Blocks/Snippet.php:
|
4499 |
#, fuzzy, php-format
|
4500 |
#| msgid "Add Json-LD code from %sSchema Generator Online%s."
|
4501 |
msgid "Add JSON-LD code from %sSchema Generator Online%s."
|
4502 |
msgstr "Add JSON-LD code from %sSchema Generator Online%s."
|
4503 |
|
4504 |
-
#: view/Blocks/Snippet.php:
|
4505 |
#, fuzzy
|
4506 |
#| msgid "Current Json-LD Code"
|
4507 |
msgid "Current JSON-LD Code"
|
4508 |
msgstr "Current JSON-LD Code"
|
4509 |
|
4510 |
-
#: view/Blocks/Snippet.php:
|
4511 |
msgid "Validate"
|
4512 |
msgstr ""
|
4513 |
|
4514 |
-
#: view/Blocks/Snippet.php:
|
4515 |
msgid "How this page appears on Facebook"
|
4516 |
msgstr ""
|
4517 |
|
4518 |
-
#: view/Blocks/Snippet.php:
|
4519 |
msgid "Edit Open Graph"
|
4520 |
msgstr ""
|
4521 |
|
4522 |
-
#: view/Blocks/Snippet.php:
|
4523 |
msgid "The image size must be at least 500 pixels wide"
|
4524 |
msgstr ""
|
4525 |
|
4526 |
-
#: view/Blocks/Snippet.php:
|
4527 |
#, fuzzy
|
4528 |
#| msgid ""
|
4529 |
#| "This is the Featured Image. You can changin it if you edit the snippet "
|
@@ -4535,38 +4549,38 @@ msgstr ""
|
|
4535 |
"This is the Featured Image. You can change it if you edit the snippet and "
|
4536 |
"upload another image."
|
4537 |
|
4538 |
-
#: view/Blocks/Snippet.php:
|
4539 |
msgid "Media Image"
|
4540 |
msgstr ""
|
4541 |
|
4542 |
-
#: view/Blocks/Snippet.php:
|
4543 |
-
#: view/Research/Briefcase.php:
|
4544 |
msgid "Upload"
|
4545 |
msgstr ""
|
4546 |
|
4547 |
-
#: view/Blocks/Snippet.php:
|
4548 |
msgid "Image size must be at least 500 pixels wide"
|
4549 |
msgstr ""
|
4550 |
|
4551 |
-
#: view/Blocks/Snippet.php:
|
4552 |
msgid "Author Link"
|
4553 |
msgstr ""
|
4554 |
|
4555 |
-
#: view/Blocks/Snippet.php:
|
4556 |
#, fuzzy
|
4557 |
#| msgid "For mutiple authors, separate their facebook links with commas"
|
4558 |
msgid "For multiple authors, separate their Facebook links with commas"
|
4559 |
msgstr "For multiple authors, separate their Facebook links with commas"
|
4560 |
|
4561 |
-
#: view/Blocks/Snippet.php:
|
4562 |
msgid "How this page appears on Twitter"
|
4563 |
msgstr ""
|
4564 |
|
4565 |
-
#: view/Blocks/Snippet.php:
|
4566 |
msgid "Edit Twitter Card"
|
4567 |
msgstr ""
|
4568 |
|
4569 |
-
#: view/Blocks/Snippet.php:
|
4570 |
#, fuzzy
|
4571 |
#| msgid ""
|
4572 |
#| "This is the Featured Image. You can changin it if you edit the snippet "
|
@@ -4578,32 +4592,32 @@ msgstr ""
|
|
4578 |
"This is the Featured Image. You can change it if you edit the snippet and "
|
4579 |
"upload another image."
|
4580 |
|
4581 |
-
#: view/Blocks/Snippet.php:
|
4582 |
msgid "Card Type"
|
4583 |
msgstr ""
|
4584 |
|
4585 |
-
#: view/Blocks/Snippet.php:
|
4586 |
#, php-format
|
4587 |
msgid "Every change needs %sTwitter Card Validator%s"
|
4588 |
msgstr ""
|
4589 |
|
4590 |
-
#: view/Blocks/Snippet.php:
|
4591 |
msgid "summary"
|
4592 |
msgstr ""
|
4593 |
|
4594 |
-
#: view/Blocks/Snippet.php:
|
4595 |
msgid "summary_large_image"
|
4596 |
msgstr ""
|
4597 |
|
4598 |
-
#: view/Blocks/Snippet.php:
|
4599 |
msgid "Twitter Type"
|
4600 |
msgstr ""
|
4601 |
|
4602 |
-
#: view/Blocks/Snippet.php:
|
4603 |
msgid "Activate Tracking"
|
4604 |
msgstr ""
|
4605 |
|
4606 |
-
#: view/Blocks/Snippet.php:
|
4607 |
#, fuzzy, php-format
|
4608 |
#| msgid ""
|
4609 |
#| "Facebook Pixel is disable for this Post Type. See %sSquirrly > SEO "
|
@@ -4615,188 +4629,188 @@ msgstr ""
|
|
4615 |
"Facebook Pixel is disabled for this Post Type. See %sSquirrly > SEO Settings "
|
4616 |
"> Automation%s."
|
4617 |
|
4618 |
-
#: view/Blocks/Snippet.php:
|
4619 |
msgid "Facebook Pixel"
|
4620 |
msgstr ""
|
4621 |
|
4622 |
-
#: view/Blocks/Snippet.php:
|
4623 |
msgid "Custom Pixel Code"
|
4624 |
msgstr ""
|
4625 |
|
4626 |
-
#: view/Blocks/Snippet.php:
|
4627 |
#, php-format
|
4628 |
msgid "Add Facebook Pixel code from %sFacebook Events%s."
|
4629 |
msgstr ""
|
4630 |
|
4631 |
-
#: view/Blocks/Snippet.php:
|
4632 |
msgid "Current Pixel Code"
|
4633 |
msgstr ""
|
4634 |
|
4635 |
-
#: view/Blocks/Snippet.php:
|
4636 |
#, php-format
|
4637 |
msgid ""
|
4638 |
"Add a Pixel ID for Facebook Pixel at %sSquirrly > SEO Settings > Tracking "
|
4639 |
"Tools%s."
|
4640 |
msgstr ""
|
4641 |
|
4642 |
-
#: view/Blocks/Snippet.php:
|
4643 |
#, php-format
|
4644 |
msgid ""
|
4645 |
"You selected '%s' in %sSettings > Reading%s. It's important to uncheck that "
|
4646 |
"option."
|
4647 |
msgstr ""
|
4648 |
|
4649 |
-
#: view/Blocks/Snippet.php:
|
4650 |
#, php-format
|
4651 |
msgid ""
|
4652 |
"This Post Type (%s) has Nofollow set in Automation. See %sSquirrly > SEO "
|
4653 |
"Settings > Automation%s."
|
4654 |
msgstr ""
|
4655 |
|
4656 |
-
#: view/Blocks/Snippet.php:
|
4657 |
#: view/SeoSettings/Automation.php:139 view/SeoSettings/Automation.php:166
|
4658 |
msgid "Activate Robots Meta"
|
4659 |
msgstr ""
|
4660 |
|
4661 |
-
#: view/Blocks/Snippet.php:
|
4662 |
msgid "Let Google Index This Page"
|
4663 |
msgstr ""
|
4664 |
|
4665 |
-
#: view/Blocks/Snippet.php:
|
4666 |
#, php-format
|
4667 |
msgid ""
|
4668 |
"Show in sitemap for this Post Type (%s) was excluded from %sSquirrly > SEO "
|
4669 |
"Settings > Automation%s."
|
4670 |
msgstr ""
|
4671 |
|
4672 |
-
#: view/Blocks/Snippet.php:
|
4673 |
#: view/SeoSettings/Sitemap.php:29
|
4674 |
msgid "Activate Sitemap"
|
4675 |
msgstr ""
|
4676 |
|
4677 |
-
#: view/Blocks/Snippet.php:
|
4678 |
msgid "Show it in Sitemap.xml"
|
4679 |
msgstr ""
|
4680 |
|
4681 |
-
#: view/Blocks/Snippet.php:
|
4682 |
msgid "Loading Squirrly Snippet ..."
|
4683 |
msgstr ""
|
4684 |
|
4685 |
-
#: view/Blocks/Snippet.php:
|
4686 |
msgid "Enable Squirrly SEO to load Squirrly Snippet"
|
4687 |
msgstr ""
|
4688 |
|
4689 |
-
#: view/Blocks/Snippet.php:
|
4690 |
#, fuzzy, php-format
|
4691 |
#| msgid "%sPlease connect to Squirrly Cloud first%s"
|
4692 |
msgid "%sPlease connect to SquirrlyCloud first%s"
|
4693 |
msgstr "%sPlease connect to SquirrlyCloud first%s"
|
4694 |
|
4695 |
-
#: view/Blocks/Support.php:
|
4696 |
msgid "Go to Profile"
|
4697 |
msgstr ""
|
4698 |
|
4699 |
-
#: view/Blocks/Support.php:
|
4700 |
msgid "Profile"
|
4701 |
msgstr ""
|
4702 |
|
4703 |
-
#: view/Blocks/Support.php:
|
4704 |
msgid "Support"
|
4705 |
msgstr ""
|
4706 |
|
4707 |
-
#: view/Blocks/Support.php:
|
4708 |
msgid "Need Help with Squirrly SEO?"
|
4709 |
msgstr ""
|
4710 |
|
4711 |
-
#: view/Blocks/Support.php:
|
4712 |
#, php-format
|
4713 |
msgid "10 AM to 4 PM (GMT): Mon-Fri %sby email%s."
|
4714 |
msgstr ""
|
4715 |
|
4716 |
-
#: view/Blocks/Support.php:
|
4717 |
#, php-format
|
4718 |
msgid "How To Squirrly %swebsite%s."
|
4719 |
msgstr ""
|
4720 |
|
4721 |
-
#: view/Blocks/Support.php:
|
4722 |
#, php-format
|
4723 |
msgid "Facebook %sSupport Community%s."
|
4724 |
msgstr ""
|
4725 |
|
4726 |
-
#: view/Blocks/Support.php:
|
4727 |
#, php-format
|
4728 |
msgid "Facebook %sMessenger%s."
|
4729 |
msgstr ""
|
4730 |
|
4731 |
-
#: view/Blocks/Support.php:
|
4732 |
#, php-format
|
4733 |
msgid "Twitter %sSupport%s."
|
4734 |
msgstr ""
|
4735 |
|
4736 |
-
#: view/Blocks/Support.php:
|
4737 |
msgid "How was your Squirrly experience today?"
|
4738 |
msgstr ""
|
4739 |
|
4740 |
-
#: view/Blocks/Support.php:
|
4741 |
msgid "How was Squirrly today?"
|
4742 |
msgstr ""
|
4743 |
|
4744 |
-
#: view/Blocks/Support.php:
|
4745 |
msgid "Angry"
|
4746 |
msgstr ""
|
4747 |
|
4748 |
-
#: view/Blocks/Support.php:
|
4749 |
msgid "Annoying"
|
4750 |
msgstr ""
|
4751 |
|
4752 |
-
#: view/Blocks/Support.php:
|
4753 |
msgid "Sad"
|
4754 |
msgstr ""
|
4755 |
|
4756 |
-
#: view/Blocks/Support.php:
|
4757 |
msgid "Bad"
|
4758 |
msgstr ""
|
4759 |
|
4760 |
-
#: view/Blocks/Support.php:
|
4761 |
msgid "Happy"
|
4762 |
msgstr ""
|
4763 |
|
4764 |
-
#: view/Blocks/Support.php:
|
4765 |
msgid "Nice"
|
4766 |
msgstr ""
|
4767 |
|
4768 |
-
#: view/Blocks/Support.php:
|
4769 |
msgid "Excited"
|
4770 |
msgstr ""
|
4771 |
|
4772 |
-
#: view/Blocks/Support.php:
|
4773 |
msgid "Great"
|
4774 |
msgstr ""
|
4775 |
|
4776 |
-
#: view/Blocks/Support.php:
|
4777 |
msgid "Love it"
|
4778 |
msgstr ""
|
4779 |
|
4780 |
-
#: view/Blocks/Support.php:
|
4781 |
#, fuzzy
|
4782 |
#| msgid "Please tell us why?"
|
4783 |
msgid "Please tell us why."
|
4784 |
msgstr "Please tell us why."
|
4785 |
|
4786 |
-
#: view/Blocks/Support.php:
|
4787 |
msgid "Send feedback"
|
4788 |
msgstr ""
|
4789 |
|
4790 |
-
#: view/Blocks/Support.php:
|
4791 |
msgid "For more support:"
|
4792 |
msgstr ""
|
4793 |
|
4794 |
-
#: view/Blocks/Support.php:
|
4795 |
#, php-format
|
4796 |
msgid "New Lessons Mon. and Tue. on %sTwitter%s."
|
4797 |
msgstr ""
|
4798 |
|
4799 |
-
#: view/Blocks/Support.php:
|
4800 |
#, fuzzy
|
4801 |
#| msgid "Thank you! You can send us a happy face tomorow too."
|
4802 |
msgid "Thank you! You can send us a happy face tomorrow too."
|
@@ -4866,7 +4880,7 @@ msgid ""
|
|
4866 |
msgstr ""
|
4867 |
|
4868 |
#: view/FocusPages/Addpage.php:32 view/Research/Research.php:166
|
4869 |
-
#: view/SeoSettings/Bulkseo.php:
|
4870 |
msgid "Search"
|
4871 |
msgstr ""
|
4872 |
|
@@ -4878,11 +4892,11 @@ msgstr ""
|
|
4878 |
msgid "Is focus page"
|
4879 |
msgstr ""
|
4880 |
|
4881 |
-
#: view/FocusPages/Addpage.php:96 view/SeoSettings/Bulkseo.php:
|
4882 |
msgid "Prev Page"
|
4883 |
msgstr ""
|
4884 |
|
4885 |
-
#: view/FocusPages/Addpage.php:97 view/SeoSettings/Bulkseo.php:
|
4886 |
msgid "Next Page"
|
4887 |
msgstr ""
|
4888 |
|
@@ -4890,15 +4904,30 @@ msgstr ""
|
|
4890 |
msgid "Best Practices"
|
4891 |
msgstr ""
|
4892 |
|
4893 |
-
#: view/FocusPages/FocusPageRow.php:
|
4894 |
msgid "You can refresh the audit once every 5 minutes"
|
4895 |
msgstr ""
|
4896 |
|
4897 |
-
#: view/FocusPages/FocusPageRow.php:
|
4898 |
msgid "Request new audit"
|
4899 |
msgstr ""
|
4900 |
|
4901 |
-
#: view/FocusPages/FocusPageRow.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4902 |
msgid "Delete Focus Page"
|
4903 |
msgstr ""
|
4904 |
|
@@ -4906,8 +4935,8 @@ msgstr ""
|
|
4906 |
msgid "Current Ranking Drawbacks."
|
4907 |
msgstr ""
|
4908 |
|
4909 |
-
#: view/FocusPages/Pagelist.php:37 view/Ranking/Rankings.php:
|
4910 |
-
#: view/Research/Briefcase.php:34 view/SeoSettings/Bulkseo.php:
|
4911 |
msgid "Show All"
|
4912 |
msgstr ""
|
4913 |
|
@@ -4923,6 +4952,14 @@ msgstr ""
|
|
4923 |
msgid "Welcome to Focus Pages"
|
4924 |
msgstr ""
|
4925 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4926 |
#: view/FocusPages/Settings.php:19
|
4927 |
msgid "Focus Pages Settings"
|
4928 |
msgstr ""
|
@@ -5129,6 +5166,16 @@ msgstr ""
|
|
5129 |
msgid "Start using Squirrly SEO"
|
5130 |
msgstr ""
|
5131 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5132 |
#: view/Ranking/Gscsync.php:13
|
5133 |
msgid "Google Search Console Keywords Sync"
|
5134 |
msgstr ""
|
@@ -5194,14 +5241,14 @@ msgid ""
|
|
5194 |
"organic keywords"
|
5195 |
msgstr ""
|
5196 |
|
5197 |
-
#: view/Ranking/Rankings.php:
|
5198 |
#, php-format
|
5199 |
msgid ""
|
5200 |
"%sSERP Checker Business:%s We update the best ranks for each keyword, daily. "
|
5201 |
"100%% accurate and objective."
|
5202 |
msgstr ""
|
5203 |
|
5204 |
-
#: view/Ranking/Rankings.php:
|
5205 |
#, php-format
|
5206 |
msgid ""
|
5207 |
"%sSERP Checker Lite:%s We show ranks according to what Google shows you in "
|
@@ -5210,109 +5257,109 @@ msgid ""
|
|
5210 |
"plan to %sBusiness Plan%s"
|
5211 |
msgstr ""
|
5212 |
|
5213 |
-
#: view/Ranking/Rankings.php:
|
5214 |
#, fuzzy
|
5215 |
#| msgid "Show only the ranked articles"
|
5216 |
msgid "Only show ranked articles"
|
5217 |
msgstr "Only show ranked articles"
|
5218 |
|
5219 |
-
#: view/Ranking/Rankings.php:
|
5220 |
msgid "Today Avg. Ranking"
|
5221 |
msgstr ""
|
5222 |
|
5223 |
-
#: view/Ranking/Rankings.php:
|
5224 |
#, fuzzy
|
5225 |
#| msgid "Show only the SERP changes"
|
5226 |
msgid "Only show SERP changes"
|
5227 |
msgstr "Only show SERP changes"
|
5228 |
|
5229 |
-
#: view/Ranking/Rankings.php:
|
5230 |
msgid "Today SERP Changes"
|
5231 |
msgstr ""
|
5232 |
|
5233 |
-
#: view/Ranking/Rankings.php:
|
5234 |
msgid "Path"
|
5235 |
msgstr ""
|
5236 |
|
5237 |
-
#: view/Ranking/Rankings.php:
|
5238 |
msgid "Rank"
|
5239 |
msgstr ""
|
5240 |
|
5241 |
-
#: view/Ranking/Rankings.php:
|
5242 |
msgid "Best"
|
5243 |
msgstr ""
|
5244 |
|
5245 |
-
#: view/Ranking/Rankings.php:
|
5246 |
msgid "Avg Rank"
|
5247 |
msgstr ""
|
5248 |
|
5249 |
-
#: view/Ranking/Rankings.php:
|
5250 |
msgid "Details"
|
5251 |
msgstr ""
|
5252 |
|
5253 |
-
#: view/Ranking/Rankings.php:
|
5254 |
msgid "Optimized with SLA"
|
5255 |
msgstr ""
|
5256 |
|
5257 |
-
#: view/Ranking/Rankings.php:
|
5258 |
msgid "Social Shares"
|
5259 |
msgstr ""
|
5260 |
|
5261 |
-
#: view/Ranking/Rankings.php:
|
5262 |
msgid "Facebook"
|
5263 |
msgstr ""
|
5264 |
|
5265 |
-
#: view/Ranking/Rankings.php:
|
5266 |
msgid "Reddit"
|
5267 |
msgstr ""
|
5268 |
|
5269 |
-
#: view/Ranking/Rankings.php:
|
5270 |
msgid "Pinterest"
|
5271 |
msgstr ""
|
5272 |
|
5273 |
-
#: view/Ranking/Rankings.php:
|
5274 |
msgid ""
|
5275 |
"Note! The clicks and impressions data is taken from Google Search Console "
|
5276 |
"for the last 90 days for the current URL"
|
5277 |
msgstr ""
|
5278 |
|
5279 |
-
#: view/Ranking/Rankings.php:
|
5280 |
msgid "Google Search Console has no data for this keyword"
|
5281 |
msgstr ""
|
5282 |
|
5283 |
-
#: view/Ranking/Rankings.php:
|
5284 |
msgid "Sync Keywords"
|
5285 |
msgstr ""
|
5286 |
|
5287 |
-
#: view/Ranking/Rankings.php:
|
5288 |
msgid "Not indexed"
|
5289 |
msgstr ""
|
5290 |
|
5291 |
-
#: view/Ranking/Rankings.php:
|
5292 |
msgid "GSC"
|
5293 |
msgstr ""
|
5294 |
|
5295 |
-
#: view/Ranking/Rankings.php:
|
5296 |
msgid "rank details"
|
5297 |
msgstr ""
|
5298 |
|
5299 |
-
#: view/Ranking/Rankings.php:
|
5300 |
msgid "Check Ranking again"
|
5301 |
msgstr ""
|
5302 |
|
5303 |
-
#: view/Ranking/Rankings.php:
|
5304 |
msgid "Remove Keyword"
|
5305 |
msgstr ""
|
5306 |
|
5307 |
-
#: view/Ranking/Rankings.php:
|
5308 |
msgid "No ranking found."
|
5309 |
msgstr ""
|
5310 |
|
5311 |
-
#: view/Ranking/Rankings.php:
|
5312 |
msgid "Welcome to Squirrly Rankings"
|
5313 |
msgstr ""
|
5314 |
|
5315 |
-
#: view/Ranking/Rankings.php:
|
5316 |
msgid "Synchronize Keywords with Google Search Console"
|
5317 |
msgstr ""
|
5318 |
|
@@ -5821,78 +5868,78 @@ msgstr ""
|
|
5821 |
msgid "No research data"
|
5822 |
msgstr ""
|
5823 |
|
5824 |
-
#: view/Research/Briefcase.php:
|
5825 |
msgid "Send to Rank Checker"
|
5826 |
msgstr ""
|
5827 |
|
5828 |
-
#: view/Research/Briefcase.php:
|
5829 |
msgid "Refresh Research"
|
5830 |
msgstr ""
|
5831 |
|
5832 |
-
#: view/Research/Briefcase.php:
|
5833 |
msgid "Assign Label"
|
5834 |
msgstr ""
|
5835 |
|
5836 |
-
#: view/Research/Briefcase.php:
|
5837 |
msgid "Delete Keyword"
|
5838 |
msgstr ""
|
5839 |
|
5840 |
-
#: view/Research/Briefcase.php:
|
5841 |
#, php-format
|
5842 |
msgid "Select Labels for: %s"
|
5843 |
msgstr ""
|
5844 |
|
5845 |
-
#: view/Research/Briefcase.php:
|
5846 |
msgid "Add new Label"
|
5847 |
msgstr ""
|
5848 |
|
5849 |
-
#: view/Research/Briefcase.php:
|
5850 |
msgid "Save Labels"
|
5851 |
msgstr ""
|
5852 |
|
5853 |
-
#: view/Research/Briefcase.php:
|
5854 |
msgid "Welcome to Briefcase"
|
5855 |
msgstr ""
|
5856 |
|
5857 |
-
#: view/Research/Briefcase.php:
|
5858 |
msgid "To get started with managing keywords for your SEO Strategy"
|
5859 |
msgstr ""
|
5860 |
|
5861 |
-
#: view/Research/Briefcase.php:
|
5862 |
msgid "Go Find Keywords"
|
5863 |
msgstr ""
|
5864 |
|
5865 |
-
#: view/Research/Briefcase.php:
|
5866 |
msgid "Then Add them to Briefcase"
|
5867 |
msgstr ""
|
5868 |
|
5869 |
-
#: view/Research/Briefcase.php:
|
5870 |
msgid "Backup/Restore Briefcase Keywords"
|
5871 |
msgstr ""
|
5872 |
|
5873 |
-
#: view/Research/Briefcase.php:
|
5874 |
msgid ""
|
5875 |
"Keep your briefcase keywords safe in case you change your domain or "
|
5876 |
"reinstall the plugin"
|
5877 |
msgstr ""
|
5878 |
|
5879 |
-
#: view/Research/Briefcase.php:
|
5880 |
msgid "Download Keywords"
|
5881 |
msgstr ""
|
5882 |
|
5883 |
-
#: view/Research/Briefcase.php:
|
5884 |
msgid "Import Keywords"
|
5885 |
msgstr ""
|
5886 |
|
5887 |
-
#: view/Research/Briefcase.php:
|
5888 |
msgid "Restore Briefcase Keywords"
|
5889 |
msgstr ""
|
5890 |
|
5891 |
-
#: view/Research/Briefcase.php:
|
5892 |
msgid "Restore Keywords"
|
5893 |
msgstr ""
|
5894 |
|
5895 |
-
#: view/Research/Briefcase.php:
|
5896 |
msgid "Upload the file with the saved Squirrly Briefcase Keywords."
|
5897 |
msgstr ""
|
5898 |
|
@@ -5964,23 +6011,23 @@ msgstr ""
|
|
5964 |
msgid "Color"
|
5965 |
msgstr ""
|
5966 |
|
5967 |
-
#: view/Research/Labels.php:
|
5968 |
msgid "Delete Label"
|
5969 |
msgstr ""
|
5970 |
|
5971 |
-
#: view/Research/Labels.php:
|
5972 |
msgid "Welcome to Briefcase Labels"
|
5973 |
msgstr ""
|
5974 |
|
5975 |
-
#: view/Research/Labels.php:
|
5976 |
msgid "To categorize and filter the keywords from Briefcase"
|
5977 |
msgstr ""
|
5978 |
|
5979 |
-
#: view/Research/Labels.php:
|
5980 |
msgid "Add new label"
|
5981 |
msgstr ""
|
5982 |
|
5983 |
-
#: view/Research/Labels.php:
|
5984 |
msgid "Assign keywords to labels"
|
5985 |
msgstr ""
|
5986 |
|
@@ -6474,6 +6521,15 @@ msgstr ""
|
|
6474 |
msgid "Any status"
|
6475 |
msgstr ""
|
6476 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6477 |
#: view/SeoSettings/BulkseoRow.php:26
|
6478 |
#, php-format
|
6479 |
msgid "View “%s”"
|
@@ -6575,10 +6631,6 @@ msgstr ""
|
|
6575 |
msgid "Logo URL"
|
6576 |
msgstr ""
|
6577 |
|
6578 |
-
#: view/SeoSettings/Jsonld.php:85 view/SeoSettings/Jsonld.php:155
|
6579 |
-
msgid "eg. /wp-content/uploads/logo.png"
|
6580 |
-
msgstr ""
|
6581 |
-
|
6582 |
#: view/SeoSettings/Jsonld.php:89 view/SeoSettings/Jsonld.php:159
|
6583 |
#: view/SeoSettings/Metas.php:191
|
6584 |
msgid "Select Image"
|
@@ -6777,10 +6829,6 @@ msgstr ""
|
|
6777 |
msgid "Tips: use 2-4 keywords"
|
6778 |
msgstr ""
|
6779 |
|
6780 |
-
#: view/SeoSettings/Metas.php:187
|
6781 |
-
msgid "/wp-content/uploads/logo.png"
|
6782 |
-
msgstr ""
|
6783 |
-
|
6784 |
#: view/SeoSettings/Metas.php:199
|
6785 |
msgid "First Page Preview"
|
6786 |
msgstr ""
|
@@ -7290,6 +7338,12 @@ msgid ""
|
|
7290 |
"Pinterest account. Visit the %sRich Pins Validator%s"
|
7291 |
msgstr ""
|
7292 |
|
|
|
|
|
|
|
|
|
|
|
|
|
7293 |
#~ msgid ""
|
7294 |
#~ "This is the Featured Image. You can changin it if you edit the snippet "
|
7295 |
#~ "and upload anothe image."
|
1 |
msgid ""
|
2 |
msgstr ""
|
3 |
"Project-Id-Version: \n"
|
4 |
+
"POT-Creation-Date: 2019-04-24 19:20+0300\n"
|
5 |
+
"PO-Revision-Date: 2019-04-24 19:20+0300\n"
|
6 |
"Last-Translator: \n"
|
7 |
"Language-Team: \n"
|
8 |
"Language: en_US\n"
|
19 |
msgid "Don't bother me!"
|
20 |
msgstr ""
|
21 |
|
22 |
+
#: classes/RemoteController.php:275
|
23 |
msgid "Articles optimized so far"
|
24 |
msgstr ""
|
25 |
|
26 |
+
#: classes/RemoteController.php:277 classes/RemoteController.php:284
|
27 |
msgid "add post"
|
28 |
msgstr ""
|
29 |
|
30 |
+
#: classes/RemoteController.php:282
|
31 |
msgid "Average optimization"
|
32 |
msgstr ""
|
33 |
|
34 |
+
#: classes/RemoteController.php:289
|
35 |
msgid "All Keyword Researches performed for all websites"
|
36 |
msgstr ""
|
37 |
|
38 |
+
#: classes/RemoteController.php:291
|
39 |
msgid "do research"
|
40 |
msgstr ""
|
41 |
|
42 |
+
#: classes/RemoteController.php:296
|
43 |
msgid "Keywords stored in Squirrly Briefcase"
|
44 |
msgstr ""
|
45 |
|
46 |
+
#: classes/RemoteController.php:298
|
47 |
msgid "add keyword"
|
48 |
msgstr ""
|
49 |
|
50 |
+
#: classes/RemoteController.php:303
|
51 |
msgid "Pages ranking in top 100 Google"
|
52 |
msgstr ""
|
53 |
|
54 |
+
#: classes/RemoteController.php:305
|
55 |
msgid "see rankings"
|
56 |
msgstr ""
|
57 |
|
58 |
+
#: classes/RemoteController.php:310
|
59 |
msgid "SEO Audits"
|
60 |
msgstr ""
|
61 |
|
62 |
+
#: classes/RemoteController.php:312
|
63 |
msgid "see audits"
|
64 |
msgstr ""
|
65 |
|
66 |
+
#: classes/RemoteController.php:981
|
67 |
msgid "Recent discussions:"
|
68 |
msgstr ""
|
69 |
|
70 |
+
#: classes/RemoteController.php:981
|
71 |
msgid "SEO Search Volume:"
|
72 |
msgstr ""
|
73 |
|
74 |
+
#: classes/RemoteController.php:981
|
75 |
msgid "Competition:"
|
76 |
msgstr ""
|
77 |
|
78 |
+
#: classes/RemoteController.php:981
|
79 |
msgid "Trend:"
|
80 |
msgstr ""
|
81 |
|
82 |
+
#: classes/RemoteController.php:982
|
83 |
msgid "Keyword:"
|
84 |
msgstr ""
|
85 |
|
86 |
+
#: classes/RemoteController.php:983
|
87 |
msgid "date"
|
88 |
msgstr ""
|
89 |
|
90 |
+
#: classes/RemoteController.php:984 controllers/CheckSeo.php:105
|
91 |
#: controllers/Patterns.php:15 controllers/Research.php:292
|
92 |
#: controllers/Research.php:324 controllers/Research.php:380
|
93 |
msgid "Saved!"
|
94 |
msgstr ""
|
95 |
|
96 |
+
#: classes/RemoteController.php:985
|
97 |
msgid "Read it!"
|
98 |
msgstr ""
|
99 |
|
100 |
+
#: classes/RemoteController.php:986
|
101 |
msgid "Insert it!"
|
102 |
msgstr ""
|
103 |
|
104 |
+
#: classes/RemoteController.php:987
|
105 |
msgid "Reference"
|
106 |
msgstr ""
|
107 |
|
108 |
+
#: classes/RemoteController.php:988
|
109 |
msgid "Insert as box"
|
110 |
msgstr ""
|
111 |
|
112 |
+
#: classes/RemoteController.php:989
|
113 |
msgid "Insert Link"
|
114 |
msgstr ""
|
115 |
|
116 |
+
#: classes/RemoteController.php:990
|
117 |
msgid "Not relevant?"
|
118 |
msgstr ""
|
119 |
|
120 |
+
#: classes/RemoteController.php:991
|
121 |
msgid "Insert in your article"
|
122 |
msgstr ""
|
123 |
|
124 |
+
#: classes/RemoteController.php:992
|
125 |
msgid ":( An error occurred while processing your request. Please try again"
|
126 |
msgstr ""
|
127 |
|
128 |
+
#: classes/RemoteController.php:993
|
129 |
msgid "Keyword Research takes too long to get the results. Click to try again"
|
130 |
msgstr ""
|
131 |
|
132 |
+
#: classes/RemoteController.php:994
|
133 |
msgid "No results found!"
|
134 |
msgstr ""
|
135 |
|
136 |
+
#: classes/RemoteController.php:995
|
137 |
msgid "Enter one more word to find relevant results"
|
138 |
msgstr ""
|
139 |
|
140 |
+
#: classes/RemoteController.php:996
|
141 |
#, fuzzy
|
142 |
#| msgid "Takes too long to check this keyword ..."
|
143 |
msgid "It's taking too long to check this keyword"
|
144 |
msgstr "It’s taking too long to check this keyword"
|
145 |
|
146 |
+
#: classes/RemoteController.php:997
|
147 |
msgid "Do a research!"
|
148 |
msgstr ""
|
149 |
|
150 |
+
#: classes/RemoteController.php:998
|
151 |
msgid "Do more research!"
|
152 |
msgstr ""
|
153 |
|
154 |
+
#: classes/RemoteController.php:999
|
155 |
#, php-format
|
156 |
msgid "[ ATTRIBUTE: Please check: %s to find out how to attribute this image ]"
|
157 |
msgstr ""
|
158 |
|
159 |
+
#: classes/RemoteController.php:1000
|
160 |
msgid "Has creative commons attributes"
|
161 |
msgstr ""
|
162 |
|
163 |
+
#: classes/RemoteController.php:1001
|
164 |
msgid "No known copyright restrictions"
|
165 |
msgstr ""
|
166 |
|
167 |
+
#: classes/RemoteController.php:1002
|
168 |
msgid ""
|
169 |
"You haven`t used Squirrly SEO to optimize your article. Do you want to "
|
170 |
"optimize for a keyword before publishing?"
|
171 |
msgstr ""
|
172 |
|
173 |
+
#: classes/RemoteController.php:1003
|
174 |
msgid "Keyword Research limit exceeded"
|
175 |
msgstr ""
|
176 |
|
177 |
+
#: classes/RemoteController.php:1004
|
178 |
msgid "Your Subscription has Expired"
|
179 |
msgstr ""
|
180 |
|
181 |
+
#: classes/RemoteController.php:1005
|
182 |
msgid "Add 20 Keyword Researches"
|
183 |
msgstr ""
|
184 |
|
185 |
+
#: classes/RemoteController.php:1006
|
186 |
msgid "There are no keywords saved in briefcase yet"
|
187 |
msgstr ""
|
188 |
|
189 |
+
#: classes/RemoteController.php:1007
|
190 |
#, php-format
|
191 |
msgid "Congratulations! Your article is 100% optimized!"
|
192 |
msgstr ""
|
193 |
|
194 |
+
#: classes/RemoteController.php:1008
|
195 |
#, php-format
|
196 |
msgid "appears too many times. Try to remove %s of them"
|
197 |
msgstr ""
|
198 |
|
199 |
+
#: classes/RemoteController.php:1009
|
200 |
#, php-format
|
201 |
msgid "write %s more words"
|
202 |
msgstr ""
|
203 |
|
204 |
+
#: classes/RemoteController.php:1010
|
205 |
#, php-format
|
206 |
msgid "Add the keyword in the %s of your article"
|
207 |
msgstr ""
|
208 |
|
209 |
+
#: classes/RemoteController.php:1011
|
210 |
msgid "Click to keep the highlight on"
|
211 |
msgstr ""
|
212 |
|
213 |
+
#: classes/RemoteController.php:1012
|
214 |
msgid "introduction"
|
215 |
msgstr ""
|
216 |
|
217 |
+
#: classes/RemoteController.php:1013
|
218 |
#, php-format
|
219 |
msgid "Write more words after the %s keyword"
|
220 |
msgstr ""
|
221 |
|
222 |
+
#: classes/RemoteController.php:1014
|
223 |
msgid "or use synonyms"
|
224 |
msgstr ""
|
225 |
|
226 |
+
#: classes/RemoteController.php:1015
|
227 |
#, php-format
|
228 |
msgid "add %s more word(s)"
|
229 |
msgstr ""
|
230 |
|
231 |
+
#: classes/RemoteController.php:1016
|
232 |
#, php-format
|
233 |
msgid "or remove %s word(s)"
|
234 |
msgstr ""
|
235 |
|
236 |
+
#: classes/RemoteController.php:1017
|
237 |
#, php-format
|
238 |
msgid "add %s more keyword(s)"
|
239 |
msgstr ""
|
240 |
|
241 |
+
#: classes/RemoteController.php:1018
|
242 |
#, php-format
|
243 |
msgid "write %s more words to start calculating"
|
244 |
msgstr ""
|
245 |
|
246 |
+
#: classes/RemoteController.php:1019 view/Research/Research.php:42
|
247 |
msgid "Add to Briefcase"
|
248 |
msgstr ""
|
249 |
|
250 |
+
#: classes/RemoteController.php:1020
|
251 |
msgid "Add Keyword to Briefcase"
|
252 |
msgstr ""
|
253 |
|
254 |
+
#: classes/RemoteController.php:1021 view/Blocks/KRFound.php:83
|
255 |
msgid "Use Keyword"
|
256 |
msgstr ""
|
257 |
|
258 |
+
#: classes/RemoteController.php:1022 view/Blocks/Snippet.php:138
|
259 |
+
#: view/Blocks/Snippet.php:511 view/Blocks/Snippet.php:767
|
260 |
msgid "Auto Draft"
|
261 |
msgstr ""
|
262 |
|
296 |
msgid "The code for Facebook App must only contain numbers."
|
297 |
msgstr "The code for Facebook App must only contain numbers."
|
298 |
|
299 |
+
#: classes/helpers/Tools.php:80
|
300 |
msgid "Getting started"
|
301 |
msgstr ""
|
302 |
|
303 |
+
#: classes/helpers/Tools.php:105
|
304 |
msgid "Documentation"
|
305 |
msgstr ""
|
306 |
|
307 |
+
#: classes/helpers/Tools.php:106
|
308 |
msgid "Leave a review"
|
309 |
msgstr ""
|
310 |
|
311 |
+
#: classes/helpers/Tools.php:387
|
312 |
msgid "Format"
|
313 |
msgstr ""
|
314 |
|
315 |
+
#: classes/helpers/Tools.php:404 classes/helpers/Tools.php:438
|
316 |
msgid "Category"
|
317 |
msgstr ""
|
318 |
|
319 |
+
#: classes/helpers/Tools.php:421 classes/helpers/Tools.php:455
|
320 |
msgid "Tag"
|
321 |
msgstr ""
|
322 |
|
323 |
+
#: classes/helpers/Tools.php:472
|
324 |
msgid "Shipping Option"
|
325 |
msgstr ""
|
326 |
|
327 |
+
#: classes/helpers/Tools.php:489
|
328 |
msgid "Author at"
|
329 |
msgstr ""
|
330 |
|
331 |
+
#: classes/helpers/Tools.php:557
|
332 |
msgid "Are you looking for"
|
333 |
msgstr ""
|
334 |
|
335 |
+
#: classes/helpers/Tools.php:558
|
336 |
msgid "These are the results for"
|
337 |
msgstr ""
|
338 |
|
339 |
+
#: classes/helpers/Tools.php:558
|
340 |
msgid "that you can find on our website."
|
341 |
msgstr ""
|
342 |
|
343 |
+
#: classes/helpers/Tools.php:591
|
344 |
msgid "Page not found"
|
345 |
msgstr ""
|
346 |
|
347 |
+
#: classes/helpers/Tools.php:592
|
348 |
msgid "This page could not be found on our website."
|
349 |
msgstr ""
|
350 |
|
351 |
+
#: classes/helpers/Tools.php:892 classes/helpers/Tools.php:903
|
352 |
#, fuzzy, php-format
|
353 |
#| msgid ""
|
354 |
#| "Good news, %s is integrated in Squirrly SEO now and you don't have to run "
|
484 |
msgstr ""
|
485 |
|
486 |
#: controllers/Assistant.php:95 controllers/Assistant.php:122
|
487 |
+
#: controllers/Audits.php:79 controllers/Ranking.php:113
|
488 |
+
#: controllers/SeoSettings.php:292 controllers/SeoSettings.php:309
|
489 |
+
#: controllers/SeoSettings.php:329 controllers/SeoSettings.php:366
|
490 |
+
#: controllers/SeoSettings.php:392 controllers/SeoSettings.php:420
|
491 |
+
#: controllers/SeoSettings.php:671 controllers/SeoSettings.php:707
|
492 |
+
#: controllers/SeoSettings.php:744
|
493 |
msgid "Saved"
|
494 |
msgstr ""
|
495 |
|
500 |
#: controllers/Research.php:213 controllers/Research.php:273
|
501 |
#: controllers/Research.php:304 controllers/Research.php:332
|
502 |
#: controllers/Research.php:357 controllers/Research.php:388
|
503 |
+
#: controllers/Research.php:410 controllers/Research.php:467
|
504 |
+
#: controllers/SeoSettings.php:486 controllers/SeoSettings.php:658
|
505 |
+
#: controllers/SeoSettings.php:684 controllers/SeoSettings.php:722
|
506 |
+
#: controllers/SeoSettings.php:759 controllers/SeoSettings.php:797
|
507 |
+
#: controllers/Snippet.php:158
|
508 |
msgid "You do not have permission to perform this action"
|
509 |
msgstr ""
|
510 |
|
512 |
msgid "Error: Could not save the data."
|
513 |
msgstr ""
|
514 |
|
515 |
+
#: controllers/Audits.php:81
|
516 |
msgid "Not a valid email address"
|
517 |
msgstr ""
|
518 |
|
532 |
msgid "Saved! This task will be ignored in the future."
|
533 |
msgstr ""
|
534 |
|
535 |
+
#: controllers/FocusPages.php:160
|
536 |
#, fuzzy
|
537 |
#| msgid "Focus Page does not exists or was deleted from your website."
|
538 |
msgid "Focus Page does not exist or was deleted from your website."
|
539 |
msgstr "Focus Page does not exist or was deleted from your website."
|
540 |
|
541 |
+
#: controllers/FocusPages.php:198
|
542 |
msgid "Focus page is added. The audit may take a while so please be patient."
|
543 |
msgstr ""
|
544 |
|
545 |
+
#: controllers/FocusPages.php:201
|
546 |
msgid "You reached the maximum number of focus pages for your account."
|
547 |
msgstr ""
|
548 |
|
549 |
+
#: controllers/FocusPages.php:204
|
550 |
msgid "Error! Could not add the focus page."
|
551 |
msgstr ""
|
552 |
|
553 |
+
#: controllers/FocusPages.php:207 controllers/FocusPages.php:239
|
554 |
msgid "Error! This focus page is not public."
|
555 |
msgstr ""
|
556 |
|
557 |
+
#: controllers/FocusPages.php:210 controllers/FocusPages.php:242
|
558 |
msgid "Error! Could not find the focus page in your website."
|
559 |
msgstr ""
|
560 |
|
561 |
+
#: controllers/FocusPages.php:230
|
562 |
msgid "Focus page sent for recheck. It may take a while so please be patient."
|
563 |
msgstr ""
|
564 |
|
565 |
+
#: controllers/FocusPages.php:233
|
566 |
#, fuzzy
|
567 |
#| msgid "Too many requests, please wait 5 minutes."
|
568 |
msgid "You've made too many requests, please wait a few minutes."
|
569 |
msgstr "You've made too many requests, please wait a few minutes. "
|
570 |
|
571 |
+
#: controllers/FocusPages.php:236
|
572 |
msgid "Error! Could not refresh the focus page."
|
573 |
msgstr ""
|
574 |
|
575 |
+
#: controllers/FocusPages.php:253
|
576 |
msgid "The focus page is deleted"
|
577 |
msgstr ""
|
578 |
|
579 |
+
#: controllers/FocusPages.php:255 controllers/Ranking.php:151
|
580 |
#: controllers/Research.php:180 controllers/Research.php:183
|
581 |
#: controllers/Research.php:207 controllers/Research.php:326
|
582 |
+
#: controllers/Research.php:351 controllers/Research.php:513
|
583 |
+
#: controllers/Research.php:558 controllers/Research.php:581
|
584 |
msgid "Invalid params!"
|
585 |
msgstr ""
|
586 |
|
587 |
+
#: controllers/Menu.php:92
|
588 |
#, php-format
|
589 |
msgid ""
|
590 |
"An error occurred during activation. If this error persists, please contact "
|
591 |
"us at: %s"
|
592 |
msgstr ""
|
593 |
|
594 |
+
#: controllers/Menu.php:129 models/Menu.php:123
|
595 |
msgid "Dashboard"
|
596 |
msgstr ""
|
597 |
|
598 |
+
#: controllers/Menu.php:153 controllers/Menu.php:264
|
599 |
#: view/Blocks/SLASearch.php:7
|
600 |
msgid "Squirrly SEO"
|
601 |
msgstr ""
|
602 |
|
603 |
+
#: controllers/Menu.php:217
|
604 |
msgid "SEO Snippet"
|
605 |
msgstr ""
|
606 |
|
607 |
+
#: controllers/Menu.php:226 controllers/Snippet.php:129
|
608 |
msgid "Custom SEO"
|
609 |
msgstr ""
|
610 |
|
611 |
+
#: controllers/Menu.php:272
|
612 |
msgid "Squirrly Onboarding"
|
613 |
msgstr ""
|
614 |
|
615 |
+
#: controllers/Menu.php:273
|
616 |
msgid "Onboarding"
|
617 |
msgstr ""
|
618 |
|
619 |
+
#: controllers/Menu.php:303
|
620 |
msgid "Squirrly Account Info"
|
621 |
msgstr ""
|
622 |
|
623 |
+
#: controllers/Menu.php:304
|
624 |
msgid "Account Info"
|
625 |
msgstr ""
|
626 |
|
627 |
+
#: controllers/Menu.php:313
|
628 |
msgid "Squirrly How To & Support"
|
629 |
msgstr ""
|
630 |
|
631 |
+
#: controllers/Menu.php:314
|
632 |
msgid "Help & Support"
|
633 |
msgstr ""
|
634 |
|
720 |
msgid "Invalid Label or Color!"
|
721 |
msgstr ""
|
722 |
|
723 |
+
#: controllers/Research.php:436 controllers/Research.php:454
|
724 |
+
#: controllers/SeoSettings.php:531
|
725 |
msgid "Great! The backup is restored."
|
726 |
msgstr ""
|
727 |
|
728 |
+
#: controllers/Research.php:458 controllers/SeoSettings.php:533
|
729 |
+
#: controllers/SeoSettings.php:536 controllers/SeoSettings.php:580
|
730 |
+
#: controllers/SeoSettings.php:583
|
731 |
msgid "Error! The backup is not valid."
|
732 |
msgstr ""
|
733 |
|
734 |
+
#: controllers/Research.php:461 controllers/SeoSettings.php:539
|
735 |
+
#: controllers/SeoSettings.php:586
|
736 |
#, fuzzy
|
737 |
#| msgid "Error! You have to enter a previous saved backup file."
|
738 |
msgid "Error! You have to enter a previously saved backup file."
|
739 |
msgstr "Error! You have to enter a previously saved backup file."
|
740 |
|
741 |
+
#: controllers/Research.php:482
|
742 |
#, fuzzy
|
743 |
#| msgid "Could not add the keyword to Serp Check. Please try again."
|
744 |
msgid "Could not add the keyword to SERP Check. Please try again."
|
745 |
msgstr "Could not add the keyword to SERP Check. Please try again."
|
746 |
|
747 |
+
#: controllers/Research.php:484
|
748 |
#, fuzzy
|
749 |
#| msgid "The keyword is added to Serp Check."
|
750 |
msgid "The keyword is added to SERP Check."
|
751 |
msgstr "The keyword is added to SERP Check."
|
752 |
|
753 |
+
#: controllers/Research.php:487
|
754 |
msgid "Invalid parameters."
|
755 |
msgstr ""
|
756 |
|
757 |
+
#: controllers/SeoSettings.php:464
|
758 |
msgid "Google Analytics account is disconnected."
|
759 |
msgstr ""
|
760 |
|
761 |
+
#: controllers/SeoSettings.php:466 controllers/SeoSettings.php:480
|
762 |
msgid "Error! Could not disconnect the account."
|
763 |
msgstr ""
|
764 |
|
765 |
+
#: controllers/SeoSettings.php:478
|
766 |
msgid "Google Search Console account is disconnected."
|
767 |
msgstr ""
|
768 |
|
769 |
+
#: controllers/SeoSettings.php:577
|
770 |
msgid "Great! The SEO backup is restored."
|
771 |
msgstr ""
|
772 |
|
773 |
+
#: controllers/SeoSettings.php:594
|
774 |
msgid "Settings imported successfuly!"
|
775 |
msgstr ""
|
776 |
|
777 |
+
#: controllers/SeoSettings.php:607 controllers/SeoSettings.php:645
|
778 |
#, php-format
|
779 |
msgid ""
|
780 |
"%s SEO records were imported successfuly! You can now deactivate the %s "
|
781 |
"plugin"
|
782 |
msgstr ""
|
783 |
|
784 |
+
#: controllers/SeoSettings.php:620
|
785 |
msgid "All the Plugin settings were imported successfuly!"
|
786 |
msgstr ""
|
787 |
|
788 |
+
#: controllers/SeoSettings.php:622
|
789 |
msgid "No settings found for this plugin/theme."
|
790 |
msgstr ""
|
791 |
|
792 |
+
#: controllers/SeoSettings.php:647
|
793 |
#, php-format
|
794 |
msgid ""
|
795 |
"There are no SEO records with this plugin. You can now deactivate the %s "
|
796 |
"plugin"
|
797 |
msgstr ""
|
798 |
|
799 |
+
#: controllers/SeoSettings.php:673
|
800 |
msgid "Could not save the changes"
|
801 |
msgstr ""
|
802 |
|
803 |
+
#: controllers/SeoSettings.php:715 controllers/SeoSettings.php:752
|
804 |
msgid "Could not add the post type"
|
805 |
msgstr ""
|
806 |
|
807 |
+
#: controllers/Snippet.php:81
|
808 |
msgid "Squirrly SEO Snippet"
|
809 |
msgstr ""
|
810 |
|
811 |
+
#: controllers/Snippet.php:176
|
812 |
msgid "Could not save the data"
|
813 |
msgstr ""
|
814 |
|
815 |
+
#: core/BlockFocusPages.php:21 models/FocusPages.php:109
|
816 |
msgid "Audit in progress"
|
817 |
msgstr ""
|
818 |
|
819 |
+
#: core/BlockJorney.php:13
|
820 |
+
msgid "I'm ready to start the 14 Days Journey To Better Ranking"
|
821 |
+
msgstr ""
|
822 |
+
|
823 |
#: core/BlockSupport.php:28
|
824 |
msgid "Plugin Feedback"
|
825 |
msgstr ""
|
959 |
"you'll find out what you need to do to complete the task and turn it Green."
|
960 |
msgstr ""
|
961 |
|
962 |
+
#: models/Assistant.php:109 view/Blocks/Jorney.php:47
|
963 |
+
#: view/Blocks/KRHistory.php:47 view/Research/History.php:55
|
964 |
msgid "Do Keyword Research"
|
965 |
msgstr ""
|
966 |
|
1068 |
"sure you click on SAVE settings after you switch anything on or off."
|
1069 |
msgstr ""
|
1070 |
|
1071 |
+
#: models/Assistant.php:148 view/Blocks/Snippet.php:378
|
1072 |
#: view/SeoSettings/Jsonld.php:28
|
1073 |
#, fuzzy
|
1074 |
#| msgid "Activate Json-LD"
|
1108 |
"Then, at URL-level you will be able to add custom JSON-LD if you're an "
|
1109 |
"advanced user."
|
1110 |
|
1111 |
+
#: models/Assistant.php:153 view/Blocks/Snippet.php:481
|
1112 |
#: view/SeoSettings/Automation.php:323 view/SeoSettings/Social.php:52
|
1113 |
msgid "Activate Open Graph"
|
1114 |
msgstr ""
|
1123 |
"your site."
|
1124 |
msgstr ""
|
1125 |
|
1126 |
+
#: models/Assistant.php:158 view/Blocks/Snippet.php:735
|
1127 |
#: view/SeoSettings/Automation.php:350 view/SeoSettings/Social.php:275
|
1128 |
msgid "Activate Twitter Card"
|
1129 |
msgstr ""
|
1327 |
"those tasks and turning elements to green you'll complete this task."
|
1328 |
msgstr ""
|
1329 |
|
1330 |
+
#: models/Assistant.php:277 models/abstract/Assistant.php:178
|
1331 |
#, fuzzy
|
1332 |
#| msgid "You choosed to ignore this task. Click to activate it."
|
1333 |
msgid "You chose to ignore this task. Click to activate it."
|
1337 |
msgid "METAs"
|
1338 |
msgstr ""
|
1339 |
|
1340 |
+
#: models/BulkSeo.php:18 view/Blocks/Snippet.php:90
|
1341 |
msgid "Open Graph"
|
1342 |
msgstr ""
|
1343 |
|
1344 |
+
#: models/BulkSeo.php:19 view/Blocks/Snippet.php:93
|
1345 |
msgid "Twitter Card"
|
1346 |
msgstr ""
|
1347 |
|
1348 |
+
#: models/BulkSeo.php:20 models/FocusPages.php:20 view/Blocks/Snippet.php:102
|
1349 |
msgid "Visibility"
|
1350 |
msgstr ""
|
1351 |
|
1473 |
msgstr ""
|
1474 |
|
1475 |
#: models/CheckSeo.php:56 models/CheckSeo.php:57
|
1476 |
+
#: models/bulkseo/Visibility.php:104 view/Blocks/Snippet.php:1070
|
1477 |
msgid "Discourage search engines from indexing this site"
|
1478 |
msgstr ""
|
1479 |
|
1521 |
msgid "Change the Tagline with your Brand or the Store name from %s"
|
1522 |
msgstr ""
|
1523 |
|
1524 |
+
#: models/CheckSeo.php:69 models/Menu.php:234 models/Menu.php:268
|
1525 |
+
#: models/Menu.php:288
|
1526 |
msgid "Settings"
|
1527 |
msgstr ""
|
1528 |
|
1546 |
msgid "Activate AMP tracking in %s Squirrly > SEO Settings > Tracking Tools%s "
|
1547 |
msgstr ""
|
1548 |
|
1549 |
+
#: models/CheckSeo.php:140
|
1550 |
msgid "Could not verify the frontend."
|
1551 |
msgstr ""
|
1552 |
|
1553 |
+
#: models/CheckSeo.php:444
|
1554 |
msgid "Just another WordPress site"
|
1555 |
msgstr ""
|
1556 |
|
1561 |
#: models/focuspages/Keyword.php:82 models/focuspages/Snippet.php:124
|
1562 |
#: models/focuspages/Strategy.php:88 view/Blocks/KRFound.php:15
|
1563 |
#: view/Blocks/KRHistory.php:15 view/Ranking/Gscsync.php:29
|
1564 |
+
#: view/Ranking/Rankings.php:147 view/Ranking/Rankings.php:176
|
1565 |
#: view/Research/Briefcase.php:66 view/Research/Briefcase.php:106
|
1566 |
#: view/Research/History.php:25 view/Research/HistoryDetails.php:7
|
1567 |
#: view/Research/Research.php:158 view/Research/Suggested.php:24
|
1629 |
msgstr ""
|
1630 |
|
1631 |
#: models/FocusPages.php:37 view/Ranking/Gscsync.php:31
|
1632 |
+
#: view/Ranking/Rankings.php:190
|
1633 |
msgid "Impressions"
|
1634 |
msgstr ""
|
1635 |
|
1636 |
#: models/FocusPages.php:38 view/Ranking/Gscsync.php:30
|
1637 |
+
#: view/Ranking/Rankings.php:196
|
1638 |
msgid "Clicks"
|
1639 |
msgstr ""
|
1640 |
|
1667 |
msgid "The favicon has been updated."
|
1668 |
msgstr ""
|
1669 |
|
1670 |
+
#: models/Menu.php:123 models/Menu.php:366
|
1671 |
msgid "First Step"
|
1672 |
msgstr ""
|
1673 |
|
1699 |
msgid " SEO Settings"
|
1700 |
msgstr ""
|
1701 |
|
1702 |
+
#: models/Menu.php:155 models/Menu.php:242 view/Blocks/FocusPages.php:6
|
1703 |
#: view/FocusPages/Pagelist.php:19
|
1704 |
msgid "Focus Pages"
|
1705 |
msgstr ""
|
1716 |
msgid " SEO Audit"
|
1717 |
msgstr ""
|
1718 |
|
1719 |
+
#: models/Menu.php:171 models/Menu.php:276
|
1720 |
msgid "Rankings"
|
1721 |
msgstr ""
|
1722 |
|
1724 |
msgid " Rankings"
|
1725 |
msgstr ""
|
1726 |
|
1727 |
+
#: models/Menu.php:196
|
1728 |
msgid "Find Keywords"
|
1729 |
msgstr ""
|
1730 |
|
1731 |
+
#: models/Menu.php:197
|
1732 |
msgid "do a keyword research"
|
1733 |
msgstr ""
|
1734 |
|
1735 |
+
#: models/Menu.php:202 view/Research/Briefcase.php:14
|
1736 |
msgid "Briefcase"
|
1737 |
msgstr ""
|
1738 |
|
1739 |
+
#: models/Menu.php:203
|
1740 |
msgid "save the best Keywords"
|
1741 |
msgstr ""
|
1742 |
|
1743 |
+
#: models/Menu.php:208 view/Research/Briefcase.php:24
|
1744 |
msgid "Labels"
|
1745 |
msgstr ""
|
1746 |
|
1747 |
+
#: models/Menu.php:209
|
1748 |
msgid "group keywords"
|
1749 |
msgstr ""
|
1750 |
|
1751 |
+
#: models/Menu.php:214 view/Research/Suggested.php:13
|
1752 |
msgid "Suggested"
|
1753 |
msgstr ""
|
1754 |
|
1755 |
+
#: models/Menu.php:215
|
1756 |
msgid "better keywords found"
|
1757 |
msgstr ""
|
1758 |
|
1759 |
+
#: models/Menu.php:220 view/Research/History.php:14
|
1760 |
msgid "History"
|
1761 |
msgstr ""
|
1762 |
|
1763 |
+
#: models/Menu.php:221
|
1764 |
msgid "keyword research history"
|
1765 |
msgstr ""
|
1766 |
|
1767 |
+
#: models/Menu.php:228
|
1768 |
msgid "Optimize Posts"
|
1769 |
msgstr ""
|
1770 |
|
1771 |
+
#: models/Menu.php:229
|
1772 |
#, fuzzy
|
1773 |
#| msgid "use live assistant"
|
1774 |
msgid "use the Live Assistant"
|
1775 |
msgstr "use the Live Assistant"
|
1776 |
|
1777 |
+
#: models/Menu.php:235
|
1778 |
msgid "live assistant setup"
|
1779 |
msgstr ""
|
1780 |
|
1781 |
+
#: models/Menu.php:243
|
1782 |
msgid "all my focus pages"
|
1783 |
msgstr ""
|
1784 |
|
1785 |
+
#: models/Menu.php:254
|
1786 |
msgid "Add New Page"
|
1787 |
msgstr ""
|
1788 |
|
1789 |
+
#: models/Menu.php:255
|
1790 |
msgid "add page in focus pages"
|
1791 |
msgstr ""
|
1792 |
|
1793 |
+
#: models/Menu.php:262 view/Blocks/Toolbar.php:32
|
1794 |
msgid "Overview"
|
1795 |
msgstr ""
|
1796 |
|
1797 |
+
#: models/Menu.php:263
|
1798 |
#, fuzzy
|
1799 |
#| msgid "See all the seo audits"
|
1800 |
msgid "See all the SEO audits"
|
1801 |
msgstr "See all the SEO audits"
|
1802 |
|
1803 |
+
#: models/Menu.php:269
|
1804 |
msgid "Audit settings"
|
1805 |
msgstr ""
|
1806 |
|
1807 |
+
#: models/Menu.php:277
|
1808 |
msgid "See Google ranking"
|
1809 |
msgstr ""
|
1810 |
|
1811 |
+
#: models/Menu.php:282
|
1812 |
msgid "Add Keywords"
|
1813 |
msgstr ""
|
1814 |
|
1815 |
+
#: models/Menu.php:283
|
1816 |
msgid "Add briefcase keywords"
|
1817 |
msgstr ""
|
1818 |
|
1819 |
+
#: models/Menu.php:289
|
1820 |
msgid "Ranking settings"
|
1821 |
msgstr ""
|
1822 |
|
1823 |
+
#: models/Menu.php:298 view/SeoSettings/Bulkseo.php:24
|
1824 |
msgid "Bulk SEO"
|
1825 |
msgstr ""
|
1826 |
|
1827 |
+
#: models/Menu.php:299
|
1828 |
msgid "optimize all pages"
|
1829 |
msgstr ""
|
1830 |
|
1831 |
+
#: models/Menu.php:304 view/SeoSettings/Metas.php:24
|
1832 |
msgid "SEO Metas"
|
1833 |
msgstr ""
|
1834 |
|
1835 |
+
#: models/Menu.php:305
|
1836 |
msgid "required on-page metas"
|
1837 |
msgstr ""
|
1838 |
|
1839 |
+
#: models/Menu.php:310
|
1840 |
+
#, fuzzy
|
1841 |
+
#| msgid "Json-LD Type"
|
1842 |
+
msgid "JSON LD"
|
1843 |
+
msgstr "JSON-LD Type"
|
1844 |
|
1845 |
+
#: models/Menu.php:311
|
1846 |
msgid "google structured data"
|
1847 |
msgstr ""
|
1848 |
|
1849 |
+
#: models/Menu.php:316 view/SeoSettings/Social.php:23
|
1850 |
msgid "Social Media"
|
1851 |
msgstr ""
|
1852 |
|
1853 |
+
#: models/Menu.php:317
|
1854 |
msgid "social share options"
|
1855 |
msgstr ""
|
1856 |
|
1857 |
+
#: models/Menu.php:322
|
1858 |
msgid "Automation"
|
1859 |
msgstr ""
|
1860 |
|
1861 |
+
#: models/Menu.php:323
|
1862 |
msgid "patterns & automation"
|
1863 |
msgstr ""
|
1864 |
|
1865 |
+
#: models/Menu.php:328 view/SeoSettings/Tracking.php:23
|
1866 |
msgid "Tracking Tools"
|
1867 |
msgstr ""
|
1868 |
|
1869 |
+
#: models/Menu.php:329
|
1870 |
msgid "google analytics, pixel, etc."
|
1871 |
msgstr ""
|
1872 |
|
1873 |
+
#: models/Menu.php:334
|
1874 |
msgid "Connection"
|
1875 |
msgstr ""
|
1876 |
|
1877 |
+
#: models/Menu.php:335
|
1878 |
msgid "webmaster tools"
|
1879 |
msgstr ""
|
1880 |
|
1881 |
+
#: models/Menu.php:340 view/SeoSettings/Sitemap.php:24
|
1882 |
msgid "Sitemap XML"
|
1883 |
msgstr ""
|
1884 |
|
1885 |
+
#: models/Menu.php:341
|
1886 |
msgid "setup the sitemap"
|
1887 |
msgstr ""
|
1888 |
|
1889 |
+
#: models/Menu.php:346
|
1890 |
msgid "Robots.txt"
|
1891 |
msgstr ""
|
1892 |
|
1893 |
+
#: models/Menu.php:347
|
1894 |
msgid "search engine filters"
|
1895 |
msgstr ""
|
1896 |
|
1897 |
+
#: models/Menu.php:352
|
1898 |
msgid "Favicon"
|
1899 |
msgstr ""
|
1900 |
|
1901 |
+
#: models/Menu.php:353
|
1902 |
msgid "add website icon"
|
1903 |
msgstr ""
|
1904 |
|
1905 |
+
#: models/Menu.php:358
|
1906 |
msgid "Import/Export"
|
1907 |
msgstr ""
|
1908 |
|
1909 |
+
#: models/Menu.php:359
|
1910 |
msgid "import & export SEO"
|
1911 |
msgstr ""
|
1912 |
|
1913 |
+
#: models/Menu.php:367
|
1914 |
msgid "all the SEO features"
|
1915 |
msgstr ""
|
1916 |
|
1917 |
+
#: models/Menu.php:372
|
1918 |
msgid "14 days jorney"
|
1919 |
msgstr ""
|
1920 |
|
1921 |
+
#: models/Menu.php:373
|
1922 |
msgid "sign up for better ranking"
|
1923 |
msgstr ""
|
1924 |
|
1925 |
+
#: models/Menu.php:378 view/Onboarding/Step3.php:51
|
1926 |
msgid "Import"
|
1927 |
msgstr ""
|
1928 |
|
1929 |
+
#: models/Menu.php:379
|
1930 |
msgid "import settings and SEO"
|
1931 |
msgstr ""
|
1932 |
|
1933 |
+
#: models/Menu.php:384
|
1934 |
msgid "Final Step"
|
1935 |
msgstr ""
|
1936 |
|
1937 |
+
#: models/Menu.php:385
|
1938 |
msgid "start using Squirrly SEO"
|
1939 |
msgstr ""
|
1940 |
|
2016 |
msgid "Can't get snippet data"
|
2017 |
msgstr ""
|
2018 |
|
2019 |
+
#: models/PostsList.php:55 models/PostsList.php:80 view/Blocks/Snippet.php:135
|
2020 |
msgid "Edit Snippet"
|
2021 |
msgstr ""
|
2022 |
|
2032 |
msgid "You don't have enough pemission to edit this article"
|
2033 |
msgstr ""
|
2034 |
|
2035 |
+
#: models/Snippet.php:117
|
2036 |
msgid "Couldn't find the page"
|
2037 |
msgstr ""
|
2038 |
|
2048 |
msgid "Not enough data to process this task"
|
2049 |
msgstr ""
|
2050 |
|
2051 |
+
#: models/abstract/Assistant.php:164 view/Blocks/Snippet.php:310
|
2052 |
msgid "Current"
|
2053 |
msgstr ""
|
2054 |
|
|
|
|
|
|
|
|
|
2055 |
#: models/bulkseo/Metas.php:56
|
2056 |
msgid "Title not empty"
|
2057 |
msgstr ""
|
2058 |
|
2059 |
+
#: models/bulkseo/Metas.php:57 view/Blocks/Snippet.php:189
|
2060 |
+
#: view/Blocks/Snippet.php:588 view/Blocks/Snippet.php:843
|
2061 |
msgid "Current Title"
|
2062 |
msgstr ""
|
2063 |
|
2128 |
msgid "Description not empty"
|
2129 |
msgstr ""
|
2130 |
|
2131 |
+
#: models/bulkseo/Metas.php:75 view/Blocks/Snippet.php:241
|
2132 |
+
#: view/Blocks/Snippet.php:632 view/Blocks/Snippet.php:887
|
2133 |
msgid "Current Description"
|
2134 |
msgstr ""
|
2135 |
|
2523 |
"visibility settings."
|
2524 |
msgstr ""
|
2525 |
|
2526 |
+
#: models/bulkseo/Visibility.php:31 view/Blocks/Snippet.php:1139
|
2527 |
msgid "Send Authority to this page"
|
2528 |
msgstr ""
|
2529 |
|
2827 |
#: models/focuspages/Ctr.php:71 models/focuspages/Image.php:81
|
2828 |
#: models/focuspages/Impressions.php:60 models/focuspages/Impressions.php:71
|
2829 |
#: models/focuspages/Keyword.php:83 models/focuspages/Keyword.php:95
|
2830 |
+
#: models/focuspages/Strategy.php:99 view/Research/Briefcase.php:241
|
2831 |
msgid "Do a research"
|
2832 |
msgstr ""
|
2833 |
|
3067 |
"Search Console API to send Google the request on your behalf."
|
3068 |
msgstr ""
|
3069 |
|
3070 |
+
#: models/focuspages/Indexability.php:67 view/Blocks/Snippet.php:300
|
3071 |
msgid "Canonical link"
|
3072 |
msgstr ""
|
3073 |
|
3339 |
msgstr ""
|
3340 |
|
3341 |
#: models/focuspages/Snippet.php:69 models/focuspages/Snippet.php:180
|
3342 |
+
#: models/focuspages/Snippet.php:202 view/Blocks/Snippet.php:173
|
3343 |
+
#: view/Blocks/Snippet.php:572 view/Blocks/Snippet.php:827
|
3344 |
#: view/FocusPages/Addpage.php:50 view/SeoSettings/Automation.php:86
|
3345 |
+
#: view/SeoSettings/Bulkseo.php:137 view/SeoSettings/Metas.php:159
|
3346 |
msgid "Title"
|
3347 |
msgstr ""
|
3348 |
|
3360 |
msgstr ""
|
3361 |
|
3362 |
#: models/focuspages/Snippet.php:75 models/focuspages/Snippet.php:181
|
3363 |
+
#: models/focuspages/Snippet.php:203 view/Blocks/Snippet.php:615
|
3364 |
+
#: view/Blocks/Snippet.php:870 view/SeoSettings/Automation.php:95
|
3365 |
#: view/SeoSettings/Metas.php:168
|
3366 |
msgid "Description"
|
3367 |
msgstr ""
|
3850 |
|
3851 |
#: view/Audits/Audits.php:115 view/Audits/Audits.php:157
|
3852 |
#: view/Blocks/Audits.php:21 view/Blocks/KRHistory.php:17
|
3853 |
+
#: view/Ranking/Rankings.php:231 view/Research/History.php:27
|
3854 |
msgid "Date"
|
3855 |
msgstr ""
|
3856 |
|
3972 |
msgid "Permalink"
|
3973 |
msgstr ""
|
3974 |
|
3975 |
+
#: view/Blocks/FocusPages.php:17 view/FocusPages/FocusPageRow.php:37
|
3976 |
msgid "Last audited"
|
3977 |
msgstr ""
|
3978 |
|
3979 |
+
#: view/Blocks/FocusPages.php:54
|
3980 |
msgid "Check Focus Page"
|
3981 |
msgstr ""
|
3982 |
|
3983 |
+
#: view/Blocks/FocusPages.php:66 view/FocusPages/Pagelist.php:111
|
3984 |
msgid "To get started with managing the focus pages"
|
3985 |
msgstr ""
|
3986 |
|
3987 |
+
#: view/Blocks/FocusPages.php:70 view/FocusPages/Pagelist.php:115
|
3988 |
msgid "Add new page"
|
3989 |
msgstr ""
|
3990 |
|
3991 |
+
#: view/Blocks/FocusPages.php:76 view/FocusPages/Pagelist.php:121
|
3992 |
msgid "Then set a page as focus"
|
3993 |
msgstr ""
|
3994 |
|
3995 |
+
#: view/Blocks/Jorney.php:10
|
3996 |
+
msgid "Congratulations! You've completed the 14 Days Journey To Better Ranking"
|
3997 |
+
msgstr ""
|
3998 |
+
|
3999 |
+
#: view/Blocks/Jorney.php:12
|
4000 |
msgid "Your 14 Days Journey To Better Ranking"
|
4001 |
msgstr ""
|
4002 |
|
4003 |
+
#: view/Blocks/Jorney.php:20 view/Blocks/Jorney.php:38
|
4004 |
msgid "Day"
|
4005 |
msgstr ""
|
4006 |
|
4007 |
+
#: view/Blocks/Jorney.php:27
|
4008 |
+
msgid "If you missed a day, click on it and read the SEO recipe for it."
|
4009 |
+
msgstr ""
|
4010 |
+
|
4011 |
+
#: view/Blocks/Jorney.php:33
|
4012 |
+
msgid "I'm all done. Hide this block."
|
4013 |
+
msgstr ""
|
4014 |
+
|
4015 |
+
#: view/Blocks/Jorney.php:38
|
4016 |
msgid "Open the SEO recipe for today"
|
4017 |
msgstr ""
|
4018 |
|
4019 |
+
#: view/Blocks/Jorney.php:43 view/FocusPages/Addpage.php:19
|
4020 |
msgid "Add a page in Focus Pages"
|
4021 |
msgstr ""
|
4022 |
|
4025 |
msgstr ""
|
4026 |
|
4027 |
#: view/Blocks/KRFound.php:16 view/Blocks/KRHistory.php:16
|
4028 |
+
#: view/Ranking/Rankings.php:223 view/Research/Briefcase.php:114
|
4029 |
#: view/Research/History.php:26 view/Research/Research.php:159
|
4030 |
#: view/Research/Suggested.php:25
|
4031 |
msgid "Country"
|
4038 |
msgstr ""
|
4039 |
|
4040 |
#: view/Blocks/KRFound.php:18 view/Blocks/KRFound.php:19
|
4041 |
+
#: view/Blocks/KRFound.php:64 view/Research/Briefcase.php:119
|
4042 |
#: view/Research/HistoryDetails.php:16 view/Research/HistoryDetails.php:18
|
4043 |
#: view/Research/Research.php:161 view/Research/Research.php:162
|
4044 |
#: view/Research/Suggested.php:27 view/Research/Suggested.php:28
|
4046 |
msgid "Competition"
|
4047 |
msgstr ""
|
4048 |
|
4049 |
+
#: view/Blocks/KRFound.php:22 view/Blocks/KRFound.php:69
|
4050 |
#: view/Research/HistoryDetails.php:12 view/Research/Research.php:165
|
4051 |
#: view/Research/Suggested.php:31 view/Research/Suggested.php:82
|
4052 |
msgid "SEO Search Volume"
|
4057 |
msgid "SV"
|
4058 |
msgstr ""
|
4059 |
|
4060 |
+
#: view/Blocks/KRFound.php:26 view/Blocks/KRFound.php:74
|
4061 |
#: view/Research/Briefcase.php:131 view/Research/HistoryDetails.php:8
|
4062 |
#: view/Research/Research.php:169 view/Research/Suggested.php:35
|
4063 |
#: view/Research/Suggested.php:87
|
4070 |
msgstr ""
|
4071 |
|
4072 |
#: view/Blocks/KRFound.php:30 view/Blocks/KRFound.php:31
|
4073 |
+
#: view/Blocks/KRFound.php:79 view/Research/Briefcase.php:137
|
4074 |
#: view/Research/HistoryDetails.php:20 view/Research/Research.php:173
|
4075 |
#: view/Research/Suggested.php:39
|
4076 |
msgid "Trending"
|
4077 |
msgstr ""
|
4078 |
|
4079 |
+
#: view/Blocks/KRFound.php:64 view/Blocks/KRFound.php:69
|
4080 |
+
#: view/Blocks/KRFound.php:74 view/Blocks/KRFound.php:79
|
4081 |
#: view/Research/Briefcase.php:120 view/Research/Briefcase.php:126
|
4082 |
#: view/Research/Briefcase.php:132 view/Research/Suggested.php:77
|
4083 |
#: view/Research/Suggested.php:82 view/Research/Suggested.php:87
|
4084 |
msgid "-"
|
4085 |
msgstr ""
|
4086 |
|
4087 |
+
#: view/Blocks/KRFound.php:96 view/Research/Suggested.php:149
|
4088 |
#, fuzzy
|
4089 |
#| msgid "We check once a week all the keywords from your briefcase"
|
4090 |
msgid "Once a week, Squirrly checks all the keywords from your briefcase."
|
4091 |
msgstr "Once a week, Squirrly checks all the keywords from your briefcase."
|
4092 |
|
4093 |
+
#: view/Blocks/KRFound.php:97 view/Research/Suggested.php:150
|
4094 |
#, fuzzy
|
4095 |
#| msgid "If we find better keywords, they will be listed here"
|
4096 |
msgid "If it finds better keywords, they will be listed here"
|
4097 |
msgstr "If it finds better keywords, they will be listed here"
|
4098 |
|
4099 |
+
#: view/Blocks/KRFound.php:98 view/Research/Suggested.php:151
|
4100 |
msgid "Until then, add keywords in Briefcase"
|
4101 |
msgstr ""
|
4102 |
|
4103 |
+
#: view/Blocks/KRFound.php:102 view/Blocks/SLASearch.php:22
|
4104 |
#: view/Ranking/Gscsync.php:103 view/Research/Suggested.php:155
|
4105 |
msgid "Go to Briefcase"
|
4106 |
msgstr ""
|
4113 |
msgid "See Research History"
|
4114 |
msgstr ""
|
4115 |
|
4116 |
+
#: view/Blocks/KRHistory.php:43 view/Research/History.php:51
|
4117 |
msgid "See your research results and compare them over time"
|
4118 |
msgstr ""
|
4119 |
|
4192 |
msgid "keywords found"
|
4193 |
msgstr ""
|
4194 |
|
4195 |
+
#: view/Blocks/Ranks.php:121 view/Ranking/Rankings.php:347
|
4196 |
msgid "To see how your website is ranking on Google"
|
4197 |
msgstr ""
|
4198 |
|
4199 |
+
#: view/Blocks/Ranks.php:125 view/Ranking/Rankings.php:351
|
4200 |
msgid "Add keywords in Briefcase"
|
4201 |
msgstr ""
|
4202 |
|
4203 |
+
#: view/Blocks/Ranks.php:131 view/Ranking/Rankings.php:357
|
4204 |
msgid "Then send keywords to Rank Checker"
|
4205 |
msgstr ""
|
4206 |
|
4330 |
msgid "Split Window"
|
4331 |
msgstr ""
|
4332 |
|
4333 |
+
#: view/Blocks/Snippet.php:82
|
4334 |
msgid "Meta Tags"
|
4335 |
msgstr ""
|
4336 |
|
4337 |
+
#: view/Blocks/Snippet.php:86
|
4338 |
msgid "JSON-LD"
|
4339 |
msgstr ""
|
4340 |
|
4341 |
+
#: view/Blocks/Snippet.php:97
|
4342 |
msgid "Tracking"
|
4343 |
msgstr ""
|
4344 |
|
4345 |
+
#: view/Blocks/Snippet.php:113 view/Blocks/Snippet.php:473
|
4346 |
+
#: view/Blocks/Snippet.php:727
|
4347 |
#, php-format
|
4348 |
msgid ""
|
4349 |
"Post Type (%s) was excluded from %sSquirrly > SEO Settings%s. Squirrly SEO "
|
4350 |
"will not load for this post type on the frontend"
|
4351 |
msgstr ""
|
4352 |
|
4353 |
+
#: view/Blocks/Snippet.php:121 view/SeoSettings/Automation.php:132
|
4354 |
#: view/SeoSettings/Automation.php:159 view/SeoSettings/Automation.php:221
|
4355 |
msgid "Activate Metas"
|
4356 |
msgstr ""
|
4357 |
|
4358 |
+
#: view/Blocks/Snippet.php:130
|
4359 |
msgid "How this page will appear on Search Engines"
|
4360 |
msgstr ""
|
4361 |
|
4362 |
+
#: view/Blocks/Snippet.php:134 view/Blocks/Snippet.php:366
|
4363 |
+
#: view/Blocks/Snippet.php:495 view/Blocks/Snippet.php:749
|
4364 |
+
#: view/Blocks/Snippet.php:963 view/Blocks/Snippet.php:1078
|
4365 |
msgid "Refresh"
|
4366 |
msgstr ""
|
4367 |
|
4368 |
+
#: view/Blocks/Snippet.php:138 view/Blocks/Snippet.php:511
|
4369 |
+
#: view/Blocks/Snippet.php:767
|
4370 |
msgid "AUTO-DRAFT"
|
4371 |
msgstr ""
|
4372 |
|
4373 |
+
#: view/Blocks/Snippet.php:149 view/Blocks/Snippet.php:532
|
4374 |
+
#: view/Blocks/Snippet.php:787
|
4375 |
msgid "Please save the post first to be able to edit the Squirrly SEO Snippet"
|
4376 |
msgstr ""
|
4377 |
|
4378 |
+
#: view/Blocks/Snippet.php:156 view/Blocks/Snippet.php:539
|
4379 |
+
#: view/Blocks/Snippet.php:794
|
4380 |
msgid "Cancel"
|
4381 |
msgstr ""
|
4382 |
|
4383 |
+
#: view/Blocks/Snippet.php:157 view/Blocks/Snippet.php:367
|
4384 |
+
#: view/Blocks/Snippet.php:540 view/Blocks/Snippet.php:795
|
4385 |
+
#: view/Blocks/Snippet.php:964 view/Blocks/Snippet.php:1079
|
4386 |
msgid "Save"
|
4387 |
msgstr ""
|
4388 |
|
4389 |
+
#: view/Blocks/Snippet.php:167
|
4390 |
msgid "Activate Title"
|
4391 |
msgstr ""
|
4392 |
|
4393 |
+
#: view/Blocks/Snippet.php:174 view/Blocks/Snippet.php:225
|
4394 |
+
#: view/Blocks/Snippet.php:573 view/Blocks/Snippet.php:616
|
4395 |
+
#: view/Blocks/Snippet.php:828 view/Blocks/Snippet.php:871
|
4396 |
#, php-format
|
4397 |
msgid "Tips: Length %s-%s chars"
|
4398 |
msgstr ""
|
4399 |
|
4400 |
+
#: view/Blocks/Snippet.php:177 view/Blocks/Snippet.php:228
|
4401 |
+
#: view/Blocks/Snippet.php:576 view/Blocks/Snippet.php:619
|
4402 |
+
#: view/Blocks/Snippet.php:831 view/Blocks/Snippet.php:874
|
4403 |
msgid "Pattern: "
|
4404 |
msgstr ""
|
4405 |
|
4406 |
+
#: view/Blocks/Snippet.php:194 view/Blocks/Snippet.php:593
|
4407 |
+
#: view/Blocks/Snippet.php:848
|
4408 |
msgid "Default Title"
|
4409 |
msgstr ""
|
4410 |
|
4411 |
+
#: view/Blocks/Snippet.php:201 view/Blocks/Snippet.php:255
|
4412 |
+
#: view/Blocks/Snippet.php:600 view/Blocks/Snippet.php:646
|
4413 |
+
#: view/Blocks/Snippet.php:855 view/Blocks/Snippet.php:901
|
4414 |
msgid "Pattern"
|
4415 |
msgstr ""
|
4416 |
|
4417 |
+
#: view/Blocks/Snippet.php:218
|
4418 |
msgid "Activate Description"
|
4419 |
msgstr ""
|
4420 |
|
4421 |
+
#: view/Blocks/Snippet.php:224
|
4422 |
msgid "Meta Description"
|
4423 |
msgstr ""
|
4424 |
|
4425 |
+
#: view/Blocks/Snippet.php:248 view/Blocks/Snippet.php:639
|
4426 |
+
#: view/Blocks/Snippet.php:894
|
4427 |
msgid "Default Description"
|
4428 |
msgstr ""
|
4429 |
|
4430 |
+
#: view/Blocks/Snippet.php:272
|
4431 |
msgid "Activate Keywords"
|
4432 |
msgstr ""
|
4433 |
|
4434 |
+
#: view/Blocks/Snippet.php:278
|
4435 |
msgid "Meta Keywords"
|
4436 |
msgstr ""
|
4437 |
|
4438 |
+
#: view/Blocks/Snippet.php:282
|
4439 |
msgid "+ Add keyword"
|
4440 |
msgstr ""
|
4441 |
|
4442 |
+
#: view/Blocks/Snippet.php:294
|
4443 |
msgid "Activate Canonical"
|
4444 |
msgstr ""
|
4445 |
|
4446 |
+
#: view/Blocks/Snippet.php:301
|
4447 |
msgid "Leave it blank if you don't have an external canonical"
|
4448 |
msgstr ""
|
4449 |
|
4450 |
+
#: view/Blocks/Snippet.php:304
|
4451 |
msgid "Found: "
|
4452 |
msgstr ""
|
4453 |
|
4454 |
+
#: view/Blocks/Snippet.php:316
|
4455 |
msgid "Default Link"
|
4456 |
msgstr ""
|
4457 |
|
4458 |
+
#: view/Blocks/Snippet.php:338 view/Blocks/Snippet.php:461
|
4459 |
+
#: view/Blocks/Snippet.php:707 view/Blocks/Snippet.php:942
|
4460 |
+
#: view/Blocks/Snippet.php:1057 view/Blocks/Snippet.php:1183
|
4461 |
msgid ""
|
4462 |
"To edit the snippet, you have to activate Squirrly SEO for this page first"
|
4463 |
msgstr ""
|
4464 |
|
4465 |
+
#: view/Blocks/Snippet.php:347
|
4466 |
msgid "Activate Squirrly Snippet for this page"
|
4467 |
msgstr ""
|
4468 |
|
4469 |
+
#: view/Blocks/Snippet.php:352 view/Blocks/Snippet.php:712
|
4470 |
+
#: view/Blocks/Snippet.php:947
|
4471 |
msgid "Post Type"
|
4472 |
msgstr ""
|
4473 |
|
4474 |
+
#: view/Blocks/Snippet.php:354 view/Blocks/Snippet.php:676
|
4475 |
+
#: view/Blocks/Snippet.php:714
|
4476 |
msgid "OG Type"
|
4477 |
msgstr ""
|
4478 |
|
4479 |
+
#: view/Blocks/Snippet.php:384
|
4480 |
#, fuzzy, php-format
|
4481 |
#| msgid ""
|
4482 |
#| "Json-LD is disable for this Post Type (%s). See %sSquirrly > SEO Settings "
|
4488 |
"JSON-LD is disable for this Post Type (%s). See %sSquirrly > SEO Settings > "
|
4489 |
"Automation%s."
|
4490 |
|
4491 |
+
#: view/Blocks/Snippet.php:408
|
4492 |
#, fuzzy
|
4493 |
#| msgid "Json-LD Type"
|
4494 |
msgid "JSON-LD Type"
|
4495 |
msgstr "JSON-LD Type"
|
4496 |
|
4497 |
+
#: view/Blocks/Snippet.php:413 view/Blocks/Snippet.php:684
|
4498 |
+
#: view/Blocks/Snippet.php:922 view/Blocks/Snippet.php:1010
|
4499 |
msgid "(Auto)"
|
4500 |
msgstr ""
|
4501 |
|
4502 |
+
#: view/Blocks/Snippet.php:414 view/Blocks/Snippet.php:1011
|
4503 |
msgid "Custom Code"
|
4504 |
msgstr ""
|
4505 |
|
4506 |
+
#: view/Blocks/Snippet.php:424
|
4507 |
#, fuzzy
|
4508 |
#| msgid "Custom Json-LD Code"
|
4509 |
msgid "Custom JSON-LD Code"
|
4510 |
msgstr "Custom JSON-LD Code"
|
4511 |
|
4512 |
+
#: view/Blocks/Snippet.php:425
|
4513 |
#, fuzzy, php-format
|
4514 |
#| msgid "Add Json-LD code from %sSchema Generator Online%s."
|
4515 |
msgid "Add JSON-LD code from %sSchema Generator Online%s."
|
4516 |
msgstr "Add JSON-LD code from %sSchema Generator Online%s."
|
4517 |
|
4518 |
+
#: view/Blocks/Snippet.php:434
|
4519 |
#, fuzzy
|
4520 |
#| msgid "Current Json-LD Code"
|
4521 |
msgid "Current JSON-LD Code"
|
4522 |
msgstr "Current JSON-LD Code"
|
4523 |
|
4524 |
+
#: view/Blocks/Snippet.php:442
|
4525 |
msgid "Validate"
|
4526 |
msgstr ""
|
4527 |
|
4528 |
+
#: view/Blocks/Snippet.php:490
|
4529 |
msgid "How this page appears on Facebook"
|
4530 |
msgstr ""
|
4531 |
|
4532 |
+
#: view/Blocks/Snippet.php:496
|
4533 |
msgid "Edit Open Graph"
|
4534 |
msgstr ""
|
4535 |
|
4536 |
+
#: view/Blocks/Snippet.php:504 view/Blocks/Snippet.php:759
|
4537 |
msgid "The image size must be at least 500 pixels wide"
|
4538 |
msgstr ""
|
4539 |
|
4540 |
+
#: view/Blocks/Snippet.php:520
|
4541 |
#, fuzzy
|
4542 |
#| msgid ""
|
4543 |
#| "This is the Featured Image. You can changin it if you edit the snippet "
|
4549 |
"This is the Featured Image. You can change it if you edit the snippet and "
|
4550 |
"upload another image."
|
4551 |
|
4552 |
+
#: view/Blocks/Snippet.php:549 view/Blocks/Snippet.php:804
|
4553 |
msgid "Media Image"
|
4554 |
msgstr ""
|
4555 |
|
4556 |
+
#: view/Blocks/Snippet.php:553 view/Blocks/Snippet.php:808
|
4557 |
+
#: view/Research/Briefcase.php:366 view/SeoSettings/Favicon.php:72
|
4558 |
msgid "Upload"
|
4559 |
msgstr ""
|
4560 |
|
4561 |
+
#: view/Blocks/Snippet.php:554 view/Blocks/Snippet.php:809
|
4562 |
msgid "Image size must be at least 500 pixels wide"
|
4563 |
msgstr ""
|
4564 |
|
4565 |
+
#: view/Blocks/Snippet.php:661
|
4566 |
msgid "Author Link"
|
4567 |
msgstr ""
|
4568 |
|
4569 |
+
#: view/Blocks/Snippet.php:662
|
4570 |
#, fuzzy
|
4571 |
#| msgid "For mutiple authors, separate their facebook links with commas"
|
4572 |
msgid "For multiple authors, separate their Facebook links with commas"
|
4573 |
msgstr "For multiple authors, separate their Facebook links with commas"
|
4574 |
|
4575 |
+
#: view/Blocks/Snippet.php:744
|
4576 |
msgid "How this page appears on Twitter"
|
4577 |
msgstr ""
|
4578 |
|
4579 |
+
#: view/Blocks/Snippet.php:750
|
4580 |
msgid "Edit Twitter Card"
|
4581 |
msgstr ""
|
4582 |
|
4583 |
+
#: view/Blocks/Snippet.php:776
|
4584 |
#, fuzzy
|
4585 |
#| msgid ""
|
4586 |
#| "This is the Featured Image. You can changin it if you edit the snippet "
|
4592 |
"This is the Featured Image. You can change it if you edit the snippet and "
|
4593 |
"upload another image."
|
4594 |
|
4595 |
+
#: view/Blocks/Snippet.php:917
|
4596 |
msgid "Card Type"
|
4597 |
msgstr ""
|
4598 |
|
4599 |
+
#: view/Blocks/Snippet.php:918 view/SeoSettings/Social.php:290
|
4600 |
#, php-format
|
4601 |
msgid "Every change needs %sTwitter Card Validator%s"
|
4602 |
msgstr ""
|
4603 |
|
4604 |
+
#: view/Blocks/Snippet.php:923
|
4605 |
msgid "summary"
|
4606 |
msgstr ""
|
4607 |
|
4608 |
+
#: view/Blocks/Snippet.php:924
|
4609 |
msgid "summary_large_image"
|
4610 |
msgstr ""
|
4611 |
|
4612 |
+
#: view/Blocks/Snippet.php:949
|
4613 |
msgid "Twitter Type"
|
4614 |
msgstr ""
|
4615 |
|
4616 |
+
#: view/Blocks/Snippet.php:975
|
4617 |
msgid "Activate Tracking"
|
4618 |
msgstr ""
|
4619 |
|
4620 |
+
#: view/Blocks/Snippet.php:981
|
4621 |
#, fuzzy, php-format
|
4622 |
#| msgid ""
|
4623 |
#| "Facebook Pixel is disable for this Post Type. See %sSquirrly > SEO "
|
4629 |
"Facebook Pixel is disabled for this Post Type. See %sSquirrly > SEO Settings "
|
4630 |
"> Automation%s."
|
4631 |
|
4632 |
+
#: view/Blocks/Snippet.php:1005 view/SeoSettings/Tracking.php:85
|
4633 |
msgid "Facebook Pixel"
|
4634 |
msgstr ""
|
4635 |
|
4636 |
+
#: view/Blocks/Snippet.php:1021
|
4637 |
msgid "Custom Pixel Code"
|
4638 |
msgstr ""
|
4639 |
|
4640 |
+
#: view/Blocks/Snippet.php:1022
|
4641 |
#, php-format
|
4642 |
msgid "Add Facebook Pixel code from %sFacebook Events%s."
|
4643 |
msgstr ""
|
4644 |
|
4645 |
+
#: view/Blocks/Snippet.php:1031
|
4646 |
msgid "Current Pixel Code"
|
4647 |
msgstr ""
|
4648 |
|
4649 |
+
#: view/Blocks/Snippet.php:1040
|
4650 |
#, php-format
|
4651 |
msgid ""
|
4652 |
"Add a Pixel ID for Facebook Pixel at %sSquirrly > SEO Settings > Tracking "
|
4653 |
"Tools%s."
|
4654 |
msgstr ""
|
4655 |
|
4656 |
+
#: view/Blocks/Snippet.php:1070
|
4657 |
#, php-format
|
4658 |
msgid ""
|
4659 |
"You selected '%s' in %sSettings > Reading%s. It's important to uncheck that "
|
4660 |
"option."
|
4661 |
msgstr ""
|
4662 |
|
4663 |
+
#: view/Blocks/Snippet.php:1090 view/Blocks/Snippet.php:1121
|
4664 |
#, php-format
|
4665 |
msgid ""
|
4666 |
"This Post Type (%s) has Nofollow set in Automation. See %sSquirrly > SEO "
|
4667 |
"Settings > Automation%s."
|
4668 |
msgstr ""
|
4669 |
|
4670 |
+
#: view/Blocks/Snippet.php:1097 view/Blocks/Snippet.php:1128
|
4671 |
#: view/SeoSettings/Automation.php:139 view/SeoSettings/Automation.php:166
|
4672 |
msgid "Activate Robots Meta"
|
4673 |
msgstr ""
|
4674 |
|
4675 |
+
#: view/Blocks/Snippet.php:1108
|
4676 |
msgid "Let Google Index This Page"
|
4677 |
msgstr ""
|
4678 |
|
4679 |
+
#: view/Blocks/Snippet.php:1151
|
4680 |
#, php-format
|
4681 |
msgid ""
|
4682 |
"Show in sitemap for this Post Type (%s) was excluded from %sSquirrly > SEO "
|
4683 |
"Settings > Automation%s."
|
4684 |
msgstr ""
|
4685 |
|
4686 |
+
#: view/Blocks/Snippet.php:1158 view/SeoSettings/Automation.php:185
|
4687 |
#: view/SeoSettings/Sitemap.php:29
|
4688 |
msgid "Activate Sitemap"
|
4689 |
msgstr ""
|
4690 |
|
4691 |
+
#: view/Blocks/Snippet.php:1168
|
4692 |
msgid "Show it in Sitemap.xml"
|
4693 |
msgstr ""
|
4694 |
|
4695 |
+
#: view/Blocks/Snippet.php:1207
|
4696 |
msgid "Loading Squirrly Snippet ..."
|
4697 |
msgstr ""
|
4698 |
|
4699 |
+
#: view/Blocks/Snippet.php:1233
|
4700 |
msgid "Enable Squirrly SEO to load Squirrly Snippet"
|
4701 |
msgstr ""
|
4702 |
|
4703 |
+
#: view/Blocks/Snippet.php:1246
|
4704 |
#, fuzzy, php-format
|
4705 |
#| msgid "%sPlease connect to Squirrly Cloud first%s"
|
4706 |
msgid "%sPlease connect to SquirrlyCloud first%s"
|
4707 |
msgstr "%sPlease connect to SquirrlyCloud first%s"
|
4708 |
|
4709 |
+
#: view/Blocks/Support.php:7
|
4710 |
msgid "Go to Profile"
|
4711 |
msgstr ""
|
4712 |
|
4713 |
+
#: view/Blocks/Support.php:7 view/Blocks/Support.php:8
|
4714 |
msgid "Profile"
|
4715 |
msgstr ""
|
4716 |
|
4717 |
+
#: view/Blocks/Support.php:18
|
4718 |
msgid "Support"
|
4719 |
msgstr ""
|
4720 |
|
4721 |
+
#: view/Blocks/Support.php:21
|
4722 |
msgid "Need Help with Squirrly SEO?"
|
4723 |
msgstr ""
|
4724 |
|
4725 |
+
#: view/Blocks/Support.php:23 view/Blocks/Support.php:79
|
4726 |
#, php-format
|
4727 |
msgid "10 AM to 4 PM (GMT): Mon-Fri %sby email%s."
|
4728 |
msgstr ""
|
4729 |
|
4730 |
+
#: view/Blocks/Support.php:24 view/Blocks/Support.php:80
|
4731 |
#, php-format
|
4732 |
msgid "How To Squirrly %swebsite%s."
|
4733 |
msgstr ""
|
4734 |
|
4735 |
+
#: view/Blocks/Support.php:25 view/Blocks/Support.php:81
|
4736 |
#, php-format
|
4737 |
msgid "Facebook %sSupport Community%s."
|
4738 |
msgstr ""
|
4739 |
|
4740 |
+
#: view/Blocks/Support.php:26 view/Blocks/Support.php:82
|
4741 |
#, php-format
|
4742 |
msgid "Facebook %sMessenger%s."
|
4743 |
msgstr ""
|
4744 |
|
4745 |
+
#: view/Blocks/Support.php:27
|
4746 |
#, php-format
|
4747 |
msgid "Twitter %sSupport%s."
|
4748 |
msgstr ""
|
4749 |
|
4750 |
+
#: view/Blocks/Support.php:39
|
4751 |
msgid "How was your Squirrly experience today?"
|
4752 |
msgstr ""
|
4753 |
|
4754 |
+
#: view/Blocks/Support.php:48
|
4755 |
msgid "How was Squirrly today?"
|
4756 |
msgstr ""
|
4757 |
|
4758 |
+
#: view/Blocks/Support.php:53
|
4759 |
msgid "Angry"
|
4760 |
msgstr ""
|
4761 |
|
4762 |
+
#: view/Blocks/Support.php:53
|
4763 |
msgid "Annoying"
|
4764 |
msgstr ""
|
4765 |
|
4766 |
+
#: view/Blocks/Support.php:56
|
4767 |
msgid "Sad"
|
4768 |
msgstr ""
|
4769 |
|
4770 |
+
#: view/Blocks/Support.php:56
|
4771 |
msgid "Bad"
|
4772 |
msgstr ""
|
4773 |
|
4774 |
+
#: view/Blocks/Support.php:59
|
4775 |
msgid "Happy"
|
4776 |
msgstr ""
|
4777 |
|
4778 |
+
#: view/Blocks/Support.php:59
|
4779 |
msgid "Nice"
|
4780 |
msgstr ""
|
4781 |
|
4782 |
+
#: view/Blocks/Support.php:62
|
4783 |
msgid "Excited"
|
4784 |
msgstr ""
|
4785 |
|
4786 |
+
#: view/Blocks/Support.php:62
|
4787 |
msgid "Great"
|
4788 |
msgstr ""
|
4789 |
|
4790 |
+
#: view/Blocks/Support.php:65
|
4791 |
msgid "Love it"
|
4792 |
msgstr ""
|
4793 |
|
4794 |
+
#: view/Blocks/Support.php:71
|
4795 |
#, fuzzy
|
4796 |
#| msgid "Please tell us why?"
|
4797 |
msgid "Please tell us why."
|
4798 |
msgstr "Please tell us why."
|
4799 |
|
4800 |
+
#: view/Blocks/Support.php:74
|
4801 |
msgid "Send feedback"
|
4802 |
msgstr ""
|
4803 |
|
4804 |
+
#: view/Blocks/Support.php:78
|
4805 |
msgid "For more support:"
|
4806 |
msgstr ""
|
4807 |
|
4808 |
+
#: view/Blocks/Support.php:83
|
4809 |
#, php-format
|
4810 |
msgid "New Lessons Mon. and Tue. on %sTwitter%s."
|
4811 |
msgstr ""
|
4812 |
|
4813 |
+
#: view/Blocks/Support.php:88
|
4814 |
#, fuzzy
|
4815 |
#| msgid "Thank you! You can send us a happy face tomorow too."
|
4816 |
msgid "Thank you! You can send us a happy face tomorrow too."
|
4880 |
msgstr ""
|
4881 |
|
4882 |
#: view/FocusPages/Addpage.php:32 view/Research/Research.php:166
|
4883 |
+
#: view/SeoSettings/Bulkseo.php:115
|
4884 |
msgid "Search"
|
4885 |
msgstr ""
|
4886 |
|
4892 |
msgid "Is focus page"
|
4893 |
msgstr ""
|
4894 |
|
4895 |
+
#: view/FocusPages/Addpage.php:96 view/SeoSettings/Bulkseo.php:190
|
4896 |
msgid "Prev Page"
|
4897 |
msgstr ""
|
4898 |
|
4899 |
+
#: view/FocusPages/Addpage.php:97 view/SeoSettings/Bulkseo.php:191
|
4900 |
msgid "Next Page"
|
4901 |
msgstr ""
|
4902 |
|
4904 |
msgid "Best Practices"
|
4905 |
msgstr ""
|
4906 |
|
4907 |
+
#: view/FocusPages/FocusPageRow.php:46
|
4908 |
msgid "You can refresh the audit once every 5 minutes"
|
4909 |
msgstr ""
|
4910 |
|
4911 |
+
#: view/FocusPages/FocusPageRow.php:48
|
4912 |
msgid "Request new audit"
|
4913 |
msgstr ""
|
4914 |
|
4915 |
+
#: view/FocusPages/FocusPageRow.php:54
|
4916 |
+
msgid "Could not create the audit for this URL"
|
4917 |
+
msgstr ""
|
4918 |
+
|
4919 |
+
#: view/FocusPages/FocusPageRow.php:55
|
4920 |
+
#, php-format
|
4921 |
+
msgid ""
|
4922 |
+
"The current way your WordPress site is hosted can cause experience issues to "
|
4923 |
+
"the way Squirrly SEO works. %s In order to serve you with the best data, and "
|
4924 |
+
"make sure that the Focus Pages audits can be processed, you will need to "
|
4925 |
+
"talk to your hosting provider and tell them to make the following settings. "
|
4926 |
+
"%s Please add the IP addresses 176.9.59.55 and 176.9.112.210 in the white-"
|
4927 |
+
"list for remote access and it should work."
|
4928 |
+
msgstr ""
|
4929 |
+
|
4930 |
+
#: view/FocusPages/FocusPageRow.php:85
|
4931 |
msgid "Delete Focus Page"
|
4932 |
msgstr ""
|
4933 |
|
4935 |
msgid "Current Ranking Drawbacks."
|
4936 |
msgstr ""
|
4937 |
|
4938 |
+
#: view/FocusPages/Pagelist.php:37 view/Ranking/Rankings.php:65
|
4939 |
+
#: view/Research/Briefcase.php:34 view/SeoSettings/Bulkseo.php:117
|
4940 |
msgid "Show All"
|
4941 |
msgstr ""
|
4942 |
|
4952 |
msgid "Welcome to Focus Pages"
|
4953 |
msgstr ""
|
4954 |
|
4955 |
+
#: view/FocusPages/Pagelist.php:130
|
4956 |
+
#, php-format
|
4957 |
+
msgid ""
|
4958 |
+
"%sNote:%s remember that it takes anywhere between %s1 minute to 5 minutes%s "
|
4959 |
+
"to generate the new audit for a focus page. There is a lot of processing "
|
4960 |
+
"involved."
|
4961 |
+
msgstr ""
|
4962 |
+
|
4963 |
#: view/FocusPages/Settings.php:19
|
4964 |
msgid "Focus Pages Settings"
|
4965 |
msgstr ""
|
5166 |
msgid "Start using Squirrly SEO"
|
5167 |
msgstr ""
|
5168 |
|
5169 |
+
#: view/Post.php:5
|
5170 |
+
msgid "img/editor/sla.png"
|
5171 |
+
msgstr ""
|
5172 |
+
|
5173 |
+
#: view/Post.php:8
|
5174 |
+
msgid ""
|
5175 |
+
"To load Squirrly Live Assistant and optimize this page, click to connect to "
|
5176 |
+
"Squirrly Data Cloud."
|
5177 |
+
msgstr ""
|
5178 |
+
|
5179 |
#: view/Ranking/Gscsync.php:13
|
5180 |
msgid "Google Search Console Keywords Sync"
|
5181 |
msgstr ""
|
5241 |
"organic keywords"
|
5242 |
msgstr ""
|
5243 |
|
5244 |
+
#: view/Ranking/Rankings.php:41
|
5245 |
#, php-format
|
5246 |
msgid ""
|
5247 |
"%sSERP Checker Business:%s We update the best ranks for each keyword, daily. "
|
5248 |
"100%% accurate and objective."
|
5249 |
msgstr ""
|
5250 |
|
5251 |
+
#: view/Ranking/Rankings.php:45
|
5252 |
#, php-format
|
5253 |
msgid ""
|
5254 |
"%sSERP Checker Lite:%s We show ranks according to what Google shows you in "
|
5257 |
"plan to %sBusiness Plan%s"
|
5258 |
msgstr ""
|
5259 |
|
5260 |
+
#: view/Ranking/Rankings.php:88
|
5261 |
#, fuzzy
|
5262 |
#| msgid "Show only the ranked articles"
|
5263 |
msgid "Only show ranked articles"
|
5264 |
msgstr "Only show ranked articles"
|
5265 |
|
5266 |
+
#: view/Ranking/Rankings.php:93
|
5267 |
msgid "Today Avg. Ranking"
|
5268 |
msgstr ""
|
5269 |
|
5270 |
+
#: view/Ranking/Rankings.php:121
|
5271 |
#, fuzzy
|
5272 |
#| msgid "Show only the SERP changes"
|
5273 |
msgid "Only show SERP changes"
|
5274 |
msgstr "Only show SERP changes"
|
5275 |
|
5276 |
+
#: view/Ranking/Rankings.php:135
|
5277 |
msgid "Today SERP Changes"
|
5278 |
msgstr ""
|
5279 |
|
5280 |
+
#: view/Ranking/Rankings.php:148
|
5281 |
msgid "Path"
|
5282 |
msgstr ""
|
5283 |
|
5284 |
+
#: view/Ranking/Rankings.php:150
|
5285 |
msgid "Rank"
|
5286 |
msgstr ""
|
5287 |
|
5288 |
+
#: view/Ranking/Rankings.php:151
|
5289 |
msgid "Best"
|
5290 |
msgstr ""
|
5291 |
|
5292 |
+
#: view/Ranking/Rankings.php:153
|
5293 |
msgid "Avg Rank"
|
5294 |
msgstr ""
|
5295 |
|
5296 |
+
#: view/Ranking/Rankings.php:155 view/Research/History.php:28
|
5297 |
msgid "Details"
|
5298 |
msgstr ""
|
5299 |
|
5300 |
+
#: view/Ranking/Rankings.php:203
|
5301 |
msgid "Optimized with SLA"
|
5302 |
msgstr ""
|
5303 |
|
5304 |
+
#: view/Ranking/Rankings.php:211
|
5305 |
msgid "Social Shares"
|
5306 |
msgstr ""
|
5307 |
|
5308 |
+
#: view/Ranking/Rankings.php:214
|
5309 |
msgid "Facebook"
|
5310 |
msgstr ""
|
5311 |
|
5312 |
+
#: view/Ranking/Rankings.php:215
|
5313 |
msgid "Reddit"
|
5314 |
msgstr ""
|
5315 |
|
5316 |
+
#: view/Ranking/Rankings.php:216
|
5317 |
msgid "Pinterest"
|
5318 |
msgstr ""
|
5319 |
|
5320 |
+
#: view/Ranking/Rankings.php:238
|
5321 |
msgid ""
|
5322 |
"Note! The clicks and impressions data is taken from Google Search Console "
|
5323 |
"for the last 90 days for the current URL"
|
5324 |
msgstr ""
|
5325 |
|
5326 |
+
#: view/Ranking/Rankings.php:251 view/Ranking/Rankings.php:284
|
5327 |
msgid "Google Search Console has no data for this keyword"
|
5328 |
msgstr ""
|
5329 |
|
5330 |
+
#: view/Ranking/Rankings.php:260
|
5331 |
msgid "Sync Keywords"
|
5332 |
msgstr ""
|
5333 |
|
5334 |
+
#: view/Ranking/Rankings.php:274
|
5335 |
msgid "Not indexed"
|
5336 |
msgstr ""
|
5337 |
|
5338 |
+
#: view/Ranking/Rankings.php:285
|
5339 |
msgid "GSC"
|
5340 |
msgstr ""
|
5341 |
|
5342 |
+
#: view/Ranking/Rankings.php:289
|
5343 |
msgid "rank details"
|
5344 |
msgstr ""
|
5345 |
|
5346 |
+
#: view/Ranking/Rankings.php:309
|
5347 |
msgid "Check Ranking again"
|
5348 |
msgstr ""
|
5349 |
|
5350 |
+
#: view/Ranking/Rankings.php:322
|
5351 |
msgid "Remove Keyword"
|
5352 |
msgstr ""
|
5353 |
|
5354 |
+
#: view/Ranking/Rankings.php:342
|
5355 |
msgid "No ranking found."
|
5356 |
msgstr ""
|
5357 |
|
5358 |
+
#: view/Ranking/Rankings.php:346
|
5359 |
msgid "Welcome to Squirrly Rankings"
|
5360 |
msgstr ""
|
5361 |
|
5362 |
+
#: view/Ranking/Rankings.php:369
|
5363 |
msgid "Synchronize Keywords with Google Search Console"
|
5364 |
msgstr ""
|
5365 |
|
5868 |
msgid "No research data"
|
5869 |
msgstr ""
|
5870 |
|
5871 |
+
#: view/Research/Briefcase.php:234
|
5872 |
msgid "Send to Rank Checker"
|
5873 |
msgstr ""
|
5874 |
|
5875 |
+
#: view/Research/Briefcase.php:243
|
5876 |
msgid "Refresh Research"
|
5877 |
msgstr ""
|
5878 |
|
5879 |
+
#: view/Research/Briefcase.php:248
|
5880 |
msgid "Assign Label"
|
5881 |
msgstr ""
|
5882 |
|
5883 |
+
#: view/Research/Briefcase.php:253
|
5884 |
msgid "Delete Keyword"
|
5885 |
msgstr ""
|
5886 |
|
5887 |
+
#: view/Research/Briefcase.php:264
|
5888 |
#, php-format
|
5889 |
msgid "Select Labels for: %s"
|
5890 |
msgstr ""
|
5891 |
|
5892 |
+
#: view/Research/Briefcase.php:278 view/Research/Labels.php:17
|
5893 |
msgid "Add new Label"
|
5894 |
msgstr ""
|
5895 |
|
5896 |
+
#: view/Research/Briefcase.php:284
|
5897 |
msgid "Save Labels"
|
5898 |
msgstr ""
|
5899 |
|
5900 |
+
#: view/Research/Briefcase.php:311
|
5901 |
msgid "Welcome to Briefcase"
|
5902 |
msgstr ""
|
5903 |
|
5904 |
+
#: view/Research/Briefcase.php:312
|
5905 |
msgid "To get started with managing keywords for your SEO Strategy"
|
5906 |
msgstr ""
|
5907 |
|
5908 |
+
#: view/Research/Briefcase.php:316
|
5909 |
msgid "Go Find Keywords"
|
5910 |
msgstr ""
|
5911 |
|
5912 |
+
#: view/Research/Briefcase.php:322 view/Research/History.php:61
|
5913 |
msgid "Then Add them to Briefcase"
|
5914 |
msgstr ""
|
5915 |
|
5916 |
+
#: view/Research/Briefcase.php:332
|
5917 |
msgid "Backup/Restore Briefcase Keywords"
|
5918 |
msgstr ""
|
5919 |
|
5920 |
+
#: view/Research/Briefcase.php:333
|
5921 |
msgid ""
|
5922 |
"Keep your briefcase keywords safe in case you change your domain or "
|
5923 |
"reinstall the plugin"
|
5924 |
msgstr ""
|
5925 |
|
5926 |
+
#: view/Research/Briefcase.php:339
|
5927 |
msgid "Download Keywords"
|
5928 |
msgstr ""
|
5929 |
|
5930 |
+
#: view/Research/Briefcase.php:342
|
5931 |
msgid "Import Keywords"
|
5932 |
msgstr ""
|
5933 |
|
5934 |
+
#: view/Research/Briefcase.php:348
|
5935 |
msgid "Restore Briefcase Keywords"
|
5936 |
msgstr ""
|
5937 |
|
5938 |
+
#: view/Research/Briefcase.php:356
|
5939 |
msgid "Restore Keywords"
|
5940 |
msgstr ""
|
5941 |
|
5942 |
+
#: view/Research/Briefcase.php:357
|
5943 |
msgid "Upload the file with the saved Squirrly Briefcase Keywords."
|
5944 |
msgstr ""
|
5945 |
|
6011 |
msgid "Color"
|
6012 |
msgstr ""
|
6013 |
|
6014 |
+
#: view/Research/Labels.php:108
|
6015 |
msgid "Delete Label"
|
6016 |
msgstr ""
|
6017 |
|
6018 |
+
#: view/Research/Labels.php:124
|
6019 |
msgid "Welcome to Briefcase Labels"
|
6020 |
msgstr ""
|
6021 |
|
6022 |
+
#: view/Research/Labels.php:125
|
6023 |
msgid "To categorize and filter the keywords from Briefcase"
|
6024 |
msgstr ""
|
6025 |
|
6026 |
+
#: view/Research/Labels.php:129
|
6027 |
msgid "Add new label"
|
6028 |
msgstr ""
|
6029 |
|
6030 |
+
#: view/Research/Labels.php:136
|
6031 |
msgid "Assign keywords to labels"
|
6032 |
msgstr ""
|
6033 |
|
6521 |
msgid "Any status"
|
6522 |
msgstr ""
|
6523 |
|
6524 |
+
#: view/SeoSettings/Bulkseo.php:177
|
6525 |
+
#, php-format
|
6526 |
+
msgid "No data for this filter. %sShow All%s records for this post type."
|
6527 |
+
msgstr ""
|
6528 |
+
|
6529 |
+
#: view/SeoSettings/Bulkseo.php:179
|
6530 |
+
msgid "No data found for this post type. Try other post types."
|
6531 |
+
msgstr ""
|
6532 |
+
|
6533 |
#: view/SeoSettings/BulkseoRow.php:26
|
6534 |
#, php-format
|
6535 |
msgid "View “%s”"
|
6631 |
msgid "Logo URL"
|
6632 |
msgstr ""
|
6633 |
|
|
|
|
|
|
|
|
|
6634 |
#: view/SeoSettings/Jsonld.php:89 view/SeoSettings/Jsonld.php:159
|
6635 |
#: view/SeoSettings/Metas.php:191
|
6636 |
msgid "Select Image"
|
6829 |
msgid "Tips: use 2-4 keywords"
|
6830 |
msgstr ""
|
6831 |
|
|
|
|
|
|
|
|
|
6832 |
#: view/SeoSettings/Metas.php:199
|
6833 |
msgid "First Page Preview"
|
6834 |
msgstr ""
|
7338 |
"Pinterest account. Visit the %sRich Pins Validator%s"
|
7339 |
msgstr ""
|
7340 |
|
7341 |
+
#~ msgid "Json LD"
|
7342 |
+
#~ msgstr "JSON LD"
|
7343 |
+
|
7344 |
+
#~ msgid "You choosed to ignore this task. Click to activate it."
|
7345 |
+
#~ msgstr "You chose to ignore this task. Click to activate it."
|
7346 |
+
|
7347 |
#~ msgid ""
|
7348 |
#~ "This is the Featured Image. You can changin it if you edit the snippet "
|
7349 |
#~ "and upload anothe image."
|
models/Assistant.php
CHANGED
@@ -455,6 +455,17 @@ class SQ_Models_Assistant {
|
|
455 |
|
456 |
public function checkSettingsJsonld() {
|
457 |
if (SQ_Classes_Helpers_Tools::getOption('sq_auto_jsonld')) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
458 |
return true;
|
459 |
}
|
460 |
|
@@ -588,7 +599,7 @@ class SQ_Models_Assistant {
|
|
588 |
}
|
589 |
}
|
590 |
}
|
591 |
-
if (count($this->_ranks) >= 3) {
|
592 |
return true;
|
593 |
}
|
594 |
|
455 |
|
456 |
public function checkSettingsJsonld() {
|
457 |
if (SQ_Classes_Helpers_Tools::getOption('sq_auto_jsonld')) {
|
458 |
+
$jsonld = SQ_Classes_Helpers_Tools::getOption('sq_jsonld');
|
459 |
+
$jsonldtype = SQ_Classes_Helpers_Tools::getOption('sq_jsonld_type');
|
460 |
+
if (isset($jsonld[$jsonldtype]) && !empty($jsonld[$jsonldtype])) {
|
461 |
+
if ($jsonld[$jsonldtype]['name'] == '' ||
|
462 |
+
$jsonld[$jsonldtype]['logo'] == '' ||
|
463 |
+
$jsonld[$jsonldtype]['description'] == ''
|
464 |
+
) {
|
465 |
+
return false;
|
466 |
+
|
467 |
+
}
|
468 |
+
}
|
469 |
return true;
|
470 |
}
|
471 |
|
599 |
}
|
600 |
}
|
601 |
}
|
602 |
+
if (count((array)$this->_ranks) >= 3) {
|
603 |
return true;
|
604 |
}
|
605 |
|
models/CheckSeo.php
CHANGED
@@ -125,22 +125,19 @@ class SQ_Models_CheckSeo {
|
|
125 |
*/
|
126 |
public function getSourceCode() {
|
127 |
$url = home_url('?rnd=' . rand());
|
128 |
-
$response = wp_remote_get($url, array('redirection' => 1));
|
129 |
|
130 |
-
|
131 |
-
|
132 |
-
|
|
|
|
|
133 |
} else {
|
134 |
-
$htmlerror = "Empty Body";
|
135 |
$this->html = false;
|
136 |
}
|
137 |
-
} else {
|
138 |
-
$htmlerror = $response->get_error_message();
|
139 |
-
$this->html = false;
|
140 |
}
|
141 |
|
142 |
return array(
|
143 |
-
'warning' => __("Could not verify the frontend.", _SQ_PLUGIN_NAME_)
|
144 |
'valid' => true
|
145 |
);
|
146 |
}
|
125 |
*/
|
126 |
public function getSourceCode() {
|
127 |
$url = home_url('?rnd=' . rand());
|
|
|
128 |
|
129 |
+
$json = SQ_Classes_ObjController::getClass('SQ_Classes_RemoteController')->crawlURL(array('url' => $url));
|
130 |
+
|
131 |
+
if (!is_wp_error($json)) {
|
132 |
+
if (isset($json->content) && $json->content <> '') {
|
133 |
+
$this->html = $json->content;
|
134 |
} else {
|
|
|
135 |
$this->html = false;
|
136 |
}
|
|
|
|
|
|
|
137 |
}
|
138 |
|
139 |
return array(
|
140 |
+
'warning' => __("Could not verify the frontend.", _SQ_PLUGIN_NAME_),
|
141 |
'valid' => true
|
142 |
);
|
143 |
}
|
models/Compatibility.php
ADDED
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class SQ_Models_Compatibility {
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Prevent other plugins javascript
|
7 |
+
*/
|
8 |
+
public function fixEnqueueErrors() {
|
9 |
+
global $wp_styles, $wp_scripts;
|
10 |
+
$corelib = array('admin-bar', 'colors', 'ie', 'common', 'utils', 'wp-auth-check',
|
11 |
+
'media-editor', 'media-audiovideo', 'media-views', 'imgareaselect', 'mce-view', 'image-edit'
|
12 |
+
);
|
13 |
+
|
14 |
+
foreach ($wp_styles->queue as $key => $queue) {
|
15 |
+
if (!in_array($queue, $corelib)) {
|
16 |
+
unset($wp_styles->queue[$key]);
|
17 |
+
}
|
18 |
+
}
|
19 |
+
|
20 |
+
foreach ($wp_scripts->queue as $key => $queue) {
|
21 |
+
if (!in_array($queue, $corelib)) {
|
22 |
+
unset($wp_scripts->queue[$key]);
|
23 |
+
}
|
24 |
+
}
|
25 |
+
}
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Clear the styles from other plugins
|
29 |
+
*/
|
30 |
+
public function clearStyles() {
|
31 |
+
//clear the other plugins js
|
32 |
+
global $wp_styles;
|
33 |
+
$wp_styles->queue = array();
|
34 |
+
}
|
35 |
+
}
|
models/FocusPages.php
CHANGED
@@ -96,10 +96,20 @@ class SQ_Models_FocusPages {
|
|
96 |
}
|
97 |
|
98 |
$audit = $this->_focuspage->getAudit();
|
99 |
-
|
|
|
|
|
|
|
100 |
$this->_focuspage->audit_datetime = date(get_option('date_format') . ' ' . get_option('time_format'), strtotime($audit->properties->created_at->date));
|
|
|
|
|
|
|
|
|
101 |
} else {
|
102 |
$this->_focuspage->audit_datetime = __('Audit in progress', _SQ_PLUGIN_NAME_);
|
|
|
|
|
|
|
103 |
$this->_focuspage->visibility = 'N/A';
|
104 |
}
|
105 |
|
96 |
}
|
97 |
|
98 |
$audit = $this->_focuspage->getAudit();
|
99 |
+
|
100 |
+
//Set the focus page audit as success
|
101 |
+
$this->_focuspage->audit_error = false;
|
102 |
+
if (isset($audit->properties) && isset($audit->properties->created_at->date)) {
|
103 |
$this->_focuspage->audit_datetime = date(get_option('date_format') . ' ' . get_option('time_format'), strtotime($audit->properties->created_at->date));
|
104 |
+
//Set the audit as error in case it was a process error
|
105 |
+
if(!$audit->properties->successCrawl){
|
106 |
+
$this->_focuspage->audit_error = true;
|
107 |
+
}
|
108 |
} else {
|
109 |
$this->_focuspage->audit_datetime = __('Audit in progress', _SQ_PLUGIN_NAME_);
|
110 |
+
}
|
111 |
+
|
112 |
+
if(!isset($audit->properties) || !isset($audit->data->sq_seo_keywords->value) || $audit->data->sq_seo_keywords->value == ''){
|
113 |
$this->_focuspage->visibility = 'N/A';
|
114 |
}
|
115 |
|
models/Frontend.php
CHANGED
@@ -71,58 +71,58 @@ class SQ_Models_Frontend {
|
|
71 |
public function setMetaInBuffer($buffer) {
|
72 |
//if is enabled sq for this page
|
73 |
if ($this->runSEOForThisPage()) {
|
74 |
-
if (strpos($buffer, '</head') !== false) {
|
75 |
-
if ($header = $this->getHeader()) {
|
76 |
|
77 |
-
|
78 |
-
|
|
|
79 |
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
}
|
85 |
-
if (isset($header['sq_description']) && $header['sq_description'] <> '' && SQ_Classes_Helpers_Tools::getOption('sq_auto_description')) {
|
86 |
-
$buffer = @preg_replace('/<meta[^>]*(name|property)=["\']description["\'][^>]*content=["\'][^"\'>]*["\'][^>]*>[\n\r]*/si', '', $buffer, -1);
|
87 |
-
}
|
88 |
-
if (isset($header['sq_keywords']) && $header['sq_keywords'] <> '' && SQ_Classes_Helpers_Tools::getOption('sq_auto_keywords')) {
|
89 |
-
$buffer = @preg_replace('/<meta[^>]*(name|property)=["\']keywords["\'][^>]*content=["\'][^"\'>]*["\'][^>]*>[\n\r]*/si', '', $buffer, -1);
|
90 |
-
}
|
91 |
-
if (isset($header['sq_canonical']) && $header['sq_canonical'] <> '' && SQ_Classes_Helpers_Tools::getOption('sq_auto_canonical')) {
|
92 |
-
$buffer = @preg_replace('/<link[^>]*rel=["\']canonical["\'][^>]*>[\n\r]*/si', '', $buffer, -1);
|
93 |
-
$buffer = @preg_replace('/<link[^>]*rel=["\'](prev|next)["\'][^>]*>[\n\r]*/si', '', $buffer, -1);
|
94 |
-
}
|
95 |
-
if (isset($header['sq_noindex']) && $header['sq_noindex'] <> '' && SQ_Classes_Helpers_Tools::getOption('sq_auto_noindex')) {
|
96 |
-
$buffer = @preg_replace('/<meta[^>]*name=["\']robots["\'][^>]*>[\n\r]*/si', '', $buffer, -1);
|
97 |
-
}
|
98 |
}
|
99 |
-
|
100 |
-
|
101 |
-
$buffer = @preg_replace('/<link[^>]*rel=["\']alternate["\'][^>]*type="application\/rss+xml"[^>]*>[\n\r]*/si', '', $buffer, -1);
|
102 |
}
|
103 |
-
|
104 |
-
|
105 |
-
$buffer = @preg_replace('/<meta[^>]*(name|property)=["\'](og:|article:)[^"\'>]+["\'][^>]*content=["\'][^"\'>]+["\'][^>]*>[\n\r]*/si', '', $buffer, -1);
|
106 |
}
|
107 |
-
if (isset($header['
|
108 |
-
$buffer = @preg_replace('/<
|
|
|
109 |
}
|
110 |
-
|
111 |
-
|
112 |
-
// }
|
113 |
-
if (isset($header['sq_favicon']) && $header['sq_favicon'] <> '' && SQ_Classes_Helpers_Tools::getOption('sq_auto_favicon')) {
|
114 |
-
$buffer = @preg_replace('/<link[^>]*rel=["\']shortcut icon["\'][^>]*>[\n\r]*/si', '', $buffer, -1);
|
115 |
-
$buffer = @preg_replace('/<link[^>]*rel=["\']icon["\'][^>]*>[\n\r]*/si', '', $buffer, -1);
|
116 |
}
|
117 |
-
|
118 |
-
|
119 |
-
$header_str = str_replace('$', '\$', join("\n", $header));
|
120 |
|
121 |
-
|
|
|
|
|
122 |
|
123 |
-
|
124 |
-
|
125 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
126 |
}
|
127 |
}
|
128 |
|
@@ -257,18 +257,7 @@ class SQ_Models_Frontend {
|
|
257 |
*/
|
258 |
public function setPost($curpost = null) {
|
259 |
//Load the post with all the filters applied
|
260 |
-
|
261 |
-
//If post type is excluded
|
262 |
-
$exclude_post_types = SQ_Classes_Helpers_Tools::getOption('sq_exclude_post_types');
|
263 |
-
if (!empty($exclude_post_types)) {
|
264 |
-
if (isset($this->_post->post_type) && $this->_post->post_type <> '' && in_array($this->_post->post_type, $exclude_post_types)) {
|
265 |
-
$this->_post->sq->doseo = false;
|
266 |
-
}
|
267 |
-
if (SQ_Classes_Helpers_Tools::getValue('post_type', '') <> '' && in_array(SQ_Classes_Helpers_Tools::getValue('post_type', ''), $exclude_post_types)) {
|
268 |
-
$this->_post->sq->doseo = false;
|
269 |
-
}
|
270 |
-
}
|
271 |
-
}
|
272 |
|
273 |
//Load the SEO Library before calling the filters
|
274 |
if ($this->runSEOForThisPage()) {
|
@@ -305,7 +294,6 @@ class SQ_Models_Frontend {
|
|
305 |
}
|
306 |
|
307 |
$current_post = apply_filters('sq_current_post', $current_post);
|
308 |
-
|
309 |
//If the current post is not set but there is a request in database
|
310 |
//Set the current post as home page
|
311 |
if (empty($current_post) && isset($wp->request)) {
|
@@ -348,9 +336,8 @@ class SQ_Models_Frontend {
|
|
348 |
return $post;
|
349 |
} elseif ($post->ID == get_option('page_for_posts')) { //If it's front post
|
350 |
$post->debug = 'page_for_posts:' . $post->ID;
|
351 |
-
$post->post_type = 'home';
|
352 |
$post->hash = md5($post->ID);
|
353 |
-
$post->url =
|
354 |
return $post;
|
355 |
}
|
356 |
|
@@ -774,9 +761,13 @@ class SQ_Models_Frontend {
|
|
774 |
* @return bool
|
775 |
*/
|
776 |
public function runSEOForThisPage() {
|
777 |
-
|
778 |
-
|
779 |
-
|
|
|
|
|
|
|
|
|
780 |
|
781 |
if (!$this->isHtmlHeader()) {
|
782 |
return false;
|
71 |
public function setMetaInBuffer($buffer) {
|
72 |
//if is enabled sq for this page
|
73 |
if ($this->runSEOForThisPage()) {
|
|
|
|
|
74 |
|
75 |
+
if ($header = $this->getHeader()) {
|
76 |
+
//set loaded true
|
77 |
+
$this->_loaded = true;
|
78 |
|
79 |
+
//clear the existing tags to avoid duplicates
|
80 |
+
if (SQ_Classes_Helpers_Tools::getOption('sq_auto_metas')) {
|
81 |
+
if (isset($header['sq_title']) && $header['sq_title'] <> '' && SQ_Classes_Helpers_Tools::getOption('sq_auto_title')) {
|
82 |
+
$buffer = @preg_replace('/<title[^<>]*>([^<>]*)<\/title>/si', '', $buffer, -1);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
83 |
}
|
84 |
+
if (isset($header['sq_description']) && $header['sq_description'] <> '' && SQ_Classes_Helpers_Tools::getOption('sq_auto_description')) {
|
85 |
+
$buffer = @preg_replace('/<meta[^>]*(name|property)=["\']description["\'][^>]*content=["\'][^"\'>]*["\'][^>]*>[\n\r]*/si', '', $buffer, -1);
|
|
|
86 |
}
|
87 |
+
if (isset($header['sq_keywords']) && $header['sq_keywords'] <> '' && SQ_Classes_Helpers_Tools::getOption('sq_auto_keywords')) {
|
88 |
+
$buffer = @preg_replace('/<meta[^>]*(name|property)=["\']keywords["\'][^>]*content=["\'][^"\'>]*["\'][^>]*>[\n\r]*/si', '', $buffer, -1);
|
|
|
89 |
}
|
90 |
+
if (isset($header['sq_canonical']) && $header['sq_canonical'] <> '' && SQ_Classes_Helpers_Tools::getOption('sq_auto_canonical')) {
|
91 |
+
$buffer = @preg_replace('/<link[^>]*rel=["\']canonical["\'][^>]*>[\n\r]*/si', '', $buffer, -1);
|
92 |
+
$buffer = @preg_replace('/<link[^>]*rel=["\'](prev|next)["\'][^>]*>[\n\r]*/si', '', $buffer, -1);
|
93 |
}
|
94 |
+
if (isset($header['sq_noindex']) && $header['sq_noindex'] <> '' && SQ_Classes_Helpers_Tools::getOption('sq_auto_noindex')) {
|
95 |
+
$buffer = @preg_replace('/<meta[^>]*name=["\']robots["\'][^>]*>[\n\r]*/si', '', $buffer, -1);
|
|
|
|
|
|
|
|
|
96 |
}
|
97 |
+
}
|
|
|
|
|
98 |
|
99 |
+
if (isset($header['sq_sitemap']) && $header['sq_sitemap'] <> '' && SQ_Classes_Helpers_Tools::getOption('sq_auto_sitemap')) {
|
100 |
+
$buffer = @preg_replace('/<link[^>]*rel=["\']alternate["\'][^>]*type="application\/rss+xml"[^>]*>[\n\r]*/si', '', $buffer, -1);
|
101 |
+
}
|
102 |
|
103 |
+
if (isset($header['sq_open_graph']) && $header['sq_open_graph'] <> '' && SQ_Classes_Helpers_Tools::getOption('sq_auto_facebook')) {
|
104 |
+
$buffer = @preg_replace('/<meta[^>]*(name|property)=["\'](og:|article:)[^"\'>]+["\'][^>]*content=["\'][^"\'>]+["\'][^>]*>[\n\r]*/si', '', $buffer, -1);
|
105 |
}
|
106 |
+
if (isset($header['sq_twitter_card']) && $header['sq_twitter_card'] <> '' && SQ_Classes_Helpers_Tools::getOption('sq_auto_twitter')) {
|
107 |
+
$buffer = @preg_replace('/<meta[^>]*(name|property)=["\'](twitter:)[^"\'>]+["\'][^>]*content=["\'][^"\'>]+["\'][^>]*>[\n\r]*/si', '', $buffer, -1);
|
108 |
+
}
|
109 |
+
if (SQ_Classes_Helpers_Tools::getOption('sq_jsonld_clearcode')) {
|
110 |
+
if (isset($header['sq_json_ld']) && $header['sq_json_ld'] <> '' && SQ_Classes_Helpers_Tools::getOption('sq_auto_jsonld')) {
|
111 |
+
$buffer = @preg_replace('/<script[^>]*type=["\']application\/ld\+json["\'][^>]*>[^>]*<\/script>[\n\r]*/si', '', $buffer, -1);
|
112 |
+
}
|
113 |
+
}
|
114 |
+
if (isset($header['sq_favicon']) && $header['sq_favicon'] <> '' && SQ_Classes_Helpers_Tools::getOption('sq_auto_favicon')) {
|
115 |
+
$buffer = @preg_replace('/<link[^>]*rel=["\']shortcut icon["\'][^>]*>[\n\r]*/si', '', $buffer, -1);
|
116 |
+
$buffer = @preg_replace('/<link[^>]*rel=["\']icon["\'][^>]*>[\n\r]*/si', '', $buffer, -1);
|
117 |
+
}
|
118 |
+
$buffer = @preg_replace('/(<html(\s[^>]*|))/si', sprintf("$1%s", apply_filters('sq_html_prefix', false)), $buffer, 1);
|
119 |
+
|
120 |
+
$header_str = str_replace('$', '\$', join("\n", $header));
|
121 |
+
|
122 |
+
$buffer = @preg_replace('/(<head(\s[^>]*|)>)/si', sprintf("$1\n%s", $header_str) . "\n", $buffer, 1);
|
123 |
+
|
124 |
+
unset($header);
|
125 |
+
unset($header_str);
|
126 |
}
|
127 |
}
|
128 |
|
257 |
*/
|
258 |
public function setPost($curpost = null) {
|
259 |
//Load the post with all the filters applied
|
260 |
+
$this->_post = apply_filters('sq_post', $curpost);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
261 |
|
262 |
//Load the SEO Library before calling the filters
|
263 |
if ($this->runSEOForThisPage()) {
|
294 |
}
|
295 |
|
296 |
$current_post = apply_filters('sq_current_post', $current_post);
|
|
|
297 |
//If the current post is not set but there is a request in database
|
298 |
//Set the current post as home page
|
299 |
if (empty($current_post) && isset($wp->request)) {
|
336 |
return $post;
|
337 |
} elseif ($post->ID == get_option('page_for_posts')) { //If it's front post
|
338 |
$post->debug = 'page_for_posts:' . $post->ID;
|
|
|
339 |
$post->hash = md5($post->ID);
|
340 |
+
$post->url = get_permalink($post->ID); //get the blog post permalink
|
341 |
return $post;
|
342 |
}
|
343 |
|
761 |
* @return bool
|
762 |
*/
|
763 |
public function runSEOForThisPage() {
|
764 |
+
if (SQ_Classes_Helpers_Tools::getValue('sq_seo') == 'on') {
|
765 |
+
return true;
|
766 |
+
}
|
767 |
+
|
768 |
+
if (SQ_Classes_Helpers_Tools::getValue('sq_seo') == 'off') {
|
769 |
+
return false;
|
770 |
+
}
|
771 |
|
772 |
if (!$this->isHtmlHeader()) {
|
773 |
return false;
|
models/Ico.php
CHANGED
@@ -23,7 +23,7 @@ class SQ_Models_Ico {
|
|
23 |
/* get the file extension */
|
24 |
$appleSizes = preg_split('/[,]+/', _SQ_MOBILE_ICON_SIZES);
|
25 |
$file_name = explode('.', $file['name']);
|
26 |
-
$file_type = strtolower($file_name[@count($file_name) - 1]);
|
27 |
|
28 |
$out = array();
|
29 |
$out['tmp'] = _SQ_CACHE_DIR_ . strtolower(md5($file['name']) . '_tmp.' . $file_type);
|
@@ -211,12 +211,12 @@ class SQ_Models_Ico {
|
|
211 |
return false;
|
212 |
|
213 |
|
214 |
-
$data = pack('vvv', 0, 1, @count($this->_images));
|
215 |
$pixel_data = '';
|
216 |
|
217 |
$icon_dir_entry_size = 16;
|
218 |
|
219 |
-
$offset = 6 + ( $icon_dir_entry_size * @count($this->_images) );
|
220 |
|
221 |
foreach ($this->_images as $image) {
|
222 |
$data .= pack('CCCCvvVV', $image['width'], $image['height'], $image['color_palette_colors'], 0, 1, $image['bits_per_pixel'], $image['size'], $offset);
|
23 |
/* get the file extension */
|
24 |
$appleSizes = preg_split('/[,]+/', _SQ_MOBILE_ICON_SIZES);
|
25 |
$file_name = explode('.', $file['name']);
|
26 |
+
$file_type = strtolower($file_name[@count((array)$file_name) - 1]);
|
27 |
|
28 |
$out = array();
|
29 |
$out['tmp'] = _SQ_CACHE_DIR_ . strtolower(md5($file['name']) . '_tmp.' . $file_type);
|
211 |
return false;
|
212 |
|
213 |
|
214 |
+
$data = pack('vvv', 0, 1, @count((array)$this->_images));
|
215 |
$pixel_data = '';
|
216 |
|
217 |
$icon_dir_entry_size = 16;
|
218 |
|
219 |
+
$offset = 6 + ( $icon_dir_entry_size * @count((array)$this->_images) );
|
220 |
|
221 |
foreach ($this->_images as $image) {
|
222 |
$data .= pack('CCCCvvVV', $image['width'], $image['height'], $image['color_palette_colors'], 0, 1, $image['bits_per_pixel'], $image['size'], $offset);
|
models/ImportExport.php
CHANGED
@@ -518,7 +518,7 @@ class SQ_Models_ImportExport {
|
|
518 |
$url = home_url();
|
519 |
} elseif ($post_id = get_option('page_for_posts')) {
|
520 |
$hash = md5($post_id);
|
521 |
-
$url =
|
522 |
} else {
|
523 |
$hash = md5('wp_homepage');
|
524 |
$url = home_url();
|
518 |
$url = home_url();
|
519 |
} elseif ($post_id = get_option('page_for_posts')) {
|
520 |
$hash = md5($post_id);
|
521 |
+
$url = get_permalink($post_id);
|
522 |
} else {
|
523 |
$hash = md5('wp_homepage');
|
524 |
$url = home_url();
|
models/Snippet.php
CHANGED
@@ -43,23 +43,29 @@ class SQ_Models_Snippet {
|
|
43 |
$sq->tw_media = SQ_Classes_Helpers_Tools::getValue('sq_tw_media', '');
|
44 |
$sq->tw_type = SQ_Classes_Helpers_Tools::getValue('sq_tw_type', '');
|
45 |
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
|
|
|
|
|
|
52 |
}
|
53 |
|
54 |
-
if (
|
55 |
-
$
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
|
|
|
|
|
|
|
|
60 |
}
|
61 |
|
62 |
-
|
63 |
//Prevent broken url in canonical link
|
64 |
if (strpos($sq->canonical, '//') === false) {
|
65 |
$sq->canonical = '';
|
@@ -89,7 +95,7 @@ class SQ_Models_Snippet {
|
|
89 |
public function getCurrentSnippet($post_id, $term_id, $taxonomy, $post_type) {
|
90 |
|
91 |
if ($post_type == 'home') {
|
92 |
-
return $this->setHomePage(
|
93 |
} elseif ($post_type == 'profile') {
|
94 |
return $this->setAuthorPage($post_id);
|
95 |
} elseif ($post_id > 0) {
|
@@ -163,21 +169,19 @@ class SQ_Models_Snippet {
|
|
163 |
}
|
164 |
|
165 |
/**
|
166 |
-
* Set the home page in Shippet
|
167 |
-
* @param string $post_type
|
168 |
* @return array|null|stdClass|WP_Post
|
169 |
*/
|
170 |
-
public function setHomePage(
|
171 |
global $wp_query;
|
172 |
-
if (!$post_id = get_option('page_on_front')) {
|
173 |
-
if (!$post_id = get_option('page_for_posts')) {
|
174 |
-
$post_id = 'wp_homepage';
|
175 |
-
}
|
176 |
-
}
|
177 |
|
178 |
-
|
179 |
-
|
|
|
|
|
|
|
180 |
} else {
|
|
|
181 |
$post = SQ_Classes_ObjController::getDomain('SQ_Models_Domain_Post');
|
182 |
|
183 |
$wp_query->is_home = true;
|
@@ -186,9 +190,10 @@ class SQ_Models_Snippet {
|
|
186 |
$post->post_title = get_bloginfo('name');
|
187 |
$post->post_excerpt = get_bloginfo('description');
|
188 |
$post->url = home_url();
|
189 |
-
|
190 |
}
|
|
|
191 |
$post = SQ_Classes_ObjController::getClass('SQ_Models_Frontend')->setPost($post)->getPost();
|
|
|
192 |
return $post;
|
193 |
}
|
194 |
|
43 |
$sq->tw_media = SQ_Classes_Helpers_Tools::getValue('sq_tw_media', '');
|
44 |
$sq->tw_type = SQ_Classes_Helpers_Tools::getValue('sq_tw_type', '');
|
45 |
|
46 |
+
if (SQ_Classes_Helpers_Tools::getValue('sq_jsonld_code_type', 'auto') == 'custom') {
|
47 |
+
if (isset($_POST['sq_jsonld'])) {
|
48 |
+
$allowed_html = array(
|
49 |
+
'script' => array('type' => array()),
|
50 |
+
);
|
51 |
+
$sq->jsonld = strip_tags(wp_unslash(trim(wp_kses($_POST['sq_jsonld'], $allowed_html))));
|
52 |
+
}
|
53 |
+
}else{
|
54 |
+
$sq->jsonld = '';
|
55 |
}
|
56 |
|
57 |
+
if (SQ_Classes_Helpers_Tools::getValue('sq_fpixel_code_type', 'auto') == 'custom') {
|
58 |
+
if (isset($_POST['sq_fpixel'])) {
|
59 |
+
$allowed_html = array(
|
60 |
+
'script' => array(),
|
61 |
+
'noscript' => array(),
|
62 |
+
);
|
63 |
+
$sq->fpixel = wp_unslash(trim(wp_kses($_POST['sq_fpixel'], $allowed_html)));
|
64 |
+
}
|
65 |
+
}else{
|
66 |
+
$sq->fpixel = '';
|
67 |
}
|
68 |
|
|
|
69 |
//Prevent broken url in canonical link
|
70 |
if (strpos($sq->canonical, '//') === false) {
|
71 |
$sq->canonical = '';
|
95 |
public function getCurrentSnippet($post_id, $term_id, $taxonomy, $post_type) {
|
96 |
|
97 |
if ($post_type == 'home') {
|
98 |
+
return $this->setHomePage();
|
99 |
} elseif ($post_type == 'profile') {
|
100 |
return $this->setAuthorPage($post_id);
|
101 |
} elseif ($post_id > 0) {
|
169 |
}
|
170 |
|
171 |
/**
|
172 |
+
* Set the home page or blog page in Shippet
|
|
|
173 |
* @return array|null|stdClass|WP_Post
|
174 |
*/
|
175 |
+
public function setHomePage() {
|
176 |
global $wp_query;
|
|
|
|
|
|
|
|
|
|
|
177 |
|
178 |
+
//If post id set in General Readings for Home Page
|
179 |
+
if ($post_id = get_option('page_on_front')) {
|
180 |
+
//Get the post for this post ID
|
181 |
+
$post = get_post((int)$post_id);
|
182 |
+
|
183 |
} else {
|
184 |
+
//create the home page domain if no post ID set in Settings > Readings
|
185 |
$post = SQ_Classes_ObjController::getDomain('SQ_Models_Domain_Post');
|
186 |
|
187 |
$wp_query->is_home = true;
|
190 |
$post->post_title = get_bloginfo('name');
|
191 |
$post->post_excerpt = get_bloginfo('description');
|
192 |
$post->url = home_url();
|
|
|
193 |
}
|
194 |
+
|
195 |
$post = SQ_Classes_ObjController::getClass('SQ_Models_Frontend')->setPost($post)->getPost();
|
196 |
+
|
197 |
return $post;
|
198 |
}
|
199 |
|
models/bulkseo/Metas.php
CHANGED
@@ -5,6 +5,8 @@ class SQ_Models_Bulkseo_Metas extends SQ_Models_Abstract_Assistant {
|
|
5 |
protected $_category = 'metas';
|
6 |
protected $_patterns;
|
7 |
|
|
|
|
|
8 |
protected $_title_maxlength = 75;
|
9 |
protected $_description_maxlength = 255;
|
10 |
protected $_keyword = false;
|
@@ -42,6 +44,9 @@ class SQ_Models_Bulkseo_Metas extends SQ_Models_Abstract_Assistant {
|
|
42 |
$this->_loadpatterns = false;
|
43 |
}
|
44 |
|
|
|
|
|
|
|
45 |
// if ($this->_loadpatterns && ($this->_post->sq_adm->title == '' || $this->_post->sq_adm->description == '')) {
|
46 |
// $this->_pattern = true;
|
47 |
// }
|
@@ -61,7 +66,7 @@ class SQ_Models_Bulkseo_Metas extends SQ_Models_Abstract_Assistant {
|
|
61 |
'title_length' => array(
|
62 |
'title' => sprintf(__("Title up to %s chars", _SQ_PLUGIN_NAME_), $this->_title_maxlength),
|
63 |
'value_title' => __('Current Title Length', _SQ_PLUGIN_NAME_) . ': ',
|
64 |
-
'value' =>
|
65 |
'description' => sprintf(__("Title has to be longer than %s chars and up to %s chars. %s You can change the title max length from %sSEO Settings > Automation%s.", _SQ_PLUGIN_NAME_), self::TITLE_MINLENGTH, $this->_title_maxlength, '<br /><br />', '<a href="' . SQ_Classes_Helpers_Tools::getAdminUrl('sq_seosettings', 'automation') . '">', '</a>'),
|
66 |
),
|
67 |
'keyword_title' => array(
|
@@ -79,7 +84,7 @@ class SQ_Models_Bulkseo_Metas extends SQ_Models_Abstract_Assistant {
|
|
79 |
'description_length' => array(
|
80 |
'title' => sprintf(__("Description up to %s chars", _SQ_PLUGIN_NAME_), $this->_description_maxlength),
|
81 |
'value_title' => __('Current Description Length', _SQ_PLUGIN_NAME_) . ': ',
|
82 |
-
'value' =>
|
83 |
'description' => sprintf(__("Description has to be longer than %s chars and up to %s chars. %s You can change the description max length from %sSEO Settings > Automation%s.", _SQ_PLUGIN_NAME_), self::DESCRIPTION_MINLENGTH, $this->_description_maxlength, '<br /><br />', '<a href="' . SQ_Classes_Helpers_Tools::getAdminUrl('sq_seosettings', 'automation') . '">', '</a>'),
|
84 |
),
|
85 |
'keyword_description' => array(
|
@@ -214,7 +219,7 @@ class SQ_Models_Bulkseo_Metas extends SQ_Models_Abstract_Assistant {
|
|
214 |
$task['pattern'] = true;
|
215 |
}
|
216 |
|
217 |
-
$task['completed'] = (
|
218 |
|
219 |
return $task;
|
220 |
|
@@ -328,7 +333,7 @@ class SQ_Models_Bulkseo_Metas extends SQ_Models_Abstract_Assistant {
|
|
328 |
$task['pattern'] = true;
|
329 |
}
|
330 |
|
331 |
-
$task['completed'] = (
|
332 |
|
333 |
return $task;
|
334 |
}
|
@@ -461,7 +466,7 @@ class SQ_Models_Bulkseo_Metas extends SQ_Models_Abstract_Assistant {
|
|
461 |
|
462 |
$words = mb_split('[^\x{0600}-\x{06FF}]', $string);
|
463 |
|
464 |
-
$count = count($words);
|
465 |
}
|
466 |
return $count;
|
467 |
}
|
5 |
protected $_category = 'metas';
|
6 |
protected $_patterns;
|
7 |
|
8 |
+
protected $_title_length;
|
9 |
+
protected $_description_length;
|
10 |
protected $_title_maxlength = 75;
|
11 |
protected $_description_maxlength = 255;
|
12 |
protected $_keyword = false;
|
44 |
$this->_loadpatterns = false;
|
45 |
}
|
46 |
|
47 |
+
|
48 |
+
$this->_title_length = strlen(utf8_decode($this->_post->sq->title));
|
49 |
+
$this->_description_length = strlen(utf8_decode($this->_post->sq->description));
|
50 |
// if ($this->_loadpatterns && ($this->_post->sq_adm->title == '' || $this->_post->sq_adm->description == '')) {
|
51 |
// $this->_pattern = true;
|
52 |
// }
|
66 |
'title_length' => array(
|
67 |
'title' => sprintf(__("Title up to %s chars", _SQ_PLUGIN_NAME_), $this->_title_maxlength),
|
68 |
'value_title' => __('Current Title Length', _SQ_PLUGIN_NAME_) . ': ',
|
69 |
+
'value' => $this->_title_length . ' ' . __('chars', _SQ_PLUGIN_NAME_),
|
70 |
'description' => sprintf(__("Title has to be longer than %s chars and up to %s chars. %s You can change the title max length from %sSEO Settings > Automation%s.", _SQ_PLUGIN_NAME_), self::TITLE_MINLENGTH, $this->_title_maxlength, '<br /><br />', '<a href="' . SQ_Classes_Helpers_Tools::getAdminUrl('sq_seosettings', 'automation') . '">', '</a>'),
|
71 |
),
|
72 |
'keyword_title' => array(
|
84 |
'description_length' => array(
|
85 |
'title' => sprintf(__("Description up to %s chars", _SQ_PLUGIN_NAME_), $this->_description_maxlength),
|
86 |
'value_title' => __('Current Description Length', _SQ_PLUGIN_NAME_) . ': ',
|
87 |
+
'value' => $this->_description_length . ' ' . __('chars', _SQ_PLUGIN_NAME_),
|
88 |
'description' => sprintf(__("Description has to be longer than %s chars and up to %s chars. %s You can change the description max length from %sSEO Settings > Automation%s.", _SQ_PLUGIN_NAME_), self::DESCRIPTION_MINLENGTH, $this->_description_maxlength, '<br /><br />', '<a href="' . SQ_Classes_Helpers_Tools::getAdminUrl('sq_seosettings', 'automation') . '">', '</a>'),
|
89 |
),
|
90 |
'keyword_description' => array(
|
219 |
$task['pattern'] = true;
|
220 |
}
|
221 |
|
222 |
+
$task['completed'] = ($this->_title_length > self::TITLE_MINLENGTH && $this->_title_length < ((int)$this->_title_maxlength + self::CHARS_ERROR));
|
223 |
|
224 |
return $task;
|
225 |
|
333 |
$task['pattern'] = true;
|
334 |
}
|
335 |
|
336 |
+
$task['completed'] = ($this->_description_length > self::DESCRIPTION_MINLENGTH && $this->_description_length < ((int)$this->_description_maxlength + self::CHARS_ERROR));
|
337 |
|
338 |
return $task;
|
339 |
}
|
466 |
|
467 |
$words = mb_split('[^\x{0600}-\x{06FF}]', $string);
|
468 |
|
469 |
+
$count = count((array)$words);
|
470 |
}
|
471 |
return $count;
|
472 |
}
|
models/bulkseo/Opengraph.php
CHANGED
@@ -69,7 +69,7 @@ class SQ_Models_Bulkseo_Opengraph extends SQ_Models_Abstract_Assistant {
|
|
69 |
),
|
70 |
'title_length' => array(
|
71 |
'title' => sprintf(__("OG title up to %s chars", _SQ_PLUGIN_NAME_), $this->_title_maxlength),
|
72 |
-
'value' => strlen($this->_og_title) . ' ' . __('chars', _SQ_PLUGIN_NAME_),
|
73 |
'description' => sprintf(__("Title has to be longer than %s chars and up to %s chars. %s You can change the title max length from %sSEO Settings > Automation%s.", _SQ_PLUGIN_NAME_), self::TITLE_MINLENGTH, $this->_title_maxlength, '<br /><br />', '<a href="' . SQ_Classes_Helpers_Tools::getAdminUrl('sq_seosettings', 'automation') . '">', '</a>'),
|
74 |
),
|
75 |
'description_empty' => array(
|
@@ -79,7 +79,7 @@ class SQ_Models_Bulkseo_Opengraph extends SQ_Models_Abstract_Assistant {
|
|
79 |
),
|
80 |
'description_length' => array(
|
81 |
'title' => sprintf(__("OG description up to %s chars", _SQ_PLUGIN_NAME_), $this->_description_maxlength),
|
82 |
-
'value' => strlen($this->_og_description) . ' ' . __('chars', _SQ_PLUGIN_NAME_),
|
83 |
'description' => sprintf(__("Description has to be longer than %s chars and up to %s chars. %s You can change the description max length from %sSEO Settings > Automation%s.", _SQ_PLUGIN_NAME_), self::DESCRIPTION_MINLENGTH, $this->_description_maxlength, '<br /><br />', '<a href="' . SQ_Classes_Helpers_Tools::getAdminUrl('sq_seosettings', 'automation') . '">', '</a>'),
|
84 |
),
|
85 |
'image' => array(
|
@@ -197,7 +197,7 @@ class SQ_Models_Bulkseo_Opengraph extends SQ_Models_Abstract_Assistant {
|
|
197 |
$task['pattern'] = true;
|
198 |
}
|
199 |
|
200 |
-
$task['completed'] = (strlen($this->_og_title) > self::TITLE_MINLENGTH && strlen($this->_og_title) < ((int)$this->_title_maxlength + self::CHARS_ERROR));
|
201 |
|
202 |
return $task;
|
203 |
}
|
@@ -265,7 +265,7 @@ class SQ_Models_Bulkseo_Opengraph extends SQ_Models_Abstract_Assistant {
|
|
265 |
$task['pattern'] = true;
|
266 |
}
|
267 |
|
268 |
-
$task['completed'] = (strlen($this->_og_description) > self::DESCRIPTION_MINLENGTH && strlen($this->_og_description) < ((int)$this->_description_maxlength + self::CHARS_ERROR));
|
269 |
|
270 |
return $task;
|
271 |
}
|
69 |
),
|
70 |
'title_length' => array(
|
71 |
'title' => sprintf(__("OG title up to %s chars", _SQ_PLUGIN_NAME_), $this->_title_maxlength),
|
72 |
+
'value' => strlen(utf8_decode($this->_og_title)) . ' ' . __('chars', _SQ_PLUGIN_NAME_),
|
73 |
'description' => sprintf(__("Title has to be longer than %s chars and up to %s chars. %s You can change the title max length from %sSEO Settings > Automation%s.", _SQ_PLUGIN_NAME_), self::TITLE_MINLENGTH, $this->_title_maxlength, '<br /><br />', '<a href="' . SQ_Classes_Helpers_Tools::getAdminUrl('sq_seosettings', 'automation') . '">', '</a>'),
|
74 |
),
|
75 |
'description_empty' => array(
|
79 |
),
|
80 |
'description_length' => array(
|
81 |
'title' => sprintf(__("OG description up to %s chars", _SQ_PLUGIN_NAME_), $this->_description_maxlength),
|
82 |
+
'value' => strlen(utf8_decode($this->_og_description)) . ' ' . __('chars', _SQ_PLUGIN_NAME_),
|
83 |
'description' => sprintf(__("Description has to be longer than %s chars and up to %s chars. %s You can change the description max length from %sSEO Settings > Automation%s.", _SQ_PLUGIN_NAME_), self::DESCRIPTION_MINLENGTH, $this->_description_maxlength, '<br /><br />', '<a href="' . SQ_Classes_Helpers_Tools::getAdminUrl('sq_seosettings', 'automation') . '">', '</a>'),
|
84 |
),
|
85 |
'image' => array(
|
197 |
$task['pattern'] = true;
|
198 |
}
|
199 |
|
200 |
+
$task['completed'] = (strlen(utf8_decode($this->_og_title)) > self::TITLE_MINLENGTH && strlen(utf8_decode($this->_og_title)) < ((int)$this->_title_maxlength + self::CHARS_ERROR));
|
201 |
|
202 |
return $task;
|
203 |
}
|
265 |
$task['pattern'] = true;
|
266 |
}
|
267 |
|
268 |
+
$task['completed'] = (strlen(utf8_decode($this->_og_description)) > self::DESCRIPTION_MINLENGTH && strlen(utf8_decode($this->_og_description)) < ((int)$this->_description_maxlength + self::CHARS_ERROR));
|
269 |
|
270 |
return $task;
|
271 |
}
|
models/bulkseo/Twittercard.php
CHANGED
@@ -66,7 +66,7 @@ class SQ_Models_Bulkseo_Twittercard extends SQ_Models_Abstract_Assistant {
|
|
66 |
),
|
67 |
'title_length' => array(
|
68 |
'title' => sprintf(__("TC title up to %s chars", _SQ_PLUGIN_NAME_), $this->_title_maxlength),
|
69 |
-
'value' => strlen($this->_tw_title) . ' ' . __('chars', _SQ_PLUGIN_NAME_),
|
70 |
'description' => sprintf(__("Title has to be longer than %s chars and up to %s chars. %s You can change the title max length from %sSEO Settings > Automation%s.", _SQ_PLUGIN_NAME_), self::TITLE_MINLENGTH, $this->_title_maxlength, '<br /><br />', '<a href="' . SQ_Classes_Helpers_Tools::getAdminUrl('sq_seosettings', 'automation') . '">', '</a>'),
|
71 |
),
|
72 |
'description_empty' => array(
|
@@ -76,7 +76,7 @@ class SQ_Models_Bulkseo_Twittercard extends SQ_Models_Abstract_Assistant {
|
|
76 |
),
|
77 |
'description_length' => array(
|
78 |
'title' => sprintf(__("TC description up to %s chars", _SQ_PLUGIN_NAME_), $this->_description_maxlength),
|
79 |
-
'value' => strlen($this->_tw_description) . ' ' . __('chars', _SQ_PLUGIN_NAME_),
|
80 |
'description' => sprintf(__("Description has to be longer than %s chars and up to %s chars. %s You can change the description max length from %sSEO Settings > Automation%s.", _SQ_PLUGIN_NAME_), self::DESCRIPTION_MINLENGTH, $this->_description_maxlength, '<br /><br />', '<a href="' . SQ_Classes_Helpers_Tools::getAdminUrl('sq_seosettings', 'automation') . '">', '</a>'),
|
81 |
),
|
82 |
'image' => array(
|
@@ -194,7 +194,7 @@ class SQ_Models_Bulkseo_Twittercard extends SQ_Models_Abstract_Assistant {
|
|
194 |
$task['pattern'] = true;
|
195 |
}
|
196 |
|
197 |
-
$task['completed'] = (strlen($this->_tw_title) > self::TITLE_MINLENGTH && strlen($this->_tw_title) < ((int)$this->_title_maxlength + self::CHARS_ERROR));
|
198 |
|
199 |
return $task;
|
200 |
}
|
@@ -262,7 +262,7 @@ class SQ_Models_Bulkseo_Twittercard extends SQ_Models_Abstract_Assistant {
|
|
262 |
$task['pattern'] = true;
|
263 |
}
|
264 |
|
265 |
-
$task['completed'] = (strlen($this->_tw_description) > self::DESCRIPTION_MINLENGTH && strlen($this->_tw_description) < ((int)$this->_description_maxlength + self::CHARS_ERROR));
|
266 |
|
267 |
return $task;
|
268 |
}
|
66 |
),
|
67 |
'title_length' => array(
|
68 |
'title' => sprintf(__("TC title up to %s chars", _SQ_PLUGIN_NAME_), $this->_title_maxlength),
|
69 |
+
'value' => strlen(utf8_decode($this->_tw_title)) . ' ' . __('chars', _SQ_PLUGIN_NAME_),
|
70 |
'description' => sprintf(__("Title has to be longer than %s chars and up to %s chars. %s You can change the title max length from %sSEO Settings > Automation%s.", _SQ_PLUGIN_NAME_), self::TITLE_MINLENGTH, $this->_title_maxlength, '<br /><br />', '<a href="' . SQ_Classes_Helpers_Tools::getAdminUrl('sq_seosettings', 'automation') . '">', '</a>'),
|
71 |
),
|
72 |
'description_empty' => array(
|
76 |
),
|
77 |
'description_length' => array(
|
78 |
'title' => sprintf(__("TC description up to %s chars", _SQ_PLUGIN_NAME_), $this->_description_maxlength),
|
79 |
+
'value' => strlen(utf8_decode($this->_tw_description)) . ' ' . __('chars', _SQ_PLUGIN_NAME_),
|
80 |
'description' => sprintf(__("Description has to be longer than %s chars and up to %s chars. %s You can change the description max length from %sSEO Settings > Automation%s.", _SQ_PLUGIN_NAME_), self::DESCRIPTION_MINLENGTH, $this->_description_maxlength, '<br /><br />', '<a href="' . SQ_Classes_Helpers_Tools::getAdminUrl('sq_seosettings', 'automation') . '">', '</a>'),
|
81 |
),
|
82 |
'image' => array(
|
194 |
$task['pattern'] = true;
|
195 |
}
|
196 |
|
197 |
+
$task['completed'] = (strlen(utf8_decode($this->_tw_title)) > self::TITLE_MINLENGTH && strlen(utf8_decode($this->_tw_title)) < ((int)$this->_title_maxlength + self::CHARS_ERROR));
|
198 |
|
199 |
return $task;
|
200 |
}
|
262 |
$task['pattern'] = true;
|
263 |
}
|
264 |
|
265 |
+
$task['completed'] = (strlen(utf8_decode($this->_tw_description)) > self::DESCRIPTION_MINLENGTH && strlen(utf8_decode($this->_tw_description)) < ((int)$this->_description_maxlength + self::CHARS_ERROR));
|
266 |
|
267 |
return $task;
|
268 |
}
|
models/domain/FocusPage.php
CHANGED
@@ -12,6 +12,7 @@ class SQ_Models_Domain_FocusPage extends SQ_Models_Abstract_Domain {
|
|
12 |
protected $_visibility = 100;
|
13 |
//--
|
14 |
protected $_audit_datetime;
|
|
|
15 |
protected $_datetime;
|
16 |
|
17 |
protected $_wppost;
|
@@ -40,6 +41,14 @@ class SQ_Models_Domain_FocusPage extends SQ_Models_Abstract_Domain {
|
|
40 |
}
|
41 |
|
42 |
public function getVisibility() {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
43 |
if (isset($this->_visibility)) {
|
44 |
if ((int)$this->_visibility < 0) {
|
45 |
$this->_visibility = 0;
|
@@ -55,17 +64,22 @@ class SQ_Models_Domain_FocusPage extends SQ_Models_Abstract_Domain {
|
|
55 |
* @return SQ_Models_Domain_Post|false
|
56 |
*/
|
57 |
public function getWppost() {
|
58 |
-
if (!isset($this->_wppost)) {
|
59 |
if (isset($this->_post_id) && $this->_post_id > 0) {
|
60 |
if ($this->_wppost = SQ_Classes_ObjController::getClass('SQ_Models_Snippet')->setPostByID($this->_post_id)) {
|
61 |
$this->_wppost->sq_adm; //call the sq to populate
|
62 |
}
|
63 |
-
}
|
|
|
|
|
|
|
|
|
64 |
if ($this->_wppost = SQ_Classes_ObjController::getClass('SQ_Models_Snippet')->setPostByURL($this->_permalink)) {
|
65 |
$this->_wppost->sq_adm; //call the sq to populate
|
66 |
}
|
67 |
}
|
68 |
}
|
|
|
69 |
return $this->_wppost;
|
70 |
}
|
71 |
}
|
12 |
protected $_visibility = 100;
|
13 |
//--
|
14 |
protected $_audit_datetime;
|
15 |
+
protected $_audit_error;
|
16 |
protected $_datetime;
|
17 |
|
18 |
protected $_wppost;
|
41 |
}
|
42 |
|
43 |
public function getVisibility() {
|
44 |
+
//if the post is not public
|
45 |
+
if (isset($this->_wppost->ID)) {
|
46 |
+
if($this->_wppost->post_status <> 'publish'){
|
47 |
+
$this->_visibility = 0;
|
48 |
+
}
|
49 |
+
}
|
50 |
+
|
51 |
+
//if visibility is
|
52 |
if (isset($this->_visibility)) {
|
53 |
if ((int)$this->_visibility < 0) {
|
54 |
$this->_visibility = 0;
|
64 |
* @return SQ_Models_Domain_Post|false
|
65 |
*/
|
66 |
public function getWppost() {
|
67 |
+
if (!isset($this->_wppost->ID)) {
|
68 |
if (isset($this->_post_id) && $this->_post_id > 0) {
|
69 |
if ($this->_wppost = SQ_Classes_ObjController::getClass('SQ_Models_Snippet')->setPostByID($this->_post_id)) {
|
70 |
$this->_wppost->sq_adm; //call the sq to populate
|
71 |
}
|
72 |
+
}
|
73 |
+
}
|
74 |
+
|
75 |
+
if (!isset($this->_wppost->ID)) {
|
76 |
+
if (isset($this->_permalink) && $this->_permalink <> '') {
|
77 |
if ($this->_wppost = SQ_Classes_ObjController::getClass('SQ_Models_Snippet')->setPostByURL($this->_permalink)) {
|
78 |
$this->_wppost->sq_adm; //call the sq to populate
|
79 |
}
|
80 |
}
|
81 |
}
|
82 |
+
|
83 |
return $this->_wppost;
|
84 |
}
|
85 |
}
|
models/focuspages/Accuracy.php
CHANGED
@@ -30,18 +30,23 @@ class SQ_Models_Focuspages_Accuracy extends SQ_Models_Abstract_Assistant {
|
|
30 |
* @return string
|
31 |
*/
|
32 |
public function getHeader() {
|
|
|
|
|
|
|
|
|
|
|
33 |
if (!$this->_audit->sq_analytics_gsc_connected) {
|
34 |
-
|
35 |
-
<a href="' . SQ_Classes_RemoteController::getApiLink('gscoauth') . '" target="_blank" class="btn bg-primary text-white col-sm-10 offset-1 mt-
|
36 |
</li>';
|
37 |
}
|
38 |
if (!$this->_audit->sq_analytics_google_connected) {
|
39 |
-
|
40 |
-
<a href="' . SQ_Classes_RemoteController::getApiLink('gaoauth') . '" target="_blank" class="btn bg-primary text-white col-sm-10 offset-1 mt-
|
41 |
</li>';
|
42 |
}
|
43 |
|
44 |
-
return
|
45 |
}
|
46 |
|
47 |
/**
|
30 |
* @return string
|
31 |
*/
|
32 |
public function getHeader() {
|
33 |
+
$header = '<li class="completed">';
|
34 |
+
$header .= '<div class="font-weight-bold text-black-50 mb-1">' . __('Current URL', _SQ_PLUGIN_NAME_) . ': </div>';
|
35 |
+
$header .= '<a href="' . $this->_post->url . '" target="_blank" style="word-break: break-word;">' . $this->_post->url . '</a>';
|
36 |
+
$header .= '</li>';
|
37 |
+
|
38 |
if (!$this->_audit->sq_analytics_gsc_connected) {
|
39 |
+
$header .= '<li class="completed">
|
40 |
+
<a href="' . SQ_Classes_RemoteController::getApiLink('gscoauth') . '" target="_blank" class="btn bg-primary text-white col-sm-10 offset-1 mt-1">' . __('Connect Google Search', _SQ_PLUGIN_NAME_) . '</a>
|
41 |
</li>';
|
42 |
}
|
43 |
if (!$this->_audit->sq_analytics_google_connected) {
|
44 |
+
$header .= '<li class="completed">
|
45 |
+
<a href="' . SQ_Classes_RemoteController::getApiLink('gaoauth') . '" target="_blank" class="btn bg-primary text-white col-sm-10 offset-1 mt-1">' . __('Connect Google Analytics', _SQ_PLUGIN_NAME_) . '</a>
|
46 |
</li>';
|
47 |
}
|
48 |
|
49 |
+
return $header;
|
50 |
}
|
51 |
|
52 |
/**
|
models/focuspages/Audit.php
CHANGED
@@ -73,12 +73,17 @@ class SQ_Models_Focuspages_Audit extends SQ_Models_Abstract_Assistant {
|
|
73 |
* @return string
|
74 |
*/
|
75 |
public function getHeader() {
|
|
|
|
|
|
|
|
|
|
|
76 |
if ($this->_siteaudit && isset($this->_siteaudit->score)) {
|
77 |
-
$header
|
78 |
<a href="' . SQ_Classes_RemoteController::getMySquirrlyLink('audits') . '" target="_blank" class="btn bg-primary text-white col-sm-8 offset-2 mt-3">' . __('Go to Audit', _SQ_PLUGIN_NAME_) . '</a>
|
79 |
</li>';
|
80 |
} else {
|
81 |
-
$header
|
82 |
<div class="font-weight-bold text-warning text-center">' . __('Note! The audit is not ready yet', _SQ_PLUGIN_NAME_) . '</div>
|
83 |
<a href="' . SQ_Classes_Helpers_Tools::getAdminUrl('sq_audits') . '" target="_blank" class="btn bg-primary text-white col-sm-10 offset-1 mt-3">' . __('Request a new audit', _SQ_PLUGIN_NAME_) . '</a>
|
84 |
</li>';
|
73 |
* @return string
|
74 |
*/
|
75 |
public function getHeader() {
|
76 |
+
$header = '<li class="completed">';
|
77 |
+
$header .= '<div class="font-weight-bold text-black-50 mb-1">' . __('Current URL', _SQ_PLUGIN_NAME_) . ': </div>';
|
78 |
+
$header .= '<a href="' . $this->_post->url . '" target="_blank" style="word-break: break-word;">' . $this->_post->url . '</a>';
|
79 |
+
$header .= '</li>';
|
80 |
+
|
81 |
if ($this->_siteaudit && isset($this->_siteaudit->score)) {
|
82 |
+
$header .= '<li class="completed">
|
83 |
<a href="' . SQ_Classes_RemoteController::getMySquirrlyLink('audits') . '" target="_blank" class="btn bg-primary text-white col-sm-8 offset-2 mt-3">' . __('Go to Audit', _SQ_PLUGIN_NAME_) . '</a>
|
84 |
</li>';
|
85 |
} else {
|
86 |
+
$header .= '<li class="completed">
|
87 |
<div class="font-weight-bold text-warning text-center">' . __('Note! The audit is not ready yet', _SQ_PLUGIN_NAME_) . '</div>
|
88 |
<a href="' . SQ_Classes_Helpers_Tools::getAdminUrl('sq_audits') . '" target="_blank" class="btn bg-primary text-white col-sm-10 offset-1 mt-3">' . __('Request a new audit', _SQ_PLUGIN_NAME_) . '</a>
|
89 |
</li>';
|
models/focuspages/Authority.php
CHANGED
@@ -24,6 +24,20 @@ class SQ_Models_Focuspages_Authority extends SQ_Models_Abstract_Assistant {
|
|
24 |
|
25 |
}
|
26 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
27 |
public function setTasks($tasks) {
|
28 |
parent::setTasks($tasks);
|
29 |
|
24 |
|
25 |
}
|
26 |
|
27 |
+
/**
|
28 |
+
* Customize the tasks header
|
29 |
+
* @return string
|
30 |
+
*/
|
31 |
+
public function getHeader() {
|
32 |
+
$header = '<li class="completed">';
|
33 |
+
$header .= '<div class="font-weight-bold text-black-50 mb-1">' . __('Current URL', _SQ_PLUGIN_NAME_) . ': </div>';
|
34 |
+
$header .= '<a href="' . $this->_post->url . '" target="_blank" style="word-break: break-word;">' . $this->_post->url . '</a>';
|
35 |
+
$header .= '</li>';
|
36 |
+
|
37 |
+
return $header;
|
38 |
+
}
|
39 |
+
|
40 |
+
|
41 |
public function setTasks($tasks) {
|
42 |
parent::setTasks($tasks);
|
43 |
|
models/focuspages/Backlinks.php
CHANGED
@@ -37,6 +37,19 @@ class SQ_Models_Focuspages_Backlinks extends SQ_Models_Abstract_Assistant {
|
|
37 |
}
|
38 |
}
|
39 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
40 |
public function setTasks($tasks) {
|
41 |
parent::setTasks($tasks);
|
42 |
|
37 |
}
|
38 |
}
|
39 |
|
40 |
+
/**
|
41 |
+
* Customize the tasks header
|
42 |
+
* @return string
|
43 |
+
*/
|
44 |
+
public function getHeader() {
|
45 |
+
$header = '<li class="completed">';
|
46 |
+
$header .= '<div class="font-weight-bold text-black-50 mb-1">' . __('Current URL', _SQ_PLUGIN_NAME_) . ': </div>';
|
47 |
+
$header .= '<a href="' . $this->_post->url . '" target="_blank" style="word-break: break-word;">' . $this->_post->url . '</a>';
|
48 |
+
$header .= '</li>';
|
49 |
+
|
50 |
+
return $header;
|
51 |
+
}
|
52 |
+
|
53 |
public function setTasks($tasks) {
|
54 |
parent::setTasks($tasks);
|
55 |
|
models/focuspages/Clicks.php
CHANGED
@@ -53,6 +53,11 @@ class SQ_Models_Focuspages_Clicks extends SQ_Models_Abstract_Assistant {
|
|
53 |
*/
|
54 |
public function getHeader() {
|
55 |
$header = '<li class="completed">';
|
|
|
|
|
|
|
|
|
|
|
56 |
if (!$this->_audit->sq_analytics_gsc_connected) {
|
57 |
$header .= '<a href="' . SQ_Classes_RemoteController::getApiLink('gscoauth') . '" target="_blank" class="btn bg-primary text-white col-sm-10 offset-1 mt-3">' . __('Connect Google Search', _SQ_PLUGIN_NAME_) . '</a>';
|
58 |
} elseif ($this->_keyword) {
|
53 |
*/
|
54 |
public function getHeader() {
|
55 |
$header = '<li class="completed">';
|
56 |
+
$header .= '<div class="font-weight-bold text-black-50 mb-1">' . __('Current URL', _SQ_PLUGIN_NAME_) . ': </div>';
|
57 |
+
$header .= '<a href="' . $this->_post->url . '" target="_blank" style="word-break: break-word;">' . $this->_post->url . '</a>';
|
58 |
+
$header .= '</li>';
|
59 |
+
|
60 |
+
$header .= '<li class="completed">';
|
61 |
if (!$this->_audit->sq_analytics_gsc_connected) {
|
62 |
$header .= '<a href="' . SQ_Classes_RemoteController::getApiLink('gscoauth') . '" target="_blank" class="btn bg-primary text-white col-sm-10 offset-1 mt-3">' . __('Connect Google Search', _SQ_PLUGIN_NAME_) . '</a>';
|
63 |
} elseif ($this->_keyword) {
|
models/focuspages/Content.php
CHANGED
@@ -27,7 +27,7 @@ class SQ_Models_Focuspages_Content extends SQ_Models_Abstract_Assistant {
|
|
27 |
}
|
28 |
if (isset($this->_audit->data->sq_seo_briefcase) && !empty($this->_audit->data->sq_seo_briefcase)) {
|
29 |
foreach ($this->_audit->data->sq_seo_briefcase as $lsikeyword) {
|
30 |
-
if ($lsikeyword->keyword
|
31 |
$this->_optimization = $lsikeyword->optimized;
|
32 |
}
|
33 |
}
|
@@ -71,7 +71,11 @@ class SQ_Models_Focuspages_Content extends SQ_Models_Abstract_Assistant {
|
|
71 |
/*********************************************/
|
72 |
public function getHeader() {
|
73 |
$edit_link = '';
|
74 |
-
$header = '';
|
|
|
|
|
|
|
|
|
75 |
if (isset($this->_post->ID)) {
|
76 |
$edit_link = SQ_Classes_Helpers_Tools::getAdminUrl('post.php?post=' . (int)$this->_post->ID . '&action=edit');
|
77 |
if ($this->_post->post_type <> 'profile') {
|
27 |
}
|
28 |
if (isset($this->_audit->data->sq_seo_briefcase) && !empty($this->_audit->data->sq_seo_briefcase)) {
|
29 |
foreach ($this->_audit->data->sq_seo_briefcase as $lsikeyword) {
|
30 |
+
if (strcasecmp($lsikeyword->keyword, $this->_keyword) == 0) {
|
31 |
$this->_optimization = $lsikeyword->optimized;
|
32 |
}
|
33 |
}
|
71 |
/*********************************************/
|
72 |
public function getHeader() {
|
73 |
$edit_link = '';
|
74 |
+
$header = '<li class="completed">';
|
75 |
+
$header .= '<div class="font-weight-bold text-black-50 mb-1">' . __('Current URL', _SQ_PLUGIN_NAME_) . ': </div>';
|
76 |
+
$header .= '<a href="' . $this->_post->url . '" target="_blank" style="word-break: break-word;">' . $this->_post->url . '</a>';
|
77 |
+
$header .= '</li>';
|
78 |
+
|
79 |
if (isset($this->_post->ID)) {
|
80 |
$edit_link = SQ_Classes_Helpers_Tools::getAdminUrl('post.php?post=' . (int)$this->_post->ID . '&action=edit');
|
81 |
if ($this->_post->post_type <> 'profile') {
|
models/focuspages/Ctr.php
CHANGED
@@ -53,6 +53,11 @@ class SQ_Models_Focuspages_Ctr extends SQ_Models_Abstract_Assistant {
|
|
53 |
*/
|
54 |
public function getHeader() {
|
55 |
$header = '<li class="completed">';
|
|
|
|
|
|
|
|
|
|
|
56 |
if (!$this->_audit->sq_analytics_gsc_connected) {
|
57 |
$header .= '<a href="' . SQ_Classes_RemoteController::getApiLink('gscoauth') . '" target="_blank" class="btn bg-primary text-white col-sm-10 offset-1 mt-3">' . __('Connect Google Search', _SQ_PLUGIN_NAME_) . '</a>';
|
58 |
} elseif ($this->_keyword) {
|
53 |
*/
|
54 |
public function getHeader() {
|
55 |
$header = '<li class="completed">';
|
56 |
+
$header .= '<div class="font-weight-bold text-black-50 mb-1">' . __('Current URL', _SQ_PLUGIN_NAME_) . ': </div>';
|
57 |
+
$header .= '<a href="' . $this->_post->url . '" target="_blank" style="word-break: break-word;">' . $this->_post->url . '</a>';
|
58 |
+
$header .= '</li>';
|
59 |
+
|
60 |
+
$header .= '<li class="completed">';
|
61 |
if (!$this->_audit->sq_analytics_gsc_connected) {
|
62 |
$header .= '<a href="' . SQ_Classes_RemoteController::getApiLink('gscoauth') . '" target="_blank" class="btn bg-primary text-white col-sm-10 offset-1 mt-3">' . __('Connect Google Search', _SQ_PLUGIN_NAME_) . '</a>';
|
63 |
} elseif ($this->_keyword) {
|
models/focuspages/Image.php
CHANGED
@@ -66,8 +66,12 @@ class SQ_Models_Focuspages_Image extends SQ_Models_Abstract_Assistant {
|
|
66 |
*/
|
67 |
public function getHeader() {
|
68 |
$edit_link = '';
|
69 |
-
|
70 |
$header = '<li class="completed">';
|
|
|
|
|
|
|
|
|
|
|
71 |
if ($this->_keyword) {
|
72 |
$header .= '<div class="font-weight-bold text-black-50 mb-2 text-center">' . __('Keyword', _SQ_PLUGIN_NAME_) . ': ' . $this->_keyword . '</div>';
|
73 |
if (isset($this->_post->ID)) {
|
66 |
*/
|
67 |
public function getHeader() {
|
68 |
$edit_link = '';
|
|
|
69 |
$header = '<li class="completed">';
|
70 |
+
$header .= '<div class="font-weight-bold text-black-50 mb-1">' . __('Current URL', _SQ_PLUGIN_NAME_) . ': </div>';
|
71 |
+
$header .= '<a href="' . $this->_post->url . '" target="_blank" style="word-break: break-word;">' . $this->_post->url . '</a>';
|
72 |
+
$header .= '</li>';
|
73 |
+
|
74 |
+
$header .= '<li class="completed">';
|
75 |
if ($this->_keyword) {
|
76 |
$header .= '<div class="font-weight-bold text-black-50 mb-2 text-center">' . __('Keyword', _SQ_PLUGIN_NAME_) . ': ' . $this->_keyword . '</div>';
|
77 |
if (isset($this->_post->ID)) {
|
models/focuspages/Impressions.php
CHANGED
@@ -53,6 +53,11 @@ class SQ_Models_Focuspages_Impressions extends SQ_Models_Abstract_Assistant {
|
|
53 |
*/
|
54 |
public function getHeader() {
|
55 |
$header = '<li class="completed">';
|
|
|
|
|
|
|
|
|
|
|
56 |
if (!$this->_audit->sq_analytics_gsc_connected) {
|
57 |
$header .= '<a href="' . SQ_Classes_RemoteController::getApiLink('gscoauth') . '" target="_blank" class="btn bg-primary text-white col-sm-10 offset-1 mt-3">' . __('Connect Google Search', _SQ_PLUGIN_NAME_) . '</a>';
|
58 |
} elseif ($this->_keyword) {
|
53 |
*/
|
54 |
public function getHeader() {
|
55 |
$header = '<li class="completed">';
|
56 |
+
$header .= '<div class="font-weight-bold text-black-50 mb-1">' . __('Current URL', _SQ_PLUGIN_NAME_) . ': </div>';
|
57 |
+
$header .= '<a href="' . $this->_post->url . '" target="_blank" style="word-break: break-word;">' . $this->_post->url . '</a>';
|
58 |
+
$header .= '</li>';
|
59 |
+
|
60 |
+
$header .= '<li class="completed">';
|
61 |
if (!$this->_audit->sq_analytics_gsc_connected) {
|
62 |
$header .= '<a href="' . SQ_Classes_RemoteController::getApiLink('gscoauth') . '" target="_blank" class="btn bg-primary text-white col-sm-10 offset-1 mt-3">' . __('Connect Google Search', _SQ_PLUGIN_NAME_) . '</a>';
|
63 |
} elseif ($this->_keyword) {
|
models/focuspages/Indexability.php
CHANGED
@@ -46,13 +46,13 @@ class SQ_Models_Focuspages_Indexability extends SQ_Models_Abstract_Assistant {
|
|
46 |
'noindex' => array(
|
47 |
'title' => __("Yes, do index", _SQ_PLUGIN_NAME_),
|
48 |
'penalty' => 100,
|
49 |
-
'value' => $this->_robots,
|
50 |
'description' => sprintf(__("To turn this task to green, go and look at all the places where you could have added instructions for Google not to index this page from your site. %s Make sure that there is no such instruction added to WordPress -> Settings, or in a theme, or in a plugin, or in Squirrly SEO's Snippet for this page. Also, make sure you don't block this page in your robots.txt file. %s Sometimes, you will want certain pages from your site not to be indexed. Now is not the case, however. %s If this task turns green, then it means that you did not specify to Google that it should NOT index the page. %s Therefore, you allow Google to index the page. %s Since this is a Focus Page, you must allow Google to index it, in order for it to appear in search result pages.", _SQ_PLUGIN_NAME_), '<br /><br />', '<br /><br />', '<br /><br />', '<br /><br />', '<br /><br />'),
|
51 |
),
|
52 |
'nofollow' => array(
|
53 |
'title' => __("Yes, do follow", _SQ_PLUGIN_NAME_),
|
54 |
'penalty' => 20,
|
55 |
-
'value' => $this->_robots,
|
56 |
'description' => sprintf(__("To turn this task to green, make sure that you do NOT have a no-follow attribute for this Focus Page. %s This task gets verified from multiple sources. %s However, if you want to be 100%% certain in the future that everything is perfect, use just Squirrly SEO, because it will ease both your setup and the system check. %s With Squirrly SEO, you could easily check this setting in the Snippet section. %s Many themes and plugins could interfere with settings.", _SQ_PLUGIN_NAME_), '<br /><br />', '<br /><br />', '<br /><br />', '<br /><br />'),
|
57 |
),
|
58 |
'sitemap' => array(
|
@@ -65,7 +65,7 @@ class SQ_Models_Focuspages_Indexability extends SQ_Models_Abstract_Assistant {
|
|
65 |
),
|
66 |
'canonical' => array(
|
67 |
'title' => __("Canonical link", _SQ_PLUGIN_NAME_),
|
68 |
-
'value' => ($this->_canonical ? $this->_canonical : $this->_permalink),
|
69 |
'penalty' => 20,
|
70 |
'description' => sprintf(__("This page should have a canonical link to itself, indicating that it is indeed the original content. %s You can not have pages with canonical links to other sites and pages, because you could not rank for them. Why? Because a canonical link to another URL would mean that the other URL is the one worth indexing. (the original one) %s To turn this task to green, go and make sure that this page does not have a canonical link attribute pointing to another page. %s You can easily control this is in the future by using the Snippet feature of Squirrly SEO.", _SQ_PLUGIN_NAME_), '<br /><br />', '<br /><br />', '<br /><br />'),
|
71 |
),
|
@@ -80,16 +80,23 @@ class SQ_Models_Focuspages_Indexability extends SQ_Models_Abstract_Assistant {
|
|
80 |
/*********************************************/
|
81 |
public function getHeader() {
|
82 |
SQ_Debug::dump($this->_post);
|
|
|
|
|
|
|
|
|
|
|
83 |
if (!$this->_audit->sq_analytics_gsc_connected && !$this->_audit->sq_analytics_google_connected) {
|
84 |
-
|
85 |
<a href="' . SQ_Classes_RemoteController::getApiLink('gscoauth') . '" target="_blank" class="btn bg-primary text-white col-sm-10 offset-1 mt-3">' . __('Connect Google Search', _SQ_PLUGIN_NAME_) . '</a>
|
86 |
</li>';
|
87 |
} else {
|
88 |
-
|
89 |
<input type="hidden" id="sq_indexability_completed" value="1"/>
|
90 |
-
<button type="button" class="btn bg-primary text-white col-sm-10 offset-1 mt-
|
91 |
</li>';
|
92 |
}
|
|
|
|
|
93 |
}
|
94 |
|
95 |
/*
|
@@ -131,6 +138,7 @@ class SQ_Models_Focuspages_Indexability extends SQ_Models_Abstract_Assistant {
|
|
131 |
return $task;
|
132 |
}
|
133 |
|
|
|
134 |
return $task;
|
135 |
}
|
136 |
|
@@ -139,7 +147,12 @@ class SQ_Models_Focuspages_Indexability extends SQ_Models_Abstract_Assistant {
|
|
139 |
* @return bool|WP_Error
|
140 |
*/
|
141 |
public function checkCanonical($task) {
|
142 |
-
|
|
|
|
|
|
|
|
|
|
|
143 |
return $task;
|
144 |
}
|
145 |
|
46 |
'noindex' => array(
|
47 |
'title' => __("Yes, do index", _SQ_PLUGIN_NAME_),
|
48 |
'penalty' => 100,
|
49 |
+
'value' => ($this->_robots ? $this->_robots : __("no restrictions", _SQ_PLUGIN_NAME_)),
|
50 |
'description' => sprintf(__("To turn this task to green, go and look at all the places where you could have added instructions for Google not to index this page from your site. %s Make sure that there is no such instruction added to WordPress -> Settings, or in a theme, or in a plugin, or in Squirrly SEO's Snippet for this page. Also, make sure you don't block this page in your robots.txt file. %s Sometimes, you will want certain pages from your site not to be indexed. Now is not the case, however. %s If this task turns green, then it means that you did not specify to Google that it should NOT index the page. %s Therefore, you allow Google to index the page. %s Since this is a Focus Page, you must allow Google to index it, in order for it to appear in search result pages.", _SQ_PLUGIN_NAME_), '<br /><br />', '<br /><br />', '<br /><br />', '<br /><br />', '<br /><br />'),
|
51 |
),
|
52 |
'nofollow' => array(
|
53 |
'title' => __("Yes, do follow", _SQ_PLUGIN_NAME_),
|
54 |
'penalty' => 20,
|
55 |
+
'value' => ($this->_robots ? $this->_robots : __("no restrictions", _SQ_PLUGIN_NAME_)),
|
56 |
'description' => sprintf(__("To turn this task to green, make sure that you do NOT have a no-follow attribute for this Focus Page. %s This task gets verified from multiple sources. %s However, if you want to be 100%% certain in the future that everything is perfect, use just Squirrly SEO, because it will ease both your setup and the system check. %s With Squirrly SEO, you could easily check this setting in the Snippet section. %s Many themes and plugins could interfere with settings.", _SQ_PLUGIN_NAME_), '<br /><br />', '<br /><br />', '<br /><br />', '<br /><br />'),
|
57 |
),
|
58 |
'sitemap' => array(
|
65 |
),
|
66 |
'canonical' => array(
|
67 |
'title' => __("Canonical link", _SQ_PLUGIN_NAME_),
|
68 |
+
'value' => '<br />' . __("Canonical", _SQ_PLUGIN_NAME_) . ': ' . ($this->_canonical && $this->_canonical <> '' ? $this->_canonical : __("No Canonical", _SQ_PLUGIN_NAME_)) . '<br />' . __("Post URL", _SQ_PLUGIN_NAME_) . ': ' . ($this->_permalink && $this->_permalink <> '' ? $this->_permalink : __("No URL", _SQ_PLUGIN_NAME_)),
|
69 |
'penalty' => 20,
|
70 |
'description' => sprintf(__("This page should have a canonical link to itself, indicating that it is indeed the original content. %s You can not have pages with canonical links to other sites and pages, because you could not rank for them. Why? Because a canonical link to another URL would mean that the other URL is the one worth indexing. (the original one) %s To turn this task to green, go and make sure that this page does not have a canonical link attribute pointing to another page. %s You can easily control this is in the future by using the Snippet feature of Squirrly SEO.", _SQ_PLUGIN_NAME_), '<br /><br />', '<br /><br />', '<br /><br />'),
|
71 |
),
|
80 |
/*********************************************/
|
81 |
public function getHeader() {
|
82 |
SQ_Debug::dump($this->_post);
|
83 |
+
$header = '<li class="completed">';
|
84 |
+
$header .= '<div class="font-weight-bold text-black-50 mb-1">' . __('Current URL', _SQ_PLUGIN_NAME_) . ': </div>';
|
85 |
+
$header .= '<a href="' . $this->_post->url . '" target="_blank" style="word-break: break-word;">' . $this->_post->url . '</a>';
|
86 |
+
$header .= '</li>';
|
87 |
+
|
88 |
if (!$this->_audit->sq_analytics_gsc_connected && !$this->_audit->sq_analytics_google_connected) {
|
89 |
+
$header .= '<li class="completed">
|
90 |
<a href="' . SQ_Classes_RemoteController::getApiLink('gscoauth') . '" target="_blank" class="btn bg-primary text-white col-sm-10 offset-1 mt-3">' . __('Connect Google Search', _SQ_PLUGIN_NAME_) . '</a>
|
91 |
</li>';
|
92 |
} else {
|
93 |
+
$header .= '<li class="completed sq_save_ajax">
|
94 |
<input type="hidden" id="sq_indexability_completed" value="1"/>
|
95 |
+
<button type="button" class="btn bg-primary text-white col-sm-10 offset-1 mt-1" data-redirect="https://search.google.com/search-console/inspect" data-input="sq_indexability_completed" data-action="sq_ajax_assistant" data-name="indexability|gscindex|' . $this->_post->ID . '" >' . __('Ask Google to Re-Index', _SQ_PLUGIN_NAME_) . '</button>
|
96 |
</li>';
|
97 |
}
|
98 |
+
|
99 |
+
return $header;
|
100 |
}
|
101 |
|
102 |
/*
|
138 |
return $task;
|
139 |
}
|
140 |
|
141 |
+
$task['completed'] = false;
|
142 |
return $task;
|
143 |
}
|
144 |
|
147 |
* @return bool|WP_Error
|
148 |
*/
|
149 |
public function checkCanonical($task) {
|
150 |
+
if ($this->_canonical && $this->_permalink) {
|
151 |
+
$task['completed'] = strcasecmp(rtrim($this->_canonical, '/'), rtrim($this->_permalink, '/') == 0);
|
152 |
+
return $task;
|
153 |
+
}
|
154 |
+
|
155 |
+
$task['error'] = true;
|
156 |
return $task;
|
157 |
}
|
158 |
|
models/focuspages/Innerlinks.php
CHANGED
@@ -20,6 +20,8 @@ class SQ_Models_Focuspages_Innerlinks extends SQ_Models_Abstract_Assistant {
|
|
20 |
}
|
21 |
|
22 |
$this->_permalink = (isset($this->_post->url) && $this->_post->url <> '' ? $this->_post->url : $this->_audit->permalink);
|
|
|
|
|
23 |
|
24 |
if ($this->_permalink <> '') {
|
25 |
global $wpdb;
|
@@ -27,7 +29,7 @@ class SQ_Models_Focuspages_Innerlinks extends SQ_Models_Abstract_Assistant {
|
|
27 |
if ($row = $wpdb->get_row("SELECT COUNT(`ID`) as count FROM " . $wpdb->posts . " WHERE `post_status` = 'publish'")) {
|
28 |
$this->_total_posts = $row->count;
|
29 |
}
|
30 |
-
if ($row = $wpdb->get_row("SELECT COUNT(`ID`) as count FROM " . $wpdb->posts . " WHERE `post_content` LIKE '%" . $
|
31 |
$this->_inner_links = $row->count;
|
32 |
}
|
33 |
|
@@ -42,11 +44,13 @@ class SQ_Models_Focuspages_Innerlinks extends SQ_Models_Abstract_Assistant {
|
|
42 |
|
43 |
public function setTasks($tasks) {
|
44 |
parent::setTasks($tasks);
|
|
|
|
|
45 |
|
46 |
$this->_tasks[$this->_category] = array(
|
47 |
'innerlinks' => array(
|
48 |
'title' => sprintf(__("Get %s inner links", _SQ_PLUGIN_NAME_), self::INNERS_MINVAL),
|
49 |
-
'value' => (int)$this->_inner_links. ' ' . __('inner links', _SQ_PLUGIN_NAME_),
|
50 |
'penalty' => 5,
|
51 |
'description' => sprintf(__("Get %s Inner Links %s Recommended is: %s %s Inner Links are links that you send from one URL of your site to another URL of your site. %s Since your Focus Pages are the most important pages in your site, you should make sure that you link to them from many pages of your website. %s Follow the best practices for this. (highlighted in the Best Practices section)", _SQ_PLUGIN_NAME_), self::INNERS_MINVAL, '<br /><br />', self::INNERS_RECOMMENDED, '<br /><br />', '<br /><br />', '<br /><br />'),
|
52 |
),
|
@@ -55,14 +59,17 @@ class SQ_Models_Focuspages_Innerlinks extends SQ_Models_Abstract_Assistant {
|
|
55 |
|
56 |
/*********************************************/
|
57 |
public function getHeader() {
|
58 |
-
$header = '';
|
|
|
|
|
|
|
|
|
59 |
if (isset($this->_post->ID)) {
|
60 |
$edit_link = SQ_Classes_Helpers_Tools::getAdminUrl('post.php?post=' . (int)$this->_post->ID . '&action=edit');
|
61 |
if ($this->_post->post_type <> 'profile') {
|
62 |
$edit_link = get_edit_post_link($this->_post->ID, false);
|
63 |
}
|
64 |
|
65 |
-
$header = '';
|
66 |
$header .= '<li class="completed">';
|
67 |
$header .= '<a href="' . $edit_link . '" target="_blank" class="btn bg-primary text-white col-sm-10 offset-1 mt-3">' . __('Build with Blogging Assistant', _SQ_PLUGIN_NAME_) . '</a>';
|
68 |
$header .= '</li>';
|
@@ -75,8 +82,10 @@ class SQ_Models_Focuspages_Innerlinks extends SQ_Models_Abstract_Assistant {
|
|
75 |
* @return bool|WP_Error
|
76 |
*/
|
77 |
public function checkInnerlinks($task) {
|
78 |
-
|
79 |
-
|
|
|
|
|
80 |
|
81 |
$task['error'] = true;
|
82 |
return $task;
|
20 |
}
|
21 |
|
22 |
$this->_permalink = (isset($this->_post->url) && $this->_post->url <> '' ? $this->_post->url : $this->_audit->permalink);
|
23 |
+
$path = parse_url($this->_permalink, PHP_URL_PATH);
|
24 |
+
if($path == '') $path = $this->_permalink;
|
25 |
|
26 |
if ($this->_permalink <> '') {
|
27 |
global $wpdb;
|
29 |
if ($row = $wpdb->get_row("SELECT COUNT(`ID`) as count FROM " . $wpdb->posts . " WHERE `post_status` = 'publish'")) {
|
30 |
$this->_total_posts = $row->count;
|
31 |
}
|
32 |
+
if ($row = $wpdb->get_row("SELECT COUNT(`ID`) as count FROM " . $wpdb->posts . " WHERE `post_content` LIKE '%" . $path . "%' AND `post_status` = 'publish'")) {
|
33 |
$this->_inner_links = $row->count;
|
34 |
}
|
35 |
|
44 |
|
45 |
public function setTasks($tasks) {
|
46 |
parent::setTasks($tasks);
|
47 |
+
$path = parse_url($this->_permalink, PHP_URL_PATH);
|
48 |
+
if($path == '') $path = $this->_permalink;
|
49 |
|
50 |
$this->_tasks[$this->_category] = array(
|
51 |
'innerlinks' => array(
|
52 |
'title' => sprintf(__("Get %s inner links", _SQ_PLUGIN_NAME_), self::INNERS_MINVAL),
|
53 |
+
'value' => (int)$this->_inner_links . ' ' . __('inner links', _SQ_PLUGIN_NAME_) . ' ' .__('to', _SQ_PLUGIN_NAME_) . ': ' . $path,
|
54 |
'penalty' => 5,
|
55 |
'description' => sprintf(__("Get %s Inner Links %s Recommended is: %s %s Inner Links are links that you send from one URL of your site to another URL of your site. %s Since your Focus Pages are the most important pages in your site, you should make sure that you link to them from many pages of your website. %s Follow the best practices for this. (highlighted in the Best Practices section)", _SQ_PLUGIN_NAME_), self::INNERS_MINVAL, '<br /><br />', self::INNERS_RECOMMENDED, '<br /><br />', '<br /><br />', '<br /><br />'),
|
56 |
),
|
59 |
|
60 |
/*********************************************/
|
61 |
public function getHeader() {
|
62 |
+
$header = '<li class="completed">';
|
63 |
+
$header .= '<div class="font-weight-bold text-black-50 mb-1">' . __('Current URL', _SQ_PLUGIN_NAME_) . ': </div>';
|
64 |
+
$header .= '<a href="' . $this->_post->url . '" target="_blank" style="word-break: break-word;">' . $this->_post->url . '</a>';
|
65 |
+
$header .= '</li>';
|
66 |
+
|
67 |
if (isset($this->_post->ID)) {
|
68 |
$edit_link = SQ_Classes_Helpers_Tools::getAdminUrl('post.php?post=' . (int)$this->_post->ID . '&action=edit');
|
69 |
if ($this->_post->post_type <> 'profile') {
|
70 |
$edit_link = get_edit_post_link($this->_post->ID, false);
|
71 |
}
|
72 |
|
|
|
73 |
$header .= '<li class="completed">';
|
74 |
$header .= '<a href="' . $edit_link . '" target="_blank" class="btn bg-primary text-white col-sm-10 offset-1 mt-3">' . __('Build with Blogging Assistant', _SQ_PLUGIN_NAME_) . '</a>';
|
75 |
$header .= '</li>';
|
82 |
* @return bool|WP_Error
|
83 |
*/
|
84 |
public function checkInnerlinks($task) {
|
85 |
+
if($this->_permalink <> '') {
|
86 |
+
$task['completed'] = ((int)$this->_inner_links && (int)$this->_inner_links >= self::INNERS_MINVAL);
|
87 |
+
return $task;
|
88 |
+
}
|
89 |
|
90 |
$task['error'] = true;
|
91 |
return $task;
|
models/focuspages/Keyword.php
CHANGED
@@ -45,18 +45,18 @@ class SQ_Models_Focuspages_Keyword extends SQ_Models_Abstract_Assistant {
|
|
45 |
|
46 |
$this->_tasks[$this->_category] = array(
|
47 |
'competition' => array(
|
48 |
-
'title' => __("Competition
|
49 |
'value' => ($this->_competition ? $this->_competition->text : false),
|
50 |
'penalty' => 15,
|
51 |
'description' => sprintf(__('To complete this task you must make sure that the main keyword you\'re optimizing this Focus Page for has low competition. %s The Squirrly SEO software suite uses our proprietary Market Intelligence feature to determine the chance that your site has of outranking the current TOP 10 of Google for the desired keyword you\'re targeting. %s If you really want to have a clear shot at ranking, make sure the competition is low for the keyword you choose.', _SQ_PLUGIN_NAME_), '<br /><br />', '<br /><br />'),
|
52 |
),
|
53 |
'impressions' => array(
|
54 |
-
'title' => __("Search volume
|
55 |
'value' => ($this->_volume ? $this->_volume->absolute : false),
|
56 |
'description' => sprintf(__("To turn this task to green, go and find a keyword that has a good search volume. (meaning that many people search on Google for this keyword every single month). %s The Research features from Squirrly SEO will indicate if the volume is big enough. %s Since these are the most important pages on your website, you need to make sure that you get the maximum number of people possible to find this page. %s If you target keyword searches with low volumes, then you'll end up having just 2 or 3 people every month visiting this page. And then all the effort will have been for nothing.", _SQ_PLUGIN_NAME_), '<br /><br />', '<br /><br />', '<br /><br />', '<br /><br />'),
|
57 |
),
|
58 |
'trend' => array(
|
59 |
-
'title' => __("Trend
|
60 |
'value' => ($this->_trend ? $this->_trend->text : false),
|
61 |
'description' => sprintf(__("Trend levels required to get the Green Check on this task: %s - Steady %s - Going Up %s - Sky-rocketing %s we take the trend from the previous 3 months. %s If you target a search query with a bad trend you'll end up seeing little traffic to this page in the long run. %s Why ? A declining trend shows that Google Users are losing interest in that topic or keyword and will continue to do so in the future. %s Therefore, even though you could get much traffic right now after you rank this page, in the near future you'll get very little traffic even if you'd end up on Position 1 in Google Search.", _SQ_PLUGIN_NAME_), '<br />', '<br />', '<br />', '<br /><br />', '<br /><br />', '<br /><br />', '<br /><br />'),
|
62 |
),
|
@@ -74,6 +74,11 @@ class SQ_Models_Focuspages_Keyword extends SQ_Models_Abstract_Assistant {
|
|
74 |
*/
|
75 |
public function getHeader() {
|
76 |
$header = '<li class="completed">';
|
|
|
|
|
|
|
|
|
|
|
77 |
if ($this->_keyword) {
|
78 |
if ($this->_competition && $this->_trend) {
|
79 |
$header .= '<div class="font-weight-bold text-black-50 mb-2 text-center">' . __('Keyword', _SQ_PLUGIN_NAME_) . ': ' . $this->_keyword . '</div>';
|
45 |
|
46 |
$this->_tasks[$this->_category] = array(
|
47 |
'competition' => array(
|
48 |
+
'title' => __("Keyword Competition", _SQ_PLUGIN_NAME_),
|
49 |
'value' => ($this->_competition ? $this->_competition->text : false),
|
50 |
'penalty' => 15,
|
51 |
'description' => sprintf(__('To complete this task you must make sure that the main keyword you\'re optimizing this Focus Page for has low competition. %s The Squirrly SEO software suite uses our proprietary Market Intelligence feature to determine the chance that your site has of outranking the current TOP 10 of Google for the desired keyword you\'re targeting. %s If you really want to have a clear shot at ranking, make sure the competition is low for the keyword you choose.', _SQ_PLUGIN_NAME_), '<br /><br />', '<br /><br />'),
|
52 |
),
|
53 |
'impressions' => array(
|
54 |
+
'title' => __("Search volume", _SQ_PLUGIN_NAME_),
|
55 |
'value' => ($this->_volume ? $this->_volume->absolute : false),
|
56 |
'description' => sprintf(__("To turn this task to green, go and find a keyword that has a good search volume. (meaning that many people search on Google for this keyword every single month). %s The Research features from Squirrly SEO will indicate if the volume is big enough. %s Since these are the most important pages on your website, you need to make sure that you get the maximum number of people possible to find this page. %s If you target keyword searches with low volumes, then you'll end up having just 2 or 3 people every month visiting this page. And then all the effort will have been for nothing.", _SQ_PLUGIN_NAME_), '<br /><br />', '<br /><br />', '<br /><br />', '<br /><br />'),
|
57 |
),
|
58 |
'trend' => array(
|
59 |
+
'title' => __("Google Trend", _SQ_PLUGIN_NAME_),
|
60 |
'value' => ($this->_trend ? $this->_trend->text : false),
|
61 |
'description' => sprintf(__("Trend levels required to get the Green Check on this task: %s - Steady %s - Going Up %s - Sky-rocketing %s we take the trend from the previous 3 months. %s If you target a search query with a bad trend you'll end up seeing little traffic to this page in the long run. %s Why ? A declining trend shows that Google Users are losing interest in that topic or keyword and will continue to do so in the future. %s Therefore, even though you could get much traffic right now after you rank this page, in the near future you'll get very little traffic even if you'd end up on Position 1 in Google Search.", _SQ_PLUGIN_NAME_), '<br />', '<br />', '<br />', '<br /><br />', '<br /><br />', '<br /><br />', '<br /><br />'),
|
62 |
),
|
74 |
*/
|
75 |
public function getHeader() {
|
76 |
$header = '<li class="completed">';
|
77 |
+
$header .= '<div class="font-weight-bold text-black-50 mb-1">' . __('Current URL', _SQ_PLUGIN_NAME_) . ': </div>';
|
78 |
+
$header .= '<a href="' . $this->_post->url . '" target="_blank" style="word-break: break-word;">' . $this->_post->url . '</a>';
|
79 |
+
$header .= '</li>';
|
80 |
+
|
81 |
+
$header .= '<li class="completed">';
|
82 |
if ($this->_keyword) {
|
83 |
if ($this->_competition && $this->_trend) {
|
84 |
$header .= '<div class="font-weight-bold text-black-50 mb-2 text-center">' . __('Keyword', _SQ_PLUGIN_NAME_) . ': ' . $this->_keyword . '</div>';
|
models/focuspages/Length.php
CHANGED
@@ -51,7 +51,11 @@ class SQ_Models_Focuspages_Length extends SQ_Models_Abstract_Assistant {
|
|
51 |
|
52 |
/*********************************************/
|
53 |
public function getHeader() {
|
54 |
-
$header = '';
|
|
|
|
|
|
|
|
|
55 |
if (isset($this->_post->ID)) {
|
56 |
$edit_link = SQ_Classes_Helpers_Tools::getAdminUrl('post.php?post=' . (int)$this->_post->ID . '&action=edit');
|
57 |
if ($this->_post->post_type <> 'profile') {
|
@@ -59,7 +63,7 @@ class SQ_Models_Focuspages_Length extends SQ_Models_Abstract_Assistant {
|
|
59 |
}
|
60 |
|
61 |
|
62 |
-
$header
|
63 |
if (isset($this->_post->ID)) {
|
64 |
$header .= '<a href="' . $edit_link . '" target="_blank" class="btn bg-primary text-white col-sm-8 offset-2 my-2">' . __('Edit Page', _SQ_PLUGIN_NAME_) . '</a>';
|
65 |
}
|
@@ -106,6 +110,10 @@ class SQ_Models_Focuspages_Length extends SQ_Models_Abstract_Assistant {
|
|
106 |
return $task;
|
107 |
}
|
108 |
|
|
|
|
|
|
|
|
|
109 |
$task['error'] = true;
|
110 |
return $task;
|
111 |
}
|
51 |
|
52 |
/*********************************************/
|
53 |
public function getHeader() {
|
54 |
+
$header = '<li class="completed">';
|
55 |
+
$header .= '<div class="font-weight-bold text-black-50 mb-1">' . __('Current URL', _SQ_PLUGIN_NAME_) . ': </div>';
|
56 |
+
$header .= '<a href="' . $this->_post->url . '" target="_blank" style="word-break: break-word;">' . $this->_post->url . '</a>';
|
57 |
+
$header .= '</li>';
|
58 |
+
|
59 |
if (isset($this->_post->ID)) {
|
60 |
$edit_link = SQ_Classes_Helpers_Tools::getAdminUrl('post.php?post=' . (int)$this->_post->ID . '&action=edit');
|
61 |
if ($this->_post->post_type <> 'profile') {
|
63 |
}
|
64 |
|
65 |
|
66 |
+
$header .= '<li class="completed">';
|
67 |
if (isset($this->_post->ID)) {
|
68 |
$header .= '<a href="' . $edit_link . '" target="_blank" class="btn bg-primary text-white col-sm-8 offset-2 my-2">' . __('Edit Page', _SQ_PLUGIN_NAME_) . '</a>';
|
69 |
}
|
110 |
return $task;
|
111 |
}
|
112 |
|
113 |
+
if(!$this->_audit->sq_analytics_google_connected){
|
114 |
+
$task['error_message'] = __("Connect Google Analytics first", _SQ_PLUGIN_NAME_);
|
115 |
+
}
|
116 |
+
|
117 |
$task['error'] = true;
|
118 |
return $task;
|
119 |
}
|
models/focuspages/Nofollow.php
CHANGED
@@ -55,7 +55,7 @@ class SQ_Models_Focuspages_Nofollow extends SQ_Models_Abstract_Assistant {
|
|
55 |
$this->_tasks[$this->_category] = array(
|
56 |
'externallinks' => array(
|
57 |
'title' => __("Maintain authority", _SQ_PLUGIN_NAME_),
|
58 |
-
'value' => '<br />' . __("External Links", _SQ_PLUGIN_NAME_) . ':<br />' .
|
59 |
'penalty' => 5,
|
60 |
'description' => sprintf(__("TLDR: All outbound links need to have no-follow attribute. %s You've worked hard on your Focus Page. %s Now make sure that you're not letting that hard work go to waste, by sending out all your authority and Link Juice over to other pages from the web. %s The Focus Page needs to be the final page that Google Follows. It's an \"All Roads Lead to Rome\" kind of scenario. %s If you want your focus pages to get ranked better and have authority make sure that ALL outbound links have a no-follow attribute attached to them.", _SQ_PLUGIN_NAME_), '<br /><br />', '<br /><br />', '<br /><br />', '<br /><br />'),
|
61 |
),
|
@@ -63,14 +63,29 @@ class SQ_Models_Focuspages_Nofollow extends SQ_Models_Abstract_Assistant {
|
|
63 |
|
64 |
}
|
65 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
66 |
/*********************************************/
|
67 |
|
68 |
public function checkExternallinks($task) {
|
69 |
-
if
|
70 |
-
$
|
71 |
-
|
|
|
|
|
72 |
}
|
73 |
|
|
|
74 |
return $task;
|
75 |
}
|
76 |
|
55 |
$this->_tasks[$this->_category] = array(
|
56 |
'externallinks' => array(
|
57 |
'title' => __("Maintain authority", _SQ_PLUGIN_NAME_),
|
58 |
+
'value' => ($this->_dofollow_links && !empty($this->_dofollow_links) ? '<br />' . __("External Links", _SQ_PLUGIN_NAME_) . ':<br />' . join('<br />', array_unique($this->_dofollow_links)) : __("No dofollow external links", _SQ_PLUGIN_NAME_)),
|
59 |
'penalty' => 5,
|
60 |
'description' => sprintf(__("TLDR: All outbound links need to have no-follow attribute. %s You've worked hard on your Focus Page. %s Now make sure that you're not letting that hard work go to waste, by sending out all your authority and Link Juice over to other pages from the web. %s The Focus Page needs to be the final page that Google Follows. It's an \"All Roads Lead to Rome\" kind of scenario. %s If you want your focus pages to get ranked better and have authority make sure that ALL outbound links have a no-follow attribute attached to them.", _SQ_PLUGIN_NAME_), '<br /><br />', '<br /><br />', '<br /><br />', '<br /><br />'),
|
61 |
),
|
63 |
|
64 |
}
|
65 |
|
66 |
+
/**
|
67 |
+
* Customize the tasks header
|
68 |
+
* @return string
|
69 |
+
*/
|
70 |
+
public function getHeader() {
|
71 |
+
$header = '<li class="completed">';
|
72 |
+
$header .= '<div class="font-weight-bold text-black-50 mb-1">' . __('Current URL', _SQ_PLUGIN_NAME_) . ': </div>';
|
73 |
+
$header .= '<a href="' . $this->_post->url . '" target="_blank" style="word-break: break-word;">' . $this->_post->url . '</a>';
|
74 |
+
$header .= '</li>';
|
75 |
+
|
76 |
+
return $header;
|
77 |
+
}
|
78 |
/*********************************************/
|
79 |
|
80 |
public function checkExternallinks($task) {
|
81 |
+
if($this->_permalink <> '') {
|
82 |
+
if ($this->_dofollow_links && !empty($this->_dofollow_links)) {
|
83 |
+
$task['completed'] = false;
|
84 |
+
return $task;
|
85 |
+
}
|
86 |
}
|
87 |
|
88 |
+
$task['error'] = true;
|
89 |
return $task;
|
90 |
}
|
91 |
|
models/focuspages/Onpage.php
CHANGED
@@ -74,9 +74,16 @@ class SQ_Models_Focuspages_Onpage extends SQ_Models_Abstract_Assistant {
|
|
74 |
* @return string
|
75 |
*/
|
76 |
public function getHeader() {
|
77 |
-
|
|
|
|
|
|
|
|
|
|
|
78 |
<a href="' . SQ_Classes_Helpers_Tools::getAdminUrl('sq_seosettings') . '" target="_blank" class="btn bg-primary text-white col-sm-8 offset-2 mt-3">' . __('Go to SEO Settings', _SQ_PLUGIN_NAME_) . '</a>
|
79 |
</li>';
|
|
|
|
|
80 |
}
|
81 |
|
82 |
|
74 |
* @return string
|
75 |
*/
|
76 |
public function getHeader() {
|
77 |
+
$header = '<li class="completed">';
|
78 |
+
$header .= '<div class="font-weight-bold text-black-50 mb-1">' . __('Current URL', _SQ_PLUGIN_NAME_) . ': </div>';
|
79 |
+
$header .= '<a href="' . $this->_post->url . '" target="_blank" style="word-break: break-word;">' . $this->_post->url . '</a>';
|
80 |
+
$header .= '</li>';
|
81 |
+
|
82 |
+
$header .= '<li class="completed">
|
83 |
<a href="' . SQ_Classes_Helpers_Tools::getAdminUrl('sq_seosettings') . '" target="_blank" class="btn bg-primary text-white col-sm-8 offset-2 mt-3">' . __('Go to SEO Settings', _SQ_PLUGIN_NAME_) . '</a>
|
84 |
</li>';
|
85 |
+
|
86 |
+
return $header;
|
87 |
}
|
88 |
|
89 |
|
models/focuspages/Ranking.php
CHANGED
@@ -26,6 +26,18 @@ class SQ_Models_Focuspages_Ranking extends SQ_Models_Abstract_Assistant {
|
|
26 |
);
|
27 |
}
|
28 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
29 |
/*********************************************/
|
30 |
|
31 |
public function checkExternallinks($task) {
|
26 |
);
|
27 |
}
|
28 |
|
29 |
+
/**
|
30 |
+
* Customize the tasks header
|
31 |
+
* @return string
|
32 |
+
*/
|
33 |
+
public function getHeader() {
|
34 |
+
$header = '<li class="completed">';
|
35 |
+
$header .= '<div class="font-weight-bold text-black-50 mb-1">' . __('Current URL', _SQ_PLUGIN_NAME_) . ': </div>';
|
36 |
+
$header .= '<a href="' . $this->_post->url . '" target="_blank" style="word-break: break-word;">' . $this->_post->url . '</a>';
|
37 |
+
$header .= '</li>';
|
38 |
+
|
39 |
+
return $header;
|
40 |
+
}
|
41 |
/*********************************************/
|
42 |
|
43 |
public function checkExternallinks($task) {
|
models/focuspages/Snippet.php
CHANGED
@@ -120,6 +120,11 @@ class SQ_Models_Focuspages_Snippet extends SQ_Models_Abstract_Assistant {
|
|
120 |
}
|
121 |
|
122 |
$header = '<li class="completed">';
|
|
|
|
|
|
|
|
|
|
|
123 |
if ($this->_keyword) {
|
124 |
$header .= '<div class="font-weight-bold text-black-50 mb-2 text-center">' . __('Keyword', _SQ_PLUGIN_NAME_) . ': ' . $this->_keyword . '</div>';
|
125 |
} else {
|
120 |
}
|
121 |
|
122 |
$header = '<li class="completed">';
|
123 |
+
$header .= '<div class="font-weight-bold text-black-50 mb-1">' . __('Current URL', _SQ_PLUGIN_NAME_) . ': </div>';
|
124 |
+
$header .= '<a href="' . $this->_post->url . '" target="_blank" style="word-break: break-word;">' . $this->_post->url . '</a>';
|
125 |
+
$header .= '</li>';
|
126 |
+
|
127 |
+
$header .= '<li class="completed">';
|
128 |
if ($this->_keyword) {
|
129 |
$header .= '<div class="font-weight-bold text-black-50 mb-2 text-center">' . __('Keyword', _SQ_PLUGIN_NAME_) . ': ' . $this->_keyword . '</div>';
|
130 |
} else {
|
models/focuspages/Social.php
CHANGED
@@ -52,9 +52,16 @@ class SQ_Models_Focuspages_Social extends SQ_Models_Abstract_Assistant {
|
|
52 |
|
53 |
/*********************************************/
|
54 |
public function getHeader() {
|
55 |
-
|
|
|
|
|
|
|
|
|
|
|
56 |
<a href="' . SQ_Classes_Helpers_Tools::getAdminUrl('sq_seosettings', 'social') . '" target="_blank" class="sq_research_selectit btn bg-primary text-white col-sm-10 offset-1">' . __('Go to Social Media Settings', _SQ_PLUGIN_NAME_) . '</a>
|
57 |
</li>';
|
|
|
|
|
58 |
}
|
59 |
|
60 |
public function getValue() {
|
52 |
|
53 |
/*********************************************/
|
54 |
public function getHeader() {
|
55 |
+
$header = '<li class="completed">';
|
56 |
+
$header .= '<div class="font-weight-bold text-black-50 mb-1">' . __('Current URL', _SQ_PLUGIN_NAME_) . ': </div>';
|
57 |
+
$header .= '<a href="' . $this->_post->url . '" target="_blank" style="word-break: break-word;">' . $this->_post->url . '</a>';
|
58 |
+
$header .= '</li>';
|
59 |
+
|
60 |
+
$header .= '<li class="completed">
|
61 |
<a href="' . SQ_Classes_Helpers_Tools::getAdminUrl('sq_seosettings', 'social') . '" target="_blank" class="sq_research_selectit btn bg-primary text-white col-sm-10 offset-1">' . __('Go to Social Media Settings', _SQ_PLUGIN_NAME_) . '</a>
|
62 |
</li>';
|
63 |
+
|
64 |
+
return $header;
|
65 |
}
|
66 |
|
67 |
public function getValue() {
|
models/focuspages/Strategy.php
CHANGED
@@ -84,6 +84,11 @@ class SQ_Models_Focuspages_Strategy extends SQ_Models_Abstract_Assistant {
|
|
84 |
*/
|
85 |
public function getHeader() {
|
86 |
$header = '<li class="completed">';
|
|
|
|
|
|
|
|
|
|
|
87 |
if ($this->_keyword) {
|
88 |
$header .= '<div class="font-weight-bold text-black-50 mb-2 text-center">' . __('Keyword', _SQ_PLUGIN_NAME_) . ': ' . $this->_keyword . '</div>';
|
89 |
$header .= '<a href="' . SQ_Classes_Helpers_Tools::getAdminUrl('sq_research', 'briefcase') . '" target="_blank" class="btn bg-primary text-white col-sm-8 offset-2 mt-3">' . __('Manage Strategy', _SQ_PLUGIN_NAME_) . '</a>';
|
84 |
*/
|
85 |
public function getHeader() {
|
86 |
$header = '<li class="completed">';
|
87 |
+
$header .= '<div class="font-weight-bold text-black-50 mb-1">' . __('Current URL', _SQ_PLUGIN_NAME_) . ': </div>';
|
88 |
+
$header .= '<a href="' . $this->_post->url . '" target="_blank" style="word-break: break-word;">' . $this->_post->url . '</a>';
|
89 |
+
$header .= '</li>';
|
90 |
+
|
91 |
+
$header .= '<li class="completed">';
|
92 |
if ($this->_keyword) {
|
93 |
$header .= '<div class="font-weight-bold text-black-50 mb-2 text-center">' . __('Keyword', _SQ_PLUGIN_NAME_) . ': ' . $this->_keyword . '</div>';
|
94 |
$header .= '<a href="' . SQ_Classes_Helpers_Tools::getAdminUrl('sq_research', 'briefcase') . '" target="_blank" class="btn bg-primary text-white col-sm-8 offset-2 mt-3">' . __('Manage Strategy', _SQ_PLUGIN_NAME_) . '</a>';
|
models/focuspages/Traffic.php
CHANGED
@@ -53,7 +53,7 @@ class SQ_Models_Focuspages_Traffic extends SQ_Models_Abstract_Assistant {
|
|
53 |
$this->_tasks[$this->_category] = array(
|
54 |
'bounce' => array(
|
55 |
'title' => sprintf(__("Below %s Bounce Rate", _SQ_PLUGIN_NAME_), self::BOUNCE_MAXVAL . '%'),
|
56 |
-
'value' => number_format($this->_bounce_rate, 2) . '%'. ' ' . __('bounce rate', _SQ_PLUGIN_NAME_),
|
57 |
'description' => sprintf(__('Make sure this number is below %s %s Why? %s A high bounce rate means that your users just click on your search listing, visit the page and then decide they\'ve seen enough and bounce off to another page on the web. %s This is, for Google, an indicator of the quality of the search result it displayed. And if many of your users bounce off your pages, it means (to Google) that your page is not worth displaying in search results, because it has low performance with the user groups it sends your way. %s Easy way to complete this task: give users pages to click and send them to other pages from your site.', _SQ_PLUGIN_NAME_), self::BOUNCE_MAXVAL . '%', '<br /><br />', '<br /><br />', '<br /><br />', '<br /><br />'),
|
58 |
),
|
59 |
'avgtime' => array(
|
@@ -80,17 +80,22 @@ class SQ_Models_Focuspages_Traffic extends SQ_Models_Abstract_Assistant {
|
|
80 |
* @return string
|
81 |
*/
|
82 |
public function getHeader() {
|
|
|
|
|
|
|
|
|
|
|
83 |
if (!$this->_audit->sq_analytics_gsc_connected) {
|
84 |
-
|
85 |
-
<a href="' . SQ_Classes_RemoteController::getApiLink('gaoauth') . '" target="_blank" class="btn bg-primary text-white col-sm-10 offset-1 mt-
|
86 |
</li>';
|
87 |
}
|
88 |
if (!$this->_audit->sq_analytics_google_connected) {
|
89 |
-
|
90 |
-
<a href="' . SQ_Classes_RemoteController::getApiLink('gaoauth') . '" target="_blank" class="btn bg-primary text-white col-sm-10 offset-1 mt-
|
91 |
</li>';
|
92 |
}
|
93 |
-
return
|
94 |
}
|
95 |
|
96 |
/**
|
@@ -101,9 +106,9 @@ class SQ_Models_Focuspages_Traffic extends SQ_Models_Abstract_Assistant {
|
|
101 |
public function getTitle($title) {
|
102 |
parent::getTitle($title);
|
103 |
|
104 |
-
if (
|
105 |
$title = __("Connect Google Analytics first", _SQ_PLUGIN_NAME_);
|
106 |
-
}
|
107 |
$title = __("Not enough traffic to show relevant stats", _SQ_PLUGIN_NAME_);
|
108 |
}
|
109 |
return $title;
|
@@ -118,7 +123,9 @@ class SQ_Models_Focuspages_Traffic extends SQ_Models_Abstract_Assistant {
|
|
118 |
$task['completed'] = ($this->_bounce_rate <= self::BOUNCE_MAXVAL);
|
119 |
return $task;
|
120 |
}
|
121 |
-
|
|
|
|
|
122 |
$task['error'] = true;
|
123 |
return $task;
|
124 |
}
|
@@ -132,7 +139,9 @@ class SQ_Models_Focuspages_Traffic extends SQ_Models_Abstract_Assistant {
|
|
132 |
$task['completed'] = ($this->_page_time >= self::AVGTIME_MINVAL);
|
133 |
return $task;
|
134 |
}
|
135 |
-
|
|
|
|
|
136 |
$task['error'] = true;
|
137 |
return $task;
|
138 |
}
|
@@ -146,7 +155,9 @@ class SQ_Models_Focuspages_Traffic extends SQ_Models_Abstract_Assistant {
|
|
146 |
$task['completed'] = ($this->_page_sessions >= self::VISITS_MINVAL);
|
147 |
return $task;
|
148 |
}
|
149 |
-
|
|
|
|
|
150 |
$task['error'] = true;
|
151 |
return $task;
|
152 |
}
|
53 |
$this->_tasks[$this->_category] = array(
|
54 |
'bounce' => array(
|
55 |
'title' => sprintf(__("Below %s Bounce Rate", _SQ_PLUGIN_NAME_), self::BOUNCE_MAXVAL . '%'),
|
56 |
+
'value' => number_format($this->_bounce_rate, 2) . '%' . ' ' . __('bounce rate', _SQ_PLUGIN_NAME_),
|
57 |
'description' => sprintf(__('Make sure this number is below %s %s Why? %s A high bounce rate means that your users just click on your search listing, visit the page and then decide they\'ve seen enough and bounce off to another page on the web. %s This is, for Google, an indicator of the quality of the search result it displayed. And if many of your users bounce off your pages, it means (to Google) that your page is not worth displaying in search results, because it has low performance with the user groups it sends your way. %s Easy way to complete this task: give users pages to click and send them to other pages from your site.', _SQ_PLUGIN_NAME_), self::BOUNCE_MAXVAL . '%', '<br /><br />', '<br /><br />', '<br /><br />', '<br /><br />'),
|
58 |
),
|
59 |
'avgtime' => array(
|
80 |
* @return string
|
81 |
*/
|
82 |
public function getHeader() {
|
83 |
+
$header = '<li class="completed">';
|
84 |
+
$header .= '<div class="font-weight-bold text-black-50 mb-1">' . __('Current URL', _SQ_PLUGIN_NAME_) . ': </div>';
|
85 |
+
$header .= '<a href="' . $this->_post->url . '" target="_blank" style="word-break: break-word;">' . $this->_post->url . '</a>';
|
86 |
+
$header .= '</li>';
|
87 |
+
|
88 |
if (!$this->_audit->sq_analytics_gsc_connected) {
|
89 |
+
$header .= '<li class="completed">
|
90 |
+
<a href="' . SQ_Classes_RemoteController::getApiLink('gaoauth') . '" target="_blank" class="btn bg-primary text-white col-sm-10 offset-1 mt-1">' . __('Connect Google Analytics', _SQ_PLUGIN_NAME_) . '</a>
|
91 |
</li>';
|
92 |
}
|
93 |
if (!$this->_audit->sq_analytics_google_connected) {
|
94 |
+
$header .= '<li class="completed">
|
95 |
+
<a href="' . SQ_Classes_RemoteController::getApiLink('gaoauth') . '" target="_blank" class="btn bg-primary text-white col-sm-10 offset-1 mt-1">' . __('Connect Google Analytics', _SQ_PLUGIN_NAME_) . '</a>
|
96 |
</li>';
|
97 |
}
|
98 |
+
return $header;
|
99 |
}
|
100 |
|
101 |
/**
|
106 |
public function getTitle($title) {
|
107 |
parent::getTitle($title);
|
108 |
|
109 |
+
if (!$this->_audit->sq_analytics_google_connected) {
|
110 |
$title = __("Connect Google Analytics first", _SQ_PLUGIN_NAME_);
|
111 |
+
} elseif ($this->_error) {
|
112 |
$title = __("Not enough traffic to show relevant stats", _SQ_PLUGIN_NAME_);
|
113 |
}
|
114 |
return $title;
|
123 |
$task['completed'] = ($this->_bounce_rate <= self::BOUNCE_MAXVAL);
|
124 |
return $task;
|
125 |
}
|
126 |
+
if(!$this->_audit->sq_analytics_google_connected){
|
127 |
+
$task['error_message'] = __("Connect Google Analytics first", _SQ_PLUGIN_NAME_);
|
128 |
+
}
|
129 |
$task['error'] = true;
|
130 |
return $task;
|
131 |
}
|
139 |
$task['completed'] = ($this->_page_time >= self::AVGTIME_MINVAL);
|
140 |
return $task;
|
141 |
}
|
142 |
+
if(!$this->_audit->sq_analytics_google_connected){
|
143 |
+
$task['error_message'] = __("Connect Google Analytics first", _SQ_PLUGIN_NAME_);
|
144 |
+
}
|
145 |
$task['error'] = true;
|
146 |
return $task;
|
147 |
}
|
155 |
$task['completed'] = ($this->_page_sessions >= self::VISITS_MINVAL);
|
156 |
return $task;
|
157 |
}
|
158 |
+
if(!$this->_audit->sq_analytics_google_connected){
|
159 |
+
$task['error_message'] = __("Connect Google Analytics first", _SQ_PLUGIN_NAME_);
|
160 |
+
}
|
161 |
$task['error'] = true;
|
162 |
return $task;
|
163 |
}
|
models/services/JsonLD.php
CHANGED
@@ -13,6 +13,7 @@ class SQ_Models_Services_JsonLD extends SQ_Models_Abstract_Seo {
|
|
13 |
add_filter('sq_json_ld', array($this, 'returnFalse'));
|
14 |
return;
|
15 |
}
|
|
|
16 |
if (class_exists('WooCommerce')) {
|
17 |
// Generate structured data for Woocommerce 3.
|
18 |
if ($this->_post->post_type == 'product') {
|
@@ -21,7 +22,10 @@ class SQ_Models_Services_JsonLD extends SQ_Models_Abstract_Seo {
|
|
21 |
add_filter('sq_json_ld', array($this, 'generate_review_data'), 8);
|
22 |
}
|
23 |
}
|
24 |
-
|
|
|
|
|
|
|
25 |
add_filter('sq_json_ld', array($this, 'generate_structured_data'), 10);
|
26 |
|
27 |
add_filter('sq_json_ld', array($this, 'generateJsonLd'));
|
@@ -48,7 +52,7 @@ class SQ_Models_Services_JsonLD extends SQ_Models_Abstract_Seo {
|
|
48 |
*/
|
49 |
public function packJsonLd($data = array()) {
|
50 |
if (!empty($data)) {
|
51 |
-
if ($this->_post->sq->jsonld) {
|
52 |
if (strpos($this->_post->sq->jsonld, 'application/ld+json') !== false) {
|
53 |
return $this->_post->sq->jsonld;
|
54 |
} else {
|
@@ -95,7 +99,7 @@ class SQ_Models_Services_JsonLD extends SQ_Models_Abstract_Seo {
|
|
95 |
* @return array
|
96 |
*/
|
97 |
public function get_data() {
|
98 |
-
return
|
99 |
}
|
100 |
|
101 |
|
@@ -115,12 +119,15 @@ class SQ_Models_Services_JsonLD extends SQ_Models_Abstract_Seo {
|
|
115 |
*/
|
116 |
public function get_structured_data($types) {
|
117 |
$data = array();
|
118 |
-
|
119 |
// Put together the values of same type of structured data.
|
120 |
foreach ($this->get_data() as $value) {
|
|
|
121 |
$data[strtolower($value['@type'])][] = $value;
|
122 |
}
|
123 |
|
|
|
|
|
|
|
124 |
// Wrap the multiple values of each type inside a graph... Then add context to each type.
|
125 |
foreach ($data as $type => $value) {
|
126 |
$data[$type] = count((array)$value) > 1 ? array('@graph' => $value) : $value[0];
|
@@ -242,10 +249,12 @@ class SQ_Models_Services_JsonLD extends SQ_Models_Abstract_Seo {
|
|
242 |
|
243 |
if (isset($this->_post->sq->title)) {
|
244 |
$markup['name'] = $this->truncate($this->_post->sq->title, 0, $this->_post->sq->jsonld_title_maxlength);
|
|
|
245 |
}
|
246 |
|
247 |
if (isset($this->_post->sq->description)) {
|
248 |
$markup['headline'] = $this->truncate($this->_post->sq->description, 0, $this->_post->sq->jsonld_description_maxlength);
|
|
|
249 |
}
|
250 |
$markup['mainEntityOfPage'] = array(
|
251 |
'@type' => 'WebPage',
|
@@ -342,10 +351,12 @@ class SQ_Models_Services_JsonLD extends SQ_Models_Abstract_Seo {
|
|
342 |
|
343 |
if (isset($this->_post->sq->title)) {
|
344 |
$markup['name'] = $this->truncate($this->_post->sq->title, 0, $this->_post->sq->jsonld_title_maxlength);
|
|
|
345 |
}
|
346 |
|
347 |
if (isset($this->_post->sq->description)) {
|
348 |
$markup['headline'] = $this->truncate($this->_post->sq->description, 0, $this->_post->sq->jsonld_description_maxlength);
|
|
|
349 |
}
|
350 |
$markup['mainEntityOfPage'] = array(
|
351 |
'@type' => 'WebPage',
|
@@ -440,6 +451,7 @@ class SQ_Models_Services_JsonLD extends SQ_Models_Abstract_Seo {
|
|
440 |
$markup['@id'] = $this->getAuthor('user_url');
|
441 |
$markup['url'] = $this->getAuthor('user_url');
|
442 |
$markup['name'] = $this->getAuthor('display_name');
|
|
|
443 |
|
444 |
//add current markup
|
445 |
$this->set_data($markup);
|
@@ -450,10 +462,12 @@ class SQ_Models_Services_JsonLD extends SQ_Models_Abstract_Seo {
|
|
450 |
|
451 |
if (isset($this->_post->sq->title)) {
|
452 |
$markup['name'] = $this->truncate($this->_post->sq->title, 0, $this->_post->sq->jsonld_title_maxlength);
|
|
|
453 |
}
|
454 |
|
455 |
if (isset($this->_post->sq->description)) {
|
456 |
$markup['headline'] = $this->truncate($this->_post->sq->description, 0, $this->_post->sq->jsonld_description_maxlength);
|
|
|
457 |
}
|
458 |
$markup['mainEntityOfPage'] = array(
|
459 |
'@type' => 'WebPage',
|
@@ -618,7 +632,6 @@ class SQ_Models_Services_JsonLD extends SQ_Models_Abstract_Seo {
|
|
618 |
}
|
619 |
}
|
620 |
}
|
621 |
-
|
622 |
if ($this->_post->post_type <> 'home') {
|
623 |
////////////////////// Current post
|
624 |
$crumbs[] = array(
|
@@ -635,7 +648,7 @@ class SQ_Models_Services_JsonLD extends SQ_Models_Abstract_Seo {
|
|
635 |
'@type' => 'ListItem',
|
636 |
'position' => $key + 1,
|
637 |
'item' => array(
|
638 |
-
'name' => $crumb[0],
|
639 |
'@id' => $crumb[1]
|
640 |
),
|
641 |
);
|
@@ -643,6 +656,7 @@ class SQ_Models_Services_JsonLD extends SQ_Models_Abstract_Seo {
|
|
643 |
}
|
644 |
}
|
645 |
}
|
|
|
646 |
$this->set_data($markup);
|
647 |
|
648 |
}
|
13 |
add_filter('sq_json_ld', array($this, 'returnFalse'));
|
14 |
return;
|
15 |
}
|
16 |
+
|
17 |
if (class_exists('WooCommerce')) {
|
18 |
// Generate structured data for Woocommerce 3.
|
19 |
if ($this->_post->post_type == 'product') {
|
22 |
add_filter('sq_json_ld', array($this, 'generate_review_data'), 8);
|
23 |
}
|
24 |
}
|
25 |
+
|
26 |
+
if (SQ_Classes_Helpers_Tools::getOption('sq_jsonld_breadcrumbs')) {
|
27 |
+
add_filter('sq_json_ld', array($this, 'generate_breadcrumblist_data'), 9);
|
28 |
+
}
|
29 |
add_filter('sq_json_ld', array($this, 'generate_structured_data'), 10);
|
30 |
|
31 |
add_filter('sq_json_ld', array($this, 'generateJsonLd'));
|
52 |
*/
|
53 |
public function packJsonLd($data = array()) {
|
54 |
if (!empty($data)) {
|
55 |
+
if ($this->_post->sq->jsonld && strpos($this->_post->sq->jsonld, '"name":"Auto Draft"') === false) {
|
56 |
if (strpos($this->_post->sq->jsonld, 'application/ld+json') !== false) {
|
57 |
return $this->_post->sq->jsonld;
|
58 |
} else {
|
99 |
* @return array
|
100 |
*/
|
101 |
public function get_data() {
|
102 |
+
return apply_filters('sq_json_ld_data',$this->_data);
|
103 |
}
|
104 |
|
105 |
|
119 |
*/
|
120 |
public function get_structured_data($types) {
|
121 |
$data = array();
|
|
|
122 |
// Put together the values of same type of structured data.
|
123 |
foreach ($this->get_data() as $value) {
|
124 |
+
$data[$value['@type']][] = $value;
|
125 |
$data[strtolower($value['@type'])][] = $value;
|
126 |
}
|
127 |
|
128 |
+
//mage array unique
|
129 |
+
$types = array_unique($types);
|
130 |
+
|
131 |
// Wrap the multiple values of each type inside a graph... Then add context to each type.
|
132 |
foreach ($data as $type => $value) {
|
133 |
$data[$type] = count((array)$value) > 1 ? array('@graph' => $value) : $value[0];
|
249 |
|
250 |
if (isset($this->_post->sq->title)) {
|
251 |
$markup['name'] = $this->truncate($this->_post->sq->title, 0, $this->_post->sq->jsonld_title_maxlength);
|
252 |
+
$markup['name'] = str_replace('"', '"', $markup['name']);
|
253 |
}
|
254 |
|
255 |
if (isset($this->_post->sq->description)) {
|
256 |
$markup['headline'] = $this->truncate($this->_post->sq->description, 0, $this->_post->sq->jsonld_description_maxlength);
|
257 |
+
$markup['headline'] = str_replace('"', '"', $markup['headline']);
|
258 |
}
|
259 |
$markup['mainEntityOfPage'] = array(
|
260 |
'@type' => 'WebPage',
|
351 |
|
352 |
if (isset($this->_post->sq->title)) {
|
353 |
$markup['name'] = $this->truncate($this->_post->sq->title, 0, $this->_post->sq->jsonld_title_maxlength);
|
354 |
+
$markup['name'] = str_replace('"', '\"', $markup['name']);
|
355 |
}
|
356 |
|
357 |
if (isset($this->_post->sq->description)) {
|
358 |
$markup['headline'] = $this->truncate($this->_post->sq->description, 0, $this->_post->sq->jsonld_description_maxlength);
|
359 |
+
$markup['headline'] = str_replace('"', '"', $markup['headline']);
|
360 |
}
|
361 |
$markup['mainEntityOfPage'] = array(
|
362 |
'@type' => 'WebPage',
|
451 |
$markup['@id'] = $this->getAuthor('user_url');
|
452 |
$markup['url'] = $this->getAuthor('user_url');
|
453 |
$markup['name'] = $this->getAuthor('display_name');
|
454 |
+
$markup['name'] = str_replace('"', '"', $markup['name']);
|
455 |
|
456 |
//add current markup
|
457 |
$this->set_data($markup);
|
462 |
|
463 |
if (isset($this->_post->sq->title)) {
|
464 |
$markup['name'] = $this->truncate($this->_post->sq->title, 0, $this->_post->sq->jsonld_title_maxlength);
|
465 |
+
$markup['name'] = str_replace('"', '\"', $markup['name']);
|
466 |
}
|
467 |
|
468 |
if (isset($this->_post->sq->description)) {
|
469 |
$markup['headline'] = $this->truncate($this->_post->sq->description, 0, $this->_post->sq->jsonld_description_maxlength);
|
470 |
+
$markup['headline'] = str_replace('"', '"', $markup['headline']);
|
471 |
}
|
472 |
$markup['mainEntityOfPage'] = array(
|
473 |
'@type' => 'WebPage',
|
632 |
}
|
633 |
}
|
634 |
}
|
|
|
635 |
if ($this->_post->post_type <> 'home') {
|
636 |
////////////////////// Current post
|
637 |
$crumbs[] = array(
|
648 |
'@type' => 'ListItem',
|
649 |
'position' => $key + 1,
|
650 |
'item' => array(
|
651 |
+
'name' => str_replace('"', '"', $crumb[0]),
|
652 |
'@id' => $crumb[1]
|
653 |
),
|
654 |
);
|
656 |
}
|
657 |
}
|
658 |
}
|
659 |
+
|
660 |
$this->set_data($markup);
|
661 |
|
662 |
}
|
models/services/OpenGraph.php
CHANGED
@@ -11,7 +11,7 @@ class SQ_Models_Services_OpenGraph extends SQ_Models_Abstract_Seo {
|
|
11 |
return;
|
12 |
}
|
13 |
|
14 |
-
add_filter('
|
15 |
add_filter('sq_html_prefix', array($this, 'addOGPrefix'));
|
16 |
|
17 |
add_filter('sq_open_graph', array($this, 'generateOpenGraph'));
|
@@ -78,7 +78,7 @@ class SQ_Models_Services_OpenGraph extends SQ_Models_Abstract_Seo {
|
|
78 |
}
|
79 |
|
80 |
$og['og:site_name'] = get_bloginfo('title');
|
81 |
-
$og['og:locale'] = get_locale();
|
82 |
|
83 |
if ($this->_post->socials->fbadminapp <> '') {
|
84 |
$og['fb:app_id'] = $this->_post->socials->fbadminapp;
|
@@ -235,10 +235,16 @@ class SQ_Models_Services_OpenGraph extends SQ_Models_Abstract_Seo {
|
|
235 |
}
|
236 |
|
237 |
public function setLocale($locale) {
|
|
|
|
|
|
|
|
|
238 |
if (function_exists('wpml_get_language_information') && (int)$this->_post->ID > 0) {
|
239 |
if ($language = wpml_get_language_information((int)$this->_post->ID)) {
|
240 |
if (!is_wp_error($language) && isset($language['locale'])) {
|
241 |
-
$locale
|
|
|
|
|
242 |
}
|
243 |
}
|
244 |
}
|
@@ -246,6 +252,79 @@ class SQ_Models_Services_OpenGraph extends SQ_Models_Abstract_Seo {
|
|
246 |
return $locale;
|
247 |
}
|
248 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
249 |
public function packOpenGraph($og = array()) {
|
250 |
if (!empty($og)) {
|
251 |
foreach ($og as $key => &$value) {
|
11 |
return;
|
12 |
}
|
13 |
|
14 |
+
add_filter('sq_locale', array($this, 'setLocale'));
|
15 |
add_filter('sq_html_prefix', array($this, 'addOGPrefix'));
|
16 |
|
17 |
add_filter('sq_open_graph', array($this, 'generateOpenGraph'));
|
78 |
}
|
79 |
|
80 |
$og['og:site_name'] = get_bloginfo('title');
|
81 |
+
$og['og:locale'] = $this->get_locale();
|
82 |
|
83 |
if ($this->_post->socials->fbadminapp <> '') {
|
84 |
$og['fb:app_id'] = $this->_post->socials->fbadminapp;
|
235 |
}
|
236 |
|
237 |
public function setLocale($locale) {
|
238 |
+
//set locale from Squirrly > Settings > Social Media > Locale
|
239 |
+
$locale = SQ_Classes_Helpers_Tools::getOption('sq_og_locale');
|
240 |
+
|
241 |
+
//if WPML is installed, get the local language
|
242 |
if (function_exists('wpml_get_language_information') && (int)$this->_post->ID > 0) {
|
243 |
if ($language = wpml_get_language_information((int)$this->_post->ID)) {
|
244 |
if (!is_wp_error($language) && isset($language['locale'])) {
|
245 |
+
if($locale <> 'en') {
|
246 |
+
$locale = $language['locale'];
|
247 |
+
}
|
248 |
}
|
249 |
}
|
250 |
}
|
252 |
return $locale;
|
253 |
}
|
254 |
|
255 |
+
/**
|
256 |
+
* Retrieves the current locale.
|
257 |
+
*
|
258 |
+
* If the locale is set, then it will filter the locale in the {@see 'locale'}
|
259 |
+
* filter hook and return the value.
|
260 |
+
*
|
261 |
+
* If the locale is not set already, then the WPLANG constant is used if it is
|
262 |
+
* defined. Then it is filtered through the {@see 'locale'} filter hook and
|
263 |
+
* the value for the locale global set and the locale is returned.
|
264 |
+
*
|
265 |
+
* The process to get the locale should only be done once, but the locale will
|
266 |
+
* always be filtered using the {@see 'locale'} hook.
|
267 |
+
*
|
268 |
+
* @since 1.5.0
|
269 |
+
*
|
270 |
+
* @global string $locale
|
271 |
+
* @global string $wp_local_package
|
272 |
+
*
|
273 |
+
* @return string The locale of the blog or from the {@see 'locale'} hook.
|
274 |
+
*/
|
275 |
+
function get_locale() {
|
276 |
+
global $locale, $wp_local_package;
|
277 |
+
|
278 |
+
if ( isset( $locale ) ) {
|
279 |
+
/**
|
280 |
+
* Filters the locale ID of the WordPress installation.
|
281 |
+
*
|
282 |
+
* @since 1.5.0
|
283 |
+
*
|
284 |
+
* @param string $locale The locale ID.
|
285 |
+
*/
|
286 |
+
return apply_filters( 'sq_locale', $locale );
|
287 |
+
}
|
288 |
+
|
289 |
+
if ( isset( $wp_local_package ) ) {
|
290 |
+
$locale = $wp_local_package;
|
291 |
+
}
|
292 |
+
|
293 |
+
// WPLANG was defined in wp-config.
|
294 |
+
if ( defined( 'WPLANG' ) ) {
|
295 |
+
$locale = WPLANG;
|
296 |
+
}
|
297 |
+
|
298 |
+
// If multisite, check options.
|
299 |
+
if ( is_multisite() ) {
|
300 |
+
// Don't check blog option when installing.
|
301 |
+
if ( wp_installing() || ( false === $ms_locale = get_option( 'WPLANG' ) ) ) {
|
302 |
+
$ms_locale = get_site_option( 'WPLANG' );
|
303 |
+
}
|
304 |
+
|
305 |
+
if ( $ms_locale !== false ) {
|
306 |
+
$locale = $ms_locale;
|
307 |
+
}
|
308 |
+
} else {
|
309 |
+
$db_locale = get_option( 'WPLANG' );
|
310 |
+
if ( $db_locale !== false ) {
|
311 |
+
$locale = $db_locale;
|
312 |
+
}
|
313 |
+
}
|
314 |
+
|
315 |
+
if ( empty( $locale ) ) {
|
316 |
+
$locale = 'en_US';
|
317 |
+
}
|
318 |
+
|
319 |
+
/** This filter is documented in wp-includes/l10n.php */
|
320 |
+
return apply_filters( 'sq_locale', $locale );
|
321 |
+
}
|
322 |
+
|
323 |
+
/**
|
324 |
+
* Pack the OpenGraph to meta format
|
325 |
+
* @param array $og
|
326 |
+
* @return bool|string
|
327 |
+
*/
|
328 |
public function packOpenGraph($og = array()) {
|
329 |
if (!empty($og)) {
|
330 |
foreach ($og as $key => &$value) {
|
readme.txt
CHANGED
@@ -3,7 +3,7 @@ Contributors: cifi, calinvingan, florinmuresan, nagy.sorel
|
|
3 |
Tags: seo, wordpress seo, seo plugin, seo optimization, seo content, seo meta, open graph, e-commerce, plugins, content, marketing, ecommerce, keyword research, content seo, yoast, all in one seo, search engine optimization, XML sitemap for google, multisite SEO, squirrly, meta title, meta description, favicon, mobile, canonical, seo correction, seo title, twitter, woocommerce, feeds, social media, blogging, google-analytics, tracking, best seo tools audit website, content audit tool, ecommerce seo strategy, marketing research tools, research tools for writers, seo audit tool, SEO keyword research tool,duplicate removal tool, ecommerce SEO, facebook open graph wordpress, google keyword planner alternative, Google ranking, how to install facebook pixel on wordpress, JSON-LD structure, Live Assistant, meta duplicate removal, open graph generator, pinterest rich pin validator, related links
|
4 |
Requires at least: 4.2
|
5 |
Requires PHP: 5.3
|
6 |
-
Tested up to: 5.
|
7 |
Stable tag: trunk
|
8 |
License: GPLv2 or later
|
9 |
Donate link: https://plugin.squirrly.co/wordpress/seo
|
@@ -21,7 +21,7 @@ While Assistant Technology like: Intelligent Parking Assist helps you park your
|
|
21 |
|
22 |
More than that, some of the Assisted SEO features we have on-board actually help you find spots on search engines, where you’ll easily park your pages and nobody will bother you (because the competition will be low, even though these spots could earn you many organic visits).
|
23 |
|
24 |
-
<a
|
25 |
|
26 |
Could you ever dream your way to the Top positions on search engines? Let’s see how this WordPress plugin will help:
|
27 |
|
@@ -504,6 +504,73 @@ Type a keyword to the right of the screen and start using Squirrly Seo. Enjoy!
|
|
504 |
Squirrly SEO 9.1.00 it's a big update. We've re-designed the UX and added many new features. If you don't want to change the current experience you have with Squirrly you can remain on the current stable version of Squirrly SEO.
|
505 |
|
506 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
507 |
= 9.1.10 - 04/19/2019 =
|
508 |
* Update - Ranking details in Squirrly SEO Rankings
|
509 |
* Update - Messages in Focus Pages when the page is not optimized for a keyword
|
@@ -1269,6 +1336,14 @@ yoast alternative
|
|
1269 |
yoast seo alternative
|
1270 |
all in one seo alternative
|
1271 |
seo pressor alternative
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1272 |
|
1273 |
* Changelog Archive: <a href="https://plugin.squirrly.co/squirrly-seo-changelog/">https://plugin.squirrly.co/squirrly-seo-changelog/</a>
|
1274 |
|
3 |
Tags: seo, wordpress seo, seo plugin, seo optimization, seo content, seo meta, open graph, e-commerce, plugins, content, marketing, ecommerce, keyword research, content seo, yoast, all in one seo, search engine optimization, XML sitemap for google, multisite SEO, squirrly, meta title, meta description, favicon, mobile, canonical, seo correction, seo title, twitter, woocommerce, feeds, social media, blogging, google-analytics, tracking, best seo tools audit website, content audit tool, ecommerce seo strategy, marketing research tools, research tools for writers, seo audit tool, SEO keyword research tool,duplicate removal tool, ecommerce SEO, facebook open graph wordpress, google keyword planner alternative, Google ranking, how to install facebook pixel on wordpress, JSON-LD structure, Live Assistant, meta duplicate removal, open graph generator, pinterest rich pin validator, related links
|
4 |
Requires at least: 4.2
|
5 |
Requires PHP: 5.3
|
6 |
+
Tested up to: 5.2
|
7 |
Stable tag: trunk
|
8 |
License: GPLv2 or later
|
9 |
Donate link: https://plugin.squirrly.co/wordpress/seo
|
21 |
|
22 |
More than that, some of the Assisted SEO features we have on-board actually help you find spots on search engines, where you’ll easily park your pages and nobody will bother you (because the competition will be low, even though these spots could earn you many organic visits).
|
23 |
|
24 |
+
<a href="https://plugin.squirrly.co/wordpress/seo">Facts and Testimonials for this Plugin for WordPress SEO can be found here</a>.
|
25 |
|
26 |
Could you ever dream your way to the Top positions on search engines? Let’s see how this WordPress plugin will help:
|
27 |
|
504 |
Squirrly SEO 9.1.00 it's a big update. We've re-designed the UX and added many new features. If you don't want to change the current experience you have with Squirrly you can remain on the current stable version of Squirrly SEO.
|
505 |
|
506 |
== Changelog ==
|
507 |
+
= 9.1.19 - 07/08/2019 =
|
508 |
+
* Update - Added refresh button for Squirrly SEO Snippet on ajax error
|
509 |
+
* Fix - Canonical link verification on Focus Pages
|
510 |
+
* Fix - PHP count() warning when the array is empty
|
511 |
+
* Fix - The Inner Links count when the links are not absolute
|
512 |
+
|
513 |
+
= 9.1.18 - 06/19/2019 =
|
514 |
+
* Update - Live Assistant metrics and learning
|
515 |
+
* Fix - Fixed Add to Briefcase in Google Search Console Keywords Sync
|
516 |
+
* Fix - Fixed Squirrly Feedback button
|
517 |
+
* Fix - Update Visibility score for draft pages
|
518 |
+
* Fix - Responsive table in Rankings for smaller devices
|
519 |
+
|
520 |
+
= 9.1.17 - 06/05/2019 =
|
521 |
+
* Update - Added the Focus Page link in the Assistant Tasks side
|
522 |
+
* Fix - Fixed the Show All button in Briefcase
|
523 |
+
* Fix - Show Indexed in Squirrly Briefcase when a keyword is indexed in Serp Checker
|
524 |
+
* SEO Update - Tested and Compatible with WordPress 5.2.1
|
525 |
+
|
526 |
+
|
527 |
+
= 9.1.16 - 05/30/2019 =
|
528 |
+
* Update - Added option for BreadCrumbsList in Json-LD
|
529 |
+
* Update - Added option to clear the Json-LD code before loading to avoid duplicates
|
530 |
+
* Fix - Loading Media Library in Bulk SEO for Open Graph and Twitter Card
|
531 |
+
* Fix - Loading Media Library in Json-LD page
|
532 |
+
|
533 |
+
= 9.1.15 - 05/21/2019 =
|
534 |
+
* Update - Limit the results in Bulk SEO to 50 to avoid reaching the Memory Limit
|
535 |
+
* Fix - Facebook Local language fix when WPML is installed
|
536 |
+
* Fix - Double check if the connection with API is security and call it with HTTPS
|
537 |
+
|
538 |
+
= 9.1.14 - 05/17/2019 =
|
539 |
+
* Update - Increased the timeout for Keyword Research process
|
540 |
+
* Update - Compatibility with the latest versions of Autoptimize, W3 Total Cache, WP Super Cache
|
541 |
+
* Fix - Json-LD set to auto by default and prevent switching to custom
|
542 |
+
* Fix - Remove the javascript error in squirrly.js when wp is undefined
|
543 |
+
* Fix - Remove the trail slash in Bulk SEO pagination
|
544 |
+
* Fix - Remove the page from post title in Bulk SEO when paginate
|
545 |
+
* Fix - Increased the number of posts shown in Bulk SEO on one page
|
546 |
+
|
547 |
+
= 9.1.13 - 05/14/2019 =
|
548 |
+
* Update - Remove the CSS and JS from other plugin when Squirrly SEO Settings are loaded to prevent modal box issues
|
549 |
+
* Fix - Keyword Research to show the timeout message and not the error message.
|
550 |
+
* Fix - Prevent Breadcrumbs showing Auto Draft title when custom Json-LD is saved
|
551 |
+
* Fix - Json-LD to validate the apostrophe in title and description
|
552 |
+
* Fix - Stop reloading the Snippet in frontend on relogin or when no data exists for the page
|
553 |
+
|
554 |
+
= 9.1.12 - 05/07/2019 =
|
555 |
+
* Update - Focus Pages Keyword Competition, Search Volume, Trend
|
556 |
+
* Fix - Custom SEO for Blog Post Page set in Settings > Readings
|
557 |
+
* Fix - Squirrly Live Assistant Gutenberg Blocks identification
|
558 |
+
|
559 |
+
= 9.1.11 - 04/24/2019 =
|
560 |
+
* Update - Added the 14 days journey links to the completed days
|
561 |
+
* Update - Check the SEO with API crawler to prevent local SSL errors
|
562 |
+
* Update - Set DevKit menu in Squirrly SEO
|
563 |
+
* Update - Json-LD task is complete only when the relevant data is added
|
564 |
+
* Fix - Don't let to get to second step if the keyword is not set in the Keyword Research Tool
|
565 |
+
* Fix - Keyword Research Tool column sort by competition and search volume
|
566 |
+
* Fix - Focus Page audit error catch and message
|
567 |
+
* Fix - Changed the remote timeout to 5 sec
|
568 |
+
* Fix - Removed the error from API access
|
569 |
+
* Fix - Show loading icon on the submit button when a form is submitted
|
570 |
+
* Fix - Don't show Squirrly in admin toolbar when user is in network panel for wp multisite
|
571 |
+
* Fix - Go to login page in case the account is disconnected from API
|
572 |
+
* Fix - Remove the Squirrly 2018 exclude post type filter in frontend SEO
|
573 |
+
|
574 |
= 9.1.10 - 04/19/2019 =
|
575 |
* Update - Ranking details in Squirrly SEO Rankings
|
576 |
* Update - Messages in Focus Pages when the page is not optimized for a keyword
|
1336 |
yoast seo alternative
|
1337 |
all in one seo alternative
|
1338 |
seo pressor alternative
|
1339 |
+
wordpress seo alternative
|
1340 |
+
wordpress seo
|
1341 |
+
seo optimization
|
1342 |
+
seo content
|
1343 |
+
nofollow external links
|
1344 |
+
nofollow links plugin
|
1345 |
+
structured data plugin
|
1346 |
+
google structured data
|
1347 |
|
1348 |
* Changelog Archive: <a href="https://plugin.squirrly.co/squirrly-seo-changelog/">https://plugin.squirrly.co/squirrly-seo-changelog/</a>
|
1349 |
|
squirrly.php
CHANGED
@@ -7,12 +7,12 @@
|
|
7 |
Plugin URI: https://www.squirrly.co
|
8 |
Description: SEO By Squirrly is for the NON-SEO experts. Get Excellent Seo with Better Content, Ranking and Analytics. For Both Humans and Search Bots.<BR> <a href="http://my.squirrly.co/user" target="_blank"><strong>Check your profile</strong></a>
|
9 |
Author: Squirrly SEO
|
10 |
-
Version: 9.1.
|
11 |
Author URI: https://www.squirrly.co
|
12 |
*/
|
13 |
if(!defined('SQ_VERSION')) {
|
14 |
/* SET THE CURRENT VERSION ABOVE AND BELOW */
|
15 |
-
define('SQ_VERSION', '9.1.
|
16 |
|
17 |
// Call config files
|
18 |
try {
|
7 |
Plugin URI: https://www.squirrly.co
|
8 |
Description: SEO By Squirrly is for the NON-SEO experts. Get Excellent Seo with Better Content, Ranking and Analytics. For Both Humans and Search Bots.<BR> <a href="http://my.squirrly.co/user" target="_blank"><strong>Check your profile</strong></a>
|
9 |
Author: Squirrly SEO
|
10 |
+
Version: 9.1.19
|
11 |
Author URI: https://www.squirrly.co
|
12 |
*/
|
13 |
if(!defined('SQ_VERSION')) {
|
14 |
/* SET THE CURRENT VERSION ABOVE AND BELOW */
|
15 |
+
define('SQ_VERSION', '9.1.19');
|
16 |
|
17 |
// Call config files
|
18 |
try {
|
view/Audits/Audits.php
CHANGED
@@ -106,7 +106,7 @@
|
|
106 |
<div class="card col-sm-12 border-0 m-0 px-0">
|
107 |
<div class="card-body">
|
108 |
<h4 class="card-title"><?php _e('Audits Score', _SQ_PLUGIN_NAME_) ?></h4>
|
109 |
-
<p class="card-subtitle my-1 text-warning"><?php echo sprintf(__('last %s audits', _SQ_PLUGIN_NAME_), count($view->audits)) ?></p>
|
110 |
<div class="card-text mt-2 border">
|
111 |
<?php
|
112 |
if (!empty($view->audits)) {
|
@@ -178,7 +178,7 @@
|
|
178 |
</td>
|
179 |
<td><?php echo $audit->datetime ?></td>
|
180 |
<td style="cursor: pointer" title="<?php echo join("\n", $tasks) ?>">
|
181 |
-
<strong><?php echo count($audit->tasks) ?></strong> <?php _e('tasks found', _SQ_PLUGIN_NAME_) ?>
|
182 |
</td>
|
183 |
|
184 |
</tr>
|
106 |
<div class="card col-sm-12 border-0 m-0 px-0">
|
107 |
<div class="card-body">
|
108 |
<h4 class="card-title"><?php _e('Audits Score', _SQ_PLUGIN_NAME_) ?></h4>
|
109 |
+
<p class="card-subtitle my-1 text-warning"><?php echo sprintf(__('last %s audits', _SQ_PLUGIN_NAME_), count((array)$view->audits)) ?></p>
|
110 |
<div class="card-text mt-2 border">
|
111 |
<?php
|
112 |
if (!empty($view->audits)) {
|
178 |
</td>
|
179 |
<td><?php echo $audit->datetime ?></td>
|
180 |
<td style="cursor: pointer" title="<?php echo join("\n", $tasks) ?>">
|
181 |
+
<strong><?php echo count((array)$audit->tasks) ?></strong> <?php _e('tasks found', _SQ_PLUGIN_NAME_) ?>
|
182 |
</td>
|
183 |
|
184 |
</tr>
|
view/Blocks/FocusPages.php
CHANGED
@@ -24,6 +24,8 @@
|
|
24 |
foreach ($view->focuspages as $index => $focuspage) {
|
25 |
$view->post = $focuspage->getWppost();
|
26 |
|
|
|
|
|
27 |
if (strtotime($focuspage->audit_datetime)) {
|
28 |
$audit_timestamp = strtotime($focuspage->audit_datetime) + ((int)get_option('gmt_offset') * 3600);
|
29 |
$audit_timestamp = date(get_option('date_format') . ' ' . get_option('time_format'), $audit_timestamp);
|
24 |
foreach ($view->focuspages as $index => $focuspage) {
|
25 |
$view->post = $focuspage->getWppost();
|
26 |
|
27 |
+
if(!isset($view->post->url)) continue;
|
28 |
+
|
29 |
if (strtotime($focuspage->audit_datetime)) {
|
30 |
$audit_timestamp = strtotime($focuspage->audit_datetime) + ((int)get_option('gmt_offset') * 3600);
|
31 |
$audit_timestamp = date(get_option('date_format') . ' ' . get_option('time_format'), $audit_timestamp);
|
view/Blocks/Jorney.php
CHANGED
@@ -6,30 +6,49 @@
|
|
6 |
<div class="card col-sm-12 m-0 p-0 border-0 ">
|
7 |
|
8 |
<div class="col-sm-12 m-0 p-3 text-center">
|
9 |
-
|
|
|
|
|
|
|
|
|
10 |
|
11 |
<ul class="stepper horizontal horizontal-fix focused" id="horizontal-stepper-fix">
|
12 |
<?php for ($i = 1; $i <= 14; $i++) { ?>
|
13 |
<li class="step <?php echo(($view->days >= $i) ? 'completed' : '') ?>">
|
14 |
<div class="step-title waves-effect waves-dark">
|
15 |
-
<?php echo(($view->days >= $i) ? '<i class="fa fa-check-circle" style="color: darkcyan;"></i>' : '<i class="fa fa-circle-o" style="color: darkgrey;"></i>') ?>
|
16 |
-
<div><?php echo __('Day', _SQ_PLUGIN_NAME_) . ' ' . $i ?></div>
|
17 |
</div>
|
18 |
</li>
|
19 |
<?php } ?>
|
20 |
</ul>
|
21 |
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
33 |
</div>
|
34 |
|
35 |
</div>
|
@@ -41,5 +60,4 @@
|
|
41 |
|
42 |
</div>
|
43 |
|
44 |
-
</div>
|
45 |
-
<?php return true; ?>
|
6 |
<div class="card col-sm-12 m-0 p-0 border-0 ">
|
7 |
|
8 |
<div class="col-sm-12 m-0 p-3 text-center">
|
9 |
+
<?php if ($view->days > 14) { ?>
|
10 |
+
<h5 class="col-sm-12 card-title py-3 "><?php _e("Congratulations! You've completed the 14 Days Journey To Better Ranking", _SQ_PLUGIN_NAME_); ?></h5>
|
11 |
+
<?php } else { ?>
|
12 |
+
<h2 class="col-sm-12 card-title py-3 "><?php _e("Your 14 Days Journey To Better Ranking", _SQ_PLUGIN_NAME_); ?></h2>
|
13 |
+
<?php } ?>
|
14 |
|
15 |
<ul class="stepper horizontal horizontal-fix focused" id="horizontal-stepper-fix">
|
16 |
<?php for ($i = 1; $i <= 14; $i++) { ?>
|
17 |
<li class="step <?php echo(($view->days >= $i) ? 'completed' : '') ?>">
|
18 |
<div class="step-title waves-effect waves-dark">
|
19 |
+
<?php echo(($view->days >= $i) ? '<a href="https://howto.squirrly.co/wordpress-seo/journey-to-better-ranking-day-' . $i . '/" target="_blank"><i class="fa fa-check-circle" style="color: darkcyan;"></i></a>' : '<i class="fa fa-circle-o" style="color: darkgrey;"></i>') ?>
|
20 |
+
<div><?php echo(($view->days >= $i) ? '<a href="https://howto.squirrly.co/wordpress-seo/journey-to-better-ranking-day-' . $i . '/" target="_blank">' . __('Day', _SQ_PLUGIN_NAME_) . ' ' . $i . '</a>' : __('Day', _SQ_PLUGIN_NAME_) . ' ' . $i) ?></div>
|
21 |
</div>
|
22 |
</li>
|
23 |
<?php } ?>
|
24 |
</ul>
|
25 |
|
26 |
+
<?php if ($view->days > 14) { ?>
|
27 |
+
<em class="text-black-50"><?php echo __("If you missed a day, click on it and read the SEO recipe for it.", _SQ_PLUGIN_NAME_); ?></em>
|
28 |
+
<div class="small text-center my-2">
|
29 |
+
<form method="post" class="p-0 m-0">
|
30 |
+
<?php wp_nonce_field('sq_journey_close', 'sq_nonce'); ?>
|
31 |
+
<input type="hidden" name="action" value="sq_journey_close"/>
|
32 |
+
<button type="submit" class="btn btn-sm text-info btn-link bg-transparent p-0 m-0">
|
33 |
+
<?php echo __("I'm all done. Hide this block.", _SQ_PLUGIN_NAME_) ?>
|
34 |
+
</button>
|
35 |
+
</form>
|
36 |
+
</div>
|
37 |
+
<?php } else { ?>
|
38 |
+
<a href="https://howto.squirrly.co/wordpress-seo/journey-to-better-ranking-day-<?php echo $view->days ?>/" target="_blank" class="btn btn-primary m-2 py-2 px-4" style="font-size: 20px;"><?php echo __('Day', _SQ_PLUGIN_NAME_) . ' ' . $view->days . ': ' . __("Open the SEO recipe for today", _SQ_PLUGIN_NAME_); ?></a>
|
39 |
+
<?php
|
40 |
+
switch ($view->days) {
|
41 |
+
case 1:
|
42 |
+
?>
|
43 |
+
<a href="<?php echo SQ_Classes_Helpers_Tools::getAdminUrl('sq_focuspages', 'addpage') ?>" target="_blank" class="btn btn-success m-2 py-2 px-4" style="font-size: 20px;"><?php echo __("Add a page in Focus Pages", _SQ_PLUGIN_NAME_); ?></a><?php
|
44 |
+
break;
|
45 |
+
case 2:
|
46 |
+
?>
|
47 |
+
<a href="<?php echo SQ_Classes_Helpers_Tools::getAdminUrl('sq_research', 'research') ?>" target="_blank" class="btn btn-success m-2 py-2 px-4" style="font-size: 20px;"><?php echo __("Do Keyword Research", _SQ_PLUGIN_NAME_); ?></a><?php
|
48 |
+
break;
|
49 |
+
}
|
50 |
+
?>
|
51 |
+
<?php } ?>
|
52 |
</div>
|
53 |
|
54 |
</div>
|
60 |
|
61 |
</div>
|
62 |
|
63 |
+
</div>
|
|
view/Blocks/KRFound.php
CHANGED
@@ -35,51 +35,56 @@
|
|
35 |
</thead>
|
36 |
<tbody>
|
37 |
<?php
|
38 |
-
|
39 |
-
$
|
40 |
-
|
|
|
41 |
|
42 |
-
|
43 |
-
|
|
|
|
|
|
|
|
|
44 |
|
45 |
-
|
46 |
-
|
|
|
47 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
48 |
}
|
49 |
-
?>
|
50 |
-
<tr id="sq_row_<?php echo $row->id ?>">
|
51 |
-
<td style="width: 280px;">
|
52 |
-
<span style="display: block; clear: left; float: left;"><?php echo $row->keyword ?></span>
|
53 |
-
</td>
|
54 |
-
<td>
|
55 |
-
<span style="display: block; clear: left; float: left;"><?php echo $row->country ?></span>
|
56 |
-
</td>
|
57 |
-
<td style="width: 150px;">
|
58 |
-
<?php if (isset($research->sc)) { ?>
|
59 |
-
<span style="color: <?php echo $research->sc->color ?>" title="<?php echo __('Competition', _SQ_PLUGIN_NAME_) ?>"><?php echo($research->sc->text <> '' ? $research->sc->text : __('-', _SQ_PLUGIN_NAME_)) ?></span>
|
60 |
-
<?php } ?>
|
61 |
-
</td>
|
62 |
-
<td style="width: 80px;">
|
63 |
-
<?php if (isset($research->sv)) { ?>
|
64 |
-
<span style="color: <?php echo $research->sv->color ?>" title="<?php echo __('SEO Search Volume', _SQ_PLUGIN_NAME_) ?>"><?php echo($research->sv->absolute <> '' ? $research->sv->absolute : __('-', _SQ_PLUGIN_NAME_)) ?></span>
|
65 |
-
<?php } ?>
|
66 |
-
</td>
|
67 |
-
<td style="width: 130px;">
|
68 |
-
<?php if (isset($research->tw)) { ?>
|
69 |
-
<span style="color: <?php echo $research->tw->color ?>" title="<?php echo __('Recent discussions', _SQ_PLUGIN_NAME_) ?>"><?php echo($research->tw->text <> '' ? $research->tw->text : __('-', _SQ_PLUGIN_NAME_)) ?></span>
|
70 |
-
<?php } ?>
|
71 |
-
</td>
|
72 |
-
<td style="width: 120px;">
|
73 |
-
<?php if (isset($research->td)) { ?>
|
74 |
-
<span style="color: <?php echo $research->td->color ?>" title="<?php echo __('Trending', _SQ_PLUGIN_NAME_) ?>"><?php echo($research->td->text <> '' ? $research->td->text : __('-', _SQ_PLUGIN_NAME_)) ?></span>
|
75 |
-
<?php } ?>
|
76 |
-
</td>
|
77 |
-
<td>
|
78 |
-
<button class="btn btn-info btn-sm sq_research_selectit" data-post="<?php echo SQ_Classes_Helpers_Tools::getAdminUrl('sq_assistant') ?>" data-keyword="<?php echo htmlspecialchars(addslashes($row->keyword)) ?>"><?php echo __('Use Keyword', _SQ_PLUGIN_NAME_) ?></button>
|
79 |
-
</td>
|
80 |
-
</tr>
|
81 |
-
<?php
|
82 |
-
}
|
83 |
?>
|
84 |
|
85 |
</tbody>
|
35 |
</thead>
|
36 |
<tbody>
|
37 |
<?php
|
38 |
+
if (!empty($view->keywords))
|
39 |
+
foreach ($view->keywords as $key => $row) {
|
40 |
+
$research = '';
|
41 |
+
$keyword_labels = array();
|
42 |
|
43 |
+
if(!isset($row->id)){
|
44 |
+
continue;
|
45 |
+
}
|
46 |
+
|
47 |
+
if (isset($row->data) && $row->data <> '') {
|
48 |
+
$research = json_decode($row->data);
|
49 |
|
50 |
+
if (isset($research->sv->absolute) && is_numeric($research->sv->absolute)) {
|
51 |
+
$research->sv->absolute = number_format((int)$research->sv->absolute, 0, '', '.');
|
52 |
+
}
|
53 |
}
|
54 |
+
?>
|
55 |
+
<tr id="sq_row_<?php echo $row->id ?>">
|
56 |
+
<td style="width: 280px;">
|
57 |
+
<span style="display: block; clear: left; float: left;"><?php echo $row->keyword ?></span>
|
58 |
+
</td>
|
59 |
+
<td>
|
60 |
+
<span style="display: block; clear: left; float: left;"><?php echo $row->country ?></span>
|
61 |
+
</td>
|
62 |
+
<td style="width: 150px;">
|
63 |
+
<?php if (isset($research->sc)) { ?>
|
64 |
+
<span style="color: <?php echo $research->sc->color ?>" title="<?php echo __('Competition', _SQ_PLUGIN_NAME_) ?>"><?php echo($research->sc->text <> '' ? $research->sc->text : __('-', _SQ_PLUGIN_NAME_)) ?></span>
|
65 |
+
<?php } ?>
|
66 |
+
</td>
|
67 |
+
<td style="width: 80px;">
|
68 |
+
<?php if (isset($research->sv)) { ?>
|
69 |
+
<span style="color: <?php echo $research->sv->color ?>" title="<?php echo __('SEO Search Volume', _SQ_PLUGIN_NAME_) ?>"><?php echo($research->sv->absolute <> '' ? $research->sv->absolute : __('-', _SQ_PLUGIN_NAME_)) ?></span>
|
70 |
+
<?php } ?>
|
71 |
+
</td>
|
72 |
+
<td style="width: 130px;">
|
73 |
+
<?php if (isset($research->tw)) { ?>
|
74 |
+
<span style="color: <?php echo $research->tw->color ?>" title="<?php echo __('Recent discussions', _SQ_PLUGIN_NAME_) ?>"><?php echo($research->tw->text <> '' ? $research->tw->text : __('-', _SQ_PLUGIN_NAME_)) ?></span>
|
75 |
+
<?php } ?>
|
76 |
+
</td>
|
77 |
+
<td style="width: 120px;">
|
78 |
+
<?php if (isset($research->td)) { ?>
|
79 |
+
<span style="color: <?php echo $research->td->color ?>" title="<?php echo __('Trending', _SQ_PLUGIN_NAME_) ?>"><?php echo($research->td->text <> '' ? $research->td->text : __('-', _SQ_PLUGIN_NAME_)) ?></span>
|
80 |
+
<?php } ?>
|
81 |
+
</td>
|
82 |
+
<td>
|
83 |
+
<button class="btn btn-info btn-sm sq_research_selectit" data-post="<?php echo SQ_Classes_Helpers_Tools::getAdminUrl('sq_assistant') ?>" data-keyword="<?php echo htmlspecialchars(addslashes($row->keyword)) ?>"><?php echo __('Use Keyword', _SQ_PLUGIN_NAME_) ?></button>
|
84 |
+
</td>
|
85 |
+
</tr>
|
86 |
+
<?php
|
87 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
88 |
?>
|
89 |
|
90 |
</tbody>
|
view/Blocks/KRHistory.php
CHANGED
@@ -1,10 +1,10 @@
|
|
1 |
<div id="sq_kr" class="mt-5">
|
2 |
<div class="col-sm-12 my-4">
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
</div>
|
9 |
|
10 |
<?php if (isset($view->kr) && !empty($view->kr)) { ?>
|
@@ -20,16 +20,20 @@
|
|
20 |
</thead>
|
21 |
<tbody>
|
22 |
<?php
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
|
|
|
|
|
|
|
|
33 |
</tbody>
|
34 |
</table>
|
35 |
</div>
|
@@ -39,7 +43,7 @@
|
|
39 |
<h5 class="text-center"><?php echo __('See your research results and compare them over time'); ?>:</h5>
|
40 |
<div class="row col-sm-12 my-4">
|
41 |
<div class="col-sm-4 my-0 mx-auto justify-content-center text-center">
|
42 |
-
<h6 onclick="location.href ='<?php echo SQ_Classes_Helpers_Tools::getAdminUrl('sq_research','research') ?>'" class="text-black-50 text-right">
|
43 |
<div style="float: right; cursor: pointer"><?php echo __('Do Keyword Research'); ?></div>
|
44 |
<i class="sq_icons_small sq_kr_icon" style="float: right; width: 20px; cursor: pointer"></i>
|
45 |
</h6>
|
1 |
<div id="sq_kr" class="mt-5">
|
2 |
<div class="col-sm-12 my-4">
|
3 |
+
<div class="col-sm-7 row text-left m-0 p-0">
|
4 |
+
<div class="sq_icons sq_kr_icon m-2"></div>
|
5 |
+
<h3 class="card-title"><?php _e('Keyword Research', _SQ_PLUGIN_NAME_); ?>:</h3>
|
6 |
+
<a href="<?php echo SQ_Classes_Helpers_Tools::getAdminUrl('sq_research', 'history') ?>" class="btn btn-primary m-2" style="max-height: 35px;"><?php _e('See Research History', _SQ_PLUGIN_NAME_) ?></a>
|
7 |
+
</div>
|
8 |
</div>
|
9 |
|
10 |
<?php if (isset($view->kr) && !empty($view->kr)) { ?>
|
20 |
</thead>
|
21 |
<tbody>
|
22 |
<?php
|
23 |
+
if (!empty($view->kr))
|
24 |
+
foreach ($view->kr as $key => $kr) {
|
25 |
+
if (!isset($kr->keyword)) {
|
26 |
+
continue;
|
27 |
+
}
|
28 |
+
?>
|
29 |
+
<tr>
|
30 |
+
<td class="sq_kr_keyword" title="<?php echo $kr->keyword ?>"><?php echo $kr->keyword ?></td>
|
31 |
+
<td><?php echo $kr->country ?></td>
|
32 |
+
<td><?php echo date(get_option('date_format'), strtotime($kr->datetime)) ?></td>
|
33 |
+
</tr>
|
34 |
+
<?php
|
35 |
+
if ($key > 20) break;
|
36 |
+
} ?>
|
37 |
</tbody>
|
38 |
</table>
|
39 |
</div>
|
43 |
<h5 class="text-center"><?php echo __('See your research results and compare them over time'); ?>:</h5>
|
44 |
<div class="row col-sm-12 my-4">
|
45 |
<div class="col-sm-4 my-0 mx-auto justify-content-center text-center">
|
46 |
+
<h6 onclick="location.href ='<?php echo SQ_Classes_Helpers_Tools::getAdminUrl('sq_research', 'research') ?>'" class="text-black-50 text-right">
|
47 |
<div style="float: right; cursor: pointer"><?php echo __('Do Keyword Research'); ?></div>
|
48 |
<i class="sq_icons_small sq_kr_icon" style="float: right; width: 20px; cursor: pointer"></i>
|
49 |
</h6>
|
view/Blocks/Ranks.php
CHANGED
@@ -95,7 +95,7 @@
|
|
95 |
<div class="card ml-0 py-4 px-0 bg-light col-sm-6">
|
96 |
<div class="card-body">
|
97 |
<h4 class="card-title"><?php _e('Keywords', _SQ_PLUGIN_NAME_) ?></h4>
|
98 |
-
<p class="card-subtitle my-1 text-warning"><?php echo count($view->ranks) . ' ' . __('keywords found', _SQ_PLUGIN_NAME_) ?></p>
|
99 |
<div class="card-text" style="max-height: 290px;overflow: hidden; overflow-y: auto;">
|
100 |
<table class="table mt-2">
|
101 |
<tbody> <?php
|
95 |
<div class="card ml-0 py-4 px-0 bg-light col-sm-6">
|
96 |
<div class="card-body">
|
97 |
<h4 class="card-title"><?php _e('Keywords', _SQ_PLUGIN_NAME_) ?></h4>
|
98 |
+
<p class="card-subtitle my-1 text-warning"><?php echo count((array)$view->ranks) . ' ' . __('keywords found', _SQ_PLUGIN_NAME_) ?></p>
|
99 |
<div class="card-text" style="max-height: 290px;overflow: hidden; overflow-y: auto;">
|
100 |
<table class="table mt-2">
|
101 |
<tbody> <?php
|
view/Blocks/Snippet.php
CHANGED
@@ -409,8 +409,8 @@ if (SQ_Classes_Helpers_Tools::getOption('sq_api') <> '') {
|
|
409 |
<div class="sq-small sq-text-black-50 sq-my-1"></div>
|
410 |
</div>
|
411 |
<div class="sq-col-sm-8 sq-p-0 sq-input-group">
|
412 |
-
<select class="sq_jsonld_code_type sq-form-control sq-bg-input sq-mb-1">
|
413 |
-
<option <?php echo(($view->post->sq_adm->jsonld == '') ? 'selected="selected"' : '') ?> value=""><?php echo __('(Auto)', _SQ_PLUGIN_NAME_) ?></option>
|
414 |
<option <?php echo(($view->post->sq_adm->jsonld <> '') ? 'selected="selected"' : '') ?> value="custom"><?php echo __('Custom Code', _SQ_PLUGIN_NAME_) ?></option>
|
415 |
</select>
|
416 |
</div>
|
409 |
<div class="sq-small sq-text-black-50 sq-my-1"></div>
|
410 |
</div>
|
411 |
<div class="sq-col-sm-8 sq-p-0 sq-input-group">
|
412 |
+
<select class="sq_jsonld_code_type sq-form-control sq-bg-input sq-mb-1" name="sq_jsonld_code_type">
|
413 |
+
<option <?php echo(($view->post->sq_adm->jsonld == '') ? 'selected="selected"' : '') ?> value="auto"><?php echo __('(Auto)', _SQ_PLUGIN_NAME_) ?></option>
|
414 |
<option <?php echo(($view->post->sq_adm->jsonld <> '') ? 'selected="selected"' : '') ?> value="custom"><?php echo __('Custom Code', _SQ_PLUGIN_NAME_) ?></option>
|
415 |
</select>
|
416 |
</div>
|
view/Blocks/Stats.php
CHANGED
@@ -1,26 +1,28 @@
|
|
1 |
<?php
|
2 |
-
if
|
3 |
-
|
4 |
-
$col = 0;
|
5 |
-
foreach ($view->stats as $name => $stat) {
|
6 |
-
if ($col % 3 == 0) {
|
7 |
-
echo '<div id="sq_stats" class="row my-1 py-2">';
|
8 |
-
}
|
9 |
-
$col++;
|
10 |
-
?>
|
11 |
-
<div class="col-sm bg-light border rounded m-1 p-4">
|
12 |
-
<div class="sq_stats_text"><?php echo $stat['text'] ?></div>
|
13 |
-
<i class="sq_stats_icon sq_stats_<?php echo $name ?>"></i>
|
14 |
-
<div class="sq_stats_value"><?php echo $stat['value'] ?></div>
|
15 |
-
<div class="col-sm-12 text-right" style="margin-top: -17px;"><?php echo(isset($stat['link']) ? '<a href="' . $stat['link'] . '" >' . $stat['linktext'] . '</a>' : '') ?></div>
|
16 |
-
</div>
|
17 |
<?php
|
18 |
-
|
19 |
-
|
20 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
21 |
|
22 |
|
23 |
-
|
24 |
|
25 |
-
|
|
|
26 |
}
|
1 |
<?php
|
2 |
+
if(isset($view->stats)) {
|
3 |
+
if (count((array)$view->stats) == 6) { ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
<?php
|
5 |
+
$col = 0;
|
6 |
+
foreach ($view->stats as $name => $stat) {
|
7 |
+
if ($col % 3 == 0) {
|
8 |
+
echo '<div id="sq_stats" class="row my-1 py-2">';
|
9 |
+
}
|
10 |
+
$col++;
|
11 |
+
?>
|
12 |
+
<div class="col-sm bg-light border rounded m-1 p-4">
|
13 |
+
<div class="sq_stats_text"><?php echo $stat['text'] ?></div>
|
14 |
+
<i class="sq_stats_icon sq_stats_<?php echo $name ?>"></i>
|
15 |
+
<div class="sq_stats_value"><?php echo $stat['value'] ?></div>
|
16 |
+
<div class="col-sm-12 text-right" style="margin-top: -17px;"><?php echo(isset($stat['link']) ? '<a href="' . $stat['link'] . '" >' . $stat['linktext'] . '</a>' : '') ?></div>
|
17 |
+
</div>
|
18 |
+
<?php
|
19 |
+
if ($col % 3 == 0) {
|
20 |
+
echo '</div>';
|
21 |
+
}
|
22 |
|
23 |
|
24 |
+
} ?>
|
25 |
|
26 |
+
<?php
|
27 |
+
}
|
28 |
}
|
view/Blocks/Support.php
CHANGED
@@ -1,7 +1,8 @@
|
|
1 |
<div id="sq_options" class="card col-sm-12 p-0 m-0 py-2 my-2 border-0">
|
2 |
<ul class="p-0 m-0 mx-3">
|
3 |
<li id="sq_options_dasboard">
|
4 |
-
<?php
|
|
|
5 |
<span class="sq_push" style="display:none;">1</span>
|
6 |
<span class="sq_text"><a href="<?php echo SQ_Classes_RemoteController::getMySquirrlyLink('dashboard') ?>" title="<?php _e('Go to Profile', _SQ_PLUGIN_NAME_) ?>" target="_blank"><span><?php _e('Profile', _SQ_PLUGIN_NAME_) ?></span></a></span>
|
7 |
<a href="<?php echo SQ_Classes_RemoteController::getMySquirrlyLink('dashboard') ?>" title="<?php _e('Profile', _SQ_PLUGIN_NAME_) ?>" target="_blank"><span class="sq_icon"></span></a>
|
@@ -19,7 +20,7 @@
|
|
19 |
<div id="sq_options_close">x</div>
|
20 |
<li><h6 style="font-weight: bold; font-size: 16px; line-height: 35px"><?php echo __('Need Help with Squirrly SEO?', _SQ_PLUGIN_NAME_) ?></h6></li>
|
21 |
|
22 |
-
<li> - <?php echo sprintf(__('10 AM to 4 PM (GMT): Mon-Fri %sby email%s.', _SQ_PLUGIN_NAME_), '<a href="
|
23 |
<li> - <?php echo sprintf(__('How To Squirrly %swebsite%s.', _SQ_PLUGIN_NAME_), '<a href="' . _SQ_HOWTO_URL_ . '" target="_blank">', '</a>') ?> </li>
|
24 |
<li> - <?php echo sprintf(__('Facebook %sSupport Community%s.', _SQ_PLUGIN_NAME_), '<a href="https://www.facebook.com/groups/SquirrlySEOCustomerService/" target="_blank">', '</a>') ?> </li>
|
25 |
<li> - <?php echo sprintf(__('Facebook %sMessenger%s.', _SQ_PLUGIN_NAME_), '<a href="https://www.facebook.com/Squirrly.co/" target="_blank">', '</a>') ?> </li>
|
@@ -49,33 +50,30 @@
|
|
49 |
<table width="100%" cellpadding="2" cellspacing="0" border="0">
|
50 |
<tr>
|
51 |
<td>
|
52 |
-
<label class="sq_label_feedback_smiley sq_label_feedback_0" for="
|
53 |
</td>
|
54 |
<td>
|
55 |
-
<label class="sq_label_feedback_smiley sq_label_feedback_1" for="
|
56 |
</td>
|
57 |
<td>
|
58 |
-
<label class="sq_label_feedback_smiley sq_label_feedback_2" for="
|
59 |
</td>
|
60 |
<td>
|
61 |
-
<label class="sq_label_feedback_smiley sq_label_feedback_3" for="
|
62 |
</td>
|
63 |
<td>
|
64 |
-
<label class="sq_label_feedback_smiley sq_label_feedback_4" for="
|
65 |
</td>
|
66 |
</tr>
|
67 |
</table>
|
68 |
<div id="sq_options_feedback_error"></div>
|
69 |
<p id="sq_feedback_msg" style="display: none;">
|
70 |
-
<?php echo __('Please tell us why.', _SQ_PLUGIN_NAME_) ?>
|
71 |
-
<textarea class="sq_small_input" name="sq_feedback_message" cols="30" rows="2"></textarea>
|
72 |
-
<br/>
|
73 |
<input id="sq_feedback_submit" type="button" value="<?php _e('Send feedback', _SQ_PLUGIN_NAME_) ?>">
|
74 |
</p>
|
75 |
|
76 |
</li>
|
77 |
<li style="margin-top: 10px;"><?php _e('For more support:', _SQ_PLUGIN_NAME_) ?> </li>
|
78 |
-
<li> - <?php echo sprintf(__('10 AM to 4 PM (GMT): Mon-Fri %sby email%s.', _SQ_PLUGIN_NAME_), '<a href="
|
79 |
<li> - <?php echo sprintf(__('How To Squirrly %swebsite%s.', _SQ_PLUGIN_NAME_), '<a href="' . _SQ_HOWTO_URL_ . '" target="_blank">', '</a>') ?> </li>
|
80 |
<li> - <?php echo sprintf(__('Facebook %sSupport Community%s.', _SQ_PLUGIN_NAME_), '<a href="https://www.facebook.com/groups/SquirrlySEOCustomerService/" target="_blank">', '</a>') ?> </li>
|
81 |
<li> - <?php echo sprintf(__('Facebook %sMessenger%s.', _SQ_PLUGIN_NAME_), '<a href="https://www.facebook.com/Squirrly.co/" target="_blank">', '</a>') ?> </li>
|
1 |
<div id="sq_options" class="card col-sm-12 p-0 m-0 py-2 my-2 border-0">
|
2 |
<ul class="p-0 m-0 mx-3">
|
3 |
<li id="sq_options_dasboard">
|
4 |
+
<?php
|
5 |
+
if (SQ_Classes_Helpers_Tools::getMenuVisible('show_panel') && current_user_can('manage_options')) { ?>
|
6 |
<span class="sq_push" style="display:none;">1</span>
|
7 |
<span class="sq_text"><a href="<?php echo SQ_Classes_RemoteController::getMySquirrlyLink('dashboard') ?>" title="<?php _e('Go to Profile', _SQ_PLUGIN_NAME_) ?>" target="_blank"><span><?php _e('Profile', _SQ_PLUGIN_NAME_) ?></span></a></span>
|
8 |
<a href="<?php echo SQ_Classes_RemoteController::getMySquirrlyLink('dashboard') ?>" title="<?php _e('Profile', _SQ_PLUGIN_NAME_) ?>" target="_blank"><span class="sq_icon"></span></a>
|
20 |
<div id="sq_options_close">x</div>
|
21 |
<li><h6 style="font-weight: bold; font-size: 16px; line-height: 35px"><?php echo __('Need Help with Squirrly SEO?', _SQ_PLUGIN_NAME_) ?></h6></li>
|
22 |
|
23 |
+
<li> - <?php echo sprintf(__('10 AM to 4 PM (GMT): Mon-Fri %sby email%s.', _SQ_PLUGIN_NAME_), '<a href="' . _SQ_SUPPORT_EMAIL_ . '">', '</a>') ?> </li>
|
24 |
<li> - <?php echo sprintf(__('How To Squirrly %swebsite%s.', _SQ_PLUGIN_NAME_), '<a href="' . _SQ_HOWTO_URL_ . '" target="_blank">', '</a>') ?> </li>
|
25 |
<li> - <?php echo sprintf(__('Facebook %sSupport Community%s.', _SQ_PLUGIN_NAME_), '<a href="https://www.facebook.com/groups/SquirrlySEOCustomerService/" target="_blank">', '</a>') ?> </li>
|
26 |
<li> - <?php echo sprintf(__('Facebook %sMessenger%s.', _SQ_PLUGIN_NAME_), '<a href="https://www.facebook.com/Squirrly.co/" target="_blank">', '</a>') ?> </li>
|
50 |
<table width="100%" cellpadding="2" cellspacing="0" border="0">
|
51 |
<tr>
|
52 |
<td>
|
53 |
+
<label class="sq_label_feedback_smiley sq_label_feedback_0" for="sq_label_feedback_0"></label><input class="sq_feedback_smiley" type="radio" name="sq_feedback_face" id="sq_label_feedback_0" value="1" title="<?php _e('Angry', _SQ_PLUGIN_NAME_) ?>"/><?php _e("Annoying", _SQ_PLUGIN_NAME_) ?>
|
54 |
</td>
|
55 |
<td>
|
56 |
+
<label class="sq_label_feedback_smiley sq_label_feedback_1" for="sq_label_feedback_1"></label><input class="sq_feedback_smiley" type="radio" name="sq_feedback_face" id="sq_label_feedback_1" value="2" title="<?php _e('Sad', _SQ_PLUGIN_NAME_) ?>"/><?php _e("Bad", _SQ_PLUGIN_NAME_) ?>
|
57 |
</td>
|
58 |
<td>
|
59 |
+
<label class="sq_label_feedback_smiley sq_label_feedback_2" for="sq_label_feedback_2"></label><input class="sq_feedback_smiley" type="radio" name="sq_feedback_face" id="sq_label_feedback_2" value="3" title="<?php _e('Happy', _SQ_PLUGIN_NAME_) ?>"/><?php _e("Nice", _SQ_PLUGIN_NAME_) ?>
|
60 |
</td>
|
61 |
<td>
|
62 |
+
<label class="sq_label_feedback_smiley sq_label_feedback_3" for="sq_label_feedback_3"></label><input class="sq_feedback_smiley" type="radio" name="sq_feedback_face" id="sq_label_feedback_3" value="4" title="<?php _e('Excited', _SQ_PLUGIN_NAME_) ?>"/><?php _e("Great", _SQ_PLUGIN_NAME_) ?>
|
63 |
</td>
|
64 |
<td>
|
65 |
+
<label class="sq_label_feedback_smiley sq_label_feedback_4" for="sq_label_feedback_4"></label><input class="sq_feedback_smiley" type="radio" name="sq_feedback_face" id="sq_label_feedback_4" value="5" title="<?php _e('Love it', _SQ_PLUGIN_NAME_) ?>"/><?php _e("Love it", _SQ_PLUGIN_NAME_) ?>
|
66 |
</td>
|
67 |
</tr>
|
68 |
</table>
|
69 |
<div id="sq_options_feedback_error"></div>
|
70 |
<p id="sq_feedback_msg" style="display: none;">
|
|
|
|
|
|
|
71 |
<input id="sq_feedback_submit" type="button" value="<?php _e('Send feedback', _SQ_PLUGIN_NAME_) ?>">
|
72 |
</p>
|
73 |
|
74 |
</li>
|
75 |
<li style="margin-top: 10px;"><?php _e('For more support:', _SQ_PLUGIN_NAME_) ?> </li>
|
76 |
+
<li> - <?php echo sprintf(__('10 AM to 4 PM (GMT): Mon-Fri %sby email%s.', _SQ_PLUGIN_NAME_), '<a href="' . _SQ_SUPPORT_EMAIL_ . '" target="_blank">', '</a>') ?> </li>
|
77 |
<li> - <?php echo sprintf(__('How To Squirrly %swebsite%s.', _SQ_PLUGIN_NAME_), '<a href="' . _SQ_HOWTO_URL_ . '" target="_blank">', '</a>') ?> </li>
|
78 |
<li> - <?php echo sprintf(__('Facebook %sSupport Community%s.', _SQ_PLUGIN_NAME_), '<a href="https://www.facebook.com/groups/SquirrlySEOCustomerService/" target="_blank">', '</a>') ?> </li>
|
79 |
<li> - <?php echo sprintf(__('Facebook %sMessenger%s.', _SQ_PLUGIN_NAME_), '<a href="https://www.facebook.com/Squirrly.co/" target="_blank">', '</a>') ?> </li>
|
view/Blocks/Toolbar.php
CHANGED
@@ -3,11 +3,18 @@
|
|
3 |
<div class=" container-fluid ">
|
4 |
<div class="justify-content-start" id="navigation">
|
5 |
<ul class="nav navbar-nav mr-auto">
|
|
|
|
|
6 |
|
7 |
-
|
8 |
-
<?php $mainmenu = SQ_Classes_ObjController::getClass('SQ_Models_Menu')->getMainMenu();
|
9 |
if (!empty($mainmenu)) {
|
10 |
foreach ($mainmenu as $menuid => $item) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
//make sure the user has the capabilities
|
12 |
if (current_user_can($item['capability'])) {
|
13 |
if ($menuid <> 'sq_dashboard') {
|
3 |
<div class=" container-fluid ">
|
4 |
<div class="justify-content-start" id="navigation">
|
5 |
<ul class="nav navbar-nav mr-auto">
|
6 |
+
<?php
|
7 |
+
$mainmenu = SQ_Classes_ObjController::getClass('SQ_Models_Menu')->getMainMenu();
|
8 |
|
|
|
|
|
9 |
if (!empty($mainmenu)) {
|
10 |
foreach ($mainmenu as $menuid => $item) {
|
11 |
+
if($menuid == 'sq_audits' && !SQ_Classes_Helpers_Tools::getMenuVisible('show_audit')){
|
12 |
+
continue;
|
13 |
+
}elseif($menuid == 'sq_rankings' && !SQ_Classes_Helpers_Tools::getMenuVisible('show_rankings')){
|
14 |
+
continue;
|
15 |
+
}elseif($menuid == 'sq_focuspages' && !SQ_Classes_Helpers_Tools::getMenuVisible('show_focuspages')){
|
16 |
+
continue;
|
17 |
+
}
|
18 |
//make sure the user has the capabilities
|
19 |
if (current_user_can($item['capability'])) {
|
20 |
if ($menuid <> 'sq_dashboard') {
|
view/Dashboard.php
CHANGED
@@ -24,8 +24,10 @@
|
|
24 |
|
25 |
<?php SQ_Classes_ObjController::getClass('SQ_Core_BlockJorney')->init(); ?>
|
26 |
<?php
|
27 |
-
if
|
28 |
-
SQ_Classes_ObjController::getClass('
|
|
|
|
|
29 |
}
|
30 |
?>
|
31 |
<?php SQ_Classes_ObjController::getClass('SQ_Controllers_CheckSeo')->init(); ?>
|
24 |
|
25 |
<?php SQ_Classes_ObjController::getClass('SQ_Core_BlockJorney')->init(); ?>
|
26 |
<?php
|
27 |
+
if(SQ_Classes_Helpers_Tools::getMenuVisible('show_account_info')) {
|
28 |
+
if (!SQ_Classes_ObjController::getClass('SQ_Core_BlockJorney')->getJourneyDays()) {
|
29 |
+
SQ_Classes_ObjController::getClass('SQ_Core_BlockStats')->init();
|
30 |
+
}
|
31 |
}
|
32 |
?>
|
33 |
<?php SQ_Classes_ObjController::getClass('SQ_Controllers_CheckSeo')->init(); ?>
|
view/FocusPages/FocusPageRow.php
CHANGED
@@ -17,6 +17,7 @@ $call_timestamp = 0;
|
|
17 |
if (get_transient('sq_focuspage_' . $view->post->ID)) {
|
18 |
$call_timestamp = (int)get_transient('sq_focuspage_' . $view->post->ID);
|
19 |
}
|
|
|
20 |
|
21 |
if (isset($view->post->ID) && $view->post->ID > 0) {
|
22 |
?>
|
@@ -48,18 +49,25 @@ if (isset($view->post->ID) && $view->post->ID > 0) {
|
|
48 |
</button>
|
49 |
</form>
|
50 |
</td>
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
61 |
}
|
62 |
} ?>
|
|
|
63 |
<td class="px-0" style="width: 20px">
|
64 |
<div class="sq_sm_menu">
|
65 |
<div class="sm_icon_button sm_icon_options">
|
@@ -87,4 +95,5 @@ if (isset($view->post->ID) && $view->post->ID > 0) {
|
|
87 |
|
88 |
</tr>
|
89 |
<?php
|
|
|
90 |
}
|
17 |
if (get_transient('sq_focuspage_' . $view->post->ID)) {
|
18 |
$call_timestamp = (int)get_transient('sq_focuspage_' . $view->post->ID);
|
19 |
}
|
20 |
+
$categories = apply_filters('sq_assistant_categories_page', $view->focuspage->id);
|
21 |
|
22 |
if (isset($view->post->ID) && $view->post->ID > 0) {
|
23 |
?>
|
49 |
</button>
|
50 |
</form>
|
51 |
</td>
|
52 |
+
<?php if ($view->focuspage->audit_error) { ?>
|
53 |
+
<td colspan="<?php echo count((array)$categories) ?>">
|
54 |
+
<div class="text-danger my-2"><?php echo __('Could not create the audit for this URL', _SQ_PLUGIN_NAME_) ?></div>
|
55 |
+
<div class="text-black-50" style="font-size: 11px"><em><?php echo sprintf(__('The current way your WordPress site is hosted can cause experience issues to the way Squirrly SEO works. %s In order to serve you with the best data, and make sure that the Focus Pages audits can be processed, you will need to talk to your hosting provider and tell them to make the following settings. %s Please add the IP addresses 176.9.59.55 and 176.9.112.210 in the white-list for remote access and it should work.', _SQ_PLUGIN_NAME_),'<br />','<br />') ?></em></div>
|
56 |
+
</td>
|
57 |
+
<?php } else { ?>
|
58 |
+
<td style="min-width: 100px; "><?php echo $view->focuspage->incomplete ?></td>
|
59 |
+
<td style="min-width: 150px;"><?php echo $view->focuspage->visibility . ((int)$view->focuspage->visibility > 0 ? '%' : '') ?></td>
|
60 |
+
|
61 |
+
<?php if (!empty($categories)) {
|
62 |
+
foreach ($categories as $name => $category) { ?>
|
63 |
+
<td style="min-width: 100px; ">
|
64 |
+
<div class="sq_show_assistant <?php echo(($category->value === false) ? 'sq_circle_label' : '') ?>" data-id="<?php echo $view->focuspage->id ?>" data-category="<?php echo $name ?>" style="cursor: pointer; <?php echo(($category->value === false) ? 'background-color' : 'color') ?>: <?php echo $category->color ?>;" title="<?php echo $category->title ?>" <?php echo(($category->value === false) ? 'class="sq_circle_label"' : '') ?>><?php echo(($category->value !== false) ? $category->value : '') ?></div>
|
65 |
+
</td>
|
66 |
+
<?php
|
67 |
+
}
|
68 |
}
|
69 |
} ?>
|
70 |
+
|
71 |
<td class="px-0" style="width: 20px">
|
72 |
<div class="sq_sm_menu">
|
73 |
<div class="sm_icon_button sm_icon_options">
|
95 |
|
96 |
</tr>
|
97 |
<?php
|
98 |
+
|
99 |
}
|
view/FocusPages/Pagelist.php
CHANGED
@@ -124,6 +124,12 @@
|
|
124 |
</div>
|
125 |
</div>
|
126 |
<?php } ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
127 |
</div>
|
128 |
</div>
|
129 |
</div>
|
124 |
</div>
|
125 |
</div>
|
126 |
<?php } ?>
|
127 |
+
|
128 |
+
<div class="card-body">
|
129 |
+
<div class="col-sm-12 my-2 text-black-50">
|
130 |
+
<em><?php echo sprintf(__('%sNote:%s remember that it takes anywhere between %s1 minute to 5 minutes%s to generate the new audit for a focus page. There is a lot of processing involved.'),'<strong>','</strong>','<strong>','</strong>'); ?></em>
|
131 |
+
</div>
|
132 |
+
</div>
|
133 |
</div>
|
134 |
</div>
|
135 |
</div>
|
view/Onboarding/Step2.php
CHANGED
@@ -4,7 +4,7 @@ add_filter('sq_plugins', array(SQ_Classes_ObjController::getClass('SQ_Models_Imp
|
|
4 |
$platforms = apply_filters('sq_importList', false);
|
5 |
|
6 |
$next_step = 'step4';
|
7 |
-
if ($platforms && count($platforms) > 0) {
|
8 |
$next_step = 'step3';
|
9 |
}
|
10 |
?>
|
4 |
$platforms = apply_filters('sq_importList', false);
|
5 |
|
6 |
$next_step = 'step4';
|
7 |
+
if ($platforms && count((array)$platforms) > 0) {
|
8 |
$next_step = 'step3';
|
9 |
}
|
10 |
?>
|
view/Onboarding/Step3.php
CHANGED
@@ -22,7 +22,7 @@
|
|
22 |
add_filter('sq_themes', array(SQ_Classes_ObjController::getClass('SQ_Models_ImportExport'), 'getAvailableThemes'));
|
23 |
add_filter('sq_plugins', array(SQ_Classes_ObjController::getClass('SQ_Models_ImportExport'), 'getAvailablePlugins'));
|
24 |
$platforms = apply_filters('sq_importList', false);
|
25 |
-
if ($platforms && count($platforms) > 0) {
|
26 |
?>
|
27 |
<div class="col-sm-12 card-title pt-4 text-center" style="font-size: 23px; line-height: 35px"><?php _e("We've detected another SEO Plugin on your site.", _SQ_PLUGIN_NAME_); ?></div>
|
28 |
<div class="col-sm-12 m-0 p-3 px-5"><?php echo sprintf(__("Just as you'd never place two different sets of tires on the wheels of your car, you shouldn't use two different plugins for your WordPress SEO. %sSquirrly SEO loads the fastest in all tests done by 3rd parties%s, and keeps you best connected on the SEO road.", _SQ_PLUGIN_NAME_), '<strong>', '</strong>'); ?></div>
|
@@ -36,7 +36,7 @@
|
|
36 |
<div class="col-sm-12 row py-2 mx-0 my-3">
|
37 |
<div class="col-sm-10 offset-1 p-0 input-group">
|
38 |
<?php
|
39 |
-
if ($platforms && count($platforms) > 0) {
|
40 |
?>
|
41 |
<select name="sq_import_platform" class="form-control bg-input mb-1">
|
42 |
<?php
|
@@ -65,6 +65,13 @@
|
|
65 |
<a href="<?php echo SQ_Classes_Helpers_Tools::getAdminUrl('sq_onboarding', 'step4') ?>" class="btn rounded-0 btn-default btn-lg px-5 mx-4 float-sm-right"><?php _e('Skip this step', _SQ_PLUGIN_NAME_); ?></a>
|
66 |
</div>
|
67 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
68 |
<?php } ?>
|
69 |
</div>
|
70 |
|
22 |
add_filter('sq_themes', array(SQ_Classes_ObjController::getClass('SQ_Models_ImportExport'), 'getAvailableThemes'));
|
23 |
add_filter('sq_plugins', array(SQ_Classes_ObjController::getClass('SQ_Models_ImportExport'), 'getAvailablePlugins'));
|
24 |
$platforms = apply_filters('sq_importList', false);
|
25 |
+
if ($platforms && count((array)$platforms) > 0) {
|
26 |
?>
|
27 |
<div class="col-sm-12 card-title pt-4 text-center" style="font-size: 23px; line-height: 35px"><?php _e("We've detected another SEO Plugin on your site.", _SQ_PLUGIN_NAME_); ?></div>
|
28 |
<div class="col-sm-12 m-0 p-3 px-5"><?php echo sprintf(__("Just as you'd never place two different sets of tires on the wheels of your car, you shouldn't use two different plugins for your WordPress SEO. %sSquirrly SEO loads the fastest in all tests done by 3rd parties%s, and keeps you best connected on the SEO road.", _SQ_PLUGIN_NAME_), '<strong>', '</strong>'); ?></div>
|
36 |
<div class="col-sm-12 row py-2 mx-0 my-3">
|
37 |
<div class="col-sm-10 offset-1 p-0 input-group">
|
38 |
<?php
|
39 |
+
if ($platforms && count((array)$platforms) > 0) {
|
40 |
?>
|
41 |
<select name="sq_import_platform" class="form-control bg-input mb-1">
|
42 |
<?php
|
65 |
<a href="<?php echo SQ_Classes_Helpers_Tools::getAdminUrl('sq_onboarding', 'step4') ?>" class="btn rounded-0 btn-default btn-lg px-5 mx-4 float-sm-right"><?php _e('Skip this step', _SQ_PLUGIN_NAME_); ?></a>
|
66 |
</div>
|
67 |
</div>
|
68 |
+
<?php } else { ?>
|
69 |
+
<div class="col-sm-12 card-title pt-4 text-center" style="font-size: 23px; line-height: 35px"><?php _e("We didn't detect other SEO Plugins on your site.", _SQ_PLUGIN_NAME_); ?></div>
|
70 |
+
<div id="sq_onboarding">
|
71 |
+
<div class="col-sm-12 my-3 p-0 py-3 border-top">
|
72 |
+
<a href="<?php echo SQ_Classes_Helpers_Tools::getAdminUrl('sq_onboarding', 'step4') ?>" class="btn rounded-0 btn-success btn-lg px-5 mx-4 float-sm-right"><?php _e('Continue >', _SQ_PLUGIN_NAME_); ?></a>
|
73 |
+
</div>
|
74 |
+
</div>
|
75 |
<?php } ?>
|
76 |
</div>
|
77 |
|
view/Ranking/Rankings.php
CHANGED
@@ -3,7 +3,7 @@ $date_format = get_option('date_format');
|
|
3 |
$time_format = get_option('time_format');
|
4 |
$timezone = (int)get_option('gmt_offset');
|
5 |
$connect = json_decode(json_encode(SQ_Classes_Helpers_Tools::getOption('connect')));
|
6 |
-
|
7 |
?>
|
8 |
<div id="sq_wrap">
|
9 |
<?php SQ_Classes_ObjController::getClass('SQ_Core_BlockToolbar')->init(); ?>
|
@@ -35,17 +35,19 @@ $connect = json_decode(json_encode(SQ_Classes_Helpers_Tools::getOption('connect'
|
|
35 |
|
36 |
<div id="sq_ranks" class="card col-sm-12 p-0 tab-panel border-0">
|
37 |
<?php
|
38 |
-
if (
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
|
|
|
|
47 |
|
48 |
-
|
49 |
<div class="form-group my-5 col-sm-8 offset-2">
|
50 |
<?php echo $view->getView('Connect/GoogleSearchConsole'); ?>
|
51 |
</div>
|
@@ -91,7 +93,7 @@ $connect = json_decode(json_encode(SQ_Classes_Helpers_Tools::getOption('connect'
|
|
91 |
<span class="info-box-title my-2" style="display: block; clear: both; padding: 5px 0 0 0;"><?php _e('Today Avg. Ranking', _SQ_PLUGIN_NAME_); ?></span>
|
92 |
</div>
|
93 |
<?php
|
94 |
-
if (isset($view->info->average) && count($view->info->average) > 1) {
|
95 |
echo $view->getScripts();
|
96 |
foreach ($view->info->average as $key => $average) {
|
97 |
if ($key > 0 && !empty($view->info->average[$key])) {
|
@@ -244,7 +246,7 @@ $connect = json_decode(json_encode(SQ_Classes_Helpers_Tools::getOption('connect'
|
|
244 |
</div>
|
245 |
<tr>
|
246 |
<td><span><?php echo $row->keyword ?></span></td>
|
247 |
-
<?php if (!$row->permalink) { ?>
|
248 |
<td style="color: #919aa2; font-style: italic">
|
249 |
<?php echo __('Google Search Console has no data for this keyword', _SQ_PLUGIN_NAME_) ?>
|
250 |
<br/>
|
@@ -269,7 +271,7 @@ $connect = json_decode(json_encode(SQ_Classes_Helpers_Tools::getOption('connect'
|
|
269 |
<?php if ($view->checkin->subscription_serpcheck) { ?>
|
270 |
<td>
|
271 |
<?php
|
272 |
-
echo(!$row->rank ? '<span style="font-size:
|
273 |
if (isset($row->change)) {
|
274 |
echo(($row->change) ? sprintf('<span class="badge badge-' . ($row->change < 0 ? 'success' : 'danger') . ' mx-2"><i class="fa fa-sort-%s"></i><span> </span><span>%s</span></span>', ($row->change < 0 ? 'up' : 'down'), $row->change) : '');
|
275 |
}
|
3 |
$time_format = get_option('time_format');
|
4 |
$timezone = (int)get_option('gmt_offset');
|
5 |
$connect = json_decode(json_encode(SQ_Classes_Helpers_Tools::getOption('connect')));
|
6 |
+
$view->checkin->subscription_serpcheck = (isset($view->checkin->subscription_serpcheck) ? $view->checkin->subscription_serpcheck : 0);
|
7 |
?>
|
8 |
<div id="sq_wrap">
|
9 |
<?php SQ_Classes_ObjController::getClass('SQ_Core_BlockToolbar')->init(); ?>
|
35 |
|
36 |
<div id="sq_ranks" class="card col-sm-12 p-0 tab-panel border-0">
|
37 |
<?php
|
38 |
+
if (SQ_Classes_Helpers_Tools::getMenuVisible('show_ads')) {
|
39 |
+
if ($view->checkin->subscription_serpcheck) {
|
40 |
+
echo '<div class="alert alert-success text-center">';
|
41 |
+
echo sprintf(__("%sSERP Checker Business:%s We update the best ranks for each keyword, daily. 100%% accurate and objective.", _SQ_PLUGIN_NAME_), '<strong>', '</strong>');
|
42 |
+
echo '</div>';
|
43 |
+
} else {
|
44 |
+
echo '<div class="alert alert-warning text-center">';
|
45 |
+
echo sprintf(__("%sSERP Checker Lite:%s We show ranks according to what Google shows you in Google Search Console. Positions shown by GSC are averages, not exact positions in SERPs. To have your rankings checked daily please upgrade your plan to %sBusiness Plan%s", _SQ_PLUGIN_NAME_), '<strong>', '</strong>', '<a href="' . SQ_Classes_RemoteController::getMySquirrlyLink('plans') . '" target="_blank"><strong>', '</strong></a>');
|
46 |
+
echo '</div>';
|
47 |
+
}
|
48 |
+
}
|
49 |
|
50 |
+
if (!$connect->google_search_console) { ?>
|
51 |
<div class="form-group my-5 col-sm-8 offset-2">
|
52 |
<?php echo $view->getView('Connect/GoogleSearchConsole'); ?>
|
53 |
</div>
|
93 |
<span class="info-box-title my-2" style="display: block; clear: both; padding: 5px 0 0 0;"><?php _e('Today Avg. Ranking', _SQ_PLUGIN_NAME_); ?></span>
|
94 |
</div>
|
95 |
<?php
|
96 |
+
if (isset($view->info->average) && count((array)$view->info->average) > 1) {
|
97 |
echo $view->getScripts();
|
98 |
foreach ($view->info->average as $key => $average) {
|
99 |
if ($key > 0 && !empty($view->info->average[$key])) {
|
246 |
</div>
|
247 |
<tr>
|
248 |
<td><span><?php echo $row->keyword ?></span></td>
|
249 |
+
<?php if (!$row->permalink && !$view->checkin->subscription_serpcheck) { ?>
|
250 |
<td style="color: #919aa2; font-style: italic">
|
251 |
<?php echo __('Google Search Console has no data for this keyword', _SQ_PLUGIN_NAME_) ?>
|
252 |
<br/>
|
271 |
<?php if ($view->checkin->subscription_serpcheck) { ?>
|
272 |
<td>
|
273 |
<?php
|
274 |
+
echo(!$row->rank ? '<span style="font-size: 13px">' . __('Not indexed', _SQ_PLUGIN_NAME_) . '</span>' : (int)$row->rank);
|
275 |
if (isset($row->change)) {
|
276 |
echo(($row->change) ? sprintf('<span class="badge badge-' . ($row->change < 0 ? 'success' : 'danger') . ' mx-2"><i class="fa fa-sort-%s"></i><span> </span><span>%s</span></span>', ($row->change < 0 ? 'up' : 'down'), $row->change) : '');
|
277 |
}
|
view/Research/Briefcase.php
CHANGED
@@ -24,15 +24,11 @@
|
|
24 |
<h3 class="card-title text-dark p-2"><?php _e('Labels', _SQ_PLUGIN_NAME_); ?>:</h3>
|
25 |
</div>
|
26 |
<div class="col-sm-9 p-0 py-2">
|
27 |
-
<div class="
|
28 |
-
<
|
29 |
-
|
30 |
-
<input type="submit" class="btn btn-primary" value="<?php echo __('Search Keyword', _SQ_PLUGIN_NAME_) ?>"/>
|
31 |
-
</div>
|
32 |
<?php if (SQ_Classes_Helpers_Tools::getIsset('skeyword') || SQ_Classes_Helpers_Tools::getIsset('slabel')) { ?>
|
33 |
-
<
|
34 |
-
<button type="button" class="btn btn-info p-v-xs" onclick="location.href = '<?php echo SQ_Classes_Helpers_Tools::getAdminUrl('sq_research', 'briefcase') ?>';" style="cursor: pointer"><?php echo __('Show All') ?></button>
|
35 |
-
</div>
|
36 |
<?php } ?>
|
37 |
</div>
|
38 |
</div>
|
@@ -185,7 +181,7 @@
|
|
185 |
<?php if (!$row->rankcount) { ?>
|
186 |
<?php echo __('N/A', _SQ_PLUGIN_NAME_) ?>
|
187 |
<?php } else { ?>
|
188 |
-
<a href="<?php echo SQ_Classes_Helpers_Tools::getAdminUrl('sq_rankings') . '&skeyword=' . htmlspecialchars($row->keyword) ?>" target="_blank"><?php echo
|
189 |
<?php } ?>
|
190 |
</td>
|
191 |
<td>
|
24 |
<h3 class="card-title text-dark p-2"><?php _e('Labels', _SQ_PLUGIN_NAME_); ?>:</h3>
|
25 |
</div>
|
26 |
<div class="col-sm-9 p-0 py-2">
|
27 |
+
<div class="d-flex flex-row justify-content-end p-0 m-0">
|
28 |
+
<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 htmlspecialchars(SQ_Classes_Helpers_Tools::getValue('skeyword')) ?>"/>
|
29 |
+
<input type="submit" class="btn btn-primary" value="<?php echo __('Search Keyword', _SQ_PLUGIN_NAME_) ?>"/>
|
|
|
|
|
30 |
<?php if (SQ_Classes_Helpers_Tools::getIsset('skeyword') || SQ_Classes_Helpers_Tools::getIsset('slabel')) { ?>
|
31 |
+
<button type="button" class="btn btn-info ml-1 p-v-xs" onclick="location.href = '<?php echo SQ_Classes_Helpers_Tools::getAdminUrl('sq_research', 'briefcase') ?>';" style="cursor: pointer"><?php echo __('Show All') ?></button>
|
|
|
|
|
32 |
<?php } ?>
|
33 |
</div>
|
34 |
</div>
|
181 |
<?php if (!$row->rankcount) { ?>
|
182 |
<?php echo __('N/A', _SQ_PLUGIN_NAME_) ?>
|
183 |
<?php } else { ?>
|
184 |
+
<a href="<?php echo SQ_Classes_Helpers_Tools::getAdminUrl('sq_rankings') . '&skeyword=' . htmlspecialchars($row->keyword) ?>" target="_blank"><?php echo __('Keyword Ranked', _SQ_PLUGIN_NAME_) ?></a>
|
185 |
<?php } ?>
|
186 |
</td>
|
187 |
<td>
|
view/Research/Research.php
CHANGED
@@ -151,6 +151,7 @@
|
|
151 |
</div>
|
152 |
<div class="sq_step sq_step4 col-sm-12 my-2 px-0" style="display: none">
|
153 |
<h4 class="sq_research_success text-success text-center my-2" style="display: none"><?php echo __('We found some relevant keywords for you', _SQ_PLUGIN_NAME_) ?></h4>
|
|
|
154 |
<h4 class="sq_research_error text-warning text-center" style="display: none"><?php echo __('We could not find relevant keywords for you', _SQ_PLUGIN_NAME_) ?></h4>
|
155 |
<table class="table table-light table-striped table-hover" style="display: none">
|
156 |
<thead class="thead-dark">
|
151 |
</div>
|
152 |
<div class="sq_step sq_step4 col-sm-12 my-2 px-0" style="display: none">
|
153 |
<h4 class="sq_research_success text-success text-center my-2" style="display: none"><?php echo __('We found some relevant keywords for you', _SQ_PLUGIN_NAME_) ?></h4>
|
154 |
+
<h4 class="sq_research_timeout_error text-warning text-center" style="display: none"><?php echo sprintf(__('Process timeout. Please check the results at %sResearch History%s.', _SQ_PLUGIN_NAME_), '<a href="' . SQ_Classes_Helpers_Tools::getAdminUrl('sq_research', 'history') . '" >', '</a>') ?></h4>
|
155 |
<h4 class="sq_research_error text-warning text-center" style="display: none"><?php echo __('We could not find relevant keywords for you', _SQ_PLUGIN_NAME_) ?></h4>
|
156 |
<table class="table table-light table-striped table-hover" style="display: none">
|
157 |
<thead class="thead-dark">
|
view/Research/ResearchDetails.php
CHANGED
@@ -14,9 +14,9 @@ if (!empty($view->kr)) {
|
|
14 |
<tr class="<?php echo($in_briefcase ? 'bg-briefcase' : '') ?>">
|
15 |
<td style="width: 280px;"><?php echo(isset($row->keyword) ? $row->keyword : '') ?></td>
|
16 |
<td style="width: 80px;"><?php echo(isset($view->country) ? $view->country : '') ?></td>
|
17 |
-
<td style="width: 150px; color: <?php echo $row->stats->sc->color ?>"><?php echo(isset($row->stats->sc->text) ? $row->stats->sc->text : '') ?></td>
|
18 |
-
<td style="width: 100px; color: <?php echo $row->stats->sv->color ?>"><?php echo(isset($row->stats->sv) ? (is_numeric($row->stats->sv->absolute) ? number_format($row->stats->sv->absolute, 0, '','.') : $row->stats->sv->absolute) : '') ?></td>
|
19 |
-
<td style="width: 130px; color: <?php echo $row->stats->tw->color ?>"><?php echo(isset($row->stats->tw) ? $row->stats->tw->text : '') ?></td>
|
20 |
<td style="width: 100px; color: <?php echo $row->stats->td->color ?>">
|
21 |
<?php if (isset($row->stats->td)) { ?>
|
22 |
<div style="width: 60px; height: 30px;">
|
14 |
<tr class="<?php echo($in_briefcase ? 'bg-briefcase' : '') ?>">
|
15 |
<td style="width: 280px;"><?php echo(isset($row->keyword) ? $row->keyword : '') ?></td>
|
16 |
<td style="width: 80px;"><?php echo(isset($view->country) ? $view->country : '') ?></td>
|
17 |
+
<td style="width: 150px; color: <?php echo $row->stats->sc->color ?>"><?php echo(isset($row->stats->sc->text) ? '<span data-value="' . $row->stats->sc->value . '">' . $row->stats->sc->text . '</span>' : '') ?></td>
|
18 |
+
<td style="width: 100px; color: <?php echo $row->stats->sv->color ?>"><?php echo(isset($row->stats->sv) ? '<span data-value="' . $row->stats->sv->value . '">' . (is_numeric($row->stats->sv->absolute) ? number_format($row->stats->sv->absolute, 0, '', '.') . '</span>' : $row->stats->sv->absolute) : '') ?></td>
|
19 |
+
<td style="width: 130px; color: <?php echo $row->stats->tw->color ?>"><?php echo(isset($row->stats->tw) ? '<span data-value="' . $row->stats->tw->value . '">' . $row->stats->tw->text . '</span>' : '') ?></td>
|
20 |
<td style="width: 100px; color: <?php echo $row->stats->td->color ?>">
|
21 |
<?php if (isset($row->stats->td)) { ?>
|
22 |
<div style="width: 60px; height: 30px;">
|
view/SeoSettings/Automation.php
CHANGED
@@ -76,7 +76,7 @@
|
|
76 |
<div class="tab-content flex-grow-1 border-top border-right border-bottom">
|
77 |
<?php foreach (SQ_Classes_Helpers_Tools::getOption('patterns') as $pattern => $type) { ?>
|
78 |
|
79 |
-
<div class="tab-pane
|
80 |
<h4 class="col-sm-12 py-3 text-center text-black"><?php echo ucwords(str_replace(array('-', '_'), ' ', $pattern)); ?></h4>
|
81 |
|
82 |
<div id="sq_seosettings" class="col-sm-12 pt-0 pb-4 border-bottom tab-panel <?php echo(SQ_Classes_Helpers_Tools::getOption('sq_auto_pattern') ? '' : 'sq_deactivated') ?>">
|
@@ -122,7 +122,6 @@
|
|
122 |
|
123 |
<div class="col-sm-12 row mb-1 ml-1">
|
124 |
|
125 |
-
|
126 |
<div class="checker col-sm-12 row my-2 py-1">
|
127 |
|
128 |
<?php if (!SQ_Classes_Helpers_Tools::getOption('sq_auto_metas')) { ?>
|
76 |
<div class="tab-content flex-grow-1 border-top border-right border-bottom">
|
77 |
<?php foreach (SQ_Classes_Helpers_Tools::getOption('patterns') as $pattern => $type) { ?>
|
78 |
|
79 |
+
<div class="tab-pane <?php if ($pattern == 'home') { ?>show active<?php } ?>" id="nav-<?php echo $pattern ?>" role="tabpanel" aria-labelledby="nav-<?php echo $pattern ?>-tab">
|
80 |
<h4 class="col-sm-12 py-3 text-center text-black"><?php echo ucwords(str_replace(array('-', '_'), ' ', $pattern)); ?></h4>
|
81 |
|
82 |
<div id="sq_seosettings" class="col-sm-12 pt-0 pb-4 border-bottom tab-panel <?php echo(SQ_Classes_Helpers_Tools::getOption('sq_auto_pattern') ? '' : 'sq_deactivated') ?>">
|
122 |
|
123 |
<div class="col-sm-12 row mb-1 ml-1">
|
124 |
|
|
|
125 |
<div class="checker col-sm-12 row my-2 py-1">
|
126 |
|
127 |
<?php if (!SQ_Classes_Helpers_Tools::getOption('sq_auto_metas')) { ?>
|
view/SeoSettings/Backup.php
CHANGED
@@ -42,7 +42,7 @@
|
|
42 |
</div>
|
43 |
<div class="col-sm-8 p-0 input-group">
|
44 |
<?php
|
45 |
-
if ($platforms && count($platforms) > 0) {
|
46 |
?>
|
47 |
<select name="sq_import_platform" class="form-control bg-input mb-1">
|
48 |
<?php
|
@@ -70,7 +70,7 @@
|
|
70 |
</div>
|
71 |
<div class="col-sm-8 p-0 input-group">
|
72 |
<?php
|
73 |
-
if ($platforms && count($platforms) > 0) {
|
74 |
?>
|
75 |
<select name="sq_import_platform" class="form-control bg-input mb-1">
|
76 |
<?php
|
42 |
</div>
|
43 |
<div class="col-sm-8 p-0 input-group">
|
44 |
<?php
|
45 |
+
if ($platforms && count((array)$platforms) > 0) {
|
46 |
?>
|
47 |
<select name="sq_import_platform" class="form-control bg-input mb-1">
|
48 |
<?php
|
70 |
</div>
|
71 |
<div class="col-sm-8 p-0 input-group">
|
72 |
<?php
|
73 |
+
if ($platforms && count((array)$platforms) > 0) {
|
74 |
?>
|
75 |
<select name="sq_import_platform" class="form-control bg-input mb-1">
|
76 |
<?php
|
view/SeoSettings/Bulkseo.php
CHANGED
@@ -186,6 +186,7 @@
|
|
186 |
</table>
|
187 |
<div class="nav-previous alignleft"><?php the_posts_pagination(array(
|
188 |
'mid_size' => 3,
|
|
|
189 |
'format' => '?spage=%#%',
|
190 |
'prev_text' => __('Prev Page', _SQ_PLUGIN_NAME_),
|
191 |
'next_text' => __('Next Page', _SQ_PLUGIN_NAME_),
|
186 |
</table>
|
187 |
<div class="nav-previous alignleft"><?php the_posts_pagination(array(
|
188 |
'mid_size' => 3,
|
189 |
+
'base' => 'admin.php%_%',
|
190 |
'format' => '?spage=%#%',
|
191 |
'prev_text' => __('Prev Page', _SQ_PLUGIN_NAME_),
|
192 |
'next_text' => __('Next Page', _SQ_PLUGIN_NAME_),
|
view/SeoSettings/Jsonld.php
CHANGED
@@ -181,7 +181,33 @@
|
|
181 |
|
182 |
|
183 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
184 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
185 |
</div>
|
186 |
</div>
|
187 |
|
181 |
|
182 |
|
183 |
</div>
|
184 |
+
<div class="bg-title p-2 sq_advanced">
|
185 |
+
<h3 class="card-title"><?php _e('More Json-LD Settings', _SQ_PLUGIN_NAME_); ?>:</h3>
|
186 |
+
</div>
|
187 |
+
<div class="col-sm-12 py-4 border-bottom tab-panel sq_advanced">
|
188 |
+
<div class="col-sm-12 row mb-1 ml-1 sq_advanced">
|
189 |
+
<div class="checker col-sm-12 row my-2 py-1">
|
190 |
+
<div class="col-sm-12 p-0 sq-switch sq-switch-sm">
|
191 |
+
<input type="hidden" name="sq_jsonld_breadcrumbs" value="0"/>
|
192 |
+
<input type="checkbox" id="sq_jsonld_breadcrumbs" name="sq_jsonld_breadcrumbs" class="sq-switch" <?php echo(SQ_Classes_Helpers_Tools::getOption('sq_jsonld_breadcrumbs') ? 'checked="checked"' : '') ?> value="1"/>
|
193 |
+
<label for="sq_jsonld_breadcrumbs" class="ml-2"><?php _e('Add BreadcrumbsList in Json-LD ', _SQ_PLUGIN_NAME_); ?></label>
|
194 |
+
<div class="offset-1 small text-black-50"><?php _e('Add the BreadcrumbsList Schema into Json-LD including all parent categories.', _SQ_PLUGIN_NAME_); ?></div>
|
195 |
+
</div>
|
196 |
+
</div>
|
197 |
+
</div>
|
198 |
|
199 |
+
<div class="col-sm-12 row mb-1 ml-1">
|
200 |
+
<div class="checker col-sm-12 row my-2 py-1">
|
201 |
+
<div class="col-sm-12 p-0 sq-switch sq-switch-sm">
|
202 |
+
<input type="hidden" name="sq_jsonld_clearcode" value="0"/>
|
203 |
+
<input type="checkbox" id="sq_jsonld_clearcode" name="sq_jsonld_clearcode" class="sq-switch" <?php echo(SQ_Classes_Helpers_Tools::getOption('sq_jsonld_clearcode') ? 'checked="checked"' : '') ?> value="1"/>
|
204 |
+
<label for="sq_jsonld_clearcode" class="ml-2"><?php _e('Remove other Json-LD from page', _SQ_PLUGIN_NAME_); ?></label>
|
205 |
+
<div class="offset-1 small text-black-50"><?php _e('Clear the Json-LD from other plugins and theme to avoid duplicate schemas.', _SQ_PLUGIN_NAME_); ?></div>
|
206 |
+
</div>
|
207 |
+
</div>
|
208 |
+
</div>
|
209 |
+
|
210 |
+
</div>
|
211 |
</div>
|
212 |
</div>
|
213 |
|
view/SeoSettings/Metas.php
CHANGED
@@ -141,7 +141,7 @@
|
|
141 |
</div>
|
142 |
|
143 |
|
144 |
-
<?php if (
|
145 |
|
146 |
<div class="bg-title p-2">
|
147 |
<h3 class="card-title"><?php _e('First Page Optimization', _SQ_PLUGIN_NAME_); ?>:</h3>
|
141 |
</div>
|
142 |
|
143 |
|
144 |
+
<?php if ( !get_option('page_on_front')) { ?>
|
145 |
|
146 |
<div class="bg-title p-2">
|
147 |
<h3 class="card-title"><?php _e('First Page Optimization', _SQ_PLUGIN_NAME_); ?>:</h3>
|
view/assets/css/global.css
CHANGED
@@ -120,11 +120,11 @@ body {
|
|
120 |
}
|
121 |
|
122 |
.sq_error {
|
123 |
-
background-color:
|
|
|
124 |
text-align: center;
|
125 |
font-size: 15px;
|
126 |
font-weight: bold;
|
127 |
-
color: brown;
|
128 |
}
|
129 |
|
130 |
.sq_success {
|
@@ -739,3 +739,22 @@ button.btn-success {
|
|
739 |
content: ""
|
740 |
}
|
741 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
120 |
}
|
121 |
|
122 |
.sq_error {
|
123 |
+
background-color: darkred !important;
|
124 |
+
color: white !important;
|
125 |
text-align: center;
|
126 |
font-size: 15px;
|
127 |
font-weight: bold;
|
|
|
128 |
}
|
129 |
|
130 |
.sq_success {
|
739 |
content: ""
|
740 |
}
|
741 |
|
742 |
+
/* Bootstrap Modal Workaround */
|
743 |
+
|
744 |
+
.fade.in {
|
745 |
+
opacity: 1;
|
746 |
+
}
|
747 |
+
.modal.in .modal-dialog {
|
748 |
+
-webkit-transform: translate(0, 0);
|
749 |
+
-o-transform: translate(0, 0);
|
750 |
+
transform: translate(0, 0);
|
751 |
+
}
|
752 |
+
|
753 |
+
.modal-backdrop .fade .in {
|
754 |
+
opacity: 0.5 !important;
|
755 |
+
}
|
756 |
+
|
757 |
+
|
758 |
+
.modal-backdrop.fade {
|
759 |
+
opacity: 0.5 !important;
|
760 |
+
}
|
view/assets/css/global.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
@import 'logo.css';@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.3.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.3.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.3.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.3.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.3.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.3.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}#update-nag,.notice-error,.update-nag,.updated,.show-settings,.screen-meta-toggle,.notice-warning,div.fs-notice.updated,div.fs-notice.success,div.fs-notice.promotion,div.error,.notice:not(.sq_notice){display:none !important}#wpbody-content{float:none !important}#wpfooter{display:none}#wpwrap{background:white !important}body{font-family:'Open Sans',Arial,Helvetica,sans-serif;font-size:14px;background-color:#fff}#wpcontent{padding:0}#wpcontent .bg-light{background-color:#fdfdfd !important}#wpcontent .bg-briefcase{background-color:#e1f5e3 !important}#wpcontent .content{min-width:600px;max-width:1020px;margin:auto}#wpcontent h3{font-weight:400;line-height:50px}#wpcontent .card .card-title{margin:0;color:#4f1440;font-weight:400}#wpcontent .sq_deactivated{position:relative}#wpcontent .sq_deactivated:before{content:" ";position:absolute;height:calc(100% + 20px);width:100%;background:#f1f1f1;opacity:.7;top:-10px;z-index:1000;cursor:pointer;border-radius:6px}#wpcontent .sq_deactivated_label{position:absolute !important;z-index:1001;right:0}.sq_fixed{position:fixed;z-index:100;top:32px;left:0;margin:0;border-top:2px solid white;border-bottom:2px solid white}.sq_notice{top:28px;text-align:center;width:100%}.sq_notice.sq_notice>div{display:block;margin:0 !important;width:100% !important;line-height:40px;background-color:lightgoldenrodyellow}.sq_notice.sq_notice>div.sq_success{background-color:#20bc49}.sq_notices{font-size:13px;color:#555}.sq_error{background-color:lightyellow;text-align:center;font-size:15px;font-weight:bold;color:brown}.sq_success{background-color:#20bc49 !important;line-height:30px;text-align:center;font-size:16px;font-weight:bold;color:white}.sq_success a{color:#4f47be;text-decoration:none}.sq_deactivated{opacity:.3}#sq_wrap .flex-grow-1{min-width:620px}#sq_wrap .small{font-size:90%;line-height:20px}#sq_wrap .sq_nav{flex:0 0 225px}#sq_wrap .row>div.input-group{display:flex !important}#sq_wrap .row{float:none !important;width:auto !important}#sq_wrap .btn-primary{background-color:#2680b4 !important;border-color:transparent}#sq_wrap .btn{border-radius:0}#sq_wrap .btn-primary:hover{background-color:#256d9c !important}#sq_wrap .input-group>button.btn,#sq_wrap .input-group>input{max-height:47px}#sq_wrap .bg-title{margin:2px;background-color:#f8f9fa !important;color:#505663 !important}#sq_wrap .bg-light{background-color:#fdfdfd !important}#sq_wrap .bg-google{background-color:#e37400 !important;color:white !important}#sq_wrap .bg-googlesc{background-color:#455a64 !important;color:white !important}#sq_wrap .bg-primary{background-color:#2680b4 !important;color:white !important}#sq_wrap .bg-warning{background-color:#f7681a !important;color:white !important}button.btn-green{color:#fff;background-color:#28a745 !important;border-color:#28a745 !important}button.btn-success{color:#fff;background-color:#589ee4;border-color:transparent}#sq_wrap .table .thead-dark th{color:#fff;background-color:#948691;border-color:#897b86;z-index:1;top:0;position:sticky}#sq_wrap .table-striped tbody tr.odd{background-color:rgba(151,147,147,0.05)}#sq_wrap .table-striped tbody tr.even{background-color:#fff}#sq_wrap .table-hover tbody tr:hover{background-color:rgba(230,226,226,0.03)}#sq_wrap .text-link{color:#2680b4 !important}#sq_wrap .sq_row{position:relative;flex:1 1 auto}#sq_wrap .sq_col_side{flex:0 0 300px}#sq_wrap button.btn-success{color:#fff;background-color:#589ee4;border-color:transparent}#sq_wrap button.btn-success:hover{background-color:#4c81bd}#sq_wrap .btn-primary:not(:disabled):not(.disabled).active,#sq_wrap .btn-primary:not(:disabled):not(.disabled):active,#sq_wrap .show>.btn-primary.dropdown-toggle{background-color:#2777aa}#sq_wrap .btn-primary:hover{background-color:#2674a7;border-color:transparent}#sq_wrap .btn-warning{background-color:#f2ca4c;border-color:transparent}#sq_wrap .btn-warning:hover{background-color:#e6be4b;border-color:transparent}#sq_wrap .bg-cta{background-color:#694861 !important}#sq_wrap a:not(.btn):not(.sq-btn):not(.sq-nav-link){color:#f16112;text-decoration:none}#sq_wrap a:not(.btn):not(.sq-btn):not(.sq-nav-link):hover{color:#f14644}#sq_wrap h4 .fa:before{margin-right:3px}.wp-admin #sq_wrap select{padding:.375em .75em;line-height:1.5;height:calc(2.25em + 2px);vertical-align:middle;background-color:#e5f5dd}.wp-admin #sq_seosettings_bulkseo select{height:calc(2.55em + 2px)}.wp-admin #sq_wrap select.bg-input{height:calc(2.875em + 2px);padding:.5em 1em;font-size:1.25em;line-height:1.5;border-radius:.3em;background-color:#e5f5dd}.wp-admin #sq_wrap input[type=text]:not(.wp-color-picker),.wp-admin #sq_wrap textarea{background-color:#e5f5dd;padding:.680em .75em}.sq_icons{float:left;width:35px;height:35px;-webkit-filter:invert(40%) grayscale(100%) brightness(40%) sepia(100%) hue-rotate(-50deg) saturate(400%) contrast(2);filter:grayscale(100%) brightness(40%) sepia(100%) hue-rotate(-50deg) saturate(600%) contrast(0.8)}.sq_icons_small{display:block;float:left;margin:0 10px 0 0;height:30px;width:30px}.sq_icons.sq_icon_package{float:none;display:inline-block;margin:auto;background-repeat:no-repeat;background-position:center;background-size:70%;background-color:#f5922f;background-image:url("../img/logos/package.png")}.sq_kr_icon{background:transparent url('../img/logos/kr_92.png') no-repeat;background-size:100%}.sq_krfound_icon{background:transparent url('../img/logos/briefcase_92.png') no-repeat;background-size:100%}.sq_audits_icon{background:transparent url('../img/logos/audit_92.png') no-repeat;background-size:100%}.sq_briefcase_icon{background:transparent url('../img/logos/briefcase_92.png') no-repeat;background-size:100%}.sq_labels_icon{background:transparent url('../img/logos/labels_92.png') no-repeat;background-size:100%}.sq_suggested_icon{background:transparent url('../img/logos/suggested_92.png') no-repeat;background-size:100%}.sq_history_icon{background:transparent url('../img/logos/history_92.png') no-repeat;background-size:100%}.sq_audit_icon{background:transparent url('../img/logos/audit_92.png') no-repeat;background-size:100%}.sq_ranks_icon{background:transparent url('../img/logos/ranking_92.png') no-repeat;background-size:100%}.sq_rankings_icon{background:transparent url('../img/logos/ranking_92.png') no-repeat;background-size:100%}.sq_sla_icon{background:transparent url('../img/logos/sla_92.png') no-repeat;background-size:100%}.sq_focuspages_icon{background:transparent url('../img/logos/focuspages_92.png') no-repeat;background-size:100%}.sq_bulkseo_icon{background:transparent url('../img/logos/bulkseo_92.png') no-repeat;background-size:100%}.sq_boostpages_icon{background:transparent url('../img/logos/boostpages_92.png') no-repeat;background-size:100%}.sq_addpage_icon{background:transparent url('../img/logos/addpage_92.png') no-repeat;background-size:100%}.sq_settings_icon{background:transparent url('../img/logos/settings_92.png') no-repeat;background-size:100%}.sq_squirrly_icon{background:transparent url(../img/logos/squirrly.png) no-repeat;background-size:100%;height:42px;filter:none;-webkit-filter:none}#sq_wrap .page-item.active .page-link{background-color:#bde2f1;border-color:transparent}#sq_preloader{position:absolute;height:100%;width:100%;z-index:1000;background-color:#fff !important;opacity:.5}.sq_loading{height:60px;background:transparent url('../img/loading.gif') no-repeat center !important}@-webkit-keyframes play{from{background-position:0 0}to{background-position:-400px}}@-moz-keyframes play{from{background-position:0 0}to{background-position:-400px}}@-ms-keyframes play{from{background-position:0 0}to{background-position:-400px}}@-o-keyframes play{from{background-position:0 0}to{background-position:-400px}}@keyframes play{from{background-position:0 0}to{background-position:-400px}}.sq_minloading{position:relative;opacity:.5}.sq_minloading:after{position:absolute !important;right:calc(50% - 10px) !important;top:calc(50% - 8px) !important;display:block !important;float:right !important;line-height:30px !important;content:"" !important;padding:0 0 !important;margin:0 0 0 5px !important;height:16px !important;width:20px !important;background:transparent url('../img/minloading.png') no-repeat !important;-webkit-animation:play 1s steps(10) infinite;-moz-animation:play 1s steps(10) infinite;-o-animation:play 1s steps(10) infinite;animation:play 1s steps(10) infinite}#sq_stats{clear:both;padding:20px 0;margin:0;height:auto}#sq_stats ul{text-align:center;margin-left:25px}#sq_stats li{float:left;width:25%;line-height:30px;margin-left:18px;margin-bottom:18px;padding:26px;min-height:62px;font-size:19px;text-shadow:1px 1px #f9f9f9;list-style:none;list-style-position:inside;text-align:left;background:#f8f9fa !important;box-shadow:1px 1px 3px 0 #ccc}#sq_stats .sq_stats_icon{float:left;width:30px;height:30px;margin:0 10px 0 0;background-size:100%;background-repeat:no-repeat}#sq_stats .sq_stats_value{font-size:16px;font-weight:400}#sq_stats .sq_stats_text{font-size:17px;line-height:27px;min-height:70px;font-weight:500}#sq_stats .sq_stats_link{font-size:12px;float:right;line-height:15px;margin-bottom:-20px;margin-top:15px;margin-right:-13px}#sq_stats .sq_stats_all_blogs{background-image:url("../img/logos/websites_92.png")}#sq_stats .sq_stats_lm_articles,#sq_stats .sq_stats_all_articles,#sq_stats .sq_stats_avg_articles{background-image:url("../img/logos/sla_92.png")}#sq_stats .sq_stats_all_researches{background-image:url("../img/logos/kr_92.png")}#sq_stats .sq_stats_all_briefcase{background-image:url("../img/logos/briefcase_92.png")}#sq_stats .sq_stats_top_ranking{background-image:url("../img/logos/ranking_92.png")}#sq_stats .sq_stats_lm_audit{background-image:url("../img/logos/audit_92.png")}#sq_wrap .sq_sm_menu{width:24px;position:relative}#sq_wrap .sq_sm_menu .fa-ellipsis-v{font-size:18px !important;color:#2680b4}#sq_wrap .sq_sm_menu .sm_icon_button{display:inline-block;position:relative;width:24px;height:24px;box-sizing:border-box;font-size:18px;color:#545454;text-align:center;cursor:pointer}#sq_wrap table tr:hover .sq_sm_menu{display:block}#sq_wrap .sq_sm_menu .sq_sm_dropdown{display:none;background:white;position:absolute;right:20px;top:0;z-index:100;min-width:200px;box-shadow:0 0 10px 1px #999}#sq_wrap .sq_sm_menu .sq_icons_small{display:inline-block;margin:0 5px;height:17px;width:17px;vertical-align:middle;float:none}#sq_wrap .sq_sm_menu .sq_sm_dropdown li,#sq_wrap .sq_sm_menu .sq_sm_dropdown li a,#sq_wrap .sq_sm_menu .sq_sm_dropdown li button{font-size:13px;cursor:pointer}#sq_wrap table tr div.sq_sm_menu:hover .sq_sm_dropdown{display:block}.flexcroll{scrollbar-face-color:#367cd2;scrollbar-shadow-color:#fff;scrollbar-highlight-color:#fff;scrollbar-3dlight-color:#fff;scrollbar-darkshadow-color:#fff;scrollbar-track-color:#fff;scrollbar-arrow-color:#fff}.flexcroll::-webkit-scrollbar{width:12px}.flexcroll::-webkit-scrollbar-track{-webkit-border-radius:2px;border-radius:2px}.flexcroll::-webkit-scrollbar-thumb{-webkit-border-radius:2px;border-radius:2px;background:rgba(171,171,171,0.8)}.form-group input.form-control,.form-group select.form-control,.form-group textarea.form-control{width:100%}.tooltip .arrow{left:auto !important;margin-left:inherit !important;bottom:inherit !important;z-index:inherit !important}.tooltip .arrow:after{content:""}
|
1 |
+
@import 'logo.css';@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.3.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.3.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.3.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.3.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.3.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.3.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}#update-nag,.notice-error,.update-nag,.updated,.show-settings,.screen-meta-toggle,.notice-warning,div.fs-notice.updated,div.fs-notice.success,div.fs-notice.promotion,div.error,.notice:not(.sq_notice){display:none !important}#wpbody-content{float:none !important}#wpfooter{display:none}#wpwrap{background:white !important}body{font-family:'Open Sans',Arial,Helvetica,sans-serif;font-size:14px;background-color:#fff}#wpcontent{padding:0}#wpcontent .bg-light{background-color:#fdfdfd !important}#wpcontent .bg-briefcase{background-color:#e1f5e3 !important}#wpcontent .content{min-width:600px;max-width:1020px;margin:auto}#wpcontent h3{font-weight:400;line-height:50px}#wpcontent .card .card-title{margin:0;color:#4f1440;font-weight:400}#wpcontent .sq_deactivated{position:relative}#wpcontent .sq_deactivated:before{content:" ";position:absolute;height:calc(100% + 20px);width:100%;background:#f1f1f1;opacity:.7;top:-10px;z-index:1000;cursor:pointer;border-radius:6px}#wpcontent .sq_deactivated_label{position:absolute !important;z-index:1001;right:0}.sq_fixed{position:fixed;z-index:100;top:32px;left:0;margin:0;border-top:2px solid white;border-bottom:2px solid white}.sq_notice{top:28px;text-align:center;width:100%}.sq_notice.sq_notice>div{display:block;margin:0 !important;width:100% !important;line-height:40px;background-color:lightgoldenrodyellow}.sq_notice.sq_notice>div.sq_success{background-color:#20bc49}.sq_notices{font-size:13px;color:#555}.sq_error{background-color:darkred !important;color:white !important;text-align:center;font-size:15px;font-weight:bold}.sq_success{background-color:#20bc49 !important;line-height:30px;text-align:center;font-size:16px;font-weight:bold;color:white}.sq_success a{color:#4f47be;text-decoration:none}.sq_deactivated{opacity:.3}#sq_wrap .flex-grow-1{min-width:620px}#sq_wrap .small{font-size:90%;line-height:20px}#sq_wrap .sq_nav{flex:0 0 225px}#sq_wrap .row>div.input-group{display:flex !important}#sq_wrap .row{float:none !important;width:auto !important}#sq_wrap .btn-primary{background-color:#2680b4 !important;border-color:transparent}#sq_wrap .btn{border-radius:0}#sq_wrap .btn-primary:hover{background-color:#256d9c !important}#sq_wrap .input-group>button.btn,#sq_wrap .input-group>input{max-height:47px}#sq_wrap .bg-title{margin:2px;background-color:#f8f9fa !important;color:#505663 !important}#sq_wrap .bg-light{background-color:#fdfdfd !important}#sq_wrap .bg-google{background-color:#e37400 !important;color:white !important}#sq_wrap .bg-googlesc{background-color:#455a64 !important;color:white !important}#sq_wrap .bg-primary{background-color:#2680b4 !important;color:white !important}#sq_wrap .bg-warning{background-color:#f7681a !important;color:white !important}button.btn-green{color:#fff;background-color:#28a745 !important;border-color:#28a745 !important}button.btn-success{color:#fff;background-color:#589ee4;border-color:transparent}#sq_wrap .table .thead-dark th{color:#fff;background-color:#948691;border-color:#897b86;z-index:1;top:0;position:sticky}#sq_wrap .table-striped tbody tr.odd{background-color:rgba(151,147,147,0.05)}#sq_wrap .table-striped tbody tr.even{background-color:#fff}#sq_wrap .table-hover tbody tr:hover{background-color:rgba(230,226,226,0.03)}#sq_wrap .text-link{color:#2680b4 !important}#sq_wrap .sq_row{position:relative;flex:1 1 auto}#sq_wrap .sq_col_side{flex:0 0 300px}#sq_wrap button.btn-success{color:#fff;background-color:#589ee4;border-color:transparent}#sq_wrap button.btn-success:hover{background-color:#4c81bd}#sq_wrap .btn-primary:not(:disabled):not(.disabled).active,#sq_wrap .btn-primary:not(:disabled):not(.disabled):active,#sq_wrap .show>.btn-primary.dropdown-toggle{background-color:#2777aa}#sq_wrap .btn-primary:hover{background-color:#2674a7;border-color:transparent}#sq_wrap .btn-warning{background-color:#f2ca4c;border-color:transparent}#sq_wrap .btn-warning:hover{background-color:#e6be4b;border-color:transparent}#sq_wrap .bg-cta{background-color:#694861 !important}#sq_wrap a:not(.btn):not(.sq-btn):not(.sq-nav-link){color:#f16112;text-decoration:none}#sq_wrap a:not(.btn):not(.sq-btn):not(.sq-nav-link):hover{color:#f14644}#sq_wrap h4 .fa:before{margin-right:3px}.wp-admin #sq_wrap select{padding:.375em .75em;line-height:1.5;height:calc(2.25em + 2px);vertical-align:middle;background-color:#e5f5dd}.wp-admin #sq_seosettings_bulkseo select{height:calc(2.55em + 2px)}.wp-admin #sq_wrap select.bg-input{height:calc(2.875em + 2px);padding:.5em 1em;font-size:1.25em;line-height:1.5;border-radius:.3em;background-color:#e5f5dd}.wp-admin #sq_wrap input[type=text]:not(.wp-color-picker),.wp-admin #sq_wrap textarea{background-color:#e5f5dd;padding:.680em .75em}.sq_icons{float:left;width:35px;height:35px;-webkit-filter:invert(40%) grayscale(100%) brightness(40%) sepia(100%) hue-rotate(-50deg) saturate(400%) contrast(2);filter:grayscale(100%) brightness(40%) sepia(100%) hue-rotate(-50deg) saturate(600%) contrast(0.8)}.sq_icons_small{display:block;float:left;margin:0 10px 0 0;height:30px;width:30px}.sq_icons.sq_icon_package{float:none;display:inline-block;margin:auto;background-repeat:no-repeat;background-position:center;background-size:70%;background-color:#f5922f;background-image:url("../img/logos/package.png")}.sq_kr_icon{background:transparent url('../img/logos/kr_92.png') no-repeat;background-size:100%}.sq_krfound_icon{background:transparent url('../img/logos/briefcase_92.png') no-repeat;background-size:100%}.sq_audits_icon{background:transparent url('../img/logos/audit_92.png') no-repeat;background-size:100%}.sq_briefcase_icon{background:transparent url('../img/logos/briefcase_92.png') no-repeat;background-size:100%}.sq_labels_icon{background:transparent url('../img/logos/labels_92.png') no-repeat;background-size:100%}.sq_suggested_icon{background:transparent url('../img/logos/suggested_92.png') no-repeat;background-size:100%}.sq_history_icon{background:transparent url('../img/logos/history_92.png') no-repeat;background-size:100%}.sq_audit_icon{background:transparent url('../img/logos/audit_92.png') no-repeat;background-size:100%}.sq_ranks_icon{background:transparent url('../img/logos/ranking_92.png') no-repeat;background-size:100%}.sq_rankings_icon{background:transparent url('../img/logos/ranking_92.png') no-repeat;background-size:100%}.sq_sla_icon{background:transparent url('../img/logos/sla_92.png') no-repeat;background-size:100%}.sq_focuspages_icon{background:transparent url('../img/logos/focuspages_92.png') no-repeat;background-size:100%}.sq_bulkseo_icon{background:transparent url('../img/logos/bulkseo_92.png') no-repeat;background-size:100%}.sq_boostpages_icon{background:transparent url('../img/logos/boostpages_92.png') no-repeat;background-size:100%}.sq_addpage_icon{background:transparent url('../img/logos/addpage_92.png') no-repeat;background-size:100%}.sq_settings_icon{background:transparent url('../img/logos/settings_92.png') no-repeat;background-size:100%}.sq_squirrly_icon{background:transparent url(../img/logos/squirrly.png) no-repeat;background-size:100%;height:42px;filter:none;-webkit-filter:none}#sq_wrap .page-item.active .page-link{background-color:#bde2f1;border-color:transparent}#sq_preloader{position:absolute;height:100%;width:100%;z-index:1000;background-color:#fff !important;opacity:.5}.sq_loading{height:60px;background:transparent url('../img/loading.gif') no-repeat center !important}@-webkit-keyframes play{from{background-position:0 0}to{background-position:-400px}}@-moz-keyframes play{from{background-position:0 0}to{background-position:-400px}}@-ms-keyframes play{from{background-position:0 0}to{background-position:-400px}}@-o-keyframes play{from{background-position:0 0}to{background-position:-400px}}@keyframes play{from{background-position:0 0}to{background-position:-400px}}.sq_minloading{position:relative;opacity:.5}.sq_minloading:after{position:absolute !important;right:calc(50% - 10px) !important;top:calc(50% - 8px) !important;display:block !important;float:right !important;line-height:30px !important;content:"" !important;padding:0 0 !important;margin:0 0 0 5px !important;height:16px !important;width:20px !important;background:transparent url('../img/minloading.png') no-repeat !important;-webkit-animation:play 1s steps(10) infinite;-moz-animation:play 1s steps(10) infinite;-o-animation:play 1s steps(10) infinite;animation:play 1s steps(10) infinite}#sq_stats{clear:both;padding:20px 0;margin:0;height:auto}#sq_stats ul{text-align:center;margin-left:25px}#sq_stats li{float:left;width:25%;line-height:30px;margin-left:18px;margin-bottom:18px;padding:26px;min-height:62px;font-size:19px;text-shadow:1px 1px #f9f9f9;list-style:none;list-style-position:inside;text-align:left;background:#f8f9fa !important;box-shadow:1px 1px 3px 0 #ccc}#sq_stats .sq_stats_icon{float:left;width:30px;height:30px;margin:0 10px 0 0;background-size:100%;background-repeat:no-repeat}#sq_stats .sq_stats_value{font-size:16px;font-weight:400}#sq_stats .sq_stats_text{font-size:17px;line-height:27px;min-height:70px;font-weight:500}#sq_stats .sq_stats_link{font-size:12px;float:right;line-height:15px;margin-bottom:-20px;margin-top:15px;margin-right:-13px}#sq_stats .sq_stats_all_blogs{background-image:url("../img/logos/websites_92.png")}#sq_stats .sq_stats_lm_articles,#sq_stats .sq_stats_all_articles,#sq_stats .sq_stats_avg_articles{background-image:url("../img/logos/sla_92.png")}#sq_stats .sq_stats_all_researches{background-image:url("../img/logos/kr_92.png")}#sq_stats .sq_stats_all_briefcase{background-image:url("../img/logos/briefcase_92.png")}#sq_stats .sq_stats_top_ranking{background-image:url("../img/logos/ranking_92.png")}#sq_stats .sq_stats_lm_audit{background-image:url("../img/logos/audit_92.png")}#sq_wrap .sq_sm_menu{width:24px;position:relative}#sq_wrap .sq_sm_menu .fa-ellipsis-v{font-size:18px !important;color:#2680b4}#sq_wrap .sq_sm_menu .sm_icon_button{display:inline-block;position:relative;width:24px;height:24px;box-sizing:border-box;font-size:18px;color:#545454;text-align:center;cursor:pointer}#sq_wrap table tr:hover .sq_sm_menu{display:block}#sq_wrap .sq_sm_menu .sq_sm_dropdown{display:none;background:white;position:absolute;right:20px;top:0;z-index:100;min-width:200px;box-shadow:0 0 10px 1px #999}#sq_wrap .sq_sm_menu .sq_icons_small{display:inline-block;margin:0 5px;height:17px;width:17px;vertical-align:middle;float:none}#sq_wrap .sq_sm_menu .sq_sm_dropdown li,#sq_wrap .sq_sm_menu .sq_sm_dropdown li a,#sq_wrap .sq_sm_menu .sq_sm_dropdown li button{font-size:13px;cursor:pointer}#sq_wrap table tr div.sq_sm_menu:hover .sq_sm_dropdown{display:block}.flexcroll{scrollbar-face-color:#367cd2;scrollbar-shadow-color:#fff;scrollbar-highlight-color:#fff;scrollbar-3dlight-color:#fff;scrollbar-darkshadow-color:#fff;scrollbar-track-color:#fff;scrollbar-arrow-color:#fff}.flexcroll::-webkit-scrollbar{width:12px}.flexcroll::-webkit-scrollbar-track{-webkit-border-radius:2px;border-radius:2px}.flexcroll::-webkit-scrollbar-thumb{-webkit-border-radius:2px;border-radius:2px;background:rgba(171,171,171,0.8)}.form-group input.form-control,.form-group select.form-control,.form-group textarea.form-control{width:100%}.tooltip .arrow{left:auto !important;margin-left:inherit !important;bottom:inherit !important;z-index:inherit !important}.tooltip .arrow:after{content:""}.fade.in{opacity:1}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-backdrop .fade .in{opacity:.5 !important}.modal-backdrop.fade{opacity:.5 !important}
|
view/assets/css/jorney.css
CHANGED
@@ -24,7 +24,7 @@ ul.stepper.horizontal:before {
|
|
24 |
|
25 |
|
26 |
ul.stepper.horizontal .step {
|
27 |
-
position:
|
28 |
margin: 0;
|
29 |
width: 100%;
|
30 |
display: -webkit-box;
|
24 |
|
25 |
|
26 |
ul.stepper.horizontal .step {
|
27 |
+
position: relative;
|
28 |
margin: 0;
|
29 |
width: 100%;
|
30 |
display: -webkit-box;
|
view/assets/css/jorney.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
ul.stepper.horizontal{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;overflow:hidden}ul.stepper.horizontal:before{content:'';background-color:transparent;width:100%;min-height:5.25rem;position:absolute;left:-3px;-webkit-border-top-left-radius:2px;border-top-left-radius:2px}ul.stepper.horizontal .step{position:
|
1 |
+
ul.stepper.horizontal{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;overflow:hidden}ul.stepper.horizontal:before{content:'';background-color:transparent;width:100%;min-height:5.25rem;position:absolute;left:-3px;-webkit-border-top-left-radius:2px;border-top-left-radius:2px}ul.stepper.horizontal .step{position:relative;margin:0;width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:5.25rem !important}ul.stepper.horizontal .step:not(:last-of-type):after{content:'';position:static;display:inline-block;width:100%;height:.0625rem}ul.stepper.horizontal>.step:last-of-type,ul.stepper.horizontal>.step[data-last=true]{width:auto !important}ul.stepper.horizontal>.step.active:not(:last-of-type):after{content:'';position:static;display:inline-block;width:100%;height:.0625rem}ul.stepper.horizontal .step.active .step-title:before{background-color:#4285f4}ul.stepper.horizontal .step.done .step-title:before{font-family:'Font Awesome 5 Free';font-weight:900;content:'\f00c';font-size:1rem;background:#00c851}ul.stepper.horizontal .step.wrong .step-title:before{font-family:'Font Awesome 5 Free';font-weight:900;content:'\f071';font-size:1.1rem;background-color:#ff3547}ul.stepper.horizontal .step-title{line-height:25px;margin:0;padding:0 5px;display:inline-block;white-space:nowrap;text-align:center;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis;-ms-flex-negative:0;-webkit-flex-shrink:0;flex-shrink:0}ul.stepper.horizontal .step:before{content:none}ul.stepper.horizontal .step-title .fa:before{font-size:25px}ul.stepper.horizontal .step-title:after{top:.9375rem}ul.stepper.horizontal .step-new-content{position:absolute;height:calc(100% - 84px);top:6rem;left:0;width:100%;overflow-y:auto;overflow-x:hidden;margin:0;padding:1.25rem 1.25rem 4.75rem}ul.stepper.horizontal .step-actions{position:absolute;bottom:0;left:0;width:100%;padding:20px;-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}ul.stepper.horizontal .step-actions .btn-flat:not(:last-child),ul.stepper.horizontal .step-actions .btn-large:not(:last-child),ul.stepper.horizontal .step-actions .btn:not(:last-child){margin-left:.3125rem;margin-right:0}ul.stepper.horizontal .step-actions,ul.stepper.horizontal .step-new-content{padding-left:2.5rem;padding-right:2.5rem}
|
view/assets/css/rankings.css
CHANGED
@@ -6,6 +6,10 @@
|
|
6 |
display: block;
|
7 |
}
|
8 |
|
|
|
|
|
|
|
|
|
9 |
#sq_ranks table.table-ranks td:first-child{
|
10 |
width: 25%;
|
11 |
font-weight: bold;
|
6 |
display: block;
|
7 |
}
|
8 |
|
9 |
+
#sq_ranks table.table-ranks td{
|
10 |
+
word-break: break-word;
|
11 |
+
}
|
12 |
+
|
13 |
#sq_ranks table.table-ranks td:first-child{
|
14 |
width: 25%;
|
15 |
font-weight: bold;
|
view/assets/css/rankings.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
#sq_ranks table.table-ranks .sq_serp_refresh{display:none}#sq_ranks table.table-ranks tr:hover .sq_serp_refresh{display:block}#sq_ranks table.table-ranks td:first-child{width:25%;font-weight:bold;color:#428ea1}#sq_ranks table.table-ranks td:nth-child(2){width:300px;max-width:400px;font-size:13px}#sq_ranks table.table-ranks td:nth-child(3){width:100px;font-weight:bold;font-size:15px;color:#428ea1}#sq_ranks table.table-ranks td:nth-child(3) .fa:before{margin:0 !important}#sq_ranks table.table-ranks td:nth-child(3) .fa.fa-sort-up:before{vertical-align:middle}#sq_ranks table.table-ranks td:nth-child(4){width:100px}#sq_ranks table.table-ranks td:last-child{width:10px;padding:14px 0 0 0}#sq_ranks button.btn-success{color:#fff;background-color:#589ee4;border-color:transparent}svg>g>g:last-child{pointer-events:none}
|
1 |
+
#sq_ranks table.table-ranks .sq_serp_refresh{display:none}#sq_ranks table.table-ranks tr:hover .sq_serp_refresh{display:block}#sq_ranks table.table-ranks td{word-break:break-word}#sq_ranks table.table-ranks td:first-child{width:25%;font-weight:bold;color:#428ea1}#sq_ranks table.table-ranks td:nth-child(2){width:300px;max-width:400px;font-size:13px}#sq_ranks table.table-ranks td:nth-child(3){width:100px;font-weight:bold;font-size:15px;color:#428ea1}#sq_ranks table.table-ranks td:nth-child(3) .fa:before{margin:0 !important}#sq_ranks table.table-ranks td:nth-child(3) .fa.fa-sort-up:before{vertical-align:middle}#sq_ranks table.table-ranks td:nth-child(4){width:100px}#sq_ranks table.table-ranks td:last-child{width:10px;padding:14px 0 0 0}#sq_ranks button.btn-success{color:#fff;background-color:#589ee4;border-color:transparent}svg>g>g:last-child{pointer-events:none}
|
view/assets/css/switchery.css
CHANGED
@@ -172,4 +172,8 @@
|
|
172 |
|
173 |
.dropdown-menu {
|
174 |
margin-top: .75em
|
|
|
|
|
|
|
|
|
175 |
}
|
172 |
|
173 |
.dropdown-menu {
|
174 |
margin-top: .75em
|
175 |
+
}
|
176 |
+
|
177 |
+
.sq-switch .offset-1{
|
178 |
+
margin-left: 70px !important;
|
179 |
}
|
view/assets/css/switchery.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.sq-switch{font-size:1em;position:relative;box-shadow:none;height:auto;background:inherit}.sq-switch input{position:absolute;height:1px;width:1px;background:0;border:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;padding:0}.sq-switch input + label{position:relative;min-width:calc(calc(2.375em * .8) * 2);border-radius:calc(2.375em * .8);height:calc(2.375em * .8);line-height:calc(2.375em * .8);font-size:16px;font-weight:bold;display:inline-block;cursor:pointer;outline:0;user-select:none;vertical-align:middle;text-indent:calc(calc(calc(2.375em * .8) * 2) + .5em)}.sq-switch input + label::after,.sq-switch input + label::before{content:'';position:absolute;top:0;left:0;width:calc(calc(2.375em * .8) * 2);bottom:0;display:block}.sq-switch input + label::before{right:0;background-color:#dee2e6;border-radius:calc(2.375em * .8);transition:.2s all}.sq-switch.redgreen input + label::before{background-color:#9c2032}.sq-switch input + label::after{top:2px;left:2px;width:calc(calc(2.375em * .8) - calc(2px * 2));height:calc(calc(2.375em * .8) - calc(2px * 2));border-radius:50%;background-color:#fff;transition:.2s all}.sq-switch input:checked + label::before{background-color:#488698}.sq-switch.redgreen input:checked + label::before{background-color:#20bc49}.sq-switch input:checked + label::after{margin-left:calc(2.375em * .8)}.sq-switch input:focus + label::before{outline:0;box-shadow:0 0 0 .2em rgba(0,136,221,.25)}.sq-switch input:disabled + label{color:#868e96;cursor:not-allowed}.sq-switch input:disabled + label::before{background-color:#e9ecef}.sq-switch.sq-switch-sm{font-size:.875em}.sq-switch.sq-switch-sm input + label{min-width:calc(calc(1.9375em * .8) * 2);height:calc(1.9375em * .8);line-height:calc(1.9375em * .8);text-indent:calc(calc(calc(2.1375em * .8) * 2) + .5em)}.sq-switch.sq-switch-sm input + label::before{width:calc(calc(1.9375em * .8) * 2)}.sq-switch.sq-switch-sm input + label::after{width:calc(calc(1.9375em * .8) - calc(2px * 2));height:calc(calc(1.9375em * .8) - calc(2px * 2))}.sq-switch.sq-switch-sm input:checked + label::after{margin-left:calc(1.9375em * .8)}.sq-switch.sq-switch-xxs{font-size:.7em}.sq-switch.sq-switch-xxs input + label{min-width:calc(calc(0.9375em * .8) * 2);height:calc(0.9375em * .8);line-height:calc(0.9375em * .8);text-indent:calc(calc(calc(1.1375em * .8) * 2) + .5em)}.sq-switch.sq-switch-xxs input + label::before{width:calc(calc(0.9375em * .8) * 2)}.sq-switch.sq-switch-xxs input + label::after{width:calc(calc(0.9375em * .8) - calc(2px * 2));height:calc(calc(0.9375em * .8) - calc(2px * 2))}.sq-switch.sq-switch-xxs input:checked + label::after{margin-left:calc(0.9375em * .8)}.sq-switch.sq-switch-lg{font-size:1.25em}.sq-switch.sq-switch-lg input + label{min-width:calc(calc(3em * .8) * 2);height:calc(3em * .8);line-height:calc(3em * .8);text-indent:calc(calc(calc(3em * .8) * 2) + .5em)}.sq-switch.sq-switch-lg input + label::before{width:calc(calc(3em * .8) * 2)}.sq-switch.sq-switch-lg input + label::after{width:calc(calc(3em * .8) - calc(2px * 2));height:calc(calc(3em * .8) - calc(2px * 2))}.sq-switch.sq-switch-lg input:checked + label::after{margin-left:calc(3em * .8)}.sq-switch + .sq-switch{margin-left:1em}.dropdown-menu{margin-top:.75em}
|
1 |
+
.sq-switch{font-size:1em;position:relative;box-shadow:none;height:auto;background:inherit}.sq-switch input{position:absolute;height:1px;width:1px;background:0;border:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;padding:0}.sq-switch input + label{position:relative;min-width:calc(calc(2.375em * .8) * 2);border-radius:calc(2.375em * .8);height:calc(2.375em * .8);line-height:calc(2.375em * .8);font-size:16px;font-weight:bold;display:inline-block;cursor:pointer;outline:0;user-select:none;vertical-align:middle;text-indent:calc(calc(calc(2.375em * .8) * 2) + .5em)}.sq-switch input + label::after,.sq-switch input + label::before{content:'';position:absolute;top:0;left:0;width:calc(calc(2.375em * .8) * 2);bottom:0;display:block}.sq-switch input + label::before{right:0;background-color:#dee2e6;border-radius:calc(2.375em * .8);transition:.2s all}.sq-switch.redgreen input + label::before{background-color:#9c2032}.sq-switch input + label::after{top:2px;left:2px;width:calc(calc(2.375em * .8) - calc(2px * 2));height:calc(calc(2.375em * .8) - calc(2px * 2));border-radius:50%;background-color:#fff;transition:.2s all}.sq-switch input:checked + label::before{background-color:#488698}.sq-switch.redgreen input:checked + label::before{background-color:#20bc49}.sq-switch input:checked + label::after{margin-left:calc(2.375em * .8)}.sq-switch input:focus + label::before{outline:0;box-shadow:0 0 0 .2em rgba(0,136,221,.25)}.sq-switch input:disabled + label{color:#868e96;cursor:not-allowed}.sq-switch input:disabled + label::before{background-color:#e9ecef}.sq-switch.sq-switch-sm{font-size:.875em}.sq-switch.sq-switch-sm input + label{min-width:calc(calc(1.9375em * .8) * 2);height:calc(1.9375em * .8);line-height:calc(1.9375em * .8);text-indent:calc(calc(calc(2.1375em * .8) * 2) + .5em)}.sq-switch.sq-switch-sm input + label::before{width:calc(calc(1.9375em * .8) * 2)}.sq-switch.sq-switch-sm input + label::after{width:calc(calc(1.9375em * .8) - calc(2px * 2));height:calc(calc(1.9375em * .8) - calc(2px * 2))}.sq-switch.sq-switch-sm input:checked + label::after{margin-left:calc(1.9375em * .8)}.sq-switch.sq-switch-xxs{font-size:.7em}.sq-switch.sq-switch-xxs input + label{min-width:calc(calc(0.9375em * .8) * 2);height:calc(0.9375em * .8);line-height:calc(0.9375em * .8);text-indent:calc(calc(calc(1.1375em * .8) * 2) + .5em)}.sq-switch.sq-switch-xxs input + label::before{width:calc(calc(0.9375em * .8) * 2)}.sq-switch.sq-switch-xxs input + label::after{width:calc(calc(0.9375em * .8) - calc(2px * 2));height:calc(calc(0.9375em * .8) - calc(2px * 2))}.sq-switch.sq-switch-xxs input:checked + label::after{margin-left:calc(0.9375em * .8)}.sq-switch.sq-switch-lg{font-size:1.25em}.sq-switch.sq-switch-lg input + label{min-width:calc(calc(3em * .8) * 2);height:calc(3em * .8);line-height:calc(3em * .8);text-indent:calc(calc(calc(3em * .8) * 2) + .5em)}.sq-switch.sq-switch-lg input + label::before{width:calc(calc(3em * .8) * 2)}.sq-switch.sq-switch-lg input + label::after{width:calc(calc(3em * .8) - calc(2px * 2));height:calc(calc(3em * .8) - calc(2px * 2))}.sq-switch.sq-switch-lg input:checked + label::after{margin-left:calc(3em * .8)}.sq-switch + .sq-switch{margin-left:1em}.dropdown-menu{margin-top:.75em}.sq-switch .offset-1{margin-left:70px !important}
|
view/assets/js/global.js
CHANGED
@@ -299,6 +299,9 @@ if (typeof SQ_DEBUG === 'undefined') var SQ_DEBUG = false;
|
|
299 |
|
300 |
|
301 |
$(document).ready(function () {
|
|
|
|
|
|
|
302 |
$('#sq_preloader').remove();
|
303 |
|
304 |
$('.sq_trend:visible').each(function () {
|
@@ -332,6 +335,10 @@ if (typeof SQ_DEBUG === 'undefined') var SQ_DEBUG = false;
|
|
332 |
$('button.show_advanced').show();
|
333 |
});
|
334 |
|
|
|
|
|
|
|
|
|
335 |
$(document).on('keyup', function (event) {
|
336 |
var keycode = event.keyCode || event.which;
|
337 |
if (keycode == 27) {
|
@@ -348,4 +355,9 @@ if (typeof SQ_DEBUG === 'undefined') var SQ_DEBUG = false;
|
|
348 |
|
349 |
});
|
350 |
|
351 |
-
|
|
|
|
|
|
|
|
|
|
299 |
|
300 |
|
301 |
$(document).ready(function () {
|
302 |
+
clearTimeout(sq_loading_timeout);
|
303 |
+
SQ_DEBUG && console.log('sq_GlobalInit');
|
304 |
+
|
305 |
$('#sq_preloader').remove();
|
306 |
|
307 |
$('.sq_trend:visible').each(function () {
|
335 |
$('button.show_advanced').show();
|
336 |
});
|
337 |
|
338 |
+
$("button[type=submit]").on("click", function () {
|
339 |
+
$(this).addClass("sq_minloading");
|
340 |
+
});
|
341 |
+
|
342 |
$(document).on('keyup', function (event) {
|
343 |
var keycode = event.keyCode || event.which;
|
344 |
if (keycode == 27) {
|
355 |
|
356 |
});
|
357 |
|
358 |
+
var sq_loading_timeout = setTimeout(function () {
|
359 |
+
alert('A javascript error stops Squirrly from loading. Please check the browser console for errors.');
|
360 |
+
}, 10000);
|
361 |
+
|
362 |
+
|
363 |
+
})(jQuery);
|
view/assets/js/global.min.js
CHANGED
@@ -1,11 +1,13 @@
|
|
1 |
-
if("
|
2 |
-
|
3 |
-
|
4 |
-
a+"="+c};a.
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
a(
|
11 |
-
a("
|
|
|
|
1 |
+
var SQ_DEBUG,$jscomp=$jscomp||{};$jscomp.scope={};$jscomp.findInternal=function(a,f,b){a instanceof String&&(a=String(a));for(var c=a.length,e=0;e<c;e++){var d=a[e];if(f.call(b,d,e,a))return{i:e,v:d}}return{i:-1,v:void 0}};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.defineProperty=$jscomp.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(a,f,b){a!=Array.prototype&&a!=Object.prototype&&(a[f]=b.value)};
|
2 |
+
$jscomp.getGlobal=function(a){return"undefined"!=typeof window&&window===a?a:"undefined"!=typeof global&&null!=global?global:a};$jscomp.global=$jscomp.getGlobal(this);$jscomp.polyfill=function(a,f,b,c){if(f){b=$jscomp.global;a=a.split(".");for(c=0;c<a.length-1;c++){var e=a[c];e in b||(b[e]={});b=b[e]}a=a[a.length-1];c=b[a];f=f(c);f!=c&&null!=f&&$jscomp.defineProperty(b,a,{configurable:!0,writable:!0,value:f})}};
|
3 |
+
$jscomp.polyfill("Array.prototype.find",function(a){return a?a:function(a,b){return $jscomp.findInternal(this,a,b).v}},"es6","es3");"undefined"===typeof SQ_DEBUG&&(SQ_DEBUG=!1);
|
4 |
+
(function(a){a.sq_setCookie=function(b,c){c=a.sq_utf8Encode(c);c=c.replace(/\\/g,"");document.cookie=b+"="+c+"; expires=1440; path=/"};a.sq_utf8Encode=function(b){var c=[];b=a.str2utf8ba(b);for(var e=b.length,d=0;d<e;d++)c.push(String.fromCharCode(b[d]));return c.join("")};a.sq_getCookie=function(a){a+="=";for(var b=document.cookie.split(";"),e=0;e<b.length;e++){for(var d=b[e];" "==d.charAt(0);)d=d.substring(1,d.length);if(0==d.indexOf(a))return d.substring(a.length,d.length)}return null};a.sq_getHashParam=
|
5 |
+
function(a){var b=location.href.split("#");return 2<=b.length&&(b.shift(),b=b.join("#"),a=(new RegExp("[\\?&#]*"+a+"=([^&#]*)")).exec(b))?a[1]||0:!1};a.sq_setHashParam=function(a,c){var b=location.href.split("#");if(2<=b.length){var d=!0,f=b.shift();b=b.join("#");a=encodeURIComponent(a)+"=";b=b.split(/[&;]/g);for(var g=b.length;0<g--;)if(-1!==b[g].lastIndexOf(a,0)||""===b[g]){b[g]=b[g].replace(b[g],a+c);d=!1;break}d&&b.push(a+c);location.href=f+"#"+b.join("&")}else location.href+="#"+a+"="+c};a.sq_getParam=
|
6 |
+
function(a){var b=window.location.search.substring(1).split("&"),e;for(e=0;e<b.length;e++){var d=b[e].split("=");if(d[0]===a)return void 0===d[1]?!0:decodeURIComponent(d[1])}return!1};a.sq_loadChart=function(a){new Chart(a,{type:"bar",data:{labels:" ".split(" "),datasets:[{data:a.data("values").split(","),borderWidth:0}]},options:{tooltips:{enabled:!1},legend:{display:!1},layout:{padding:{left:0,right:0,top:0,bottom:0}},title:{display:!1},scales:{yAxes:[{display:!1,ticks:{beginAtZero:!0,min:0,
|
7 |
+
max:1}}],xAxes:[{display:!1,ticks:{beginAtZero:!0}}]}}})};a.sq_showMessage=function(b,c){a(".sq_alert").remove();-1==b.indexOf("<div>")&&(b=a('<div class="sq_alert position-fixed fixed-top text-center text-white bg-success m-0 p-4 border border-white sq-position-fixed sq-fixed-top sq-text-center sq-text-white sq-bg-success sq-m-0 sq-p-4 sq-border sq-border-white" style="top: 33px !important;">'+b+"</div>"));a("body").prepend(b);"undefined"===typeof c&&(c=2E3);setTimeout(function(){b.remove()},c);
|
8 |
+
return b};a.fn.sq_addBriefcase=function(){var b=this;b.addClass("sq_minloading");a.post(sqQuery.ajaxurl,{action:"sq_briefcase_addkeyword",keyword:b.data("keyword"),doserp:parseInt(b.data("doserp")),hidden:parseInt(b.data("hidden")),sq_nonce:sqQuery.nonce}).done(function(c){b.removeClass("sq_minloading");"undefined"!==typeof c.message?(a.sq_showMessage(c.message).addClass("sq_success"),b.closest("tr").addClass("bg-briefcase")):"undefined"!==typeof c.error?(a.sq_showMessage(c.error),b.removeClass("sq_minloading")):
|
9 |
+
(b.removeClass("sq_minloading"),location.reload())}).fail(function(){b.removeClass("sq_minloading")})};a.fn.sq_ajaxCallListen=function(){var b=this,c=a("#"+b.data("input")),e=b.data("confirm"),d=b.data("action"),f=b.data("redirect"),g=b.data("name"),h=0;c.length||(c=b);if("undefined"===typeof e||confirm(e))c.is("input")&&"checkbox"===c.attr("type")?c.is(":checked")&&(h=c.val()):c.is("select")?h=c.find("option:selected").val():c.is("input")&&""!==c.val()&&(h=c.val()),b.addClass("sq_minloading"),""!==
|
10 |
+
d&&""!==h&&a.post(sqQuery.ajaxurl,{action:d,input:g,value:h,referal:location.href,sq_nonce:sqQuery.nonce}).done(function(c){if("undefined"!==typeof c.data){""===c.data?a("#wpbody-content").prepend("Saved"):a("#wpbody-content").prepend(c.data);if(""!==c.assistant&&c.assistant_dest){var d=a(".sq_assistant").find("ul:visible").attr("id");a(c.assistant_dest).html(c.assistant);d&&a("#"+d).show()}setTimeout(function(){b.removeClass("sq_minloading");"undefined"!==typeof f?window.open(f,"_blank"):location.reload()},
|
11 |
+
1E3)}else"undefined"!==typeof c.error?(a.sq_showMessage(c.error),b.removeClass("sq_minloading")):(b.removeClass("sq_minloading"),location.reload())}).fail(function(){b.removeClass("sq_minloading")},"json")};a(document).ready(function(){clearTimeout(f);SQ_DEBUG&&console.log("sq_GlobalInit");a("#sq_preloader").remove();a(".sq_trend:visible").each(function(){a.sq_loadChart(a(this))});a(".sq_kr_research").on("show.bs.modal",function(){a.sq_loadChart(a(this).find(".sq_trend"))});0<a(".sq_save_ajax").length&&
|
12 |
+
(a(".sq_save_ajax").find("input").on("change",function(){a(this).sq_ajaxCallListen()}),a(".sq_save_ajax").find("button").on("click",function(){a(this).sq_ajaxCallListen()}));a("button.show_advanced").on("click",function(){a(this).hide();a(".sq_advanced").show();a("button.hide_advanced").show()});a("button.hide_advanced").on("click",function(){a(this).hide();a(".sq_advanced").hide();a("button.show_advanced").show()});a("button[type=submit]").on("click",function(){a(this).addClass("sq_minloading")});
|
13 |
+
a(document).on("keyup",function(b){27==(b.keyCode||b.which)&&(a(".modal").hasClass("show")?a(".modal").modal("hide"):confirm("Leave Squirrly Settings?")&&(location.href=a("#sq_btn_toolbar_close").find("a").attr("href")))})});var f=setTimeout(function(){alert("A javascript error stops Squirrly from loading. Please check the browser console for errors.")},1E4)})(jQuery);
|
view/assets/js/research.js
CHANGED
@@ -10,6 +10,10 @@ if (typeof SQ_DEBUG === 'undefined') var SQ_DEBUG = false;
|
|
10 |
});
|
11 |
|
12 |
$.sq_steps = function (step) {
|
|
|
|
|
|
|
|
|
13 |
$('.sq_step').hide();
|
14 |
$('.sq_step' + step).show();
|
15 |
};
|
@@ -96,12 +100,32 @@ if (typeof SQ_DEBUG === 'undefined') var SQ_DEBUG = false;
|
|
96 |
|
97 |
$table.show();
|
98 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
99 |
$table.DataTable(
|
100 |
{
|
101 |
"columnDefs": [
|
102 |
{
|
103 |
"targets": [5, 6],
|
104 |
"sortable": false
|
|
|
|
|
|
|
|
|
|
|
105 |
}
|
106 |
],
|
107 |
"bPaginate": true,
|
@@ -137,7 +161,7 @@ if (typeof SQ_DEBUG === 'undefined') var SQ_DEBUG = false;
|
|
137 |
$this.removeClass('sq_loading');
|
138 |
$this.find('.btn').show();
|
139 |
|
140 |
-
$('.
|
141 |
}, 'json');
|
142 |
|
143 |
|
@@ -148,7 +172,7 @@ if (typeof SQ_DEBUG === 'undefined') var SQ_DEBUG = false;
|
|
148 |
$this.removeClass('sq_loading').show();
|
149 |
$this.prepend('<div class="text-center text-warning">Lost connection with the server. Please make sure you whitelisted the IP from https://api.squirrly.co</div>');
|
150 |
}
|
151 |
-
},
|
152 |
|
153 |
|
154 |
return $this;
|
10 |
});
|
11 |
|
12 |
$.sq_steps = function (step) {
|
13 |
+
if (step === 2 && $('input[name=sq_input_keyword]').val() === '') {
|
14 |
+
$.sq_showMessage('Add a keyword first', 2000);
|
15 |
+
return;
|
16 |
+
}
|
17 |
$('.sq_step').hide();
|
18 |
$('.sq_step' + step).show();
|
19 |
};
|
100 |
|
101 |
$table.show();
|
102 |
|
103 |
+
//Set the new sort
|
104 |
+
$.extend($.fn.dataTableExt.oSort, {
|
105 |
+
"formatted-value-pre": function (a) {
|
106 |
+
return $('<div></div>').append(a).find('span').data('value');
|
107 |
+
},
|
108 |
+
|
109 |
+
"formatted-value-asc": function (a, b) {
|
110 |
+
return a - b;
|
111 |
+
},
|
112 |
+
|
113 |
+
"formatted-value-desc": function (a, b) {
|
114 |
+
return b - a;
|
115 |
+
}
|
116 |
+
});
|
117 |
+
|
118 |
$table.DataTable(
|
119 |
{
|
120 |
"columnDefs": [
|
121 |
{
|
122 |
"targets": [5, 6],
|
123 |
"sortable": false
|
124 |
+
},
|
125 |
+
{
|
126 |
+
"targets": [2,3,4],
|
127 |
+
"sortable": true,
|
128 |
+
"type": "formatted-value"
|
129 |
}
|
130 |
],
|
131 |
"bPaginate": true,
|
161 |
$this.removeClass('sq_loading');
|
162 |
$this.find('.btn').show();
|
163 |
|
164 |
+
$('.sq_research_timeout_error').show();
|
165 |
}, 'json');
|
166 |
|
167 |
|
172 |
$this.removeClass('sq_loading').show();
|
173 |
$this.prepend('<div class="text-center text-warning">Lost connection with the server. Please make sure you whitelisted the IP from https://api.squirrly.co</div>');
|
174 |
}
|
175 |
+
}, 300000);
|
176 |
|
177 |
|
178 |
return $this;
|
view/assets/js/research.min.js
CHANGED
@@ -1,12 +1,12 @@
|
|
1 |
var SQ_DEBUG,$jscomp=$jscomp||{};$jscomp.scope={};$jscomp.findInternal=function(a,b,c){a instanceof String&&(a=String(a));for(var d=a.length,e=0;e<d;e++){var f=a[e];if(b.call(c,f,e,a))return{i:e,v:f}}return{i:-1,v:void 0}};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.defineProperty=$jscomp.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)};
|
2 |
$jscomp.getGlobal=function(a){return"undefined"!=typeof window&&window===a?a:"undefined"!=typeof global&&null!=global?global:a};$jscomp.global=$jscomp.getGlobal(this);$jscomp.polyfill=function(a,b,c,d){if(b){c=$jscomp.global;a=a.split(".");for(d=0;d<a.length-1;d++){var e=a[d];e in c||(c[e]={});c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&$jscomp.defineProperty(c,a,{configurable:!0,writable:!0,value:b})}};
|
3 |
$jscomp.polyfill("Array.prototype.find",function(a){return a?a:function(a,c){return $jscomp.findInternal(this,a,c).v}},"es6","es3");"undefined"===typeof SQ_DEBUG&&(SQ_DEBUG=!1);
|
4 |
-
(function(a){a(document).keypress(function(b){13==(b.keyCode||b.which)&&a(".sqd-submit:visible").trigger("click")});a.sq_steps=function(b){a(".sq_step").hide()
|
5 |
-
|
6 |
-
c.error?b.find(".sq_limit_exceeded").show():b.find(".sq_research_error").show()}).fail(function(){b.removeClass("sq_loading").show();b.prepend('<div class="text-center text-warning">Squirrly Library loading error. Please contact us at support@squirrly.co</div>')})):a(".sq_step2").find(".sq_research_error").show()};a.fn.sq_getResearch=function(){var b=this;a.sq_steps(4);b.find(".btn").hide();
|
7 |
-
var d=!0;b.addClass("sq_loading");a.post(sqQuery.ajaxurl,{action:"sq_ajax_research_process",keywords:c,country:a("select[name=sq_select_country] option:selected").val(),lang:"en",sq_nonce:sqQuery.nonce}).done(function(c){d=!1;b.removeClass("sq_loading");b.find(".btn").show();var e=a("div.sq_step4 table");"undefined"!==typeof c.html&&(e.find("tbody").html(c.html),a(".sq_research_success").show());
|
8 |
-
|
9 |
-
setTimeout(function(){d&&(b.find(".btn").show(),b.removeClass("sq_loading").show(),b.prepend('<div class="text-center text-warning">Lost connection with the server. Please make sure you whitelisted the IP from https://api.squirrly.co</div>'))},
|
10 |
-
a.post(sqQuery.ajaxurl,{action:"sq_ajax_research_history",id:b.data("id"),sq_nonce:sqQuery.nonce}).done(function(c){b.removeClass("sq_minloading");"undefined"!==typeof c.html&&d.html(c.html);d.find(".sq_research_add_briefcase").each(function(){a(this).on("click",
|
11 |
-
d.html('<td colspan="4" class="col-sm-12 text-center my-3 text-danger">Could not find the records</td>')},"json")))};a(document).ready(function(){a(".sq_history_details").on("click",function(){a(this).sq_getHistory()});a(".sq_research_add_briefcase").each(function(){a(this).on("click",
|
12 |
-
bFilter:!1,iDisplayLength:10})})})(jQuery);
|
1 |
var SQ_DEBUG,$jscomp=$jscomp||{};$jscomp.scope={};$jscomp.findInternal=function(a,b,c){a instanceof String&&(a=String(a));for(var d=a.length,e=0;e<d;e++){var f=a[e];if(b.call(c,f,e,a))return{i:e,v:f}}return{i:-1,v:void 0}};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.defineProperty=$jscomp.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)};
|
2 |
$jscomp.getGlobal=function(a){return"undefined"!=typeof window&&window===a?a:"undefined"!=typeof global&&null!=global?global:a};$jscomp.global=$jscomp.getGlobal(this);$jscomp.polyfill=function(a,b,c,d){if(b){c=$jscomp.global;a=a.split(".");for(d=0;d<a.length-1;d++){var e=a[d];e in c||(c[e]={});c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&$jscomp.defineProperty(c,a,{configurable:!0,writable:!0,value:b})}};
|
3 |
$jscomp.polyfill("Array.prototype.find",function(a){return a?a:function(a,c){return $jscomp.findInternal(this,a,c).v}},"es6","es3");"undefined"===typeof SQ_DEBUG&&(SQ_DEBUG=!1);
|
4 |
+
(function(a){a(document).keypress(function(b){13==(b.keyCode||b.which)&&a(".sqd-submit:visible").trigger("click")});a.sq_steps=function(b){2===b&&""===a("input[name=sq_input_keyword]").val()?a.sq_showMessage("Add a keyword first",2E3):(a(".sq_step").hide(),a(".sq_step"+b).show())};a.fn.sq_getSuggested=function(){var b=this;""!==a("input[name=sq_input_keyword]").val()?(a.sq_steps(3),b.addClass("sq_loading"),a.post(sqQuery.ajaxurl,{action:"sq_ajax_research_others",keyword:a("input[name=sq_input_keyword]").val(),
|
5 |
+
country:a("select[name=sq_select_country] option:selected").val(),lang:"en",sq_nonce:sqQuery.nonce}).done(function(c){b.removeClass("sq_loading");$count=0;"undefined"!==typeof c.keywords&&null!==c.keywords&&0<c.keywords.length?b.find(".sq_suggested").each(function(){"undefined"!==typeof c.keywords[$count]?(a(this).html('<input type="checkbox" id="sq_input_keywords'+$count+'" name="sq_input_keywords[]" class="sq_input_keywords custom-control-input" value="'+c.keywords[$count]+'"><label class="custom-control-label" for="sq_input_keywords'+
|
6 |
+
$count+'">'+c.keywords[$count]+"</label>"),$count++):a(this).hide()}):"undefined"!==typeof c.error&&"limit_exceeded"===c.error?b.find(".sq_limit_exceeded").show():b.find(".sq_research_error").show()}).fail(function(){b.removeClass("sq_loading").show();b.prepend('<div class="text-center text-warning">Squirrly Library loading error. Please contact us at support@squirrly.co</div>')})):a(".sq_step2").find(".sq_research_error").show()};a.fn.sq_getResearch=function(){var b=this;a.sq_steps(4);b.find(".btn").hide();
|
7 |
+
var c=a("input[name=sq_input_keyword]").val();a("input.sq_input_keywords:checked").each(function(){c+=","+a(this).val()});var d=!0;b.addClass("sq_loading");a.post(sqQuery.ajaxurl,{action:"sq_ajax_research_process",keywords:c,country:a("select[name=sq_select_country] option:selected").val(),lang:"en",sq_nonce:sqQuery.nonce}).done(function(c){d=!1;b.removeClass("sq_loading");b.find(".btn").show();var e=a("div.sq_step4 table");"undefined"!==typeof c.html&&(e.find("tbody").html(c.html),a(".sq_research_success").show());
|
8 |
+
e.show();a.extend(a.fn.dataTableExt.oSort,{"formatted-value-pre":function(b){return a("<div></div>").append(b).find("span").data("value")},"formatted-value-asc":function(a,b){return a-b},"formatted-value-desc":function(a,b){return b-a}});e.DataTable({columnDefs:[{targets:[5,6],sortable:!1},{targets:[2,3,4],sortable:!0,type:"formatted-value"}],bPaginate:!0,bLengthChange:!1,bFilter:!0,iDisplayLength:20});e.find(".sq_trend:visible").each(function(){a.sq_loadChart(a(this))});e.find(".sq_research_add_briefcase").each(function(){a(this).on("click",
|
9 |
+
function(){a(this).sq_addBriefcase()})});e.find(".sq_research_selectit").on("click",function(){a(this).addClass("sq_minloading");var b=a(this).data("keyword");a.sq_setCookie("sq_keyword",b);location.href=a(this).data("post")})}).fail(function(){d=!1;b.removeClass("sq_loading");b.find(".btn").show();a(".sq_research_timeout_error").show()},"json");setTimeout(function(){d&&(b.find(".btn").show(),b.removeClass("sq_loading").show(),b.prepend('<div class="text-center text-warning">Lost connection with the server. Please make sure you whitelisted the IP from https://api.squirrly.co</div>'))},
|
10 |
+
3E5);return b};a.fn.sq_getHistory=function(){var b=this,c=b.data("id"),d=a(b.data("destination"));d.length?a(d).remove():(a("#history"+c).length||(d=a('<tr id="history'+c+'"></tr>'),b.parents("tr:last").after(d),d.show()),a(d).is(":visible")&&(b.addClass("sq_minloading"),a.post(sqQuery.ajaxurl,{action:"sq_ajax_research_history",id:b.data("id"),sq_nonce:sqQuery.nonce}).done(function(c){b.removeClass("sq_minloading");"undefined"!==typeof c.html&&d.html(c.html);d.find(".sq_research_add_briefcase").each(function(){a(this).on("click",
|
11 |
+
function(){a(this).sq_addBriefcase()})});d.find(".sq_research_selectit").on("click",function(){a(this).addClass("sq_minloading");var b=a(this).data("keyword");a.sq_setCookie("sq_keyword",b);location.href=a(this).data("post")})}).fail(function(){b.removeClass("sq_minloading");d.html('<td colspan="4" class="col-sm-12 text-center my-3 text-danger">Could not find the records</td>')},"json")))};a(document).ready(function(){a(".sq_history_details").on("click",function(){a(this).sq_getHistory()});a(".sq_research_add_briefcase").each(function(){a(this).on("click",
|
12 |
+
function(){a(this).sq_addBriefcase()})});a("#sq_briefcaselabels").length&&a("#sq_briefcaselabels").find("table.table").DataTable({columnDefs:[{targets:[1,2],searchable:!1,sortable:!1}],bPaginate:!0,bLengthChange:!1,bFilter:!1,iDisplayLength:10})})})(jQuery);
|
view/assets/js/snippet.js
CHANGED
@@ -2,6 +2,33 @@ if (typeof SQ_DEBUG === 'undefined') var SQ_DEBUG = false;
|
|
2 |
//Blogs
|
3 |
(function ($) {
|
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
$.fn.sq_loadSnippet = function () {
|
6 |
var $this = this;
|
7 |
|
@@ -202,7 +229,10 @@ if (typeof SQ_DEBUG === 'undefined') var SQ_DEBUG = false;
|
|
202 |
sq_og_author: settings.sq_og_author.length > 0 ? $this.escapeHtml(settings.sq_og_author.val()) : '',
|
203 |
sq_og_media: settings.sq_og_media.length > 0 ? settings.sq_og_media.val() : '',
|
204 |
|
|
|
|
|
205 |
sq_jsonld: (settings.sq_jsonld.length > 0 && settings.sq_jsonld_code_type.find('option:selected').val() === 'custom') ? settings.sq_jsonld.val() : '',
|
|
|
206 |
sq_fpixel: (settings.sq_fpixel.length > 0 && settings.sq_fpixel_code_type.find('option:selected').val() === 'custom') ? settings.sq_fpixel.val() : '',
|
207 |
|
208 |
//
|
@@ -235,7 +265,7 @@ if (typeof SQ_DEBUG === 'undefined') var SQ_DEBUG = false;
|
|
235 |
SQ_DEBUG && console.log('sq_snippet_loaded');
|
236 |
SQ_DEBUG && console.log('sq_snippet_saved');
|
237 |
} else {
|
238 |
-
|
239 |
}
|
240 |
|
241 |
if (typeof response.error !== 'undefined') {
|
@@ -245,18 +275,15 @@ if (typeof SQ_DEBUG === 'undefined') var SQ_DEBUG = false;
|
|
245 |
}
|
246 |
} else {
|
247 |
$.sq_showError(settings.__sq_error_message, 2000);
|
248 |
-
location.reload();
|
249 |
}
|
250 |
}).fail(function () {
|
251 |
$this.removeClass('sq_minloading');
|
252 |
$.sq_showError(settings.__sq_error_message, 2000);
|
253 |
-
location.reload();
|
254 |
});
|
255 |
}
|
256 |
};
|
257 |
|
258 |
|
259 |
-
|
260 |
/**
|
261 |
* Populates all titles and descriptions
|
262 |
*/
|
@@ -315,6 +342,7 @@ if (typeof SQ_DEBUG === 'undefined') var SQ_DEBUG = false;
|
|
315 |
$this.sq_loadSnippet();
|
316 |
});
|
317 |
|
|
|
318 |
$this.keywordsListen();
|
319 |
|
320 |
//Listen the Edit Button
|
@@ -412,7 +440,7 @@ if (typeof SQ_DEBUG === 'undefined') var SQ_DEBUG = false;
|
|
412 |
if (dropdown.data('position') == 'small') {
|
413 |
dropdown.css('top', '35px');
|
414 |
dropdown.css('height', '36px');
|
415 |
-
}else{
|
416 |
var dropdown_top = (input.height() + 20);
|
417 |
dropdown.css('top', dropdown_top + 'px');
|
418 |
}
|
@@ -547,6 +575,7 @@ if (typeof SQ_DEBUG === 'undefined') var SQ_DEBUG = false;
|
|
547 |
});
|
548 |
}
|
549 |
|
|
|
550 |
return $this;
|
551 |
};
|
552 |
|
@@ -579,19 +608,19 @@ if (typeof SQ_DEBUG === 'undefined') var SQ_DEBUG = false;
|
|
579 |
words = elementwords.split(' ');
|
580 |
if (words.length > 0) {
|
581 |
for (var i = 0; i < words.length; i++) {
|
582 |
-
if ($patterns.find('li[data-pattern="' + words[i] + '"]').length) {
|
583 |
//clear the patterns
|
584 |
elementwords = elementwords.replace(words[i], '');
|
585 |
elementwords = elementwords.replace(' ', ' ');
|
586 |
elementwords = elementwords.trim();
|
587 |
|
588 |
//Get the patterns value length
|
589 |
-
if ($patterns.find('li[data-pattern="' + words[i] + '"]').data('value')) {
|
590 |
-
patternslength += $patterns.find('li[data-pattern="' + words[i] + '"]').data('value').length;
|
591 |
}
|
592 |
|
593 |
//Get the final value without patterns
|
594 |
-
finalvalue = finalvalue.replace(new RegExp(words[i], "g"), $patterns.find('li[data-pattern="' + words[i] + '"]').data('value'));
|
595 |
}
|
596 |
}
|
597 |
//Set the final length with patterns values
|
@@ -674,19 +703,22 @@ if (typeof SQ_DEBUG === 'undefined') var SQ_DEBUG = false;
|
|
674 |
//Snippet is loaded. Let SLA know
|
675 |
$this.trigger('sq_snippet_loaded');
|
676 |
SQ_DEBUG && console.log('sq_snippet_loaded');
|
|
|
|
|
677 |
}
|
|
|
678 |
if (typeof response.error !== 'undefined') {
|
679 |
-
$.sq_showError(response.error,
|
680 |
}
|
681 |
} else {
|
682 |
-
|
683 |
SQ_DEBUG && console.log('no data received');
|
684 |
}
|
685 |
|
686 |
$this.removeClass('sq_minloading');
|
687 |
}).fail(function () {
|
688 |
-
location.reload();
|
689 |
SQ_DEBUG && console.log('no data received');
|
|
|
690 |
|
691 |
$this.removeClass('sq_minloading');
|
692 |
});
|
@@ -881,27 +913,14 @@ if (typeof SQ_DEBUG === 'undefined') var SQ_DEBUG = false;
|
|
881 |
$snippet.find($tab.attr('href')).addClass('active');
|
882 |
});
|
883 |
|
|
|
|
|
884 |
|
885 |
-
|
886 |
-
|
887 |
-
|
888 |
-
|
889 |
-
|
890 |
-
jQuery('.sq-alert').hide();
|
891 |
-
}, time);
|
892 |
-
}
|
893 |
-
};
|
894 |
-
|
895 |
-
$.sq_showError = function (message, time) {
|
896 |
-
$blocksnippet.find('.sq_tabcontent').prepend('<div class="sq-alert sq-my-2 sq-alert-danger sq-alert-absolute" >' + message + '</div>');
|
897 |
-
|
898 |
-
if (typeof time !== 'undefined') {
|
899 |
-
setTimeout(function () {
|
900 |
-
//jQuery('.sq-alert').hide();
|
901 |
-
}, time);
|
902 |
-
}
|
903 |
-
};
|
904 |
-
|
905 |
}
|
906 |
}
|
907 |
});
|
2 |
//Blogs
|
3 |
(function ($) {
|
4 |
|
5 |
+
|
6 |
+
$.sq_showSaved = function (message, time) {
|
7 |
+
if (!$('#sq_blocksnippet').find('.sq_tabcontent').length) {
|
8 |
+
$('#sq_blocksnippet').prepend('<div class="sq_tabcontent" ></div>');
|
9 |
+
}
|
10 |
+
$('#sq_blocksnippet').find('.sq_tabcontent').prepend('<div class="sq-alert sq-my-2 sq-alert-success sq-alert-absolute" >' + message + '</div>');
|
11 |
+
|
12 |
+
if (typeof time !== 'undefined' && time > 0) {
|
13 |
+
setTimeout(function () {
|
14 |
+
jQuery('.sq-alert').hide();
|
15 |
+
}, time);
|
16 |
+
}
|
17 |
+
};
|
18 |
+
|
19 |
+
$.sq_showError = function (message, time) {
|
20 |
+
if (!$('#sq_blocksnippet').find('.sq_tabcontent').length) {
|
21 |
+
$('#sq_blocksnippet').prepend('<div class="sq_tabcontent" ></div>');
|
22 |
+
}
|
23 |
+
$('#sq_blocksnippet').find('.sq_tabcontent').prepend('<div class="sq-alert sq-my-2 sq-alert-danger sq-alert-absolute" >' + message + '</div>');
|
24 |
+
|
25 |
+
if (typeof time !== 'undefined' && time > 0) {
|
26 |
+
setTimeout(function () {
|
27 |
+
jQuery('.sq-alert').hide();
|
28 |
+
}, time);
|
29 |
+
}
|
30 |
+
};
|
31 |
+
|
32 |
$.fn.sq_loadSnippet = function () {
|
33 |
var $this = this;
|
34 |
|
229 |
sq_og_author: settings.sq_og_author.length > 0 ? $this.escapeHtml(settings.sq_og_author.val()) : '',
|
230 |
sq_og_media: settings.sq_og_media.length > 0 ? settings.sq_og_media.val() : '',
|
231 |
|
232 |
+
|
233 |
+
sq_jsonld_code_type: (settings.sq_jsonld_code_type.length > 0) ? settings.sq_jsonld_code_type.find('option:selected').val() : 'auto',
|
234 |
sq_jsonld: (settings.sq_jsonld.length > 0 && settings.sq_jsonld_code_type.find('option:selected').val() === 'custom') ? settings.sq_jsonld.val() : '',
|
235 |
+
sq_fpixel_code_type: (settings.sq_fpixel_code_type.length > 0) ? settings.sq_fpixel_code_type.find('option:selected').val() : 'auto',
|
236 |
sq_fpixel: (settings.sq_fpixel.length > 0 && settings.sq_fpixel_code_type.find('option:selected').val() === 'custom') ? settings.sq_fpixel.val() : '',
|
237 |
|
238 |
//
|
265 |
SQ_DEBUG && console.log('sq_snippet_loaded');
|
266 |
SQ_DEBUG && console.log('sq_snippet_saved');
|
267 |
} else {
|
268 |
+
$.sq_showError("Couldn't load the page. Please refresh.", 0);
|
269 |
}
|
270 |
|
271 |
if (typeof response.error !== 'undefined') {
|
275 |
}
|
276 |
} else {
|
277 |
$.sq_showError(settings.__sq_error_message, 2000);
|
|
|
278 |
}
|
279 |
}).fail(function () {
|
280 |
$this.removeClass('sq_minloading');
|
281 |
$.sq_showError(settings.__sq_error_message, 2000);
|
|
|
282 |
});
|
283 |
}
|
284 |
};
|
285 |
|
286 |
|
|
|
287 |
/**
|
288 |
* Populates all titles and descriptions
|
289 |
*/
|
342 |
$this.sq_loadSnippet();
|
343 |
});
|
344 |
|
345 |
+
|
346 |
$this.keywordsListen();
|
347 |
|
348 |
//Listen the Edit Button
|
440 |
if (dropdown.data('position') == 'small') {
|
441 |
dropdown.css('top', '35px');
|
442 |
dropdown.css('height', '36px');
|
443 |
+
} else {
|
444 |
var dropdown_top = (input.height() + 20);
|
445 |
dropdown.css('top', dropdown_top + 'px');
|
446 |
}
|
575 |
});
|
576 |
}
|
577 |
|
578 |
+
|
579 |
return $this;
|
580 |
};
|
581 |
|
608 |
words = elementwords.split(' ');
|
609 |
if (words.length > 0) {
|
610 |
for (var i = 0; i < words.length; i++) {
|
611 |
+
if ($patterns.find('li[data-pattern="' + words[i].replace(new RegExp('"', "g"), '') + '"]').length) {
|
612 |
//clear the patterns
|
613 |
elementwords = elementwords.replace(words[i], '');
|
614 |
elementwords = elementwords.replace(' ', ' ');
|
615 |
elementwords = elementwords.trim();
|
616 |
|
617 |
//Get the patterns value length
|
618 |
+
if ($patterns.find('li[data-pattern="' + words[i].replace(new RegExp('"', "g"), '') + '"]').data('value')) {
|
619 |
+
patternslength += $patterns.find('li[data-pattern="' + words[i].replace(new RegExp('"', "g"), '') + '"]').data('value').length;
|
620 |
}
|
621 |
|
622 |
//Get the final value without patterns
|
623 |
+
finalvalue = finalvalue.replace(new RegExp(words[i], "g"), $patterns.find('li[data-pattern="' + words[i].replace(new RegExp('"', "g"), '') + '"]').data('value'));
|
624 |
}
|
625 |
}
|
626 |
//Set the final length with patterns values
|
703 |
//Snippet is loaded. Let SLA know
|
704 |
$this.trigger('sq_snippet_loaded');
|
705 |
SQ_DEBUG && console.log('sq_snippet_loaded');
|
706 |
+
} else {
|
707 |
+
$('#sq_blocksnippet').trigger('error.refresh');
|
708 |
}
|
709 |
+
|
710 |
if (typeof response.error !== 'undefined') {
|
711 |
+
$.sq_showError(response.error, 10000);
|
712 |
}
|
713 |
} else {
|
714 |
+
$('#sq_blocksnippet').trigger('error.refresh');
|
715 |
SQ_DEBUG && console.log('no data received');
|
716 |
}
|
717 |
|
718 |
$this.removeClass('sq_minloading');
|
719 |
}).fail(function () {
|
|
|
720 |
SQ_DEBUG && console.log('no data received');
|
721 |
+
$('#sq_blocksnippet').trigger('error.refresh');
|
722 |
|
723 |
$this.removeClass('sq_minloading');
|
724 |
});
|
913 |
$snippet.find($tab.attr('href')).addClass('active');
|
914 |
});
|
915 |
|
916 |
+
$blocksnippet.on('error.refresh', function () {
|
917 |
+
$.sq_showError("Couldn't load the page. <span class='sq_snippet_refresh' style='color: #0F75BC; cursor:pointer;'>Please refresh</span>.", 0);
|
918 |
|
919 |
+
$('.sq_snippet_refresh').on('click', function () {
|
920 |
+
$blocksnippet.sq_loadSnippet();
|
921 |
+
});
|
922 |
+
//
|
923 |
+
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
924 |
}
|
925 |
}
|
926 |
});
|
view/assets/js/snippet.min.js
CHANGED
@@ -1,37 +1,39 @@
|
|
1 |
var SQ_DEBUG,$jscomp=$jscomp||{};$jscomp.scope={};$jscomp.findInternal=function(c,d,a){c instanceof String&&(c=String(c));for(var b=c.length,e=0;e<b;e++){var h=c[e];if(d.call(a,h,e,c))return{i:e,v:h}}return{i:-1,v:void 0}};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.defineProperty=$jscomp.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(c,d,a){c!=Array.prototype&&c!=Object.prototype&&(c[d]=a.value)};
|
2 |
$jscomp.getGlobal=function(c){return"undefined"!=typeof window&&window===c?c:"undefined"!=typeof global&&null!=global?global:c};$jscomp.global=$jscomp.getGlobal(this);$jscomp.polyfill=function(c,d,a,b){if(d){a=$jscomp.global;c=c.split(".");for(b=0;b<c.length-1;b++){var e=c[b];e in a||(a[e]={});a=a[e]}c=c[c.length-1];b=a[c];d=d(b);d!=b&&null!=d&&$jscomp.defineProperty(a,c,{configurable:!0,writable:!0,value:d})}};
|
3 |
$jscomp.polyfill("Array.prototype.find",function(c){return c?c:function(c,a){return $jscomp.findInternal(this,c,a).v}},"es6","es3");"undefined"===typeof SQ_DEBUG&&(SQ_DEBUG=!1);
|
4 |
-
(function(c){c.
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
a.find(".
|
13 |
-
|
14 |
-
|
15 |
-
a.
|
16 |
-
a.
|
17 |
-
"
|
18 |
-
0
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
a
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
function(
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
|
|
|
1 |
var SQ_DEBUG,$jscomp=$jscomp||{};$jscomp.scope={};$jscomp.findInternal=function(c,d,a){c instanceof String&&(c=String(c));for(var b=c.length,e=0;e<b;e++){var h=c[e];if(d.call(a,h,e,c))return{i:e,v:h}}return{i:-1,v:void 0}};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.defineProperty=$jscomp.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(c,d,a){c!=Array.prototype&&c!=Object.prototype&&(c[d]=a.value)};
|
2 |
$jscomp.getGlobal=function(c){return"undefined"!=typeof window&&window===c?c:"undefined"!=typeof global&&null!=global?global:c};$jscomp.global=$jscomp.getGlobal(this);$jscomp.polyfill=function(c,d,a,b){if(d){a=$jscomp.global;c=c.split(".");for(b=0;b<c.length-1;b++){var e=c[b];e in a||(a[e]={});a=a[e]}c=c[c.length-1];b=a[c];d=d(b);d!=b&&null!=d&&$jscomp.defineProperty(a,c,{configurable:!0,writable:!0,value:d})}};
|
3 |
$jscomp.polyfill("Array.prototype.find",function(c){return c?c:function(c,a){return $jscomp.findInternal(this,c,a).v}},"es6","es3");"undefined"===typeof SQ_DEBUG&&(SQ_DEBUG=!1);
|
4 |
+
(function(c){c.sq_showSaved=function(d,a){c("#sq_blocksnippet").find(".sq_tabcontent").length||c("#sq_blocksnippet").prepend('<div class="sq_tabcontent" ></div>');c("#sq_blocksnippet").find(".sq_tabcontent").prepend('<div class="sq-alert sq-my-2 sq-alert-success sq-alert-absolute" >'+d+"</div>");"undefined"!==typeof a&&0<a&&setTimeout(function(){jQuery(".sq-alert").hide()},a)};c.sq_showError=function(d,a){c("#sq_blocksnippet").find(".sq_tabcontent").length||c("#sq_blocksnippet").prepend('<div class="sq_tabcontent" ></div>');
|
5 |
+
c("#sq_blocksnippet").find(".sq_tabcontent").prepend('<div class="sq-alert sq-my-2 sq-alert-danger sq-alert-absolute" >'+d+"</div>");"undefined"!==typeof a&&0<a&&setTimeout(function(){jQuery(".sq-alert").hide()},a)};c.fn.sq_loadSnippet=function(){c("input[name=sq_post_id]").length||(0<c("input[name=post_ID]").length&&this.prepend('<input type="hidden" name="sq_post_id" value="'+c("input[name=post_ID]").val()+'">'),0<c("input[name=post_type]").length&&this.prepend('<input type="hidden" name="sq_post_type" value="'+
|
6 |
+
c("input[name=post_type]").val()+'">'),0<c("input[name=tag_ID]").length&&this.prepend('<input type="hidden" name="sq_term_id" value="'+c("input[name=tag_ID]").val()+'">'),0<c("input[name=taxonomy]").length&&this.prepend('<input type="hidden" name="sq_taxonomy" value="'+c("input[name=taxonomy]").val()+'">'));this.each(function(){c(this).sq_getSnippet(c(this).find("input[name=sq_post_id]").val(),c(this).find("input[name=sq_term_id]").val(),c(this).find("input[name=sq_taxonomy]").val(),c(this).find("input[name=sq_post_type]").val())})};
|
7 |
+
c.fn.sq_editSnippet=function(d){var a=this,b=c.extend({called:"normal",sq_snippet_wrap:a.find(".sq_snippet_wrap"),editButton:a.find(".sq_snippet_btn_edit"),saveButton:a.find(".sq_snippet_btn_save"),cancelButton:a.find(".sq_snippet_btn_cancel"),refreshButton:a.find(".sq_snippet_btn_refresh"),last_tab:null,closeButton:a.find(".sq-close"),sq_url:a.find("input[name=sq_url]"),sq_doseo:a.find("input[name=sq_doseo].sq-switch"),sq_toggle:a.find(".sq-toggle"),sq_title:a.find("textarea[name=sq_title]"),sq_description:a.find("textarea[name=sq_description]"),
|
8 |
+
sq_keywords:a.find("input[name=sq_keywords]"),sq_noindex:a.find("input[name=sq_noindex]"),sq_nofollow:a.find("input[name=sq_nofollow]"),sq_nositemap:a.find("input[name=sq_nositemap]"),sq_canonical:a.find("input[name=sq_canonical]"),sq_og_media:a.find("input[name=sq_og_media]"),sq_og_media_preview:a.find("img.sq_og_media_preview"),og_image_close:a.find(".sq_og_image_close"),sq_og_title:a.find("textarea[name=sq_og_title]"),sq_og_description:a.find("textarea[name=sq_og_description]"),sq_og_author:a.find("input[name=sq_og_author]"),
|
9 |
+
sq_og_type:a.find("select[name=sq_og_type]"),sq_og_pixel:a.find("#sq_og_pixel_id"),sq_tw_media:a.find("input[name=sq_tw_media]"),sq_tw_media_preview:a.find("img.sq_tw_media_preview"),tw_image_close:a.find(".sq_tw_image_close"),sq_tw_title:a.find("textarea[name=sq_tw_title]"),sq_tw_description:a.find("textarea[name=sq_tw_description]"),sq_tw_type:a.find("select[name=sq_tw_type]"),sq_jsonld:a.find("textarea[name=sq_jsonld]"),sq_jsonld_code_type:a.find("select.sq_jsonld_code_type"),sq_jsonld_custom_code:a.find("div.sq_jsonld_custom_code"),
|
10 |
+
sq_fpixel:a.find("textarea[name=sq_fpixel]"),sq_fpixel_code_type:a.find("select.sq_fpixel_code_type"),sq_fpixel_custom_code:a.find("div.sq_fpixel_custom_code"),sq_post_id:0<a.find("input[name=sq_post_id]").length?a.find("input[name=sq_post_id]").val():0,sq_term_id:0<a.find("input[name=sq_term_id]").length?a.find("input[name=sq_term_id]").val():0,sq_taxonomy:0<a.find("input[name=sq_taxonomy]").length?a.find("input[name=sq_taxonomy]").val():"",sq_post_type:0<a.find("input[name=sq_post_type]").length?
|
11 |
+
a.find("input[name=sq_post_type]").val():"",previewTab:a.find(".sq_tab_preview"),editTab:a.find(".sq_tab_edit"),validKeyword:!1,__sq_save_message:"undefined"!==typeof __sq_save_message?__sq_save_message:"Saved!",__sq_error_message:"undefined"!==typeof __sq_error_message?__sq_error_message:"ERROR! Could not save the data. Please refresh",__sq_save_message_preview:"undefined"!==typeof __sq_save_message_preview?__sq_save_message_preview:"Saved! Reload to see the changes."},d);a.initNav=function(){var c=
|
12 |
+
a.parents(".menupop:last");0<c.length&&"topmenu"===a.data("snippet")?(c.off("hover"),c.find(".ab-item").on("click",function(){c.addClass("open")}),b.closeButton.on("click",function(){c.removeClass("open");c.removeClass("hover")}),c.find(".sq_snippet_wrap").show()):(a.off("hover"),b.closeButton.on("click",function(){a.hide()}))};a.listenDoSeo=function(){b.sq_doseo.on("change",function(){a.saveSEO()});b.sq_doseo.prop("checked")?(b.previewTab.show(),b.editTab.hide()):(b.previewTab.hide(),b.editTab.hide(),
|
13 |
+
b.cancelButton.hide())};a.tabsListen=function(){a.find("#sq_tabs").find("li").on("click",function(b){b.preventDefault();$li=c(this);a.find("#sq_tabs").find("li").each(function(){c(this).removeClass("active")});a.find(".sq_tabcontent").each(function(){c(this).hide()});a.find("#sq_tab_"+$li.find("a").text().toString().toLowerCase()).show();$li.addClass("active")})};a.saveSEO=function(){a.preventLeave(!1);a.addClass("sq_minloading");var d=a.find("#sq_hash");""!==d.val()&&c.post(sqQuery.ajaxurl,{action:"sq_saveseo",
|
14 |
+
sq_title:0<b.sq_title.length?a.escapeHtml(b.sq_title.val()):"",sq_description:0<b.sq_description.length?a.escapeHtml(b.sq_description.val()):"",sq_keywords:0<b.sq_keywords.length?a.escapeHtml(b.sq_keywords.val()):"",sq_canonical:0<b.sq_canonical.length?a.escapeHtml(b.sq_canonical.val()):"",sq_noindex:0<a.find("input[name=sq_noindex]:checked").length?parseInt(a.find("input[name=sq_noindex]:checked").val()):1,sq_nofollow:0<a.find("input[name=sq_nofollow]:checked").length?parseInt(a.find("input[name=sq_nofollow]:checked").val()):
|
15 |
+
1,sq_nositemap:0<a.find("input[name=sq_nositemap]:checked").length?parseInt(a.find("input[name=sq_nositemap]:checked").val()):1,sq_tw_title:0<b.sq_tw_title.length?a.escapeHtml(b.sq_tw_title.val()):"",sq_tw_description:0<b.sq_tw_description.length?a.escapeHtml(b.sq_tw_description.val()):"",sq_tw_media:0<b.sq_tw_media.length?b.sq_tw_media.val():"",sq_tw_type:0<b.sq_tw_type.length?b.sq_tw_type.find("option:selected").val():"",sq_og_title:0<b.sq_og_title.length?a.escapeHtml(b.sq_og_title.val()):"",sq_og_description:0<
|
16 |
+
b.sq_og_description.length?a.escapeHtml(b.sq_og_description.val()):"",sq_og_type:0<b.sq_og_type.length?b.sq_og_type.find("option:selected").val():"",sq_og_author:0<b.sq_og_author.length?a.escapeHtml(b.sq_og_author.val()):"",sq_og_media:0<b.sq_og_media.length?b.sq_og_media.val():"",sq_jsonld_code_type:0<b.sq_jsonld_code_type.length?b.sq_jsonld_code_type.find("option:selected").val():"auto",sq_jsonld:0<b.sq_jsonld.length&&"custom"===b.sq_jsonld_code_type.find("option:selected").val()?b.sq_jsonld.val():
|
17 |
+
"",sq_fpixel_code_type:0<b.sq_fpixel_code_type.length?b.sq_fpixel_code_type.find("option:selected").val():"auto",sq_fpixel:0<b.sq_fpixel.length&&"custom"===b.sq_fpixel_code_type.find("option:selected").val()?b.sq_fpixel.val():"",sq_url:0<b.sq_url.length?a.escapeHtml(b.sq_url.val()):"",sq_hash:d.val(),post_id:b.sq_post_id,term_id:b.sq_term_id,taxonomy:b.sq_taxonomy,post_type:b.sq_post_type,sq_doseo:0<a.find("input[name=sq_doseo]:checked").length?parseInt(a.find("input[name=sq_doseo]:checked").val()):
|
18 |
+
0,sq_nonce:sqQuery.nonce},function(){}).done(function(d){a.removeClass("sq_minloading");if("undefined"!==typeof d.saved){if("undefined"!==typeof d.html){var e=a.find(".sq-nav-item.active");a.html(d.html);a.sq_editSnippet({called:"ajax"});a.find(e).trigger("click");a.trigger("sq_snippet_loaded");a.trigger("sq_snippet_saved");SQ_DEBUG&&console.log("sq_snippet_loaded");SQ_DEBUG&&console.log("sq_snippet_saved")}else c.sq_showError("Couldn't load the page. Please refresh.",0);"undefined"!==typeof d.error?
|
19 |
+
c.sq_showError(d.error,2E3):c.sq_showSaved(b.__sq_save_message,2E3)}else c.sq_showError(b.__sq_error_message,2E3)}).fail(function(){a.removeClass("sq_minloading");c.sq_showError(b.__sq_error_message,2E3)})};a.populateInputs=function(){var d=c(document).find("head title").text();d||(d="");(d=a.find('meta[name="description"]').attr("content"))||(d="");0<a.find(".sq_title").length&&a.find(".sq_title").each(function(){c(this).sq_checkMax()});0<a.find(".sq_description").length&&a.find(".sq_description").each(function(){c(this).sq_checkMax()});
|
20 |
+
0<a.find(".sq_tab_facebook").find(".sq_deactivated").length&&(a.find(".sq_tab_facebook").find(".sq_snippet_title").text(a.find(".sq_tab_meta").find(".sq_snippet_title").text()),a.find(".sq_tab_facebook").find(".sq_snippet_description").text(a.find(".sq_tab_meta").find(".sq_snippet_description").text()));0<a.find(".sq_tab_twitter").find(".sq_deactivated").length&&(a.find(".sq_tab_twitter").find(".sq_snippet_title").text(a.find(".sq_tab_meta").find(".sq_snippet_title").text()),a.find(".sq_tab_twitter").find(".sq_snippet_description").text(a.find(".sq_tab_meta").find(".sq_snippet_description").text()));
|
21 |
+
b.sq_og_media_preview&&""!==b.sq_og_media.val()&&(b.sq_og_media_preview.attr("src",b.sq_og_media.val()),b.og_image_close.show());b.og_image_close.on("click",function(){b.sq_og_media_preview.attr("src","");b.sq_og_media.val("");c(this).hide()});b.sq_tw_media_preview&&""!==b.sq_tw_media.val()&&(b.sq_tw_media_preview.attr("src",b.sq_tw_media.val()),b.tw_image_close.show());b.tw_image_close.on("click",function(){b.sq_tw_media_preview.attr("src","");b.sq_tw_media.val("");c(this).hide()});b.refreshButton.on("click",
|
22 |
+
function(){a.sq_loadSnippet()});a.keywordsListen();b.editButton.on("click",function(){b.previewTab.hide();b.editTab.show();b.cancelButton.on("click",function(){b.previewTab.show();b.editTab.hide()});c.isFunction(c.fn.sq_patterns)&&a.find(".sq_pattern_field").each(function(){c(this).sq_patterns().init()})})};a.mediaListen=function(){a.find(".sq_get_og_media, .sq_get_tw_media").click(function(a){a.preventDefault();var d=c(this).parents(".sq-row:last").find(".sq_og_media_preview"),e=c(this).parents(".sq-row:last").find(".sq_og_image_close"),
|
23 |
+
g=c(this).parents(".sq-row:last").find(".sq_tw_media_preview"),l=c(this).parents(".sq-row:last").find(".sq_tw_image_close");k&&k.open();var k=wp.media({title:"Select Media",multiple:!1,library:{type:"image"}});k.on("close",function(){var a=null,c=0;k.state().get("selection").each(function(b){a=b.attributes.url;c++});0<d.length&&null!==a&&(b.sq_og_media.val(a),d.attr("src",a),e.show());0<g.length&&null!==a&&(b.sq_tw_media.val(a),g.attr("src",a),l.show())});k.on("open",function(){k.state().get("selection")});
|
24 |
+
k.open()})};a.dropDownListen=function(){var a,d,f;b.sq_toggle.on("click",function(){f=c(this);f.css("height","auto");d=f.parents(".sq-input-group:last").find(".sq-actions");if("small"==d.data("position"))d.css("top","35px"),d.css("height","36px");else{var b=f.height()+20;d.css("top",b+"px")}a=d.find(".sq-action");d.show();a.on("click",function(){var a=c(this).find(".sq-value");"undefined"!==typeof a&&""!==a&&(f.val(a.html()),f.trigger("change"),f.sq_checkMax())});f.on("keyup",function(){c(this).parents(".sq-input-group:last").find(".sq-actions").hide()});
|
25 |
+
f.sq_bodyClick("click",function(){c(this).parents(".sq-input-group:last").find(".sq-actions").hide()})});b.sq_jsonld_code_type.on("change",function(){"custom"===b.sq_jsonld_code_type.find("option:selected").val()?b.sq_jsonld_custom_code.show():b.sq_jsonld_custom_code.hide()});b.sq_fpixel_code_type.on("change",function(){"custom"===b.sq_fpixel_code_type.find("option:selected").val()?b.sq_fpixel_custom_code.show():b.sq_fpixel_custom_code.hide()})};a.keywordsListen=function(){b.sq_keywords.sqtagsinput("items")};
|
26 |
+
a.escapeHtml=function(a){var b={"&":"&","<":"<",">":">",'"':""","'":"'"};return a.toString().replace(/[&<>"']/g,function(a){return b[a]})};a.preventLeave=function(a){if(0==c("form#post").length)if(a)c(window).on("beforeunload",function(){return confirm("You have unsave changes in Squirrly Snippet. Are you sure you want to proceed?")});else c(window).off("beforeunload")};a.initNav();a.listenDoSeo();a.mediaListen();a.tabsListen();a.populateInputs();a.dropDownListen();a.find('input[type="text"], textarea').on("keyup paste",
|
27 |
+
function(){a.preventLeave(!0);c(this).sq_checkMax()});b.saveButton.on("click",function(b){b.preventDefault();SQ_DEBUG&&console.log("save");a.preventLeave(!1);a.saveSEO()});if("undefined"!==typeof c.sq_blockseo)c.sq_blockseo.on("sq_seo_refresh",function(){b.refreshButton.trigger("click")});c(document).on("after-autosave.update-post-slug",function(b,c){a.preventLeave(!1)});0<a.find(".sq_save_ajax").length&&(a.find(".sq_save_ajax").find("input").on("change",function(){c(this).sq_ajaxSnippetListen()}),
|
28 |
+
a.find(".sq_save_ajax").find("button").on("click",function(){c(this).sq_ajaxSnippetListen()}));return a};c.fn.sq_checkMax=function(){var d=c(this),a=d.parents(".sq-input-group:last"),b=0,e=300,h;if(!(0< !d.length)){var f=d.is("input, textarea")?h=d.val():h=d.html();var g=f.length;a.find(".sq_length").length&&(e=parseInt(a.find(".sq_length").data("maxlength")));if(a.hasClass("sq_pattern_field")){var l=a.find(".sq_pattern_list");var k=f.split(" ");if(0<k.length){for(g=0;g<k.length;g++)l.find('li[data-pattern="'+
|
29 |
+
k[g].replace(/"/g,"")+'"]').length&&(f=f.replace(k[g],""),f=f.replace(" "," "),f=f.trim(),l.find('li[data-pattern="'+k[g].replace(/"/g,"")+'"]').data("value")&&(b+=l.find('li[data-pattern="'+k[g].replace(/"/g,"")+'"]').data("value").length),h=h.replace(new RegExp(k[g],"g"),l.find('li[data-pattern="'+k[g].replace(/"/g,"")+'"]').data("value")));g=f.length+b}}d.attr("title",h);a.find(".sq_length").text(g+"/"+e);0===g||g>e?d.attr("style","border: solid 1px red !important"):d.attr("style","border: none !important")}};
|
30 |
+
c.fn.sq_bodyClick=function(d,a){return this.each(function(){var b=c(this),e=this;c(document).on(d,function f(b){b.target===e||c.contains(e,b.target)||(a.apply(e,[b]),c(document).off(d,f))});b.on("keydown blur",function g(c){9===c.which&&(a.apply(e,[c]),b.off("keydown",g))})})};c.fn.toggleSwitch=function(d){var a=c(this);(a.prop("checked")&&0==d||!a.prop("checked")&&1==d)&&a.trigger("click")};c.fn.sq_getSnippet=function(d,a,b,e){var h=this;h.addClass("sq_minloading");c.post(sqQuery.ajaxurl,{action:"sq_getsnippet",
|
31 |
+
post_id:d,term_id:a,taxonomy:b,post_type:e,sq_nonce:sqQuery.nonce}).done(function(a){"undefined"!==typeof a?("undefined"!==typeof a.html?(c("div.tooltip").hide(),h.html(a.html),h.sq_editSnippet(),h.trigger("sq_snippet_loaded"),SQ_DEBUG&&console.log("sq_snippet_loaded")):c("#sq_blocksnippet").trigger("error.refresh"),"undefined"!==typeof a.error&&c.sq_showError(a.error,1E4)):(c("#sq_blocksnippet").trigger("error.refresh"),SQ_DEBUG&&console.log("no data received"));h.removeClass("sq_minloading")}).fail(function(){SQ_DEBUG&&
|
32 |
+
console.log("no data received");c("#sq_blocksnippet").trigger("error.refresh");h.removeClass("sq_minloading")})};c.fn.sq_previewSnippet=function(d,a){var b=this;"undefined"===typeof d&&(d="");"undefined"===typeof a&&(a="");b.find(".sq_snippet_ul").addClass("sq_minloading");b.find(".sq_snippet_title").html("");b.find(".sq_snippet_url").html("");b.find(".sq_snippet_description").html("");b.find(".sq_snippet_keywords").hide();b.find(".sq_snippet").show();b.find(".sq_snippet_update").hide();b.find(".sq_snippet_customize").hide();
|
33 |
+
b.find(".ogimage_preview").hide();setTimeout(function(){c.post(sqQuery.ajaxurl,{action:"sq_previewsnippet",url:d,sq_nonce:sqQuery.nonce}).done(function(c){b.find(".sq_snippet_ul").removeClass("sq_minloading");b.find(".sq_snippet_update").show();b.find(".sq_snippet_customize").show();b.find(".sq_snippet_keywords").show();b.find(".ogimage_preview").show();c&&(b.find(".sq_snippet_title").html(c.title),""!==a?b.find(".sq_snippet_url").html('<a href="'+d+'" target="_blank">'+a+"</a>"):b.find(".sq_snippet_url").html(c.url),
|
34 |
+
b.find(".sq_snippet_description").html(c.description))}).fail(function(){b.find(".sq_snippet_ul").removeClass("sq_minloading");b.find(".sq_snippet_update").show()},"json")},500)};c.fn.sq_ajaxSnippetListen=function(){var d=this,a=c("#"+d.data("input")),b=d.data("confirm"),e=d.data("action"),h=d.data("name"),f=0;a.length||(a=d);if("undefined"===typeof b||confirm(b))a.is("checkbox")&&a.is(":checked")?f=a.val():a.is("select")?f=a.find("option:selected").val():a.is("input")&&(f=a.val()),d.addClass("sq_minloading"),
|
35 |
+
""!==e&&""!==f&&c.post(sqQuery.ajaxurl,{action:e,input:h,value:f,sq_nonce:sqQuery.nonce}).done(function(a){"undefined"!==typeof a.data?(""===a.data?c("#wpbody-content").prepend("Saved"):c("#wpbody-content").prepend(a.data),setTimeout(function(){d.removeClass("sq_minloading");var a=d.closest("div.sq_save_ajax").parent("div");0<a.length?(a.find(".sq_deactivated_label").remove(),a.find(".sq_deactivated").removeClass("sq_deactivated")):location.reload()},1E3)):"undefined"!==typeof a.error&&(c("body").prepend(a.error),
|
36 |
+
d.removeClass("sq_minloading"))}).fail(function(){d.removeClass("sq_minloading");location.reload()},"json")};c.sq_isGutenberg||(c.sq_isGutenberg=function(d){return"undefined"!==typeof window.wp&&"undefined"!==typeof wp.data&&"undefined"!==typeof wp.data.select("core/editor")&&c.isFunction(wp.data.select("core/editor").getEditedPostAttribute)});c(document).ready(function(){var d=c("#wp-admin-bar-sq_bar_menu"),a=!1,b="metas";0<d.length&&(d.find('#sq_blocksnippet[data-snippet="topmenu"]').length?(a=
|
37 |
+
d.find("#sq_blocksnippet"),a.sq_loadSnippet()):c('#sq_blocksnippet[data-snippet!="topmenu"]').length&&(a=c("#sq_blocksnippet"),d.find("#wp-admin-bar-sq_bar_submenu").remove(),d.find(".ab-item").on("click",function(){0<c(".edit-post-layout__content").length?c(".edit-post-layout__content").scrollTop(c(".edit-post-layout__content").scrollTop()+a.offset().top-100):c("html,body").scrollTop(a.offset().top-50)}),a.addClass("sq_blocksnippet").addClass("sq-shadow-sm").addClass("sq-border-bottom"),a.find(".inside").show().sq_loadSnippet()),
|
38 |
+
a&&(a.on("sq_snippet_loaded",function(){$snippet=c(this);$snippet.find(".sq-nav-item.sq-nav-link").on("click",function(){b=c(this).data("category")});$snippet.find(".sq-nav-item").removeClass("active");$snippet.find(".sq-tab-pane").removeClass("active");var a=$snippet.find(".sq_snippet_menu").find("#sq-nav-item_"+b);a.addClass("active");$snippet.find(a.attr("href")).addClass("active")}),a.on("error.refresh",function(){c.sq_showError("Couldn't load the page. <span class='sq_snippet_refresh' style='color: #0F75BC; cursor:pointer;'>Please refresh</span>.",
|
39 |
+
0);c(".sq_snippet_refresh").on("click",function(){a.sq_loadSnippet()})})))})})(jQuery);
|
view/assets/js/support.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
-
if(typeof SQ_DEBUG === 'undefined') var SQ_DEBUG = false;
|
2 |
(function ($) {
|
3 |
|
4 |
$.fn.sq_blocksupport = function () {
|
@@ -22,32 +22,14 @@ if(typeof SQ_DEBUG === 'undefined') var SQ_DEBUG = false;
|
|
22 |
$this.find('.sq_options_feedback_popup').hide();
|
23 |
});
|
24 |
|
25 |
-
$this.find("
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
$this.find("#sq_feedback_2").on('click', function () {
|
34 |
-
$this.find("#sq_feedback_submit").trigger('click');
|
35 |
-
for (i = 0; i < 5; i++) $this.find('#sq_options_feedback').find('.sq_icon').removeClass('sq_label_feedback_' + i);
|
36 |
-
$this.find('#sq_options_feedback').find('.sq_icon').addClass('sq_label_feedback_2');
|
37 |
-
|
38 |
-
});
|
39 |
-
|
40 |
-
$this.find("#sq_feedback_3").on('click', function () {
|
41 |
-
$this.find("#sq_feedback_submit").trigger('click');
|
42 |
-
for (i = 0; i < 5; i++) $this.find('#sq_options_feedback').find('.sq_icon').removeClass('sq_label_feedback_' + i);
|
43 |
-
$this.find('#sq_options_feedback').find('.sq_icon').addClass('sq_label_feedback_3');
|
44 |
-
});
|
45 |
-
|
46 |
-
$this.find("#sq_feedback_4").on('click', function () {
|
47 |
-
$this.find("#sq_feedback_submit").trigger('click');
|
48 |
-
for (i = 0; i < 5; i++) $this.find('#sq_options_feedback').find('.sq_icon').removeClass('sq_label_feedback_' + i);
|
49 |
-
$this.find('#sq_options_feedback').find('.sq_icon').addClass('sq_label_feedback_4');
|
50 |
-
|
51 |
});
|
52 |
|
53 |
$this.find("#sq_feedback_submit").on('click', function () {
|
@@ -63,14 +45,11 @@ if(typeof SQ_DEBUG === 'undefined') var SQ_DEBUG = false;
|
|
63 |
{
|
64 |
action: 'sq_feedback',
|
65 |
feedback: $this.find("input[name=sq_feedback_face]:radio:checked").val(),
|
66 |
-
|
67 |
-
message: $this.find("textarea[name=sq_feedback_message]").val(),
|
68 |
-
nonce: sqQuery.nonce
|
69 |
}
|
70 |
).done(function (response) {
|
71 |
$this.find('#sq_feedback_submit').removeAttr("disabled");
|
72 |
$this.find('#sq_feedback_submit').val('Send feedback');
|
73 |
-
$this.find("textarea[name=sq_feedback_message]").val('');
|
74 |
|
75 |
if (typeof response.message !== 'undefined') {
|
76 |
$this.find('#sq_options_feedback_error').removeClass('sq_error').addClass('sq_message').html(response.message);
|
@@ -104,17 +83,9 @@ if(typeof SQ_DEBUG === 'undefined') var SQ_DEBUG = false;
|
|
104 |
});
|
105 |
|
106 |
};
|
107 |
-
|
108 |
-
if ($('#sq_options').length > 0) {
|
109 |
$('#sq_options').sq_blocksupport();
|
110 |
-
}
|
111 |
-
$(document).ready(function () {
|
112 |
-
$('#sq_options').sq_blocksupport();
|
113 |
-
|
114 |
-
//For Customer Support Page
|
115 |
-
$('#sq_customerservice').sq_blocksupport();
|
116 |
-
});
|
117 |
-
}
|
118 |
|
119 |
|
120 |
})(jQuery);
|
1 |
+
if (typeof SQ_DEBUG === 'undefined') var SQ_DEBUG = false;
|
2 |
(function ($) {
|
3 |
|
4 |
$.fn.sq_blocksupport = function () {
|
22 |
$this.find('.sq_options_feedback_popup').hide();
|
23 |
});
|
24 |
|
25 |
+
$this.find(".sq_label_feedback_smiley").on('click', function () {
|
26 |
+
for (i = 0; i < 5; i++) {
|
27 |
+
$this.find('#sq_options_feedback').find('.sq_icon').removeClass('sq_label_feedback_' + i);
|
28 |
+
}
|
29 |
+
$this.find('#sq_options_feedback').find('.sq_icon').addClass($(this).attr('for'));
|
30 |
+
setTimeout(function () {
|
31 |
+
$this.find("#sq_feedback_submit").trigger('click');
|
32 |
+
},500)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
33 |
});
|
34 |
|
35 |
$this.find("#sq_feedback_submit").on('click', function () {
|
45 |
{
|
46 |
action: 'sq_feedback',
|
47 |
feedback: $this.find("input[name=sq_feedback_face]:radio:checked").val(),
|
48 |
+
sq_nonce: sqQuery.nonce
|
|
|
|
|
49 |
}
|
50 |
).done(function (response) {
|
51 |
$this.find('#sq_feedback_submit').removeAttr("disabled");
|
52 |
$this.find('#sq_feedback_submit').val('Send feedback');
|
|
|
53 |
|
54 |
if (typeof response.message !== 'undefined') {
|
55 |
$this.find('#sq_options_feedback_error').removeClass('sq_error').addClass('sq_message').html(response.message);
|
83 |
});
|
84 |
|
85 |
};
|
86 |
+
$(document).ready(function () {
|
|
|
87 |
$('#sq_options').sq_blocksupport();
|
88 |
+
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
89 |
|
90 |
|
91 |
})(jQuery);
|
view/assets/js/support.min.js
CHANGED
@@ -2,9 +2,8 @@ var SQ_DEBUG,$jscomp=$jscomp||{};$jscomp.scope={};$jscomp.findInternal=function(
|
|
2 |
$jscomp.getGlobal=function(b){return"undefined"!=typeof window&&window===b?b:"undefined"!=typeof global&&null!=global?global:b};$jscomp.global=$jscomp.getGlobal(this);$jscomp.polyfill=function(b,a,c,d){if(a){c=$jscomp.global;b=b.split(".");for(d=0;d<b.length-1;d++){var e=b[d];e in c||(c[e]={});c=c[e]}b=b[b.length-1];d=c[b];a=a(d);a!=d&&null!=a&&$jscomp.defineProperty(c,b,{configurable:!0,writable:!0,value:a})}};
|
3 |
$jscomp.polyfill("Array.prototype.find",function(b){return b?b:function(a,b){return $jscomp.findInternal(this,a,b).v}},"es6","es3");"undefined"===typeof SQ_DEBUG&&(SQ_DEBUG=!1);
|
4 |
(function(b){b.fn.sq_blocksupport=function(){var a=this;a.find("#sq_options_support").find("span").on("click",function(){a.find(".sq_options_support_popup").show();a.find(".sq_options_feedback_popup").hide()});a.find("#sq_options_close").on("click",function(){a.find(".sq_options_support_popup").hide()});a.find("#sq_options_feedback").find("span").on("click",function(){a.find(".sq_options_feedback_popup").show();a.find("#sq_options_feedback").find(".sq_push").hide();a.find(".sq_options_support_popup").hide()});
|
5 |
-
a.find("#sq_options_feedback_close").on("click",function(){a.find(".sq_options_feedback_popup").hide()});a.find("
|
6 |
-
a.find("#
|
7 |
-
a.find("#
|
8 |
-
|
9 |
-
|
10 |
-
a.find("#sq_feedback_submit").val("Send feedback"),a.find("#sq_feedback_submit").removeClass("sq_minloading"),a.find("#sq_options_feedback_error").addClass("sq_error").removeClass("sq_message").html("Could not send the feedback")},"json")})};0<b("#sq_options").length?b("#sq_options").sq_blocksupport():b(document).ready(function(){b("#sq_options").sq_blocksupport();b("#sq_customerservice").sq_blocksupport()})})(jQuery);
|
2 |
$jscomp.getGlobal=function(b){return"undefined"!=typeof window&&window===b?b:"undefined"!=typeof global&&null!=global?global:b};$jscomp.global=$jscomp.getGlobal(this);$jscomp.polyfill=function(b,a,c,d){if(a){c=$jscomp.global;b=b.split(".");for(d=0;d<b.length-1;d++){var e=b[d];e in c||(c[e]={});c=c[e]}b=b[b.length-1];d=c[b];a=a(d);a!=d&&null!=a&&$jscomp.defineProperty(c,b,{configurable:!0,writable:!0,value:a})}};
|
3 |
$jscomp.polyfill("Array.prototype.find",function(b){return b?b:function(a,b){return $jscomp.findInternal(this,a,b).v}},"es6","es3");"undefined"===typeof SQ_DEBUG&&(SQ_DEBUG=!1);
|
4 |
(function(b){b.fn.sq_blocksupport=function(){var a=this;a.find("#sq_options_support").find("span").on("click",function(){a.find(".sq_options_support_popup").show();a.find(".sq_options_feedback_popup").hide()});a.find("#sq_options_close").on("click",function(){a.find(".sq_options_support_popup").hide()});a.find("#sq_options_feedback").find("span").on("click",function(){a.find(".sq_options_feedback_popup").show();a.find("#sq_options_feedback").find(".sq_push").hide();a.find(".sq_options_support_popup").hide()});
|
5 |
+
a.find("#sq_options_feedback_close").on("click",function(){a.find(".sq_options_feedback_popup").hide()});a.find(".sq_label_feedback_smiley").on("click",function(){for(i=0;5>i;i++)a.find("#sq_options_feedback").find(".sq_icon").removeClass("sq_label_feedback_"+i);a.find("#sq_options_feedback").find(".sq_icon").addClass(b(this).attr("for"));setTimeout(function(){a.find("#sq_feedback_submit").trigger("click")},500)});a.find("#sq_feedback_submit").on("click",function(){a.find("#sq_feedback_msg").hide();
|
6 |
+
a.find("#sq_options_feedback_error").html('<p class="sq_minloading" style="margin:0 auto; padding:2px;"></p>');a.find("#sq_feedback_submit").attr("disabled","disabled");document.cookie="sq_feedback_face="+b("input[name=sq_feedback_face]:radio:checked").val()+"; expires=720; path=/";b.post(sqQuery.ajaxurl,{action:"sq_feedback",feedback:a.find("input[name=sq_feedback_face]:radio:checked").val(),sq_nonce:sqQuery.nonce}).done(function(b){a.find("#sq_feedback_submit").removeAttr("disabled");a.find("#sq_feedback_submit").val("Send feedback");
|
7 |
+
"undefined"!==typeof b.message?a.find("#sq_options_feedback_error").removeClass("sq_error").addClass("sq_message").html(b.message):a.find("#sq_options_feedback_error").removeClass("sq_error").html("")}).fail(function(c){if(200===c.status&&0<c.responseText.indexOf("{")){c.responseText=c.responseText.substr(c.responseText.indexOf("{"),c.responseText.lastIndexOf("}"));try{c=b.parseJSON(c.responseText),a.find("#sq_feedback_submit").removeAttr("disabled"),a.find("#sq_feedback_submit").val("Send feedback"),
|
8 |
+
a.find("textarea[name=sq_feedback_message]").val(""),"undefined"!==typeof c.message?a.find("#sq_options_feedback_error").removeClass("sq_error").addClass("sq_message").html(c.message):a.find("#sq_options_feedback_error").removeClass("sq_error").html("")}catch(d){}}else a.find("#sq_feedback_submit").removeAttr("disabled"),a.find("#sq_feedback_submit").val("Send feedback"),a.find("#sq_feedback_submit").removeClass("sq_minloading"),a.find("#sq_options_feedback_error").addClass("sq_error").removeClass("sq_message").html("Could not send the feedback")},
|
9 |
+
"json")})};b(document).ready(function(){b("#sq_options").sq_blocksupport()})})(jQuery);
|
|