SEO SQUIRRLY™ - Version 6.2.6

Version Description

  • Fixed Canonical link for facebook Open Graph
  • Don't show the Canonical Link if Squirrly SEO is off
  • Fixed keyword saving on post update
  • Happy New Year!
Download this release

Release Info

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

Code changes from version 6.1.0 to 6.2.6

classes/SQ_HookController.php CHANGED
@@ -25,7 +25,7 @@ class SQ_HookController {
25
 
26
  /**
27
  * Calls the specified action in WP
28
- * @param oject $instance The parent class instance
29
  *
30
  * @return void
31
  */
@@ -56,7 +56,7 @@ class SQ_HookController {
56
 
57
  /**
58
  * Calls the specified action in WP
59
- * @param oject $instance The parent class instance
60
  *
61
  * @return void
62
  */
25
 
26
  /**
27
  * Calls the specified action in WP
28
+ * @param object $instance The parent class instance
29
  *
30
  * @return void
31
  */
56
 
57
  /**
58
  * Calls the specified action in WP
59
+ * @param object $instance The parent class instance
60
  *
61
  * @return void
62
  */
classes/SQ_Ranking.php CHANGED
@@ -3,21 +3,24 @@
3
  /**
4
  * Class for Google Ranking Record
5
  */
6
- class SQ_Ranking extends SQ_FrontController {
 
7
 
8
  private $keyword;
9
  private $post_id;
10
  private $error;
11
 
12
  //--
13
- public function getCountry() {
 
14
  if (isset(SQ_Tools::$options['sq_google_country']) && SQ_Tools::$options['sq_google_country'] <> '') {
15
  return SQ_Tools::$options['sq_google_country'];
16
  }
17
  return 'com';
18
  }
19
 
20
- public function getRefererCountry() {
 
21
  $convert_refc = array('com' => 'us', '.off.ai' => 'ai', 'com.ag' => 'ag', 'com.ar' => 'ar', 'com.au' => 'au', 'com.br' => 'br', 'com.co' => 'co', 'co.cr' => 'cr', 'com.cu' => 'cu', 'com.do' => 'do', 'com.ec' => 'ec', 'com.sv' => 'sv', 'com.fj' => 'fj', 'com.gi' => 'gi', 'com.gr' => 'gr', 'com.hk' => 'hk', 'co.hu' => 'hu', 'co.in' => 'in', 'co.im' => 'im', 'co.il' => 'il', 'com.jm' => 'jm', 'co.jp' => 'jp', 'co.je' => 'je', 'co.kr' => 'kr', 'co.ls' => 'ls', 'com.my' => 'my', 'com.mt' => 'mt', 'com.mx' => 'mx', 'com.na' => 'na', 'com.np' => 'np', 'com.ni' => 'ni', 'com.nf' => 'nf', 'com.pk' => 'pk', 'com.pa' => 'pa', 'com.py' => 'py', 'com.pe' => 'pe', 'com.ph' => 'ph', 'com.pr' => 'pr', 'com.sg' => 'sg', 'co.za' => 'za', 'com.tw' => 'tw', 'com.th' => 'th', 'com.tr' => 'tr', 'com.ua' => 'ua', 'com.uk' => 'uk', 'com.uy' => 'uy',);
22
  $country = $this->getCountry();
23
  if (array_key_exists($country, $convert_refc)) {
@@ -30,7 +33,8 @@ class SQ_Ranking extends SQ_FrontController {
30
  * Get the google language from settings
31
  * @return type
32
  */
33
- public function getLanguage() {
 
34
  if (isset(SQ_Tools::$options['sq_google_language']) && SQ_Tools::$options['sq_google_language'] <> '') {
35
  return SQ_Tools::$options['sq_google_language'];
36
  }
@@ -41,7 +45,8 @@ class SQ_Ranking extends SQ_FrontController {
41
  * Set the Post id
42
  * @return type
43
  */
44
- public function setPost($post_id) {
 
45
  $this->post_id = $post_id;
46
  }
47
 
@@ -49,7 +54,8 @@ class SQ_Ranking extends SQ_FrontController {
49
  * Get the current keyword
50
  * @param type $keyword
51
  */
52
- public function setKeyword($keyword) {
 
53
  $this->keyword = str_replace(" ", "+", urlencode(strtolower($keyword)));
54
  }
55
 
@@ -57,7 +63,8 @@ class SQ_Ranking extends SQ_FrontController {
57
  * Process Ranking on brief request
58
  * @param type $return
59
  */
60
- public function processRanking($post_id, $keyword) {
 
61
  $this->setPost($post_id);
62
  $this->setKeyword(trim($keyword));
63
 
@@ -72,11 +79,12 @@ class SQ_Ranking extends SQ_FrontController {
72
  *
73
  * @param integer $post_id
74
  * @param string $keyword
75
- * @param string $country: com | country extension
76
- * @param string $language: en | local language
77
  * @return boolean|int
78
  */
79
- public function getGoogleRank() {
 
80
  global $wpdb;
81
  $this->error = '';
82
 
@@ -121,45 +129,83 @@ class SQ_Ranking extends SQ_FrontController {
121
  }
122
 
123
  $user_agents = array(
124
- 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 Safari/537.36',
125
- 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0',
126
- 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.124 Safari/537.36',
127
- 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/600.6.3 (KHTML, like Gecko) Version/8.0.6 Safari/600.6.3',
128
- 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 Safari/537.36',
129
- 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 Safari/537.36',
130
- 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.132 Safari/537.36',
131
- 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.124 Safari/537.36',
132
- 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/600.7.12 (KHTML, like Gecko) Version/8.0.7 Safari/600.7.12',
133
- 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.124 Safari/537.36',
134
- 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:38.0) Gecko/20100101 Firefox/38.0',
 
 
 
 
 
 
 
 
 
 
135
  'Mozilla/5.0 (iPad; CPU OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko ) Version/5.1 Mobile/9B176 Safari/7534.48.3',
136
  'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; de-at) AppleWebKit/533.21.1 (KHTML, like Gecko) Version/5.0.5 Safari/533.21.1',
137
  'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_7; da-dk) AppleWebKit/533.21.1 (KHTML, like Gecko) Version/5.0.5 Safari/533.21.1',
138
  'Mozilla/5.0 (Windows; U; Windows NT 6.1; tr-TR) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27',
139
- 'Mozilla/5.0 (Windows; U; Windows NT 6.1; fr-FR) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27',
140
- 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27',
141
- 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; en-us) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27',
142
- 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.3 Safari/533.19.4',
143
- 'Opera/9.80 (X11; Linux i686; Ubuntu/14.10) Presto/2.12.388 Version/12.16',
144
- 'Opera/9.80 (Windows NT 6.0) Presto/2.12.388 Version/12.14',
145
- 'Mozilla/5.0 (Windows NT 6.0; rv:2.0) Gecko/20100101 Firefox/4.0 Opera 12.14',
146
- 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0) Opera 12.14',
147
- 'Opera/12.80 (Windows NT 5.1; U; en) Presto/2.10.289 Version/12.02',
148
- 'Opera/9.80 (Windows NT 6.1; U; es-ES) Presto/2.9.181 Version/12.00',
149
- 'Opera/12.0(Windows NT 5.1;U;en)Presto/22.9.168 Version/12.00',
150
- 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0',
151
- 'Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko',
152
- 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:38.0) Gecko/20100101 Firefox/38.0',
153
- 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 Safari/537.36',
154
- 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.132 Safari/537.36',
155
- 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 Safari/537.36',
156
- 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0',
157
- 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.132 Safari/537.36',
158
- 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 Safari/537.36',
159
- 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:39.0) Gecko/20100101 Firefox/39.0',
160
- 'Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko',
161
- 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 Safari/537.36',
162
- 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.124 Safari/537.36',
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
163
  );
164
 
165
  $option = array();
@@ -170,7 +216,7 @@ class SQ_Ranking extends SQ_FrontController {
170
 
171
  //Check the values for block IP
172
  if (strpos($response, "</h3>") === false) {
173
- set_transient('google_blocked', 1, (60 * 60 * 1));
174
  return -2; //return error
175
  }
176
 
@@ -202,7 +248,8 @@ class SQ_Ranking extends SQ_FrontController {
202
  * Do google rank with cron
203
  * @global type $wpdb
204
  */
205
- public function processCron() {
 
206
  global $wpdb;
207
  if (get_transient('google_blocked') !== false) {
208
  return;
@@ -228,20 +275,13 @@ class SQ_Ranking extends SQ_FrontController {
228
  $json = json_decode($row->meta_value);
229
  //If keyword is set and no rank or last check is 2 days ago
230
  if (isset($json->keyword) && $json->keyword <> '' &&
231
- (!isset($json->rank) ||
232
  (isset($json->update) && (time() - $json->update > (60 * 60 * 24 * 2))) || //if indexed then check every 2 days
233
  (isset($json->update) && isset($json->rank) && $json->rank == -1 && (time() - $json->update > (60 * 60 * 24))) //if not indexed than check often
234
- )) {
 
235
 
236
  $rank = $this->processRanking($row->post_id, $json->keyword);
237
- if ($rank == -1) {
238
- $count++;
239
- sleep(mt_rand(20, 40));
240
- //if not indexed with the keyword then find the url
241
- if ($this->processRanking($row->post_id, get_permalink($row->post_id)) > 0) {
242
- $rank = 0; //for permalink index set 0
243
- }
244
- }
245
 
246
  //if there is a success response than save it
247
  if (isset($rank) && $rank >= -1) {
@@ -255,7 +295,7 @@ class SQ_Ranking extends SQ_FrontController {
255
 
256
  $args = array();
257
  $args['post_id'] = $row->post_id;
258
- $args['rank'] = (string) $rank;
259
  $args['error'] = $this->error;
260
  $args['country'] = $this->getCountry();
261
  $args['language'] = $this->getLanguage();
@@ -274,7 +314,8 @@ class SQ_Ranking extends SQ_FrontController {
274
  * Get keyword from earlier version
275
  *
276
  */
277
- public function getKeywordHistory() {
 
278
  global $wpdb;
279
  //Check if ranks is saved in database
280
  $sql = "SELECT a.`global_rank`, a.`keyword`, a.`post_id`
3
  /**
4
  * Class for Google Ranking Record
5
  */
6
+ class SQ_Ranking extends SQ_FrontController
7
+ {
8
 
9
  private $keyword;
10
  private $post_id;
11
  private $error;
12
 
13
  //--
14
+ public function getCountry()
15
+ {
16
  if (isset(SQ_Tools::$options['sq_google_country']) && SQ_Tools::$options['sq_google_country'] <> '') {
17
  return SQ_Tools::$options['sq_google_country'];
18
  }
19
  return 'com';
20
  }
21
 
22
+ public function getRefererCountry()
23
+ {
24
  $convert_refc = array('com' => 'us', '.off.ai' => 'ai', 'com.ag' => 'ag', 'com.ar' => 'ar', 'com.au' => 'au', 'com.br' => 'br', 'com.co' => 'co', 'co.cr' => 'cr', 'com.cu' => 'cu', 'com.do' => 'do', 'com.ec' => 'ec', 'com.sv' => 'sv', 'com.fj' => 'fj', 'com.gi' => 'gi', 'com.gr' => 'gr', 'com.hk' => 'hk', 'co.hu' => 'hu', 'co.in' => 'in', 'co.im' => 'im', 'co.il' => 'il', 'com.jm' => 'jm', 'co.jp' => 'jp', 'co.je' => 'je', 'co.kr' => 'kr', 'co.ls' => 'ls', 'com.my' => 'my', 'com.mt' => 'mt', 'com.mx' => 'mx', 'com.na' => 'na', 'com.np' => 'np', 'com.ni' => 'ni', 'com.nf' => 'nf', 'com.pk' => 'pk', 'com.pa' => 'pa', 'com.py' => 'py', 'com.pe' => 'pe', 'com.ph' => 'ph', 'com.pr' => 'pr', 'com.sg' => 'sg', 'co.za' => 'za', 'com.tw' => 'tw', 'com.th' => 'th', 'com.tr' => 'tr', 'com.ua' => 'ua', 'com.uk' => 'uk', 'com.uy' => 'uy',);
25
  $country = $this->getCountry();
26
  if (array_key_exists($country, $convert_refc)) {
33
  * Get the google language from settings
34
  * @return type
35
  */
36
+ public function getLanguage()
37
+ {
38
  if (isset(SQ_Tools::$options['sq_google_language']) && SQ_Tools::$options['sq_google_language'] <> '') {
39
  return SQ_Tools::$options['sq_google_language'];
40
  }
45
  * Set the Post id
46
  * @return type
47
  */
48
+ public function setPost($post_id)
49
+ {
50
  $this->post_id = $post_id;
51
  }
52
 
54
  * Get the current keyword
55
  * @param type $keyword
56
  */
57
+ public function setKeyword($keyword)
58
+ {
59
  $this->keyword = str_replace(" ", "+", urlencode(strtolower($keyword)));
60
  }
61
 
63
  * Process Ranking on brief request
64
  * @param type $return
65
  */
66
+ public function processRanking($post_id, $keyword)
67
+ {
68
  $this->setPost($post_id);
69
  $this->setKeyword(trim($keyword));
70
 
79
  *
80
  * @param integer $post_id
81
  * @param string $keyword
82
+ * @param string $country : com | country extension
83
+ * @param string $language : en | local language
84
  * @return boolean|int
85
  */
86
+ public function getGoogleRank()
87
+ {
88
  global $wpdb;
89
  $this->error = '';
90
 
129
  }
130
 
131
  $user_agents = array(
132
+ 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36',
133
+ 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.1 Safari/537.36',
134
+ 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.0 Safari/537.36',
135
+ 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.0 Safari/537.36',
136
+ 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2226.0 Safari/537.36',
137
+ 'Mozilla/5.0 (Windows NT 6.4; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2225.0 Safari/537.36',
138
+ 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2225.0 Safari/537.36',
139
+ 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2224.3 Safari/537.36',
140
+ 'Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.93 Safari/537.36',
141
+ 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.36',
142
+ 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2049.0 Safari/537.36',
143
+ 'Mozilla/5.0 (Windows NT 4.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2049.0 Safari/537.36',
144
+ 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.67 Safari/537.36',
145
+ 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.67 Safari/537.36',
146
+ 'Mozilla/5.0 (X11; OpenBSD i386) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36',
147
+ 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1944.0 Safari/537.36',
148
+ 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.3319.102 Safari/537.36',
149
+ 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/7046A194A',
150
+ 'Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5355d Safari/8536.25',
151
+ 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.13+ (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2',
152
+ 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/534.55.3 (KHTML, like Gecko) Version/5.1.3 Safari/534.53.10',
153
  'Mozilla/5.0 (iPad; CPU OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko ) Version/5.1 Mobile/9B176 Safari/7534.48.3',
154
  'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; de-at) AppleWebKit/533.21.1 (KHTML, like Gecko) Version/5.0.5 Safari/533.21.1',
155
  'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_7; da-dk) AppleWebKit/533.21.1 (KHTML, like Gecko) Version/5.0.5 Safari/533.21.1',
156
  'Mozilla/5.0 (Windows; U; Windows NT 6.1; tr-TR) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27',
157
+ 'Mozilla/5.0 (Windows; U; Windows NT 6.1; rv:2.2) Gecko/20110201',
158
+ 'Mozilla/5.0 (Windows; U; Windows NT 6.1; it; rv:2.0b4) Gecko/20100818',
159
+ 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9a3pre) Gecko/20070330',
160
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.9.2a1pre) Gecko',
161
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.2.3) Gecko/20100401 Lightningquail/3.6.3',
162
+ 'Mozilla/5.0 (X11; ; Linux i686; rv:1.9.2.20) Gecko/20110805',
163
+ 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.13; ) Gecko/20101203',
164
+ 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1b3) Gecko/20090305',
165
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.9.0.9) Gecko/2009040821',
166
+ 'Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.0.8) Gecko/2009032711',
167
+ 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.7) Gecko/2009032803',
168
+ 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.9.0.7) Gecko/2009021910 MEGAUPLOAD 1.0',
169
+ 'Mozilla/5.0 (Windows; U; BeOS; en-US; rv:1.9.0.7) Gecko/2009021910',
170
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.3) Gecko/20070321',
171
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.3) Gecko/20070309 Mozilla/4.8 [en] (Windows NT 5.1; U)',
172
+ 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X; nl-NL; rv:1.8.1.3) Gecko/20080722',
173
+ 'Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; AS; rv:11.0) like Gecko',
174
+ 'Mozilla/5.0 (compatible, MSIE 11, Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko',
175
+ 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 7.0; InfoPath.3; .NET CLR 3.1.40767; Trident/6.0; en-IN)',
176
+ 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)',
177
+ 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)',
178
+ 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/5.0)',
179
+ 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/4.0; InfoPath.2; SV1; .NET CLR 2.0.50727; WOW64)',
180
+ 'Mozilla/5.0 (compatible; MSIE 10.0; Macintosh; Intel Mac OS X 10_7_3; Trident/6.0)',
181
+ 'Mozilla/4.0 (Compatible; MSIE 8.0; Windows NT 5.2; Trident/6.0)',
182
+ 'Mozilla/4.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/5.0)',
183
+ 'Mozilla/1.22 (compatible; MSIE 10.0; Windows 3.1)',
184
+ 'Mozilla/5.0 (Windows; U; MSIE 9.0; WIndows NT 9.0; en-US))',
185
+ 'Mozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 9.0; en-US)',
186
+ 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 7.1; Trident/5.0)',
187
+ 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; Media Center PC 6.0; InfoPath.3; MS-RTC LM 8; Zune 4.7)',
188
+ 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; Media Center PC 6.0; InfoPath.3; MS-RTC LM 8; Zune 4.7',
189
+ 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; chromeframe/12.0.742.112)',
190
+ 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0',
191
+ 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; yie8)',
192
+ 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; chromeframe/13.0.782.215)',
193
+ 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; chromeframe/11.0.696.57)',
194
+ 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0) chromeframe/10.0.648.205',
195
+ 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/5.0; chromeframe/11.0.696.57)',
196
+ 'Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727)',
197
+ 'Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 5.1; SLCC1; .NET CLR 1.1.4322)',
198
+ 'Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 5.0; Trident/4.0; InfoPath.1; SV1; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 3.0.04506.30)',
199
+ 'Mozilla/5.0 (compatible; MSIE 7.0; Windows NT 5.0; Trident/4.0; FBSMTWB; .NET CLR 2.0.34861; .NET CLR 3.0.3746.3218; .NET CLR 3.5.33652; msn OptimizedIE8;ENUS)',
200
+ 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.2; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)',
201
+ 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; Media Center PC 6.0; InfoPath.2; MS-RTC LM 8)',
202
+ 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; Media Center PC 6.0; InfoPath.2; MS-RTC LM 8',
203
+ 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; Media Center PC 6.0; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C)',
204
+ 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; InfoPath.3; .NET4.0C; .NET4.0E; .NET CLR 3.5.30729; .NET CLR 3.0.30729; MS-RTC LM 8)',
205
+ 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; InfoPath.2)',
206
+ 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Zune 3.0)',
207
+ 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; msn OptimizedIE8;ZHCN)',
208
+
209
  );
210
 
211
  $option = array();
216
 
217
  //Check the values for block IP
218
  if (strpos($response, "</h3>") === false) {
219
+ set_transient('google_blocked', time(), 3600);
220
  return -2; //return error
221
  }
222
 
248
  * Do google rank with cron
249
  * @global type $wpdb
250
  */
251
+ public function processCron()
252
+ {
253
  global $wpdb;
254
  if (get_transient('google_blocked') !== false) {
255
  return;
275
  $json = json_decode($row->meta_value);
276
  //If keyword is set and no rank or last check is 2 days ago
277
  if (isset($json->keyword) && $json->keyword <> '' &&
278
+ (!isset($json->rank) ||
279
  (isset($json->update) && (time() - $json->update > (60 * 60 * 24 * 2))) || //if indexed then check every 2 days
280
  (isset($json->update) && isset($json->rank) && $json->rank == -1 && (time() - $json->update > (60 * 60 * 24))) //if not indexed than check often
281
+ )
282
+ ) {
283
 
284
  $rank = $this->processRanking($row->post_id, $json->keyword);
 
 
 
 
 
 
 
 
285
 
286
  //if there is a success response than save it
287
  if (isset($rank) && $rank >= -1) {
295
 
296
  $args = array();
297
  $args['post_id'] = $row->post_id;
298
+ $args['rank'] = (string)$rank;
299
  $args['error'] = $this->error;
300
  $args['country'] = $this->getCountry();
301
  $args['language'] = $this->getLanguage();
314
  * Get keyword from earlier version
315
  *
316
  */
317
+ public function getKeywordHistory()
318
+ {
319
  global $wpdb;
320
  //Check if ranks is saved in database
321
  $sql = "SELECT a.`global_rank`, a.`keyword`, a.`post_id`
classes/SQ_Tools.php CHANGED
@@ -5,8 +5,7 @@
5
  *
6
  * @author Squirrly
7
  */
8
- class SQ_Tools extends SQ_FrontController
9
- {
10
 
11
  /** @var array Saved options in database */
12
  public static $options = array();
@@ -18,8 +17,7 @@ class SQ_Tools extends SQ_FrontController
18
  private static $debug;
19
  private static $source_code;
20
 
21
- public function __construct()
22
- {
23
  parent::__construct();
24
 
25
  self::$options = $this->getOptions();
@@ -27,8 +25,7 @@ class SQ_Tools extends SQ_FrontController
27
  $this->checkDebug(); //dev mode
28
  }
29
 
30
- public static function getUserID()
31
- {
32
  global $current_user;
33
  return $current_user->ID;
34
  }
@@ -38,8 +35,7 @@ class SQ_Tools extends SQ_FrontController
38
  *
39
  * @return void
40
  */
41
- function hookInit()
42
- {
43
  //TinyMCE editor required
44
  //set_user_setting('editor', 'tinymce');
45
 
@@ -56,8 +52,7 @@ class SQ_Tools extends SQ_FrontController
56
  * @param type $file
57
  * @return array
58
  */
59
- public function hookActionlink($links, $file)
60
- {
61
  if ($file == _SQ_PLUGIN_NAME_ . '/squirrly.php') {
62
  $link = '<a href="' . admin_url('admin.php?page=sq_dashboard') . '">' . __('Getting started', _SQ_PLUGIN_NAME_) . '</a>';
63
  array_unshift($links, $link);
@@ -71,8 +66,7 @@ class SQ_Tools extends SQ_FrontController
71
  *
72
  * @return void
73
  */
74
- public static function getOptions()
75
- {
76
  $default = array(
77
  'sq_ver' => 0,
78
  'sq_api' => '',
@@ -87,6 +81,7 @@ class SQ_Tools extends SQ_FrontController
87
  'sq_auto_sitemap' => 0,
88
  'sq_auto_feed' => 0,
89
  'sq_auto_jsonld' => 0,
 
90
  'sq_jsonld_type' => 'Organization',
91
  'sq_jsonld' => array(
92
  'Organization' => array(
@@ -143,6 +138,8 @@ class SQ_Tools extends SQ_FrontController
143
  'sq_facebook_account' => '',
144
  'sq_google_plus' => '',
145
  'sq_linkedin_account' => '',
 
 
146
  // --
147
  'sq_auto_seo' => 1,
148
  'sq_auto_title' => 1,
@@ -150,9 +147,11 @@ class SQ_Tools extends SQ_FrontController
150
  'sq_fp_title' => '',
151
  'sq_fp_description' => '',
152
  'sq_fp_keywords' => '',
 
153
  // --
154
  'sq_google_wt' => '',
155
  'sq_google_analytics' => '',
 
156
  'sq_facebook_insights' => '',
157
  'sq_bing_wt' => '',
158
  'sq_pinterest' => '',
@@ -167,12 +166,13 @@ class SQ_Tools extends SQ_FrontController
167
  'sq_google_country' => 'com',
168
  'sq_google_language' => 'en',
169
  'sq_google_country_strict' => 0,
170
- 'sq_google_ranksperhour' => 5,
171
  // --
172
  'sq_affiliate_link' => '',
173
  'sq_sla' => 1,
174
  'sq_keywordtag' => 1,
175
  'sq_local_images' => 1,
 
176
  //--
177
  'sq_dashboard' => 0,
178
  'sq_analytics' => 0,
@@ -187,8 +187,7 @@ class SQ_Tools extends SQ_FrontController
187
  return $default;
188
  }
189
 
190
- public static function getBriefOptions()
191
- {
192
  if ($pageId = get_option('page_on_front')) {
193
  $title = SQ_ObjController::getModel('SQ_Frontend')->getAdvancedMeta($pageId, 'title');
194
  $description = SQ_ObjController::getModel('SQ_Frontend')->getAdvancedMeta($pageId, 'description');
@@ -233,8 +232,7 @@ class SQ_Tools extends SQ_FrontController
233
  *
234
  * @return void
235
  */
236
- public static function saveOptions($key = null, $value = '')
237
- {
238
  if (isset($key)) {
239
  self::$options[$key] = $value;
240
  }
@@ -246,8 +244,7 @@ class SQ_Tools extends SQ_FrontController
246
  * Set the header type
247
  * @param type $type
248
  */
249
- public static function setHeader($type)
250
- {
251
  if (SQ_Tools::getValue('sq_debug') == 'on')
252
  return;
253
 
@@ -275,8 +272,7 @@ class SQ_Tools extends SQ_FrontController
275
  * @param mixed $defaultValue (optional)
276
  * @return mixed Value
277
  */
278
- public static function getValue($key, $defaultValue = false, $withcode = false)
279
- {
280
  if (!isset($key) OR empty($key) OR !is_string($key))
281
  return false;
282
  $ret = (isset($_POST[$key]) ? (is_string($_POST[$key]) ? urldecode($_POST[$key]) : $_POST[$key]) : (isset($_GET[$key]) ? (is_string($_GET[$key]) ? urldecode($_GET[$key]) : $_GET[$key]) : $defaultValue));
@@ -294,8 +290,7 @@ class SQ_Tools extends SQ_FrontController
294
  * @param string $key
295
  * @return boolean
296
  */
297
- public static function getIsset($key)
298
- {
299
  if (!isset($key) OR empty($key) OR !is_string($key))
300
  return false;
301
  return isset($_POST[$key]) ? true : (isset($_GET[$key]) ? true : false);
@@ -306,8 +301,7 @@ class SQ_Tools extends SQ_FrontController
306
  *
307
  * @return void
308
  */
309
- public static function showNotices($message, $type = 'sq_notices')
310
- {
311
  if (file_exists(_SQ_THEME_DIR_ . 'SQ_notices.php')) {
312
  ob_start();
313
  include(_SQ_THEME_DIR_ . 'SQ_notices.php');
@@ -321,8 +315,7 @@ class SQ_Tools extends SQ_FrontController
321
  /**
322
  * Load the multilanguage support from .mo
323
  */
324
- private function loadMultilanguage()
325
- {
326
  if (!defined('WP_PLUGIN_DIR')) {
327
  load_plugin_textdomain(_SQ_PLUGIN_NAME_, _SQ_PLUGIN_NAME_ . '/languages/');
328
  } else {
@@ -333,8 +326,7 @@ class SQ_Tools extends SQ_FrontController
333
  /**
334
  * Connect remote with CURL if exists
335
  */
336
- public static function sq_remote_get($url, $param = array(), $options = array())
337
- {
338
  $parameters = '';
339
  $cookies = array();
340
  $cookie_string = '';
@@ -382,10 +374,11 @@ class SQ_Tools extends SQ_FrontController
382
  }
383
  $options['sslverify'] = false;
384
 
385
- if (!$response = self::sq_wpcall($url, $options, 'get')) {
386
- if (function_exists('curl_init') && !ini_get('safe_mode') && !ini_get('open_basedir')) {
387
- $response = self::sq_curl($url, $options, 'get');
388
- } else {
 
389
  return false;
390
  }
391
  }
@@ -396,8 +389,7 @@ class SQ_Tools extends SQ_FrontController
396
  /**
397
  * Connect remote with CURL if exists
398
  */
399
- public static function sq_remote_post($url, $param = array(), $options = array())
400
- {
401
  $parameters = '';
402
  $cookies = array();
403
  $cookie_string = '';
@@ -443,14 +435,15 @@ class SQ_Tools extends SQ_FrontController
443
  }
444
  $options['sslverify'] = false;
445
 
446
- if (!$response = self::sq_wpcall($url, $options, 'post')) {
447
- if (function_exists('curl_init') && !ini_get('safe_mode') && !ini_get('open_basedir')) {
448
- $response = self::sq_curl($url, $options, 'post');
449
- } else {
450
  return false;
451
  }
452
  }
453
 
 
454
  return $response;
455
  }
456
 
@@ -460,8 +453,7 @@ class SQ_Tools extends SQ_FrontController
460
  * @param array $param
461
  * @return string
462
  */
463
- private static function sq_curl($url, $options, $method = 'get')
464
- {
465
 
466
  $ch = curl_init();
467
  curl_setopt($ch, CURLOPT_URL, $url);
@@ -519,8 +511,7 @@ class SQ_Tools extends SQ_FrontController
519
  * @param array $param
520
  * @return string
521
  */
522
- private static function sq_wpcall($url, $options, $method = 'get')
523
- {
524
  if ($method == 'post') {
525
  $response = wp_remote_post($url, $options);
526
  } else {
@@ -539,8 +530,7 @@ class SQ_Tools extends SQ_FrontController
539
  /**
540
  * Connect remote with CURL if exists
541
  */
542
- public static function sq_remote_head($url)
543
- {
544
  $response = array();
545
 
546
  if (function_exists('curl_exec')) {
@@ -566,8 +556,7 @@ class SQ_Tools extends SQ_FrontController
566
  * @param string $response
567
  * @return string
568
  */
569
- private static function cleanResponce($response)
570
- {
571
 
572
  if (function_exists('substr_count'))
573
  if (substr_count($response, '(') > 1)
@@ -582,8 +571,7 @@ class SQ_Tools extends SQ_FrontController
582
  /**
583
  * Check for SEO blog bad settings
584
  */
585
- public static function checkErrorSettings($count_only = false)
586
- {
587
  if (current_user_can('manage_options')) {
588
 
589
  $fixit = "<a href=\"javascript:void(0);\" onclick=\"%s jQuery(this).closest('div').fadeOut('slow'); if(parseInt(jQuery('.sq_count').html())>0) { var notif = (parseInt(jQuery('.sq_count').html()) - 1); if (notif > 0) {jQuery('.sq_count').html(notif); }else{ jQuery('.sq_count').html(notif); jQuery('.sq_count').hide(); } } jQuery.post(ajaxurl, { action: '%s', nonce: '" . wp_create_nonce(_SQ_NONCE_ID_) . "'});\" >" . __("Fix it for me!", _SQ_PLUGIN_NAME_) . "</a>";
@@ -660,8 +648,7 @@ class SQ_Tools extends SQ_FrontController
660
  * Check if the automatically seo si active
661
  * @return bool
662
  */
663
- private static function getAutoSeoSquirrly()
664
- {
665
  if (isset(self::$options['sq_use']))
666
  return ((int)self::$options['sq_use'] == 0);
667
 
@@ -672,8 +659,7 @@ class SQ_Tools extends SQ_FrontController
672
  * Check for META duplicates
673
  * @return boolean
674
  */
675
- private static function getDuplicateOG()
676
- {
677
  if (!function_exists('preg_match_all')) {
678
  return false;
679
  }
@@ -695,8 +681,7 @@ class SQ_Tools extends SQ_FrontController
695
  * Check for META duplicates
696
  * @return boolean
697
  */
698
- private static function getDuplicateTC()
699
- {
700
  if (!function_exists('preg_match_all')) {
701
  return false;
702
  }
@@ -718,8 +703,7 @@ class SQ_Tools extends SQ_FrontController
718
  * Check for META duplicates
719
  * @return boolean
720
  */
721
- private static function getDuplicateDescription()
722
- {
723
  if (!function_exists('preg_match_all')) {
724
  return false;
725
  }
@@ -745,8 +729,7 @@ class SQ_Tools extends SQ_FrontController
745
  * Check for META duplicates
746
  * @return boolean
747
  */
748
- private static function getDuplicateTitle()
749
- {
750
  if (!function_exists('preg_match_all')) {
751
  return false;
752
  }
@@ -755,6 +738,7 @@ class SQ_Tools extends SQ_FrontController
755
  if (self::$options['sq_use'] == 1 && self::$options['sq_auto_title'] == 1) {
756
  if (self::$source_code <> '') {
757
  preg_match_all("/<title[^>]*>(.*)?<\/title>/i", self::$source_code, $out);
 
758
  if (!empty($out) && isset($out[0]) && is_array($out[0])) {
759
  $total += sizeof($out[0]);
760
  }
@@ -772,8 +756,7 @@ class SQ_Tools extends SQ_FrontController
772
  * Check if the blog is in private mode
773
  * @return bool
774
  */
775
- public static function getPrivateBlog()
776
- {
777
  return ((int)get_option('blog_public') == 0);
778
  }
779
 
@@ -781,8 +764,7 @@ class SQ_Tools extends SQ_FrontController
781
  * Check if the blog has a bad link structure
782
  * @return bool
783
  */
784
- private static function getBadLinkStructure()
785
- {
786
  global $wp_rewrite;
787
  if (function_exists('apache_get_modules')) {
788
  //Check if mod_rewrite is installed in apache
@@ -806,8 +788,7 @@ class SQ_Tools extends SQ_FrontController
806
  * @param string $in
807
  * @return string $in localized
808
  */
809
- public static function i18n($in)
810
- {
811
  if (function_exists('langswitch_filter_langs_with_message')) {
812
  $in = langswitch_filter_langs_with_message($in);
813
  }
@@ -828,15 +809,13 @@ class SQ_Tools extends SQ_FrontController
828
  * @param int $decimals Precision of the number of decimal places.
829
  * @return string Converted number in string format.
830
  */
831
- public static function i18n_number_format($number, $decimals = 0)
832
- {
833
  global $wp_locale;
834
  $formatted = number_format($number, absint($decimals), $wp_locale->number_format['decimal_point'], $wp_locale->number_format['thousands_sep']);
835
  return apply_filters('number_format_i18n', $formatted);
836
  }
837
 
838
- public static function getBrowserInfo()
839
- {
840
  $ub = '';
841
  $u_agent = $_SERVER['HTTP_USER_AGENT'];
842
  $bname = 'Unknown';
@@ -901,20 +880,36 @@ class SQ_Tools extends SQ_FrontController
901
  * @param string $url
902
  * @return array
903
  */
904
- public static function getSnippet($url)
905
- {
906
  if ($url == '' || !function_exists('preg_match')) {
907
  return;
908
  }
909
 
 
910
  $snippet = array();
911
  $frontend = SQ_ObjController::getModel('SQ_Frontend');
912
 
913
- $postid = url_to_postid($url);
 
 
 
914
  if ($postid > 0) {
 
915
  $frontend->setPost(get_post($postid));
916
  $snippet['title'] = $frontend->getTitle();
917
  $snippet['description'] = $frontend->getDescription();
 
 
 
 
 
 
 
 
 
 
 
 
918
  $snippet['url'] = $url;
919
  self::dump($snippet);
920
  } else {
@@ -954,8 +949,7 @@ class SQ_Tools extends SQ_FrontController
954
  /**
955
  * Check if debug is called
956
  */
957
- private function checkDebug()
958
- {
959
  //if debug is called
960
  if (self::getIsset('sq_debug')) {
961
  if (self::getValue('sq_debug') == self::$options['sq_api']) {
@@ -975,8 +969,7 @@ class SQ_Tools extends SQ_FrontController
975
  /**
976
  * Store the debug for a later view
977
  */
978
- public static function dump()
979
- {
980
  if (self::getValue('sq_debug') !== 'on') {
981
  return;
982
  }
@@ -1022,8 +1015,7 @@ class SQ_Tools extends SQ_FrontController
1022
  /**
1023
  * Show the debug dump
1024
  */
1025
- public static function showDebug()
1026
- {
1027
  global $wp_query;
1028
  echo "Debug result: <br />" . '<div id="wpcontent">' . @implode('<br />', self::$debug) . '</div>';
1029
 
@@ -1038,14 +1030,12 @@ class SQ_Tools extends SQ_FrontController
1038
  echo "<pre>" . print_r($wp_query, true) . "</pre>";
1039
  }
1040
 
1041
- public function sq_activate()
1042
- {
1043
  set_transient('sq_activate', true);
1044
  set_transient('sq_rewrite', true);
1045
  }
1046
 
1047
- public function sq_deactivate()
1048
- {
1049
  //clear the cron job
1050
  wp_clear_scheduled_hook('sq_processCron');
1051
 
@@ -1058,8 +1048,7 @@ class SQ_Tools extends SQ_FrontController
1058
  $wp_rewrite->flush_rules();
1059
  }
1060
 
1061
- public static function emptyCache($post_id = null)
1062
- {
1063
  if (function_exists('w3tc_pgcache_flush')) {
1064
  w3tc_pgcache_flush();
1065
  }
@@ -1076,8 +1065,7 @@ class SQ_Tools extends SQ_FrontController
1076
  }
1077
  }
1078
 
1079
- public static function checkUpgrade()
1080
- {
1081
  if (self::$options['sq_ver'] == 0 || self::$options['sq_ver'] < SQ_VERSION_ID) {
1082
  //Delete the old versions table
1083
  global $wpdb;
5
  *
6
  * @author Squirrly
7
  */
8
+ class SQ_Tools extends SQ_FrontController {
 
9
 
10
  /** @var array Saved options in database */
11
  public static $options = array();
17
  private static $debug;
18
  private static $source_code;
19
 
20
+ public function __construct() {
 
21
  parent::__construct();
22
 
23
  self::$options = $this->getOptions();
25
  $this->checkDebug(); //dev mode
26
  }
27
 
28
+ public static function getUserID() {
 
29
  global $current_user;
30
  return $current_user->ID;
31
  }
35
  *
36
  * @return void
37
  */
38
+ function hookInit() {
 
39
  //TinyMCE editor required
40
  //set_user_setting('editor', 'tinymce');
41
 
52
  * @param type $file
53
  * @return array
54
  */
55
+ public function hookActionlink($links, $file) {
 
56
  if ($file == _SQ_PLUGIN_NAME_ . '/squirrly.php') {
57
  $link = '<a href="' . admin_url('admin.php?page=sq_dashboard') . '">' . __('Getting started', _SQ_PLUGIN_NAME_) . '</a>';
58
  array_unshift($links, $link);
66
  *
67
  * @return void
68
  */
69
+ public static function getOptions() {
 
70
  $default = array(
71
  'sq_ver' => 0,
72
  'sq_api' => '',
81
  'sq_auto_sitemap' => 0,
82
  'sq_auto_feed' => 0,
83
  'sq_auto_jsonld' => 0,
84
+ 'sq_auto_amp' => 0,
85
  'sq_jsonld_type' => 'Organization',
86
  'sq_jsonld' => array(
87
  'Organization' => array(
138
  'sq_facebook_account' => '',
139
  'sq_google_plus' => '',
140
  'sq_linkedin_account' => '',
141
+ 'sq_pinterest_account' => '',
142
+ 'sq_instagram_account' => '',
143
  // --
144
  'sq_auto_seo' => 1,
145
  'sq_auto_title' => 1,
147
  'sq_fp_title' => '',
148
  'sq_fp_description' => '',
149
  'sq_fp_keywords' => '',
150
+ 'sq_fp_ogimage' => '',
151
  // --
152
  'sq_google_wt' => '',
153
  'sq_google_analytics' => '',
154
+ 'sq_facebook_analytics' => '',
155
  'sq_facebook_insights' => '',
156
  'sq_bing_wt' => '',
157
  'sq_pinterest' => '',
166
  'sq_google_country' => 'com',
167
  'sq_google_language' => 'en',
168
  'sq_google_country_strict' => 0,
169
+ 'sq_google_ranksperhour' => 0,
170
  // --
171
  'sq_affiliate_link' => '',
172
  'sq_sla' => 1,
173
  'sq_keywordtag' => 1,
174
  'sq_local_images' => 1,
175
+ 'sq_force_savepost' => 0,
176
  //--
177
  'sq_dashboard' => 0,
178
  'sq_analytics' => 0,
187
  return $default;
188
  }
189
 
190
+ public static function getBriefOptions() {
 
191
  if ($pageId = get_option('page_on_front')) {
192
  $title = SQ_ObjController::getModel('SQ_Frontend')->getAdvancedMeta($pageId, 'title');
193
  $description = SQ_ObjController::getModel('SQ_Frontend')->getAdvancedMeta($pageId, 'description');
232
  *
233
  * @return void
234
  */
235
+ public static function saveOptions($key = null, $value = '') {
 
236
  if (isset($key)) {
237
  self::$options[$key] = $value;
238
  }
244
  * Set the header type
245
  * @param type $type
246
  */
247
+ public static function setHeader($type) {
 
248
  if (SQ_Tools::getValue('sq_debug') == 'on')
249
  return;
250
 
272
  * @param mixed $defaultValue (optional)
273
  * @return mixed Value
274
  */
275
+ public static function getValue($key, $defaultValue = false, $withcode = false) {
 
276
  if (!isset($key) OR empty($key) OR !is_string($key))
277
  return false;
278
  $ret = (isset($_POST[$key]) ? (is_string($_POST[$key]) ? urldecode($_POST[$key]) : $_POST[$key]) : (isset($_GET[$key]) ? (is_string($_GET[$key]) ? urldecode($_GET[$key]) : $_GET[$key]) : $defaultValue));
290
  * @param string $key
291
  * @return boolean
292
  */
293
+ public static function getIsset($key) {
 
294
  if (!isset($key) OR empty($key) OR !is_string($key))
295
  return false;
296
  return isset($_POST[$key]) ? true : (isset($_GET[$key]) ? true : false);
301
  *
302
  * @return void
303
  */
304
+ public static function showNotices($message, $type = 'sq_notices') {
 
305
  if (file_exists(_SQ_THEME_DIR_ . 'SQ_notices.php')) {
306
  ob_start();
307
  include(_SQ_THEME_DIR_ . 'SQ_notices.php');
315
  /**
316
  * Load the multilanguage support from .mo
317
  */
318
+ private function loadMultilanguage() {
 
319
  if (!defined('WP_PLUGIN_DIR')) {
320
  load_plugin_textdomain(_SQ_PLUGIN_NAME_, _SQ_PLUGIN_NAME_ . '/languages/');
321
  } else {
326
  /**
327
  * Connect remote with CURL if exists
328
  */
329
+ public static function sq_remote_get($url, $param = array(), $options = array()) {
 
330
  $parameters = '';
331
  $cookies = array();
332
  $cookie_string = '';
374
  }
375
  $options['sslverify'] = false;
376
 
377
+
378
+ if (function_exists('curl_init') && !ini_get('open_basedir')) {
379
+ $response = self::sq_curl($url, $options, 'get');
380
+ } else {
381
+ if (!$response = self::sq_wpcall($url, $options, 'get')) {
382
  return false;
383
  }
384
  }
389
  /**
390
  * Connect remote with CURL if exists
391
  */
392
+ public static function sq_remote_post($url, $param = array(), $options = array()) {
 
393
  $parameters = '';
394
  $cookies = array();
395
  $cookie_string = '';
435
  }
436
  $options['sslverify'] = false;
437
 
438
+ if (function_exists('curl_init') && !ini_get('open_basedir')) {
439
+ $response = self::sq_curl($url, $options, 'post');
440
+ } else {
441
+ if (!$response = self::sq_wpcall($url, $options, 'post')) {
442
  return false;
443
  }
444
  }
445
 
446
+
447
  return $response;
448
  }
449
 
453
  * @param array $param
454
  * @return string
455
  */
456
+ private static function sq_curl($url, $options, $method = 'get') {
 
457
 
458
  $ch = curl_init();
459
  curl_setopt($ch, CURLOPT_URL, $url);
511
  * @param array $param
512
  * @return string
513
  */
514
+ private static function sq_wpcall($url, $options, $method = 'get') {
 
515
  if ($method == 'post') {
516
  $response = wp_remote_post($url, $options);
517
  } else {
530
  /**
531
  * Connect remote with CURL if exists
532
  */
533
+ public static function sq_remote_head($url) {
 
534
  $response = array();
535
 
536
  if (function_exists('curl_exec')) {
556
  * @param string $response
557
  * @return string
558
  */
559
+ private static function cleanResponce($response) {
 
560
 
561
  if (function_exists('substr_count'))
562
  if (substr_count($response, '(') > 1)
571
  /**
572
  * Check for SEO blog bad settings
573
  */
574
+ public static function checkErrorSettings($count_only = false) {
 
575
  if (current_user_can('manage_options')) {
576
 
577
  $fixit = "<a href=\"javascript:void(0);\" onclick=\"%s jQuery(this).closest('div').fadeOut('slow'); if(parseInt(jQuery('.sq_count').html())>0) { var notif = (parseInt(jQuery('.sq_count').html()) - 1); if (notif > 0) {jQuery('.sq_count').html(notif); }else{ jQuery('.sq_count').html(notif); jQuery('.sq_count').hide(); } } jQuery.post(ajaxurl, { action: '%s', nonce: '" . wp_create_nonce(_SQ_NONCE_ID_) . "'});\" >" . __("Fix it for me!", _SQ_PLUGIN_NAME_) . "</a>";
648
  * Check if the automatically seo si active
649
  * @return bool
650
  */
651
+ private static function getAutoSeoSquirrly() {
 
652
  if (isset(self::$options['sq_use']))
653
  return ((int)self::$options['sq_use'] == 0);
654
 
659
  * Check for META duplicates
660
  * @return boolean
661
  */
662
+ private static function getDuplicateOG() {
 
663
  if (!function_exists('preg_match_all')) {
664
  return false;
665
  }
681
  * Check for META duplicates
682
  * @return boolean
683
  */
684
+ private static function getDuplicateTC() {
 
685
  if (!function_exists('preg_match_all')) {
686
  return false;
687
  }
703
  * Check for META duplicates
704
  * @return boolean
705
  */
706
+ private static function getDuplicateDescription() {
 
707
  if (!function_exists('preg_match_all')) {
708
  return false;
709
  }
729
  * Check for META duplicates
730
  * @return boolean
731
  */
732
+ private static function getDuplicateTitle() {
 
733
  if (!function_exists('preg_match_all')) {
734
  return false;
735
  }
738
  if (self::$options['sq_use'] == 1 && self::$options['sq_auto_title'] == 1) {
739
  if (self::$source_code <> '') {
740
  preg_match_all("/<title[^>]*>(.*)?<\/title>/i", self::$source_code, $out);
741
+
742
  if (!empty($out) && isset($out[0]) && is_array($out[0])) {
743
  $total += sizeof($out[0]);
744
  }
756
  * Check if the blog is in private mode
757
  * @return bool
758
  */
759
+ public static function getPrivateBlog() {
 
760
  return ((int)get_option('blog_public') == 0);
761
  }
762
 
764
  * Check if the blog has a bad link structure
765
  * @return bool
766
  */
767
+ private static function getBadLinkStructure() {
 
768
  global $wp_rewrite;
769
  if (function_exists('apache_get_modules')) {
770
  //Check if mod_rewrite is installed in apache
788
  * @param string $in
789
  * @return string $in localized
790
  */
791
+ public static function i18n($in) {
 
792
  if (function_exists('langswitch_filter_langs_with_message')) {
793
  $in = langswitch_filter_langs_with_message($in);
794
  }
809
  * @param int $decimals Precision of the number of decimal places.
810
  * @return string Converted number in string format.
811
  */
812
+ public static function i18n_number_format($number, $decimals = 0) {
 
813
  global $wp_locale;
814
  $formatted = number_format($number, absint($decimals), $wp_locale->number_format['decimal_point'], $wp_locale->number_format['thousands_sep']);
815
  return apply_filters('number_format_i18n', $formatted);
816
  }
817
 
818
+ public static function getBrowserInfo() {
 
819
  $ub = '';
820
  $u_agent = $_SERVER['HTTP_USER_AGENT'];
821
  $bname = 'Unknown';
880
  * @param string $url
881
  * @return array
882
  */
883
+ public static function getSnippet($url) {
 
884
  if ($url == '' || !function_exists('preg_match')) {
885
  return;
886
  }
887
 
888
+ $postid = 0;
889
  $snippet = array();
890
  $frontend = SQ_ObjController::getModel('SQ_Frontend');
891
 
892
+ if ($postid == 0) {
893
+ $postid = url_to_postid($url);
894
+ }
895
+
896
  if ($postid > 0) {
897
+ self::dump("it's a post", $url, $postid);
898
  $frontend->setPost(get_post($postid));
899
  $snippet['title'] = $frontend->getTitle();
900
  $snippet['description'] = $frontend->getDescription();
901
+ $snippet['url'] = $url;
902
+ self::dump($snippet);
903
+ } elseif ($url == get_bloginfo('url')) {
904
+ self::dump("it's main page", $url, get_bloginfo('url'));
905
+
906
+ if (self::$options ['sq_auto_title'] == 1) {
907
+ $snippet['title'] = self::$options['sq_fp_title'];
908
+ }
909
+ if (self::$options['sq_auto_description'] == 1) {
910
+ $snippet['description'] = self::$options['sq_fp_description'];
911
+ }
912
+
913
  $snippet['url'] = $url;
914
  self::dump($snippet);
915
  } else {
949
  /**
950
  * Check if debug is called
951
  */
952
+ private function checkDebug() {
 
953
  //if debug is called
954
  if (self::getIsset('sq_debug')) {
955
  if (self::getValue('sq_debug') == self::$options['sq_api']) {
969
  /**
970
  * Store the debug for a later view
971
  */
972
+ public static function dump() {
 
973
  if (self::getValue('sq_debug') !== 'on') {
974
  return;
975
  }
1015
  /**
1016
  * Show the debug dump
1017
  */
1018
+ public static function showDebug() {
 
1019
  global $wp_query;
1020
  echo "Debug result: <br />" . '<div id="wpcontent">' . @implode('<br />', self::$debug) . '</div>';
1021
 
1030
  echo "<pre>" . print_r($wp_query, true) . "</pre>";
1031
  }
1032
 
1033
+ public function sq_activate() {
 
1034
  set_transient('sq_activate', true);
1035
  set_transient('sq_rewrite', true);
1036
  }
1037
 
1038
+ public function sq_deactivate() {
 
1039
  //clear the cron job
1040
  wp_clear_scheduled_hook('sq_processCron');
1041
 
1048
  $wp_rewrite->flush_rules();
1049
  }
1050
 
1051
+ public static function emptyCache($post_id = null) {
 
1052
  if (function_exists('w3tc_pgcache_flush')) {
1053
  w3tc_pgcache_flush();
1054
  }
1065
  }
1066
  }
1067
 
1068
+ public static function checkUpgrade() {
 
1069
  if (self::$options['sq_ver'] == 0 || self::$options['sq_ver'] < SQ_VERSION_ID) {
1070
  //Delete the old versions table
1071
  global $wpdb;
config/paths.php CHANGED
@@ -6,13 +6,13 @@ define('_SQ_NAME_', 'squirrly');
6
  define('_SQ_PLUGIN_NAME_', 'squirrly-seo'); //THIS LINE WILL BE CHANGED WITH THE USER SETTINGS
7
  define('_THEME_NAME_', 'default'); //THIS LINE WILL BE CHANGED WITH THE USER SETTINGS
8
 
9
- define('_SQ_DASH_URL_', 'https://my.squirrly.co/');
10
  $scheme = (((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") || (defined('FORCE_SSL_ADMIN') && FORCE_SSL_ADMIN)) ? 'https:' : 'http:'); //CHECK IF SCURE
11
 
12
  defined('SQ_URI') || define('SQ_URI', (WP_VERSION_ID >= 3000) ? 'wp350' : 'wp2');
13
  defined('_SQ_API_URL_') || define('_SQ_API_URL_', $scheme . '//api.squirrly.co/');
14
 
15
- defined('_SQ_STATIC_API_URL_') || define('_SQ_STATIC_API_URL_', $scheme . '//api.squirrly.co/static/');
16
  defined('_SQ_SUPPORT_URL_') || define('_SQ_SUPPORT_URL_', 'https://plus.google.com/u/0/communities/104196720668136264985');
17
 
18
  /* Directories */
6
  define('_SQ_PLUGIN_NAME_', 'squirrly-seo'); //THIS LINE WILL BE CHANGED WITH THE USER SETTINGS
7
  define('_THEME_NAME_', 'default'); //THIS LINE WILL BE CHANGED WITH THE USER SETTINGS
8
 
9
+ defined('_SQ_DASH_URL_') || define('_SQ_DASH_URL_', 'https://my.squirrly.co/');
10
  $scheme = (((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") || (defined('FORCE_SSL_ADMIN') && FORCE_SSL_ADMIN)) ? 'https:' : 'http:'); //CHECK IF SCURE
11
 
12
  defined('SQ_URI') || define('SQ_URI', (WP_VERSION_ID >= 3000) ? 'wp350' : 'wp2');
13
  defined('_SQ_API_URL_') || define('_SQ_API_URL_', $scheme . '//api.squirrly.co/');
14
 
15
+ defined('_SQ_STATIC_API_URL_') || define('_SQ_STATIC_API_URL_', $scheme . '//storage.googleapis.com/squirrly/');
16
  defined('_SQ_SUPPORT_URL_') || define('_SQ_SUPPORT_URL_', 'https://plus.google.com/u/0/communities/104196720668136264985');
17
 
18
  /* Directories */
controllers/SQ_Frontend.php CHANGED
@@ -11,7 +11,6 @@ class SQ_Frontend extends SQ_FrontController {
11
  }
12
 
13
  parent::__construct();
14
- SQ_ObjController::getController('SQ_Tools', false);
15
 
16
  if (SQ_Tools::$options['sq_use'] == 1) {
17
  /* Check if sitemap is on */
@@ -42,6 +41,7 @@ class SQ_Frontend extends SQ_FrontController {
42
  if (SQ_Tools::$options['sq_url_fix'] == 1) {
43
  add_action('the_content', array($this, 'fixFeedLinks'), 11);
44
  }
 
45
  }
46
  }
47
 
@@ -175,7 +175,7 @@ class SQ_Frontend extends SQ_FrontController {
175
  }
176
  break;
177
  case 'touchicon':
178
- $size = get_query_var('sq_size');
179
  if (SQ_Tools::$options['favicon'] <> '') {
180
  //show the favico file
181
  SQ_Tools::setHeader('png');
@@ -196,4 +196,7 @@ class SQ_Frontend extends SQ_FrontController {
196
  }
197
  }
198
 
 
 
 
199
  }
11
  }
12
 
13
  parent::__construct();
 
14
 
15
  if (SQ_Tools::$options['sq_use'] == 1) {
16
  /* Check if sitemap is on */
41
  if (SQ_Tools::$options['sq_url_fix'] == 1) {
42
  add_action('the_content', array($this, 'fixFeedLinks'), 11);
43
  }
44
+
45
  }
46
  }
47
 
175
  }
176
  break;
177
  case 'touchicon':
178
+ $size = (int) get_query_var('sq_size');
179
  if (SQ_Tools::$options['favicon'] <> '') {
180
  //show the favico file
181
  SQ_Tools::setHeader('png');
196
  }
197
  }
198
 
199
+ public function hookFrontfooter(){
200
+ echo $this->model->getGoogleAnalyticsAMPBody();
201
+ }
202
  }
controllers/SQ_Menu.php CHANGED
@@ -111,13 +111,17 @@ class SQ_Menu extends SQ_FrontController {
111
  array(SQ_ObjController::getBlock('SQ_BlockDashboard'), 'init')
112
  ));
113
  if (SQ_Tools::$options['sq_api'] <> '') {
114
- $this->model->addSubmenu(array('sq_dashboard',
115
- ucfirst(_SQ_NAME_) . __(' post list', _SQ_PLUGIN_NAME_),
116
- __('Performance <br />Analytics', _SQ_PLUGIN_NAME_) . SQ_Tools::showNotices($analytics_alert, 'errors_count'),
117
- 'edit_posts',
118
- 'sq_posts',
119
- array(SQ_ObjController::getBlock('SQ_BlockPostsAnalytics'), 'init')
120
- ));
 
 
 
 
121
 
122
 
123
 
111
  array(SQ_ObjController::getBlock('SQ_BlockDashboard'), 'init')
112
  ));
113
  if (SQ_Tools::$options['sq_api'] <> '') {
114
+
115
+ //IF SERP PLUGIN IS NOT INSTALLED
116
+ if (!class_exists('SRC_Classes_ObjController')){
117
+ $this->model->addSubmenu(array('sq_dashboard',
118
+ ucfirst(_SQ_NAME_) . __(' post list', _SQ_PLUGIN_NAME_),
119
+ __('Performance <br />Analytics', _SQ_PLUGIN_NAME_) . SQ_Tools::showNotices($analytics_alert, 'errors_count'),
120
+ 'edit_posts',
121
+ 'sq_posts',
122
+ array(SQ_ObjController::getBlock('SQ_BlockPostsAnalytics'), 'init')
123
+ ));
124
+ }
125
 
126
 
127
 
controllers/SQ_Post.php CHANGED
@@ -1,7 +1,6 @@
1
  <?php
2
 
3
- class SQ_Post extends SQ_FrontController
4
- {
5
 
6
  public $saved;
7
 
@@ -10,8 +9,7 @@ class SQ_Post extends SQ_FrontController
10
  *
11
  * @return void
12
  */
13
- public function hookInit()
14
- {
15
  $this->saved = array();
16
 
17
  add_filter('tiny_mce_before_init', array($this->model, 'setCallback'));
@@ -34,8 +32,7 @@ class SQ_Post extends SQ_FrontController
34
  *
35
  * @global integer $post_ID
36
  */
37
- public function hookHead()
38
- {
39
  global $post_ID;
40
  parent::hookHead();
41
 
@@ -59,8 +56,7 @@ class SQ_Post extends SQ_FrontController
59
  /**
60
  * Hook the Shopp plugin save product
61
  */
62
- public function hookShopp($Product)
63
- {
64
  $this->checkSeo($Product->id);
65
  }
66
 
@@ -68,8 +64,7 @@ class SQ_Post extends SQ_FrontController
68
  * Hook the post save/update
69
  * @param type $post_id
70
  */
71
- public function hookSavePost($post_id)
72
- {
73
 
74
 
75
  if (!isset($this->saved[$post_id])) {
@@ -107,8 +102,7 @@ class SQ_Post extends SQ_FrontController
107
  * @param integer $post_id
108
  * @return false|void
109
  */
110
- public function checkImage($post_id)
111
- {
112
 
113
  //if the option to save the images locally is set on
114
  if (SQ_Tools::$options['sq_local_images'] == 1) {
@@ -193,8 +187,7 @@ class SQ_Post extends SQ_FrontController
193
  * @param integer $post_id
194
  * @param void
195
  */
196
- public function checkSeo($post_id, $status = '')
197
- {
198
  $args = array();
199
 
200
  $seo = SQ_Tools::getValue('sq_seo');
@@ -211,14 +204,32 @@ class SQ_Post extends SQ_FrontController
211
  $args['author'] = (int)SQ_Tools::getUserID();
212
  $args['post_id'] = $post_id;
213
 
214
- $process = array();
215
- if (get_transient('sq_seopost') !== false) {
216
- $process = json_decode(get_transient('sq_seopost'), true);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
217
  }
218
- $process[] = $args;
219
- //save for later send to api
220
- set_transient('sq_seopost', json_encode($process));
221
- wp_schedule_single_event(time(), 'sq_processApi');
222
 
223
  //Save the keyword for this post
224
  if ($json = $this->model->getKeyword($post_id)) {
@@ -231,9 +242,8 @@ class SQ_Post extends SQ_FrontController
231
  }
232
  }
233
 
234
- public function getPaged($link)
235
- {
236
- $page = get_query_var('paged');
237
  if ($page && $page > 1) {
238
  $link = trailingslashit($link) . "page/" . "$page" . '/';
239
  }
@@ -245,8 +255,7 @@ class SQ_Post extends SQ_FrontController
245
  *
246
  * @return void
247
  */
248
- public function action()
249
- {
250
  parent::action();
251
 
252
  switch (SQ_Tools::getValue('action')) {
@@ -298,8 +307,7 @@ class SQ_Post extends SQ_FrontController
298
  * @return array | false
299
  *
300
  */
301
- private function _checkAdvMeta($post_id)
302
- {
303
 
304
  $meta = array();
305
  if (SQ_Tools::getIsset('sq_canonical') || SQ_Tools::getIsset('sq_fp_title') || SQ_Tools::getIsset('sq_fp_description') || SQ_Tools::getIsset('sq_fp_keywords')) {
@@ -323,7 +331,7 @@ class SQ_Post extends SQ_FrontController
323
  $meta[] = array('key' => '_sq_canonical',
324
  'value' => SQ_Tools::getValue('sq_canonical'));
325
 
326
-
327
  $this->model->saveAdvMeta($post_id, $meta);
328
 
329
  return $meta;
@@ -331,8 +339,7 @@ class SQ_Post extends SQ_FrontController
331
  return false;
332
  }
333
 
334
- public function hookFooter()
335
- {
336
  if (!defined('DISABLE_WP_CRON') || DISABLE_WP_CRON == true) {
337
  global $pagenow;
338
  if (in_array($pagenow, array('post.php', 'post-new.php'))) {
@@ -341,15 +348,16 @@ class SQ_Post extends SQ_FrontController
341
  }
342
  }
343
 
344
- public function processCron()
345
- {
346
  SQ_ObjController::getController('SQ_Tools', false);
347
  SQ_ObjController::getController('SQ_Action', false);
348
 
349
  if (get_transient('sq_seopost') !== false) {
350
  $process = json_decode(get_transient('sq_seopost'), true);
351
  foreach ($process as $key => $call) {
 
352
  $response = json_decode(SQ_Action::apiCall('sq/seo/post', $call, 60));
 
353
  if (isset($response->saved) && $response->saved == true) {
354
  unset($process[$key]);
355
  }
1
  <?php
2
 
3
+ class SQ_Post extends SQ_FrontController {
 
4
 
5
  public $saved;
6
 
9
  *
10
  * @return void
11
  */
12
+ public function hookInit() {
 
13
  $this->saved = array();
14
 
15
  add_filter('tiny_mce_before_init', array($this->model, 'setCallback'));
32
  *
33
  * @global integer $post_ID
34
  */
35
+ public function hookHead() {
 
36
  global $post_ID;
37
  parent::hookHead();
38
 
56
  /**
57
  * Hook the Shopp plugin save product
58
  */
59
+ public function hookShopp($Product) {
 
60
  $this->checkSeo($Product->id);
61
  }
62
 
64
  * Hook the post save/update
65
  * @param type $post_id
66
  */
67
+ public function hookSavePost($post_id) {
 
68
 
69
 
70
  if (!isset($this->saved[$post_id])) {
102
  * @param integer $post_id
103
  * @return false|void
104
  */
105
+ public function checkImage($post_id) {
 
106
 
107
  //if the option to save the images locally is set on
108
  if (SQ_Tools::$options['sq_local_images'] == 1) {
187
  * @param integer $post_id
188
  * @param void
189
  */
190
+ public function checkSeo($post_id, $status = '') {
 
191
  $args = array();
192
 
193
  $seo = SQ_Tools::getValue('sq_seo');
204
  $args['author'] = (int)SQ_Tools::getUserID();
205
  $args['post_id'] = $post_id;
206
 
207
+
208
+ if (SQ_Tools::$options['sq_force_savepost'] == 1) {
209
+ SQ_Action::apiCall('sq/seo/post', $args, 10);
210
+ } else {
211
+ $process = array();
212
+ if (get_transient('sq_seopost') !== false) {
213
+ $process = json_decode(get_transient('sq_seopost'), true);
214
+ }
215
+ //Add args at the beginning of the process
216
+ array_unshift($process, $args);
217
+
218
+ //save for later send to api
219
+ set_transient('sq_seopost', json_encode($process));
220
+
221
+ //prevent lost posts if there are not processed
222
+ if (count($process) > 5){
223
+ SQ_Tools::saveOptions('sq_force_savepost', 1);
224
+ SQ_Action::apiCall('sq/seo/post', $args, 10);
225
+ }
226
+
227
+ if (get_transient('sq_seopost') !== false) {
228
+ wp_schedule_single_event(time(), 'sq_processApi');
229
+ } else {
230
+ SQ_Action::apiCall('sq/seo/post', $args, 1);
231
+ }
232
  }
 
 
 
 
233
 
234
  //Save the keyword for this post
235
  if ($json = $this->model->getKeyword($post_id)) {
242
  }
243
  }
244
 
245
+ public function getPaged($link) {
246
+ $page = (int)get_query_var('paged');
 
247
  if ($page && $page > 1) {
248
  $link = trailingslashit($link) . "page/" . "$page" . '/';
249
  }
255
  *
256
  * @return void
257
  */
258
+ public function action() {
 
259
  parent::action();
260
 
261
  switch (SQ_Tools::getValue('action')) {
307
  * @return array | false
308
  *
309
  */
310
+ private function _checkAdvMeta($post_id) {
 
311
 
312
  $meta = array();
313
  if (SQ_Tools::getIsset('sq_canonical') || SQ_Tools::getIsset('sq_fp_title') || SQ_Tools::getIsset('sq_fp_description') || SQ_Tools::getIsset('sq_fp_keywords')) {
331
  $meta[] = array('key' => '_sq_canonical',
332
  'value' => SQ_Tools::getValue('sq_canonical'));
333
 
334
+ SQ_Tools::dump($meta);
335
  $this->model->saveAdvMeta($post_id, $meta);
336
 
337
  return $meta;
339
  return false;
340
  }
341
 
342
+ public function hookFooter() {
 
343
  if (!defined('DISABLE_WP_CRON') || DISABLE_WP_CRON == true) {
344
  global $pagenow;
345
  if (in_array($pagenow, array('post.php', 'post-new.php'))) {
348
  }
349
  }
350
 
351
+ public function processCron() {
 
352
  SQ_ObjController::getController('SQ_Tools', false);
353
  SQ_ObjController::getController('SQ_Action', false);
354
 
355
  if (get_transient('sq_seopost') !== false) {
356
  $process = json_decode(get_transient('sq_seopost'), true);
357
  foreach ($process as $key => $call) {
358
+
359
  $response = json_decode(SQ_Action::apiCall('sq/seo/post', $call, 60));
360
+
361
  if (isset($response->saved) && $response->saved == true) {
362
  unset($process[$key]);
363
  }
controllers/SQ_PostsList.php CHANGED
@@ -1,6 +1,7 @@
1
  <?php
2
 
3
- class SQ_PostsList extends SQ_FrontController {
 
4
 
5
  /** @var array Posts types in */
6
  private $types = array();
@@ -18,15 +19,18 @@ class SQ_PostsList extends SQ_FrontController {
18
  /**
19
  * Called in SQ_Menu > hookMenu
20
  */
21
- public function init() {
 
22
  $this->types = array_map(array($this, '_addPostsType'), SQ_Tools::$options['sq_post_types']);
23
  }
24
 
25
- protected function _addPostsType($type) {
 
26
  return $type . '_posts';
27
  }
28
 
29
- public function setPosts($posts) {
 
30
  if (!empty($posts)) {
31
  $this->posts = $posts;
32
  $this->is_list = true;
@@ -38,10 +42,11 @@ class SQ_PostsList extends SQ_FrontController {
38
  * Create the column and filter for the Posts List
39
  *
40
  */
41
- public function hookInit() {
 
42
  $browser = SQ_Tools::getBrowserInfo();
43
 
44
- if ($browser['name'] == 'IE' && (int) $browser['version'] < 9 && (int) $browser['version'] > 0)
45
  return;
46
 
47
  if (isset(SQ_Tools::$options['sq_api']) && SQ_Tools::$options['sq_api'] <> '') {
@@ -62,12 +67,13 @@ class SQ_PostsList extends SQ_FrontController {
62
  * @param string $where
63
  * @return string
64
  */
65
- public function filterPosts($where) {
 
66
  if (!is_admin())
67
  return;
68
 
69
  if (SQ_Tools::getIsset('sq_post_id')) {
70
- $where .= " AND ID = " . (int) SQ_Tools::getValue('sq_post_id');
71
  }
72
 
73
  return $where;
@@ -76,10 +82,11 @@ class SQ_PostsList extends SQ_FrontController {
76
  /**
77
  * Hook the Wordpress header
78
  */
79
- public function loadHead() {
 
80
  parent::hookHead();
81
  SQ_ObjController::getController('SQ_DisplayController', false)
82
- ->loadMedia(_SQ_THEME_URL_ . '/css/sq_postslist.css');
83
  }
84
 
85
  /**
@@ -88,7 +95,8 @@ class SQ_PostsList extends SQ_FrontController {
88
  * @param array $columns
89
  * @return array
90
  */
91
- public function add_column($columns) {
 
92
  $this->loadHead(); //load the js only for post list
93
  $this->is_list = true;
94
 
@@ -101,7 +109,8 @@ class SQ_PostsList extends SQ_FrontController {
101
  * @param object $column
102
  * @param integer $post_id
103
  */
104
- public function add_row($column, $post_id) {
 
105
  $title = '';
106
  $description = '';
107
  $frontend = null;
@@ -115,7 +124,7 @@ class SQ_PostsList extends SQ_FrontController {
115
  array_push($this->posts, $post_id);
116
  }
117
 
118
- echo '<div class="' . $this->column_id . '_row ' . ((!$cached) ? 'sq_minloading' : '') . '" ref="' . $post_id . '">' . (($cached) ? $_COOKIE[$this->column_id . $post_id] : '') . '</div>';
119
 
120
  if ($frontend = SQ_ObjController::getModel('SQ_Frontend')) {
121
  $title = $frontend->getAdvancedMeta($post_id, 'title');
@@ -137,7 +146,8 @@ class SQ_PostsList extends SQ_FrontController {
137
  * Hook the Footer
138
  *
139
  */
140
- public function hookFooter() {
 
141
  if (!$this->is_list)
142
  return;
143
 
@@ -161,7 +171,8 @@ class SQ_PostsList extends SQ_FrontController {
161
  /**
162
  * Set the javascript variables
163
  */
164
- public function setVars() {
 
165
  echo '<script type="text/javascript">
166
  var __sq_article_rank = "' . __('SEO Analytics, by Squirrly', _SQ_PLUGIN_NAME_) . '";
167
  var __sq_refresh = "' . __('Update', _SQ_PLUGIN_NAME_) . '"
@@ -173,7 +184,8 @@ class SQ_PostsList extends SQ_FrontController {
173
  </script>';
174
  }
175
 
176
- public function getScripts() {
 
177
  return '<script type="text/javascript">
178
  //load the rank from squirrly
179
  if (typeof sq_script === "undefined"){
@@ -224,7 +236,8 @@ class SQ_PostsList extends SQ_FrontController {
224
  * @param integer $pos
225
  * @return array
226
  */
227
- public function insert($src, $in, $pos) {
 
228
  $array = array();
229
  if (is_int($pos))
230
  $array = array_merge(array_slice($src, 0, $pos), $in, array_slice($src, $pos));
@@ -242,7 +255,8 @@ class SQ_PostsList extends SQ_FrontController {
242
  * Hook Get/Post action
243
  * @return string
244
  */
245
- public function action() {
 
246
  parent::action();
247
  switch (SQ_Tools::getValue('action')) {
248
  case 'sq_posts_rank':
@@ -265,7 +279,7 @@ class SQ_PostsList extends SQ_FrontController {
265
  SQ_Tools::setHeader('json');
266
  $args = array();
267
  $rank = null;
268
- $this->model->post_id = (int) SQ_Tools::getValue('post');
269
  $args['post_id'] = $this->model->post_id;
270
 
271
  if ($json = SQ_ObjController::getModel('SQ_Post')->getKeyword($this->model->post_id)) {
@@ -277,35 +291,37 @@ class SQ_PostsList extends SQ_FrontController {
277
 
278
  if (isset($rank) && $rank !== false) {
279
  $ranking = SQ_ObjController::getController('SQ_Ranking', false);
280
- $args['rank'] = (string) $rank;
281
  $args['country'] = $ranking->getCountry();
282
  $args['language'] = $ranking->getLanguage();
283
  }
284
  }
285
 
286
  $response = json_decode(SQ_Action::apiCall('sq/user-analytics/detail', $args, 30));
287
- if (SQ_Tools::getValue('sq_debug') === 'on') {
288
- exit();
289
- }
290
  if (!is_object($response)) {
291
  exit(json_encode(array('error' => $response)));
292
  } else {
293
-
294
  $analytics = SQ_ObjController::getBlock('SQ_BlockAnalytics');
295
  $analytics->flush = false;
296
  $analytics->post_id = $this->model->post_id;
297
  $analytics->audit = $this->model->getAnalytics($response, $this->model->post_id);
298
- $response = $analytics->init();
299
-
300
 
 
 
 
 
 
301
  exit(json_encode($response));
302
  }
303
  break;
304
  case 'sq_recheck':
305
  SQ_Tools::setHeader('json');
306
- if (get_transient('google_blocked') === false) {
307
- $this->model->post_id = (int) SQ_Tools::getValue('post_id');
308
  if ($json = SQ_ObjController::getModel('SQ_Post')->getKeyword($this->model->post_id)) {
 
309
  if (get_transient('sq_rank' . $this->model->post_id) !== false) {
310
  delete_transient('sq_rank' . $this->model->post_id);
311
  }
@@ -316,11 +332,13 @@ class SQ_PostsList extends SQ_FrontController {
316
  exit(json_encode(array('error' => true)));
317
  } else {
318
  if ($json->rank == -2) {
319
- $value = __('Could not receive data from google (Err: blocked IP)');
320
- } elseif ($json->rank == -1) {
321
- $value = __('> 100');
 
 
322
  } elseif ($json->rank == 0) {
323
- $value = __('URL Indexed');
324
  } elseif ($json->rank > 0) {
325
  $value = '<strong style="display:block; font-size: 120%; width: 100px; margin: 0 auto; text-align:right;">' . sprintf(__('%s'), $json->rank) . '</strong>' . ((isset($json->country)) ? ' (' . $json->country . ')' : '');
326
  }
@@ -330,7 +348,21 @@ class SQ_PostsList extends SQ_FrontController {
330
 
331
  exit(json_encode(array('error' => true)));
332
  } else {
333
- $rank = __('Could not receive data from google (Err: blocked IP)');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
334
  exit(json_encode(array('rank' => $rank)));
335
  }
336
  break;
@@ -343,7 +375,8 @@ class SQ_PostsList extends SQ_FrontController {
343
  * @param type $keyword
344
  * @return type
345
  */
346
- private function checkKeyword($keyword, $force = false) {
 
347
  $rank = null;
348
 
349
  if ($keyword == '')
@@ -387,7 +420,7 @@ class SQ_PostsList extends SQ_FrontController {
387
  if ($rank !== false && $rank >= -1) {
388
  $args = array();
389
  $args['post_id'] = $this->model->post_id;
390
- $args['rank'] = (string) $rank;
391
  $args['country'] = $ranking->getCountry();
392
  $args['language'] = $ranking->getLanguage();
393
  SQ_Action::apiCall('sq/user-analytics/saveserp', $args);
1
  <?php
2
 
3
+ class SQ_PostsList extends SQ_FrontController
4
+ {
5
 
6
  /** @var array Posts types in */
7
  private $types = array();
19
  /**
20
  * Called in SQ_Menu > hookMenu
21
  */
22
+ public function init()
23
+ {
24
  $this->types = array_map(array($this, '_addPostsType'), SQ_Tools::$options['sq_post_types']);
25
  }
26
 
27
+ protected function _addPostsType($type)
28
+ {
29
  return $type . '_posts';
30
  }
31
 
32
+ public function setPosts($posts)
33
+ {
34
  if (!empty($posts)) {
35
  $this->posts = $posts;
36
  $this->is_list = true;
42
  * Create the column and filter for the Posts List
43
  *
44
  */
45
+ public function hookInit()
46
+ {
47
  $browser = SQ_Tools::getBrowserInfo();
48
 
49
+ if ($browser['name'] == 'IE' && (int)$browser['version'] < 9 && (int)$browser['version'] > 0)
50
  return;
51
 
52
  if (isset(SQ_Tools::$options['sq_api']) && SQ_Tools::$options['sq_api'] <> '') {
67
  * @param string $where
68
  * @return string
69
  */
70
+ public function filterPosts($where)
71
+ {
72
  if (!is_admin())
73
  return;
74
 
75
  if (SQ_Tools::getIsset('sq_post_id')) {
76
+ $where .= " AND ID = " . (int)SQ_Tools::getValue('sq_post_id');
77
  }
78
 
79
  return $where;
82
  /**
83
  * Hook the Wordpress header
84
  */
85
+ public function loadHead()
86
+ {
87
  parent::hookHead();
88
  SQ_ObjController::getController('SQ_DisplayController', false)
89
+ ->loadMedia(_SQ_THEME_URL_ . '/css/sq_postslist.css');
90
  }
91
 
92
  /**
95
  * @param array $columns
96
  * @return array
97
  */
98
+ public function add_column($columns)
99
+ {
100
  $this->loadHead(); //load the js only for post list
101
  $this->is_list = true;
102
 
109
  * @param object $column
110
  * @param integer $post_id
111
  */
112
+ public function add_row($column, $post_id)
113
+ {
114
  $title = '';
115
  $description = '';
116
  $frontend = null;
124
  array_push($this->posts, $post_id);
125
  }
126
 
127
+ echo '<div class="' . $this->column_id . '_row" ref="' . $post_id . '">' . (($cached) ? $_COOKIE[$this->column_id . $post_id] : 'loading ...') . '</div>';
128
 
129
  if ($frontend = SQ_ObjController::getModel('SQ_Frontend')) {
130
  $title = $frontend->getAdvancedMeta($post_id, 'title');
146
  * Hook the Footer
147
  *
148
  */
149
+ public function hookFooter()
150
+ {
151
  if (!$this->is_list)
152
  return;
153
 
171
  /**
172
  * Set the javascript variables
173
  */
174
+ public function setVars()
175
+ {
176
  echo '<script type="text/javascript">
177
  var __sq_article_rank = "' . __('SEO Analytics, by Squirrly', _SQ_PLUGIN_NAME_) . '";
178
  var __sq_refresh = "' . __('Update', _SQ_PLUGIN_NAME_) . '"
184
  </script>';
185
  }
186
 
187
+ public function getScripts()
188
+ {
189
  return '<script type="text/javascript">
190
  //load the rank from squirrly
191
  if (typeof sq_script === "undefined"){
236
  * @param integer $pos
237
  * @return array
238
  */
239
+ public function insert($src, $in, $pos)
240
+ {
241
  $array = array();
242
  if (is_int($pos))
243
  $array = array_merge(array_slice($src, 0, $pos), $in, array_slice($src, $pos));
255
  * Hook Get/Post action
256
  * @return string
257
  */
258
+ public function action()
259
+ {
260
  parent::action();
261
  switch (SQ_Tools::getValue('action')) {
262
  case 'sq_posts_rank':
279
  SQ_Tools::setHeader('json');
280
  $args = array();
281
  $rank = null;
282
+ $this->model->post_id = (int)SQ_Tools::getValue('post');
283
  $args['post_id'] = $this->model->post_id;
284
 
285
  if ($json = SQ_ObjController::getModel('SQ_Post')->getKeyword($this->model->post_id)) {
291
 
292
  if (isset($rank) && $rank !== false) {
293
  $ranking = SQ_ObjController::getController('SQ_Ranking', false);
294
+ $args['rank'] = (string)$rank;
295
  $args['country'] = $ranking->getCountry();
296
  $args['language'] = $ranking->getLanguage();
297
  }
298
  }
299
 
300
  $response = json_decode(SQ_Action::apiCall('sq/user-analytics/detail', $args, 30));
301
+
 
 
302
  if (!is_object($response)) {
303
  exit(json_encode(array('error' => $response)));
304
  } else {
305
+ //SQ_Tools::dump($response);
306
  $analytics = SQ_ObjController::getBlock('SQ_BlockAnalytics');
307
  $analytics->flush = false;
308
  $analytics->post_id = $this->model->post_id;
309
  $analytics->audit = $this->model->getAnalytics($response, $this->model->post_id);
 
 
310
 
311
+ $response = $analytics->init();
312
+ SQ_Tools::dump($response);
313
+ if (SQ_Tools::getValue('sq_debug') === 'on') {
314
+ exit();
315
+ }
316
  exit(json_encode($response));
317
  }
318
  break;
319
  case 'sq_recheck':
320
  SQ_Tools::setHeader('json');
321
+ if (SQ_Tools::getValue('sq_debug') === 'on' || get_transient('google_blocked') === false) {
322
+ $this->model->post_id = (int)SQ_Tools::getValue('post_id');
323
  if ($json = SQ_ObjController::getModel('SQ_Post')->getKeyword($this->model->post_id)) {
324
+ $oldrank = (isset($json->rank) ? $json->rank : -1);
325
  if (get_transient('sq_rank' . $this->model->post_id) !== false) {
326
  delete_transient('sq_rank' . $this->model->post_id);
327
  }
332
  exit(json_encode(array('error' => true)));
333
  } else {
334
  if ($json->rank == -2) {
335
+ $json->rank = $oldrank;
336
+ }
337
+
338
+ if ($json->rank == -1) {
339
+ $value = sprintf(__('Not in top 100 for: %s'), '<br />' .$json->keyword);
340
  } elseif ($json->rank == 0) {
341
+ $value = __('The URL is Indexed', _SQ_PLUGIN_NAME_);
342
  } elseif ($json->rank > 0) {
343
  $value = '<strong style="display:block; font-size: 120%; width: 100px; margin: 0 auto; text-align:right;">' . sprintf(__('%s'), $json->rank) . '</strong>' . ((isset($json->country)) ? ' (' . $json->country . ')' : '');
344
  }
348
 
349
  exit(json_encode(array('error' => true)));
350
  } else {
351
+ $this->model->post_id = (int)SQ_Tools::getValue('post_id');
352
+ if ($json = SQ_ObjController::getModel('SQ_Post')->getKeyword($this->model->post_id)) {
353
+ if ($json->rank === false) {
354
+ exit(json_encode(array('error' => true)));
355
+ } else {
356
+ if ($json->rank == -1) {
357
+ $value = sprintf(__('Not in top 100 for: %s'), '<br />' .$json->keyword);
358
+ } elseif ($json->rank == 0) {
359
+ $value = __('The URL is Indexed', _SQ_PLUGIN_NAME_);
360
+ } elseif ($json->rank > 0) {
361
+ $value = '<strong style="display:block; font-size: 120%; width: 100px; margin: 0 auto; text-align:right;">' . sprintf(__('%s'), $json->rank) . '</strong>' . ((isset($json->country)) ? ' (' . $json->country . ')' : '');
362
+ }
363
+ exit(json_encode(array('rank' => $value)));
364
+ }
365
+ }
366
  exit(json_encode(array('rank' => $rank)));
367
  }
368
  break;
375
  * @param type $keyword
376
  * @return type
377
  */
378
+ private function checkKeyword($keyword, $force = false)
379
+ {
380
  $rank = null;
381
 
382
  if ($keyword == '')
420
  if ($rank !== false && $rank >= -1) {
421
  $args = array();
422
  $args['post_id'] = $this->model->post_id;
423
+ $args['rank'] = (string)$rank;
424
  $args['country'] = $ranking->getCountry();
425
  $args['language'] = $ranking->getLanguage();
426
  SQ_Action::apiCall('sq/user-analytics/saveserp', $args);
controllers/SQ_Sitemaps.php CHANGED
@@ -8,7 +8,7 @@ class SQ_Sitemaps extends SQ_FrontController {
8
 
9
  var $root = 'sitemap';
10
  /* @var string post limit */
11
- var $posts_limit = 10000;
12
  var $news_limit = 50;
13
 
14
  public function __construct() {
8
 
9
  var $root = 'sitemap';
10
  /* @var string post limit */
11
+ var $posts_limit = 1000;
12
  var $news_limit = 50;
13
 
14
  public function __construct() {
core/SQ_BlockSettings/SQ_BlockSettings.php CHANGED
@@ -24,9 +24,14 @@ class SQ_BlockSettings extends SQ_BlockController {
24
  parent::action();
25
 
26
 
 
27
  switch (SQ_Tools::getValue('action')) {
28
 
29
  case 'sq_settings_update':
 
 
 
 
30
  if (SQ_Tools::getIsset('sq_post_types')) {
31
  SQ_Tools::$options['sq_post_types'] = array();
32
  foreach (SQ_Tools::getValue('sq_post_types') as $key) {
24
  parent::action();
25
 
26
 
27
+
28
  switch (SQ_Tools::getValue('action')) {
29
 
30
  case 'sq_settings_update':
31
+ if (!current_user_can('manage_options')){
32
+ return;
33
+ }
34
+
35
  if (SQ_Tools::getIsset('sq_post_types')) {
36
  SQ_Tools::$options['sq_post_types'] = array();
37
  foreach (SQ_Tools::getValue('sq_post_types') as $key) {
core/SQ_BlockSettingsSeo/SQ_BlockSettingsSeo.php CHANGED
@@ -33,25 +33,31 @@ class SQ_BlockSettingsSeo extends SQ_BlockController {
33
  public function action() {
34
  parent::action();
35
 
 
36
  switch (SQ_Tools::getValue('action')) {
37
 
38
  case 'sq_settingsseo_update':
 
 
 
 
39
  if (!SQ_Tools::getIsset('sq_use')) {
40
  return;
41
  }
42
 
43
- SQ_Tools::saveOptions('sq_use', (int) SQ_Tools::getValue('sq_use'));
44
- SQ_Tools::saveOptions('sq_auto_title', (int) SQ_Tools::getValue('sq_auto_title'));
45
- SQ_Tools::saveOptions('sq_auto_description', (int) SQ_Tools::getValue('sq_auto_description'));
46
- SQ_Tools::saveOptions('sq_auto_canonical', (int) SQ_Tools::getValue('sq_auto_canonical'));
 
47
 
48
- SQ_Tools::saveOptions('sq_auto_meta', (int) SQ_Tools::getValue('sq_auto_meta'));
49
- SQ_Tools::saveOptions('sq_auto_favicon', (int) SQ_Tools::getValue('sq_auto_favicon'));
50
 
51
  ///////////////////////////////////////////
52
  /////////////////////////////SOCIAL OPTION
53
- SQ_Tools::saveOptions('sq_auto_facebook', (int) SQ_Tools::getValue('sq_auto_facebook'));
54
- SQ_Tools::saveOptions('sq_auto_twitter', (int) SQ_Tools::getValue('sq_auto_twitter'));
55
  SQ_Tools::saveOptions('sq_auto_twittersize', SQ_Tools::getValue('sq_auto_twittersize'));
56
  SQ_Tools::saveOptions('sq_og_locale', SQ_Tools::getValue('sq_og_locale'));
57
 
@@ -59,6 +65,8 @@ class SQ_BlockSettingsSeo extends SQ_BlockController {
59
  SQ_Tools::saveOptions('sq_facebook_account', $this->model->checkFacebookAccount(SQ_Tools::getValue('sq_facebook_account')));
60
  SQ_Tools::saveOptions('sq_google_plus', $this->model->checkGoogleAccount(SQ_Tools::getValue('sq_google_plus')));
61
  SQ_Tools::saveOptions('sq_linkedin_account', $this->model->checkLinkeinAccount(SQ_Tools::getValue('sq_linkedin_account')));
 
 
62
 
63
  ///////////////////////////////////////////
64
  /////////////////////////////FIRST PAGE OPTIMIZATION
@@ -75,7 +83,7 @@ class SQ_BlockSettingsSeo extends SQ_BlockController {
75
  $meta[] = array('key' => '_sq_fp_keywords', 'value' => SQ_Tools::getValue('sq_fp_keywords'));
76
 
77
  if (SQ_Tools::getIsset('sq_fp_ogimage'))
78
- $meta[] = array('key' => '_sq_fp_ogimage', 'value' => SQ_ObjController::getModel('SQ_Frontend')->getAdvancedMeta($pageId, 'ogimage'));
79
 
80
  if (!empty($meta))
81
  SQ_ObjController::getModel('SQ_Post')->saveAdvMeta($pageId, $meta);
@@ -84,14 +92,15 @@ class SQ_BlockSettingsSeo extends SQ_BlockController {
84
  SQ_Tools::saveOptions('sq_fp_title', SQ_Tools::getValue('sq_fp_title'));
85
  SQ_Tools::saveOptions('sq_fp_description', SQ_Tools::getValue('sq_fp_description'));
86
  SQ_Tools::saveOptions('sq_fp_keywords', SQ_Tools::getValue('sq_fp_keywords'));
 
87
 
88
 
89
  ///////////////////////////////////////////
90
  /////////////////////////////SITEMAP OPTION
91
- SQ_Tools::saveOptions('sq_auto_sitemap', (int) SQ_Tools::getValue('sq_auto_sitemap'));
92
- SQ_Tools::saveOptions('sq_auto_feed', (int) SQ_Tools::getValue('sq_auto_feed'));
93
  SQ_Tools::saveOptions('sq_sitemap_frequency', SQ_Tools::getValue('sq_sitemap_frequency'));
94
- SQ_Tools::saveOptions('sq_sitemap_ping', (int) SQ_Tools::getValue('sq_sitemap_ping'));
95
 
96
  foreach (SQ_Tools::$options['sq_sitemap'] as $key => $value) {
97
  if ($key == 'sitemap') {
@@ -125,11 +134,13 @@ class SQ_BlockSettingsSeo extends SQ_BlockController {
125
 
126
  SQ_Tools::saveOptions('sq_google_analytics', $this->model->checkGoogleAnalyticsCode(SQ_Tools::getValue('sq_google_analytics', '', true)));
127
  SQ_Tools::saveOptions('sq_facebook_insights', $this->model->checkFavebookInsightsCode(SQ_Tools::getValue('sq_facebook_insights', '', true)));
 
128
  SQ_Tools::saveOptions('sq_pinterest', $this->model->checkPinterestCode(SQ_Tools::getValue('sq_pinterest', '', true)));
129
 
130
  ///////////////////////////////////////////JSONLD
131
 
132
- SQ_Tools::saveOptions('sq_auto_jsonld', (int) SQ_Tools::getValue('sq_auto_jsonld'));
 
133
  if (SQ_Tools::getIsset('sq_jsonld_type') && isset(SQ_Tools::$options['sq_jsonld'][SQ_Tools::getValue('sq_jsonld_type')])) {
134
 
135
  foreach (SQ_Tools::$options['sq_jsonld'][SQ_Tools::getValue('sq_jsonld_type')] as $key => $value) {
@@ -137,6 +148,11 @@ class SQ_BlockSettingsSeo extends SQ_BlockController {
137
  SQ_Tools::$options['sq_jsonld'][SQ_Tools::getValue('sq_jsonld_type')][$key] = SQ_Tools::getValue('sq_jsonld_' . $key);
138
  }
139
  }
 
 
 
 
 
140
  }
141
  SQ_Tools::saveOptions('sq_jsonld_type', SQ_Tools::getValue('sq_jsonld_type'));
142
 
@@ -167,6 +183,10 @@ class SQ_BlockSettingsSeo extends SQ_BlockController {
167
  SQ_Tools::emptyCache();
168
  break;
169
  case 'sq_checkissues':
 
 
 
 
170
  SQ_Tools::saveOptions('sq_checkedissues', 1);
171
  SQ_Action::apiCall('sq/user/settings', array('settings' => json_encode(SQ_Tools::getBriefOptions())), 10);
172
 
@@ -175,21 +195,37 @@ class SQ_BlockSettingsSeo extends SQ_BlockController {
175
 
176
  break;
177
  case 'sq_fixautoseo':
 
 
 
 
178
  SQ_Tools::saveOptions('sq_use', 1);
179
  SQ_Action::apiCall('sq/user/settings', array('settings' => json_encode(SQ_Tools::getBriefOptions())), 10);
180
 
181
  break;
182
  case 'sq_fixprivate':
 
 
 
 
183
  update_option('blog_public', 1);
184
  SQ_Action::apiCall('sq/user/settings', array('settings' => json_encode(SQ_Tools::getBriefOptions())), 10);
185
 
186
  break;
187
  case 'sq_fixcomments':
 
 
 
 
188
  update_option('comments_notify', 1);
189
  SQ_Action::apiCall('sq/user/settings', array('settings' => json_encode(SQ_Tools::getBriefOptions())), 10);
190
 
191
  break;
192
  case 'sq_fixpermalink':
 
 
 
 
193
  $GLOBALS['wp_rewrite'] = new WP_Rewrite();
194
  global $wp_rewrite;
195
  $permalink_structure = ((get_option('permalink_structure') <> '') ? get_option('permalink_structure') : '/') . "%postname%/";
@@ -199,31 +235,55 @@ class SQ_BlockSettingsSeo extends SQ_BlockController {
199
  flush_rewrite_rules();
200
  break;
201
  case 'sq_fix_ogduplicate':
 
 
 
 
202
  SQ_Tools::saveOptions('sq_auto_facebook', 0);
203
  SQ_Action::apiCall('sq/user/settings', array('settings' => json_encode(SQ_Tools::getBriefOptions())), 10);
204
 
205
  break;
206
  case 'sq_fix_tcduplicate':
 
 
 
 
207
  SQ_Tools::saveOptions('sq_auto_twitter', 0);
208
  SQ_Action::apiCall('sq/user/settings', array('settings' => json_encode(SQ_Tools::getBriefOptions())), 10);
209
 
210
  break;
211
  case 'sq_fix_titleduplicate':
 
 
 
 
212
  SQ_Tools::saveOptions('sq_auto_title', 0);
213
  SQ_Tools::saveOptions('sq_auto_seo', 1);
214
  SQ_Action::apiCall('sq/user/settings', array('settings' => json_encode(SQ_Tools::getBriefOptions())), 10);
215
 
216
  break;
217
  case 'sq_fix_descduplicate':
 
 
 
 
218
  SQ_Tools::saveOptions('sq_auto_description', 0);
219
  SQ_Tools::saveOptions('sq_auto_seo', 1);
220
  SQ_Action::apiCall('sq/user/settings', array('settings' => json_encode(SQ_Tools::getBriefOptions())), 10);
221
 
222
  break;
223
  case 'sq_active_help' :
 
 
 
 
224
  SQ_Tools::saveOptions('active_help', SQ_Tools::getValue('active_help'));
225
  break;
226
  case 'sq_warnings_off':
 
 
 
 
227
  SQ_Tools::saveOptions('ignore_warn', 1);
228
  break;
229
  case 'sq_get_snippet':
@@ -239,6 +299,10 @@ class SQ_BlockSettingsSeo extends SQ_BlockController {
239
  echo json_encode($snippet);
240
  exit();
241
  case 'sq_backup':
 
 
 
 
242
  SQ_Tools::setHeader('text');
243
  header("Content-Disposition: attachment; filename=squirrly.txt");
244
 
@@ -250,6 +314,10 @@ class SQ_BlockSettingsSeo extends SQ_BlockController {
250
  exit();
251
  break;
252
  case 'sq_restore':
 
 
 
 
253
  if (!empty($_FILES['sq_options']) && $_FILES['sq_options']['tmp_name'] <> '') {
254
  $options = file_get_contents($_FILES['sq_options']['tmp_name']);
255
  try {
@@ -291,6 +359,7 @@ class SQ_BlockSettingsSeo extends SQ_BlockController {
291
  $rules['favicon\.icon$'] = 'index.php?sq_get=favicon';
292
  $rules['touch-icon\.png$'] = 'index.php?sq_get=touchicon';
293
  foreach ($this->model->appleSizes as $size) {
 
294
  $rules['touch-icon' . $size . '\.png$'] = 'index.php?sq_get=touchicon&sq_size=' . $size;
295
  }
296
  }
33
  public function action() {
34
  parent::action();
35
 
36
+
37
  switch (SQ_Tools::getValue('action')) {
38
 
39
  case 'sq_settingsseo_update':
40
+ if (!current_user_can('manage_options')) {
41
+ return;
42
+ }
43
+
44
  if (!SQ_Tools::getIsset('sq_use')) {
45
  return;
46
  }
47
 
48
+ SQ_Tools::saveOptions('sq_use', (int)SQ_Tools::getValue('sq_use'));
49
+ SQ_Tools::saveOptions('sq_auto_title', (int)SQ_Tools::getValue('sq_auto_title'));
50
+ SQ_Tools::saveOptions('sq_auto_description', (int)SQ_Tools::getValue('sq_auto_description'));
51
+ SQ_Tools::saveOptions('sq_auto_canonical', (int)SQ_Tools::getValue('sq_auto_canonical'));
52
+ SQ_Tools::saveOptions('sq_auto_amp', (int)SQ_Tools::getValue('sq_auto_amp'));
53
 
54
+ SQ_Tools::saveOptions('sq_auto_meta', (int)SQ_Tools::getValue('sq_auto_meta'));
55
+ SQ_Tools::saveOptions('sq_auto_favicon', (int)SQ_Tools::getValue('sq_auto_favicon'));
56
 
57
  ///////////////////////////////////////////
58
  /////////////////////////////SOCIAL OPTION
59
+ SQ_Tools::saveOptions('sq_auto_facebook', (int)SQ_Tools::getValue('sq_auto_facebook'));
60
+ SQ_Tools::saveOptions('sq_auto_twitter', (int)SQ_Tools::getValue('sq_auto_twitter'));
61
  SQ_Tools::saveOptions('sq_auto_twittersize', SQ_Tools::getValue('sq_auto_twittersize'));
62
  SQ_Tools::saveOptions('sq_og_locale', SQ_Tools::getValue('sq_og_locale'));
63
 
65
  SQ_Tools::saveOptions('sq_facebook_account', $this->model->checkFacebookAccount(SQ_Tools::getValue('sq_facebook_account')));
66
  SQ_Tools::saveOptions('sq_google_plus', $this->model->checkGoogleAccount(SQ_Tools::getValue('sq_google_plus')));
67
  SQ_Tools::saveOptions('sq_linkedin_account', $this->model->checkLinkeinAccount(SQ_Tools::getValue('sq_linkedin_account')));
68
+ SQ_Tools::saveOptions('sq_pinterest_account', $this->model->checkPinterestAccount(SQ_Tools::getValue('sq_pinterest_account')));
69
+ SQ_Tools::saveOptions('sq_instagram_account', $this->model->checkInstagramAccount(SQ_Tools::getValue('sq_instagram_account')));
70
 
71
  ///////////////////////////////////////////
72
  /////////////////////////////FIRST PAGE OPTIMIZATION
83
  $meta[] = array('key' => '_sq_fp_keywords', 'value' => SQ_Tools::getValue('sq_fp_keywords'));
84
 
85
  if (SQ_Tools::getIsset('sq_fp_ogimage'))
86
+ $meta[] = array('key' => '_sq_fp_ogimage', 'value' => SQ_Tools::getValue('sq_fp_ogimage'));
87
 
88
  if (!empty($meta))
89
  SQ_ObjController::getModel('SQ_Post')->saveAdvMeta($pageId, $meta);
92
  SQ_Tools::saveOptions('sq_fp_title', SQ_Tools::getValue('sq_fp_title'));
93
  SQ_Tools::saveOptions('sq_fp_description', SQ_Tools::getValue('sq_fp_description'));
94
  SQ_Tools::saveOptions('sq_fp_keywords', SQ_Tools::getValue('sq_fp_keywords'));
95
+ SQ_Tools::saveOptions('sq_fp_ogimage', SQ_Tools::getValue('sq_fp_ogimage'));
96
 
97
 
98
  ///////////////////////////////////////////
99
  /////////////////////////////SITEMAP OPTION
100
+ SQ_Tools::saveOptions('sq_auto_sitemap', (int)SQ_Tools::getValue('sq_auto_sitemap'));
101
+ SQ_Tools::saveOptions('sq_auto_feed', (int)SQ_Tools::getValue('sq_auto_feed'));
102
  SQ_Tools::saveOptions('sq_sitemap_frequency', SQ_Tools::getValue('sq_sitemap_frequency'));
103
+ SQ_Tools::saveOptions('sq_sitemap_ping', (int)SQ_Tools::getValue('sq_sitemap_ping'));
104
 
105
  foreach (SQ_Tools::$options['sq_sitemap'] as $key => $value) {
106
  if ($key == 'sitemap') {
134
 
135
  SQ_Tools::saveOptions('sq_google_analytics', $this->model->checkGoogleAnalyticsCode(SQ_Tools::getValue('sq_google_analytics', '', true)));
136
  SQ_Tools::saveOptions('sq_facebook_insights', $this->model->checkFavebookInsightsCode(SQ_Tools::getValue('sq_facebook_insights', '', true)));
137
+ SQ_Tools::saveOptions('sq_facebook_analytics', SQ_Tools::getValue('sq_facebook_analytics', ''));
138
  SQ_Tools::saveOptions('sq_pinterest', $this->model->checkPinterestCode(SQ_Tools::getValue('sq_pinterest', '', true)));
139
 
140
  ///////////////////////////////////////////JSONLD
141
 
142
+
143
+ SQ_Tools::saveOptions('sq_auto_jsonld', (int)SQ_Tools::getValue('sq_auto_jsonld'));
144
  if (SQ_Tools::getIsset('sq_jsonld_type') && isset(SQ_Tools::$options['sq_jsonld'][SQ_Tools::getValue('sq_jsonld_type')])) {
145
 
146
  foreach (SQ_Tools::$options['sq_jsonld'][SQ_Tools::getValue('sq_jsonld_type')] as $key => $value) {
148
  SQ_Tools::$options['sq_jsonld'][SQ_Tools::getValue('sq_jsonld_type')][$key] = SQ_Tools::getValue('sq_jsonld_' . $key);
149
  }
150
  }
151
+ if (isset(SQ_Tools::$options['sq_jsonld'][SQ_Tools::getValue('sq_jsonld_type')]['telephone']) &&
152
+ SQ_Tools::$options['sq_jsonld'][SQ_Tools::getValue('sq_jsonld_type')]['telephone'] <> ''
153
+ ) {
154
+ SQ_Tools::$options['sq_jsonld'][SQ_Tools::getValue('sq_jsonld_type')]['telephone'] = '+' . SQ_Tools::$options['sq_jsonld'][SQ_Tools::getValue('sq_jsonld_type')]['telephone'];
155
+ }
156
  }
157
  SQ_Tools::saveOptions('sq_jsonld_type', SQ_Tools::getValue('sq_jsonld_type'));
158
 
183
  SQ_Tools::emptyCache();
184
  break;
185
  case 'sq_checkissues':
186
+ if (!current_user_can('manage_options')) {
187
+ return;
188
+ }
189
+
190
  SQ_Tools::saveOptions('sq_checkedissues', 1);
191
  SQ_Action::apiCall('sq/user/settings', array('settings' => json_encode(SQ_Tools::getBriefOptions())), 10);
192
 
195
 
196
  break;
197
  case 'sq_fixautoseo':
198
+ if (!current_user_can('manage_options')) {
199
+ return;
200
+ }
201
+
202
  SQ_Tools::saveOptions('sq_use', 1);
203
  SQ_Action::apiCall('sq/user/settings', array('settings' => json_encode(SQ_Tools::getBriefOptions())), 10);
204
 
205
  break;
206
  case 'sq_fixprivate':
207
+ if (!current_user_can('manage_options')) {
208
+ return;
209
+ }
210
+
211
  update_option('blog_public', 1);
212
  SQ_Action::apiCall('sq/user/settings', array('settings' => json_encode(SQ_Tools::getBriefOptions())), 10);
213
 
214
  break;
215
  case 'sq_fixcomments':
216
+ if (!current_user_can('manage_options')) {
217
+ return;
218
+ }
219
+
220
  update_option('comments_notify', 1);
221
  SQ_Action::apiCall('sq/user/settings', array('settings' => json_encode(SQ_Tools::getBriefOptions())), 10);
222
 
223
  break;
224
  case 'sq_fixpermalink':
225
+ if (!current_user_can('manage_options')) {
226
+ return;
227
+ }
228
+
229
  $GLOBALS['wp_rewrite'] = new WP_Rewrite();
230
  global $wp_rewrite;
231
  $permalink_structure = ((get_option('permalink_structure') <> '') ? get_option('permalink_structure') : '/') . "%postname%/";
235
  flush_rewrite_rules();
236
  break;
237
  case 'sq_fix_ogduplicate':
238
+ if (!current_user_can('manage_options')) {
239
+ return;
240
+ }
241
+
242
  SQ_Tools::saveOptions('sq_auto_facebook', 0);
243
  SQ_Action::apiCall('sq/user/settings', array('settings' => json_encode(SQ_Tools::getBriefOptions())), 10);
244
 
245
  break;
246
  case 'sq_fix_tcduplicate':
247
+ if (!current_user_can('manage_options')) {
248
+ return;
249
+ }
250
+
251
  SQ_Tools::saveOptions('sq_auto_twitter', 0);
252
  SQ_Action::apiCall('sq/user/settings', array('settings' => json_encode(SQ_Tools::getBriefOptions())), 10);
253
 
254
  break;
255
  case 'sq_fix_titleduplicate':
256
+ if (!current_user_can('manage_options')) {
257
+ return;
258
+ }
259
+
260
  SQ_Tools::saveOptions('sq_auto_title', 0);
261
  SQ_Tools::saveOptions('sq_auto_seo', 1);
262
  SQ_Action::apiCall('sq/user/settings', array('settings' => json_encode(SQ_Tools::getBriefOptions())), 10);
263
 
264
  break;
265
  case 'sq_fix_descduplicate':
266
+ if (!current_user_can('manage_options')) {
267
+ return;
268
+ }
269
+
270
  SQ_Tools::saveOptions('sq_auto_description', 0);
271
  SQ_Tools::saveOptions('sq_auto_seo', 1);
272
  SQ_Action::apiCall('sq/user/settings', array('settings' => json_encode(SQ_Tools::getBriefOptions())), 10);
273
 
274
  break;
275
  case 'sq_active_help' :
276
+ if (!current_user_can('manage_options')) {
277
+ return;
278
+ }
279
+
280
  SQ_Tools::saveOptions('active_help', SQ_Tools::getValue('active_help'));
281
  break;
282
  case 'sq_warnings_off':
283
+ if (!current_user_can('manage_options')) {
284
+ return;
285
+ }
286
+
287
  SQ_Tools::saveOptions('ignore_warn', 1);
288
  break;
289
  case 'sq_get_snippet':
299
  echo json_encode($snippet);
300
  exit();
301
  case 'sq_backup':
302
+ if (!current_user_can('manage_options')) {
303
+ return;
304
+ }
305
+
306
  SQ_Tools::setHeader('text');
307
  header("Content-Disposition: attachment; filename=squirrly.txt");
308
 
314
  exit();
315
  break;
316
  case 'sq_restore':
317
+ if (!current_user_can('manage_options')) {
318
+ return;
319
+ }
320
+
321
  if (!empty($_FILES['sq_options']) && $_FILES['sq_options']['tmp_name'] <> '') {
322
  $options = file_get_contents($_FILES['sq_options']['tmp_name']);
323
  try {
359
  $rules['favicon\.icon$'] = 'index.php?sq_get=favicon';
360
  $rules['touch-icon\.png$'] = 'index.php?sq_get=touchicon';
361
  foreach ($this->model->appleSizes as $size) {
362
+ $size = (int)$size;
363
  $rules['touch-icon' . $size . '\.png$'] = 'index.php?sq_get=touchicon&sq_size=' . $size;
364
  }
365
  }
core/SQ_Blocksearch/SQ_Blocksearch.php CHANGED
@@ -16,16 +16,6 @@ class SQ_Blocksearch extends SQ_BlockController {
16
  SQ_Tools::saveOptions('sq_img_licence', SQ_Tools::getValue('licence'));
17
  exit();
18
  break;
19
- case 'sq_search_img':
20
-
21
- $get = array('q' => SQ_Tools::getValue('q'),
22
- 'lang' => SQ_Tools::getValue('lang'),
23
- 'start' => SQ_Tools::getValue('start'),
24
- 'page' => SQ_Tools::getValue('page'),
25
- 'nrb' => SQ_Tools::getValue('nrb')
26
- );
27
- echo $this->model->searchImage($get);
28
- break;
29
  case 'sq_search_blog':
30
  if (SQ_Tools::getValue('exclude') && SQ_Tools::getValue('exclude') <> 'undefined')
31
  $exclude = array((int) SQ_Tools::getValue('exclude'));
16
  SQ_Tools::saveOptions('sq_img_licence', SQ_Tools::getValue('licence'));
17
  exit();
18
  break;
 
 
 
 
 
 
 
 
 
 
19
  case 'sq_search_blog':
20
  if (SQ_Tools::getValue('exclude') && SQ_Tools::getValue('exclude') <> 'undefined')
21
  $exclude = array((int) SQ_Tools::getValue('exclude'));
core/SQ_Loading/SQ_Loading.php CHANGED
@@ -39,12 +39,12 @@ class SQ_Loading extends SQ_BlockController {
39
  ' . (($keyword <> '') ? 'var sq_keyword_from_post = "' . $keyword . '";' : '') . '
40
  if (typeof sq_script === "undefined"){
41
  var sq_script = document.createElement(\'script\');
42
- sq_script.src = "' . _SQ_STATIC_API_URL_ . SQ_URI . '/js/squirrly.js?ver=' . SQ_VERSION_ID . '";
43
  var site_head = document.getElementsByTagName ("head")[0] || document.documentElement;
44
  site_head.insertBefore(sq_script, site_head.firstChild);
45
  }
46
  jQuery(document).ready(function() {
47
- jQuery("#sq_preloading").addClass("sq_loading").html("");
48
  });
49
  </script>';
50
  }
39
  ' . (($keyword <> '') ? 'var sq_keyword_from_post = "' . $keyword . '";' : '') . '
40
  if (typeof sq_script === "undefined"){
41
  var sq_script = document.createElement(\'script\');
42
+ sq_script.src = "' . _SQ_STATIC_API_URL_ . SQ_URI . '/js/squirrly.js?ver=' . SQ_VERSION_ID . '2";
43
  var site_head = document.getElementsByTagName ("head")[0] || document.documentElement;
44
  site_head.insertBefore(sq_script, site_head.firstChild);
45
  }
46
  jQuery(document).ready(function() {
47
+ jQuery("#sq_preloading").html("");
48
  });
49
  </script>';
50
  }
core/config.xml CHANGED
@@ -89,7 +89,6 @@
89
  <controller>SQ_Post</controller>
90
  </controllers>
91
  <actions>
92
- <action>sq_search_img</action>
93
  <action>sq_search_blog</action>
94
  <action>sq_type_click</action>
95
  </actions>
89
  <controller>SQ_Post</controller>
90
  </controllers>
91
  <actions>
 
92
  <action>sq_search_blog</action>
93
  <action>sq_type_click</action>
94
  </actions>
languages/squirrly-seo-de_DE.mo CHANGED
Binary file
languages/squirrly-seo-de_DE.po CHANGED
@@ -2,8 +2,8 @@ msgid ""
2
  msgstr ""
3
  "Project-Id-Version: Squirrly SEO Plugin v1.0.8\n"
4
  "Report-Msgid-Bugs-To: \n"
5
- "POT-Creation-Date: 2013-02-26 10:30+0200\n"
6
- "PO-Revision-Date: 2013-03-06 14:54+0200\n"
7
  "Last-Translator: Squirrly <contact@squirrly.co>\n"
8
  "Language-Team: \n"
9
  "Language: de_DE\n"
@@ -14,21 +14,13 @@ msgstr ""
14
  "X-Poedit-SourceCharset: utf-8\n"
15
  "X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;"
16
  "_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n"
17
- "X-Poedit-Basepath: ../\n"
18
  "X-Textdomain-Support: yes\n"
19
- "X-Generator: Poedit 1.5.4\n"
20
  "X-Poedit-SearchPath-0: .\n"
21
 
22
  # @ squirrly-seo
23
- #: squirrly.php:44
24
- msgid ""
25
- "For Squirrly to work, the PHP version has to be equal or greater then 5.1"
26
- msgstr ""
27
- "Damit Squirrly funktioniert, muss die PHP-Version gleich oder größer als 5.1 "
28
- "sein"
29
-
30
- # @ squirrly-seo
31
- #: classes/SQ_Error.php:17
32
  msgid ""
33
  "Function get_class does not exists! Is required for Squirrly to work "
34
  "properly."
@@ -37,7 +29,7 @@ msgstr ""
37
  "richtig zu arbeiten."
38
 
39
  # @ squirrly-seo
40
- #: classes/SQ_Error.php:20
41
  msgid ""
42
  "Function file_exists does not exists! Is required for Squirrly to work "
43
  "properly."
@@ -46,91 +38,250 @@ msgstr ""
46
  "richtig zu arbeiten."
47
 
48
  # @ squirrly-seo
49
- #: classes/SQ_Error.php:24
50
  msgid "The home directory is not set!"
51
  msgstr "Das Home-Verzeichnis wurde nicht gesetzt!"
52
 
53
  # @ squirrly-seo
54
- #: classes/SQ_Error.php:28
55
  msgid "The PHP version has to be greater then 4.0"
56
  msgstr "Die PHP-Version muß größer als 4.0 sein"
57
 
58
  # @ squirrly-seo
59
- #: classes/SQ_Error.php:65
60
  msgid "Turn off warnings!"
61
  msgstr "Warnungen ausschalten!"
62
 
63
- # @ squirrly-seo
64
- #: classes/SQ_Error.php:66
65
- msgid "Notice: "
66
- msgstr "Hinweis: "
67
 
68
- # @ squirrly-seo
69
- #: classes/SQ_Error.php:70
70
- msgid "Note: "
71
- msgstr "Notiz: "
72
 
73
  # @ squirrly-seo
74
- #: classes/SQ_Tools.php:198
75
  msgid "Fix it for me!"
76
  msgstr "Beheben Sie es für mich!"
77
 
78
- # @ squirrly-seo
79
- #: classes/SQ_Tools.php:204
80
- msgid "Let Squirrly optimize your SEO automatically (recommended)"
81
- msgstr "Lassen Sie Squirrly Ihr SEO automatisch optimieren (empfohlen)"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
82
 
83
  # @ squirrly-seo
84
- #: classes/SQ_Tools.php:211
85
  msgid "You're blocking google from indexing your site!"
86
  msgstr "Sie blockieren Google zum Indizieren Ihrer Website!"
87
 
88
- # @ squirrly-seo
89
- #: classes/SQ_Tools.php:217
90
  msgid ""
91
  "It is highly recommended that you include the %postname% variable in the "
92
- "permalink structure."
 
93
  msgstr ""
94
- "Es wird stark empfohlen, dass Sie die %postname% Variable in der Permalink-"
95
- "Struktur einschließen."
96
 
97
- # @ squirrly-seo
98
- #: controllers/SQ_Post.php:15
99
- msgid "For Squirrly to work, you have to have tinymce installed!"
100
- msgstr "Damit Squirrly arbeiten kann, müssen Sie tinymce installiert haben!"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
101
 
102
  # @ squirrly-seo
103
- #: controllers/SQ_Post.php:178
104
  msgid "Plugin Feedback"
105
  msgstr "Plugin Feedback"
106
 
107
  # @ squirrly-seo
108
- #: controllers/SQ_Post.php:214
109
  msgid "Thank you for your feedback"
110
  msgstr "Vielen Dank für Ihre Feedback"
111
 
112
  # @ squirrly-seo
113
- #: controllers/SQ_Post.php:216 controllers/SQ_Post.php:250
 
114
  msgid "Could not send the email..."
115
  msgstr "Konnte E-Mail nicht senden ..."
116
 
117
  # @ squirrly-seo
118
- #: controllers/SQ_Post.php:219 controllers/SQ_Post.php:253
 
119
  msgid "No message."
120
  msgstr "Keine Nachricht."
121
 
122
  # @ squirrly-seo
123
- #: controllers/SQ_Post.php:237
124
  msgid "Plugin Support"
125
  msgstr "Plugin Support"
126
 
127
- # @ squirrly-seo
128
- #: controllers/SQ_Post.php:248
129
- msgid "Message sent..."
130
- msgstr "Nachricht gesendet ..."
131
 
132
  # @ squirrly-seo
133
- #: core/SQ_Blocklogin/SQ_Blocklogin.php:59
134
  #, php-format
135
  msgid ""
136
  "We found your email, so it means you already have a Squirrly.co account. "
@@ -141,14 +292,15 @@ msgstr ""
141
  "Sie sich mit Ihrer Squirrly-ID ein. Falls Sie Ihr Passwort vergessen haben, "
142
  "klicken Sie %shier%s"
143
 
144
- # @ squirrly-seo
145
- #: core/SQ_Blocklogin/SQ_Blocklogin.php:63
146
- #: core/SQ_Blocklogin/SQ_Blocklogin.php:104
147
- msgid "An error occured."
148
- msgstr "Ein Fehler ist aufgetreten."
 
149
 
150
  # @ squirrly-seo
151
- #: core/SQ_Blocklogin/SQ_Blocklogin.php:67
152
  #, php-format
153
  msgid ""
154
  "Could not send your informations to squirrly. Please register %smanually%s."
@@ -157,38 +309,43 @@ msgstr ""
157
  "%smanually%s."
158
 
159
  # @ squirrly-seo
160
- #: core/SQ_Blocklogin/SQ_Blocklogin.php:97
161
  msgid "Wrong email or password!"
162
  msgstr "Benutzername oder Passwort falsch!"
163
 
164
  # @ squirrly-seo
165
- #: core/SQ_Blocklogin/SQ_Blocklogin.php:100
166
  msgid "You can use this account only for the URL you registered first!"
167
  msgstr ""
168
  "Dieses Konto können Sie nur für die URL benutzen, die Sie zuerst registriert "
169
  "haben!"
170
 
171
  # @ squirrly-seo
172
- #: core/SQ_Blocklogin/SQ_Blocklogin.php:106
 
 
 
 
 
173
  msgid "Both fields are required."
174
  msgstr "Beide Felder sind Pflichtfelder."
175
 
176
- #: core/SQ_Blockresearch/SQ_Blockresearch.php:12
177
  msgid "Recent discussions:"
178
  msgstr "Bisherige Diskussionen:"
179
 
180
  # @ squirrly-seo
181
- #: core/SQ_Blockresearch/SQ_Blockresearch.php:12
182
  msgid "Exact search:"
183
  msgstr "Exakte Suche:"
184
 
185
  # @ squirrly-seo
186
- #: core/SQ_Blockresearch/SQ_Blockresearch.php:12
187
  msgid "Competition:"
188
  msgstr "Wettbewerb:"
189
 
190
  # @ squirrly-seo
191
- #: core/SQ_Blockresearch/SQ_Blockresearch.php:12
192
  msgid "Trend:"
193
  msgstr "Trend:"
194
 
@@ -217,140 +374,1825 @@ msgstr "Referenz"
217
  msgid "Insert as box"
218
  msgstr "Als Box einfügen"
219
 
220
- # @ squirrly-seo
221
- #: core/SQ_Blocksearch/SQ_Blocksearch.php:50
222
- msgid "Not relevant?"
223
- msgstr "Nicht relevant?"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
224
 
225
- # @ squirrly-seo
226
- #: core/SQ_Blocksearch/SQ_Blocksearch.php:50
227
- msgid "Insert in your article"
228
- msgstr "In Artikel einfügen"
229
 
230
- # @ squirrly-seo
231
- #: core/SQ_Blocksearch/SQ_Blocksearch.php:50
232
- msgid "For Squirrly to work, you have to have tinymce editor installed!"
233
- msgstr "Damit Squirrly arbeitet, muss tinymce installiert sein!"
234
 
235
- # @ squirrly-seo
236
- #: core/SQ_Blocksearch/SQ_Blocksearch.php:50
237
- msgid ":( I lost my squirrel. Please reload the page."
238
- msgstr ":( Ich verlor meine Eichhörnchen. Laden Sie die Seite erneut."
239
 
240
- # @ squirrly-seo
241
- #: core/SQ_Blocksearch/SQ_Blocksearch.php:50
242
- msgid "No results found!"
243
- msgstr "Keine Ergebnisse gefunden!"
244
 
245
- # @ squirrly-seo
246
- #: core/SQ_Blocksearch/SQ_Blocksearch.php:50
247
- msgid "Switch to Visual editor!"
248
- msgstr "Zum Visual Editor wechseln !"
249
 
250
- # @ squirrly-seo
251
- #: core/SQ_Blocksearch/SQ_Blocksearch.php:50
252
- msgid "Use more words in one keyword"
253
- msgstr "Verwenden Sie mehrere Wörter in einem Schlüsselwort"
254
 
255
- # @ squirrly-seo
256
- #: core/SQ_Blocksearch/SQ_Blocksearch.php:50
257
- msgid "Takes too long to check this keyword ..."
258
- msgstr "Dauert zu lange, um dieses Schlüsselwort zu überprüfen ..."
259
 
260
- # @ squirrly-seo
261
- #: core/SQ_Blocksearch/SQ_Blocksearch.php:50
262
- msgid "Do a research!"
263
- msgstr "Erweiterte Suche!"
264
 
265
- # @ squirrly-seo
266
- #: core/SQ_Blocksearch/SQ_Blocksearch.php:50
267
- msgid "Do more research!"
268
- msgstr "Erweiterte Suche!"
269
 
270
- # @ squirrly-seo
271
- #: core/SQ_Loading/SQ_Loading.php:25
272
- msgid ""
273
- "For Squirrly to work properly you have to use a higher version of Internet "
274
- "Explorer. <br /> We recommend you to use Chrome or Mozilla."
275
  msgstr ""
276
- "Damit Squirrly ordnungsgemäß funktioniert, müssen Sie eine höhere Version "
277
- "von Internet Explorer verwenden. <br /> Wir empfehlen, Chrome oder Mozilla."
278
 
279
- # @ squirrly-seo
280
- #: core/SQ_Loading/SQ_Loading.php:27
281
- msgid "The system is acting Squirrly. I can not find the link to the server."
282
- msgstr "Kann den Link auf den Server nicht finden."
283
 
284
- #: core/SQ_Loading/SQ_Loading.php:35
285
- msgid ""
286
- "You haven`t used Squirrly SEO to optimize your article. Do you want to "
287
- "optimize for a keyword before publishing?"
288
  msgstr ""
289
- "You haven`t used Squirrly SEO to optimize your article. Do you want to "
290
- "optimize for a keyword before publishing?"
291
 
292
- # @ squirrly-seo
293
- #: models/SQ_Menu.php:108
294
- msgid "The code for Google Webmaster Tool is incorrect."
295
- msgstr "Der Code für Google Webmaster Tool ist falsch."
296
 
297
  # @ squirrly-seo
298
- #: models/SQ_Menu.php:135
299
- msgid "The code for Google Analytics is incorrect."
300
- msgstr "Der Code für Google Analytics ist falsch."
301
 
302
  # @ squirrly-seo
303
- #: models/SQ_Menu.php:163
304
- msgid "The code for Facebook is incorrect."
305
- msgstr "Der Code für Facebook ist falsch."
306
 
307
  # @ squirrly-seo
308
- #: models/SQ_Menu.php:188
309
- msgid "The code for Bing is incorrect."
310
- msgstr "Der Code für Bing ist falsch."
311
 
312
  # @ squirrly-seo
313
- #: models/SQ_Menu.php:221
314
- msgid "File type error: Only JPEG, JPG, GIF or PNG files are allowed."
315
- msgstr "Dateityp Fehler: Nur JPEG, JPG, GIF oder PNG-Dateien sind erlaubt."
316
 
317
  # @ squirrly-seo
318
- #: models/SQ_Menu.php:234
319
- msgid "GD error: The GD library must be installed on your server."
320
- msgstr "GD Fehler: Die GD-Bibliothek muss auf dem Server installiert werden."
321
 
322
  # @ squirrly-seo
323
- #: models/SQ_Menu.php:241
324
- msgid "Delete error: Could not delete the old favicon."
325
- msgstr "Lösch Fehler: Konnte das alte Favicon nicht löschen."
326
 
327
  # @ squirrly-seo
328
- #: models/SQ_Menu.php:248
329
- msgid "Upload error: Could not upload the favicon."
330
- msgstr "Upload Fehler: Konnte das Favicon nicht hochladen."
331
 
332
  # @ squirrly-seo
333
- #: models/SQ_Menu.php:254
334
- msgid "Permission error: Could not change the favicon permissions."
335
- msgstr "Permission Fehler: Konnte Favicon-Berechtigungen nicht ändern."
336
 
337
  # @ squirrly-seo
338
- #: models/SQ_Menu.php:280
339
- msgid ""
340
- "ICO Error: Could not create the ICO from file. Try with another file type."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
341
  msgstr ""
342
- "ICO Fehler: konnte ICO aus der Datei nicht erstellen. Versuchen Sie es mit "
343
- "einem anderen Dateityp."
344
 
345
  # @ squirrly-seo
346
- #: models/SQ_Menu.php:283
347
- msgid "The favicon has been updated."
348
- msgstr "Das Favicon wurde aktualisiert."
349
 
350
- # @ default
351
- #: models/SQ_Post.php:71
352
- msgid "Squirrly could not find any results for: "
353
- msgstr "Squirly hat keine Suchergebnisse gefunden für:"
 
 
 
 
 
354
 
355
  # @ squirrly-seo
356
  #: themes/default/SQ_Blocklogin.php:2
@@ -363,73 +2205,84 @@ msgid "Email:"
363
  msgstr "Ihre E-Mail Adresse:"
364
 
365
  # @ squirrly-seo
366
- #: themes/default/SQ_Blocklogin.php:10
367
  msgid "Password:"
368
  msgstr "Passwort:"
369
 
370
  # @ squirrly-seo
371
- #: themes/default/SQ_Blocklogin.php:11
372
  msgid "Login"
373
  msgstr "Login"
374
 
375
  # @ squirrly-seo
376
- #: themes/default/SQ_Blocklogin.php:12
377
  msgid "Register"
378
  msgstr "Registrieren"
379
 
380
  # @ squirrly-seo
381
- #: themes/default/SQ_Blocklogin.php:12
382
  msgid "Register to Squirrly.co"
383
  msgstr "Bei Squirrly.co registrieren"
384
 
385
  # @ squirrly-seo
386
- #: themes/default/SQ_Blocklogin.php:13
387
  msgid "Lost password?"
388
  msgstr "Passwort vergessen?"
389
 
390
  # @ squirrly-seo
391
- #: themes/default/SQ_Blocklogin.php:13
392
  msgid "Lost password"
393
  msgstr "Passwort vergessen"
394
 
395
  # @ squirrly-seo
396
- #: themes/default/SQ_Blocklogin.php:17
397
  msgid "Enter your email"
398
  msgstr "In Artikel einfügen"
399
 
400
- # @ squirrly-seo
401
- #: themes/default/SQ_Blocklogin.php:18
402
- msgid "Your E-mail:"
403
- msgstr "Ihre E-Mail Adresse:"
404
 
405
- #: themes/default/SQ_Blocklogin.php:19
406
  msgid "Sign Up"
407
  msgstr "Anmelden"
408
 
409
- #: themes/default/SQ_Blocklogin.php:20
 
 
 
 
410
  msgid "This email connects you to Squirrly.co"
411
  msgstr "This email connects you to Squirrly.co"
412
 
413
  # @ squirrly-seo
414
- #: themes/default/SQ_Blocklogin.php:29
415
  msgid "The email address is invalid!"
416
  msgstr "Die E-Mail-Adresse ist ungültig!"
417
 
418
  # @ squirrly-seo
419
- #: themes/default/SQ_Blocklogin.php:30
420
  msgid "Click on Sign Up button and try again ..."
421
  msgstr "Klicken Sie auf das Bild und versuchen Sie es erneut ..."
422
 
423
  # @ squirrly-seo
424
- #: themes/default/SQ_Blocklogin.php:31
425
  msgid "An error occured while logging in!"
426
  msgstr "Bei der Anmeldung ist ein Fehler aufgetreten!"
427
 
428
  # @ squirrly-seo
429
- #: themes/default/SQ_Blocklogin.php:32
430
  msgid "Connecting ..."
431
  msgstr "Verbinden ..."
432
 
 
 
 
 
 
 
 
 
433
  # @ squirrly-seo
434
  #: themes/default/SQ_Blockresearch.php:2
435
  msgid "Squirrly Keyword Research"
@@ -441,416 +2294,321 @@ msgid "Clear"
441
  msgstr "Löschen"
442
 
443
  # @ squirrly-seo
444
- #: themes/default/SQ_Blockresearch.php:9
445
  msgid "Keyword:"
446
  msgstr "Schlüsselwort:"
447
 
448
  # @ squirrly-seo
449
- #: themes/default/SQ_Blockresearch.php:11 themes/default/SQ_Blocksearch.php:23
450
  msgid "Use this keyword"
451
  msgstr "Dieses Schlüsselwort verwenden"
452
 
453
  # @ squirrly-seo
454
- #: themes/default/SQ_Blockresearch.php:20
455
  msgid "+ Add keyword"
456
  msgstr "Fügen Sie ein anderes Schlüsselwort ein"
457
 
458
  # @ squirrly-seo
459
- #: themes/default/SQ_Blockresearch.php:21
460
  msgid "Do the research"
461
  msgstr "Recherchieren"
462
 
463
  # @ squirrly-seo
464
- #: themes/default/SQ_Blockresearch.php:24
465
  msgid "Enter even more keywords."
466
  msgstr "Geben Sie noch mehrere Schlüsselwörter ein."
467
 
468
  # @ squirrly-seo
469
- #: themes/default/SQ_Blockresearch.php:25
470
  msgid "Let some keywords for the next time as well!"
471
  msgstr "Lassen Sie ein paar Schlüsselwörter auch für das nächste Mal!"
472
 
 
 
 
 
 
 
 
 
 
 
473
  #: themes/default/SQ_Blocksearch.php:3
474
  msgid "Optimize for Keyword"
475
  msgstr "Schlüsselwort optimieren"
476
 
477
  # @ squirrly-seo
478
- #: themes/default/SQ_Blocksearch.php:10
479
  msgid "Enter a keyword"
480
  msgstr "Ein Schlüsselwort eingeben"
481
 
482
  # @ squirrly-seo
483
- #: themes/default/SQ_Blocksearch.php:10
484
  msgid "for Squirrly Live SEO optimization"
485
  msgstr "Live-SEO-Optimierung für Squirrly"
486
 
487
  # @ squirrly-seo
488
- #: themes/default/SQ_Blocksearch.php:22
489
  msgid "Do a research"
490
  msgstr "Recherchieren"
491
 
492
  # @ squirrly-seo
493
- #: themes/default/SQ_Blocksearch.php:27
494
  msgid "Enter a keyword above!"
495
  msgstr "Geben Sie oben ein Schlüsselwort ein!"
496
 
497
  # @ squirrly-seo
498
- #: themes/default/SQ_Blocksearch.php:28
499
  msgid "I have more then one keyword!"
500
  msgstr "Ich habe mehr als ein Schlüsselwort!"
501
 
502
  # @ squirrly-seo
503
- #: themes/default/SQ_Blocksearch.php:34
504
  msgid "Images"
505
  msgstr "Bilder"
506
 
507
  # @ squirrly-seo
508
- #: themes/default/SQ_Blocksearch.php:35
509
  msgid "Twitter"
510
  msgstr "Twitter"
511
 
512
  # @ squirrly-seo
513
- #: themes/default/SQ_Blocksearch.php:36
514
  msgid "Wiki"
515
  msgstr "Wiki"
516
 
517
  # @ squirrly-seo
518
- #: themes/default/SQ_Blocksearch.php:37
519
  msgid "News"
520
  msgstr "News"
521
 
522
  # @ squirrly-seo
523
- #: themes/default/SQ_Blocksearch.php:38
524
  msgid "Blogs"
525
  msgstr "Blogs"
526
 
527
  # @ squirrly-seo
528
- #: themes/default/SQ_Blocksearch.php:39
529
  msgid "My articles"
530
  msgstr "Meine Artikel"
531
 
532
  # @ squirrly-seo
533
- #: themes/default/SQ_Blocksearch.php:44
534
  msgid "Show only Copyright Free images"
535
  msgstr "Nur urheberrechtfreie Bilder zeigen"
536
 
537
- # @ squirrly-seo
538
  #: themes/default/SQ_Blockseo.php:3
539
- msgid "Squirrly LIVE SEO assistant"
540
- msgstr "Squirrly LIVE SEO-Assistent"
541
-
542
- # @ squirrly-seo
543
- #: themes/default/SQ_Menu.php:5
544
- msgid ""
545
- "With Squirrly SEO, your Wordpress will get Perfect SEO on each article you "
546
- "write."
547
  msgstr ""
548
- "Mit Squirrly SEO wird jeder Ihrer Wordpress Artikel eine perfekte "
549
- "Suchmaschinenoptimierung erhalten. "
550
-
551
- # @ squirrly-seo
552
- #: themes/default/SQ_Menu.php:7
553
- msgid "SEO Software"
554
- msgstr "SEO Software"
555
 
556
- # @ squirrly-seo
557
- #: themes/default/SQ_Menu.php:7
558
- msgid ""
559
- "delivered as a plugin for Wordpress. <br /><br />We connect your wordpress "
560
- "with Squirrly, so that we can find the best SEO opportunities, give you "
561
- "reports and analyse your competitors."
562
  msgstr ""
563
- "geliefert als Plugin für Wordpress. <br /> <br /> Wir verbinden Ihr "
564
- "Wordpress mit Squirrly, so dass wir die besten SEO-Möglichkeiten finden, "
565
- "erstatten Ihnen Bericht und analysieren Ihre Konkurrenz."
566
-
567
- # @ squirrly-seo
568
- #: themes/default/SQ_Menu.php:9
569
- msgid "Write a new post with Squirrly"
570
- msgstr "Schreiben Sie einen neuen Beitrag mit Squirrly"
571
-
572
- # @ squirrly-seo
573
- #: themes/default/SQ_Menu.php:23
574
- msgid "Squirrly settings"
575
- msgstr "Squirrly Einstellungen"
576
-
577
- # @ squirrly-seo
578
- #: themes/default/SQ_Menu.php:23 themes/default/SQ_Menu.php:170
579
- msgid "Save settings"
580
- msgstr "Einstellungen speichern"
581
-
582
- #: themes/default/SQ_Menu.php:29
583
- msgid " API"
584
- msgstr " API"
585
-
586
- # @ squirrly-seo
587
- #: themes/default/SQ_Menu.php:32
588
- msgid "API Key:"
589
- msgstr "API Key:"
590
-
591
- # @ squirrly-seo
592
- #: themes/default/SQ_Menu.php:38
593
- msgid "Let Squirrly automatically optimize my blog"
594
- msgstr "Lassen Sie Squirrly automatisch Ihren Blog optimieren"
595
-
596
- # @ squirrly-seo
597
- #: themes/default/SQ_Menu.php:41 themes/default/SQ_Menu.php:63
598
- #: themes/default/SQ_Menu.php:76 themes/default/SQ_Menu.php:85
599
- msgid "Yes"
600
- msgstr "Ja"
601
-
602
- # @ squirrly-seo
603
- #: themes/default/SQ_Menu.php:42 themes/default/SQ_Menu.php:64
604
- #: themes/default/SQ_Menu.php:77 themes/default/SQ_Menu.php:86
605
- msgid "No"
606
- msgstr "Nein"
607
-
608
- # @ squirrly-seo
609
- #: themes/default/SQ_Menu.php:46
610
- msgid "What does Squirrly automatically do for SEO?"
611
- msgstr "Was tut Squirrly automatisch für SEO?"
612
-
613
- # @ squirrly-seo
614
- #: themes/default/SQ_Menu.php:47
615
- msgid "adds the correct <strong>title</strong> in the home page"
616
- msgstr "fügt den richtigen <strong>Titel</strong> in die Startseite ein"
617
 
618
- # @ squirrly-seo
619
- #: themes/default/SQ_Menu.php:48
620
- msgid ""
621
- "adds the correct <strong>description</strong> and <strong>keywords</strong> "
622
- "in all pages"
623
  msgstr ""
624
- "fügt die richtige <strong>Beschreibung</strong> und <strong>Schlüsselwörter</"
625
- "strong> auf allen Seiten ein"
626
 
627
  # @ squirrly-seo
628
- #: themes/default/SQ_Menu.php:49
629
- msgid "adds <strong>canonical</strong> link in home page"
630
- msgstr "fügt den richtigen <strong>canonical</strong> in die Startseite ein"
631
 
632
  # @ squirrly-seo
633
- #: themes/default/SQ_Menu.php:50
634
- msgid "adds the <strong>XML Sitemap</strong> for search engines"
635
- msgstr "fügt die <strong>XML Sitemap</strong> für Suchmaschinen ein"
636
 
637
  # @ squirrly-seo
638
- #: themes/default/SQ_Menu.php:51
639
- msgid ""
640
- "adds the required METAs for home page (<strong>icon, author, language, dc "
641
- "publisher</strong>, etc.)"
642
- msgstr ""
643
- "fügt die erforderlichen METAs für die Startseite (<strong> icon, Autor, "
644
- "Sprache, dc Verlag </strong>, etc.) ein"
645
 
646
  # @ squirrly-seo
647
- #: themes/default/SQ_Menu.php:52
648
- msgid ""
649
- "adds the <strong>favicon</strong> and the <strong>icon for Apple devices</"
650
- "strong>."
651
- msgstr ""
652
- "fügt das <strong>favicon</strong> und die <strong>icon für Apple-Geräte</"
653
- "strong> ein."
654
 
655
  # @ squirrly-seo
656
- #: themes/default/SQ_Menu.php:60
657
- msgid "Let Squirrly warn me if there are errors related to SEO settings"
658
- msgstr ""
659
- "Squirrly warnen lassen, wenn es Fehler im Zusammenhang mit den SEO-"
660
- "Einstellungen gibt"
661
 
662
  # @ squirrly-seo
663
- #: themes/default/SQ_Menu.php:70
664
- msgid "Squirrly Options"
665
- msgstr "Squirrly Optionen"
666
 
667
  # @ squirrly-seo
668
- #: themes/default/SQ_Menu.php:73
669
- msgid ""
670
- "Show <strong>\"Enter a keyword\"</strong> bubble when posting a new article."
671
- msgstr ""
672
- "Zeige <strong>\"Enter a keyword\"</ strong> Bubble, bei einem neuen Artikel."
673
-
674
- #: themes/default/SQ_Menu.php:82
675
- msgid ""
676
- "Always show <strong>Keyword Informations</strong> about the selected keyword."
677
- msgstr ""
678
- "Always show <strong>Keyword Informations</strong> about the selected keyword."
679
 
680
  # @ squirrly-seo
681
- #: themes/default/SQ_Menu.php:92
682
- msgid "First page optimization (Title, Description, Keywords)"
683
- msgstr " Optimierung der ersten Seite (Titel, Beschreibung, Schlüsselwörter)"
684
 
685
  # @ squirrly-seo
686
- #: themes/default/SQ_Menu.php:93
687
- msgid "Status:"
688
- msgstr "Status:"
689
 
690
  # @ squirrly-seo
691
- #: themes/default/SQ_Menu.php:93
692
- msgid "automatically"
693
- msgstr "automatisch"
694
 
695
  # @ squirrly-seo
696
- #: themes/default/SQ_Menu.php:94
697
- msgid "Change it >>"
698
- msgstr "Ändern >>"
699
 
700
  # @ squirrly-seo
701
- #: themes/default/SQ_Menu.php:97
702
- msgid "Title:"
703
- msgstr "Titel:"
 
 
 
704
 
705
  # @ squirrly-seo
706
- #: themes/default/SQ_Menu.php:98
707
- msgid "Tips: Length 10-70 chars"
708
- msgstr "Tipp: Länge 10-70 Charaktere"
709
 
710
  # @ squirrly-seo
711
- #: themes/default/SQ_Menu.php:101
712
- msgid "Description:"
713
- msgstr "Beschreibung:"
 
 
 
 
 
714
 
715
  # @ squirrly-seo
716
- #: themes/default/SQ_Menu.php:102
717
- msgid "Tips: Length 70-255 chars"
718
- msgstr "Tipp: Länge 70-255 Charaktere"
719
 
720
  # @ squirrly-seo
721
- #: themes/default/SQ_Menu.php:105
722
- msgid "Keywords:"
723
- msgstr "Schlüsselwörter:"
724
 
725
- # @ squirrly-seo
726
- #: themes/default/SQ_Menu.php:106
727
- msgid "Tips: 2-4 keywords"
728
- msgstr "Tipp: Länge 2-4 Schlüsselwörter"
729
 
730
  # @ squirrly-seo
731
- #: themes/default/SQ_Menu.php:110
732
- msgid "<< Leave it automatically"
733
- msgstr "<< Lass es automatisch"
734
 
735
  # @ squirrly-seo
736
- #: themes/default/SQ_Menu.php:122
737
- msgid "Change the Website Icon"
738
- msgstr "Ändern Sie das Website-Symbol"
739
 
740
  # @ squirrly-seo
741
- #: themes/default/SQ_Menu.php:125
742
- msgid "File types: JPG, JPEG, GIF and PNG."
743
- msgstr "Dateitypen: JPG, JPEG, GIF und PNG."
744
 
745
  # @ squirrly-seo
746
- #: themes/default/SQ_Menu.php:128
747
- msgid "Upload file:"
748
- msgstr "Datei hochladen:"
 
 
 
749
 
750
  # @ squirrly-seo
751
- #: themes/default/SQ_Menu.php:133
752
- msgid "Upload"
753
- msgstr "Hochladen"
754
 
755
  # @ squirrly-seo
756
- #: themes/default/SQ_Menu.php:137
757
- msgid ""
758
- "If you don't see the new icon in your browser, empty the browser cache and "
759
- "refresh the page."
760
- msgstr ""
761
- "Wenn Sie das neue Icon nicht in Ihrem Browser sehen, leeren Sie den Browser-"
762
- "Cache und aktualisieren Sie die Seite."
763
 
764
  # @ squirrly-seo
765
- #: themes/default/SQ_Menu.php:141
766
- msgid "Tool for Search Engines"
767
- msgstr "Tool für Suchmaschinen"
 
 
 
768
 
769
  # @ squirrly-seo
770
- #: themes/default/SQ_Menu.php:145
771
- msgid "Google Plus URL:"
772
- msgstr "Google Plus URL:"
 
 
 
773
 
774
  # @ squirrly-seo
775
- #: themes/default/SQ_Menu.php:149
776
- #, php-format
777
- msgid "Google META verification code for %sWebmaster Tool%s`:"
778
- msgstr "Google META Bestätigungs-Code für %sWebmaster Tool%s`:"
779
 
780
  # @ squirrly-seo
781
- #: themes/default/SQ_Menu.php:153
782
- #, php-format
783
- msgid "Google %sAnalytics ID%s`:"
784
- msgstr "Google %sAnalytics ID%s`:"
785
 
786
  # @ squirrly-seo
787
- #: themes/default/SQ_Menu.php:157
788
- #, php-format
789
- msgid "Facebook META code (for %sInsights%s )`:"
790
- msgstr "Facebook META Code (für %sInsights%s )`:"
 
 
 
 
 
 
 
 
 
791
 
792
  # @ squirrly-seo
793
- #: themes/default/SQ_Menu.php:161
794
- #, php-format
795
- msgid "Bing META code (for %sWebmaster Tool%s )`:"
796
- msgstr "Bing META Code (für %sWebmaster Tool%s )`:"
797
 
798
  # @ squirrly-seo
799
- #: themes/default/SQ_Post.php:5
800
- msgid "How was your Squirrly experience today?"
801
- msgstr "Wie war Ihre Squirrly Erfahrung heute?"
802
 
803
  # @ squirrly-seo
804
- #: themes/default/SQ_Post.php:12
805
- msgid "How was Squirrly today?"
806
- msgstr "Wie war Squirrly heute?"
807
 
808
  # @ squirrly-seo
809
- #: themes/default/SQ_Post.php:25
810
- msgid "Please tell us why?"
811
- msgstr "Bitte sagen Sie uns, warum?"
812
 
813
  # @ squirrly-seo
814
- #: themes/default/SQ_Post.php:28
815
- msgid "Send feedback"
816
- msgstr "Feedback senden"
817
 
818
  # @ squirrly-seo
819
- #: themes/default/SQ_Post.php:32 themes/default/SQ_Post.php:53
820
- msgid "Go to:"
821
- msgstr "Gehe zu:"
822
 
823
  # @ squirrly-seo
824
- #: themes/default/SQ_Post.php:32 themes/default/SQ_Post.php:53
825
- msgid "support page"
826
- msgstr "Support Page"
827
 
828
  # @ squirrly-seo
829
- #: themes/default/SQ_Post.php:37
830
- msgid "Thank you! You can send us a happy face tomorow too."
831
- msgstr "Danke! Sie können uns auch morgen ein fröhliches Gesicht senden."
832
 
833
  # @ squirrly-seo
834
- #: themes/default/SQ_Post.php:43
835
- msgid "Support"
836
- msgstr "Support"
837
 
838
  # @ squirrly-seo
839
- #: themes/default/SQ_Post.php:46
840
- msgid "Need Help with Squirrly SEO?"
841
- msgstr "Brauchen Sie Hilfe mit Squirrly SEO?"
842
 
843
  # @ squirrly-seo
844
- #: themes/default/SQ_Post.php:50
845
- msgid "Send Question"
846
- msgstr "Senden Sie Ihre Frage"
847
 
848
  # @ squirrly-seo
849
- #: themes/default/SQ_Post.php:58
850
- msgid "Go to Profile"
851
- msgstr "Zum Profil"
852
 
853
  # @ squirrly-seo
854
- #: themes/default/SQ_Post.php:58
855
- msgid "Profile"
856
- msgstr "Profil"
2
  msgstr ""
3
  "Project-Id-Version: Squirrly SEO Plugin v1.0.8\n"
4
  "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: 2016-06-09 12:01+0300\n"
6
+ "PO-Revision-Date: 2016-06-09 12:01+0300\n"
7
  "Last-Translator: Squirrly <contact@squirrly.co>\n"
8
  "Language-Team: \n"
9
  "Language: de_DE\n"
14
  "X-Poedit-SourceCharset: utf-8\n"
15
  "X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;"
16
  "_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n"
17
+ "X-Poedit-Basepath: ..\n"
18
  "X-Textdomain-Support: yes\n"
19
+ "X-Generator: Poedit 1.8.8\n"
20
  "X-Poedit-SearchPath-0: .\n"
21
 
22
  # @ squirrly-seo
23
+ #: classes/SQ_Error.php:16
 
 
 
 
 
 
 
 
24
  msgid ""
25
  "Function get_class does not exists! Is required for Squirrly to work "
26
  "properly."
29
  "richtig zu arbeiten."
30
 
31
  # @ squirrly-seo
32
+ #: classes/SQ_Error.php:19
33
  msgid ""
34
  "Function file_exists does not exists! Is required for Squirrly to work "
35
  "properly."
38
  "richtig zu arbeiten."
39
 
40
  # @ squirrly-seo
41
+ #: classes/SQ_Error.php:23
42
  msgid "The home directory is not set!"
43
  msgstr "Das Home-Verzeichnis wurde nicht gesetzt!"
44
 
45
  # @ squirrly-seo
46
+ #: classes/SQ_Error.php:27
47
  msgid "The PHP version has to be greater then 4.0"
48
  msgstr "Die PHP-Version muß größer als 4.0 sein"
49
 
50
  # @ squirrly-seo
51
+ #: classes/SQ_Error.php:59
52
  msgid "Turn off warnings!"
53
  msgstr "Warnungen ausschalten!"
54
 
55
+ #: classes/SQ_Error.php:67
56
+ msgid "Don't bother me!"
57
+ msgstr ""
 
58
 
59
+ #: classes/SQ_Tools.php:62
60
+ msgid "Getting started"
61
+ msgstr ""
 
62
 
63
  # @ squirrly-seo
64
+ #: classes/SQ_Tools.php:589
65
  msgid "Fix it for me!"
66
  msgstr "Beheben Sie es für mich!"
67
 
68
+ #: classes/SQ_Tools.php:595
69
+ msgid "Activate the Squirrly SEO for your blog (recommended)"
70
+ msgstr ""
71
+
72
+ #: classes/SQ_Tools.php:606
73
+ msgid ""
74
+ "You have META Title Duplicates. Disable the Squirrly Title Optimization or "
75
+ "disable the other SEO Plugins"
76
+ msgstr ""
77
+
78
+ #: classes/SQ_Tools.php:614
79
+ msgid ""
80
+ "You have META Description Duplicates. Disable the Squirrly Description "
81
+ "Optimization or disable the other SEO Plugins"
82
+ msgstr ""
83
+
84
+ #: classes/SQ_Tools.php:622
85
+ msgid ""
86
+ "You have Open Graph META Duplicates. Disable the Squirrly SEO Open Graph or "
87
+ "disable the other SEO Plugins"
88
+ msgstr ""
89
+
90
+ #: classes/SQ_Tools.php:630
91
+ msgid ""
92
+ "You have Twitter Card META Duplicates. Disable the Squirrly SEO Twitter Card "
93
+ "or disable the other SEO Plugins"
94
+ msgstr ""
95
 
96
  # @ squirrly-seo
97
+ #: classes/SQ_Tools.php:639
98
  msgid "You're blocking google from indexing your site!"
99
  msgstr "Sie blockieren Google zum Indizieren Ihrer Website!"
100
 
101
+ #: classes/SQ_Tools.php:646
 
102
  msgid ""
103
  "It is highly recommended that you include the %postname% variable in the "
104
+ "permalink structure. <br />Go to Settings > Permalinks and add /%postname%/ "
105
+ "in Custom Structure"
106
  msgstr ""
 
 
107
 
108
+ #: classes/SQ_Tools.php:652
109
+ msgid "Great! We didn't find any issue in your site."
110
+ msgstr ""
111
+
112
+ #: controllers/SQ_Menu.php:58
113
+ msgid "See Your Rank on Google"
114
+ msgstr ""
115
+
116
+ #: controllers/SQ_Menu.php:87
117
+ msgid ""
118
+ "Check out the Squirrly Analytics section. <a href=\"admin.php?page=sq_posts"
119
+ "\" title=\"Squirrly Analytics\">Click here</a>"
120
+ msgstr ""
121
+
122
+ #: controllers/SQ_Menu.php:107
123
+ msgid " dashboard"
124
+ msgstr ""
125
+
126
+ #: controllers/SQ_Menu.php:108
127
+ msgid "First Step"
128
+ msgstr ""
129
+
130
+ #: controllers/SQ_Menu.php:108
131
+ msgid "Dashboard"
132
+ msgstr ""
133
+
134
+ #: controllers/SQ_Menu.php:115
135
+ msgid " post list"
136
+ msgstr ""
137
+
138
+ #: controllers/SQ_Menu.php:116
139
+ msgid "Performance <br />Analytics"
140
+ msgstr ""
141
+
142
+ #: controllers/SQ_Menu.php:125
143
+ msgid " settings"
144
+ msgstr ""
145
+
146
+ #: controllers/SQ_Menu.php:126 themes/default/SQ_BlockSettingsSeo.php:5
147
+ msgid "SEO"
148
+ msgstr ""
149
+
150
+ #: controllers/SQ_Menu.php:133
151
+ msgid " Settings"
152
+ msgstr ""
153
+
154
+ #: controllers/SQ_Menu.php:134 themes/default/SQ_BlockSettings.php:5
155
+ msgid "Settings"
156
+ msgstr ""
157
+
158
+ #: controllers/SQ_Menu.php:141
159
+ msgid " account info"
160
+ msgstr ""
161
+
162
+ #: controllers/SQ_Menu.php:142
163
+ msgid "Account Info"
164
+ msgstr ""
165
+
166
+ #: controllers/SQ_Menu.php:150
167
+ msgid "Become an Affiliate with "
168
+ msgstr ""
169
+
170
+ #: controllers/SQ_Menu.php:151
171
+ msgid "Affiliate plan"
172
+ msgstr ""
173
+
174
+ #: controllers/SQ_PostsList.php:95
175
+ msgid "Squirrly"
176
+ msgstr ""
177
+
178
+ #: controllers/SQ_PostsList.php:130
179
+ msgid "Custom description: "
180
+ msgstr ""
181
+
182
+ #: controllers/SQ_PostsList.php:130
183
+ msgid "Custom title: "
184
+ msgstr ""
185
+
186
+ #: controllers/SQ_PostsList.php:166
187
+ msgid "SEO Analytics, by Squirrly"
188
+ msgstr ""
189
+
190
+ #: controllers/SQ_PostsList.php:167 core/SQ_Blockseo/SQ_Blockseo.php:25
191
+ msgid "Update"
192
+ msgstr ""
193
+
194
+ #: controllers/SQ_PostsList.php:171
195
+ msgid "Not Public"
196
+ msgstr ""
197
+
198
+ #: controllers/SQ_PostsList.php:172
199
+ msgid "Could not process"
200
+ msgstr ""
201
+
202
+ #: controllers/SQ_PostsList.php:319 controllers/SQ_PostsList.php:333
203
+ #: models/SQ_BlockPostsAnalytics.php:399
204
+ msgid "Could not receive data from google (Err: blocked IP)"
205
+ msgstr ""
206
+
207
+ #: controllers/SQ_PostsList.php:321 models/SQ_BlockPostsAnalytics.php:401
208
+ msgid "> 100"
209
+ msgstr ""
210
+
211
+ #: controllers/SQ_PostsList.php:323 models/SQ_BlockPostsAnalytics.php:403
212
+ msgid "URL Indexed"
213
+ msgstr ""
214
+
215
+ #: controllers/SQ_PostsList.php:325 models/SQ_BlockPostsAnalytics.php:405
216
+ #, php-format
217
+ msgid "%s"
218
+ msgstr ""
219
+
220
+ #: core/SQ_BlockAffiliate/SQ_BlockAffiliate.php:38
221
+ #, php-format
222
+ msgid "Error: %s"
223
+ msgstr ""
224
+
225
+ #: core/SQ_BlockAffiliate/SQ_BlockAffiliate.php:41
226
+ msgid "An error occured. Mabe a network error :("
227
+ msgstr ""
228
+
229
+ #: core/SQ_BlockSettingsSeo/SQ_BlockSettingsSeo.php:13
230
+ #: core/SQ_Blockseo/SQ_Blockseo.php:21
231
+ msgid "Too short"
232
+ msgstr ""
233
+
234
+ #: core/SQ_BlockSettingsSeo/SQ_BlockSettingsSeo.php:14
235
+ #: core/SQ_Blockseo/SQ_Blockseo.php:22
236
+ msgid "Too long"
237
+ msgstr ""
238
+
239
+ #: core/SQ_BlockSettingsSeo/SQ_BlockSettingsSeo.php:266
240
+ msgid "Great! The backup is restored."
241
+ msgstr ""
242
+
243
+ #: core/SQ_BlockSettingsSeo/SQ_BlockSettingsSeo.php:268
244
+ #: core/SQ_BlockSettingsSeo/SQ_BlockSettingsSeo.php:271
245
+ msgid "Error! The backup is not valid."
246
+ msgstr ""
247
+
248
+ #: core/SQ_BlockSettingsSeo/SQ_BlockSettingsSeo.php:274
249
+ msgid "Error! You have to enter a previous saved backup file."
250
+ msgstr ""
251
 
252
  # @ squirrly-seo
253
+ #: core/SQ_BlockSupport/SQ_BlockSupport.php:22
254
  msgid "Plugin Feedback"
255
  msgstr "Plugin Feedback"
256
 
257
  # @ squirrly-seo
258
+ #: core/SQ_BlockSupport/SQ_BlockSupport.php:58
259
  msgid "Thank you for your feedback"
260
  msgstr "Vielen Dank für Ihre Feedback"
261
 
262
  # @ squirrly-seo
263
+ #: core/SQ_BlockSupport/SQ_BlockSupport.php:61
264
+ #: core/SQ_BlockSupport/SQ_BlockSupport.php:99
265
  msgid "Could not send the email..."
266
  msgstr "Konnte E-Mail nicht senden ..."
267
 
268
  # @ squirrly-seo
269
+ #: core/SQ_BlockSupport/SQ_BlockSupport.php:65
270
+ #: core/SQ_BlockSupport/SQ_BlockSupport.php:103
271
  msgid "No message."
272
  msgstr "Keine Nachricht."
273
 
274
  # @ squirrly-seo
275
+ #: core/SQ_BlockSupport/SQ_BlockSupport.php:85
276
  msgid "Plugin Support"
277
  msgstr "Plugin Support"
278
 
279
+ #: core/SQ_BlockSupport/SQ_BlockSupport.php:96
280
+ msgid "Message sent. Thank you!"
281
+ msgstr ""
 
282
 
283
  # @ squirrly-seo
284
+ #: core/SQ_Blocklogin/SQ_Blocklogin.php:81
285
  #, php-format
286
  msgid ""
287
  "We found your email, so it means you already have a Squirrly.co account. "
292
  "Sie sich mit Ihrer Squirrly-ID ein. Falls Sie Ihr Passwort vergessen haben, "
293
  "klicken Sie %shier%s"
294
 
295
+ #: core/SQ_Blocklogin/SQ_Blocklogin.php:86
296
+ msgid ""
297
+ "Error: Couldn't connect to host :( . Please contact your site's webhost (or "
298
+ "webmaster) and request them to add http://api.squirrly.co/ to their IP "
299
+ "whitelist."
300
+ msgstr ""
301
 
302
  # @ squirrly-seo
303
+ #: core/SQ_Blocklogin/SQ_Blocklogin.php:89
304
  #, php-format
305
  msgid ""
306
  "Could not send your informations to squirrly. Please register %smanually%s."
309
  "%smanually%s."
310
 
311
  # @ squirrly-seo
312
+ #: core/SQ_Blocklogin/SQ_Blocklogin.php:129
313
  msgid "Wrong email or password!"
314
  msgstr "Benutzername oder Passwort falsch!"
315
 
316
  # @ squirrly-seo
317
+ #: core/SQ_Blocklogin/SQ_Blocklogin.php:132
318
  msgid "You can use this account only for the URL you registered first!"
319
  msgstr ""
320
  "Dieses Konto können Sie nur für die URL benutzen, die Sie zuerst registriert "
321
  "haben!"
322
 
323
  # @ squirrly-seo
324
+ #: core/SQ_Blocklogin/SQ_Blocklogin.php:137
325
+ msgid "An error occured."
326
+ msgstr "Ein Fehler ist aufgetreten."
327
+
328
+ # @ squirrly-seo
329
+ #: core/SQ_Blocklogin/SQ_Blocklogin.php:139
330
  msgid "Both fields are required."
331
  msgstr "Beide Felder sind Pflichtfelder."
332
 
333
+ #: core/SQ_Blockresearch/SQ_Blockresearch.php:13
334
  msgid "Recent discussions:"
335
  msgstr "Bisherige Diskussionen:"
336
 
337
  # @ squirrly-seo
338
+ #: core/SQ_Blockresearch/SQ_Blockresearch.php:13
339
  msgid "Exact search:"
340
  msgstr "Exakte Suche:"
341
 
342
  # @ squirrly-seo
343
+ #: core/SQ_Blockresearch/SQ_Blockresearch.php:13
344
  msgid "Competition:"
345
  msgstr "Wettbewerb:"
346
 
347
  # @ squirrly-seo
348
+ #: core/SQ_Blockresearch/SQ_Blockresearch.php:13
349
  msgid "Trend:"
350
  msgstr "Trend:"
351
 
374
  msgid "Insert as box"
375
  msgstr "Als Box einfügen"
376
 
377
+ # @ squirrly-seo
378
+ #: core/SQ_Blocksearch/SQ_Blocksearch.php:50
379
+ msgid "Not relevant?"
380
+ msgstr "Nicht relevant?"
381
+
382
+ # @ squirrly-seo
383
+ #: core/SQ_Blocksearch/SQ_Blocksearch.php:50
384
+ msgid "Insert in your article"
385
+ msgstr "In Artikel einfügen"
386
+
387
+ # @ squirrly-seo
388
+ #: core/SQ_Blocksearch/SQ_Blocksearch.php:50
389
+ msgid "For Squirrly to work, you have to have tinymce editor installed!"
390
+ msgstr "Damit Squirrly arbeitet, muss tinymce installiert sein!"
391
+
392
+ # @ squirrly-seo
393
+ #: core/SQ_Blocksearch/SQ_Blocksearch.php:50
394
+ msgid ":( I lost my squirrel. Please reload the page."
395
+ msgstr ":( Ich verlor meine Eichhörnchen. Laden Sie die Seite erneut."
396
+
397
+ # @ squirrly-seo
398
+ #: core/SQ_Blocksearch/SQ_Blocksearch.php:50
399
+ msgid "No results found!"
400
+ msgstr "Keine Ergebnisse gefunden!"
401
+
402
+ # @ squirrly-seo
403
+ #: core/SQ_Blocksearch/SQ_Blocksearch.php:50
404
+ msgid "Switch to Visual editor!"
405
+ msgstr "Zum Visual Editor wechseln !"
406
+
407
+ #: core/SQ_Blocksearch/SQ_Blocksearch.php:50
408
+ msgid "Enter one more word to find relevant results"
409
+ msgstr ""
410
+
411
+ # @ squirrly-seo
412
+ #: core/SQ_Blocksearch/SQ_Blocksearch.php:50
413
+ msgid "Takes too long to check this keyword ..."
414
+ msgstr "Dauert zu lange, um dieses Schlüsselwort zu überprüfen ..."
415
+
416
+ # @ squirrly-seo
417
+ #: core/SQ_Blocksearch/SQ_Blocksearch.php:50
418
+ msgid "Do a research!"
419
+ msgstr "Erweiterte Suche!"
420
+
421
+ # @ squirrly-seo
422
+ #: core/SQ_Blocksearch/SQ_Blocksearch.php:50
423
+ msgid "Do more research!"
424
+ msgstr "Erweiterte Suche!"
425
+
426
+ #: core/SQ_Blocksearch/SQ_Blocksearch.php:50
427
+ #, php-format
428
+ msgid "[ ATTRIBUTE: Please check: %s to find out how to attribute this image ]"
429
+ msgstr ""
430
+
431
+ #: core/SQ_Blocksearch/SQ_Blocksearch.php:50
432
+ msgid "Has creative commons attributes"
433
+ msgstr ""
434
+
435
+ #: core/SQ_Blocksearch/SQ_Blocksearch.php:50
436
+ msgid "No known copyright restrictions"
437
+ msgstr ""
438
+
439
+ #: core/SQ_Blockseo/SQ_Blockseo.php:15
440
+ msgid "Save changes"
441
+ msgstr ""
442
+
443
+ #: core/SQ_Blockseo/SQ_Blockseo.php:16
444
+ msgid "Cancel"
445
+ msgstr ""
446
+
447
+ #: core/SQ_Blockseo/SQ_Blockseo.php:17
448
+ msgid "Reset"
449
+ msgstr ""
450
+
451
+ #: core/SQ_Blockseo/SQ_Blockseo.php:19
452
+ msgid "Customize Meta"
453
+ msgstr ""
454
+
455
+ #: core/SQ_Blockseo/SQ_Blockseo.php:20
456
+ msgid "manage keywords"
457
+ msgstr ""
458
+
459
+ #: core/SQ_Blockseo/SQ_Blockseo.php:24
460
+ #: themes/default/SQ_BlockSettingsSeo.php:227
461
+ msgid "Squirrly Snippet"
462
+ msgstr ""
463
+
464
+ #: core/SQ_Blockseo/SQ_Blockseo.php:26
465
+ msgid "snippet"
466
+ msgstr ""
467
+
468
+ #: core/SQ_Blockseo/SQ_Blockseo.php:28
469
+ msgid ""
470
+ "Click the Update button (to the right) to see the snippet from your website."
471
+ msgstr ""
472
+
473
+ #: core/SQ_Blockseo/SQ_Blockseo.php:29
474
+ msgid "Enter a title above for the snippet to get data."
475
+ msgstr ""
476
+
477
+ # @ squirrly-seo
478
+ #: core/SQ_Loading/SQ_Loading.php:21
479
+ msgid ""
480
+ "For Squirrly to work properly you have to use a higher version of Internet "
481
+ "Explorer. <br /> We recommend you to use Chrome or Mozilla."
482
+ msgstr ""
483
+ "Damit Squirrly ordnungsgemäß funktioniert, müssen Sie eine höhere Version "
484
+ "von Internet Explorer verwenden. <br /> Wir empfehlen, Chrome oder Mozilla."
485
+
486
+ #: core/SQ_Loading/SQ_Loading.php:36
487
+ msgid ""
488
+ "You haven`t used Squirrly SEO to optimize your article. Do you want to "
489
+ "optimize for a keyword before publishing?"
490
+ msgstr ""
491
+ "You haven`t used Squirrly SEO to optimize your article. Do you want to "
492
+ "optimize for a keyword before publishing?"
493
+
494
+ #: models/SQ_BlockPostsAnalytics.php:275
495
+ msgctxt "column name"
496
+ msgid "Title"
497
+ msgstr ""
498
+
499
+ #: models/SQ_BlockPostsAnalytics.php:277
500
+ msgid "Type"
501
+ msgstr ""
502
+
503
+ #: models/SQ_BlockPostsAnalytics.php:280
504
+ msgid "Author"
505
+ msgstr ""
506
+
507
+ #: models/SQ_BlockPostsAnalytics.php:283
508
+ msgid "Keywords"
509
+ msgstr ""
510
+
511
+ #: models/SQ_BlockPostsAnalytics.php:285
512
+ #, php-format
513
+ msgid "Google.%s Position"
514
+ msgstr ""
515
+
516
+ #: models/SQ_BlockPostsAnalytics.php:287
517
+ msgid "Date"
518
+ msgstr ""
519
+
520
+ #: models/SQ_BlockPostsAnalytics.php:300
521
+ msgid "Reset Filters"
522
+ msgstr ""
523
+
524
+ #: models/SQ_BlockPostsAnalytics.php:359
525
+ #, php-format
526
+ msgid "Edit &#8220;%s&#8221;"
527
+ msgstr ""
528
+
529
+ #: models/SQ_BlockPostsAnalytics.php:362
530
+ msgid "Edit this item"
531
+ msgstr ""
532
+
533
+ #: models/SQ_BlockPostsAnalytics.php:362
534
+ msgid "Edit"
535
+ msgstr ""
536
+
537
+ #: models/SQ_BlockPostsAnalytics.php:367
538
+ #, php-format
539
+ msgid "Preview &#8220;%s&#8221;"
540
+ msgstr ""
541
+
542
+ #: models/SQ_BlockPostsAnalytics.php:367
543
+ msgid "Preview"
544
+ msgstr ""
545
+
546
+ #: models/SQ_BlockPostsAnalytics.php:369
547
+ #, php-format
548
+ msgid "View &#8220;%s&#8221;"
549
+ msgstr ""
550
+
551
+ #: models/SQ_BlockPostsAnalytics.php:369
552
+ msgid "View"
553
+ msgstr ""
554
+
555
+ #: models/SQ_BlockPostsAnalytics.php:391
556
+ msgid "No Tags"
557
+ msgstr ""
558
+
559
+ #: models/SQ_BlockPostsAnalytics.php:407
560
+ msgid "Force recheck"
561
+ msgstr ""
562
+
563
+ #: models/SQ_BlockPostsAnalytics.php:409
564
+ msgid "Not yet verified"
565
+ msgstr ""
566
+
567
+ #: models/SQ_BlockPostsAnalytics.php:409
568
+ msgid "Check now"
569
+ msgstr ""
570
+
571
+ #: models/SQ_BlockPostsAnalytics.php:422
572
+ msgid "Unpublished"
573
+ msgstr ""
574
+
575
+ #: models/SQ_BlockPostsAnalytics.php:431
576
+ #, php-format
577
+ msgid "%s ago"
578
+ msgstr ""
579
+
580
+ #: models/SQ_BlockPostsAnalytics.php:433
581
+ msgid "Y/m/d"
582
+ msgstr ""
583
+
584
+ #: models/SQ_BlockPostsAnalytics.php:438
585
+ msgid "Published"
586
+ msgstr ""
587
+
588
+ #: models/SQ_BlockPostsAnalytics.php:441
589
+ msgid "Missed schedule"
590
+ msgstr ""
591
+
592
+ #: models/SQ_BlockPostsAnalytics.php:443
593
+ msgid "Scheduled"
594
+ msgstr ""
595
+
596
+ #: models/SQ_BlockPostsAnalytics.php:445
597
+ msgid "Last Modified"
598
+ msgstr ""
599
+
600
+ # @ squirrly-seo
601
+ #: models/SQ_BlockSettingsSeo.php:57
602
+ msgid "The code for Google Webmaster Tool is incorrect."
603
+ msgstr "Der Code für Google Webmaster Tool ist falsch."
604
+
605
+ # @ squirrly-seo
606
+ #: models/SQ_BlockSettingsSeo.php:83
607
+ msgid "The code for Google Analytics is incorrect."
608
+ msgstr "Der Code für Google Analytics ist falsch."
609
+
610
+ # @ squirrly-seo
611
+ #: models/SQ_BlockSettingsSeo.php:134
612
+ msgid "The code for Facebook is incorrect."
613
+ msgstr "Der Code für Facebook ist falsch."
614
+
615
+ #: models/SQ_BlockSettingsSeo.php:158
616
+ msgid "The code for Pinterest is incorrect."
617
+ msgstr ""
618
+
619
+ # @ squirrly-seo
620
+ #: models/SQ_BlockSettingsSeo.php:181
621
+ msgid "The code for Bing is incorrect."
622
+ msgstr "Der Code für Bing ist falsch."
623
+
624
+ #: models/SQ_BlockSettingsSeo.php:194
625
+ msgid "The twitter account is incorrect"
626
+ msgstr ""
627
+
628
+ #: models/SQ_BlockSettingsSeo.php:271
629
+ msgid "File type error: Only ICO, JPEG, JPG, GIF or PNG files are allowed."
630
+ msgstr ""
631
+
632
+ # @ squirrly-seo
633
+ #: models/SQ_BlockSettingsSeo.php:277
634
+ msgid "GD error: The GD library must be installed on your server."
635
+ msgstr "GD Fehler: Die GD-Bibliothek muss auf dem Server installiert werden."
636
+
637
+ # @ squirrly-seo
638
+ #: models/SQ_BlockSettingsSeo.php:283
639
+ msgid "Delete error: Could not delete the old favicon."
640
+ msgstr "Lösch Fehler: Konnte das alte Favicon nicht löschen."
641
+
642
+ # @ squirrly-seo
643
+ #: models/SQ_BlockSettingsSeo.php:290
644
+ msgid "Upload error: Could not upload the favicon."
645
+ msgstr "Upload Fehler: Konnte das Favicon nicht hochladen."
646
+
647
+ # @ squirrly-seo
648
+ #: models/SQ_BlockSettingsSeo.php:296
649
+ msgid "Permission error: Could not change the favicon permissions."
650
+ msgstr "Permission Fehler: Konnte Favicon-Berechtigungen nicht ändern."
651
+
652
+ # @ squirrly-seo
653
+ #: models/SQ_BlockSettingsSeo.php:318
654
+ msgid ""
655
+ "ICO Error: Could not create the ICO from file. Try with another file type."
656
+ msgstr ""
657
+ "ICO Fehler: konnte ICO aus der Datei nicht erstellen. Versuchen Sie es mit "
658
+ "einem anderen Dateityp."
659
+
660
+ # @ squirrly-seo
661
+ #: models/SQ_BlockSettingsSeo.php:337
662
+ msgid "The favicon has been updated."
663
+ msgstr "Das Favicon wurde aktualisiert."
664
+
665
+ #: models/SQ_Frontend.php:496 models/SQ_Frontend.php:506
666
+ #: models/SQ_Frontend.php:511 models/SQ_Frontend.php:533
667
+ #: models/SQ_Frontend.php:730 models/SQ_Frontend.php:744
668
+ #: models/SQ_Frontend.php:753 models/SQ_Frontend.php:779
669
+ msgid "Page"
670
+ msgstr ""
671
+
672
+ #: models/SQ_Frontend.php:503
673
+ msgid "About"
674
+ msgstr ""
675
+
676
+ # @ default
677
+ #: models/SQ_Post.php:69
678
+ msgid "Squirrly could not find any results for: "
679
+ msgstr "Squirly hat keine Suchergebnisse gefunden für:"
680
+
681
+ #: models/SQ_Post.php:132
682
+ msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini."
683
+ msgstr ""
684
+
685
+ #: models/SQ_Post.php:133
686
+ msgid ""
687
+ "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
688
+ "the HTML form."
689
+ msgstr ""
690
+
691
+ #: models/SQ_Post.php:134
692
+ msgid "The uploaded file was only partially uploaded."
693
+ msgstr ""
694
+
695
+ #: models/SQ_Post.php:135
696
+ msgid "No file was uploaded."
697
+ msgstr ""
698
+
699
+ #: models/SQ_Post.php:137
700
+ msgid "Missing a temporary folder."
701
+ msgstr ""
702
+
703
+ #: models/SQ_Post.php:138
704
+ msgid "Failed to write file to disk."
705
+ msgstr ""
706
+
707
+ #: models/SQ_Post.php:139
708
+ msgid "File upload stopped by extension."
709
+ msgstr ""
710
+
711
+ #: models/SQ_Post.php:156
712
+ msgid "Invalid form submission."
713
+ msgstr ""
714
+
715
+ #: models/SQ_Post.php:166
716
+ msgid "File is empty. Please upload something more substantial."
717
+ msgstr ""
718
+
719
+ #: models/SQ_Post.php:168
720
+ msgid ""
721
+ "File is empty. Please upload something more substantial. This error could "
722
+ "also be caused by uploads being disabled in your php.ini or by post_max_size "
723
+ "being defined as smaller than upload_max_filesize in php.ini."
724
+ msgstr ""
725
+
726
+ #: models/SQ_Post.php:174
727
+ msgid "Specified file failed upload test."
728
+ msgstr ""
729
+
730
+ #: models/SQ_Post.php:187
731
+ msgid "Sorry, this file type is not permitted for security reasons."
732
+ msgstr ""
733
+
734
+ #: models/SQ_Post.php:212
735
+ #, php-format
736
+ msgid "The uploaded file could not be moved to %s."
737
+ msgstr ""
738
+
739
+ #: models/SQ_PostsList.php:27
740
+ msgid "Optimized:"
741
+ msgstr ""
742
+
743
+ #: models/SQ_PostsList.php:28
744
+ msgid "See Analytics"
745
+ msgstr ""
746
+
747
+ #: models/SQ_PostsList.php:30
748
+ msgid "Optimize it with Squirrly to see the Analytics"
749
+ msgstr ""
750
+
751
+ #: models/SQ_PostsList.php:82
752
+ msgid "This post's current position in Google"
753
+ msgstr ""
754
+
755
+ #: models/SQ_PostsList.php:85
756
+ msgid "The total traffic for the last 30 days, for the current post"
757
+ msgstr ""
758
+
759
+ #: models/SQ_PostsList.php:88
760
+ msgid "The total number of shares on social media channels for this post"
761
+ msgstr ""
762
+
763
+ #: models/SQ_PostsList.php:91
764
+ msgid "The total authority for this post"
765
+ msgstr ""
766
+
767
+ #: models/SQ_PostsList.php:94
768
+ msgid "The total number of inbound links to this post"
769
+ msgstr ""
770
+
771
+ # @ squirrly-seo
772
+ #: squirrly.php:60
773
+ msgid ""
774
+ "For Squirrly to work, the PHP version has to be equal or greater then 5.1"
775
+ msgstr ""
776
+ "Damit Squirrly funktioniert, muss die PHP-Version gleich oder größer als 5.1 "
777
+ "sein"
778
+
779
+ #: themes/default/SQ_BlockAccount.php:7
780
+ msgid "Squirrly account information"
781
+ msgstr ""
782
+
783
+ #: themes/default/SQ_BlockAccount.php:9 themes/default/SQ_BlockAffiliate.php:7
784
+ msgid "Go to dashboard"
785
+ msgstr ""
786
+
787
+ #: themes/default/SQ_BlockAffiliate.php:5
788
+ #: themes/default/SQ_BlockAffiliate.php:17
789
+ msgid "Join Squirrly today!"
790
+ msgstr ""
791
+
792
+ #: themes/default/SQ_BlockAffiliate.php:18
793
+ #, php-format
794
+ msgid "%sHow I Started Making Money With the Squirrly Affiliate Program%s"
795
+ msgstr ""
796
+
797
+ #: themes/default/SQ_BlockAffiliate.php:21
798
+ msgid "Affiliate Benefits"
799
+ msgstr ""
800
+
801
+ #: themes/default/SQ_BlockAffiliate.php:26
802
+ #, php-format
803
+ msgid "- Recurring 45%s commission"
804
+ msgstr ""
805
+
806
+ #: themes/default/SQ_BlockAffiliate.php:31
807
+ msgid "- No cost"
808
+ msgstr ""
809
+
810
+ #: themes/default/SQ_BlockAffiliate.php:36
811
+ msgid "- Monthly payments in your Paypal account"
812
+ msgstr ""
813
+
814
+ #: themes/default/SQ_BlockAffiliate.php:47
815
+ msgid ""
816
+ "To redirect users to your site, just change \"squirrly.co\" with your domain."
817
+ msgstr ""
818
+
819
+ #: themes/default/SQ_BlockAffiliate.php:49
820
+ msgid "Generate affiliate link"
821
+ msgstr ""
822
+
823
+ #: themes/default/SQ_BlockAffiliate.php:58
824
+ msgid ""
825
+ "Your affiliate account is set and ready to go. Above you have the affiliate "
826
+ "link. "
827
+ msgstr ""
828
+
829
+ #: themes/default/SQ_BlockAffiliate.php:60
830
+ #, php-format
831
+ msgid "Check your affiliate page: %sAffiliate page%s"
832
+ msgstr ""
833
+
834
+ #: themes/default/SQ_BlockAffiliate.php:63
835
+ msgid ""
836
+ "After you connect to Squirrly you can begin to use your free Squirrly "
837
+ "affiliate link immediately!"
838
+ msgstr ""
839
+
840
+ #: themes/default/SQ_BlockAffiliate.php:72
841
+ msgid "Squirrly banners you can use"
842
+ msgstr ""
843
+
844
+ #: themes/default/SQ_BlockAffiliate.php:97
845
+ msgid "<< START HERE >>"
846
+ msgstr ""
847
+
848
+ #: themes/default/SQ_BlockAnalytics.php:55
849
+ msgid "Moz Inbound Links"
850
+ msgstr ""
851
+
852
+ #: themes/default/SQ_BlockAnalytics.php:62
853
+ msgid "Ahrefs Inbound Links"
854
+ msgstr ""
855
+
856
+ #: themes/default/SQ_BlockAnalytics.php:74
857
+ msgid "Moz Authority"
858
+ msgstr ""
859
+
860
+ #: themes/default/SQ_BlockAnalytics.php:79
861
+ msgid "Moz Rank"
862
+ msgstr ""
863
+
864
+ #: themes/default/SQ_BlockAnalytics.php:86
865
+ msgid "Google Page Rank"
866
+ msgstr ""
867
+
868
+ #: themes/default/SQ_BlockAnalytics.php:92
869
+ msgid "Ahrefs Rank"
870
+ msgstr ""
871
+
872
+ #: themes/default/SQ_BlockAnalytics.php:108
873
+ msgid "Facebook shares"
874
+ msgstr ""
875
+
876
+ #: themes/default/SQ_BlockAnalytics.php:113
877
+ msgid "Facebook likes"
878
+ msgstr ""
879
+
880
+ #: themes/default/SQ_BlockAnalytics.php:118
881
+ msgid "Twitter shares"
882
+ msgstr ""
883
+
884
+ #: themes/default/SQ_BlockAnalytics.php:123
885
+ msgid "Google+ shares"
886
+ msgstr ""
887
+
888
+ #: themes/default/SQ_BlockAnalytics.php:128
889
+ msgid "LinkedIn Shares"
890
+ msgstr ""
891
+
892
+ #: themes/default/SQ_BlockAnalytics.php:133
893
+ msgid "StumbleUpon shares"
894
+ msgstr ""
895
+
896
+ #: themes/default/SQ_BlockAnalytics.php:138
897
+ msgid "Reddit shares"
898
+ msgstr ""
899
+
900
+ #: themes/default/SQ_BlockAnalytics.php:170
901
+ msgid "Nicely done! Now you can focus on the other tasks"
902
+ msgstr ""
903
+
904
+ #: themes/default/SQ_BlockAnalytics.php:170
905
+ msgid ""
906
+ "I know you can improve this. Please follow the documentation for a quicker "
907
+ "progress"
908
+ msgstr ""
909
+
910
+ #: themes/default/SQ_BlockAnalytics.php:243
911
+ msgid "Visits"
912
+ msgstr ""
913
+
914
+ #: themes/default/SQ_BlockAnalytics.php:256
915
+ msgid "Current: "
916
+ msgstr ""
917
+
918
+ #: themes/default/SQ_BlockAnalytics.php:257
919
+ msgid "Lowest: "
920
+ msgstr ""
921
+
922
+ #: themes/default/SQ_BlockAnalytics.php:258
923
+ msgid "Highest: "
924
+ msgstr ""
925
+
926
+ #: themes/default/SQ_BlockAnalytics.php:262
927
+ msgid "last 30 days"
928
+ msgstr ""
929
+
930
+ #: themes/default/SQ_BlockDashboard.php:6
931
+ msgid "Connect to Squirrly.co"
932
+ msgstr ""
933
+
934
+ #: themes/default/SQ_BlockDashboard.php:12
935
+ msgid "Connect to Squirrly and start optimizing your site"
936
+ msgstr ""
937
+
938
+ #: themes/default/SQ_BlockDashboard.php:13
939
+ msgid "START HERE"
940
+ msgstr ""
941
+
942
+ #: themes/default/SQ_BlockDashboard.php:20
943
+ msgid "Squirrly dashboard"
944
+ msgstr ""
945
+
946
+ #: themes/default/SQ_BlockPostsAnalytics.php:3
947
+ msgid "Squirrly Analytics"
948
+ msgstr ""
949
+
950
+ #: themes/default/SQ_BlockPostsAnalytics.php:4
951
+ msgid ""
952
+ "Don't see all your pages here? Make sure you optimize them with Squirrly, so "
953
+ "that we can track them, and display you the analytics"
954
+ msgstr ""
955
+
956
+ #: themes/default/SQ_BlockPostsAnalytics.php:5
957
+ msgid ""
958
+ "If you recheck the google rank, let 10-20 seconds between requests to "
959
+ "prevent google to block your IP for an hour."
960
+ msgstr ""
961
+
962
+ # @ squirrly-seo
963
+ #: themes/default/SQ_BlockSettings.php:7
964
+ #: themes/default/SQ_BlockSettings.php:300
965
+ msgid "Save settings"
966
+ msgstr "Einstellungen speichern"
967
+
968
+ #: themes/default/SQ_BlockSettings.php:17
969
+ msgid "Post/Page Edit"
970
+ msgstr ""
971
+
972
+ #: themes/default/SQ_BlockSettings.php:18
973
+ #, php-format
974
+ msgid "%sThe right method in working with Squirrly, SEO plugin%s"
975
+ msgstr ""
976
+
977
+ #: themes/default/SQ_BlockSettings.php:19
978
+ #, php-format
979
+ msgid "%sGetting inspired with Squirrly WordPress SEO plugin%s"
980
+ msgstr ""
981
+
982
+ #: themes/default/SQ_BlockSettings.php:21
983
+ #, php-format
984
+ msgid "%sThere is a New SEO Live Assistant from Squirrly%s"
985
+ msgstr ""
986
+
987
+ #: themes/default/SQ_BlockSettings.php:22
988
+ #, php-format
989
+ msgid "%sHow to create Human friendly content with the WordPress SEO plugin?%s"
990
+ msgstr ""
991
+
992
+ #: themes/default/SQ_BlockSettings.php:28
993
+ msgid "Load Squirrly Live Assistant for"
994
+ msgstr ""
995
+
996
+ #: themes/default/SQ_BlockSettings.php:31
997
+ #: themes/default/SQ_BlockSettingsSeo.php:528
998
+ msgid "Posts"
999
+ msgstr ""
1000
+
1001
+ #: themes/default/SQ_BlockSettings.php:32
1002
+ #: themes/default/SQ_BlockSettingsSeo.php:530
1003
+ msgid "Pages"
1004
+ msgstr ""
1005
+
1006
+ #: themes/default/SQ_BlockSettings.php:34
1007
+ #: themes/default/SQ_BlockSettingsSeo.php:527
1008
+ msgid "Products"
1009
+ msgstr ""
1010
+
1011
+ # @ squirrly-seo
1012
+ #: themes/default/SQ_BlockSettings.php:61
1013
+ #: themes/default/SQ_BlockSettings.php:72
1014
+ #: themes/default/SQ_BlockSettings.php:84
1015
+ #: themes/default/SQ_BlockSettings.php:95
1016
+ #: themes/default/SQ_BlockSettings.php:106
1017
+ #: themes/default/SQ_BlockSettings.php:118
1018
+ #: themes/default/SQ_BlockSettings.php:261
1019
+ #: themes/default/SQ_BlockSettingsSeo.php:28
1020
+ #: themes/default/SQ_BlockSettingsSeo.php:47
1021
+ #: themes/default/SQ_BlockSettingsSeo.php:65
1022
+ #: themes/default/SQ_BlockSettingsSeo.php:82
1023
+ #: themes/default/SQ_BlockSettingsSeo.php:99
1024
+ #: themes/default/SQ_BlockSettingsSeo.php:116
1025
+ #: themes/default/SQ_BlockSettingsSeo.php:133
1026
+ #: themes/default/SQ_BlockSettingsSeo.php:161
1027
+ #: themes/default/SQ_BlockSettingsSeo.php:177
1028
+ #: themes/default/SQ_BlockSettingsSeo.php:411
1029
+ #: themes/default/SQ_BlockSettingsSeo.php:433
1030
+ #: themes/default/SQ_BlockSettingsSeo.php:442
1031
+ #: themes/default/SQ_BlockSettingsSeo.php:514
1032
+ msgid "Yes"
1033
+ msgstr "Ja"
1034
+
1035
+ # @ squirrly-seo
1036
+ #: themes/default/SQ_BlockSettings.php:63
1037
+ #: themes/default/SQ_BlockSettings.php:74
1038
+ #: themes/default/SQ_BlockSettings.php:86
1039
+ #: themes/default/SQ_BlockSettings.php:97
1040
+ #: themes/default/SQ_BlockSettings.php:108
1041
+ #: themes/default/SQ_BlockSettings.php:120
1042
+ #: themes/default/SQ_BlockSettings.php:263
1043
+ #: themes/default/SQ_BlockSettingsSeo.php:30
1044
+ #: themes/default/SQ_BlockSettingsSeo.php:49
1045
+ #: themes/default/SQ_BlockSettingsSeo.php:67
1046
+ #: themes/default/SQ_BlockSettingsSeo.php:84
1047
+ #: themes/default/SQ_BlockSettingsSeo.php:101
1048
+ #: themes/default/SQ_BlockSettingsSeo.php:118
1049
+ #: themes/default/SQ_BlockSettingsSeo.php:135
1050
+ #: themes/default/SQ_BlockSettingsSeo.php:163
1051
+ #: themes/default/SQ_BlockSettingsSeo.php:179
1052
+ #: themes/default/SQ_BlockSettingsSeo.php:413
1053
+ #: themes/default/SQ_BlockSettingsSeo.php:435
1054
+ #: themes/default/SQ_BlockSettingsSeo.php:444
1055
+ #: themes/default/SQ_BlockSettingsSeo.php:516
1056
+ msgid "No"
1057
+ msgstr "Nein"
1058
+
1059
+ #: themes/default/SQ_BlockSettings.php:66
1060
+ msgid ""
1061
+ "Show <strong>Squirrly Tooltips</strong> posting a new article (e.g. \"Enter "
1062
+ "a keyword\")."
1063
+ msgstr ""
1064
+
1065
+ #: themes/default/SQ_BlockSettings.php:77
1066
+ msgid ""
1067
+ "Always show <strong>Keyword Research</strong> about the selected keyword."
1068
+ msgstr ""
1069
+
1070
+ #: themes/default/SQ_BlockSettings.php:89
1071
+ msgid "Use <strong> the NEW version of the SEO Live Assistant</strong>."
1072
+ msgstr ""
1073
+
1074
+ #: themes/default/SQ_BlockSettings.php:100
1075
+ msgid "Add the Post tags in <strong>META keyword</strong>."
1076
+ msgstr ""
1077
+
1078
+ #: themes/default/SQ_BlockSettings.php:111
1079
+ msgid ""
1080
+ "Download <strong>remote images</strong> in your <strong>Media Library</"
1081
+ "strong> for the new posts."
1082
+ msgstr ""
1083
+
1084
+ #: themes/default/SQ_BlockSettings.php:123
1085
+ msgid ""
1086
+ "Correct my <strong>feed links</strong> and <strong>images</strong> (convert "
1087
+ "from relative to absolute)."
1088
+ msgstr ""
1089
+
1090
+ #: themes/default/SQ_BlockSettings.php:130
1091
+ msgid "Google Rank Options"
1092
+ msgstr ""
1093
+
1094
+ #: themes/default/SQ_BlockSettings.php:131
1095
+ #, php-format
1096
+ msgid "%sCountry targeting%s"
1097
+ msgstr ""
1098
+
1099
+ #: themes/default/SQ_BlockSettings.php:136
1100
+ msgid ""
1101
+ "Select the google extension for which Squirrly will check the google rank"
1102
+ msgstr ""
1103
+
1104
+ #: themes/default/SQ_BlockSettings.php:140
1105
+ msgid "Default"
1106
+ msgstr ""
1107
+
1108
+ #: themes/default/SQ_BlockSettings.php:141
1109
+ msgid "American Samoa"
1110
+ msgstr ""
1111
+
1112
+ #: themes/default/SQ_BlockSettings.php:142
1113
+ msgid "Anguilla"
1114
+ msgstr ""
1115
+
1116
+ #: themes/default/SQ_BlockSettings.php:143
1117
+ msgid "Antigua and Barbuda"
1118
+ msgstr ""
1119
+
1120
+ #: themes/default/SQ_BlockSettings.php:144
1121
+ msgid "Argentina"
1122
+ msgstr ""
1123
+
1124
+ #: themes/default/SQ_BlockSettings.php:145
1125
+ msgid "Australia"
1126
+ msgstr ""
1127
+
1128
+ #: themes/default/SQ_BlockSettings.php:146
1129
+ msgid "Austria"
1130
+ msgstr ""
1131
+
1132
+ #: themes/default/SQ_BlockSettings.php:147
1133
+ msgid "Azerbaijan"
1134
+ msgstr ""
1135
+
1136
+ #: themes/default/SQ_BlockSettings.php:148
1137
+ msgid "Belgium"
1138
+ msgstr ""
1139
+
1140
+ #: themes/default/SQ_BlockSettings.php:149
1141
+ msgid "Brazil"
1142
+ msgstr ""
1143
+
1144
+ #: themes/default/SQ_BlockSettings.php:150
1145
+ msgid "British Virgin Islands"
1146
+ msgstr ""
1147
+
1148
+ #: themes/default/SQ_BlockSettings.php:151
1149
+ msgid "Burundi"
1150
+ msgstr ""
1151
+
1152
+ #: themes/default/SQ_BlockSettings.php:152
1153
+ msgid "Bulgaria"
1154
+ msgstr ""
1155
+
1156
+ #: themes/default/SQ_BlockSettings.php:153
1157
+ msgid "Canada"
1158
+ msgstr ""
1159
+
1160
+ #: themes/default/SQ_BlockSettings.php:154
1161
+ msgid "Chad"
1162
+ msgstr ""
1163
+
1164
+ #: themes/default/SQ_BlockSettings.php:155
1165
+ msgid "Chile"
1166
+ msgstr ""
1167
+
1168
+ #: themes/default/SQ_BlockSettings.php:156
1169
+ msgid "Colombia"
1170
+ msgstr ""
1171
+
1172
+ #: themes/default/SQ_BlockSettings.php:157
1173
+ msgid "Costa Rica"
1174
+ msgstr ""
1175
+
1176
+ #: themes/default/SQ_BlockSettings.php:158
1177
+ msgid "Côte d'Ivoire"
1178
+ msgstr ""
1179
+
1180
+ #: themes/default/SQ_BlockSettings.php:159
1181
+ msgid "Cuba"
1182
+ msgstr ""
1183
+
1184
+ #: themes/default/SQ_BlockSettings.php:160
1185
+ msgid "Czech Republic"
1186
+ msgstr ""
1187
+
1188
+ #: themes/default/SQ_BlockSettings.php:161
1189
+ msgid "Dem. Rep. of the Congo"
1190
+ msgstr ""
1191
+
1192
+ #: themes/default/SQ_BlockSettings.php:162
1193
+ msgid "Denmark"
1194
+ msgstr ""
1195
+
1196
+ #: themes/default/SQ_BlockSettings.php:163
1197
+ msgid "Djibouti"
1198
+ msgstr ""
1199
+
1200
+ #: themes/default/SQ_BlockSettings.php:164
1201
+ msgid "Dominican Republic"
1202
+ msgstr ""
1203
+
1204
+ #: themes/default/SQ_BlockSettings.php:165
1205
+ msgid "Ecuador"
1206
+ msgstr ""
1207
+
1208
+ #: themes/default/SQ_BlockSettings.php:166
1209
+ msgid "El Salvador"
1210
+ msgstr ""
1211
+
1212
+ #: themes/default/SQ_BlockSettings.php:167
1213
+ msgid "Estonia"
1214
+ msgstr ""
1215
+
1216
+ #: themes/default/SQ_BlockSettings.php:168
1217
+ msgid "Federated States of Micronesia"
1218
+ msgstr ""
1219
+
1220
+ #: themes/default/SQ_BlockSettings.php:169
1221
+ msgid "Fiji"
1222
+ msgstr ""
1223
+
1224
+ #: themes/default/SQ_BlockSettings.php:170
1225
+ msgid "Finland"
1226
+ msgstr ""
1227
+
1228
+ #: themes/default/SQ_BlockSettings.php:171
1229
+ msgid "France"
1230
+ msgstr ""
1231
+
1232
+ #: themes/default/SQ_BlockSettings.php:172
1233
+ msgid "The Gambia"
1234
+ msgstr ""
1235
+
1236
+ #: themes/default/SQ_BlockSettings.php:173
1237
+ msgid "Georgia"
1238
+ msgstr ""
1239
+
1240
+ #: themes/default/SQ_BlockSettings.php:174
1241
+ msgid "Germany"
1242
+ msgstr ""
1243
+
1244
+ #: themes/default/SQ_BlockSettings.php:175
1245
+ msgid "Gibraltar"
1246
+ msgstr ""
1247
+
1248
+ #: themes/default/SQ_BlockSettings.php:176
1249
+ msgid "Greece"
1250
+ msgstr ""
1251
+
1252
+ #: themes/default/SQ_BlockSettings.php:177
1253
+ msgid "Greenland"
1254
+ msgstr ""
1255
+
1256
+ #: themes/default/SQ_BlockSettings.php:178
1257
+ msgid "Guernsey"
1258
+ msgstr ""
1259
+
1260
+ #: themes/default/SQ_BlockSettings.php:179
1261
+ msgid "Honduras"
1262
+ msgstr ""
1263
+
1264
+ #: themes/default/SQ_BlockSettings.php:180
1265
+ msgid "Hong Kong"
1266
+ msgstr ""
1267
+
1268
+ #: themes/default/SQ_BlockSettings.php:181
1269
+ msgid "Hungary"
1270
+ msgstr ""
1271
+
1272
+ #: themes/default/SQ_BlockSettings.php:182
1273
+ msgid "India"
1274
+ msgstr ""
1275
+
1276
+ #: themes/default/SQ_BlockSettings.php:183
1277
+ msgid "Ireland"
1278
+ msgstr ""
1279
+
1280
+ #: themes/default/SQ_BlockSettings.php:184
1281
+ msgid "Isle of Man"
1282
+ msgstr ""
1283
+
1284
+ #: themes/default/SQ_BlockSettings.php:185
1285
+ msgid "Israel"
1286
+ msgstr ""
1287
+
1288
+ #: themes/default/SQ_BlockSettings.php:186
1289
+ msgid "Italy"
1290
+ msgstr ""
1291
+
1292
+ #: themes/default/SQ_BlockSettings.php:187
1293
+ msgid "Jamaica"
1294
+ msgstr ""
1295
+
1296
+ #: themes/default/SQ_BlockSettings.php:188
1297
+ msgid "Japan"
1298
+ msgstr ""
1299
+
1300
+ #: themes/default/SQ_BlockSettings.php:189
1301
+ msgid "Jersey"
1302
+ msgstr ""
1303
+
1304
+ #: themes/default/SQ_BlockSettings.php:190
1305
+ msgid "Kazakhstan"
1306
+ msgstr ""
1307
+
1308
+ #: themes/default/SQ_BlockSettings.php:191
1309
+ msgid "Korea"
1310
+ msgstr ""
1311
+
1312
+ #: themes/default/SQ_BlockSettings.php:192
1313
+ msgid "Latvia"
1314
+ msgstr ""
1315
+
1316
+ #: themes/default/SQ_BlockSettings.php:193
1317
+ msgid "Lesotho"
1318
+ msgstr ""
1319
+
1320
+ #: themes/default/SQ_BlockSettings.php:194
1321
+ msgid "Liechtenstein"
1322
+ msgstr ""
1323
+
1324
+ #: themes/default/SQ_BlockSettings.php:195
1325
+ msgid "Lithuania"
1326
+ msgstr ""
1327
+
1328
+ #: themes/default/SQ_BlockSettings.php:196
1329
+ msgid "Luxembourg"
1330
+ msgstr ""
1331
+
1332
+ #: themes/default/SQ_BlockSettings.php:197
1333
+ msgid "Malawi"
1334
+ msgstr ""
1335
+
1336
+ #: themes/default/SQ_BlockSettings.php:198
1337
+ msgid "Malaysia"
1338
+ msgstr ""
1339
+
1340
+ #: themes/default/SQ_BlockSettings.php:199
1341
+ msgid "Malta"
1342
+ msgstr ""
1343
+
1344
+ #: themes/default/SQ_BlockSettings.php:200
1345
+ msgid "Mauritius"
1346
+ msgstr ""
1347
+
1348
+ #: themes/default/SQ_BlockSettings.php:201
1349
+ msgid "México"
1350
+ msgstr ""
1351
+
1352
+ #: themes/default/SQ_BlockSettings.php:202
1353
+ msgid "Montserrat"
1354
+ msgstr ""
1355
+
1356
+ #: themes/default/SQ_BlockSettings.php:203
1357
+ msgid "Namibia"
1358
+ msgstr ""
1359
+
1360
+ #: themes/default/SQ_BlockSettings.php:204
1361
+ msgid "Nepal"
1362
+ msgstr ""
1363
+
1364
+ #: themes/default/SQ_BlockSettings.php:205
1365
+ msgid "Netherlands"
1366
+ msgstr ""
1367
+
1368
+ #: themes/default/SQ_BlockSettings.php:206
1369
+ msgid "New Zealand"
1370
+ msgstr ""
1371
+
1372
+ #: themes/default/SQ_BlockSettings.php:207
1373
+ msgid "Nicaragua"
1374
+ msgstr ""
1375
+
1376
+ #: themes/default/SQ_BlockSettings.php:208
1377
+ msgid "Norfolk Island"
1378
+ msgstr ""
1379
+
1380
+ #: themes/default/SQ_BlockSettings.php:209
1381
+ msgid "Norway"
1382
+ msgstr ""
1383
+
1384
+ #: themes/default/SQ_BlockSettings.php:210
1385
+ msgid "Pakistan"
1386
+ msgstr ""
1387
+
1388
+ #: themes/default/SQ_BlockSettings.php:211
1389
+ msgid "Panamá"
1390
+ msgstr ""
1391
+
1392
+ #: themes/default/SQ_BlockSettings.php:212
1393
+ msgid "Paraguay"
1394
+ msgstr ""
1395
+
1396
+ #: themes/default/SQ_BlockSettings.php:213
1397
+ msgid "Perú"
1398
+ msgstr ""
1399
+
1400
+ #: themes/default/SQ_BlockSettings.php:214
1401
+ msgid "Philippines"
1402
+ msgstr ""
1403
+
1404
+ #: themes/default/SQ_BlockSettings.php:215
1405
+ msgid "Pitcairn Islands"
1406
+ msgstr ""
1407
+
1408
+ #: themes/default/SQ_BlockSettings.php:216
1409
+ msgid "Poland"
1410
+ msgstr ""
1411
+
1412
+ #: themes/default/SQ_BlockSettings.php:217
1413
+ msgid "Portugal"
1414
+ msgstr ""
1415
+
1416
+ #: themes/default/SQ_BlockSettings.php:218
1417
+ msgid "Puerto Rico"
1418
+ msgstr ""
1419
+
1420
+ #: themes/default/SQ_BlockSettings.php:219
1421
+ msgid "Rep. of the Congo"
1422
+ msgstr ""
1423
+
1424
+ #: themes/default/SQ_BlockSettings.php:220
1425
+ msgid "Romania"
1426
+ msgstr ""
1427
+
1428
+ #: themes/default/SQ_BlockSettings.php:221
1429
+ msgid "Russia"
1430
+ msgstr ""
1431
+
1432
+ #: themes/default/SQ_BlockSettings.php:222
1433
+ msgid "Rwanda"
1434
+ msgstr ""
1435
+
1436
+ #: themes/default/SQ_BlockSettings.php:223
1437
+ msgid "Saint Helena"
1438
+ msgstr ""
1439
+
1440
+ #: themes/default/SQ_BlockSettings.php:224
1441
+ msgid "San Marino"
1442
+ msgstr ""
1443
+
1444
+ #: themes/default/SQ_BlockSettings.php:225
1445
+ msgid "Saudi Arabia"
1446
+ msgstr ""
1447
+
1448
+ #: themes/default/SQ_BlockSettings.php:226
1449
+ msgid "Singapore"
1450
+ msgstr ""
1451
+
1452
+ #: themes/default/SQ_BlockSettings.php:227
1453
+ msgid "Slovakia"
1454
+ msgstr ""
1455
+
1456
+ #: themes/default/SQ_BlockSettings.php:228
1457
+ msgid "South Africa"
1458
+ msgstr ""
1459
+
1460
+ #: themes/default/SQ_BlockSettings.php:229
1461
+ msgid "Spain"
1462
+ msgstr ""
1463
+
1464
+ #: themes/default/SQ_BlockSettings.php:230
1465
+ msgid "Sri Lanka"
1466
+ msgstr ""
1467
+
1468
+ #: themes/default/SQ_BlockSettings.php:231
1469
+ msgid "Sweden"
1470
+ msgstr ""
1471
+
1472
+ #: themes/default/SQ_BlockSettings.php:232
1473
+ msgid "Switzerland"
1474
+ msgstr ""
1475
+
1476
+ #: themes/default/SQ_BlockSettings.php:233
1477
+ msgid "Taiwan"
1478
+ msgstr ""
1479
+
1480
+ #: themes/default/SQ_BlockSettings.php:234
1481
+ msgid "Thailand"
1482
+ msgstr ""
1483
+
1484
+ #: themes/default/SQ_BlockSettings.php:235
1485
+ msgid "Trinidad and Tobago"
1486
+ msgstr ""
1487
+
1488
+ #: themes/default/SQ_BlockSettings.php:236
1489
+ msgid "Turkey"
1490
+ msgstr ""
1491
+
1492
+ #: themes/default/SQ_BlockSettings.php:237
1493
+ msgid "Ukraine"
1494
+ msgstr ""
1495
+
1496
+ #: themes/default/SQ_BlockSettings.php:238
1497
+ msgid "United Arab Emirates"
1498
+ msgstr ""
1499
+
1500
+ #: themes/default/SQ_BlockSettings.php:239
1501
+ msgid "United Kingdom"
1502
+ msgstr ""
1503
+
1504
+ #: themes/default/SQ_BlockSettings.php:240
1505
+ msgid "Uruguay"
1506
+ msgstr ""
1507
+
1508
+ #: themes/default/SQ_BlockSettings.php:241
1509
+ msgid "Uzbekistan"
1510
+ msgstr ""
1511
+
1512
+ #: themes/default/SQ_BlockSettings.php:242
1513
+ msgid "Vanuatu"
1514
+ msgstr ""
1515
+
1516
+ #: themes/default/SQ_BlockSettings.php:243
1517
+ msgid "Venezuela"
1518
+ msgstr ""
1519
+
1520
+ #: themes/default/SQ_BlockSettings.php:247
1521
+ #, php-format
1522
+ msgid ""
1523
+ "Select how many pages to be checked by google rank every hour. %s5 pages "
1524
+ "(recommended)%s"
1525
+ msgstr ""
1526
+
1527
+ #: themes/default/SQ_BlockSettings.php:252
1528
+ msgid "pages"
1529
+ msgstr ""
1530
+
1531
+ #: themes/default/SQ_BlockSettings.php:266
1532
+ msgid ""
1533
+ "Restricts search results to results originating in the above particular "
1534
+ "country."
1535
+ msgstr ""
1536
+
1537
+ #: themes/default/SQ_BlockSettings.php:275
1538
+ msgid "Measure Your Success"
1539
+ msgstr ""
1540
+
1541
+ #: themes/default/SQ_BlockSettings.php:276
1542
+ #, php-format
1543
+ msgid "%sHow to set the Google Webmaster Tool%s"
1544
+ msgstr ""
1545
+
1546
+ #: themes/default/SQ_BlockSettings.php:277
1547
+ #, php-format
1548
+ msgid "%sBest practices to help Google find, crawl, and index your site%s"
1549
+ msgstr ""
1550
+
1551
+ #: themes/default/SQ_BlockSettings.php:278
1552
+ #, php-format
1553
+ msgid "%sBing Webmaster Tools Help & How-To Center%s"
1554
+ msgstr ""
1555
+
1556
+ #: themes/default/SQ_BlockSettings.php:284
1557
+ #, php-format
1558
+ msgid "Google META verification code for %sWebmaster Tool%s:"
1559
+ msgstr ""
1560
+
1561
+ #: themes/default/SQ_BlockSettings.php:288
1562
+ #, php-format
1563
+ msgid "Bing META code (for %sWebmaster Tool%s ):"
1564
+ msgstr ""
1565
+
1566
+ #: themes/default/SQ_BlockSettings.php:292
1567
+ #, php-format
1568
+ msgid "Alexa META code (for %sAlexa Tool%s ):"
1569
+ msgstr ""
1570
+
1571
+ #: themes/default/SQ_BlockSettings.php:309
1572
+ #: themes/default/SQ_BlockSettingsSeo.php:696
1573
+ msgid "Backup Settings"
1574
+ msgstr ""
1575
+
1576
+ #: themes/default/SQ_BlockSettings.php:310
1577
+ #: themes/default/SQ_BlockSettingsSeo.php:697
1578
+ msgid "Restore Settings"
1579
+ msgstr ""
1580
+
1581
+ #: themes/default/SQ_BlockSettings.php:316
1582
+ #: themes/default/SQ_BlockSettingsSeo.php:703
1583
+ #: themes/default/SQ_Blocklogin.php:55
1584
+ msgid "Upload the file with the saved Squirrly Settings"
1585
+ msgstr ""
1586
+
1587
+ #: themes/default/SQ_BlockSettings.php:321
1588
+ #: themes/default/SQ_BlockSettingsSeo.php:708
1589
+ #: themes/default/SQ_Blocklogin.php:60
1590
+ msgid "Restore Backup"
1591
+ msgstr ""
1592
+
1593
+ #: themes/default/SQ_BlockSettingsSeo.php:7
1594
+ #: themes/default/SQ_BlockSettingsSeo.php:685
1595
+ msgid "Save SEO"
1596
+ msgstr ""
1597
+
1598
+ #: themes/default/SQ_BlockSettingsSeo.php:9
1599
+ #: themes/default/SQ_BlockSettingsSeo.php:144
1600
+ msgid "Check for SEO issues in your site"
1601
+ msgstr ""
1602
+
1603
+ #: themes/default/SQ_BlockSettingsSeo.php:21
1604
+ msgid "Let Squirrly SEO optimize this blog"
1605
+ msgstr ""
1606
+
1607
+ #: themes/default/SQ_BlockSettingsSeo.php:22
1608
+ #, php-format
1609
+ msgid "%sIs Squirrly SEO better then WordPress SEO by Yoast?%s"
1610
+ msgstr ""
1611
+
1612
+ #: themes/default/SQ_BlockSettingsSeo.php:24
1613
+ msgid ""
1614
+ "Activate the built-in SEO settings from Squirrly by switching Yes below. "
1615
+ "<strong>Works well with Multisites and Ecommerce.</strong>"
1616
+ msgstr ""
1617
+
1618
+ # @ squirrly-seo
1619
+ #: themes/default/SQ_BlockSettingsSeo.php:37
1620
+ msgid "What does Squirrly automatically do for SEO?"
1621
+ msgstr "Was tut Squirrly automatisch für SEO?"
1622
+
1623
+ #: themes/default/SQ_BlockSettingsSeo.php:52
1624
+ #, php-format
1625
+ msgid ""
1626
+ "adds <strong>%scanonical link%s</strong>, <strong>%srel=\"prev\" and rel="
1627
+ "\"next\"%s</strong> metas in Header"
1628
+ msgstr ""
1629
+
1630
+ #: themes/default/SQ_BlockSettingsSeo.php:70
1631
+ msgid ""
1632
+ "adds the required METAs (<strong>dublincore, google hreflang</strong>, etc.)"
1633
+ msgstr ""
1634
+
1635
+ #: themes/default/SQ_BlockSettingsSeo.php:87
1636
+ #, php-format
1637
+ msgid "adds the <strong>%sXML Sitemap%s</strong> for search engines: %s"
1638
+ msgstr ""
1639
+
1640
+ #: themes/default/SQ_BlockSettingsSeo.php:104
1641
+ msgid "adds <strong>Feed style</strong> to your blog feed (eg. /feed)"
1642
+ msgstr ""
1643
+
1644
+ #: themes/default/SQ_BlockSettingsSeo.php:121
1645
+ #, php-format
1646
+ msgid ""
1647
+ "adds the <strong>%sfavicon.ico%s</strong> and the <strong>%sicons for pads "
1648
+ "and phones%s</strong>"
1649
+ msgstr ""
1650
+
1651
+ #: themes/default/SQ_BlockSettingsSeo.php:138
1652
+ #, php-format
1653
+ msgid "adds the <strong>%sJson-LD%s</strong> metas for Semantic SEO"
1654
+ msgstr ""
1655
+
1656
+ #: themes/default/SQ_BlockSettingsSeo.php:141
1657
+ msgid ""
1658
+ "Note! By switching the <strong>Json-LD</strong>, <strong>XML Sitemap</"
1659
+ "strong> and <strong>Favicon</strong> on, you open new options below"
1660
+ msgstr ""
1661
+
1662
+ #: themes/default/SQ_BlockSettingsSeo.php:150
1663
+ msgid "First page optimization"
1664
+ msgstr ""
1665
+
1666
+ #: themes/default/SQ_BlockSettingsSeo.php:151
1667
+ #, php-format
1668
+ msgid "%sThe best SEO approach to Meta information%s"
1669
+ msgstr ""
1670
+
1671
+ #: themes/default/SQ_BlockSettingsSeo.php:152
1672
+ msgid "Add meta <strong>title</strong> in Home Page"
1673
+ msgstr ""
1674
+
1675
+ #: themes/default/SQ_BlockSettingsSeo.php:168
1676
+ msgid ""
1677
+ "Add meta <strong>description</strong> and <strong>keywords</strong> in Home "
1678
+ "Page"
1679
+ msgstr ""
1680
+
1681
+ #: themes/default/SQ_BlockSettingsSeo.php:184
1682
+ msgid "SEO for all post/pages"
1683
+ msgstr ""
1684
+
1685
+ #: themes/default/SQ_BlockSettingsSeo.php:185
1686
+ #, php-format
1687
+ msgid ""
1688
+ "To customize the Title and Description for all the Posts and Pages in your "
1689
+ "site use the %s<strong>Squirrly Snippet Tool</strong>%s"
1690
+ msgstr ""
1691
+
1692
+ # @ squirrly-seo
1693
+ #: themes/default/SQ_BlockSettingsSeo.php:212
1694
+ msgid "Title:"
1695
+ msgstr "Titel:"
1696
+
1697
+ #: themes/default/SQ_BlockSettingsSeo.php:213
1698
+ msgid "Tips: Length 10-75 chars"
1699
+ msgstr ""
1700
+
1701
+ # @ squirrly-seo
1702
+ #: themes/default/SQ_BlockSettingsSeo.php:216
1703
+ msgid "Description:"
1704
+ msgstr "Beschreibung:"
1705
+
1706
+ #: themes/default/SQ_BlockSettingsSeo.php:217
1707
+ msgid "Tips: Length 70-165 chars"
1708
+ msgstr ""
1709
+
1710
+ # @ squirrly-seo
1711
+ #: themes/default/SQ_BlockSettingsSeo.php:220
1712
+ msgid "Keywords:"
1713
+ msgstr "Schlüsselwörter:"
1714
+
1715
+ # @ squirrly-seo
1716
+ #: themes/default/SQ_BlockSettingsSeo.php:221
1717
+ msgid "Tips: 2-4 keywords"
1718
+ msgstr "Tipp: Länge 2-4 Schlüsselwörter"
1719
+
1720
+ #: themes/default/SQ_BlockSettingsSeo.php:225
1721
+ msgid "First Page Preview (Title, Description, Keywords)"
1722
+ msgstr ""
1723
+
1724
+ #: themes/default/SQ_BlockSettingsSeo.php:235
1725
+ msgid ""
1726
+ "If you don't see any changes in custom optimization, check if another SEO "
1727
+ "plugin affects Squirrly SEO"
1728
+ msgstr ""
1729
+
1730
+ #: themes/default/SQ_BlockSettingsSeo.php:238
1731
+ #, php-format
1732
+ msgid ""
1733
+ "To customize the Title and Description for all the Posts and Pages in your "
1734
+ "site use the %s<strong>Squirrly Snippet Tool</strong>%s while edit a Post/"
1735
+ "Page"
1736
+ msgstr ""
1737
+
1738
+ #: themes/default/SQ_BlockSettingsSeo.php:244
1739
+ msgid "Social Media Options"
1740
+ msgstr ""
1741
+
1742
+ #: themes/default/SQ_BlockSettingsSeo.php:246
1743
+ msgid "Select the language you're using on Social Media"
1744
+ msgstr ""
1745
+
1746
+ #: themes/default/SQ_BlockSettingsSeo.php:392
1747
+ #, php-format
1748
+ msgid "%sHow to pop out in Social Media with your links%s"
1749
+ msgstr ""
1750
+
1751
+ #: themes/default/SQ_BlockSettingsSeo.php:393
1752
+ #, php-format
1753
+ msgid "%sGet busy with Facebook’s new Search Engine functions%s"
1754
+ msgstr ""
1755
+
1756
+ #: themes/default/SQ_BlockSettingsSeo.php:394
1757
+ #, php-format
1758
+ msgid ""
1759
+ "%sHow I Added Twitter Cards in My WordPress for Better Inbound Marketing%s"
1760
+ msgstr ""
1761
+
1762
+ #: themes/default/SQ_BlockSettingsSeo.php:399
1763
+ msgid "What does Squirrly automatically do for Social Media?"
1764
+ msgstr ""
1765
+
1766
+ #: themes/default/SQ_BlockSettingsSeo.php:416
1767
+ msgid ""
1768
+ "Add the <strong>Social Open Graph objects</strong> for a good looking share. "
1769
+ msgstr ""
1770
+
1771
+ #: themes/default/SQ_BlockSettingsSeo.php:438
1772
+ msgid "Add the <strong>Twitter card</strong> in your tweets. "
1773
+ msgstr ""
1774
+
1775
+ #: themes/default/SQ_BlockSettingsSeo.php:447
1776
+ #, php-format
1777
+ msgid ""
1778
+ "Use <strong>Twitter %ssummary_large_image%s</strong> for your tweeter card. "
1779
+ msgstr ""
1780
+
1781
+ #: themes/default/SQ_BlockSettingsSeo.php:449
1782
+ msgid "You need to add your <strong>Twitter account</strong> below"
1783
+ msgstr ""
1784
+
1785
+ #: themes/default/SQ_BlockSettingsSeo.php:459
1786
+ msgid "Social Media Accounts"
1787
+ msgstr ""
1788
+
1789
+ #: themes/default/SQ_BlockSettingsSeo.php:460
1790
+ #, php-format
1791
+ msgid "%sLink your Google+ profile to the content you create%s"
1792
+ msgstr ""
1793
+
1794
+ #: themes/default/SQ_BlockSettingsSeo.php:461
1795
+ #, php-format
1796
+ msgid ""
1797
+ "%sTwitter account is mandatory for <strong>Twitter Card Validation</strong>%s"
1798
+ msgstr ""
1799
+
1800
+ #: themes/default/SQ_BlockSettingsSeo.php:462
1801
+ #, php-format
1802
+ msgid ""
1803
+ "%sAdd all your social accounts for <strong>JSON-LD Semantic SEO</strong>%s"
1804
+ msgstr ""
1805
+
1806
+ #: themes/default/SQ_BlockSettingsSeo.php:463
1807
+ #: themes/default/SQ_BlockSettingsSeo.php:597
1808
+ #, php-format
1809
+ msgid "%sSpecify your social profiles to Google%s"
1810
+ msgstr ""
1811
+
1812
+ #: themes/default/SQ_BlockSettingsSeo.php:471
1813
+ msgid "Your Twitter Account:"
1814
+ msgstr ""
1815
+
1816
+ #: themes/default/SQ_BlockSettingsSeo.php:477
1817
+ msgid "Google Plus Profile:"
1818
+ msgstr ""
1819
+
1820
+ #: themes/default/SQ_BlockSettingsSeo.php:483
1821
+ msgid "Facebook Profile:"
1822
+ msgstr ""
1823
+
1824
+ #: themes/default/SQ_BlockSettingsSeo.php:489
1825
+ msgid "Linkedin Profile:"
1826
+ msgstr ""
1827
+
1828
+ #: themes/default/SQ_BlockSettingsSeo.php:497
1829
+ msgid "XML Sitemap for Google"
1830
+ msgstr ""
1831
+
1832
+ #: themes/default/SQ_BlockSettingsSeo.php:498
1833
+ msgid ""
1834
+ "Squirrly Sitemap is the fastest way to tell Google about your site links. "
1835
+ "<strong>Supports Multisites, Google News, Images, Videos, Custom Post Types, "
1836
+ "Custom Taxonomies and Ecommerce products</strong>"
1837
+ msgstr ""
1838
+
1839
+ #: themes/default/SQ_BlockSettingsSeo.php:499
1840
+ #, php-format
1841
+ msgid "%sHow to submit your sitemap.xml in Google Webmaster Tool%s"
1842
+ msgstr ""
1843
+
1844
+ #: themes/default/SQ_BlockSettingsSeo.php:500
1845
+ #, php-format
1846
+ msgid ""
1847
+ "%s10 Vital To Dos to Feed Your SEO Content Machine After You Post Articles%s"
1848
+ msgstr ""
1849
+
1850
+ #: themes/default/SQ_BlockSettingsSeo.php:510
1851
+ msgid "XML Sitemap Options"
1852
+ msgstr ""
1853
+
1854
+ #: themes/default/SQ_BlockSettingsSeo.php:519
1855
+ msgid "Ping your sitemap to Google and Bing when a new post is published"
1856
+ msgstr ""
1857
+
1858
+ #: themes/default/SQ_BlockSettingsSeo.php:522
1859
+ msgid "Build Sitemaps for"
1860
+ msgstr ""
1861
+
1862
+ #: themes/default/SQ_BlockSettingsSeo.php:525
1863
+ msgid "Google News"
1864
+ msgstr ""
1865
+
1866
+ #: themes/default/SQ_BlockSettingsSeo.php:526
1867
+ msgid "Categories"
1868
+ msgstr ""
1869
+
1870
+ #: themes/default/SQ_BlockSettingsSeo.php:529
1871
+ msgid "Tags"
1872
+ msgstr ""
1873
+
1874
+ #: themes/default/SQ_BlockSettingsSeo.php:531
1875
+ msgid "Archive"
1876
+ msgstr ""
1877
+
1878
+ #: themes/default/SQ_BlockSettingsSeo.php:532
1879
+ msgid "Custom Taxonomies"
1880
+ msgstr ""
1881
+
1882
+ #: themes/default/SQ_BlockSettingsSeo.php:533
1883
+ msgid "Custom Posts"
1884
+ msgstr ""
1885
+
1886
+ #: themes/default/SQ_BlockSettingsSeo.php:537
1887
+ msgid "Include in Sitemaps"
1888
+ msgstr ""
1889
+
1890
+ #: themes/default/SQ_BlockSettingsSeo.php:539
1891
+ msgid "<strong>Images</strong> from posts/pages"
1892
+ msgstr ""
1893
+
1894
+ #: themes/default/SQ_BlockSettingsSeo.php:540
1895
+ msgid "<strong>Videos</strong> (embeded and local media)"
1896
+ msgstr ""
1897
+
1898
+ #: themes/default/SQ_BlockSettingsSeo.php:544
1899
+ msgid "How often do you update your site?"
1900
+ msgstr ""
1901
+
1902
+ #: themes/default/SQ_BlockSettingsSeo.php:546
1903
+ msgid "every day"
1904
+ msgstr ""
1905
+
1906
+ #: themes/default/SQ_BlockSettingsSeo.php:547
1907
+ msgid "1-3 times per week"
1908
+ msgstr ""
1909
+
1910
+ #: themes/default/SQ_BlockSettingsSeo.php:548
1911
+ msgid "1-3 times per month"
1912
+ msgstr ""
1913
+
1914
+ #: themes/default/SQ_BlockSettingsSeo.php:549
1915
+ msgid "1-3 times per year"
1916
+ msgstr ""
1917
+
1918
+ # @ squirrly-seo
1919
+ #: themes/default/SQ_BlockSettingsSeo.php:558
1920
+ msgid "Change the Website Icon"
1921
+ msgstr "Ändern Sie das Website-Symbol"
1922
+
1923
+ #: themes/default/SQ_BlockSettingsSeo.php:559
1924
+ msgid ""
1925
+ "Now, even tablet & smartphone browsers make use of your icons. This makes "
1926
+ "having a good favicon even more important."
1927
+ msgstr ""
1928
+
1929
+ #: themes/default/SQ_BlockSettingsSeo.php:560
1930
+ #, php-format
1931
+ msgid ""
1932
+ "You can use %shttp://convertico.com/%s to convert your photo to icon and "
1933
+ "upload it here after that."
1934
+ msgstr ""
1935
+
1936
+ # @ squirrly-seo
1937
+ #: themes/default/SQ_BlockSettingsSeo.php:566
1938
+ msgid "Upload file:"
1939
+ msgstr "Datei hochladen:"
1940
+
1941
+ # @ squirrly-seo
1942
+ #: themes/default/SQ_BlockSettingsSeo.php:577
1943
+ msgid "Upload"
1944
+ msgstr "Hochladen"
1945
+
1946
+ # @ squirrly-seo
1947
+ #: themes/default/SQ_BlockSettingsSeo.php:581
1948
+ msgid ""
1949
+ "If you don't see the new icon in your browser, empty the browser cache and "
1950
+ "refresh the page."
1951
+ msgstr ""
1952
+ "Wenn Sie das neue Icon nicht in Ihrem Browser sehen, leeren Sie den Browser-"
1953
+ "Cache und aktualisieren Sie die Seite."
1954
+
1955
+ # @ squirrly-seo
1956
+ #: themes/default/SQ_BlockSettingsSeo.php:586
1957
+ msgid "File types: JPG, JPEG, GIF and PNG."
1958
+ msgstr "Dateitypen: JPG, JPEG, GIF und PNG."
1959
+
1960
+ #: themes/default/SQ_BlockSettingsSeo.php:588
1961
+ msgid ""
1962
+ "Does not physically create the favicon.ico file. The best option for "
1963
+ "Multisites."
1964
+ msgstr ""
1965
+
1966
+ #: themes/default/SQ_BlockSettingsSeo.php:593
1967
+ msgid "JSON-LD for Semantic SEO"
1968
+ msgstr ""
1969
+
1970
+ #: themes/default/SQ_BlockSettingsSeo.php:594
1971
+ msgid ""
1972
+ "Squirrly will automatically add the JSON-LD Structured Data in your site."
1973
+ msgstr ""
1974
+
1975
+ #: themes/default/SQ_BlockSettingsSeo.php:595
1976
+ #, php-format
1977
+ msgid "%sJSON-LD's Big Day at Google%s"
1978
+ msgstr ""
1979
+
1980
+ #: themes/default/SQ_BlockSettingsSeo.php:596
1981
+ #, php-format
1982
+ msgid "%sGoogle Testing Tool%s"
1983
+ msgstr ""
1984
+
1985
+ #: themes/default/SQ_BlockSettingsSeo.php:603
1986
+ msgid "Your site type:"
1987
+ msgstr ""
1988
+
1989
+ #: themes/default/SQ_BlockSettingsSeo.php:605
1990
+ msgid "Organization"
1991
+ msgstr ""
1992
+
1993
+ #: themes/default/SQ_BlockSettingsSeo.php:606
1994
+ msgid "Personal"
1995
+ msgstr ""
1996
+
1997
+ #: themes/default/SQ_BlockSettingsSeo.php:612
1998
+ msgid "Your Organization Name:"
1999
+ msgstr ""
2000
+
2001
+ #: themes/default/SQ_BlockSettingsSeo.php:613
2002
+ msgid "Your Name:"
2003
+ msgstr ""
2004
+
2005
+ #: themes/default/SQ_BlockSettingsSeo.php:617
2006
+ msgid "Job Title:"
2007
+ msgstr ""
2008
+
2009
+ #: themes/default/SQ_BlockSettingsSeo.php:621
2010
+ msgid "Logo Url:"
2011
+ msgstr ""
2012
+
2013
+ #: themes/default/SQ_BlockSettingsSeo.php:622
2014
+ msgid "Image Url:"
2015
+ msgstr ""
2016
+
2017
+ #: themes/default/SQ_BlockSettingsSeo.php:623
2018
+ msgid "Select Image"
2019
+ msgstr ""
2020
+
2021
+ #: themes/default/SQ_BlockSettingsSeo.php:626
2022
+ msgid "Contact Phone:"
2023
+ msgstr ""
2024
+
2025
+ #: themes/default/SQ_BlockSettingsSeo.php:630
2026
+ msgid "Contact Type:"
2027
+ msgstr ""
2028
+
2029
+ #: themes/default/SQ_BlockSettingsSeo.php:632
2030
+ msgid "Customer Service"
2031
+ msgstr ""
2032
+
2033
+ #: themes/default/SQ_BlockSettingsSeo.php:633
2034
+ msgid "Technical Support"
2035
+ msgstr ""
2036
+
2037
+ #: themes/default/SQ_BlockSettingsSeo.php:634
2038
+ msgid "Billing Support"
2039
+ msgstr ""
2040
+
2041
+ #: themes/default/SQ_BlockSettingsSeo.php:635
2042
+ msgid "Bill Payment"
2043
+ msgstr ""
2044
+
2045
+ #: themes/default/SQ_BlockSettingsSeo.php:636
2046
+ msgid "Sales"
2047
+ msgstr ""
2048
+
2049
+ #: themes/default/SQ_BlockSettingsSeo.php:637
2050
+ msgid "Reservations"
2051
+ msgstr ""
2052
+
2053
+ #: themes/default/SQ_BlockSettingsSeo.php:638
2054
+ msgid "Credit Card Support"
2055
+ msgstr ""
2056
+
2057
+ #: themes/default/SQ_BlockSettingsSeo.php:639
2058
+ msgid "Emergency"
2059
+ msgstr ""
2060
 
2061
+ #: themes/default/SQ_BlockSettingsSeo.php:640
2062
+ msgid "Baggage Tracking"
2063
+ msgstr ""
 
2064
 
2065
+ #: themes/default/SQ_BlockSettingsSeo.php:641
2066
+ msgid "Roadside Assistance"
2067
+ msgstr ""
 
2068
 
2069
+ #: themes/default/SQ_BlockSettingsSeo.php:642
2070
+ msgid "Package Tracking"
2071
+ msgstr ""
 
2072
 
2073
+ #: themes/default/SQ_BlockSettingsSeo.php:647
2074
+ msgid "Short Description:"
2075
+ msgstr ""
 
2076
 
2077
+ #: themes/default/SQ_BlockSettingsSeo.php:650
2078
+ msgid "Add your social accounts for Json-LD"
2079
+ msgstr ""
 
2080
 
2081
+ #: themes/default/SQ_BlockSettingsSeo.php:652
2082
+ msgid "How will the search results look once google grab your data."
2083
+ msgstr ""
 
2084
 
2085
+ #: themes/default/SQ_BlockSettingsSeo.php:659
2086
+ msgid "Tracking Tools"
2087
+ msgstr ""
 
2088
 
2089
+ #: themes/default/SQ_BlockSettingsSeo.php:660
2090
+ #, php-format
2091
+ msgid "%sHow to Get the Most Out of Google Analytics%s"
2092
+ msgstr ""
2093
 
2094
+ #: themes/default/SQ_BlockSettingsSeo.php:661
2095
+ #, php-format
2096
+ msgid "%sA Beginner’s Guide to Facebook Insights%s"
2097
+ msgstr ""
2098
 
2099
+ #: themes/default/SQ_BlockSettingsSeo.php:668
2100
+ #, php-format
2101
+ msgid "Google %sAnalytics ID%s:"
 
 
2102
  msgstr ""
 
 
2103
 
2104
+ #: themes/default/SQ_BlockSettingsSeo.php:672
2105
+ #, php-format
2106
+ msgid "Facebook Admin ID (for %sInsights%s ):"
2107
+ msgstr ""
2108
 
2109
+ #: themes/default/SQ_BlockSettingsSeo.php:672
2110
+ msgid "Facebook ID or https://www.facebook.com/YourProfileName"
 
 
2111
  msgstr ""
 
 
2112
 
2113
+ #: themes/default/SQ_BlockSettingsSeo.php:676
2114
+ msgid "Pinterest META code:"
2115
+ msgstr ""
 
2116
 
2117
  # @ squirrly-seo
2118
+ #: themes/default/SQ_BlockSupport.php:7
2119
+ msgid "Go to Profile"
2120
+ msgstr "Zum Profil"
2121
 
2122
  # @ squirrly-seo
2123
+ #: themes/default/SQ_BlockSupport.php:7
2124
+ msgid "Profile"
2125
+ msgstr "Profil"
2126
 
2127
  # @ squirrly-seo
2128
+ #: themes/default/SQ_BlockSupport.php:17
2129
+ msgid "Support"
2130
+ msgstr "Support"
2131
 
2132
  # @ squirrly-seo
2133
+ #: themes/default/SQ_BlockSupport.php:20
2134
+ msgid "Need Help with Squirrly SEO?"
2135
+ msgstr "Brauchen Sie Hilfe mit Squirrly SEO?"
2136
 
2137
  # @ squirrly-seo
2138
+ #: themes/default/SQ_BlockSupport.php:24
2139
+ msgid "Send Question"
2140
+ msgstr "Senden Sie Ihre Frage"
2141
 
2142
  # @ squirrly-seo
2143
+ #: themes/default/SQ_BlockSupport.php:27 themes/default/SQ_BlockSupport.php:68
2144
+ msgid "Go to:"
2145
+ msgstr "Gehe zu:"
2146
 
2147
  # @ squirrly-seo
2148
+ #: themes/default/SQ_BlockSupport.php:27 themes/default/SQ_BlockSupport.php:68
2149
+ msgid "support page"
2150
+ msgstr "Support Page"
2151
 
2152
  # @ squirrly-seo
2153
+ #: themes/default/SQ_BlockSupport.php:39
2154
+ msgid "How was your Squirrly experience today?"
2155
+ msgstr "Wie war Ihre Squirrly Erfahrung heute?"
2156
 
2157
  # @ squirrly-seo
2158
+ #: themes/default/SQ_BlockSupport.php:48
2159
+ msgid "How was Squirrly today?"
2160
+ msgstr "Wie war Squirrly heute?"
2161
+
2162
+ #: themes/default/SQ_BlockSupport.php:52
2163
+ msgid "Angry"
2164
+ msgstr ""
2165
+
2166
+ #: themes/default/SQ_BlockSupport.php:53
2167
+ msgid "Sad"
2168
+ msgstr ""
2169
+
2170
+ #: themes/default/SQ_BlockSupport.php:54
2171
+ msgid "Happy"
2172
+ msgstr ""
2173
+
2174
+ #: themes/default/SQ_BlockSupport.php:55
2175
+ msgid "Excited"
2176
+ msgstr ""
2177
+
2178
+ #: themes/default/SQ_BlockSupport.php:56
2179
+ msgid "Love it"
2180
  msgstr ""
 
 
2181
 
2182
  # @ squirrly-seo
2183
+ #: themes/default/SQ_BlockSupport.php:61
2184
+ msgid "Please tell us why?"
2185
+ msgstr "Bitte sagen Sie uns, warum?"
2186
 
2187
+ # @ squirrly-seo
2188
+ #: themes/default/SQ_BlockSupport.php:64
2189
+ msgid "Send feedback"
2190
+ msgstr "Feedback senden"
2191
+
2192
+ # @ squirrly-seo
2193
+ #: themes/default/SQ_BlockSupport.php:73
2194
+ msgid "Thank you! You can send us a happy face tomorow too."
2195
+ msgstr "Danke! Sie können uns auch morgen ein fröhliches Gesicht senden."
2196
 
2197
  # @ squirrly-seo
2198
  #: themes/default/SQ_Blocklogin.php:2
2205
  msgstr "Ihre E-Mail Adresse:"
2206
 
2207
  # @ squirrly-seo
2208
+ #: themes/default/SQ_Blocklogin.php:11
2209
  msgid "Password:"
2210
  msgstr "Passwort:"
2211
 
2212
  # @ squirrly-seo
2213
+ #: themes/default/SQ_Blocklogin.php:13
2214
  msgid "Login"
2215
  msgstr "Login"
2216
 
2217
  # @ squirrly-seo
2218
+ #: themes/default/SQ_Blocklogin.php:14
2219
  msgid "Register"
2220
  msgstr "Registrieren"
2221
 
2222
  # @ squirrly-seo
2223
+ #: themes/default/SQ_Blocklogin.php:14
2224
  msgid "Register to Squirrly.co"
2225
  msgstr "Bei Squirrly.co registrieren"
2226
 
2227
  # @ squirrly-seo
2228
+ #: themes/default/SQ_Blocklogin.php:15
2229
  msgid "Lost password?"
2230
  msgstr "Passwort vergessen?"
2231
 
2232
  # @ squirrly-seo
2233
+ #: themes/default/SQ_Blocklogin.php:15
2234
  msgid "Lost password"
2235
  msgstr "Passwort vergessen"
2236
 
2237
  # @ squirrly-seo
2238
+ #: themes/default/SQ_Blocklogin.php:19
2239
  msgid "Enter your email"
2240
  msgstr "In Artikel einfügen"
2241
 
2242
+ #: themes/default/SQ_Blocklogin.php:20
2243
+ msgid "Your Email:"
2244
+ msgstr ""
 
2245
 
2246
+ #: themes/default/SQ_Blocklogin.php:26
2247
  msgid "Sign Up"
2248
  msgstr "Anmelden"
2249
 
2250
+ #: themes/default/SQ_Blocklogin.php:27
2251
+ msgid "I already have an account"
2252
+ msgstr ""
2253
+
2254
+ #: themes/default/SQ_Blocklogin.php:28
2255
  msgid "This email connects you to Squirrly.co"
2256
  msgstr "This email connects you to Squirrly.co"
2257
 
2258
  # @ squirrly-seo
2259
+ #: themes/default/SQ_Blocklogin.php:38
2260
  msgid "The email address is invalid!"
2261
  msgstr "Die E-Mail-Adresse ist ungültig!"
2262
 
2263
  # @ squirrly-seo
2264
+ #: themes/default/SQ_Blocklogin.php:39
2265
  msgid "Click on Sign Up button and try again ..."
2266
  msgstr "Klicken Sie auf das Bild und versuchen Sie es erneut ..."
2267
 
2268
  # @ squirrly-seo
2269
+ #: themes/default/SQ_Blocklogin.php:40
2270
  msgid "An error occured while logging in!"
2271
  msgstr "Bei der Anmeldung ist ein Fehler aufgetreten!"
2272
 
2273
  # @ squirrly-seo
2274
+ #: themes/default/SQ_Blocklogin.php:41
2275
  msgid "Connecting ..."
2276
  msgstr "Verbinden ..."
2277
 
2278
+ #: themes/default/SQ_Blocklogin.php:50
2279
+ msgid "Restore Squirrly Settings"
2280
+ msgstr ""
2281
+
2282
+ #: themes/default/SQ_Blocklogin.php:64
2283
+ msgid "Congratulations! You are ready to use all the features from Squirrly"
2284
+ msgstr ""
2285
+
2286
  # @ squirrly-seo
2287
  #: themes/default/SQ_Blockresearch.php:2
2288
  msgid "Squirrly Keyword Research"
2294
  msgstr "Löschen"
2295
 
2296
  # @ squirrly-seo
2297
+ #: themes/default/SQ_Blockresearch.php:39
2298
  msgid "Keyword:"
2299
  msgstr "Schlüsselwort:"
2300
 
2301
  # @ squirrly-seo
2302
+ #: themes/default/SQ_Blockresearch.php:41 themes/default/SQ_Blocksearch.php:26
2303
  msgid "Use this keyword"
2304
  msgstr "Dieses Schlüsselwort verwenden"
2305
 
2306
  # @ squirrly-seo
2307
+ #: themes/default/SQ_Blockresearch.php:50
2308
  msgid "+ Add keyword"
2309
  msgstr "Fügen Sie ein anderes Schlüsselwort ein"
2310
 
2311
  # @ squirrly-seo
2312
+ #: themes/default/SQ_Blockresearch.php:51
2313
  msgid "Do the research"
2314
  msgstr "Recherchieren"
2315
 
2316
  # @ squirrly-seo
2317
+ #: themes/default/SQ_Blockresearch.php:54
2318
  msgid "Enter even more keywords."
2319
  msgstr "Geben Sie noch mehrere Schlüsselwörter ein."
2320
 
2321
  # @ squirrly-seo
2322
+ #: themes/default/SQ_Blockresearch.php:55
2323
  msgid "Let some keywords for the next time as well!"
2324
  msgstr "Lassen Sie ein paar Schlüsselwörter auch für das nächste Mal!"
2325
 
2326
+ #: themes/default/SQ_Blocksearch.php:1
2327
+ msgid "Waiting for your editor to load .. "
2328
+ msgstr ""
2329
+
2330
+ #: themes/default/SQ_Blocksearch.php:1
2331
+ msgid ""
2332
+ "Javascript is disabled! You need to activate the javascript in order to use "
2333
+ "Squirrly SEO."
2334
+ msgstr ""
2335
+
2336
  #: themes/default/SQ_Blocksearch.php:3
2337
  msgid "Optimize for Keyword"
2338
  msgstr "Schlüsselwort optimieren"
2339
 
2340
  # @ squirrly-seo
2341
+ #: themes/default/SQ_Blocksearch.php:12
2342
  msgid "Enter a keyword"
2343
  msgstr "Ein Schlüsselwort eingeben"
2344
 
2345
  # @ squirrly-seo
2346
+ #: themes/default/SQ_Blocksearch.php:12
2347
  msgid "for Squirrly Live SEO optimization"
2348
  msgstr "Live-SEO-Optimierung für Squirrly"
2349
 
2350
  # @ squirrly-seo
2351
+ #: themes/default/SQ_Blocksearch.php:25
2352
  msgid "Do a research"
2353
  msgstr "Recherchieren"
2354
 
2355
  # @ squirrly-seo
2356
+ #: themes/default/SQ_Blocksearch.php:30
2357
  msgid "Enter a keyword above!"
2358
  msgstr "Geben Sie oben ein Schlüsselwort ein!"
2359
 
2360
  # @ squirrly-seo
2361
+ #: themes/default/SQ_Blocksearch.php:31
2362
  msgid "I have more then one keyword!"
2363
  msgstr "Ich habe mehr als ein Schlüsselwort!"
2364
 
2365
  # @ squirrly-seo
2366
+ #: themes/default/SQ_Blocksearch.php:37
2367
  msgid "Images"
2368
  msgstr "Bilder"
2369
 
2370
  # @ squirrly-seo
2371
+ #: themes/default/SQ_Blocksearch.php:38
2372
  msgid "Twitter"
2373
  msgstr "Twitter"
2374
 
2375
  # @ squirrly-seo
2376
+ #: themes/default/SQ_Blocksearch.php:39
2377
  msgid "Wiki"
2378
  msgstr "Wiki"
2379
 
2380
  # @ squirrly-seo
2381
+ #: themes/default/SQ_Blocksearch.php:40
2382
  msgid "News"
2383
  msgstr "News"
2384
 
2385
  # @ squirrly-seo
2386
+ #: themes/default/SQ_Blocksearch.php:41
2387
  msgid "Blogs"
2388
  msgstr "Blogs"
2389
 
2390
  # @ squirrly-seo
2391
+ #: themes/default/SQ_Blocksearch.php:42
2392
  msgid "My articles"
2393
  msgstr "Meine Artikel"
2394
 
2395
  # @ squirrly-seo
2396
+ #: themes/default/SQ_Blocksearch.php:47
2397
  msgid "Show only Copyright Free images"
2398
  msgstr "Nur urheberrechtfreie Bilder zeigen"
2399
 
 
2400
  #: themes/default/SQ_Blockseo.php:3
2401
+ msgid "Squirrly SEO Live Assistant"
 
 
 
 
 
 
 
2402
  msgstr ""
 
 
 
 
 
 
 
2403
 
2404
+ #: themes/default/SQ_Blockseo.php:8
2405
+ msgid "Canonical link: "
 
 
 
 
2406
  msgstr ""
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2407
 
2408
+ #: themes/default/SQ_Blockseo.php:10
2409
+ msgid "(only for external sources)"
 
 
 
2410
  msgstr ""
 
 
2411
 
2412
  # @ squirrly-seo
2413
+ #~ msgid "Notice: "
2414
+ #~ msgstr "Hinweis: "
 
2415
 
2416
  # @ squirrly-seo
2417
+ #~ msgid "Note: "
2418
+ #~ msgstr "Notiz: "
 
2419
 
2420
  # @ squirrly-seo
2421
+ #~ msgid "Let Squirrly optimize your SEO automatically (recommended)"
2422
+ #~ msgstr "Lassen Sie Squirrly Ihr SEO automatisch optimieren (empfohlen)"
 
 
 
 
 
2423
 
2424
  # @ squirrly-seo
2425
+ #~ msgid ""
2426
+ #~ "It is highly recommended that you include the %postname% variable in the "
2427
+ #~ "permalink structure."
2428
+ #~ msgstr ""
2429
+ #~ "Es wird stark empfohlen, dass Sie die %postname% Variable in der "
2430
+ #~ "Permalink-Struktur einschließen."
 
2431
 
2432
  # @ squirrly-seo
2433
+ #~ msgid "For Squirrly to work, you have to have tinymce installed!"
2434
+ #~ msgstr "Damit Squirrly arbeiten kann, müssen Sie tinymce installiert haben!"
 
 
 
2435
 
2436
  # @ squirrly-seo
2437
+ #~ msgid "Message sent..."
2438
+ #~ msgstr "Nachricht gesendet ..."
 
2439
 
2440
  # @ squirrly-seo
2441
+ #~ msgid "Use more words in one keyword"
2442
+ #~ msgstr "Verwenden Sie mehrere Wörter in einem Schlüsselwort"
 
 
 
 
 
 
 
 
 
2443
 
2444
  # @ squirrly-seo
2445
+ #~ msgid ""
2446
+ #~ "The system is acting Squirrly. I can not find the link to the server."
2447
+ #~ msgstr "Kann den Link auf den Server nicht finden."
2448
 
2449
  # @ squirrly-seo
2450
+ #~ msgid "File type error: Only JPEG, JPG, GIF or PNG files are allowed."
2451
+ #~ msgstr "Dateityp Fehler: Nur JPEG, JPG, GIF oder PNG-Dateien sind erlaubt."
 
2452
 
2453
  # @ squirrly-seo
2454
+ #~ msgid "Your E-mail:"
2455
+ #~ msgstr "Ihre E-Mail Adresse:"
 
2456
 
2457
  # @ squirrly-seo
2458
+ #~ msgid "Squirrly LIVE SEO assistant"
2459
+ #~ msgstr "Squirrly LIVE SEO-Assistent"
 
2460
 
2461
  # @ squirrly-seo
2462
+ #~ msgid ""
2463
+ #~ "With Squirrly SEO, your Wordpress will get Perfect SEO on each article "
2464
+ #~ "you write."
2465
+ #~ msgstr ""
2466
+ #~ "Mit Squirrly SEO wird jeder Ihrer Wordpress Artikel eine perfekte "
2467
+ #~ "Suchmaschinenoptimierung erhalten. "
2468
 
2469
  # @ squirrly-seo
2470
+ #~ msgid "SEO Software"
2471
+ #~ msgstr "SEO Software"
 
2472
 
2473
  # @ squirrly-seo
2474
+ #~ msgid ""
2475
+ #~ "delivered as a plugin for Wordpress. <br /><br />We connect your "
2476
+ #~ "wordpress with Squirrly, so that we can find the best SEO opportunities, "
2477
+ #~ "give you reports and analyse your competitors."
2478
+ #~ msgstr ""
2479
+ #~ "geliefert als Plugin für Wordpress. <br /> <br /> Wir verbinden Ihr "
2480
+ #~ "Wordpress mit Squirrly, so dass wir die besten SEO-Möglichkeiten finden, "
2481
+ #~ "erstatten Ihnen Bericht und analysieren Ihre Konkurrenz."
2482
 
2483
  # @ squirrly-seo
2484
+ #~ msgid "Write a new post with Squirrly"
2485
+ #~ msgstr "Schreiben Sie einen neuen Beitrag mit Squirrly"
 
2486
 
2487
  # @ squirrly-seo
2488
+ #~ msgid "Squirrly settings"
2489
+ #~ msgstr "Squirrly Einstellungen"
 
2490
 
2491
+ #~ msgid " API"
2492
+ #~ msgstr " API"
 
 
2493
 
2494
  # @ squirrly-seo
2495
+ #~ msgid "API Key:"
2496
+ #~ msgstr "API Key:"
 
2497
 
2498
  # @ squirrly-seo
2499
+ #~ msgid "Let Squirrly automatically optimize my blog"
2500
+ #~ msgstr "Lassen Sie Squirrly automatisch Ihren Blog optimieren"
 
2501
 
2502
  # @ squirrly-seo
2503
+ #~ msgid "adds the correct <strong>title</strong> in the home page"
2504
+ #~ msgstr "fügt den richtigen <strong>Titel</strong> in die Startseite ein"
 
2505
 
2506
  # @ squirrly-seo
2507
+ #~ msgid ""
2508
+ #~ "adds the correct <strong>description</strong> and <strong>keywords</"
2509
+ #~ "strong> in all pages"
2510
+ #~ msgstr ""
2511
+ #~ "fügt die richtige <strong>Beschreibung</strong> und "
2512
+ #~ "<strong>Schlüsselwörter</strong> auf allen Seiten ein"
2513
 
2514
  # @ squirrly-seo
2515
+ #~ msgid "adds <strong>canonical</strong> link in home page"
2516
+ #~ msgstr "fügt den richtigen <strong>canonical</strong> in die Startseite ein"
 
2517
 
2518
  # @ squirrly-seo
2519
+ #~ msgid "adds the <strong>XML Sitemap</strong> for search engines"
2520
+ #~ msgstr "fügt die <strong>XML Sitemap</strong> für Suchmaschinen ein"
 
 
 
 
 
2521
 
2522
  # @ squirrly-seo
2523
+ #~ msgid ""
2524
+ #~ "adds the required METAs for home page (<strong>icon, author, language, dc "
2525
+ #~ "publisher</strong>, etc.)"
2526
+ #~ msgstr ""
2527
+ #~ "fügt die erforderlichen METAs für die Startseite (<strong> icon, Autor, "
2528
+ #~ "Sprache, dc Verlag </strong>, etc.) ein"
2529
 
2530
  # @ squirrly-seo
2531
+ #~ msgid ""
2532
+ #~ "adds the <strong>favicon</strong> and the <strong>icon for Apple devices</"
2533
+ #~ "strong>."
2534
+ #~ msgstr ""
2535
+ #~ "fügt das <strong>favicon</strong> und die <strong>icon für Apple-Geräte</"
2536
+ #~ "strong> ein."
2537
 
2538
  # @ squirrly-seo
2539
+ #~ msgid "Let Squirrly warn me if there are errors related to SEO settings"
2540
+ #~ msgstr ""
2541
+ #~ "Squirrly warnen lassen, wenn es Fehler im Zusammenhang mit den SEO-"
2542
+ #~ "Einstellungen gibt"
2543
 
2544
  # @ squirrly-seo
2545
+ #~ msgid "Squirrly Options"
2546
+ #~ msgstr "Squirrly Optionen"
 
 
2547
 
2548
  # @ squirrly-seo
2549
+ #~ msgid ""
2550
+ #~ "Show <strong>\"Enter a keyword\"</strong> bubble when posting a new "
2551
+ #~ "article."
2552
+ #~ msgstr ""
2553
+ #~ "Zeige <strong>\"Enter a keyword\"</ strong> Bubble, bei einem neuen "
2554
+ #~ "Artikel."
2555
+
2556
+ #~ msgid ""
2557
+ #~ "Always show <strong>Keyword Informations</strong> about the selected "
2558
+ #~ "keyword."
2559
+ #~ msgstr ""
2560
+ #~ "Always show <strong>Keyword Informations</strong> about the selected "
2561
+ #~ "keyword."
2562
 
2563
  # @ squirrly-seo
2564
+ #~ msgid "First page optimization (Title, Description, Keywords)"
2565
+ #~ msgstr ""
2566
+ #~ " Optimierung der ersten Seite (Titel, Beschreibung, Schlüsselwörter)"
 
2567
 
2568
  # @ squirrly-seo
2569
+ #~ msgid "Status:"
2570
+ #~ msgstr "Status:"
 
2571
 
2572
  # @ squirrly-seo
2573
+ #~ msgid "automatically"
2574
+ #~ msgstr "automatisch"
 
2575
 
2576
  # @ squirrly-seo
2577
+ #~ msgid "Change it >>"
2578
+ #~ msgstr "Ändern >>"
 
2579
 
2580
  # @ squirrly-seo
2581
+ #~ msgid "Tips: Length 10-70 chars"
2582
+ #~ msgstr "Tipp: Länge 10-70 Charaktere"
 
2583
 
2584
  # @ squirrly-seo
2585
+ #~ msgid "Tips: Length 70-255 chars"
2586
+ #~ msgstr "Tipp: Länge 70-255 Charaktere"
 
2587
 
2588
  # @ squirrly-seo
2589
+ #~ msgid "<< Leave it automatically"
2590
+ #~ msgstr "<< Lass es automatisch"
 
2591
 
2592
  # @ squirrly-seo
2593
+ #~ msgid "Tool for Search Engines"
2594
+ #~ msgstr "Tool für Suchmaschinen"
 
2595
 
2596
  # @ squirrly-seo
2597
+ #~ msgid "Google Plus URL:"
2598
+ #~ msgstr "Google Plus URL:"
 
2599
 
2600
  # @ squirrly-seo
2601
+ #~ msgid "Google META verification code for %sWebmaster Tool%s`:"
2602
+ #~ msgstr "Google META Bestätigungs-Code für %sWebmaster Tool%s`:"
 
2603
 
2604
  # @ squirrly-seo
2605
+ #~ msgid "Google %sAnalytics ID%s`:"
2606
+ #~ msgstr "Google %sAnalytics ID%s`:"
 
2607
 
2608
  # @ squirrly-seo
2609
+ #~ msgid "Facebook META code (for %sInsights%s )`:"
2610
+ #~ msgstr "Facebook META Code (für %sInsights%s )`:"
 
2611
 
2612
  # @ squirrly-seo
2613
+ #~ msgid "Bing META code (for %sWebmaster Tool%s )`:"
2614
+ #~ msgstr "Bing META Code (für %sWebmaster Tool%s )`:"
 
models/SQ_BlockPostsAnalytics.php CHANGED
@@ -1,25 +1,28 @@
1
  <?php
2
 
3
- class Model_SQ_BlockPostsAnalytics extends WP_List_Table {
 
4
 
5
  public $_column_headers;
6
  public $posts; //save post list for Squirrly call
7
  private $order_posts;
8
 
9
- function __construct() {
 
10
  parent::__construct();
11
  $this->posts = array();
12
  $this->order_posts = array();
13
  }
14
 
15
- function wp_edit_posts_query($q = false) {
 
16
  global $current_user;
17
  $post__in = array(0);
18
  if (false === $q)
19
  $q = $_GET;
20
 
21
- $q['m'] = isset($q['m']) ? (int) $q['m'] : 0;
22
- $q['cat'] = isset($q['cat']) ? (int) $q['cat'] : 0;
23
  $post_stati = get_post_stati();
24
 
25
  if (isset($q['author'])) {
@@ -129,7 +132,7 @@ class Model_SQ_BlockPostsAnalytics extends WP_List_Table {
129
  //////////////
130
 
131
  $per_page = 'edit_post_per_page';
132
- $posts_per_page = (int) get_user_option($per_page);
133
  if (empty($posts_per_page) || $posts_per_page < 1)
134
  $posts_per_page = 20;
135
 
@@ -137,27 +140,39 @@ class Model_SQ_BlockPostsAnalytics extends WP_List_Table {
137
  $posts_per_page = apply_filters('edit_posts_per_page', $posts_per_page, 'post');
138
  $query = compact('post_type', 'author', 'post_status', 'perm', 'order', 'orderby', 'meta_key', 'posts_per_page');
139
 
140
- $query['post__in'] = (array) $post__in;
141
 
142
  wp($query);
143
  return $avail_post_stati;
144
  }
145
 
146
- function order_by_type($query) {
 
147
  global $wpdb;
148
- $query = str_replace("ORDER BY {$wpdb->posts}.post_date", "ORDER BY {$wpdb->posts}.post_type", $query);
 
 
 
 
149
  return $query;
150
  }
151
 
152
- function order_by_rank($query) {
 
153
  global $wpdb;
154
  if (!empty($this->order_posts)) {
155
- $query = str_replace("ORDER BY {$wpdb->posts}.post_date", "ORDER BY FIELD({$wpdb->posts}.ID, " . join(',', $this->order_posts) . ")", $query);
 
 
 
 
 
156
  }
157
  return $query;
158
  }
159
 
160
- function prepare_items() {
 
161
  global $avail_post_stati, $wp_query, $per_page, $mode;
162
 
163
  $avail_post_stati = $this->wp_edit_posts_query();
@@ -178,7 +193,8 @@ class Model_SQ_BlockPostsAnalytics extends WP_List_Table {
178
  ));
179
  }
180
 
181
- function get_column_info() {
 
182
  if (isset($this->_column_headers))
183
  return $this->_column_headers;
184
 
@@ -190,7 +206,7 @@ class Model_SQ_BlockPostsAnalytics extends WP_List_Table {
190
  if (empty($data))
191
  continue;
192
 
193
- $data = (array) $data;
194
  if (!isset($data[1]))
195
  $data[1] = false;
196
 
@@ -202,7 +218,8 @@ class Model_SQ_BlockPostsAnalytics extends WP_List_Table {
202
  return $this->_column_headers;
203
  }
204
 
205
- function get_sortable_columns() {
 
206
  return array(
207
  'title' => 'title',
208
  'type' => 'type',
@@ -212,12 +229,13 @@ class Model_SQ_BlockPostsAnalytics extends WP_List_Table {
212
  );
213
  }
214
 
215
- function print_column_headers($with_id = true) {
 
216
  $strcolumn = '';
217
 
218
- list( $columns, $sortable ) = $this->get_column_info();
219
 
220
- $current_url = ( is_ssl() ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
221
  $current_url = remove_query_arg('paged', $current_url);
222
 
223
  if (isset($_GET['orderby']))
@@ -242,7 +260,7 @@ class Model_SQ_BlockPostsAnalytics extends WP_List_Table {
242
  }
243
 
244
  if (isset($sortable[$column_key])) {
245
- list( $orderby, $desc_first ) = $sortable[$column_key];
246
 
247
  if ($current_orderby == $orderby) {
248
  $order = 'asc' == $current_order ? 'desc' : 'asc';
@@ -267,7 +285,8 @@ class Model_SQ_BlockPostsAnalytics extends WP_List_Table {
267
  return $strcolumn;
268
  }
269
 
270
- function get_columns() {
 
271
  $post_type = 'post';
272
 
273
  $posts_columns = array();
@@ -289,7 +308,8 @@ class Model_SQ_BlockPostsAnalytics extends WP_List_Table {
289
  return $posts_columns;
290
  }
291
 
292
- function display_tablenav($which) {
 
293
  if ('top' == $which)
294
  wp_nonce_field('bulk-' . $this->_args['plural']);
295
 
@@ -298,13 +318,29 @@ class Model_SQ_BlockPostsAnalytics extends WP_List_Table {
298
  /* includes the block from theme directory */
299
  ?>
300
  <div class="tablenav <?php echo esc_attr($which); ?>">
301
- <div class="alignleft actions"><input type="submit" name="" id="post-query-submit" class="button" value="<?php echo __('Reset Filters') ?>" onclick="location.href = '?page=sq_posts';"></div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
302
  <?php
303
  $this->extra_tablenav($which);
304
  $this->pagination($which);
305
  ?>
306
 
307
- <br class="clear" />
308
  </div>
309
  <?php
310
  $strnav = ob_get_contents();
@@ -312,7 +348,8 @@ class Model_SQ_BlockPostsAnalytics extends WP_List_Table {
312
  return $strnav;
313
  }
314
 
315
- function display_rows() {
 
316
  global $wp_query, $post;
317
  static $alternate;
318
  $strrow = '';
@@ -333,7 +370,8 @@ class Model_SQ_BlockPostsAnalytics extends WP_List_Table {
333
  return $strrow;
334
  }
335
 
336
- public function single_row($a_post) {
 
337
  global $post;
338
 
339
  $strcolumn = '';
@@ -351,7 +389,6 @@ class Model_SQ_BlockPostsAnalytics extends WP_List_Table {
351
  $post_type_object = get_post_type_object($post->post_type);
352
  $can_edit_post = current_user_can($post_type_object->cap->edit_post, $post->ID);
353
  $json = SQ_ObjController::getModel('SQ_Post')->getKeyword($post->ID);
354
-
355
  foreach ($columns as $key => $column) {
356
  switch ($key) {
357
  case 'title':
@@ -386,6 +423,7 @@ class Model_SQ_BlockPostsAnalytics extends WP_List_Table {
386
  case 'keywords':
387
  $value = '';
388
  if (isset($json->keyword)) {
 
389
  $value = sprintf('<a href="%s">%s</a>', esc_attr(add_query_arg(array('page' => 'sq_posts', 'keyword' => strtolower($json->keyword)), 'admin.php')), $json->keyword);
390
  } else {
391
  $value = __('No Tags');
@@ -398,9 +436,9 @@ class Model_SQ_BlockPostsAnalytics extends WP_List_Table {
398
  if ($json->rank == -2) {
399
  $value = __('Could not receive data from google (Err: blocked IP)');
400
  } elseif ($json->rank == -1) {
401
- $value = __('> 100');
402
  } elseif ($json->rank == 0) {
403
- $value = __('URL Indexed');
404
  } elseif ($json->rank > 0) {
405
  $value = '<strong style="display:block; font-size: 120%; width: 100px; margin: 0 auto; text-align:right;">' . sprintf(__('%s'), $json->rank) . '</strong>' . ((isset($json->country)) ? ' (' . $json->country . ')' : '');
406
  }
@@ -440,9 +478,9 @@ class Model_SQ_BlockPostsAnalytics extends WP_List_Table {
440
  if ($time_diff > 0)
441
  $value .= '<strong class="attention">' . __('Missed schedule') . '</strong>';
442
  else
443
- $value .=__('Scheduled');
444
  } else {
445
- $value .=__('Last Modified');
446
  }
447
  }
448
  $class = '';
@@ -462,12 +500,14 @@ class Model_SQ_BlockPostsAnalytics extends WP_List_Table {
462
  return $strcolumn;
463
  }
464
 
465
- public function hookFooter() {
 
466
  $this->postlist->setPosts($this->posts);
467
  $this->postlist->hookFooter();
468
  }
469
 
470
- public function getScripts() {
 
471
  return $this->postlist->getScripts();
472
  }
473
 
1
  <?php
2
 
3
+ class Model_SQ_BlockPostsAnalytics extends WP_List_Table
4
+ {
5
 
6
  public $_column_headers;
7
  public $posts; //save post list for Squirrly call
8
  private $order_posts;
9
 
10
+ function __construct()
11
+ {
12
  parent::__construct();
13
  $this->posts = array();
14
  $this->order_posts = array();
15
  }
16
 
17
+ function wp_edit_posts_query($q = false)
18
+ {
19
  global $current_user;
20
  $post__in = array(0);
21
  if (false === $q)
22
  $q = $_GET;
23
 
24
+ $q['m'] = isset($q['m']) ? (int)$q['m'] : 0;
25
+ $q['cat'] = isset($q['cat']) ? (int)$q['cat'] : 0;
26
  $post_stati = get_post_stati();
27
 
28
  if (isset($q['author'])) {
132
  //////////////
133
 
134
  $per_page = 'edit_post_per_page';
135
+ $posts_per_page = (int)get_user_option($per_page);
136
  if (empty($posts_per_page) || $posts_per_page < 1)
137
  $posts_per_page = 20;
138
 
140
  $posts_per_page = apply_filters('edit_posts_per_page', $posts_per_page, 'post');
141
  $query = compact('post_type', 'author', 'post_status', 'perm', 'order', 'orderby', 'meta_key', 'posts_per_page');
142
 
143
+ $query['post__in'] = (array)$post__in;
144
 
145
  wp($query);
146
  return $avail_post_stati;
147
  }
148
 
149
+ function order_by_type($query)
150
+ {
151
  global $wpdb;
152
+ if (strpos($query, 'ORDER BY') !== false) {
153
+ $query = str_replace("ORDER BY {$wpdb->posts}.post_date", "ORDER BY {$wpdb->posts}.post_type", $query);
154
+ } else {
155
+ $query = str_replace("LIMIT", "ORDER BY {$wpdb->posts}.post_type LIMIT", $query);
156
+ }
157
  return $query;
158
  }
159
 
160
+ function order_by_rank($query)
161
+ {
162
  global $wpdb;
163
  if (!empty($this->order_posts)) {
164
+ if (strpos($query, 'ORDER BY') !== false) {
165
+ $query = str_replace("ORDER BY {$wpdb->posts}.post_date", "ORDER BY FIELD({$wpdb->posts}.ID, " . join(',', $this->order_posts) . ")", $query);
166
+ } else {
167
+ $query = str_replace("LIMIT", "ORDER BY FIELD({$wpdb->posts}.ID, " . join(',', $this->order_posts) . ") LIMIT", $query);
168
+
169
+ }
170
  }
171
  return $query;
172
  }
173
 
174
+ function prepare_items()
175
+ {
176
  global $avail_post_stati, $wp_query, $per_page, $mode;
177
 
178
  $avail_post_stati = $this->wp_edit_posts_query();
193
  ));
194
  }
195
 
196
+ function get_column_info()
197
+ {
198
  if (isset($this->_column_headers))
199
  return $this->_column_headers;
200
 
206
  if (empty($data))
207
  continue;
208
 
209
+ $data = (array)$data;
210
  if (!isset($data[1]))
211
  $data[1] = false;
212
 
218
  return $this->_column_headers;
219
  }
220
 
221
+ function get_sortable_columns()
222
+ {
223
  return array(
224
  'title' => 'title',
225
  'type' => 'type',
229
  );
230
  }
231
 
232
+ function print_column_headers($with_id = true)
233
+ {
234
  $strcolumn = '';
235
 
236
+ list($columns, $sortable) = $this->get_column_info();
237
 
238
+ $current_url = (is_ssl() ? 'https://' : 'http://') . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
239
  $current_url = remove_query_arg('paged', $current_url);
240
 
241
  if (isset($_GET['orderby']))
260
  }
261
 
262
  if (isset($sortable[$column_key])) {
263
+ list($orderby, $desc_first) = $sortable[$column_key];
264
 
265
  if ($current_orderby == $orderby) {
266
  $order = 'asc' == $current_order ? 'desc' : 'asc';
285
  return $strcolumn;
286
  }
287
 
288
+ function get_columns()
289
+ {
290
  $post_type = 'post';
291
 
292
  $posts_columns = array();
308
  return $posts_columns;
309
  }
310
 
311
+ function display_tablenav($which)
312
+ {
313
  if ('top' == $which)
314
  wp_nonce_field('bulk-' . $this->_args['plural']);
315
 
318
  /* includes the block from theme directory */
319
  ?>
320
  <div class="tablenav <?php echo esc_attr($which); ?>">
321
+ <div class="alignleft actions">
322
+ <input type="submit" name="" id="post-query-submit" class="button" value="<?php echo __('Reset Filters') ?>" onclick="location.href = '?page=sq_posts';">
323
+ </div>
324
+ <?php if ('top' == $which) { ?>
325
+ <div class="alignleft actions">
326
+ <input type="search" id="post-search-input" autofocus name="s" value="<?php echo SQ_Tools::getValue('s') ?>" onkeypress="if(sq_check_enter(event)){jQuery('#search-submit').trigger('click')}">
327
+ <input type="submit" id="search-submit" class="button" onclick="location.href = '?page=sq_posts&s=' + encodeURIComponent(jQuery('#post-search-input').val());" value="<?php echo __('Search Posts') ?>">
328
+ <script>
329
+ function sq_check_enter(e) {
330
+ if (e.keyCode == 13) {
331
+ return true;
332
+ }
333
+ return false;
334
+ }
335
+ </script>
336
+ </div>
337
+ <?php } ?>
338
  <?php
339
  $this->extra_tablenav($which);
340
  $this->pagination($which);
341
  ?>
342
 
343
+ <br class="clear"/>
344
  </div>
345
  <?php
346
  $strnav = ob_get_contents();
348
  return $strnav;
349
  }
350
 
351
+ function display_rows()
352
+ {
353
  global $wp_query, $post;
354
  static $alternate;
355
  $strrow = '';
370
  return $strrow;
371
  }
372
 
373
+ public function single_row($a_post)
374
+ {
375
  global $post;
376
 
377
  $strcolumn = '';
389
  $post_type_object = get_post_type_object($post->post_type);
390
  $can_edit_post = current_user_can($post_type_object->cap->edit_post, $post->ID);
391
  $json = SQ_ObjController::getModel('SQ_Post')->getKeyword($post->ID);
 
392
  foreach ($columns as $key => $column) {
393
  switch ($key) {
394
  case 'title':
423
  case 'keywords':
424
  $value = '';
425
  if (isset($json->keyword)) {
426
+ $json->keyword = str_replace('\\', '', $json->keyword);
427
  $value = sprintf('<a href="%s">%s</a>', esc_attr(add_query_arg(array('page' => 'sq_posts', 'keyword' => strtolower($json->keyword)), 'admin.php')), $json->keyword);
428
  } else {
429
  $value = __('No Tags');
436
  if ($json->rank == -2) {
437
  $value = __('Could not receive data from google (Err: blocked IP)');
438
  } elseif ($json->rank == -1) {
439
+ $value = __('Not in top 100 for: <br /> "'.$json->keyword.'"');
440
  } elseif ($json->rank == 0) {
441
+ $value = __('The URL is indexed');
442
  } elseif ($json->rank > 0) {
443
  $value = '<strong style="display:block; font-size: 120%; width: 100px; margin: 0 auto; text-align:right;">' . sprintf(__('%s'), $json->rank) . '</strong>' . ((isset($json->country)) ? ' (' . $json->country . ')' : '');
444
  }
478
  if ($time_diff > 0)
479
  $value .= '<strong class="attention">' . __('Missed schedule') . '</strong>';
480
  else
481
+ $value .= __('Scheduled');
482
  } else {
483
+ $value .= __('Last Modified');
484
  }
485
  }
486
  $class = '';
500
  return $strcolumn;
501
  }
502
 
503
+ public function hookFooter()
504
+ {
505
  $this->postlist->setPosts($this->posts);
506
  $this->postlist->hookFooter();
507
  }
508
 
509
+ public function getScripts()
510
+ {
511
  return $this->postlist->getScripts();
512
  }
513
 
models/SQ_BlockSettingsSeo.php CHANGED
@@ -209,7 +209,7 @@ class Model_SQ_BlockSettingsSeo
209
  if ($account <> '' && strpos($account, 'google.') === false) {
210
  $account = 'https://plus.google.com/' . $account;
211
  }
212
- return $account;
213
  }
214
 
215
  /**
@@ -238,6 +238,23 @@ class Model_SQ_BlockSettingsSeo
238
  return $account;
239
  }
240
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
241
  /**
242
  * Add the image to the root path
243
  *
209
  if ($account <> '' && strpos($account, 'google.') === false) {
210
  $account = 'https://plus.google.com/' . $account;
211
  }
212
+ return str_replace(" ", "+", $account);
213
  }
214
 
215
  /**
238
  return $account;
239
  }
240
 
241
+ public function checkPinterestAccount($account)
242
+ {
243
+ if ($account <> '' && strpos($account, 'pinterest.com') === false) {
244
+ $account = 'https://www.pinterest.com/' . $account;
245
+ }
246
+ return $account;
247
+ }
248
+
249
+ public function checkInstagramAccount($account)
250
+ {
251
+ if ($account <> '' && strpos($account, 'instagram.com') === false) {
252
+ $account = 'https://www.instagram.com/' . $account;
253
+ }
254
+ return $account;
255
+ }
256
+
257
+
258
  /**
259
  * Add the image to the root path
260
  *
models/SQ_Blocksearch.php CHANGED
@@ -6,69 +6,5 @@
6
  */
7
  class Model_SQ_Blocksearch {
8
 
9
- public $results;
10
-
11
- public function searchImage($get) {
12
- $pack = $results_free = $results = array();
13
- $params = array('api_key' => '8c824e0994879c3580200f2eb7d4bdd7',
14
- 'method' => 'flickr.photos.search',
15
- 'format' => 'php_serial',
16
- 'tag_mode' => 'any',
17
- 'per_page' => $get['nrb'],
18
- 'page' => $get['page'],
19
- 'sort' => 'interestingness-desc',
20
- // 'sort' => 'relevance',
21
- 'tags' => $get['q'],
22
- // 'privacy_filter' => '1,2,3,4',
23
- 'license' => '7'
24
- );
25
-
26
-
27
- $this->doFlickrSearch($params, 1);
28
-
29
- //Search for images with licence attributes
30
- $params['license'] = '1,2,3,4,5,6';
31
- $this->doFlickrSearch($params);
32
-
33
- if (is_array($this->results) && count($this->results) > 0)
34
- return json_encode($this->results);
35
-
36
- return false;
37
- }
38
-
39
- /**
40
- * Get the images from flicker
41
- * @param array $params
42
- * @param integer $free: 1|0
43
- */
44
- private function doFlickrSearch($params, $free = 0) {
45
- foreach ($params as $k => $v) {
46
- $pack[] = urlencode($k) . '=' . urlencode($v);
47
- }
48
-
49
- //Call Flickr
50
- $url = "https://api.flickr.com/services/rest/?" . implode('&', $pack);
51
-
52
- $rsp = wp_remote_fopen($url);
53
- $rsp_obj = unserialize($rsp);
54
-
55
- // if we have photos
56
- if ($rsp_obj && isset($rsp_obj['photos']) && $rsp_obj['photos']['total'] > 0) {
57
- foreach ($rsp_obj['photos']['photo'] as $photo) {
58
-
59
- $src = 'http://farm' . $photo['farm'] . '.static.flickr.com/' . $photo['server'] . '/' . $photo['id'] . '_' . $photo['secret'];
60
- $source = 'http://www.flickr.com/photos/' . $photo['owner'] . '/' . $photo['id'];
61
-
62
- $this->results['responseData']['results'][] = array('tbUrl' => $src . '_s.jpg',
63
- 'url' => $src . '.jpg',
64
- 'attribute' => ($free == 0) ? $source : '',
65
- 'width' => '',
66
- 'height' => '',
67
- 'contentNoFormatting' => $photo['title']);
68
- }
69
- }
70
-
71
- return false;
72
- }
73
 
74
  }
6
  */
7
  class Model_SQ_Blocksearch {
8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9
 
10
  }
models/SQ_Frontend.php CHANGED
@@ -23,6 +23,8 @@ class Model_SQ_Frontend {
23
 
24
  /** @var array */
25
  private $thumb_images;
 
 
26
 
27
  /** @var integer */
28
  private $min_title_length = 10;
@@ -171,7 +173,7 @@ class Model_SQ_Frontend {
171
  //get the post from shop if woocommerce is installed
172
  if (!isset($this->post)) {
173
  if (function_exists('is_shop') && is_shop()) {
174
- $this->post = get_post(woocommerce_get_page_id('shop'));
175
  } elseif (isset($post->ID)) {
176
  $this->post = get_post($post->ID);
177
  }
@@ -179,6 +181,13 @@ class Model_SQ_Frontend {
179
 
180
  if ($this->is_squirrly()) {
181
 
 
 
 
 
 
 
 
182
  preg_match("/<head[^>]*>/i", $buffer, $out);
183
  if (!empty($out)) {
184
  $this->meta['blogname'] = get_bloginfo('name');
@@ -191,7 +200,7 @@ class Model_SQ_Frontend {
191
 
192
  if ((SQ_Tools::$options['sq_auto_description'] == 1 && $this->isHomePage()) || !$this->isHomePage()) {
193
  //clear the existing description and keywords
194
- $buffer = @preg_replace('/<meta[^>]*(name|property)=["\'](description|keywords)["\'][^>]*content=["\'][^"\'>]*["\'][^>]*>[\n\r]*/si', '', $buffer, -1, $count);
195
  }
196
  if (SQ_Tools::$options['sq_auto_facebook'] == 1) {
197
  $buffer = @preg_replace('/<meta[^>]*(name|property)=["\'](og:|article:)[^"\'>]+["\'][^>]*content=["\'][^"\'>]+["\'][^>]*>[\n\r]*/si', '', $buffer, -1);
@@ -215,11 +224,9 @@ class Model_SQ_Frontend {
215
  if ((SQ_Tools::$options['sq_auto_title'] == 1 && $this->isHomePage()) || !$this->isHomePage()) {
216
  if (isset($this->title) && $this->title <> '') {
217
  //replace the existing title
218
- $buffer = @preg_replace('/<title[^<>]*>([^<>]*)<\/title>/si', '', $buffer, 1);
219
- $buffer = @preg_replace('/(<head[^>]*>)/si', sprintf("$1\n<title>%s</title>", $this->title) . "\n", $buffer, 1);
220
  }
221
- } else {
222
- $buffer = @preg_replace('/(<head[^>]*>)/si', sprintf("$1%s", $this->getHeader()) . "\n", $buffer, 1);
223
  }
224
 
225
  if (strpos($buffer, '<squirrly />') !== false) {
@@ -290,6 +297,7 @@ class Model_SQ_Frontend {
290
  /* SEO optimizer tool */
291
  $ret .= $this->getGoogleWT();
292
  $ret .= $this->getGoogleAnalytics();
 
293
  $ret .= $this->getFacebookIns();
294
  $ret .= $this->getBingWT();
295
  $ret .= $this->getPinterest();
@@ -303,7 +311,7 @@ class Model_SQ_Frontend {
303
  return $ret;
304
  }
305
 
306
- public function setPost($newpost){
307
  global $post;
308
  $this->post = $post = $newpost;
309
  }
@@ -384,9 +392,9 @@ class Model_SQ_Frontend {
384
  if (!empty($this->thumb_images)) {
385
  foreach ($this->thumb_images as $image) {
386
  $meta .= sprintf('<meta property="og:image" content="%s" />', $image['src']) . "\n";
387
- $meta .= sprintf('<meta property="og:image:width" content="%s" />', ((isset($image['width']) && $image['width'] <> '' ) ? (int) $image['width'] : 500)) . "\n";
388
  if (isset($image['height']) && $image['height'] <> '')
389
- $meta .= sprintf('<meta property="og:image:height" content="%s" />', (int) $image['height']) . "\n";
390
  }
391
  }
392
 
@@ -410,6 +418,55 @@ class Model_SQ_Frontend {
410
  $meta .= sprintf('<meta property="og:type" content="%s" />', 'profile') . "\n";
411
  $meta .= sprintf('<meta property="profile:first_name" content="%s" />', get_the_author_meta('first_name', $author->ID)) . "\n";
412
  $meta .= sprintf('<meta property="profile:last_name" content="%s" />', get_the_author_meta('last_name', $author->ID)) . "\n";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
413
  } elseif (!$this->isHomePage() && (is_single() || is_page())) {
414
 
415
 
@@ -441,11 +498,10 @@ class Model_SQ_Frontend {
441
  * @return string
442
  */
443
  private function setCanonical() {
444
-
445
- if ($this->url) {
446
  remove_action('wp_head', 'rel_canonical');
447
 
448
- return sprintf("<link rel=\"canonical\" href=\"%s\" />", $this->url) . "\n";
449
  }
450
 
451
  return '';
@@ -493,7 +549,7 @@ class Model_SQ_Frontend {
493
  $this->title = $this->grabTitleFromPost();
494
  }
495
  if (is_paged()) {
496
- $this->title .= $sep . __('Page', _SQ_PLUGIN_NAME_) . " " . get_query_var('paged');
497
  }
498
  } elseif (is_author()) { //for author
499
  if ($this->title == '') {
@@ -503,12 +559,12 @@ class Model_SQ_Frontend {
503
  $this->title = __('About') . " " . ucfirst($this->getAuthor('display_name'));
504
  }
505
  if (is_paged()) {
506
- $this->title .= $sep . __('Page', _SQ_PLUGIN_NAME_) . " " . get_query_var('paged');
507
  }
508
  } elseif (is_tag()) { //for tags
509
  if (is_paged()) {
510
  $tag = get_query_var('tag');
511
- $this->title = ucfirst(str_replace('-', ' ', $tag)) . $sep . __('Page', _SQ_PLUGIN_NAME_) . " " . get_query_var('paged');
512
  }
513
  } elseif (is_archive()) { //for archive and products
514
  if (isset($this->post) && isset($this->post->ID)) {
@@ -530,7 +586,7 @@ class Model_SQ_Frontend {
530
  }
531
 
532
  if (is_paged()) {
533
- $this->title .= $sep . __('Page', _SQ_PLUGIN_NAME_) . " " . get_query_var('paged');
534
  }
535
  } elseif (is_single() || is_page() || is_singular() || in_array(get_post_type(), $this->post_type)) {
536
  if (isset($this->post) && isset($this->post->ID)) {
@@ -575,6 +631,7 @@ class Model_SQ_Frontend {
575
  public function clearTitle($title) {
576
  if ($title <> '') {
577
  $title = SQ_Tools::i18n(trim(esc_html(ent2ncr(strip_tags($title)))));
 
578
  }
579
  return $title;
580
  }
@@ -593,6 +650,20 @@ class Model_SQ_Frontend {
593
  $post = $this->post;
594
  }
595
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
596
  if ($post && isset($post->ID)) {
597
  if ($url = $this->getAdvancedMeta($post->ID, 'ogimage')) {
598
  $images[] = array(
@@ -602,6 +673,8 @@ class Model_SQ_Frontend {
602
  'width' => null,
603
  'height' => null,
604
  );
 
 
605
  }
606
  if ($all || empty($images)) {
607
  if (has_post_thumbnail($post->ID)) {
@@ -657,15 +730,17 @@ class Model_SQ_Frontend {
657
  }
658
 
659
  if ($post && isset($post->ID)) {
660
- if (isset($post->post_content)) {
661
- preg_match('/(?:http(?:s)?:\/\/)?(?:www\.)?(?:youtu\.be\/|youtube\.com\/(?:embed)\/)([^\?&\"\'>\s]+)/si', $post->post_content, $match);
 
 
662
 
663
- if (isset($match[0])) {
664
- if (strpos($match[0], '//') !== false && strpos($match[0], 'http') === false) {
665
- $match[0] = 'http:' . $match[0];
 
 
666
  }
667
- $videos[] = esc_url($match[0]);
668
- }
669
 
670
  // preg_match('/(?:http(?:s)?:\/\/)?(?:fast\.wistia\.net\/(?:embed)\/(?:iframe)\/)([^\?&\"\'>\s]+)/si', $post->post_content, $match);
671
  //
@@ -676,22 +751,23 @@ class Model_SQ_Frontend {
676
  // $videos[] = esc_url($match[0]);
677
  // }
678
 
679
- preg_match('/(?:http(?:s)?:\/\/)?(?:fwd4\.wistia\.com\/(?:medias)\/)([^\?&\"\'>\s]+)/si', $post->post_content, $match);
680
 
681
- if (isset($match[0])) {
682
- $videos[] = esc_url('http://fast.wistia.net/embed/iframe/' . $match[1]);
683
- }
684
 
685
- preg_match('/class=["|\']([^"\']*wistia_async_([^\?&\"\'>\s]+)[^"\']*["|\'])/si', $post->post_content, $match);
686
 
687
- if (isset($match[0])) {
688
- $videos[] = esc_url('http://fast.wistia.net/embed/iframe/' . $match[2]);
689
- }
690
 
691
- preg_match('/src=["|\']([^"\']*(.mpg|.mpeg|.mp4|.mov|.wmv|.asf|.avi|.ra|.ram|.rm|.flv)["|\'])/i', $post->post_content, $match);
692
 
693
- if (isset($match[1])) {
694
- $videos[] = esc_url($match[1]);
 
695
  }
696
  }
697
  }
@@ -703,6 +779,7 @@ class Model_SQ_Frontend {
703
  $this->getCustomDescription();
704
  return $this->description;
705
  }
 
706
  /**
707
  * Get the description from last/current article
708
  *
@@ -727,7 +804,7 @@ class Model_SQ_Frontend {
727
  }
728
 
729
  if (is_paged()) {
730
- $description .= $sep . __('Page', _SQ_PLUGIN_NAME_) . " " . get_query_var('paged');
731
  }
732
 
733
  if ($this->isHomePage() && $description <> '') {
@@ -741,7 +818,7 @@ class Model_SQ_Frontend {
741
  $description = $this->grabDescriptionFromPost() . $sep . $this->getAuthor('display_name');
742
  }
743
  if (is_paged()) {
744
- $description .= $sep . __('Page', _SQ_PLUGIN_NAME_) . " " . get_query_var('paged');
745
  }
746
  } elseif (is_tag()) { //for tags
747
  $description = tag_description();
@@ -750,7 +827,7 @@ class Model_SQ_Frontend {
750
  $description = ucfirst($tag) . $sep . $this->grabDescriptionFromPost();
751
  }
752
  if (is_paged()) {
753
- $description .= $sep . __('Page', _SQ_PLUGIN_NAME_) . " " . get_query_var('paged');
754
  }
755
  } elseif (is_archive()) { //for archive and products
756
  if (isset($this->post) && isset($this->post->ID)) {
@@ -776,7 +853,7 @@ class Model_SQ_Frontend {
776
  }
777
 
778
  if (is_paged()) {
779
- $description .= $sep . __('Page', _SQ_PLUGIN_NAME_) . " " . get_query_var('paged');
780
  }
781
  } elseif (is_single() || is_page() || is_singular() || $this->checkPostsPage() || in_array(get_post_type(), $this->post_type)) {
782
  if (isset($this->post) && isset($this->post->ID)) {
@@ -792,20 +869,20 @@ class Model_SQ_Frontend {
792
  }
793
  }
794
  }
795
- }else
796
 
797
- /* Check if is a predefined TitleIn Snippet */
798
- if (SQ_Tools::$options['sq_auto_description'] == 1) {
799
 
800
- //If the home page is a static page that has custom snippet
801
- if (is_page() && isset($this->post) && isset($this->post->ID) && $this->getAdvancedMeta($this->post->ID, 'description') <> '') {
802
- $description = $this->getAdvancedMeta($this->post->ID, 'description');
803
- } elseif (SQ_Tools::$options ['sq_fp_description'] <> '') {
804
- $description = strip_tags(SQ_Tools::$options['sq_fp_description']);
805
- } else {
806
- $description = $this->grabDescriptionFromPost();
 
807
  }
808
- }
809
 
810
  $description = (($description <> '') ? $description : $this->title);
811
  if ($description <> '') {
@@ -830,6 +907,7 @@ class Model_SQ_Frontend {
830
  }
831
 
832
  $description = SQ_Tools::i18n(trim(esc_html(ent2ncr(strip_tags($description)))));
 
833
  }
834
 
835
  return $description;
@@ -854,7 +932,8 @@ class Model_SQ_Frontend {
854
  /* Check if is a predefined Keyword */
855
  if (SQ_Tools::$options['sq_auto_description'] == 1) { //
856
  if (($this->isHomePage() &&
857
- SQ_Tools::$options['sq_fp_keywords'] <> '')) {
 
858
  $keywords = strip_tags(SQ_Tools::$options ['sq_fp_keywords']);
859
  }
860
  }
@@ -876,7 +955,7 @@ class Model_SQ_Frontend {
876
  private function getCopyright() {
877
  $meta = '';
878
 
879
- $name = $this->getAuthor();
880
  if ($name == '') {
881
  $name = $this->meta['blogname'];
882
  }
@@ -982,7 +1061,7 @@ class Model_SQ_Frontend {
982
  $date = null;
983
  $meta = '';
984
 
985
- $name = $this->getAuthor();
986
  if (!$name) {
987
  $name = $this->meta['blogname'];
988
  }
@@ -1048,10 +1127,13 @@ class Model_SQ_Frontend {
1048
  $sq_google_analytics = SQ_Tools::$options['sq_google_analytics'];
1049
 
1050
  if ($sq_google_analytics <> '') {
1051
- SQ_ObjController::getController('SQ_DisplayController', false)
 
 
 
1052
  ->loadMedia('https://www.google-analytics.com/analytics.js');
1053
 
1054
- return sprintf("<script>
1055
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
1056
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
1057
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -1059,8 +1141,46 @@ class Model_SQ_Frontend {
1059
 
1060
  ga('create', '%s', 'auto');
1061
  ga('send', 'pageview');
1062
-
1063
  </script>", $sq_google_analytics);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1064
  }
1065
 
1066
  return false;
@@ -1161,18 +1281,24 @@ class Model_SQ_Frontend {
1161
 
1162
  if ($meta <> '') {
1163
  $social = '';
1164
- if (isset(SQ_Tools::$options['sq_twitter_account'])) {
1165
  $social .= ($social <> '' ? "," : '') . '"' . SQ_Tools::$options['sq_twitter_account'] . '"';
1166
  }
1167
- if (isset(SQ_Tools::$options['sq_facebook_account'])) {
1168
  $social .= ($social <> '' ? "," : '') . '"' . SQ_Tools::$options['sq_facebook_account'] . '"';
1169
  }
1170
- if (isset(SQ_Tools::$options['sq_google_plus'])) {
1171
  $social .= ($social <> '' ? "," : '') . '"' . SQ_Tools::$options['sq_google_plus'] . '"';
1172
  }
1173
- if (isset(SQ_Tools::$options['sq_linkedin_account'])) {
1174
  $social .= ($social <> '' ? "," : '') . '"' . SQ_Tools::$options['sq_linkedin_account'] . '"';
1175
  }
 
 
 
 
 
 
1176
 
1177
  $search = $sep . '"potentialAction": { "@type": "SearchAction", "target": "' . get_bloginfo('url') . '?s={search_string}", "query-input": "required name=search_string" }';
1178
 
@@ -1208,8 +1334,8 @@ class Model_SQ_Frontend {
1208
  $meta .= '"image": {
1209
  "@type": "ImageObject",
1210
  "url": "' . $image['src'] . '",
1211
- "height": ' . ((isset($image['height']) && $image['height'] <> '' ) ? (int) $image['height'] : 500) . ',
1212
- "width": ' . ((isset($image['width']) && $image['width'] <> '' ) ? (int) $image['width'] : 700) . '
1213
  }' . $sep;
1214
  break;
1215
  }
@@ -1396,7 +1522,7 @@ class Model_SQ_Frontend {
1396
 
1397
  if (is_home()) {
1398
  if (isset($wp_query->posts) && !empty($wp_query->posts)) {
1399
- $posts = (array) $wp_query->posts;
1400
 
1401
  if (SQ_Tools::$options['sq_keywordtag'] == 1) {
1402
  foreach ($posts as $post) {
@@ -1413,7 +1539,7 @@ class Model_SQ_Frontend {
1413
  }
1414
  if (count($keywords) <= $this->max_keywords) {
1415
  if (isset($wp_query->posts) && !empty($wp_query->posts)) {
1416
- $posts = (array) $wp_query->posts;
1417
 
1418
  foreach ($posts as $post) {
1419
  $id = (is_attachment()) ? ($post->post_parent) : ($post->ID);
@@ -1456,25 +1582,23 @@ class Model_SQ_Frontend {
1456
  *
1457
  * @return string
1458
  */
1459
- public function getCanonicalUrl() {
1460
  global $wp_query;
1461
 
1462
- if (isset($this->url)) {
1463
- return $this->url;
1464
- }
1465
-
1466
  if (!isset($wp_query) || is_404() || is_search()) {
1467
  return false;
1468
  }
1469
 
1470
- if (isset($this->post->ID) && $link = $this->getAdvancedMeta($this->post->ID, 'canonical')) {
1471
- if ($link <> '') {
1472
- return apply_filters('sq_canonical', $link);
 
 
 
1473
  }
1474
  }
1475
 
1476
  $haspost = (count($wp_query->posts) > 0);
1477
- $has_ut = function_exists('user_trailingslashit');
1478
 
1479
  if (get_query_var('m') <> '') {
1480
  $m = preg_replace('/[^0-9]/', '', get_query_var('m'));
@@ -1530,7 +1654,7 @@ class Model_SQ_Frontend {
1530
  $taxonomy = get_query_var('taxonomy');
1531
  $term = get_query_var('term');
1532
  $link = $this->getPaged(
1533
- get_term_link($term, $taxonomy));
1534
  } else {
1535
  return false;
1536
  }
@@ -1543,7 +1667,7 @@ class Model_SQ_Frontend {
1543
  if (is_author()) {
1544
  $this->author = get_userdata(get_query_var('author'));
1545
  } elseif (is_single() && isset($this->post->post_author)) {
1546
- $this->author = get_userdata((int) $this->post->post_author)->data;
1547
  }
1548
  }
1549
 
@@ -1551,7 +1675,8 @@ class Model_SQ_Frontend {
1551
 
1552
  if ($what == 'user_url' && $this->author->$what == '') {
1553
  return get_author_posts_url($this->author->ID, $this->author->user_nicename);
1554
- }if (isset($this->author->$what)) {
 
1555
  return $this->author->$what;
1556
  }
1557
  }
@@ -1560,7 +1685,7 @@ class Model_SQ_Frontend {
1560
  }
1561
 
1562
  public function getPaged($link) {
1563
- $page = get_query_var('paged');
1564
  if ($page && $page > 1) {
1565
  $link = trailingslashit($link) . "page/" . "$page/";
1566
  }
@@ -1575,6 +1700,16 @@ class Model_SQ_Frontend {
1575
  private function isHomePage() {
1576
  global $wp_query;
1577
 
 
 
 
 
 
 
 
 
 
 
1578
  return (is_home() || (isset($wp_query->query) && empty($wp_query->query) && !is_preview()));
1579
  }
1580
 
@@ -1622,7 +1757,8 @@ class Model_SQ_Frontend {
1622
  public function truncate($text, $min, $max) {
1623
  if (function_exists('strip_tags')) {
1624
  $text = strip_tags($text);
1625
- } $text = str_replace(']]>', ']]&gt;', $text);
 
1626
  $text = @preg_replace('|\[(.+?)\](.+?\[/\\1\])?|s', '', $text);
1627
  $text = strip_tags($text);
1628
 
@@ -1686,7 +1822,7 @@ class Model_SQ_Frontend {
1686
  $field = '';
1687
  $cond = '';
1688
 
1689
- if (!isset($post_id) || (int) $post_id == 0) {
1690
  return '';
1691
  }
1692
 
@@ -1720,7 +1856,7 @@ class Model_SQ_Frontend {
1720
 
1721
  $sql = "SELECT `meta_key`, `meta_value`
1722
  FROM `" . $wpdb->postmeta . "`
1723
- WHERE `post_id`=" . (int) $post_id;
1724
 
1725
  if ($rows = $wpdb->get_results($sql)) {
1726
  foreach ($rows as $row) {
@@ -1755,7 +1891,7 @@ class Model_SQ_Frontend {
1755
  $field = '';
1756
  $cond = '';
1757
 
1758
- if (!isset($post_id) || (int) $post_id == 0) {
1759
  return '';
1760
  }
1761
 
@@ -1784,7 +1920,7 @@ class Model_SQ_Frontend {
1784
 
1785
  $sql = "SELECT `meta_key`, `meta_value`
1786
  FROM `" . $wpdb->postmeta . "`
1787
- WHERE `post_id`=" . (int) $post_id;
1788
 
1789
  $rows = $wpdb->get_results($sql);
1790
  if ($rows) {
@@ -1825,7 +1961,7 @@ class Model_SQ_Frontend {
1825
  echo "\n# Squirrly Sitemaps is disabled. Please see Site Visibility on Settings > Reading.";
1826
  } else {
1827
  if (SQ_Tools::$options['sq_auto_sitemap'] == 1) {
1828
- foreach ((array) SQ_Tools::$options['sq_sitemap'] as $name => $sitemap) {
1829
  if ($name == 'sitemap-product' && !SQ_ObjController::getModel('SQ_BlockSettingsSeo')->isEcommerce()) {
1830
  continue;
1831
  }
@@ -1841,7 +1977,7 @@ class Model_SQ_Frontend {
1841
  echo "\n\n";
1842
 
1843
  if (!empty(SQ_Tools::$options['sq_robots_permission'])) {
1844
- foreach ((array) SQ_Tools::$options['sq_robots_permission'] as $robot_txt)
1845
  echo $robot_txt . "\n";
1846
  }
1847
  echo "\n\n";
23
 
24
  /** @var array */
25
  private $thumb_images;
26
+ private $thumb_video;
27
+ private $custom_og_image = false;
28
 
29
  /** @var integer */
30
  private $min_title_length = 10;
173
  //get the post from shop if woocommerce is installed
174
  if (!isset($this->post)) {
175
  if (function_exists('is_shop') && is_shop()) {
176
+ $this->post = get_post(wc_get_page_id('shop'));
177
  } elseif (isset($post->ID)) {
178
  $this->post = get_post($post->ID);
179
  }
181
 
182
  if ($this->is_squirrly()) {
183
 
184
+ //update ... please monitor
185
+ if(is_single() || is_page() ){
186
+ if(!isset($this->post->ID)){
187
+ return $buffer;
188
+ }
189
+ }
190
+
191
  preg_match("/<head[^>]*>/i", $buffer, $out);
192
  if (!empty($out)) {
193
  $this->meta['blogname'] = get_bloginfo('name');
200
 
201
  if ((SQ_Tools::$options['sq_auto_description'] == 1 && $this->isHomePage()) || !$this->isHomePage()) {
202
  //clear the existing description and keywords
203
+ $buffer = @preg_replace('/<meta[^>]*(name|property)=["\'](description|keywords)["\'][^>]*content=["\'][^"\'>]*["\'][^>]*>[\n\r]*/si', '', $buffer, -1);
204
  }
205
  if (SQ_Tools::$options['sq_auto_facebook'] == 1) {
206
  $buffer = @preg_replace('/<meta[^>]*(name|property)=["\'](og:|article:)[^"\'>]+["\'][^>]*content=["\'][^"\'>]+["\'][^>]*>[\n\r]*/si', '', $buffer, -1);
224
  if ((SQ_Tools::$options['sq_auto_title'] == 1 && $this->isHomePage()) || !$this->isHomePage()) {
225
  if (isset($this->title) && $this->title <> '') {
226
  //replace the existing title
227
+ $buffer = @preg_replace('/<title[^<>]*>([^<>]*)<\/title>/si', '', $buffer, -1);
228
+ $buffer = @preg_replace('/(<head[^>]*>)/si', sprintf("$1\n<title>%s</title>", $this->title) . "\n", $buffer, -1 );
229
  }
 
 
230
  }
231
 
232
  if (strpos($buffer, '<squirrly />') !== false) {
297
  /* SEO optimizer tool */
298
  $ret .= $this->getGoogleWT();
299
  $ret .= $this->getGoogleAnalytics();
300
+ $ret .= $this->getFacebookPixel();
301
  $ret .= $this->getFacebookIns();
302
  $ret .= $this->getBingWT();
303
  $ret .= $this->getPinterest();
311
  return $ret;
312
  }
313
 
314
+ public function setPost($newpost) {
315
  global $post;
316
  $this->post = $post = $newpost;
317
  }
392
  if (!empty($this->thumb_images)) {
393
  foreach ($this->thumb_images as $image) {
394
  $meta .= sprintf('<meta property="og:image" content="%s" />', $image['src']) . "\n";
395
+ $meta .= sprintf('<meta property="og:image:width" content="%s" />', ((isset($image['width']) && $image['width'] <> '') ? (int)$image['width'] : 500)) . "\n";
396
  if (isset($image['height']) && $image['height'] <> '')
397
+ $meta .= sprintf('<meta property="og:image:height" content="%s" />', (int)$image['height']) . "\n";
398
  }
399
  }
400
 
418
  $meta .= sprintf('<meta property="og:type" content="%s" />', 'profile') . "\n";
419
  $meta .= sprintf('<meta property="profile:first_name" content="%s" />', get_the_author_meta('first_name', $author->ID)) . "\n";
420
  $meta .= sprintf('<meta property="profile:last_name" content="%s" />', get_the_author_meta('last_name', $author->ID)) . "\n";
421
+ } elseif (function_exists('is_product') && is_product()) {
422
+ $meta .= sprintf('<meta property="og:type" content="%s" />', 'product') . "\n";
423
+
424
+ $cat = get_the_terms($this->post->ID, 'product_cat');
425
+ if (!empty($cat) && count($cat) > 0) {
426
+ $meta .= sprintf('<meta property="product:category" content="%s" />', $cat[0]->name) . "\n";
427
+ }
428
+
429
+ if (class_exists('WC_Product')) {
430
+ $product = new WC_Product($this->post->ID);
431
+ if (isset($product->regular_price)) {
432
+ if ((int)$product->regular_price > 0 && $product->regular_price <> $product->price && function_exists('get_woocommerce_currency')) {
433
+ $meta .= sprintf('<meta property="product:original_price:amount" content="%s" />', $product->regular_price) . "\n";
434
+ $meta .= sprintf('<meta property="product:original_price:currency" content="%s" />', get_woocommerce_currency()) . "\n";
435
+ }
436
+ }
437
+
438
+ if (isset($product->price)) {
439
+ if ((int)$product->price > 0 && function_exists('get_woocommerce_currency')) {
440
+ $meta .= sprintf('<meta property="product:price:amount" content="%s" />', $product->price) . "\n";
441
+ $meta .= sprintf('<meta property="product:price:currency" content="%s" />', get_woocommerce_currency()) . "\n";
442
+ }
443
+ }
444
+
445
+ if (isset($product->sale_price)) {
446
+ if ((int)$product->sale_price > 0 && function_exists('get_woocommerce_currency')) {
447
+ $sales_price_from = get_post_meta($this->post->ID, '_sale_price_dates_from', true);
448
+ $sales_price_to = get_post_meta($this->post->ID, '_sale_price_dates_to', true);
449
+
450
+ $meta .= sprintf('<meta property="product:sale_price:amount" content="%s" />', $product->sale_price) . "\n";
451
+ $meta .= sprintf('<meta property="product:sale_price:currency" content="%s" />', get_woocommerce_currency()) . "\n";
452
+ if ($sales_price_from > 0) {
453
+ $meta .= sprintf('<meta property="product:sale_price:start" content="%s" />', date("Y-m-d H:i:s", $sales_price_from)) . "\n";
454
+ }
455
+ if ($sales_price_to) {
456
+ $meta .= sprintf('<meta property="product:sale_price:end" content="%s" />', date("Y-m-d H:i:s", $sales_price_to)) . "\n";
457
+ }
458
+
459
+ }
460
+ }
461
+ if (isset($product->weight)) {
462
+ if ((int)$product->weight > 0 && get_option('woocommerce_weight_unit') <> '') {
463
+ $meta .= sprintf('<meta property="product:weight:value" content="%s" />', $product->weight) . "\n";
464
+ $meta .= sprintf('<meta property="product:weight:units" content="%s" />', get_option('woocommerce_weight_unit')) . "\n";
465
+ }
466
+ }
467
+
468
+ }
469
+
470
  } elseif (!$this->isHomePage() && (is_single() || is_page())) {
471
 
472
 
498
  * @return string
499
  */
500
  private function setCanonical() {
501
+ if ($url = $this->getCanonicalUrl(true)) {
 
502
  remove_action('wp_head', 'rel_canonical');
503
 
504
+ return sprintf("<link rel=\"canonical\" href=\"%s\" />", $url) . "\n";
505
  }
506
 
507
  return '';
549
  $this->title = $this->grabTitleFromPost();
550
  }
551
  if (is_paged()) {
552
+ $this->title .= $sep . __('Page', _SQ_PLUGIN_NAME_) . " " . (int)get_query_var('paged');
553
  }
554
  } elseif (is_author()) { //for author
555
  if ($this->title == '') {
559
  $this->title = __('About') . " " . ucfirst($this->getAuthor('display_name'));
560
  }
561
  if (is_paged()) {
562
+ $this->title .= $sep . __('Page', _SQ_PLUGIN_NAME_) . " " . (int)get_query_var('paged');
563
  }
564
  } elseif (is_tag()) { //for tags
565
  if (is_paged()) {
566
  $tag = get_query_var('tag');
567
+ $this->title = ucfirst(str_replace('-', ' ', $tag)) . $sep . __('Page', _SQ_PLUGIN_NAME_) . " " . (int)get_query_var('paged');
568
  }
569
  } elseif (is_archive()) { //for archive and products
570
  if (isset($this->post) && isset($this->post->ID)) {
586
  }
587
 
588
  if (is_paged()) {
589
+ $this->title .= $sep . __('Page', _SQ_PLUGIN_NAME_) . " " . (int)get_query_var('paged');
590
  }
591
  } elseif (is_single() || is_page() || is_singular() || in_array(get_post_type(), $this->post_type)) {
592
  if (isset($this->post) && isset($this->post->ID)) {
631
  public function clearTitle($title) {
632
  if ($title <> '') {
633
  $title = SQ_Tools::i18n(trim(esc_html(ent2ncr(strip_tags($title)))));
634
+ $title = addcslashes($title, '$');
635
  }
636
  return $title;
637
  }
650
  $post = $this->post;
651
  }
652
 
653
+ if (SQ_Tools::$options['sq_auto_description'] == 1) { //
654
+ if (($this->isHomePage() && SQ_Tools::$options['sq_fp_ogimage'] <> '')) {
655
+ $images[] = array(
656
+ 'src' => esc_url(SQ_Tools::$options['sq_fp_ogimage']),
657
+ 'title' => $this->clearTitle($this->grabTitleFromPost($post->ID)),
658
+ 'description' => $this->clearDescription($this->grabDescriptionFromPost($post->ID)),
659
+ 'width' => null,
660
+ 'height' => null,
661
+ );
662
+
663
+ return $images;
664
+ }
665
+ }
666
+
667
  if ($post && isset($post->ID)) {
668
  if ($url = $this->getAdvancedMeta($post->ID, 'ogimage')) {
669
  $images[] = array(
673
  'width' => null,
674
  'height' => null,
675
  );
676
+ //don't add other images in OG to overwrite the custom image
677
+ $this->custom_og_image = true;
678
  }
679
  if ($all || empty($images)) {
680
  if (has_post_thumbnail($post->ID)) {
730
  }
731
 
732
  if ($post && isset($post->ID)) {
733
+ //if not
734
+ if (!$this->custom_og_image) {
735
+ if (isset($post->post_content)) {
736
+ preg_match('/(?:http(?:s)?:\/\/)?(?:www\.)?(?:youtu\.be\/|youtube\.com\/(?:embed)\/)([^\?&\"\'>\s]+)/si', $post->post_content, $match);
737
 
738
+ if (isset($match[0])) {
739
+ if (strpos($match[0], '//') !== false && strpos($match[0], 'http') === false) {
740
+ $match[0] = 'http:' . $match[0];
741
+ }
742
+ $videos[] = esc_url($match[0]);
743
  }
 
 
744
 
745
  // preg_match('/(?:http(?:s)?:\/\/)?(?:fast\.wistia\.net\/(?:embed)\/(?:iframe)\/)([^\?&\"\'>\s]+)/si', $post->post_content, $match);
746
  //
751
  // $videos[] = esc_url($match[0]);
752
  // }
753
 
754
+ preg_match('/(?:http(?:s)?:\/\/)?(?:fwd4\.wistia\.com\/(?:medias)\/)([^\?&\"\'>\s]+)/si', $post->post_content, $match);
755
 
756
+ if (isset($match[0])) {
757
+ $videos[] = esc_url('http://fast.wistia.net/embed/iframe/' . $match[1]);
758
+ }
759
 
760
+ preg_match('/class=["|\']([^"\']*wistia_async_([^\?&\"\'>\s]+)[^"\']*["|\'])/si', $post->post_content, $match);
761
 
762
+ if (isset($match[0])) {
763
+ $videos[] = esc_url('http://fast.wistia.net/embed/iframe/' . $match[2]);
764
+ }
765
 
766
+ preg_match('/src=["|\']([^"\']*(.mpg|.mpeg|.mp4|.mov|.wmv|.asf|.avi|.ra|.ram|.rm|.flv)["|\'])/i', $post->post_content, $match);
767
 
768
+ if (isset($match[1])) {
769
+ $videos[] = esc_url($match[1]);
770
+ }
771
  }
772
  }
773
  }
779
  $this->getCustomDescription();
780
  return $this->description;
781
  }
782
+
783
  /**
784
  * Get the description from last/current article
785
  *
804
  }
805
 
806
  if (is_paged()) {
807
+ $description .= $sep . __('Page', _SQ_PLUGIN_NAME_) . " " . (int)get_query_var('paged');
808
  }
809
 
810
  if ($this->isHomePage() && $description <> '') {
818
  $description = $this->grabDescriptionFromPost() . $sep . $this->getAuthor('display_name');
819
  }
820
  if (is_paged()) {
821
+ $description .= $sep . __('Page', _SQ_PLUGIN_NAME_) . " " . (int)get_query_var('paged');
822
  }
823
  } elseif (is_tag()) { //for tags
824
  $description = tag_description();
827
  $description = ucfirst($tag) . $sep . $this->grabDescriptionFromPost();
828
  }
829
  if (is_paged()) {
830
+ $description .= $sep . __('Page', _SQ_PLUGIN_NAME_) . " " . (int)get_query_var('paged');
831
  }
832
  } elseif (is_archive()) { //for archive and products
833
  if (isset($this->post) && isset($this->post->ID)) {
853
  }
854
 
855
  if (is_paged()) {
856
+ $description .= $sep . __('Page', _SQ_PLUGIN_NAME_) . " " . (int)get_query_var('paged');
857
  }
858
  } elseif (is_single() || is_page() || is_singular() || $this->checkPostsPage() || in_array(get_post_type(), $this->post_type)) {
859
  if (isset($this->post) && isset($this->post->ID)) {
869
  }
870
  }
871
  }
872
+ } else
873
 
874
+ /* Check if is a predefined TitleIn Snippet */
875
+ if (SQ_Tools::$options['sq_auto_description'] == 1) {
876
 
877
+ //If the home page is a static page that has custom snippet
878
+ if (is_page() && isset($this->post) && isset($this->post->ID) && $this->getAdvancedMeta($this->post->ID, 'description') <> '') {
879
+ $description = $this->getAdvancedMeta($this->post->ID, 'description');
880
+ } elseif (SQ_Tools::$options ['sq_fp_description'] <> '') {
881
+ $description = strip_tags(SQ_Tools::$options['sq_fp_description']);
882
+ } else {
883
+ $description = $this->grabDescriptionFromPost();
884
+ }
885
  }
 
886
 
887
  $description = (($description <> '') ? $description : $this->title);
888
  if ($description <> '') {
907
  }
908
 
909
  $description = SQ_Tools::i18n(trim(esc_html(ent2ncr(strip_tags($description)))));
910
+ $description = addcslashes($description, '$');
911
  }
912
 
913
  return $description;
932
  /* Check if is a predefined Keyword */
933
  if (SQ_Tools::$options['sq_auto_description'] == 1) { //
934
  if (($this->isHomePage() &&
935
+ SQ_Tools::$options['sq_fp_keywords'] <> '')
936
+ ) {
937
  $keywords = strip_tags(SQ_Tools::$options ['sq_fp_keywords']);
938
  }
939
  }
955
  private function getCopyright() {
956
  $meta = '';
957
 
958
+ $name = $this->getAuthor('display_name');
959
  if ($name == '') {
960
  $name = $this->meta['blogname'];
961
  }
1061
  $date = null;
1062
  $meta = '';
1063
 
1064
+ $name = $this->getAuthor('display_name');
1065
  if (!$name) {
1066
  $name = $this->meta['blogname'];
1067
  }
1127
  $sq_google_analytics = SQ_Tools::$options['sq_google_analytics'];
1128
 
1129
  if ($sq_google_analytics <> '') {
1130
+ if (SQ_Tools::$options['sq_auto_amp']){
1131
+ return '<script async custom-element="amp-analytics" src="https://cdn.ampproject.org/v0/amp-analytics-0.1.js"></script>' . "\n";
1132
+ }else {
1133
+ SQ_ObjController::getController('SQ_DisplayController', false)
1134
  ->loadMedia('https://www.google-analytics.com/analytics.js');
1135
 
1136
+ return sprintf("<script>
1137
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
1138
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
1139
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
1141
 
1142
  ga('create', '%s', 'auto');
1143
  ga('send', 'pageview');
1144
+ ga('require', 'linked');
1145
  </script>", $sq_google_analytics);
1146
+ }
1147
+ }
1148
+
1149
+ return false;
1150
+ }
1151
+
1152
+ public function getGoogleAnalyticsAMPBody() {
1153
+ $sq_google_analytics = SQ_Tools::$options['sq_google_analytics'];
1154
+
1155
+ if ($sq_google_analytics <> '') {
1156
+ if (SQ_Tools::$options['sq_auto_amp']){
1157
+ return sprintf('<amp-analytics type="googleanalytics" id="analytics1"><script type="application/json">{"vars": {"account": "%s"},"triggers": {"trackPageview": {"on": "visible","request": "pageview"}}}</script></amp-analytics>', $sq_google_analytics) . "\n";
1158
+ }
1159
+ }
1160
+ return '';
1161
+ }
1162
+
1163
+ private function getFacebookPixel() {
1164
+
1165
+ $sq_facebook_analytics = SQ_Tools::$options['sq_facebook_analytics'];
1166
+
1167
+ if ($sq_facebook_analytics <> '') {
1168
+ if (SQ_Tools::$options['sq_auto_amp']){
1169
+ //not yet supported
1170
+ }else {
1171
+ return sprintf("<script>
1172
+ !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
1173
+ n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
1174
+ n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;
1175
+ t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,
1176
+ document,'script','https://connect.facebook.net/en_US/fbevents.js');
1177
+ fbq('init', '%s');
1178
+ fbq('track', 'ViewContent');
1179
+ fbq('track', 'PageView');</script>
1180
+ <noscript><img height='1' width='1' style='display:none'
1181
+ src='https://www.facebook.com/tr?id=%s&ev=PageView&noscript=1'
1182
+ /></noscript>" . "\n", $sq_facebook_analytics, $sq_facebook_analytics);
1183
+ }
1184
  }
1185
 
1186
  return false;
1281
 
1282
  if ($meta <> '') {
1283
  $social = '';
1284
+ if (SQ_Tools::$options['sq_twitter_account'] <> '') {
1285
  $social .= ($social <> '' ? "," : '') . '"' . SQ_Tools::$options['sq_twitter_account'] . '"';
1286
  }
1287
+ if (SQ_Tools::$options['sq_facebook_account'] <> '') {
1288
  $social .= ($social <> '' ? "," : '') . '"' . SQ_Tools::$options['sq_facebook_account'] . '"';
1289
  }
1290
+ if (SQ_Tools::$options['sq_google_plus'] <> '') {
1291
  $social .= ($social <> '' ? "," : '') . '"' . SQ_Tools::$options['sq_google_plus'] . '"';
1292
  }
1293
+ if (SQ_Tools::$options['sq_linkedin_account'] <> '') {
1294
  $social .= ($social <> '' ? "," : '') . '"' . SQ_Tools::$options['sq_linkedin_account'] . '"';
1295
  }
1296
+ if (SQ_Tools::$options['sq_pinterest_account'] <> '') {
1297
+ $social .= ($social <> '' ? "," : '') . '"' . SQ_Tools::$options['sq_pinterest_account'] . '"';
1298
+ }
1299
+ if (SQ_Tools::$options['sq_instagram_account'] <> '') {
1300
+ $social .= ($social <> '' ? "," : '') . '"' . SQ_Tools::$options['sq_instagram_account'] . '"';
1301
+ }
1302
 
1303
  $search = $sep . '"potentialAction": { "@type": "SearchAction", "target": "' . get_bloginfo('url') . '?s={search_string}", "query-input": "required name=search_string" }';
1304
 
1334
  $meta .= '"image": {
1335
  "@type": "ImageObject",
1336
  "url": "' . $image['src'] . '",
1337
+ "height": ' . ((isset($image['height']) && $image['height'] <> '') ? (int)$image['height'] : 500) . ',
1338
+ "width": ' . ((isset($image['width']) && $image['width'] <> '') ? (int)$image['width'] : 700) . '
1339
  }' . $sep;
1340
  break;
1341
  }
1522
 
1523
  if (is_home()) {
1524
  if (isset($wp_query->posts) && !empty($wp_query->posts)) {
1525
+ $posts = (array)$wp_query->posts;
1526
 
1527
  if (SQ_Tools::$options['sq_keywordtag'] == 1) {
1528
  foreach ($posts as $post) {
1539
  }
1540
  if (count($keywords) <= $this->max_keywords) {
1541
  if (isset($wp_query->posts) && !empty($wp_query->posts)) {
1542
+ $posts = (array)$wp_query->posts;
1543
 
1544
  foreach ($posts as $post) {
1545
  $id = (is_attachment()) ? ($post->post_parent) : ($post->ID);
1582
  *
1583
  * @return string
1584
  */
1585
+ public function getCanonicalUrl($external = false) {
1586
  global $wp_query;
1587
 
 
 
 
 
1588
  if (!isset($wp_query) || is_404() || is_search()) {
1589
  return false;
1590
  }
1591
 
1592
+ //If external is TRUE, get the original canonical link set
1593
+ if ($external) {
1594
+ if (isset($this->post->ID) && $link = $this->getAdvancedMeta($this->post->ID, 'canonical')) {
1595
+ if ($link <> '') {
1596
+ return apply_filters('sq_canonical', $link);
1597
+ }
1598
  }
1599
  }
1600
 
1601
  $haspost = (count($wp_query->posts) > 0);
 
1602
 
1603
  if (get_query_var('m') <> '') {
1604
  $m = preg_replace('/[^0-9]/', '', get_query_var('m'));
1654
  $taxonomy = get_query_var('taxonomy');
1655
  $term = get_query_var('term');
1656
  $link = $this->getPaged(
1657
+ get_term_link($term, $taxonomy));
1658
  } else {
1659
  return false;
1660
  }
1667
  if (is_author()) {
1668
  $this->author = get_userdata(get_query_var('author'));
1669
  } elseif (is_single() && isset($this->post->post_author)) {
1670
+ $this->author = get_userdata((int)$this->post->post_author)->data;
1671
  }
1672
  }
1673
 
1675
 
1676
  if ($what == 'user_url' && $this->author->$what == '') {
1677
  return get_author_posts_url($this->author->ID, $this->author->user_nicename);
1678
+ }
1679
+ if (isset($this->author->$what)) {
1680
  return $this->author->$what;
1681
  }
1682
  }
1685
  }
1686
 
1687
  public function getPaged($link) {
1688
+ $page = (int)get_query_var('paged');
1689
  if ($page && $page > 1) {
1690
  $link = trailingslashit($link) . "page/" . "$page/";
1691
  }
1700
  private function isHomePage() {
1701
  global $wp_query;
1702
 
1703
+ if (isset($wp_query->queried_object_id)) {
1704
+ $this->post = get_post($wp_query->queried_object_id);
1705
+
1706
+ }
1707
+
1708
+ //Check if blog posts page
1709
+ if (is_home() && $wp_query->is_posts_page) {
1710
+ return false;
1711
+ }
1712
+
1713
  return (is_home() || (isset($wp_query->query) && empty($wp_query->query) && !is_preview()));
1714
  }
1715
 
1757
  public function truncate($text, $min, $max) {
1758
  if (function_exists('strip_tags')) {
1759
  $text = strip_tags($text);
1760
+ }
1761
+ $text = str_replace(']]>', ']]&gt;', $text);
1762
  $text = @preg_replace('|\[(.+?)\](.+?\[/\\1\])?|s', '', $text);
1763
  $text = strip_tags($text);
1764
 
1822
  $field = '';
1823
  $cond = '';
1824
 
1825
+ if (!isset($post_id) || (int)$post_id == 0) {
1826
  return '';
1827
  }
1828
 
1856
 
1857
  $sql = "SELECT `meta_key`, `meta_value`
1858
  FROM `" . $wpdb->postmeta . "`
1859
+ WHERE `post_id`=" . (int)$post_id;
1860
 
1861
  if ($rows = $wpdb->get_results($sql)) {
1862
  foreach ($rows as $row) {
1891
  $field = '';
1892
  $cond = '';
1893
 
1894
+ if (!isset($post_id) || (int)$post_id == 0) {
1895
  return '';
1896
  }
1897
 
1920
 
1921
  $sql = "SELECT `meta_key`, `meta_value`
1922
  FROM `" . $wpdb->postmeta . "`
1923
+ WHERE `post_id`=" . (int)$post_id;
1924
 
1925
  $rows = $wpdb->get_results($sql);
1926
  if ($rows) {
1961
  echo "\n# Squirrly Sitemaps is disabled. Please see Site Visibility on Settings > Reading.";
1962
  } else {
1963
  if (SQ_Tools::$options['sq_auto_sitemap'] == 1) {
1964
+ foreach ((array)SQ_Tools::$options['sq_sitemap'] as $name => $sitemap) {
1965
  if ($name == 'sitemap-product' && !SQ_ObjController::getModel('SQ_BlockSettingsSeo')->isEcommerce()) {
1966
  continue;
1967
  }
1977
  echo "\n\n";
1978
 
1979
  if (!empty(SQ_Tools::$options['sq_robots_permission'])) {
1980
+ foreach ((array)SQ_Tools::$options['sq_robots_permission'] as $robot_txt)
1981
  echo $robot_txt . "\n";
1982
  }
1983
  echo "\n\n";
models/SQ_Post.php CHANGED
@@ -293,8 +293,9 @@ class Model_SQ_Post {
293
  } else {
294
  $sql = "INSERT INTO `" . $wpdb->postmeta . "`
295
  (`post_id`,`meta_key`,`meta_value`)
296
- VALUES (" . (int) $post_id . ",'" . $meta['key'] . "','" . $meta['value'] . "')";
297
  }
 
298
  $wpdb->query($sql);
299
  }
300
 
293
  } else {
294
  $sql = "INSERT INTO `" . $wpdb->postmeta . "`
295
  (`post_id`,`meta_key`,`meta_value`)
296
+ VALUES (" . (int) $post_id . ",'" . $meta['key'] . "','" . addslashes($meta['value']) . "')";
297
  }
298
+ SQ_Tools::dump($sql);
299
  $wpdb->query($sql);
300
  }
301
 
models/SQ_PostsList.php CHANGED
@@ -40,10 +40,10 @@ class Model_SQ_PostsList {
40
  foreach ($this->audit->content as $key => $audit) {
41
  $group[$key]['name'] = $key;
42
  if (!empty($audit)) {
 
43
  $group[$key]['total'] = 0;
44
  $group[$key]['complete'] = 0;
45
  $group[$key]['processed'] = 0;
46
-
47
  foreach ($audit as $task) {
48
  @$group[$key]['total'] = number_format_i18n($task->total);
49
  @$group[$key]['complete'] += ($task->complete) ? 1 : 0;
@@ -76,6 +76,7 @@ class Model_SQ_PostsList {
76
  //if the post its just indexed with the url then is not so good
77
  if ($key == 'rank' && (int) $group[$key]['total'] == 0) {
78
  $color = 'sq_audit_task_completed_yellow';
 
79
  }
80
 
81
  if ($key == 'rank') {
@@ -95,6 +96,7 @@ class Model_SQ_PostsList {
95
  }
96
  @$group[$key]['tooltip'] = $total_tooltip;
97
  @$group[$key]['color'] = $color;
 
98
  }
99
  }
100
  $this->audit->groups = json_decode(json_encode($group));
40
  foreach ($this->audit->content as $key => $audit) {
41
  $group[$key]['name'] = $key;
42
  if (!empty($audit)) {
43
+
44
  $group[$key]['total'] = 0;
45
  $group[$key]['complete'] = 0;
46
  $group[$key]['processed'] = 0;
 
47
  foreach ($audit as $task) {
48
  @$group[$key]['total'] = number_format_i18n($task->total);
49
  @$group[$key]['complete'] += ($task->complete) ? 1 : 0;
76
  //if the post its just indexed with the url then is not so good
77
  if ($key == 'rank' && (int) $group[$key]['total'] == 0) {
78
  $color = 'sq_audit_task_completed_yellow';
79
+ $group[$key]['total'] = 'N/A';
80
  }
81
 
82
  if ($key == 'rank') {
96
  }
97
  @$group[$key]['tooltip'] = $total_tooltip;
98
  @$group[$key]['color'] = $color;
99
+
100
  }
101
  }
102
  $this->audit->groups = json_decode(json_encode($group));
readme.txt CHANGED
@@ -1,16 +1,16 @@
1
  === SEO by SQUIRRLY™ ===
2
  Contributors: calinvingan, florinmuresan, nagy.sorel
3
- Tags: seo,seo plugin,wordpress seo,seo optimization,seo content,plugin,content seo,search engine optimization,xml,sitemap,keyword,keyword research,post,posts,page,multisite,squirrly,wordpress,tag,image,images,photos,flickr,statistics,stats,google,content,title,description,favicon,mobile,canonical,author,google plus,analytics,admin,seo correction,seo title,seo meta,meta,google,twitter,news,blog,e-commerce,ecommerce,woocommerce,feed,feeds,marketing,buddypress,social,social media,url,automatic,iphone
4
- Requires at least: 3.5
5
- Tested up to: 4.6
6
- Stable tag: trunk
7
- Donate link: https://www.squirrly.co/wordpress-seo-by-squirrly
 
 
 
 
 
8
 
9
- SEO Plugin By Squirrly is for the NON-SEO experts. Get Excellent Seo with Better Content, Ranking and Analytics. For Both Humans and Search Bots.
10
-
11
- == Description ==
12
- Squirrly SEO helps you write content that is SEO friendly and ALSO Human friendly. You'll get to improve your rankings, while providing your readers with great content. See Your SEO Stats, get a weekly SEO Audit and find the best keywords.
13
-
14
  It works well with Wordpress sites that already have <strong>Yoast</strong> or <strong>All In One SEO</strong>. You can opt-in to keep those settings, so no need to start over again :-)
15
 
16
  Recommended by <strong><a href="http://www.quicksprout.com/university/how-to-maximize-your-seo-traffic-with-these-must-have-wordpress-plugins/" >Neil Patel</a></strong>, the co-founder of Kissmetrics and Crazy Egg. Also by <strong>Brian Dean</strong> and over 100 content marketing experts
@@ -21,7 +21,7 @@ See all the Squirrly SEO 2016 features at: http://howto.squirrly.co/category/sid
21
 
22
  Based on the topic you're writing about, the interface will light up green while you're editing your text, so that you know you've done something right. When all the lights are green, you can publish it, because your text has excellent SEO and it's 100% optimized.
23
 
24
- Different customers, from areas such as e-commerce, law firms, digital agencies, online magazines, movie review sites, etc. have reported +285% increase in the number of readers, by optimizing their content with this seo plugin, and by measuring and improving as advized by our tool.
25
 
26
  All-In-All: Squirrly SEO will help you get a tool that acts like an Expert Consultant, sitting right next to you, advising on SEO, and telling you where you need to improve.
27
 
@@ -83,7 +83,7 @@ Once you start having bigger content marketing and SEO needs (more than one arti
83
 
84
  <strong>You can read reviews from Internet Marketing experts on http://howto.squirrly.co/testimonials/</strong>
85
 
86
- Over 1,460,000 Downloads. Our startup consists of 10 content marketing professionals dedicated to making Squirrly an amazing piece of software and writing great training materials to help you be successful and stay successful.
87
 
88
  Over 860 Content Marketing Experts have reviewed our Wordpress SEO plugin and loved it.
89
 
@@ -137,8 +137,69 @@ Type a keyword to the right of the screen and start using Squirrly Seo. Enjoy!
137
  Squirrly 5.2.8 it's a stable version of Squirrly SEO and has all the SEO requirements by Search Engines
138
 
139
  == Changelog ==
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
140
  = 6.1.0 =
141
- * Compatible with WP 4.6
142
  * Fixed the Front Page SEO to work with more WP themes
143
  * Fixed compatibility with PolyLang plugin
144
  * Fixed compatibility with Customizr theme
@@ -189,10 +250,6 @@ Squirrly 5.2.8 it's a stable version of Squirrly SEO and has all the SEO require
189
  * Fixed the compatibility issue in Performance Analytics
190
  * Added twitter summary for large images
191
 
192
-
193
- = 5.2.8 =
194
- * Compatible with WP 4.4
195
-
196
  = 5.2.7 =
197
  * Added Squirrly SEO Canonical Link in Post Edit page
198
  * Added Norway country in Google Rank Option
@@ -244,14 +301,6 @@ Squirrly 5.2.8 it's a stable version of Squirrly SEO and has all the SEO require
244
  * Add the optimization progress bar in the post/page list
245
  * Fixed the restore the settings from backup validator
246
 
247
- = 5.1.4 =
248
- * Fixed the Google Rank check cron
249
-
250
- = 5.1.3 =
251
- * Fixed the Open Graph META for Locale en_CA
252
- * Fixed the sitemap_pages.xml for loading slow when looking over videos
253
- * Fixed the favicon.ico rewrite for non multisite wordpress
254
-
255
  = 5.1.2 =
256
  * Added new features in Open Graph for the Posts/Pages
257
  * Added the SEO Settings Backup and Restore
@@ -261,31 +310,13 @@ Squirrly 5.2.8 it's a stable version of Squirrly SEO and has all the SEO require
261
  * Fixed the wp_is_writable for older wp versions
262
  * Fixed the Open Graph not to include non embed videos in meta
263
  * Fixed the Sitemap Ping option to remain switched on when is selected
264
-
265
- = 5.1.1 =
266
- * Corrected the css for the top yellow bar
267
- * Get the keyword from database for the saved article
268
- * Fixed the feed style issue
269
  * Added the custom size image for Open Graph in Squirrly SEO Snippet
270
- * Increased the plugin loading speed in front-end
271
- * Fixed the post optimization history issue
272
- * Fixed the encryption for the password and fixed the bad login issue
273
- * Compatible with WP 4.2.2
274
 
275
  = 5.0.3 =
276
  * Prevent canonical, prev, next meta duplicate inserted by other SEO plugins
277
  * Fixed snippet custom title and description to change when other SEO plugins are installed
278
  * Fixed javascript issue in login page
279
 
280
- = 5.0.2 =
281
- * Made it download the remote images while in text editor
282
- * Detects remote images when the URL doesn't contain http
283
- * Fixed favicon disappear on plugin updates
284
-
285
- = 5.0.1 =
286
- * Fixed some issues for the PHP 5.1-5.2
287
- * Compatible with WP 4.2.1
288
-
289
  = 5.0.0 =
290
  * Changed Squirrly SEO look
291
  * Compatible with WP eCommerce plugin
@@ -307,116 +338,10 @@ Squirrly 5.2.8 it's a stable version of Squirrly SEO and has all the SEO require
307
  * Fixed the custom fields variable in post editor
308
  * Fixed the site icon and added the site icon for multisites
309
  * Fixed Sitemap for default permalink option
310
-
311
- = 3.4.4 =
312
- * Updated the Twitter Card information
313
- * Compatible with WP 4.1.1
314
  * Fixed the SEO Analytics and the Rank updates
315
  * Fixed the SEO for First Page if the Home Page is not a static page
316
  * Fixed the SEO for the First Page when it starts with woocommerce shop
317
 
318
- = 3.4.3 =
319
- * Add the option to prevent downloading the remote images in the blog media library for the new posts
320
- * Add support for custom admin user roles
321
-
322
- = 3.4.2 =
323
- * Fixed some queries for a better speed in backend
324
- * Fixed Open Graph for Home Page
325
- * Fixed empty description for the Woocommerce shop page
326
-
327
- = 3.3.9 =
328
- * Fixed SEO snippet preview compatibility with the WP 4.0
329
-
330
- = 3.3.8 =
331
- * Fixed SEO issues for some themes in frontend
332
- * Fixed the audit to load faster
333
- * Added the google hreflang meta for language identification
334
- * Added strict search for google in SEO Settings
335
-
336
- = 3.3.7 =
337
- * Fixed the keywords SEO settings for the first page optimization
338
- * Fixed the image resize on drag-drop from inspiration box
339
- * Fixed the highlight in Seo Live Assistant not to disappear when you click on keyword
340
- * Fixed the SEO check lag for meta duplicates in backend
341
-
342
- = 3.3.5 =
343
- * Added Tag to Meta Keyword option in Settings
344
- * Fixed some bugs related to SEO Audit
345
- * Fixed the og:image issue for featured post images in WP4
346
-
347
- = 3.3.4 =
348
- * Compatible with WP 4.0
349
- * Fixed various issues
350
- * Update the Google Analytics tracking code to work with cache plugins
351
- * Fixed the sitemap update date issue
352
- * Fixed the Home Page Seo settings to work with the front-page snippet
353
- * Compatible with Wp Fastest Cache plugin, WP Super Cache
354
-
355
- = 3.3.3 =
356
- * Added the new Google Analytics tracking code
357
- * Update the Seo Live Assistant
358
-
359
- = 3.3.2 =
360
- * Compatible with WP 3.9.2
361
- * Added google.cz for google ranking in Performance Analytics
362
-
363
- = 3.3.1 =
364
- * Fixed post snippet issues when the home-page description is switch off
365
-
366
- * Updated the Squirrly Seo plugin icon
367
-
368
- = 3.3.0 =
369
- * Added the google localization country in search ranking
370
- * Fixed on-boarding video link
371
- * Fixed seo title issue for home-page
372
-
373
- = 3.2.7 =
374
- * Fixed small issue for background ranking grabber
375
- * Fixed google country select in Seo Settings
376
- * Fixed css and js load for some WordPress themes
377
-
378
- = 3.2.5 =
379
- * Fixed default country and langage in rank check
380
- * Fixed the Copyright Free search images
381
-
382
- = 3.2.3 =
383
- * Fixed onboarding process
384
- * Fixed Audit broken link
385
- * Fixed Rank check issues for some situations
386
-
387
- = 3.2.1 =
388
- * Improved SEO Stats for Google Rankings by Country
389
- * SEO Settings out-of-the-box, but also works awesome if you have the settings already done with All In One SEO or Yoast (Wordpress seo)
390
-
391
- = 3.1.9 =
392
- * Fixed css issues for some cases
393
- * Fixed the "See Analytics" loading issue
394
-
395
- = 3.1.8 =
396
- * Fixed serp cron with the google last changes
397
- * Changed the cron rate for serp search
398
- * Added force recheck for google rank in SEO Analytics
399
-
400
- = 3.1.4 =
401
- * Removed the traffic monitor (to increase the site speed and analytics)
402
-
403
- = 3.1.2 =
404
- * Compatible with WP 3.9
405
- * Fixed Squirrly SEO Live Assistant issue in WP 3.9
406
- * Fixed SEO Analytics in WP 3.9
407
-
408
- = 3.1.1 =
409
- * Added rel="prev" and rel="next" in header
410
- * Added SEO META Duplicates notification
411
- * Fixed the snippet for home page when the home is a specific page
412
- * Added more details in SEO Analytics
413
- *
414
-
415
- = 3.1.0 =
416
- * Added the Performance Analytics in Squirrly SEO Tab
417
- * Added Analytics filter for custom post types
418
- * Added Google SEO Rank Column in Squirrly SEO > Performance Analytics
419
- * Added Google Country Select in Squirrly SEO > Settings
420
 
421
  == Credits ==
422
  * Florin Muresan - CEO at Squirrly
@@ -460,6 +385,10 @@ Based on your article, Squirrly will find the most relevant text and add it in t
460
 
461
  You can opt-in to use the Squirrly Snippet in the Post/Page editor, which will allow you to customize how the META Title and Description will be. All while writing or editing your article.
462
 
 
 
 
 
463
  = Is Squirrly SEO Plugin free? =
464
  Yes, you just have to install the plugin from the WP directory into your site. Then connect with your email to Squirrly. The Free Version will automatically start. Read below for more. Once you have bigger content marketing needs, you can opt-in to upgrade to the PRO Plan.
465
 
@@ -488,7 +417,7 @@ All of the features that we offer have been built having the customer's best int
488
  and we've proven time and again that we are a great team that knows all there is to know about good *SEO automation*. We had a community of 20,000 blogs that all
489
  used our SEO techniques, and they have gotten lots of hits from search engines due to our optimization. Now we offer the same quality for you:
490
 
491
- [UPDATE] Squirrly now has over 1,000,000 downloads, so we've been offering great software for over two years now.
492
 
493
  - SEO Advice as you're typing your articles
494
  - Advice in real time from the SEO Live Assistant on how to write better content for your Human readers
@@ -549,4 +478,5 @@ And the best ones that we have (and the others don't):
549
  If you click the Squirrly tab in your dashboard, go to the "First Page Optimization" section and switch the Title and Description option on. You can enter custom Title, Description and Keywords.
550
 
551
  = Is this Wordpress SEO plugin the only SEO plugin I will need to install? =
552
- It all depends on how you have setup your Wordpress until now. Some people use Squirrly seo plugin only for the Content Optimization with the Live Assistant part, some use use it to check their SEO stats and see where they need to improve their Wordpress seo, but most of our users and customer use Squirrly for everything related to SEO: from keyword analysis, to seo settings on Wordpress, to analytics and to weekly monitoring and audit reports.
 
1
  === SEO by SQUIRRLY™ ===
2
  Contributors: calinvingan, florinmuresan, nagy.sorel
3
+ Tags: seo,seo plugin,apps,wordpress seo,seo optimization,seo content,plugin,content seo,search engine optimization,xml,sitemap,keyword,keyword research,post,posts,page,multisite,squirrly,wordpress,tag,image,images,photos,flickr,statistics,stats,google,content,title,description,favicon,mobile,canonical,author,google plus,analytics,admin,seo correction,seo title,seo meta,meta,google,twitter,news,blog,e-commerce,ecommerce,woocommerce,feed,feeds,marketing,buddypress,social,social media,url,automatic,iphone,administration,analytics,blogging,categories,comment,dashboard,free,google-analytics,linkedin,list,media,optimization,performance,pinterest,plugins,products,share,sharing,tags,tracking,traffic,tweet
4
+ Requires at least: 3.5
5
+ Tested up to: 4.7
6
+ Stable tag: trunk
7
+ Donate link: https://www.squirrly.co/wordpress-seo-by-squirrly
8
+
9
+ SEO Plugin By Squirrly is for the NON-SEO experts. Get Excellent SEO with Better Content, Ranking and Analytics. For Both Humans and Search Bots.
10
+
11
+ == Description ==
12
+ SEO By Squirrly helps you write content that is SEO friendly and ALSO Human friendly. You'll get to improve your rankings, while providing your readers with great content. See Your SEO Stats, get a weekly SEO Audit and find the best keywords.
13
 
 
 
 
 
 
14
  It works well with Wordpress sites that already have <strong>Yoast</strong> or <strong>All In One SEO</strong>. You can opt-in to keep those settings, so no need to start over again :-)
15
 
16
  Recommended by <strong><a href="http://www.quicksprout.com/university/how-to-maximize-your-seo-traffic-with-these-must-have-wordpress-plugins/" >Neil Patel</a></strong>, the co-founder of Kissmetrics and Crazy Egg. Also by <strong>Brian Dean</strong> and over 100 content marketing experts
21
 
22
  Based on the topic you're writing about, the interface will light up green while you're editing your text, so that you know you've done something right. When all the lights are green, you can publish it, because your text has excellent SEO and it's 100% optimized.
23
 
24
+ Different customers, from areas such as e-commerce, law firms, digital agencies, online magazines, movie review sites, etc. have reported +285% increase in the number of readers, by optimizing their content with this seo plugin, and by measuring and improving as advized by our tool.
25
 
26
  All-In-All: Squirrly SEO will help you get a tool that acts like an Expert Consultant, sitting right next to you, advising on SEO, and telling you where you need to improve.
27
 
83
 
84
  <strong>You can read reviews from Internet Marketing experts on http://howto.squirrly.co/testimonials/</strong>
85
 
86
+ Over 1,600,000 Downloads. Our startup consists of 10 content marketing professionals dedicated to making Squirrly an amazing piece of software and writing great training materials to help you be successful and stay successful.
87
 
88
  Over 860 Content Marketing Experts have reviewed our Wordpress SEO plugin and loved it.
89
 
137
  Squirrly 5.2.8 it's a stable version of Squirrly SEO and has all the SEO requirements by Search Engines
138
 
139
  == Changelog ==
140
+ = 6.2.6 =
141
+ * Fixed Canonical link for facebook Open Graph
142
+ * Don't show the Canonical Link if Squirrly SEO is off
143
+ * Fixed keyword saving on post update
144
+ * Happy New Year!
145
+
146
+ = 6.2.5 =
147
+ * Added Instagram and Pinterest in Social Json-LD
148
+ * Fixed the connection issue in some cases when a keyword is modified
149
+ * Fixed memory load when not usign Squirrly SEO
150
+
151
+ = 6.2.4 =
152
+ * Fixed bug for Google Analytics AMP version
153
+ * Fixed both title and description when include price value
154
+ * Compatible with WP 4.7
155
+
156
+ = 6.2.3 =
157
+ * Added Open Graph Image for First Page when the first page is a blog feed
158
+ * Fixed small css issues in post editor
159
+ * Fixed duplicate title removal
160
+ * Added AMP Analytics from Google
161
+
162
+ = 6.2.2 =
163
+ * Compatible with WP 4.6.1
164
+ * Fixed SEO Page Optimization for Post Feed Page and Home Page
165
+ * Update SEO features
166
+
167
+ = 6.2.0 =
168
+ * Added Facebook Pixel Tracking Code in Squirrly > SEO > Tracking
169
+ * Added more Copyright Free images in Squirrly SEO Live Assistant from:
170
+ * Pixabay.com
171
+ * Unsplash.com
172
+ * Pexels.com
173
+ *
174
+ * Fixed loading the Seo Live Assistant when a page is not optimized for a keyword
175
+ * Fixed the connection issues between the plugin and API when a post is saved
176
+ * Fixed the Squirrly Snippet when connected as Editor or Author4
177
+
178
+
179
+ = 6.1.6 =
180
+ * Added custom title and description for the Posts Page in Settings > Reading > Posts page
181
+ * Fixed the JsonLD phone + prefix
182
+ * Fixed typos
183
+
184
+ = 6.1.5 =
185
+ * July 2016 Security updates.
186
+ * Fixed vulnerabilities between users who have rights in you site
187
+ * Fixed some Squirrly SEO Snippet issues on first save
188
+ * Added google.co.id in Rank Option
189
+
190
+ = 6.1.3 =
191
+ * Rich Pins Validator Option
192
+ * Added rich pins for Woocommerce Products
193
+
194
+ = 6.1.2 =
195
+ * Compatible with WP 4.5.3
196
+ * Fixed the google profile link
197
+ * Corrected some old links
198
+ * We moved js files on cloud for faster loading
199
+ * Update Rank Check to the latest Google Requirements
200
+
201
  = 6.1.0 =
202
+ * Compatible with WP 4.5.2
203
  * Fixed the Front Page SEO to work with more WP themes
204
  * Fixed compatibility with PolyLang plugin
205
  * Fixed compatibility with Customizr theme
250
  * Fixed the compatibility issue in Performance Analytics
251
  * Added twitter summary for large images
252
 
 
 
 
 
253
  = 5.2.7 =
254
  * Added Squirrly SEO Canonical Link in Post Edit page
255
  * Added Norway country in Google Rank Option
301
  * Add the optimization progress bar in the post/page list
302
  * Fixed the restore the settings from backup validator
303
 
 
 
 
 
 
 
 
 
304
  = 5.1.2 =
305
  * Added new features in Open Graph for the Posts/Pages
306
  * Added the SEO Settings Backup and Restore
310
  * Fixed the wp_is_writable for older wp versions
311
  * Fixed the Open Graph not to include non embed videos in meta
312
  * Fixed the Sitemap Ping option to remain switched on when is selected
 
 
 
 
 
313
  * Added the custom size image for Open Graph in Squirrly SEO Snippet
 
 
 
 
314
 
315
  = 5.0.3 =
316
  * Prevent canonical, prev, next meta duplicate inserted by other SEO plugins
317
  * Fixed snippet custom title and description to change when other SEO plugins are installed
318
  * Fixed javascript issue in login page
319
 
 
 
 
 
 
 
 
 
 
320
  = 5.0.0 =
321
  * Changed Squirrly SEO look
322
  * Compatible with WP eCommerce plugin
338
  * Fixed the custom fields variable in post editor
339
  * Fixed the site icon and added the site icon for multisites
340
  * Fixed Sitemap for default permalink option
 
 
 
 
341
  * Fixed the SEO Analytics and the Rank updates
342
  * Fixed the SEO for First Page if the Home Page is not a static page
343
  * Fixed the SEO for the First Page when it starts with woocommerce shop
344
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
345
 
346
  == Credits ==
347
  * Florin Muresan - CEO at Squirrly
385
 
386
  You can opt-in to use the Squirrly Snippet in the Post/Page editor, which will allow you to customize how the META Title and Description will be. All while writing or editing your article.
387
 
388
+ = 100% green in Squirrly Live Assistant but I’m not getting traffic yet =
389
+ Sometimes we receive emails with this question and I want to help everybody have the correct image of Squirrly Live Assistance.
390
+ http://howto.squirrly.co/wordpress-seo/100-green-in-squirrly-live-assistant-but-im-not-getting-traffic/
391
+
392
  = Is Squirrly SEO Plugin free? =
393
  Yes, you just have to install the plugin from the WP directory into your site. Then connect with your email to Squirrly. The Free Version will automatically start. Read below for more. Once you have bigger content marketing needs, you can opt-in to upgrade to the PRO Plan.
394
 
417
  and we've proven time and again that we are a great team that knows all there is to know about good *SEO automation*. We had a community of 20,000 blogs that all
418
  used our SEO techniques, and they have gotten lots of hits from search engines due to our optimization. Now we offer the same quality for you:
419
 
420
+ [UPDATE] Squirrly now has over 1,500,000 downloads, so we've been offering great software for over two years now.
421
 
422
  - SEO Advice as you're typing your articles
423
  - Advice in real time from the SEO Live Assistant on how to write better content for your Human readers
478
  If you click the Squirrly tab in your dashboard, go to the "First Page Optimization" section and switch the Title and Description option on. You can enter custom Title, Description and Keywords.
479
 
480
  = Is this Wordpress SEO plugin the only SEO plugin I will need to install? =
481
+ It all depends on how you have setup your Wordpress until now. Some people use Squirrly seo plugin only for the Content Optimization with the Live Assistant part, some use use it to check their SEO stats and see where they need to improve their Wordpress seo, but most of our users and customer use Squirrly for everything related to SEO: from keyword analysis, to seo settings on Wordpress, to analytics and to weekly monitoring and audit reports.
482
+
squirrly.php CHANGED
@@ -7,13 +7,13 @@
7
  Plugin Name: SEO by SQUIRRLY
8
  Plugin URI: http://www.squirrly.co
9
  Description: SEO Plugin By Squirrly is for the NON-SEO experts. Get Excellent Seo with Better Content, Ranking and Analytics. For Both Humans and Search Bots.<BR> <a href="http://my.squirrly.co/user" target="_blank"><strong>Check your profile</strong></a>
10
- Author: cifi, calinvingan, florinmuresan
11
- Version: 6.1.0
12
  Author URI: http://www.squirrly.co
13
  */
14
 
15
  /* SET THE CURRENT VERSION ABOVE AND BELOW */
16
- define('SQ_VERSION', '6.1.0');
17
  /* Call config files */
18
  if (file_exists(dirname(__FILE__) . '/config/config.php')) {
19
  require(dirname(__FILE__) . '/config/config.php');
@@ -22,6 +22,8 @@ if (file_exists(dirname(__FILE__) . '/config/config.php')) {
22
  if (PHP_VERSION_ID >= 5100) {
23
  /* inport main classes */
24
  require_once(_SQ_CLASSES_DIR_ . 'SQ_ObjController.php');
 
 
25
 
26
  if (is_admin()) {
27
  require_once(_SQ_CLASSES_DIR_ . 'SQ_BlockController.php');
@@ -32,10 +34,8 @@ if (file_exists(dirname(__FILE__) . '/config/config.php')) {
32
  */
33
  register_activation_hook(__FILE__, array(SQ_ObjController::getController('SQ_Tools', false), 'sq_activate'));
34
  register_deactivation_hook(__FILE__, array(SQ_ObjController::getController('SQ_Tools', false), 'sq_deactivate'));
35
- } else {
36
- SQ_ObjController::getController('SQ_FrontController', false);
37
  SQ_ObjController::getController('SQ_Frontend');
38
-
39
  }
40
 
41
  add_action('sq_processCron', array(SQ_ObjController::getController('SQ_Ranking', false), 'processCron'));
7
  Plugin Name: SEO by SQUIRRLY
8
  Plugin URI: http://www.squirrly.co
9
  Description: SEO Plugin By Squirrly is for the NON-SEO experts. Get Excellent Seo with Better Content, Ranking and Analytics. For Both Humans and Search Bots.<BR> <a href="http://my.squirrly.co/user" target="_blank"><strong>Check your profile</strong></a>
10
+ Author: calinvingan, florinmuresan, nagy.sorel
11
+ Version: 6.2.6
12
  Author URI: http://www.squirrly.co
13
  */
14
 
15
  /* SET THE CURRENT VERSION ABOVE AND BELOW */
16
+ define('SQ_VERSION', '6.2.6');
17
  /* Call config files */
18
  if (file_exists(dirname(__FILE__) . '/config/config.php')) {
19
  require(dirname(__FILE__) . '/config/config.php');
22
  if (PHP_VERSION_ID >= 5100) {
23
  /* inport main classes */
24
  require_once(_SQ_CLASSES_DIR_ . 'SQ_ObjController.php');
25
+ SQ_ObjController::getController('SQ_FrontController', false);
26
+ SQ_ObjController::getController('SQ_Tools', false);
27
 
28
  if (is_admin()) {
29
  require_once(_SQ_CLASSES_DIR_ . 'SQ_BlockController.php');
34
  */
35
  register_activation_hook(__FILE__, array(SQ_ObjController::getController('SQ_Tools', false), 'sq_activate'));
36
  register_deactivation_hook(__FILE__, array(SQ_ObjController::getController('SQ_Tools', false), 'sq_deactivate'));
37
+ } elseif (SQ_Tools::$options['sq_use'] == 1) {
 
38
  SQ_ObjController::getController('SQ_Frontend');
 
39
  }
40
 
41
  add_action('sq_processCron', array(SQ_ObjController::getController('SQ_Ranking', false), 'processCron'));
themes/default/SQ_BlockAffiliate.php CHANGED
@@ -68,7 +68,7 @@
68
  </fieldset>
69
  <?php if (SQ_Tools::$options['sq_affiliate_link'] <> '') { ?>
70
  <fieldset>
71
- <legend class="sq_legend_big" style=" min-height: 1200px">
72
  <span class="sq_legend_title"><?php _e('Squirrly banners you can use', _SQ_PLUGIN_NAME_); ?></span>
73
  </legend>
74
  <div>
68
  </fieldset>
69
  <?php if (SQ_Tools::$options['sq_affiliate_link'] <> '') { ?>
70
  <fieldset>
71
+ <legend>
72
  <span class="sq_legend_title"><?php _e('Squirrly banners you can use', _SQ_PLUGIN_NAME_); ?></span>
73
  </legend>
74
  <div>
themes/default/SQ_BlockPostsAnalytics.php CHANGED
@@ -1,25 +1,41 @@
1
- <div id="sq_posts" >
2
  <span class="sq_icon"></span>
3
- <div id="sq_posts_title" ><?php _e('Squirrly Analytics', _SQ_PLUGIN_NAME_); ?> </div>
4
- <div id="sq_posts_subtitle" ><?php _e('Don\'t see all your pages here? Make sure you optimize them with Squirrly, so that we can track them, and display you the analytics', _SQ_PLUGIN_NAME_); ?> </div>
5
- <div id="sq_posts_subtitle" style="font-size: 14px;color: red;padding: 0px;margin: 0;text-align: center;line-height: 15px;"><?php _e('If you recheck the google rank, let 10-20 seconds between requests to prevent google to block your IP for an hour.', _SQ_PLUGIN_NAME_); ?> </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6
 
7
  <?php echo $view->getNavigationTop() ?>
8
  <table class="wp-list-table widefat fixed posts" cellspacing="0">
9
  <thead>
10
- <tr>
11
- <?php echo $view->getHeaderColumns() ?>
12
- </tr>
13
  </thead>
14
 
15
  <tfoot>
16
- <tr>
17
- <?php echo $view->getHeaderColumns() ?>
18
- </tr>
19
  </tfoot>
20
 
21
  <tbody id="the-list">
22
- <?php echo $view->getRows() ?>
23
  </tbody>
24
  </table>
25
  <?php echo $view->getNavigationBottom() ?>
1
+ <div id="sq_posts">
2
  <span class="sq_icon"></span>
3
+
4
+ <div id="sq_posts_title"><?php _e('Squirrly Analytics', _SQ_PLUGIN_NAME_); ?> </div>
5
+ <div id="sq_posts_subtitle"><?php _e('Don\'t see all your pages here? Make sure you optimize them with Squirrly, so that we can track them, and display you the analytics', _SQ_PLUGIN_NAME_); ?> </div>
6
+ <?php
7
+ if (get_transient('google_blocked') !== false) {
8
+ echo '<div id="sq_posts_subtitle" style="font-size: 14px;color: red;padding: 0px;margin: 0 0 15px 0;text-align: center;line-height: 15px;">';
9
+ if (function_exists('curl_init') && !ini_get('open_basedir')) {
10
+ echo sprintf(__('The IP %s is calling the rank too often and google stopped the calls for %s mins. Lower the Rank check rate in Squirrly > Settings > Rank Option. %sMore details%s', _SQ_PLUGIN_NAME_), @gethostbyname(gethostname()), (((get_transient('google_blocked')- time() + 3600) > 0) ? date('i',(get_transient('google_blocked')- time() + 3600)) : 'an hour'),'<a href="http://howto.squirrly.co/wordpress-seo/could-not-receive-data-from-google-err-blocked-ip/" target="_blank" >','</a>');
11
+ } else {
12
+ if (!function_exists('curl_init')) {
13
+ echo sprintf(__('To be able to check the RANK please activate cURL for PHP on your server %sDetails%s', _SQ_PLUGIN_NAME_), '<a href="http://stackoverflow.com/questions/1347146/how-to-enable-curl-in-php-xampp" target="_blank">', '</a>');
14
+ } else {
15
+ echo sprintf(__('To be able to check the RANK please remove the "safe_mode" and "open_basedir" for PHP cURL on your server %sDetails%s', _SQ_PLUGIN_NAME_), '<a href="http://stackoverflow.com/a/6918685" target="_blank">', '</a>');
16
+
17
+ }
18
+ }
19
+ echo '</div>';
20
+ }
21
+ ?>
22
 
23
  <?php echo $view->getNavigationTop() ?>
24
  <table class="wp-list-table widefat fixed posts" cellspacing="0">
25
  <thead>
26
+ <tr>
27
+ <?php echo $view->getHeaderColumns() ?>
28
+ </tr>
29
  </thead>
30
 
31
  <tfoot>
32
+ <tr>
33
+ <?php echo $view->getHeaderColumns() ?>
34
+ </tr>
35
  </tfoot>
36
 
37
  <tbody id="the-list">
38
+ <?php echo $view->getRows() ?>
39
  </tbody>
40
  </table>
41
  <?php echo $view->getNavigationBottom() ?>
themes/default/SQ_BlockSettings.php CHANGED
@@ -2,9 +2,10 @@
2
  <?php SQ_ObjController::getBlock('SQ_BlockSupport')->init(); ?>
3
  <div>
4
  <span class="sq_icon"></span>
5
- <div id="sq_settings_title" ><?php _e('Settings', _SQ_PLUGIN_NAME_); ?> </div>
6
- <div id="sq_settings_title" >
7
- <input type="submit" name="sq_update" value="<?php _e('Save settings', _SQ_PLUGIN_NAME_) ?> &raquo;" />
 
8
  </div>
9
  </div>
10
  <div id="sq_helpsettingscontent" class="sq_helpcontent"></div>
@@ -13,7 +14,7 @@
13
  <form id="sq_settings_form" name="settings" action="" method="post" enctype="multipart/form-data">
14
  <div id="sq_settings_body">
15
  <fieldset>
16
- <legend class="sq_legend_medium">
17
  <span class="sq_legend_title"><?php _e('Post/Page Edit', _SQ_PLUGIN_NAME_); ?></span>
18
  <span><?php echo sprintf(__('%sThe right method in working with Squirrly, SEO plugin%s', _SQ_PLUGIN_NAME_), '<a href="http://www.squirrly.co/the-right-premises-in-working-with-squirrly-wordpress-seo-plugin" target="_blank">', '</a>'); ?></span>
19
  <span><?php echo sprintf(__('%sGetting inspired with Squirrly WordPress SEO plugin%s', _SQ_PLUGIN_NAME_), '<a href="http://www.squirrly.co/getting-inspired-with-squirrly-wordpress-seo-plugin" target="_blank">', '</a>'); ?></span>
@@ -28,10 +29,16 @@
28
  <p style="font-weight: bold;"><?php _e('Load Squirrly Live Assistant for', _SQ_PLUGIN_NAME_); ?>:</p>
29
  <ul id="sq_post_types">
30
  <li class="sq_selectall"><input type="checkbox" id="sq_selectall"/>Select All</li>
31
- <li><input type="checkbox" class="sq_post_types" name="sq_post_types[]" value="post" <?php echo (in_array('post', SQ_Tools::$options['sq_post_types']) ? 'checked="checked"' : ''); ?>><?php _e('Posts', _SQ_PLUGIN_NAME_); ?></li>
32
- <li><input type="checkbox" class="sq_post_types" name="sq_post_types[]" value="page" <?php echo (in_array('page', SQ_Tools::$options['sq_post_types']) ? 'checked="checked"' : ''); ?>><?php _e('Pages', _SQ_PLUGIN_NAME_); ?></li>
 
 
 
 
33
  <?php if (in_array('product', get_post_types())) { //check for ecommerce product ?>
34
- <li><input type="checkbox" class="sq_post_types" name="sq_post_types[]" value="product" <?php echo (in_array('product', SQ_Tools::$options['sq_post_types']) ? 'checked="checked"' : ''); ?>><?php _e('Products', _SQ_PLUGIN_NAME_); ?></li>
 
 
35
  <?php } ?>
36
  <?php
37
  $types = get_post_types();
@@ -47,19 +54,22 @@
47
  } else {
48
  //echo '<pre>' . print_r($type_data, true) . '</pre>';
49
  ?>
50
- <li><input type="checkbox" class="sq_post_types" name="sq_post_types[]" value="<?php echo $type ?>" <?php echo (in_array($type, SQ_Tools::$options['sq_post_types']) ? 'checked="checked"' : ''); ?>><?php echo $type_data->labels->name; ?></li>
 
 
51
  <?php
52
  }
53
  }
54
  ?>
55
  </ul>
56
  </div>
57
- <br />
 
58
  <div class="sq_option_content">
59
  <div class="sq_switch">
60
- <input id="sq_keyword_help1" type="radio" class="sq_switch-input" name="sq_keyword_help" value="1" <?php echo ((SQ_Tools::$options['sq_keyword_help'] == 1) ? "checked" : '') ?> />
61
  <label for="sq_keyword_help1" class="sq_switch-label sq_switch-label-off"><?php _e('Yes', _SQ_PLUGIN_NAME_); ?></label>
62
- <input id="sq_keyword_help0" type="radio" class="sq_switch-input" name="sq_keyword_help" value="0" <?php echo ((SQ_Tools::$options['sq_keyword_help'] == 0) ? "checked" : '') ?> />
63
  <label for="sq_keyword_help0" class="sq_switch-label sq_switch-label-on"><?php _e('No', _SQ_PLUGIN_NAME_); ?></label>
64
  <span class="sq_switch-selection"></span>
65
  </div>
@@ -68,9 +78,9 @@
68
 
69
  <div class="sq_option_content">
70
  <div class="sq_switch">
71
- <input id="sq_keyword_information1" type="radio" class="sq_switch-input" name="sq_keyword_information" value="1" <?php echo ((SQ_Tools::$options['sq_keyword_information'] == 1) ? "checked" : '') ?> />
72
  <label for="sq_keyword_information1" class="sq_switch-label sq_switch-label-off"><?php _e('Yes', _SQ_PLUGIN_NAME_); ?></label>
73
- <input id="sq_keyword_information0" type="radio" class="sq_switch-input" name="sq_keyword_information" value="0" <?php echo ((SQ_Tools::$options['sq_keyword_information'] == 0) ? "checked" : '') ?> />
74
  <label for="sq_keyword_information0" class="sq_switch-label sq_switch-label-on"><?php _e('No', _SQ_PLUGIN_NAME_); ?></label>
75
  <span class="sq_switch-selection"></span>
76
  </div>
@@ -80,20 +90,21 @@
80
 
81
  <div class="sq_option_content">
82
  <div class="sq_switch">
83
- <input id="sq_sla1" type="radio" class="sq_switch-input" name="sq_sla" value="1" <?php echo ((SQ_Tools::$options['sq_sla'] == 1) ? "checked" : '') ?> />
84
  <label for="sq_sla1" class="sq_switch-label sq_switch-label-off"><?php _e('Yes', _SQ_PLUGIN_NAME_); ?></label>
85
- <input id="sq_sla0" type="radio" class="sq_switch-input" name="sq_sla" value="0" <?php echo ((SQ_Tools::$options['sq_sla'] == 0) ? "checked" : '') ?> />
86
  <label for="sq_sla0" class="sq_switch-label sq_switch-label-on"><?php _e('No', _SQ_PLUGIN_NAME_); ?></label>
87
  <span class="sq_switch-selection"></span>
88
  </div>
89
  <span><?php _e('Use <strong> the NEW version of the SEO Live Assistant</strong>.', _SQ_PLUGIN_NAME_); ?></span>
90
  </div>
91
  <p></p>
 
92
  <div class="sq_option_content withbordertop">
93
  <div class="sq_switch">
94
- <input id="sq_keywordtag1" type="radio" class="sq_switch-input" name="sq_keywordtag" value="1" <?php echo ((SQ_Tools::$options['sq_keywordtag'] == 1) ? "checked" : '') ?> />
95
  <label for="sq_keywordtag1" class="sq_switch-label sq_switch-label-off"><?php _e('Yes', _SQ_PLUGIN_NAME_); ?></label>
96
- <input id="sq_keywordtag0" type="radio" class="sq_switch-input" name="sq_keywordtag" value="0" <?php echo ((SQ_Tools::$options['sq_keywordtag'] == 0) ? "checked" : '') ?> />
97
  <label for="sq_keywordtag0" class="sq_switch-label sq_switch-label-on"><?php _e('No', _SQ_PLUGIN_NAME_); ?></label>
98
  <span class="sq_switch-selection"></span>
99
  </div>
@@ -102,9 +113,9 @@
102
 
103
  <div class="sq_option_content">
104
  <div class="sq_switch">
105
- <input id="sq_local_images1" type="radio" class="sq_switch-input" name="sq_local_images" value="1" <?php echo ((SQ_Tools::$options['sq_local_images'] == 1) ? "checked" : '') ?> />
106
  <label for="sq_local_images1" class="sq_switch-label sq_switch-label-off"><?php _e('Yes', _SQ_PLUGIN_NAME_); ?></label>
107
- <input id="sq_local_images0" type="radio" class="sq_switch-input" name="sq_local_images" value="0" <?php echo ((SQ_Tools::$options['sq_local_images'] == 0) ? "checked" : '') ?> />
108
  <label for="sq_local_images0" class="sq_switch-label sq_switch-label-on"><?php _e('No', _SQ_PLUGIN_NAME_); ?></label>
109
  <span class="sq_switch-selection"></span>
110
  </div>
@@ -114,9 +125,9 @@
114
 
115
  <div class="sq_option_content">
116
  <div class="sq_switch">
117
- <input id="sq_url_fix1" type="radio" class="sq_switch-input" name="sq_url_fix" value="1" <?php echo ((SQ_Tools::$options['sq_url_fix'] == 1) ? "checked" : '') ?> />
118
  <label for="sq_url_fix1" class="sq_switch-label sq_switch-label-off"><?php _e('Yes', _SQ_PLUGIN_NAME_); ?></label>
119
- <input id="sq_url_fix0" type="radio" class="sq_switch-input" name="sq_url_fix" value="0" <?php echo ((SQ_Tools::$options['sq_url_fix'] == 0) ? "checked" : '') ?> />
120
  <label for="sq_url_fix0" class="sq_switch-label sq_switch-label-on"><?php _e('No', _SQ_PLUGIN_NAME_); ?></label>
121
  <span class="sq_switch-selection"></span>
122
  </div>
@@ -133,8 +144,9 @@
133
  <div>
134
  <div class="sq_option_content">
135
  <p>
136
- <span ><?php _e('Select the google extension for which Squirrly will check the google rank', _SQ_PLUGIN_NAME_); ?></span>
137
  </p>
 
138
  <div class="abh_select withborder">
139
  <select id="sq_google_country" name="sq_google_country">
140
  <option value="com"><?php _e('Default', _SQ_PLUGIN_NAME_); ?> - Google.com (http://www.google.com/)</option>
@@ -180,6 +192,7 @@
180
  <option value="com.hk"><?php _e('Hong Kong', _SQ_PLUGIN_NAME_); ?> (http://www.google.com.hk/)</option>
181
  <option value="co.hu"><?php _e('Hungary', _SQ_PLUGIN_NAME_); ?> (http://www.google.co.hu/)</option>
182
  <option value="co.in"><?php _e('India', _SQ_PLUGIN_NAME_); ?> (http://www.google.co.in/)</option>
 
183
  <option value="ie"><?php _e('Ireland', _SQ_PLUGIN_NAME_); ?> (http://www.google.ie/)</option>
184
  <option value="co.im"><?php _e('Isle of Man', _SQ_PLUGIN_NAME_); ?> (http://www.google.co.im/)</option>
185
  <option value="co.il"><?php _e('Israel', _SQ_PLUGIN_NAME_); ?> (http://www.google.co.il/)</option>
@@ -227,6 +240,7 @@
227
  <option value="sk"><?php _e('Slovakia', _SQ_PLUGIN_NAME_); ?> (http://www.google.sk/)</option>
228
  <option value="co.za"><?php _e('South Africa', _SQ_PLUGIN_NAME_); ?> (http://www.google.co.za/)</option>
229
  <option value="es"><?php _e('Spain', _SQ_PLUGIN_NAME_); ?> (http://www.google.es/)</option>
 
230
  <option value="se"><?php _e('Sweden', _SQ_PLUGIN_NAME_); ?> (http://www.google.se/)</option>
231
  <option value="ch"><?php _e('Switzerland', _SQ_PLUGIN_NAME_); ?> (http://www.google.ch/)</option>
232
  <option value="com.tw"><?php _e('Taiwan', _SQ_PLUGIN_NAME_); ?> (http://www.google.com.tw/)</option>
@@ -245,10 +259,15 @@
245
  <p>
246
  <span><?php echo sprintf(__('Select how many pages to be checked by google rank every hour. %s5 pages (recommended)%s', _SQ_PLUGIN_NAME_), '<br /><span style="color:#aaa;font-size:12px;">', '</span>'); ?></span>
247
  </p>
 
248
  <div class="withborder">
249
  <select id="sq_google_ranksperhour" name="sq_google_ranksperhour">
250
- <?php for ($i = 0; $i < 30; $i++) { ?>
251
- <option value="<?php echo $i ?>" <?php echo ((SQ_Tools::$options['sq_google_ranksperhour'] == $i) ? "selected='selected'" : '') ?>><?php echo $i ?> <?php _e('pages', _SQ_PLUGIN_NAME_); ?></option>
 
 
 
 
252
  <?php } ?>
253
  </select>
254
 
@@ -256,9 +275,9 @@
256
 
257
  <div class="sq_option_content">
258
  <div class="sq_switch">
259
- <input id="sq_google_country_strict1" type="radio" class="sq_switch-input" name="sq_google_country_strict" value="1" <?php echo ((SQ_Tools::$options['sq_google_country_strict'] == 1) ? "checked" : '') ?> />
260
  <label for="sq_google_country_strict1" class="sq_switch-label sq_switch-label-off"><?php _e('Yes', _SQ_PLUGIN_NAME_); ?></label>
261
- <input id="sq_google_country_strict0" type="radio" class="sq_switch-input" name="sq_google_country_strict" value="0" <?php echo ((SQ_Tools::$options['sq_google_country_strict'] == 0) ? "checked" : '') ?> />
262
  <label for="sq_google_country_strict0" class="sq_switch-label sq_switch-label-on"><?php _e('No', _SQ_PLUGIN_NAME_); ?></label>
263
  <span class="sq_switch-selection"></span>
264
  </div>
@@ -270,7 +289,7 @@
270
  </fieldset>
271
 
272
  <fieldset id="sq_measure_success">
273
- <legend style="height: 310px;">
274
  <span class="sq_legend_title"><?php _e('Measure Your Success', _SQ_PLUGIN_NAME_); ?></span>
275
  <span><?php echo sprintf(__('%sHow to set the Google Webmaster Tool%s', _SQ_PLUGIN_NAME_), '<a href="http://howto.squirrly.co/wordpress-seo/how-to-set-the-google-webmaster-tool/" target="_blank">', '</a>'); ?></span>
276
  <span><?php echo sprintf(__('%sBest practices to help Google find, crawl, and index your site%s', _SQ_PLUGIN_NAME_), '<a href="https://support.google.com/webmasters/answer/35769?hl=en" target="_blank">', '</a>'); ?></span>
@@ -280,44 +299,51 @@
280
  <div>
281
  <p class="withborder withcode">
282
  <span class="sq_icon sq_icon_googlewt"></span>
283
- <?php echo sprintf(__('Google META verification code for %sWebmaster Tool%s:', _SQ_PLUGIN_NAME_), '<a href="http://maps.google.com/webmasters/" target="_blank">', '</a>'); ?><br><strong><input type="text" name="sq_google_wt" value="<?php echo ((SQ_Tools::$options['sq_google_wt'] <> '') ? SQ_Tools::$options['sq_google_wt'] : '') ?>" size="15" /> (e.g. &lt;meta name="google-site-verification" content="XXXXXXXXXXXXXXXXXX" /&gt;)</strong>
 
284
  </p>
285
- <p class="withborder withcode" >
286
- <span class="sq_icon sq_icon_bingwt" ></span>
287
- <?php echo sprintf(__('Bing META code (for %sWebmaster Tool%s ):', _SQ_PLUGIN_NAME_), '<a href="http://www.bing.com/toolbox/webmaster/" target="_blank">', '</a>'); ?><br><strong> <input type="text" name="sq_bing_wt" value="<?php echo ((SQ_Tools::$options['sq_bing_wt'] <> '') ? SQ_Tools::$options['sq_bing_wt'] : '') ?>" size="15" /> (e.g. &lt;meta name="msvalidate.01" content="XXXXXXXXXXXXXXXXXX" /&gt;)</strong>
 
 
 
288
  </p>
289
- <p class="withborder withcode" >
290
- <span class="sq_icon sq_icon_alexat" ></span>
291
- <?php echo sprintf(__('Alexa META code (for %sAlexa Tool%s ):', _SQ_PLUGIN_NAME_), '<a href="http://www.alexa.com/pro/subscription/signup?tsver=0&puid=200" target="_blank">', '</a>'); ?><br><strong><input type="text" name="sq_alexa" value="<?php echo ((SQ_Tools::$options['sq_alexa'] <> '') ? SQ_Tools::$options['sq_alexa'] : '') ?>" size="15" /> (e.g. &lt;meta name="alexaVerifyID" content="XXXXXXXXXXXXXXXXXX" /&gt;)</strong>
 
 
292
  </p>
293
  </div>
294
  </fieldset>
295
 
296
  <div id="sq_settings_submit">
297
- <input type="hidden" name="action" value="sq_settings_update" />
298
- <input type="hidden" name="nonce" value="<?php echo wp_create_nonce(_SQ_NONCE_ID_); ?>" />
299
- <input type="submit" name="sq_update" value="<?php _e('Save settings', _SQ_PLUGIN_NAME_) ?> &raquo;" />
300
  </div>
301
  </div>
302
  </form>
303
 
304
  <div class="sq_settings_backup">
305
  <form action="" method="POST">
306
- <input type="hidden" name="action" value="sq_backup" />
307
- <input type="hidden" name="nonce" value="<?php echo wp_create_nonce(_SQ_NONCE_ID_); ?>" />
308
- <input type="submit" class="sq_button" name="sq_backup" value="<?php _e('Backup Settings', _SQ_PLUGIN_NAME_) ?>" />
309
- <input type="button" class="sq_button sq_restore" name="sq_restore" value="<?php _e('Restore Settings', _SQ_PLUGIN_NAME_) ?>" />
310
  </form>
311
  </div>
312
 
313
  <div class="sq_settings_restore sq_popup" style="display: none">
314
  <span class="sq_close">x</span>
315
  <span><?php _e('Upload the file with the saved Squirrly Settings', _SQ_PLUGIN_NAME_) ?></span>
 
316
  <form action="" method="POST" enctype="multipart/form-data">
317
- <input type="hidden" name="action" value="sq_restore" />
318
- <input type="file" name="sq_options" id="favicon" style="float: left;" />
319
- <input type="hidden" name="nonce" value="<?php echo wp_create_nonce(_SQ_NONCE_ID_); ?>" />
320
- <input type="submit" style="margin-top: 10px;" class="sq_button" name="sq_restore" value="<?php _e('Restore Backup', _SQ_PLUGIN_NAME_) ?>" />
321
  </form>
322
  </div>
323
  </div>
2
  <?php SQ_ObjController::getBlock('SQ_BlockSupport')->init(); ?>
3
  <div>
4
  <span class="sq_icon"></span>
5
+
6
+ <div id="sq_settings_title"><?php _e('Settings', _SQ_PLUGIN_NAME_); ?> </div>
7
+ <div id="sq_settings_title">
8
+ <input type="submit" name="sq_update" value="<?php _e('Save settings', _SQ_PLUGIN_NAME_) ?> &raquo;"/>
9
  </div>
10
  </div>
11
  <div id="sq_helpsettingscontent" class="sq_helpcontent"></div>
14
  <form id="sq_settings_form" name="settings" action="" method="post" enctype="multipart/form-data">
15
  <div id="sq_settings_body">
16
  <fieldset>
17
+ <legend>
18
  <span class="sq_legend_title"><?php _e('Post/Page Edit', _SQ_PLUGIN_NAME_); ?></span>
19
  <span><?php echo sprintf(__('%sThe right method in working with Squirrly, SEO plugin%s', _SQ_PLUGIN_NAME_), '<a href="http://www.squirrly.co/the-right-premises-in-working-with-squirrly-wordpress-seo-plugin" target="_blank">', '</a>'); ?></span>
20
  <span><?php echo sprintf(__('%sGetting inspired with Squirrly WordPress SEO plugin%s', _SQ_PLUGIN_NAME_), '<a href="http://www.squirrly.co/getting-inspired-with-squirrly-wordpress-seo-plugin" target="_blank">', '</a>'); ?></span>
29
  <p style="font-weight: bold;"><?php _e('Load Squirrly Live Assistant for', _SQ_PLUGIN_NAME_); ?>:</p>
30
  <ul id="sq_post_types">
31
  <li class="sq_selectall"><input type="checkbox" id="sq_selectall"/>Select All</li>
32
+ <li>
33
+ <input type="checkbox" class="sq_post_types" name="sq_post_types[]" value="post" <?php echo(in_array('post', SQ_Tools::$options['sq_post_types']) ? 'checked="checked"' : ''); ?>><?php _e('Posts', _SQ_PLUGIN_NAME_); ?>
34
+ </li>
35
+ <li>
36
+ <input type="checkbox" class="sq_post_types" name="sq_post_types[]" value="page" <?php echo(in_array('page', SQ_Tools::$options['sq_post_types']) ? 'checked="checked"' : ''); ?>><?php _e('Pages', _SQ_PLUGIN_NAME_); ?>
37
+ </li>
38
  <?php if (in_array('product', get_post_types())) { //check for ecommerce product ?>
39
+ <li>
40
+ <input type="checkbox" class="sq_post_types" name="sq_post_types[]" value="product" <?php echo(in_array('product', SQ_Tools::$options['sq_post_types']) ? 'checked="checked"' : ''); ?>><?php _e('Products', _SQ_PLUGIN_NAME_); ?>
41
+ </li>
42
  <?php } ?>
43
  <?php
44
  $types = get_post_types();
54
  } else {
55
  //echo '<pre>' . print_r($type_data, true) . '</pre>';
56
  ?>
57
+ <li>
58
+ <input type="checkbox" class="sq_post_types" name="sq_post_types[]" value="<?php echo $type ?>" <?php echo(in_array($type, SQ_Tools::$options['sq_post_types']) ? 'checked="checked"' : ''); ?>><?php echo $type_data->labels->name; ?>
59
+ </li>
60
  <?php
61
  }
62
  }
63
  ?>
64
  </ul>
65
  </div>
66
+ <br/>
67
+
68
  <div class="sq_option_content">
69
  <div class="sq_switch">
70
+ <input id="sq_keyword_help1" type="radio" class="sq_switch-input" name="sq_keyword_help" value="1" <?php echo((SQ_Tools::$options['sq_keyword_help'] == 1) ? "checked" : '') ?> />
71
  <label for="sq_keyword_help1" class="sq_switch-label sq_switch-label-off"><?php _e('Yes', _SQ_PLUGIN_NAME_); ?></label>
72
+ <input id="sq_keyword_help0" type="radio" class="sq_switch-input" name="sq_keyword_help" value="0" <?php echo((SQ_Tools::$options['sq_keyword_help'] == 0) ? "checked" : '') ?> />
73
  <label for="sq_keyword_help0" class="sq_switch-label sq_switch-label-on"><?php _e('No', _SQ_PLUGIN_NAME_); ?></label>
74
  <span class="sq_switch-selection"></span>
75
  </div>
78
 
79
  <div class="sq_option_content">
80
  <div class="sq_switch">
81
+ <input id="sq_keyword_information1" type="radio" class="sq_switch-input" name="sq_keyword_information" value="1" <?php echo((SQ_Tools::$options['sq_keyword_information'] == 1) ? "checked" : '') ?> />
82
  <label for="sq_keyword_information1" class="sq_switch-label sq_switch-label-off"><?php _e('Yes', _SQ_PLUGIN_NAME_); ?></label>
83
+ <input id="sq_keyword_information0" type="radio" class="sq_switch-input" name="sq_keyword_information" value="0" <?php echo((SQ_Tools::$options['sq_keyword_information'] == 0) ? "checked" : '') ?> />
84
  <label for="sq_keyword_information0" class="sq_switch-label sq_switch-label-on"><?php _e('No', _SQ_PLUGIN_NAME_); ?></label>
85
  <span class="sq_switch-selection"></span>
86
  </div>
90
 
91
  <div class="sq_option_content">
92
  <div class="sq_switch">
93
+ <input id="sq_sla1" type="radio" class="sq_switch-input" name="sq_sla" value="1" <?php echo((SQ_Tools::$options['sq_sla'] == 1) ? "checked" : '') ?> />
94
  <label for="sq_sla1" class="sq_switch-label sq_switch-label-off"><?php _e('Yes', _SQ_PLUGIN_NAME_); ?></label>
95
+ <input id="sq_sla0" type="radio" class="sq_switch-input" name="sq_sla" value="0" <?php echo((SQ_Tools::$options['sq_sla'] == 0) ? "checked" : '') ?> />
96
  <label for="sq_sla0" class="sq_switch-label sq_switch-label-on"><?php _e('No', _SQ_PLUGIN_NAME_); ?></label>
97
  <span class="sq_switch-selection"></span>
98
  </div>
99
  <span><?php _e('Use <strong> the NEW version of the SEO Live Assistant</strong>.', _SQ_PLUGIN_NAME_); ?></span>
100
  </div>
101
  <p></p>
102
+
103
  <div class="sq_option_content withbordertop">
104
  <div class="sq_switch">
105
+ <input id="sq_keywordtag1" type="radio" class="sq_switch-input" name="sq_keywordtag" value="1" <?php echo((SQ_Tools::$options['sq_keywordtag'] == 1) ? "checked" : '') ?> />
106
  <label for="sq_keywordtag1" class="sq_switch-label sq_switch-label-off"><?php _e('Yes', _SQ_PLUGIN_NAME_); ?></label>
107
+ <input id="sq_keywordtag0" type="radio" class="sq_switch-input" name="sq_keywordtag" value="0" <?php echo((SQ_Tools::$options['sq_keywordtag'] == 0) ? "checked" : '') ?> />
108
  <label for="sq_keywordtag0" class="sq_switch-label sq_switch-label-on"><?php _e('No', _SQ_PLUGIN_NAME_); ?></label>
109
  <span class="sq_switch-selection"></span>
110
  </div>
113
 
114
  <div class="sq_option_content">
115
  <div class="sq_switch">
116
+ <input id="sq_local_images1" type="radio" class="sq_switch-input" name="sq_local_images" value="1" <?php echo((SQ_Tools::$options['sq_local_images'] == 1) ? "checked" : '') ?> />
117
  <label for="sq_local_images1" class="sq_switch-label sq_switch-label-off"><?php _e('Yes', _SQ_PLUGIN_NAME_); ?></label>
118
+ <input id="sq_local_images0" type="radio" class="sq_switch-input" name="sq_local_images" value="0" <?php echo((SQ_Tools::$options['sq_local_images'] == 0) ? "checked" : '') ?> />
119
  <label for="sq_local_images0" class="sq_switch-label sq_switch-label-on"><?php _e('No', _SQ_PLUGIN_NAME_); ?></label>
120
  <span class="sq_switch-selection"></span>
121
  </div>
125
 
126
  <div class="sq_option_content">
127
  <div class="sq_switch">
128
+ <input id="sq_url_fix1" type="radio" class="sq_switch-input" name="sq_url_fix" value="1" <?php echo((SQ_Tools::$options['sq_url_fix'] == 1) ? "checked" : '') ?> />
129
  <label for="sq_url_fix1" class="sq_switch-label sq_switch-label-off"><?php _e('Yes', _SQ_PLUGIN_NAME_); ?></label>
130
+ <input id="sq_url_fix0" type="radio" class="sq_switch-input" name="sq_url_fix" value="0" <?php echo((SQ_Tools::$options['sq_url_fix'] == 0) ? "checked" : '') ?> />
131
  <label for="sq_url_fix0" class="sq_switch-label sq_switch-label-on"><?php _e('No', _SQ_PLUGIN_NAME_); ?></label>
132
  <span class="sq_switch-selection"></span>
133
  </div>
144
  <div>
145
  <div class="sq_option_content">
146
  <p>
147
+ <span><?php _e('Select the google extension for which Squirrly will check the google rank', _SQ_PLUGIN_NAME_); ?></span>
148
  </p>
149
+
150
  <div class="abh_select withborder">
151
  <select id="sq_google_country" name="sq_google_country">
152
  <option value="com"><?php _e('Default', _SQ_PLUGIN_NAME_); ?> - Google.com (http://www.google.com/)</option>
192
  <option value="com.hk"><?php _e('Hong Kong', _SQ_PLUGIN_NAME_); ?> (http://www.google.com.hk/)</option>
193
  <option value="co.hu"><?php _e('Hungary', _SQ_PLUGIN_NAME_); ?> (http://www.google.co.hu/)</option>
194
  <option value="co.in"><?php _e('India', _SQ_PLUGIN_NAME_); ?> (http://www.google.co.in/)</option>
195
+ <option value="co.id"><?php _e('Indonesia', _SQ_PLUGIN_NAME_); ?> (http://www.google.co.id/)</option>
196
  <option value="ie"><?php _e('Ireland', _SQ_PLUGIN_NAME_); ?> (http://www.google.ie/)</option>
197
  <option value="co.im"><?php _e('Isle of Man', _SQ_PLUGIN_NAME_); ?> (http://www.google.co.im/)</option>
198
  <option value="co.il"><?php _e('Israel', _SQ_PLUGIN_NAME_); ?> (http://www.google.co.il/)</option>
240
  <option value="sk"><?php _e('Slovakia', _SQ_PLUGIN_NAME_); ?> (http://www.google.sk/)</option>
241
  <option value="co.za"><?php _e('South Africa', _SQ_PLUGIN_NAME_); ?> (http://www.google.co.za/)</option>
242
  <option value="es"><?php _e('Spain', _SQ_PLUGIN_NAME_); ?> (http://www.google.es/)</option>
243
+ <option value="lk"><?php _e('Sri Lanka', _SQ_PLUGIN_NAME_); ?> (http://www.google.lk/)</option>
244
  <option value="se"><?php _e('Sweden', _SQ_PLUGIN_NAME_); ?> (http://www.google.se/)</option>
245
  <option value="ch"><?php _e('Switzerland', _SQ_PLUGIN_NAME_); ?> (http://www.google.ch/)</option>
246
  <option value="com.tw"><?php _e('Taiwan', _SQ_PLUGIN_NAME_); ?> (http://www.google.com.tw/)</option>
259
  <p>
260
  <span><?php echo sprintf(__('Select how many pages to be checked by google rank every hour. %s5 pages (recommended)%s', _SQ_PLUGIN_NAME_), '<br /><span style="color:#aaa;font-size:12px;">', '</span>'); ?></span>
261
  </p>
262
+
263
  <div class="withborder">
264
  <select id="sq_google_ranksperhour" name="sq_google_ranksperhour">
265
+ <?php for ($i = 0; $i < 10; $i++) {
266
+ if ((int)SQ_Tools::$options['sq_google_ranksperhour'] > 10) {
267
+ SQ_Tools::$options['sq_google_ranksperhour'] = 9;
268
+ }
269
+ ?>
270
+ <option value="<?php echo $i ?>" <?php echo((SQ_Tools::$options['sq_google_ranksperhour'] == $i) ? "selected='selected'" : '') ?>><?php echo $i ?><?php _e('pages', _SQ_PLUGIN_NAME_); ?></option>
271
  <?php } ?>
272
  </select>
273
 
275
 
276
  <div class="sq_option_content">
277
  <div class="sq_switch">
278
+ <input id="sq_google_country_strict1" type="radio" class="sq_switch-input" name="sq_google_country_strict" value="1" <?php echo((SQ_Tools::$options['sq_google_country_strict'] == 1) ? "checked" : '') ?> />
279
  <label for="sq_google_country_strict1" class="sq_switch-label sq_switch-label-off"><?php _e('Yes', _SQ_PLUGIN_NAME_); ?></label>
280
+ <input id="sq_google_country_strict0" type="radio" class="sq_switch-input" name="sq_google_country_strict" value="0" <?php echo((SQ_Tools::$options['sq_google_country_strict'] == 0) ? "checked" : '') ?> />
281
  <label for="sq_google_country_strict0" class="sq_switch-label sq_switch-label-on"><?php _e('No', _SQ_PLUGIN_NAME_); ?></label>
282
  <span class="sq_switch-selection"></span>
283
  </div>
289
  </fieldset>
290
 
291
  <fieldset id="sq_measure_success">
292
+ <legend>
293
  <span class="sq_legend_title"><?php _e('Measure Your Success', _SQ_PLUGIN_NAME_); ?></span>
294
  <span><?php echo sprintf(__('%sHow to set the Google Webmaster Tool%s', _SQ_PLUGIN_NAME_), '<a href="http://howto.squirrly.co/wordpress-seo/how-to-set-the-google-webmaster-tool/" target="_blank">', '</a>'); ?></span>
295
  <span><?php echo sprintf(__('%sBest practices to help Google find, crawl, and index your site%s', _SQ_PLUGIN_NAME_), '<a href="https://support.google.com/webmasters/answer/35769?hl=en" target="_blank">', '</a>'); ?></span>
299
  <div>
300
  <p class="withborder withcode">
301
  <span class="sq_icon sq_icon_googlewt"></span>
302
+ <?php echo sprintf(__('Google META verification code for %sWebmaster Tool%s:', _SQ_PLUGIN_NAME_), '<a href="https://www.google.com/webmasters" target="_blank">', '</a>'); ?>
303
+ <br><strong><input type="text" name="sq_google_wt" value="<?php echo((SQ_Tools::$options['sq_google_wt'] <> '') ? SQ_Tools::$options['sq_google_wt'] : '') ?>" size="15"/> (e.g. &lt;meta name="google-site-verification" content="XXXXXXXXXXXXXXXXXX" /&gt;)</strong>
304
  </p>
305
+
306
+ <p class="withborder withcode">
307
+ <span class="sq_icon sq_icon_bingwt"></span>
308
+ <?php echo sprintf(__('Bing META code (for %sWebmaster Tool%s ):', _SQ_PLUGIN_NAME_), '<a href="http://www.bing.com/toolbox/webmaster/" target="_blank">', '</a>'); ?>
309
+ <br><strong>
310
+ <input type="text" name="sq_bing_wt" value="<?php echo((SQ_Tools::$options['sq_bing_wt'] <> '') ? SQ_Tools::$options['sq_bing_wt'] : '') ?>" size="15"/> (e.g. &lt;meta name="msvalidate.01" content="XXXXXXXXXXXXXXXXXX" /&gt;)</strong>
311
  </p>
312
+
313
+ <p class="withborder withcode">
314
+ <span class="sq_icon sq_icon_alexat"></span>
315
+ <?php echo sprintf(__('Alexa META code (for %sAlexa Tool%s ):', _SQ_PLUGIN_NAME_), '<a href="http://www.alexa.com/pro/subscription/signup?tsver=0&puid=200" target="_blank">', '</a>'); ?>
316
+ <br><strong><input type="text" name="sq_alexa" value="<?php echo((SQ_Tools::$options['sq_alexa'] <> '') ? SQ_Tools::$options['sq_alexa'] : '') ?>" size="15"/> (e.g. &lt;meta name="alexaVerifyID" content="XXXXXXXXXXXXXXXXXX" /&gt;)</strong>
317
  </p>
318
  </div>
319
  </fieldset>
320
 
321
  <div id="sq_settings_submit">
322
+ <input type="hidden" name="action" value="sq_settings_update"/>
323
+ <input type="hidden" name="nonce" value="<?php echo wp_create_nonce(_SQ_NONCE_ID_); ?>"/>
324
+ <input type="submit" name="sq_update" value="<?php _e('Save settings', _SQ_PLUGIN_NAME_) ?> &raquo;"/>
325
  </div>
326
  </div>
327
  </form>
328
 
329
  <div class="sq_settings_backup">
330
  <form action="" method="POST">
331
+ <input type="hidden" name="action" value="sq_backup"/>
332
+ <input type="hidden" name="nonce" value="<?php echo wp_create_nonce(_SQ_NONCE_ID_); ?>"/>
333
+ <input type="submit" class="sq_button" name="sq_backup" value="<?php _e('Backup Settings', _SQ_PLUGIN_NAME_) ?>"/>
334
+ <input type="button" class="sq_button sq_restore" name="sq_restore" value="<?php _e('Restore Settings', _SQ_PLUGIN_NAME_) ?>"/>
335
  </form>
336
  </div>
337
 
338
  <div class="sq_settings_restore sq_popup" style="display: none">
339
  <span class="sq_close">x</span>
340
  <span><?php _e('Upload the file with the saved Squirrly Settings', _SQ_PLUGIN_NAME_) ?></span>
341
+
342
  <form action="" method="POST" enctype="multipart/form-data">
343
+ <input type="hidden" name="action" value="sq_restore"/>
344
+ <input type="file" name="sq_options" id="favicon" style="float: left;"/>
345
+ <input type="hidden" name="nonce" value="<?php echo wp_create_nonce(_SQ_NONCE_ID_); ?>"/>
346
+ <input type="submit" style="margin-top: 10px;" class="sq_button" name="sq_restore" value="<?php _e('Restore Backup', _SQ_PLUGIN_NAME_) ?>"/>
347
  </form>
348
  </div>
349
  </div>
themes/default/SQ_BlockSettingsSeo.php CHANGED
@@ -17,7 +17,7 @@
17
  <form id="sq_settings_form" name="settings" action="" method="post" enctype="multipart/form-data">
18
  <div id="sq_settings_body">
19
  <fieldset>
20
- <legend style="height: 405px;">
21
  <span class="sq_legend_title"><?php _e('Let Squirrly SEO optimize this blog', _SQ_PLUGIN_NAME_); ?></span>
22
  <span><?php echo sprintf(__('%sIs Squirrly SEO better then WordPress SEO by Yoast?%s', _SQ_PLUGIN_NAME_), '<a href="http://www.squirrly.co/why_is_squirrly_seo_better_then_wordpress_seo_by_yoast-pagblog-article_id61980-html" target="_blank"><strong>', '</strong></a>'); ?></span>
23
 
@@ -138,6 +138,23 @@
138
  <span><?php echo sprintf(__('adds the <strong>%sJson-LD%s</strong> metas for Semantic SEO', _SQ_PLUGIN_NAME_), '<a href="https://en.wikipedia.org/wiki/JSON-LD" target="_blank">', '</a>'); ?></span>
139
  </div>
140
  </li>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
141
  <p class="sq_option_info" style="padding-left:10px; color: darkgrey;"> <?php _e('Note! By switching the <strong>Json-LD</strong>, <strong>XML Sitemap</strong> and <strong>Favicon</strong> on, you open new options below', _SQ_PLUGIN_NAME_); ?></p>
142
  </ul>
143
  <div style="text-align: center;">
@@ -146,7 +163,7 @@
146
  </div>
147
  </fieldset>
148
  <fieldset id="sq_title_description_keywords" <?php echo ((SQ_Tools::$options['sq_use'] == 0) ? 'style="display:none;"' : ''); ?> <?php echo ((SQ_Tools::$options['sq_fp_title'] == '' || SQ_Tools::$options['sq_auto_seo'] == 1) ? '' : 'class="sq_custom_title"'); ?>>
149
- <legend class="sq_legend_medium">
150
  <span class="sq_legend_title"><?php _e('First page optimization', _SQ_PLUGIN_NAME_); ?></span>
151
  <span><?php echo sprintf(__('%sThe best SEO approach to Meta information%s', _SQ_PLUGIN_NAME_), '<a href="http://www.squirrly.co/the-best-seo-approach-to-meta-information" target="_blank">', '</a>'); ?></span>
152
  <span><?php _e('Add meta <strong>title</strong> in Home Page', _SQ_PLUGIN_NAME_); ?></span>
@@ -166,6 +183,7 @@
166
  </div>
167
 
168
  <span><?php _e('Add meta <strong>description</strong> and <strong>keywords</strong> in Home Page', _SQ_PLUGIN_NAME_); ?></span>
 
169
  <?php
170
  $auto_option = false;
171
  if (SQ_Tools::$options['sq_auto_description'] == 1)
@@ -196,6 +214,8 @@
196
  if (SQ_ObjController::getModel('SQ_Frontend')->getAdvancedMeta($pageId, 'title') <> '') {
197
  SQ_Tools::$options['sq_fp_title'] = SQ_ObjController::getModel('SQ_Frontend')->getAdvancedMeta($pageId, 'title');
198
  SQ_Tools::$options['sq_fp_description'] = SQ_ObjController::getModel('SQ_Frontend')->getAdvancedMeta($pageId, 'description');
 
 
199
  if (!SQ_Tools::$options['sq_fp_keywords'] = SQ_ObjController::getModel('SQ_Frontend')->getAdvancedMeta($pageId, 'keyword')) {
200
  $json = SQ_ObjController::getModel('SQ_Post')->getKeyword($pageId);
201
  if (isset($json) && isset($json->keyword) && $json->keyword <> '') {
@@ -220,6 +240,10 @@
220
  <span style="width: 65px;display: inline-block; vertical-align: top;"><?php _e('Keywords:', _SQ_PLUGIN_NAME_); ?></span><input type="text" name="sq_fp_keywords" value="<?php echo ((SQ_Tools::$options['sq_fp_keywords'] <> '') ? SQ_Tools::$options['sq_fp_keywords'] : '') ?>" size="70" />
221
  <span id="sq_fp_keywords_length"></span><span class="sq_settings_info"><?php _e('Tips: 2-4 keywords', _SQ_PLUGIN_NAME_); ?></span>
222
  </p>
 
 
 
 
223
  </div>
224
 
225
  <span class="sq_option_info"><?php _e('First Page Preview (Title, Description, Keywords)', _SQ_PLUGIN_NAME_); ?></span>
@@ -227,6 +251,10 @@
227
  <div id="sq_snippet_name"><?php _e('Squirrly Snippet', _SQ_PLUGIN_NAME_) ?></div>
228
 
229
  <ul id="sq_snippet_ul">
 
 
 
 
230
  <li id="sq_snippet_title"></li>
231
  <li id="sq_snippet_url"></li>
232
  <li id="sq_snippet_description"></li>
@@ -240,7 +268,7 @@
240
  </div>
241
  </fieldset>
242
  <fieldset id="sq_social_media" style="<?php echo ((SQ_Tools::$options['sq_use'] == 0) ? 'display:none;' : ''); ?>">
243
- <legend class="sq_legend_medium">
244
  <span class="sq_legend_title"><?php _e('Social Media Options', _SQ_PLUGIN_NAME_); ?></span>
245
  <p>
246
  <span><?php _e('Select the language you\'re using on Social Media', _SQ_PLUGIN_NAME_); ?></span>
@@ -435,8 +463,7 @@
435
  <label for="sq_auto_twitter0" class="sq_switch-label sq_switch-label-on"><?php _e('No', _SQ_PLUGIN_NAME_); ?></label>
436
  <span class="sq_switch-selection"></span>
437
  </div>
438
- <span><?php echo __('Add the <strong>Twitter card</strong> in your tweets. ', _SQ_PLUGIN_NAME_) . ' <a href="https://dev.twitter.com/docs/cards/validation/validator" target="_blank" title="Twitter Card Validator">Check here</a> to validate your site'; ?></span>
439
- <br />
440
  <div class="sq_switch sq_seo_switch_condition" style="<?php echo ((SQ_Tools::$options['sq_use'] == 0) ? 'display:none;' : ''); ?>">
441
  <input id="sq_auto_twittersize1" type="radio" class="sq_switch-input" name="sq_auto_twittersize" value="summary_large_image" <?php echo ((SQ_Tools::$options['sq_auto_twittersize'] <> 'summary') ? "checked" : '') ?> />
442
  <label for="sq_auto_twittersize1" class="sq_switch-label sq_switch-label-off"><?php _e('Yes', _SQ_PLUGIN_NAME_); ?></label>
@@ -445,7 +472,6 @@
445
  <span class="sq_switch-selection"></span>
446
  </div>
447
  <span><?php echo sprintf(__('Use <strong>Twitter %ssummary_large_image%s</strong> for your tweeter card. ', _SQ_PLUGIN_NAME_) ,'<a href="https://dev.twitter.com/cards/types/summary-large-image" target="_blank" title="Twitter Large Summary">','</a> ') . ''; ?></span>
448
- <br />
449
  <span style="color: #f7681a; margin-top: 9px; text-align: center; <?php echo ((SQ_Tools::$options['sq_twitter_account'] <> '') ? 'display:none' : '') ?>"><?php echo __('You need to add your <strong>Twitter account</strong> below', _SQ_PLUGIN_NAME_); ?></span>
450
 
451
  </div>
@@ -455,7 +481,7 @@
455
  </div>
456
  </fieldset>
457
  <fieldset id="sq_social_media_accounts" style="<?php echo ((SQ_Tools::$options['sq_use'] == 0) ? 'display:none;' : ''); ?>">
458
- <legend class="sq_legend_medium">
459
  <span class="sq_legend_title"><?php _e('Social Media Accounts', _SQ_PLUGIN_NAME_); ?></span>
460
  <span><?php echo sprintf(__('%sLink your Google+ profile to the content you create%s', _SQ_PLUGIN_NAME_), '<a href="https://developers.google.com/structured-data/" target="_blank">', '</a>'); ?></span>
461
  <span><?php echo sprintf(__('%sTwitter account is mandatory for <strong>Twitter Card Validation</strong>%s', _SQ_PLUGIN_NAME_), '<a href="https://dev.twitter.com/docs/cards/validation/validator" target="_blank">', '</a>'); ?></span>
@@ -489,11 +515,23 @@
489
  <?php _e('Linkedin Profile:', _SQ_PLUGIN_NAME_); ?><br /><strong><input type="text" name="sq_linkedin_account" value="<?php echo ((SQ_Tools::$options['sq_linkedin_account'] <> '') ? SQ_Tools::$options['sq_linkedin_account'] : '') ?>" size="60" placeholder="https://www.linkedin.com/" /> (e.g. https://www.linkedin.com/XXXX/XXXXXXXXXXXXXXXXXX)</strong>
490
  </p>
491
  </li>
 
 
 
 
 
 
 
 
 
 
 
 
492
  </ul>
493
  </div>
494
  </fieldset>
495
  <fieldset id="sq_sitemap" style="<?php echo ((SQ_Tools::$options['sq_use'] == 0 || SQ_Tools::$options['sq_auto_sitemap'] == 0) ? 'display:none;' : ''); ?>">
496
- <legend class="sq_legend_medium">
497
  <span class="sq_legend_title"><?php _e('XML Sitemap for Google', _SQ_PLUGIN_NAME_); ?></span>
498
  <span><?php echo __('Squirrly Sitemap is the fastest way to tell Google about your site links. <strong>Supports Multisites, Google News, Images, Videos, Custom Post Types, Custom Taxonomies and Ecommerce products</strong>', _SQ_PLUGIN_NAME_) ?></span>
499
  <span><?php echo sprintf(__('%sHow to submit your sitemap.xml in Google Webmaster Tool%s', _SQ_PLUGIN_NAME_), '<a href="http://howto.squirrly.co/wordpress-seo/how-to-submit-your-sitemap-xml-in-google-sitemap/" target="_blank">', '</a>'); ?></span>
@@ -554,7 +592,7 @@
554
  </fieldset>
555
  <a name="sq_favicon_anchor"></a>
556
  <fieldset id="sq_favicon" style="<?php echo ((SQ_Tools::$options['sq_use'] == 0 || SQ_Tools::$options['sq_auto_favicon'] == 0) ? 'display:none;' : ''); ?>">
557
- <legend class="sq_legend_small">
558
  <span class="sq_legend_title"><?php _e('Change the Website Icon', _SQ_PLUGIN_NAME_); ?></span>
559
  <span><?php _e('Now, even tablet & smartphone browsers make use of your icons. This makes having a good favicon even more important.', _SQ_PLUGIN_NAME_); ?> </span>
560
  <span><?php echo sprintf(__('You can use %shttp://convertico.com/%s to convert your photo to icon and upload it here after that.', _SQ_PLUGIN_NAME_), '<a href="http://convertico.com/" target="_blank">', '</a>'); ?></span>
@@ -579,17 +617,16 @@
579
  </p>
580
 
581
  <span class="sq_settings_info"><?php _e('If you don\'t see the new icon in your browser, empty the browser cache and refresh the page.', _SQ_PLUGIN_NAME_); ?></span>
582
-
583
- </div>
584
- <div></div>
585
- <div>
586
- <span><?php echo __('File types: JPG, JPEG, GIF and PNG.', _SQ_PLUGIN_NAME_); ?></span>
587
- <br /><br />
588
- <span><strong style="color:#f7681a"><?php echo __('Does not physically create the favicon.ico file. The best option for Multisites.', _SQ_PLUGIN_NAME_) ?></strong></span>
589
  </div>
 
590
  </fieldset>
591
  <fieldset id="sq_jsonld" style="<?php echo ((SQ_Tools::$options['sq_use'] == 0 || SQ_Tools::$options['sq_auto_jsonld'] == 0) ? 'display:none;' : ''); ?>">
592
- <legend class="sq_legend_medium" style="height: 525px;">
593
  <span class="sq_legend_title"><?php _e('JSON-LD for Semantic SEO', _SQ_PLUGIN_NAME_); ?></span>
594
  <span><?php echo __('Squirrly will automatically add the JSON-LD Structured Data in your site.', _SQ_PLUGIN_NAME_) ?></span>
595
  <span><?php echo sprintf(__('%sJSON-LD\'s Big Day at Google%s', _SQ_PLUGIN_NAME_), '<a href="http://www.seoskeptic.com/json-ld-big-day-at-google/" target="_blank">', '</a>'); ?></span>
@@ -655,10 +692,12 @@
655
  </div>
656
  </fieldset>
657
  <fieldset id="sq_tracking" >
658
- <legend style="height: 310px ;">
659
  <span class="sq_legend_title"><?php _e('Tracking Tools', _SQ_PLUGIN_NAME_); ?></span>
660
  <span><?php echo sprintf(__('%sHow to Get the Most Out of Google Analytics%s', _SQ_PLUGIN_NAME_), '<a href="http://mashable.com/2012/01/04/google-analytics-guide/" target="_blank">', '</a>'); ?></span>
 
661
  <span><?php echo sprintf(__('%sA Beginner’s Guide to Facebook Insights%s', _SQ_PLUGIN_NAME_), '<a href="http://mashable.com/2010/09/03/facebook-insights-guide/" target="_blank">', '</a>'); ?></span>
 
662
 
663
  </legend>
664
  <div>
@@ -671,9 +710,13 @@
671
  <span class="sq_icon sq_icon_facebookinsights"></span>
672
  <?php echo sprintf(__('Facebook Admin ID (for %sInsights%s ):', _SQ_PLUGIN_NAME_), '<a href="http://www.facebook.com/insights/" target="_blank">', '</a>'); ?><br><strong> <input type="text" name="sq_facebook_insights" value="<?php echo ((SQ_Tools::$options['sq_facebook_insights'] <> '') ? SQ_Tools::$options['sq_facebook_insights'] : '') ?>" size="15" placeholder="<?php echo __('Facebook ID or https://www.facebook.com/YourProfileName', _SQ_PLUGIN_NAME_) ?>" /> (e.g. &lt;meta property="fb:admins" content="XXXXXXXXXXXXXXXXXX" /&gt;)</strong>
673
  </p>
 
 
 
 
674
  <p class="withborder withcode" >
675
  <span class="sq_icon sq_icon_pinterest"></span>
676
- <?php echo sprintf(__('Pinterest META code:', _SQ_PLUGIN_NAME_), '<a href="#" target="_blank">', '</a>'); ?><br><strong> <input type="text" name="sq_pinterest" value="<?php echo ((SQ_Tools::$options['sq_pinterest'] <> '') ? SQ_Tools::$options['sq_pinterest'] : '') ?>" size="15" /> (e.g. &lt;meta name="p:domain_verify" content="XXXXXXXXXXXXXXXXXX" /&gt;)</strong>
677
  </p>
678
  </div>
679
  </fieldset>
17
  <form id="sq_settings_form" name="settings" action="" method="post" enctype="multipart/form-data">
18
  <div id="sq_settings_body">
19
  <fieldset>
20
+ <legend>
21
  <span class="sq_legend_title"><?php _e('Let Squirrly SEO optimize this blog', _SQ_PLUGIN_NAME_); ?></span>
22
  <span><?php echo sprintf(__('%sIs Squirrly SEO better then WordPress SEO by Yoast?%s', _SQ_PLUGIN_NAME_), '<a href="http://www.squirrly.co/why_is_squirrly_seo_better_then_wordpress_seo_by_yoast-pagblog-article_id61980-html" target="_blank"><strong>', '</strong></a>'); ?></span>
23
 
138
  <span><?php echo sprintf(__('adds the <strong>%sJson-LD%s</strong> metas for Semantic SEO', _SQ_PLUGIN_NAME_), '<a href="https://en.wikipedia.org/wiki/JSON-LD" target="_blank">', '</a>'); ?></span>
139
  </div>
140
  </li>
141
+ <li>
142
+ <?php
143
+ $auto_option = false;
144
+ if (SQ_Tools::$options['sq_auto_amp'] == 1)
145
+ $auto_option = true;
146
+ ?>
147
+ <div class="sq_option_content sq_option_content_small">
148
+ <div class="sq_switch sq_seo_switch_condition" style="<?php echo ((SQ_Tools::$options['sq_use'] == 0) ? 'display:none;' : ''); ?>">
149
+ <input id="sq_auto_amp1" type="radio" class="sq_switch-input" name="sq_auto_amp" value="1" <?php echo ($auto_option ? "checked" : '') ?> />
150
+ <label for="sq_auto_amp1" class="sq_switch-label sq_switch-label-off"><?php _e('Yes', _SQ_PLUGIN_NAME_); ?></label>
151
+ <input id="sq_auto_amp0" type="radio" class="sq_switch-input" name="sq_auto_amp" value="0" <?php echo (!$auto_option ? "checked" : '') ?> />
152
+ <label for="sq_auto_amp0" class="sq_switch-label sq_switch-label-on"><?php _e('No', _SQ_PLUGIN_NAME_); ?></label>
153
+ <span class="sq_switch-selection"></span>
154
+ </div>
155
+ <span><?php echo sprintf(__('turn on <strong>%sGoogle AMP%s</strong> for this website (Note: only if you have an AMP Theme)', _SQ_PLUGIN_NAME_), '<a href="https://developers.google.com/analytics/devguides/collection/amp-analytics/" target="_blank">', '</a>'); ?></span>
156
+ </div>
157
+ </li>
158
  <p class="sq_option_info" style="padding-left:10px; color: darkgrey;"> <?php _e('Note! By switching the <strong>Json-LD</strong>, <strong>XML Sitemap</strong> and <strong>Favicon</strong> on, you open new options below', _SQ_PLUGIN_NAME_); ?></p>
159
  </ul>
160
  <div style="text-align: center;">
163
  </div>
164
  </fieldset>
165
  <fieldset id="sq_title_description_keywords" <?php echo ((SQ_Tools::$options['sq_use'] == 0) ? 'style="display:none;"' : ''); ?> <?php echo ((SQ_Tools::$options['sq_fp_title'] == '' || SQ_Tools::$options['sq_auto_seo'] == 1) ? '' : 'class="sq_custom_title"'); ?>>
166
+ <legend>
167
  <span class="sq_legend_title"><?php _e('First page optimization', _SQ_PLUGIN_NAME_); ?></span>
168
  <span><?php echo sprintf(__('%sThe best SEO approach to Meta information%s', _SQ_PLUGIN_NAME_), '<a href="http://www.squirrly.co/the-best-seo-approach-to-meta-information" target="_blank">', '</a>'); ?></span>
169
  <span><?php _e('Add meta <strong>title</strong> in Home Page', _SQ_PLUGIN_NAME_); ?></span>
183
  </div>
184
 
185
  <span><?php _e('Add meta <strong>description</strong> and <strong>keywords</strong> in Home Page', _SQ_PLUGIN_NAME_); ?></span>
186
+
187
  <?php
188
  $auto_option = false;
189
  if (SQ_Tools::$options['sq_auto_description'] == 1)
214
  if (SQ_ObjController::getModel('SQ_Frontend')->getAdvancedMeta($pageId, 'title') <> '') {
215
  SQ_Tools::$options['sq_fp_title'] = SQ_ObjController::getModel('SQ_Frontend')->getAdvancedMeta($pageId, 'title');
216
  SQ_Tools::$options['sq_fp_description'] = SQ_ObjController::getModel('SQ_Frontend')->getAdvancedMeta($pageId, 'description');
217
+ SQ_Tools::$options['sq_fp_ogimage'] = SQ_ObjController::getModel('SQ_Frontend')->getAdvancedMeta($pageId, 'ogimage');
218
+
219
  if (!SQ_Tools::$options['sq_fp_keywords'] = SQ_ObjController::getModel('SQ_Frontend')->getAdvancedMeta($pageId, 'keyword')) {
220
  $json = SQ_ObjController::getModel('SQ_Post')->getKeyword($pageId);
221
  if (isset($json) && isset($json->keyword) && $json->keyword <> '') {
240
  <span style="width: 65px;display: inline-block; vertical-align: top;"><?php _e('Keywords:', _SQ_PLUGIN_NAME_); ?></span><input type="text" name="sq_fp_keywords" value="<?php echo ((SQ_Tools::$options['sq_fp_keywords'] <> '') ? SQ_Tools::$options['sq_fp_keywords'] : '') ?>" size="70" />
241
  <span id="sq_fp_keywords_length"></span><span class="sq_settings_info"><?php _e('Tips: 2-4 keywords', _SQ_PLUGIN_NAME_); ?></span>
242
  </p>
243
+ <p class="withborder sq_select_ogimage" <?php echo ((SQ_Tools::$options['sq_auto_facebook'] == 1) ? '' : 'style="display:none"') ?>>
244
+ <span style="width: 65px;display: inline-block; vertical-align: top;"><?php _e('OG Image:', _SQ_PLUGIN_NAME_); ?></span>
245
+ <strong><input type="text" name="sq_fp_ogimage" value="<?php echo ((SQ_Tools::$options['sq_fp_ogimage'] <> '') ? SQ_Tools::$options['sq_fp_ogimage'] : '') ?>" size="60" style="display:none;" /><input id="sq_fp_imageselect" type="button" class="sq_button" value="<?php echo __('Select Open Graph Image', _SQ_PLUGIN_NAME_) ?>"/></strong>
246
+ </p>
247
  </div>
248
 
249
  <span class="sq_option_info"><?php _e('First Page Preview (Title, Description, Keywords)', _SQ_PLUGIN_NAME_); ?></span>
251
  <div id="sq_snippet_name"><?php _e('Squirrly Snippet', _SQ_PLUGIN_NAME_) ?></div>
252
 
253
  <ul id="sq_snippet_ul">
254
+ <div class="sq_select_ogimage_preview" <?php echo ((SQ_Tools::$options['sq_auto_facebook'] == 1) ? '' : 'style="display:none"') ?>>
255
+ <div class="sq_fp_ogimage_close" <?php echo ((SQ_Tools::$options['sq_fp_ogimage'] <> '') ? '' : 'style="display:none;"') ?>>x</div>
256
+ <div class="sq_fp_ogimage"><?php echo ((SQ_Tools::$options['sq_fp_ogimage'] <> '') ? '<img src="'.SQ_Tools::$options['sq_fp_ogimage'] .'" />' : '') ?></div>
257
+ </div>
258
  <li id="sq_snippet_title"></li>
259
  <li id="sq_snippet_url"></li>
260
  <li id="sq_snippet_description"></li>
268
  </div>
269
  </fieldset>
270
  <fieldset id="sq_social_media" style="<?php echo ((SQ_Tools::$options['sq_use'] == 0) ? 'display:none;' : ''); ?>">
271
+ <legend>
272
  <span class="sq_legend_title"><?php _e('Social Media Options', _SQ_PLUGIN_NAME_); ?></span>
273
  <p>
274
  <span><?php _e('Select the language you\'re using on Social Media', _SQ_PLUGIN_NAME_); ?></span>
463
  <label for="sq_auto_twitter0" class="sq_switch-label sq_switch-label-on"><?php _e('No', _SQ_PLUGIN_NAME_); ?></label>
464
  <span class="sq_switch-selection"></span>
465
  </div>
466
+ <span><?php echo __('Add the <strong>Twitter card</strong> in your tweets. ', _SQ_PLUGIN_NAME_) . ' <a href="https://cards-dev.twitter.com/validator" target="_blank" title="Twitter Card Validator">Check here</a> to validate your site'; ?></span>
 
467
  <div class="sq_switch sq_seo_switch_condition" style="<?php echo ((SQ_Tools::$options['sq_use'] == 0) ? 'display:none;' : ''); ?>">
468
  <input id="sq_auto_twittersize1" type="radio" class="sq_switch-input" name="sq_auto_twittersize" value="summary_large_image" <?php echo ((SQ_Tools::$options['sq_auto_twittersize'] <> 'summary') ? "checked" : '') ?> />
469
  <label for="sq_auto_twittersize1" class="sq_switch-label sq_switch-label-off"><?php _e('Yes', _SQ_PLUGIN_NAME_); ?></label>
472
  <span class="sq_switch-selection"></span>
473
  </div>
474
  <span><?php echo sprintf(__('Use <strong>Twitter %ssummary_large_image%s</strong> for your tweeter card. ', _SQ_PLUGIN_NAME_) ,'<a href="https://dev.twitter.com/cards/types/summary-large-image" target="_blank" title="Twitter Large Summary">','</a> ') . ''; ?></span>
 
475
  <span style="color: #f7681a; margin-top: 9px; text-align: center; <?php echo ((SQ_Tools::$options['sq_twitter_account'] <> '') ? 'display:none' : '') ?>"><?php echo __('You need to add your <strong>Twitter account</strong> below', _SQ_PLUGIN_NAME_); ?></span>
476
 
477
  </div>
481
  </div>
482
  </fieldset>
483
  <fieldset id="sq_social_media_accounts" style="<?php echo ((SQ_Tools::$options['sq_use'] == 0) ? 'display:none;' : ''); ?>">
484
+ <legend>
485
  <span class="sq_legend_title"><?php _e('Social Media Accounts', _SQ_PLUGIN_NAME_); ?></span>
486
  <span><?php echo sprintf(__('%sLink your Google+ profile to the content you create%s', _SQ_PLUGIN_NAME_), '<a href="https://developers.google.com/structured-data/" target="_blank">', '</a>'); ?></span>
487
  <span><?php echo sprintf(__('%sTwitter account is mandatory for <strong>Twitter Card Validation</strong>%s', _SQ_PLUGIN_NAME_), '<a href="https://dev.twitter.com/docs/cards/validation/validator" target="_blank">', '</a>'); ?></span>
515
  <?php _e('Linkedin Profile:', _SQ_PLUGIN_NAME_); ?><br /><strong><input type="text" name="sq_linkedin_account" value="<?php echo ((SQ_Tools::$options['sq_linkedin_account'] <> '') ? SQ_Tools::$options['sq_linkedin_account'] : '') ?>" size="60" placeholder="https://www.linkedin.com/" /> (e.g. https://www.linkedin.com/XXXX/XXXXXXXXXXXXXXXXXX)</strong>
516
  </p>
517
  </li>
518
+ <li>
519
+ <p class="withborder withcode">
520
+ <span class="sq_icon sq_icon_social_pinterest"></span>
521
+ <?php _e('Pinterest Profile:', _SQ_PLUGIN_NAME_); ?><br /><strong><input type="text" name="sq_pinterest_account" value="<?php echo ((SQ_Tools::$options['sq_pinterest_account'] <> '') ? SQ_Tools::$options['sq_pinterest_account'] : '') ?>" size="60" placeholder="https://www.pinterest.com/" /> (e.g. https://www.pinterest.com/XXXXXXXXXXXXXXXXXX)</strong>
522
+ </p>
523
+ </li>
524
+ <li>
525
+ <p class="withborder withcode">
526
+ <span class="sq_icon sq_icon_social_instagram"></span>
527
+ <?php _e('Instagram Profile:', _SQ_PLUGIN_NAME_); ?><br /><strong><input type="text" name="sq_instagram_account" value="<?php echo ((SQ_Tools::$options['sq_instagram_account'] <> '') ? SQ_Tools::$options['sq_instagram_account'] : '') ?>" size="60" placeholder="https://www.instagram.com/" /> (e.g. https://www.linkedin.com/XXXXXXXXXXXXXXXXXX)</strong>
528
+ </p>
529
+ </li>
530
  </ul>
531
  </div>
532
  </fieldset>
533
  <fieldset id="sq_sitemap" style="<?php echo ((SQ_Tools::$options['sq_use'] == 0 || SQ_Tools::$options['sq_auto_sitemap'] == 0) ? 'display:none;' : ''); ?>">
534
+ <legend>
535
  <span class="sq_legend_title"><?php _e('XML Sitemap for Google', _SQ_PLUGIN_NAME_); ?></span>
536
  <span><?php echo __('Squirrly Sitemap is the fastest way to tell Google about your site links. <strong>Supports Multisites, Google News, Images, Videos, Custom Post Types, Custom Taxonomies and Ecommerce products</strong>', _SQ_PLUGIN_NAME_) ?></span>
537
  <span><?php echo sprintf(__('%sHow to submit your sitemap.xml in Google Webmaster Tool%s', _SQ_PLUGIN_NAME_), '<a href="http://howto.squirrly.co/wordpress-seo/how-to-submit-your-sitemap-xml-in-google-sitemap/" target="_blank">', '</a>'); ?></span>
592
  </fieldset>
593
  <a name="sq_favicon_anchor"></a>
594
  <fieldset id="sq_favicon" style="<?php echo ((SQ_Tools::$options['sq_use'] == 0 || SQ_Tools::$options['sq_auto_favicon'] == 0) ? 'display:none;' : ''); ?>">
595
+ <legend>
596
  <span class="sq_legend_title"><?php _e('Change the Website Icon', _SQ_PLUGIN_NAME_); ?></span>
597
  <span><?php _e('Now, even tablet & smartphone browsers make use of your icons. This makes having a good favicon even more important.', _SQ_PLUGIN_NAME_); ?> </span>
598
  <span><?php echo sprintf(__('You can use %shttp://convertico.com/%s to convert your photo to icon and upload it here after that.', _SQ_PLUGIN_NAME_), '<a href="http://convertico.com/" target="_blank">', '</a>'); ?></span>
617
  </p>
618
 
619
  <span class="sq_settings_info"><?php _e('If you don\'t see the new icon in your browser, empty the browser cache and refresh the page.', _SQ_PLUGIN_NAME_); ?></span>
620
+ <div>
621
+ <div style="margin-top: 10px"><?php echo __('File types: JPG, JPEG, GIF and PNG.', _SQ_PLUGIN_NAME_); ?></div>
622
+ <br /><br />
623
+ <span><strong style="color:#f7681a"><?php echo __('Does not physically create the favicon.ico file. The best option for Multisites.', _SQ_PLUGIN_NAME_) ?></strong></span>
624
+ </div>
 
 
625
  </div>
626
+
627
  </fieldset>
628
  <fieldset id="sq_jsonld" style="<?php echo ((SQ_Tools::$options['sq_use'] == 0 || SQ_Tools::$options['sq_auto_jsonld'] == 0) ? 'display:none;' : ''); ?>">
629
+ <legend>
630
  <span class="sq_legend_title"><?php _e('JSON-LD for Semantic SEO', _SQ_PLUGIN_NAME_); ?></span>
631
  <span><?php echo __('Squirrly will automatically add the JSON-LD Structured Data in your site.', _SQ_PLUGIN_NAME_) ?></span>
632
  <span><?php echo sprintf(__('%sJSON-LD\'s Big Day at Google%s', _SQ_PLUGIN_NAME_), '<a href="http://www.seoskeptic.com/json-ld-big-day-at-google/" target="_blank">', '</a>'); ?></span>
692
  </div>
693
  </fieldset>
694
  <fieldset id="sq_tracking" >
695
+ <legend>
696
  <span class="sq_legend_title"><?php _e('Tracking Tools', _SQ_PLUGIN_NAME_); ?></span>
697
  <span><?php echo sprintf(__('%sHow to Get the Most Out of Google Analytics%s', _SQ_PLUGIN_NAME_), '<a href="http://mashable.com/2012/01/04/google-analytics-guide/" target="_blank">', '</a>'); ?></span>
698
+ <span><?php echo sprintf(__('%sWhat is Facebook Pixel?%s', _SQ_PLUGIN_NAME_), '<a href="https://www.facebook.com/business/help/952192354843755" target="_blank">', '</a>'); ?></span>
699
  <span><?php echo sprintf(__('%sA Beginner’s Guide to Facebook Insights%s', _SQ_PLUGIN_NAME_), '<a href="http://mashable.com/2010/09/03/facebook-insights-guide/" target="_blank">', '</a>'); ?></span>
700
+ <span><?php echo sprintf(__('%sRich Pins Validator%s', _SQ_PLUGIN_NAME_), '<a href="https://developers.pinterest.com/tools/url-debugger/" target="_blank">', '</a>'); ?></span>
701
 
702
  </legend>
703
  <div>
710
  <span class="sq_icon sq_icon_facebookinsights"></span>
711
  <?php echo sprintf(__('Facebook Admin ID (for %sInsights%s ):', _SQ_PLUGIN_NAME_), '<a href="http://www.facebook.com/insights/" target="_blank">', '</a>'); ?><br><strong> <input type="text" name="sq_facebook_insights" value="<?php echo ((SQ_Tools::$options['sq_facebook_insights'] <> '') ? SQ_Tools::$options['sq_facebook_insights'] : '') ?>" size="15" placeholder="<?php echo __('Facebook ID or https://www.facebook.com/YourProfileName', _SQ_PLUGIN_NAME_) ?>" /> (e.g. &lt;meta property="fb:admins" content="XXXXXXXXXXXXXXXXXX" /&gt;)</strong>
712
  </p>
713
+ <p class="withborder withcode">
714
+ <span class="sq_icon sq_icon_facebookpixel"></span>
715
+ <?php echo sprintf(__('Facebook %sPixel ID%s:', _SQ_PLUGIN_NAME_), '<a href="https://www.facebook.com/ads/manager/pixel/facebook_pixel/" target="_blank">', '</a>'); ?><br><strong><input type="text" name="sq_facebook_analytics" value="<?php echo ((SQ_Tools::$options['sq_facebook_analytics'] <> '') ? SQ_Tools::$options['sq_facebook_analytics'] : '') ?>" size="15" /> (e.g. 1234567890)</strong>
716
+ </p>
717
  <p class="withborder withcode" >
718
  <span class="sq_icon sq_icon_pinterest"></span>
719
+ <?php echo sprintf(__('Pinterest Website Validator Code: (validate %sRich Pins%s )', _SQ_PLUGIN_NAME_), '<a href="https://developers.pinterest.com/tools/url-debugger/" target="_blank">', '</a>'); ?><br><strong> <input type="text" name="sq_pinterest" value="<?php echo ((SQ_Tools::$options['sq_pinterest'] <> '') ? SQ_Tools::$options['sq_pinterest'] : '') ?>" size="15" /> (e.g. &lt;meta name="p:domain_verify" content="XXXXXXXXXXXXXXXXXX" /&gt;)</strong>
720
  </p>
721
  </div>
722
  </fieldset>
themes/default/SQ_Blocksearch.php CHANGED
@@ -37,7 +37,6 @@
37
  <li id="sq_type_img" title="<?php _e('Images', _SQ_PLUGIN_NAME_) ?>"></li>
38
  <li id="sq_type_twitter" title="<?php _e('Twitter', _SQ_PLUGIN_NAME_) ?>"></li>
39
  <li id="sq_type_wiki" title="<?php _e('Wiki', _SQ_PLUGIN_NAME_) ?>"></li>
40
- <li id="sq_type_news" title="<?php _e('News', _SQ_PLUGIN_NAME_) ?>"></li>
41
  <li id="sq_type_blog" title="<?php _e('Blogs', _SQ_PLUGIN_NAME_) ?>"></li>
42
  <li id="sq_type_local" title="<?php _e('My articles', _SQ_PLUGIN_NAME_) ?>"></li>
43
  </ul>
37
  <li id="sq_type_img" title="<?php _e('Images', _SQ_PLUGIN_NAME_) ?>"></li>
38
  <li id="sq_type_twitter" title="<?php _e('Twitter', _SQ_PLUGIN_NAME_) ?>"></li>
39
  <li id="sq_type_wiki" title="<?php _e('Wiki', _SQ_PLUGIN_NAME_) ?>"></li>
 
40
  <li id="sq_type_blog" title="<?php _e('Blogs', _SQ_PLUGIN_NAME_) ?>"></li>
41
  <li id="sq_type_local" title="<?php _e('My articles', _SQ_PLUGIN_NAME_) ?>"></li>
42
  </ul>
themes/default/SQ_Blockseo.php CHANGED
@@ -4,8 +4,10 @@
4
  <div class="sq_tasks"></div>
5
  </div>
6
  </div>
 
7
  <div id="sq_canonical" style="display: none">
8
  <div class="sq_header"><?php _e('Canonical link: ', _SQ_PLUGIN_NAME_); ?></div>
9
  <div class="sq_canonical_input"><input type="text" name="sq_canonical" size="30" value="<?php global $sq_postID; echo SQ_ObjController::getModel('SQ_Frontend')->getAdvancedMeta($sq_postID, 'canonical') ?>" /></div>
10
  <div class="sq_information"><em><?php _e('(only for external sources)', _SQ_PLUGIN_NAME_); ?></em></div>
11
- </div>
 
4
  <div class="sq_tasks"></div>
5
  </div>
6
  </div>
7
+ <?php if (SQ_Tools::$options['sq_use'] == 1 && SQ_Tools::$options['sq_auto_canonical'] == 1) { ?>
8
  <div id="sq_canonical" style="display: none">
9
  <div class="sq_header"><?php _e('Canonical link: ', _SQ_PLUGIN_NAME_); ?></div>
10
  <div class="sq_canonical_input"><input type="text" name="sq_canonical" size="30" value="<?php global $sq_postID; echo SQ_ObjController::getModel('SQ_Frontend')->getAdvancedMeta($sq_postID, 'canonical') ?>" /></div>
11
  <div class="sq_information"><em><?php _e('(only for external sources)', _SQ_PLUGIN_NAME_); ?></em></div>
12
+ </div>
13
+ <?php }
themes/default/css/sq_blockresearch.css CHANGED
@@ -173,6 +173,7 @@
173
  float: right;
174
  margin-right: 10px;
175
  margin-top: 2px;
 
176
  }
177
  #sq_research .sq_keyword_research{
178
  float: left;
173
  float: right;
174
  margin-right: 10px;
175
  margin-top: 2px;
176
+ line-height: 16px;
177
  }
178
  #sq_research .sq_keyword_research{
179
  float: left;
themes/default/css/sq_blocksearch.css CHANGED
@@ -199,6 +199,9 @@
199
  overflow-y: auto;
200
  max-height: 310px;
201
  overflow-x: hidden;
 
 
 
202
  clear: both;
203
  }
204
  #sq_blocksearch .sq_search ul{
@@ -334,11 +337,10 @@
334
  border-color: #333;
335
  }
336
  #sq_blocksearch .sq_search ul li.sq_search_img_li > img{
337
- clip: rect(5px, 64px, 59px, 10px);
338
  position: absolute;
339
-
340
- margin-top: -5px;
341
- margin-left: -10px;
342
  max-height: 75px;
343
  }
344
 
199
  overflow-y: auto;
200
  max-height: 310px;
201
  overflow-x: hidden;
202
+ padding: 0 !important;
203
+ margin: 0 !important;
204
+ width: 100% !important;
205
  clear: both;
206
  }
207
  #sq_blocksearch .sq_search ul{
337
  border-color: #333;
338
  }
339
  #sq_blocksearch .sq_search ul li.sq_search_img_li > img{
340
+ clip: rect(7px, 75px, 63px, 19px);
341
  position: absolute;
342
+ margin-top: -8px;
343
+ margin-left: -20px;
 
344
  max-height: 75px;
345
  }
346
 
themes/default/css/sq_blockseo.css CHANGED
@@ -523,4 +523,6 @@ body ul.sq_complete li span{
523
  font-style: italic;
524
  padding: 5px;
525
  width: 100%;
 
 
526
  }
523
  font-style: italic;
524
  padding: 5px;
525
  width: 100%;
526
+ height: 30px;
527
+ line-height: 20px;
528
  }
themes/default/css/sq_blocksettingsseo.css CHANGED
@@ -51,6 +51,7 @@
51
  #sq_settings #sq_option_facebook,
52
  #sq_settings #sq_option_twitter{
53
  position: relative;
 
54
  clear: both;
55
  }
56
 
@@ -172,4 +173,28 @@
172
  background: transparent url('../img/settings/googlejsonld.png') no-repeat;
173
  z-index: 100;
174
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
175
  }
51
  #sq_settings #sq_option_facebook,
52
  #sq_settings #sq_option_twitter{
53
  position: relative;
54
+ display: table;
55
  clear: both;
56
  }
57
 
173
  background: transparent url('../img/settings/googlejsonld.png') no-repeat;
174
  z-index: 100;
175
 
176
+ }
177
+ #sq_settings div.sq_select_ogimage_preview{
178
+ position: relative;
179
+ display: table
180
+ }
181
+ #sq_settings div.sq_fp_ogimage img{
182
+ max-width: 470px;
183
+ max-height: 246px;
184
+ overflow: hidden;
185
+ text-align: center;
186
+ }
187
+
188
+ #sq_settings div.sq_fp_ogimage_close {
189
+ position: absolute;
190
+
191
+ right: -8px;
192
+ top: -8px;
193
+ border: 1px #ccc;
194
+ background: #ddd;
195
+ border-radius: 50%;
196
+ width: 20px;
197
+ line-height: 20px;
198
+ text-align: center;
199
+ cursor: pointer;
200
  }
themes/default/css/sq_feed.css CHANGED
@@ -1,8 +1,3 @@
1
- /* http://meyerweb.com/eric/tools/css/reset/
2
- v2.0 | 20110126
3
- License: none (public domain)
4
- */
5
- /* HTML5 display-role reset for older browsers */
6
  article,
7
  aside,
8
  details,
 
 
 
 
 
1
  article,
2
  aside,
3
  details,
themes/default/css/sq_menu.css CHANGED
@@ -326,8 +326,7 @@
326
  float: left;
327
  clear: both;
328
  width: 900px;
329
-
330
- background: #fcfcfc;
331
  border: 1px solid #ddd;
332
  font-size: 1.1em;
333
  margin: 10px auto;
@@ -340,18 +339,22 @@
340
  }
341
  #sq_settings_body fieldset > div{
342
  float: left;
343
- padding: 20px 0 0 0px;
344
- width: 550px;
 
 
 
 
 
 
345
  }
346
  #sq_settings_body fieldset legend{
347
  float: left;
348
  width: 280px;
349
- height: 365px;
350
- background: #161a16 repeat-x top left;
351
  border: none;
352
  font-weight: normal;
353
  font-size: 14px;
354
- margin: 0 10px 0 0;
355
  padding: 25px;
356
  line-height: 20px;
357
  text-align: left;
@@ -435,6 +438,12 @@
435
  color: #777;
436
  }
437
 
 
 
 
 
 
 
438
  #sq_settings_body fieldset p{
439
  vertical-align: top;
440
  margin: 5px 0 5px 0;
@@ -493,7 +502,7 @@
493
  background: transparent url('../img/sprite.png') no-repeat;
494
  margin: 0 10px 0 0;
495
  color: brown;
496
- width: 55px;
497
  height: 50px;
498
  }
499
  #sq_settings_body fieldset .sq_icon_googleplus {
@@ -516,6 +525,16 @@
516
  width: 74px;
517
  height: 70px;
518
  }
 
 
 
 
 
 
 
 
 
 
519
 
520
  #sq_settings_body fieldset .sq_icon_googlewt {
521
  background-position: -112px -100px;
@@ -526,6 +545,10 @@
526
  #sq_settings_body fieldset .sq_icon_facebookinsights {
527
  background-position: -59px -100px;
528
  }
 
 
 
 
529
  #sq_settings_body fieldset .sq_icon_bingwt {
530
  background-position: -165px -100px;
531
  }
326
  float: left;
327
  clear: both;
328
  width: 900px;
329
+ background: #161a16;
 
330
  border: 1px solid #ddd;
331
  font-size: 1.1em;
332
  margin: 10px auto;
339
  }
340
  #sq_settings_body fieldset > div{
341
  float: left;
342
+ background-color: #fcfcfc;
343
+ padding: 20px 0 0 10px;
344
+ width: 560px;
345
+ min-height: 280px;
346
+ }
347
+
348
+ #sq_settings_affiliate_form fieldset > div{
349
+ min-height: 324px;
350
  }
351
  #sq_settings_body fieldset legend{
352
  float: left;
353
  width: 280px;
 
 
354
  border: none;
355
  font-weight: normal;
356
  font-size: 14px;
357
+ margin: 0;
358
  padding: 25px;
359
  line-height: 20px;
360
  text-align: left;
438
  color: #777;
439
  }
440
 
441
+ #sq_settings_body .sq_option_info{
442
+ font-style: italic;
443
+ color: #aaa;
444
+ font-size: 90%;
445
+ }
446
+
447
  #sq_settings_body fieldset p{
448
  vertical-align: top;
449
  margin: 5px 0 5px 0;
502
  background: transparent url('../img/sprite.png') no-repeat;
503
  margin: 0 10px 0 0;
504
  color: brown;
505
+ width: 54px;
506
  height: 50px;
507
  }
508
  #sq_settings_body fieldset .sq_icon_googleplus {
525
  width: 74px;
526
  height: 70px;
527
  }
528
+ #sq_settings_body fieldset .sq_icon_social_instagram {
529
+ background-position: -445px -279px;
530
+ width: 74px;
531
+ height: 70px;
532
+ }
533
+ #sq_settings_body fieldset .sq_icon_social_pinterest {
534
+ background-position: -518px -279px;
535
+ width: 74px;
536
+ height: 70px;
537
+ }
538
 
539
  #sq_settings_body fieldset .sq_icon_googlewt {
540
  background-position: -112px -100px;
545
  #sq_settings_body fieldset .sq_icon_facebookinsights {
546
  background-position: -59px -100px;
547
  }
548
+ #sq_settings_body fieldset .sq_icon_facebookpixel {
549
+ background-position: -370px -100px;
550
+ }
551
+
552
  #sq_settings_body fieldset .sq_icon_bingwt {
553
  background-position: -165px -100px;
554
  }
themes/default/img/sprite.png CHANGED
Binary file
themes/default/js/sq_blocksettingsseo.js CHANGED
@@ -231,6 +231,64 @@ function sq_blocksettingsseo() {
231
  // Finally, open the modal on click
232
  frame.open();
233
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
234
  }
235
 
236
  //Submit the settings
@@ -248,56 +306,62 @@ function sq_submitSettings() {
248
  });
249
 
250
  jQuery.post(
251
- sqQuery.ajaxurl,
252
- {
253
- action: 'sq_settingsseo_update',
254
  // --
255
- sq_use: jQuery('#sq_settings').find('input[name=sq_use]:checked').val(),
256
- sq_auto_title: jQuery('#sq_settings').find('input[name=sq_auto_title]:checked').val(),
257
- sq_auto_description: jQuery('#sq_settings').find('input[name=sq_auto_description]:checked').val(),
258
- sq_auto_canonical: jQuery('#sq_settings').find('input[name=sq_auto_canonical]:checked').val(),
259
- sq_auto_meta: jQuery('#sq_settings').find('input[name=sq_auto_meta]:checked').val(),
260
- sq_auto_favicon: jQuery('#sq_settings').find('input[name=sq_auto_favicon]:checked').val(),
261
- sq_auto_facebook: jQuery('#sq_settings').find('input[name=sq_auto_facebook]:checked').val(),
262
- sq_auto_twitter: jQuery('#sq_settings').find('input[name=sq_auto_twitter]:checked').val(),
263
- sq_auto_twittersize: jQuery('#sq_settings').find('input[name=sq_auto_twittersize]:checked').val(),
264
- sq_og_locale: jQuery('#sq_settings').find('select[name=sq_og_locale] option:selected').val(),
265
  //--
266
- sq_twitter_account: jQuery('#sq_settings').find('input[name=sq_twitter_account]').val(),
267
- sq_facebook_account: jQuery('#sq_settings').find('input[name=sq_facebook_account]').val(),
268
- sq_google_plus: jQuery('#sq_settings').find('input[name=sq_google_plus]').val(),
269
- sq_linkedin_account: jQuery('#sq_settings').find('input[name=sq_linkedin_account]').val(),
 
 
270
  //--
271
- sq_auto_sitemap: jQuery('#sq_settings').find('input[name=sq_auto_sitemap]:checked').val(),
272
- sq_auto_feed: jQuery('#sq_settings').find('input[name=sq_auto_feed]:checked').val(),
273
- sq_sitemap: sq_sitemap,
274
- sq_sitemap_show: sq_sitemap_show,
275
- sq_sitemap_frequency: jQuery('#sq_settings').find('select[name=sq_sitemap_frequency] option:selected').val(),
276
- sq_sitemap_ping: jQuery('#sq_settings').find('input[name=sq_sitemap_ping]:checked').val(),
277
  // --
278
- sq_auto_jsonld: jQuery('#sq_settings').find('input[name=sq_auto_jsonld]:checked').val(),
279
- sq_jsonld_type: jQuery('#sq_settings').find('select[name=sq_jsonld_type] option:selected').val(),
280
- sq_jsonld_name: jQuery('#sq_settings').find('input[name=sq_jsonld_name]').val(),
281
- sq_jsonld_jobTitle: jQuery('#sq_settings').find('input[name=sq_jsonld_jobTitle]').val(),
282
- sq_jsonld_logo: jQuery('#sq_settings').find('input[name=sq_jsonld_logo]').val(),
283
- sq_jsonld_telephone: jQuery('#sq_settings').find('input[name=sq_jsonld_telephone]').val(),
284
- sq_jsonld_contactType: jQuery('#sq_settings').find('select[name=sq_jsonld_contactType] option:selected').val(),
285
- sq_jsonld_description: jQuery('#sq_settings').find('textarea[name=sq_jsonld_description]').val(),
286
  //--
287
- sq_auto_seo: jQuery('#sq_settings').find('input[name=sq_auto_seo]:checked').val(),
288
- sq_fp_title: jQuery('#sq_settings').find('input[name=sq_fp_title]').val(),
289
- sq_fp_description: jQuery('#sq_settings').find('textarea[name=sq_fp_description]').val(),
290
- sq_fp_keywords: jQuery('#sq_settings').find('input[name=sq_fp_keywords]').val(),
 
291
  // --
292
- ignore_warn: jQuery('#sq_settings').find('input[name=ignore_warn]:checked').val(),
293
  // --
294
- sq_google_analytics: jQuery('#sq_settings').find('input[name=sq_google_analytics]').val(),
295
- sq_facebook_insights: jQuery('#sq_settings').find('input[name=sq_facebook_insights]').val(),
296
- sq_pinterest: jQuery('#sq_settings').find('input[name=sq_pinterest]').val(),
297
- // --
298
 
299
- nonce: sqQuery.nonce
300
- }
 
 
 
 
301
  ).done(function () {
302
  showSaved(2000);
303
  }, 'json');
231
  // Finally, open the modal on click
232
  frame.open();
233
  });
234
+
235
+ jQuery('#sq_auto_facebook1').bind('click', function () {
236
+ jQuery('p.sq_select_ogimage').slideDown();
237
+ jQuery('div.sq_select_ogimage_preview').slideDown();
238
+
239
+ });
240
+ jQuery('#sq_auto_facebook0').bind('click', function () {
241
+ jQuery('p.sq_select_ogimage').slideUp();
242
+ jQuery('div.sq_select_ogimage_preview').slideUp();
243
+ });
244
+
245
+ jQuery('div.sq_fp_ogimage_close').bind('click', function (event) {
246
+ jQuery('input[name=sq_fp_ogimage]').val('');
247
+ jQuery('div.sq_fp_ogimage').html('');
248
+ jQuery('div.sq_fp_ogimage_close').hide();
249
+ });
250
+ //Upload image from library
251
+ jQuery('#sq_fp_imageselect').bind('click', function (event) {
252
+ var frame;
253
+
254
+ event.preventDefault();
255
+
256
+ // If the media frame already exists, reopen it.
257
+ if (frame) {
258
+ frame.open();
259
+ return;
260
+ }
261
+
262
+ // Create a new media frame
263
+ frame = wp.media({
264
+ title: 'Select or Upload Media Of Your Chosen Persuasion',
265
+ button: {
266
+ text: 'Use this media'
267
+ },
268
+ multiple: false // Set to true to allow multiple files to be selected
269
+ });
270
+
271
+
272
+ // When an image is selected in the media frame...
273
+ frame.on('select', function () {
274
+
275
+ // Get media attachment details from the frame state
276
+ var attachment = frame.state().get('selection').first().toJSON();
277
+
278
+ // Send the attachment URL to our custom image input field.
279
+ jQuery('input[name=sq_fp_ogimage]').val(attachment.url);
280
+ if (attachment.url != '') {
281
+ jQuery('div.sq_fp_ogimage').html('<img src="' + attachment.url + '">');
282
+ jQuery('div.sq_fp_ogimage_close').show();
283
+ }else{
284
+ jQuery('div.sq_fp_ogimage').html('');
285
+ jQuery('div.sq_fp_ogimage_close').hide();
286
+ }
287
+ });
288
+
289
+ // Finally, open the modal on click
290
+ frame.open();
291
+ });
292
  }
293
 
294
  //Submit the settings
306
  });
307
 
308
  jQuery.post(
309
+ sqQuery.ajaxurl,
310
+ {
311
+ action: 'sq_settingsseo_update',
312
  // --
313
+ sq_use: jQuery('#sq_settings').find('input[name=sq_use]:checked').val(),
314
+ sq_auto_title: jQuery('#sq_settings').find('input[name=sq_auto_title]:checked').val(),
315
+ sq_auto_description: jQuery('#sq_settings').find('input[name=sq_auto_description]:checked').val(),
316
+ sq_auto_canonical: jQuery('#sq_settings').find('input[name=sq_auto_canonical]:checked').val(),
317
+ sq_auto_meta: jQuery('#sq_settings').find('input[name=sq_auto_meta]:checked').val(),
318
+ sq_auto_favicon: jQuery('#sq_settings').find('input[name=sq_auto_favicon]:checked').val(),
319
+ sq_auto_facebook: jQuery('#sq_settings').find('input[name=sq_auto_facebook]:checked').val(),
320
+ sq_auto_twitter: jQuery('#sq_settings').find('input[name=sq_auto_twitter]:checked').val(),
321
+ sq_auto_twittersize: jQuery('#sq_settings').find('input[name=sq_auto_twittersize]:checked').val(),
322
+ sq_og_locale: jQuery('#sq_settings').find('select[name=sq_og_locale] option:selected').val(),
323
  //--
324
+ sq_twitter_account: jQuery('#sq_settings').find('input[name=sq_twitter_account]').val(),
325
+ sq_facebook_account: jQuery('#sq_settings').find('input[name=sq_facebook_account]').val(),
326
+ sq_google_plus: jQuery('#sq_settings').find('input[name=sq_google_plus]').val(),
327
+ sq_linkedin_account: jQuery('#sq_settings').find('input[name=sq_linkedin_account]').val(),
328
+ sq_pinterest_account: jQuery('#sq_settings').find('input[name=sq_pinterest_account]').val(),
329
+ sq_instagram_account: jQuery('#sq_settings').find('input[name=sq_instagram_account]').val(),
330
  //--
331
+ sq_auto_sitemap: jQuery('#sq_settings').find('input[name=sq_auto_sitemap]:checked').val(),
332
+ sq_auto_feed: jQuery('#sq_settings').find('input[name=sq_auto_feed]:checked').val(),
333
+ sq_sitemap: sq_sitemap,
334
+ sq_sitemap_show: sq_sitemap_show,
335
+ sq_sitemap_frequency: jQuery('#sq_settings').find('select[name=sq_sitemap_frequency] option:selected').val(),
336
+ sq_sitemap_ping: jQuery('#sq_settings').find('input[name=sq_sitemap_ping]:checked').val(),
337
  // --
338
+ sq_auto_jsonld: jQuery('#sq_settings').find('input[name=sq_auto_jsonld]:checked').val(),
339
+ sq_jsonld_type: jQuery('#sq_settings').find('select[name=sq_jsonld_type] option:selected').val(),
340
+ sq_jsonld_name: jQuery('#sq_settings').find('input[name=sq_jsonld_name]').val(),
341
+ sq_jsonld_jobTitle: jQuery('#sq_settings').find('input[name=sq_jsonld_jobTitle]').val(),
342
+ sq_jsonld_logo: jQuery('#sq_settings').find('input[name=sq_jsonld_logo]').val(),
343
+ sq_jsonld_telephone: jQuery('#sq_settings').find('input[name=sq_jsonld_telephone]').val(),
344
+ sq_jsonld_contactType: jQuery('#sq_settings').find('select[name=sq_jsonld_contactType] option:selected').val(),
345
+ sq_jsonld_description: jQuery('#sq_settings').find('textarea[name=sq_jsonld_description]').val(),
346
  //--
347
+ sq_auto_seo: jQuery('#sq_settings').find('input[name=sq_auto_seo]:checked').val(),
348
+ sq_fp_title: jQuery('#sq_settings').find('input[name=sq_fp_title]').val(),
349
+ sq_fp_description: jQuery('#sq_settings').find('textarea[name=sq_fp_description]').val(),
350
+ sq_fp_keywords: jQuery('#sq_settings').find('input[name=sq_fp_keywords]').val(),
351
+ sq_fp_ogimage: jQuery('#sq_settings').find('input[name=sq_fp_ogimage]').val(),
352
  // --
353
+ ignore_warn: jQuery('#sq_settings').find('input[name=ignore_warn]:checked').val(),
354
  // --
355
+ sq_google_analytics: jQuery('#sq_settings').find('input[name=sq_google_analytics]').val(),
356
+ sq_facebook_insights: jQuery('#sq_settings').find('input[name=sq_facebook_insights]').val(),
357
+ sq_facebook_analytics: jQuery('#sq_settings').find('input[name=sq_facebook_analytics]').val(),
 
358
 
359
+ sq_pinterest: jQuery('#sq_settings').find('input[name=sq_pinterest]').val(),
360
+ sq_auto_amp: jQuery('#sq_settings').find('input[name=sq_auto_amp]:checked').val(),
361
+ // --
362
+
363
+ nonce: sqQuery.nonce
364
+ }
365
  ).done(function () {
366
  showSaved(2000);
367
  }, 'json');
themes/default/js/sq_menu.js CHANGED
@@ -8,7 +8,7 @@ if (jQuery('#sq_settings').length > 0) {
8
 
9
 
10
  function ctl_setThemeColors(background, button, text) {
11
- jQuery('#sq_settings legend').css('background-color', background);
12
  jQuery('#sq_settings input[type="submit"]').css('background-color', button);
13
  jQuery('#sq_settings input[type="submit"]').css('color', text);
14
  jQuery('#sq_settings legend > span').css('color', text);
8
 
9
 
10
  function ctl_setThemeColors(background, button, text) {
11
+ jQuery('#sq_settings fieldset').css('background-color', background);
12
  jQuery('#sq_settings input[type="submit"]').css('background-color', button);
13
  jQuery('#sq_settings input[type="submit"]').css('color', text);
14
  jQuery('#sq_settings legend > span').css('color', text);