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"
|