Version Description
Download this release
Release Info
Developer | Facens |
Plugin | iubenda Cookie Solution for GDPR |
Version | 1.11.0-beta2 |
Comparing to | |
See all releases |
Code changes from version 1.11.0-beta1 to 1.11.0-beta2
- iubenda-cookie-class/iubenda.class.faster.php +178 -0
- iubenda-cookie-class/iubenda.class.php +80 -69
- iubenda_cookie_solution.php +378 -132
- readme.txt +26 -10
iubenda-cookie-class/iubenda.class.faster.php
ADDED
@@ -0,0 +1,178 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* iubenda.class.php
|
5 |
+
* version: 2.0.0
|
6 |
+
* codename: Faster
|
7 |
+
* @author: Copyright 2015 iubenda
|
8 |
+
* @license GNU/GPL
|
9 |
+
* This program is free software: you can redistribute it and/or modify
|
10 |
+
* it under the terms of the GNU General Public License as published by
|
11 |
+
* the Free Software Foundation, either version 3 of the License, or
|
12 |
+
* (at your option) any later version.
|
13 |
+
*
|
14 |
+
* This program is distributed in the hope that it will be useful,
|
15 |
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
16 |
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
17 |
+
* GNU General Public License for more details.
|
18 |
+
*
|
19 |
+
*
|
20 |
+
* You should have received a copy of the GNU General Public License
|
21 |
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
22 |
+
*/
|
23 |
+
|
24 |
+
class Faster
|
25 |
+
{
|
26 |
+
/*
|
27 |
+
Variables
|
28 |
+
*/
|
29 |
+
|
30 |
+
private $getBlack = array
|
31 |
+
(
|
32 |
+
array
|
33 |
+
(
|
34 |
+
"platform.twitter.com/widgets.js",
|
35 |
+
"apis.google.com/js/plusone.js",
|
36 |
+
"apis.google.com/js/platform.js",
|
37 |
+
"connect.facebook.net",
|
38 |
+
"www.youtube.com/iframe_api",
|
39 |
+
"pagead2.googlesyndication.com/pagead/js/adsbygoogle.js",
|
40 |
+
"sharethis.com/button/buttons.js",
|
41 |
+
"addthis.com/js/"
|
42 |
+
),
|
43 |
+
array
|
44 |
+
(
|
45 |
+
"youtube.com",
|
46 |
+
"platform.twitter.com",
|
47 |
+
"www.facebook.com/plugins/like.php",
|
48 |
+
"www.facebook.com/plugins/likebox.php",
|
49 |
+
"apis.google.com",
|
50 |
+
"www.google.com/maps/embed/",
|
51 |
+
"player.vimeo.com/video",
|
52 |
+
"maps.google.it/maps",
|
53 |
+
"www.google.com/maps/embed"
|
54 |
+
)
|
55 |
+
);
|
56 |
+
|
57 |
+
/**/
|
58 |
+
|
59 |
+
private $getBlank = "//cdn.iubenda.com/cookie_solution/empty.html";
|
60 |
+
|
61 |
+
private $getClass = array("_iub_cs_activate", "_iub_cs_activate-inline");
|
62 |
+
|
63 |
+
/*
|
64 |
+
Methods
|
65 |
+
*/
|
66 |
+
|
67 |
+
public function isBlack($offender, $blacklist)
|
68 |
+
{
|
69 |
+
/*
|
70 |
+
Check if a string is in the black list.
|
71 |
+
*/
|
72 |
+
|
73 |
+
if(empty($offender) || empty($blacklist))
|
74 |
+
{
|
75 |
+
return false;
|
76 |
+
}
|
77 |
+
|
78 |
+
/**/
|
79 |
+
|
80 |
+
foreach($blacklist as $black)
|
81 |
+
{
|
82 |
+
if(strpos($offender, $black) !== false)
|
83 |
+
{
|
84 |
+
return true;
|
85 |
+
}
|
86 |
+
}
|
87 |
+
|
88 |
+
/**/
|
89 |
+
|
90 |
+
return false;
|
91 |
+
}
|
92 |
+
|
93 |
+
/**/
|
94 |
+
|
95 |
+
public function isParse($offender)
|
96 |
+
{
|
97 |
+
/*
|
98 |
+
Parse the entrie document and search for black elements.
|
99 |
+
*/
|
100 |
+
|
101 |
+
libxml_use_internal_errors(true);
|
102 |
+
|
103 |
+
/**/
|
104 |
+
|
105 |
+
$src = "";
|
106 |
+
|
107 |
+
$blank = $this -> getBlank;
|
108 |
+
$class = $this -> getClass;
|
109 |
+
|
110 |
+
$list_1 = $this -> getBlack[0];
|
111 |
+
$list_2 = $this -> getBlack[1];
|
112 |
+
|
113 |
+
$document = new DOMDocument();
|
114 |
+
|
115 |
+
/**/
|
116 |
+
|
117 |
+
$document -> formatOutput = true;
|
118 |
+
$document -> preserveWhiteSpace = false;
|
119 |
+
|
120 |
+
/**/
|
121 |
+
|
122 |
+
$document -> loadHTML($offender);
|
123 |
+
|
124 |
+
/**/
|
125 |
+
|
126 |
+
$scripts = $document -> getElementsByTagName("script");
|
127 |
+
$iframes = $document -> getElementsByTagName("iframe");
|
128 |
+
|
129 |
+
/*
|
130 |
+
Parse the founded elements and check who is in black.
|
131 |
+
*/
|
132 |
+
|
133 |
+
foreach($scripts as $script) {
|
134 |
+
|
135 |
+
$src = $script -> getAttribute("src");
|
136 |
+
|
137 |
+
/**/
|
138 |
+
|
139 |
+
if($this -> isBlack($src, $list_1))
|
140 |
+
{
|
141 |
+
$script -> setAttribute("type", "text/plain");
|
142 |
+
$script -> setAttribute("class", $script -> getAttribute("class")." ".$class[0]);
|
143 |
+
}
|
144 |
+
elseif($this -> isBlack($script -> nodeValue, $list_1))
|
145 |
+
{
|
146 |
+
$script -> setAttribute("type", "text/plain");
|
147 |
+
$script -> setAttribute("class", $script -> getAttribute("class")." ".$class[1]);
|
148 |
+
}
|
149 |
+
}
|
150 |
+
foreach($iframes as $iframe) {
|
151 |
+
|
152 |
+
$src = $iframe -> getAttribute("src");
|
153 |
+
|
154 |
+
/**/
|
155 |
+
|
156 |
+
if($this -> isBlack($src, $list_2))
|
157 |
+
{
|
158 |
+
$iframe -> setAttribute("src", $blank);
|
159 |
+
$iframe -> setAttribute("suppressedsrc", $src);
|
160 |
+
$iframe -> setAttribute("class", $iframe -> getAttribute("class")." ".$class[0]);
|
161 |
+
}
|
162 |
+
}
|
163 |
+
|
164 |
+
/**/
|
165 |
+
|
166 |
+
$offender = $document -> saveHTML();
|
167 |
+
|
168 |
+
/**/
|
169 |
+
|
170 |
+
libxml_use_internal_errors(false);
|
171 |
+
|
172 |
+
/**/
|
173 |
+
|
174 |
+
return $offender;
|
175 |
+
}
|
176 |
+
}
|
177 |
+
|
178 |
+
?>
|
iubenda-cookie-class/iubenda.class.php
CHANGED
@@ -1,17 +1,28 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
|
11 |
class Page {
|
12 |
-
|
13 |
const IUB_REGEX_PATTERN = '/<!--\s*IUB_COOKIE_POLICY_START\s*-->(.*?)<!--\s*IUB_COOKIE_POLICY_END\s*-->/sU';
|
14 |
-
|
15 |
public $auto_script_tags = array(
|
16 |
'platform.twitter.com/widgets.js',
|
17 |
'apis.google.com/js/plusone.js',
|
@@ -34,7 +45,7 @@
|
|
34 |
'maps.google.it/maps',
|
35 |
'www.google.com/maps/embed'
|
36 |
);
|
37 |
-
|
38 |
public $iub_comments_detected = array();
|
39 |
public $iframe_detected = array();
|
40 |
public $iframe_converted = array();
|
@@ -42,8 +53,8 @@
|
|
42 |
public $scripts_inline_detected = array();
|
43 |
public $scripts_inline_converted = array();
|
44 |
public $scripts_converted = array();
|
45 |
-
|
46 |
-
|
47 |
/*
|
48 |
construct: the whole HTML output of the page
|
49 |
*/
|
@@ -51,37 +62,37 @@
|
|
51 |
$this->original_content_page = $content_page;
|
52 |
$this->content_page = $content_page;
|
53 |
}
|
54 |
-
|
55 |
/*
|
56 |
print iubenda banner, parameter: the script code of iubenda to print the banner
|
57 |
*/
|
58 |
-
public function print_banner($banner){
|
59 |
return $banner.= "\n
|
60 |
<script>
|
61 |
var iCallback = function(){};
|
62 |
-
|
63 |
if('callback' in _iub.csConfiguration) {
|
64 |
if('onConsentGiven' in _iub.csConfiguration.callback) iCallback = _iub.csConfiguration.callback.onConsentGiven;
|
65 |
-
|
66 |
_iub.csConfiguration.callback.onConsentGiven = function()
|
67 |
{
|
68 |
iCallback();
|
69 |
-
|
70 |
/*
|
71 |
* Separator
|
72 |
*/
|
73 |
-
|
74 |
jQuery('noscript._no_script_iub').each(function (a, b) { var el = jQuery(b); el.after(el.html()); });
|
75 |
};
|
76 |
};
|
77 |
</script>";
|
78 |
}
|
79 |
-
|
80 |
/*
|
81 |
Static, detect bot & crawler
|
82 |
*/
|
83 |
static function bot_detected() {
|
84 |
-
return (isset($_SERVER['HTTP_USER_AGENT']) && preg_match('/bot|crawl|slurp|spider/i', $_SERVER['HTTP_USER_AGENT']));
|
85 |
}
|
86 |
|
87 |
/*
|
@@ -93,6 +104,7 @@ if('callback' in _iub.csConfiguration) {
|
|
93 |
return true;
|
94 |
}
|
95 |
}
|
|
|
96 |
}
|
97 |
/*
|
98 |
Static, utility function: strpos for array
|
@@ -111,14 +123,14 @@ if('callback' in _iub.csConfiguration) {
|
|
111 |
}
|
112 |
return false;
|
113 |
}
|
114 |
-
|
115 |
|
116 |
/* Convert scripts, iframe and other code inside IUBENDAs comment in text/plain to not generate cookies */
|
117 |
public function create_tags($html){
|
118 |
-
|
119 |
$elements = $html->find("*");
|
120 |
$js = '';
|
121 |
-
|
122 |
if(is_array($elements)){
|
123 |
$count = count($elements);
|
124 |
for($j=0; $j<$count; $j++){
|
@@ -127,30 +139,28 @@ if('callback' in _iub.csConfiguration) {
|
|
127 |
case 'script':
|
128 |
$class = $e->class;
|
129 |
$e->class = $class . ' _iub_cs_activate';
|
130 |
-
$e->type = 'text/plain';
|
131 |
$js.= $e->outertext;
|
132 |
break;
|
133 |
-
|
134 |
case 'iframe':
|
135 |
$new_src = "//cdn.iubenda.com/cookie_solution/empty.html";
|
136 |
$class = $e->class;
|
137 |
$e->suppressedsrc = $e->src;
|
138 |
$e->src = $new_src;
|
139 |
-
$e->class = $class . ' _iub_cs_activate';
|
140 |
$js.= $e->outertext;
|
141 |
break;
|
142 |
-
|
143 |
default:
|
144 |
-
$js
|
145 |
-
$js.= $e->outertext;
|
146 |
-
$js.= '</noscript>';
|
147 |
break;
|
148 |
-
}
|
149 |
}
|
150 |
}
|
151 |
return $js;
|
152 |
}
|
153 |
-
|
154 |
/* Parse all IUBENDAs comment and convert the code inside with create_tags method */
|
155 |
public function parse_iubenda_comments(){
|
156 |
preg_match_all(self::IUB_REGEX_PATTERN, $this->content_page, $scripts);
|
@@ -158,20 +168,20 @@ if('callback' in _iub.csConfiguration) {
|
|
158 |
$count = count($scripts[1]);
|
159 |
$js_scripts = array();
|
160 |
for($j=0; $j<$count; $j++){
|
161 |
-
$this->iub_comments_detected[] = $scripts[1][$j];
|
162 |
$html = str_get_html($scripts[1][$j], $lowercase=true, $forceTagsClosed=true, $stripRN=false);
|
163 |
$js_scripts[] = $this->create_tags($html);
|
164 |
}
|
165 |
-
|
166 |
if(is_array($scripts[1]) && is_array($js_scripts)){
|
167 |
if(count($scripts[1]) >= 1 && count($js_scripts) >= 1){
|
168 |
$this->content_page = strtr($this->content_page, array_combine($scripts[1], $js_scripts));
|
169 |
}
|
170 |
-
}
|
171 |
-
}
|
172 |
}
|
173 |
-
|
174 |
-
/* Parse automatically all the scripts in the page and converts it in text/plain
|
175 |
if src or the whole output has inside one of the elements in $auto_script_tags array */
|
176 |
public function parse_scripts(){
|
177 |
|
@@ -188,7 +198,7 @@ if('callback' in _iub.csConfiguration) {
|
|
188 |
$class = $s->class;
|
189 |
$s->class = $class . ' _iub_cs_activate-inline';
|
190 |
$s->type = 'text/plain';
|
191 |
-
$this->scripts_converted[] = $s->innertext;
|
192 |
}
|
193 |
}else{
|
194 |
$src = $s->src;
|
@@ -208,9 +218,9 @@ if('callback' in _iub.csConfiguration) {
|
|
208 |
/*
|
209 |
* AdSense check by Peste Vasile Alexandru, AdSense here
|
210 |
*/
|
211 |
-
|
212 |
$ad_found = false;
|
213 |
-
|
214 |
while(preg_match("#google_ad_client =(.*?);#i", $html))
|
215 |
{
|
216 |
$ad_found = true;
|
@@ -219,49 +229,49 @@ if('callback' in _iub.csConfiguration) {
|
|
219 |
$ad_width = null;
|
220 |
$ad_height = null;
|
221 |
$ad_block = null;
|
222 |
-
|
223 |
/**/
|
224 |
-
|
225 |
preg_match("#google_ad_client =(.*?);#i", $html, $ad_client);
|
226 |
preg_match("#google_ad_slot =(.*?);#i", $html, $ad_slot);
|
227 |
preg_match("#google_ad_width =(.*?);#i", $html, $ad_width);
|
228 |
preg_match("#google_ad_height =(.*?);#i", $html, $ad_height);
|
229 |
-
|
230 |
/**/
|
231 |
-
|
232 |
$html = preg_replace("#google_ad_client =(.*?);#i", "", $html, 1);
|
233 |
$html = preg_replace("#google_ad_slot =(.*?);#i", "", $html, 1);
|
234 |
$html = preg_replace("#google_ad_width =(.*?);#i", "", $html, 1);
|
235 |
$html = preg_replace("#google_ad_height =(.*?);#i", "", $html, 1);
|
236 |
-
|
237 |
/**/
|
238 |
-
|
239 |
$ad_client = trim($ad_client[1]);
|
240 |
$ad_slot = trim($ad_slot[1]);
|
241 |
$ad_width = trim($ad_width[1]);
|
242 |
$ad_height = trim($ad_height[1]);
|
243 |
-
|
244 |
/**/
|
245 |
-
|
246 |
$ad_class = 'class="_iub_cs_activate_google_ads"';
|
247 |
$ad_style = 'style="width:'.$ad_width.'px; height:'.$ad_height.'px;"';
|
248 |
-
|
249 |
$ad_client = 'data-client='.$ad_client;
|
250 |
$ad_slot = 'data-slot='.$ad_slot;
|
251 |
$ad_width = 'data-width="'.$ad_width.'"';
|
252 |
$ad_height = 'data-height="'.$ad_height.'"';
|
253 |
-
|
254 |
/**/
|
255 |
-
|
256 |
$ad_block = "<div $ad_style $ad_class $ad_width $ad_height $ad_slot $ad_client></div>";
|
257 |
-
|
258 |
/**/
|
259 |
-
|
260 |
$html = preg_replace('#(<[^>]+) src="//pagead2.googlesyndication.com/pagead/show_ads.js"(.*?)</script>#i', $ad_block, $html, 1);
|
261 |
}
|
262 |
-
|
263 |
/**/
|
264 |
-
|
265 |
if($ad_found)
|
266 |
{
|
267 |
$adsense_callback =
|
@@ -302,34 +312,34 @@ if('callback' in _iub.csConfiguration) {
|
|
302 |
else
|
303 |
{
|
304 |
_iub.csConfiguration.callback = {};
|
305 |
-
|
306 |
_iub.csConfiguration.callback.onConsentGiven = iubenda_adsense_unblock;
|
307 |
}
|
308 |
</script>
|
309 |
";
|
310 |
-
|
311 |
$html = str_replace("</body>", $adsense_callback."</body>", $html);
|
312 |
}
|
313 |
-
|
314 |
/**/
|
315 |
-
|
316 |
$this->content_page = $html;
|
317 |
}
|
318 |
}
|
319 |
|
320 |
/* Parse automatically all the iframe in the page and change the src to suppressedsrc
|
321 |
-
if src has inside one of the elements in $auto_iframe_tags array */
|
322 |
public function parse_iframe(){
|
323 |
$html = str_get_html($this->content_page, $lowercase=true, $forceTagsClosed=true, $stripRN=false);
|
324 |
if(is_object($html)){
|
325 |
-
$iframes = $html->find("iframe");
|
326 |
if(is_array($iframes)){
|
327 |
$count = count($iframes);
|
328 |
for($j=0; $j<$count; $j++){
|
329 |
$i = $iframes[$j];
|
330 |
$src = $i->src;
|
331 |
$this->iframe_detected[] = $src;
|
332 |
-
if (Page::strpos_array($src, $this->auto_iframe_tags) !== false){
|
333 |
$new_src = "//cdn.iubenda.com/cookie_solution/empty.html";
|
334 |
$class = $i->class;
|
335 |
$i->suppressedsrc = $src;
|
@@ -342,23 +352,24 @@ if('callback' in _iub.csConfiguration) {
|
|
342 |
$this->content_page = $html;
|
343 |
}
|
344 |
}
|
345 |
-
|
346 |
/*
|
347 |
Call three methods to parse the page, iubendas comment, scripts + iframe
|
348 |
*/
|
349 |
-
public function parse()
|
|
|
350 |
$this->parse_iubenda_comments();
|
351 |
$this->parse_scripts();
|
352 |
$this->parse_iframe();
|
353 |
}
|
354 |
-
|
355 |
/*
|
356 |
Return the final page to output
|
357 |
*/
|
358 |
public function get_converted_page(){
|
359 |
return $this->content_page;
|
360 |
}
|
361 |
-
|
362 |
}
|
363 |
|
364 |
-
?>
|
1 |
<?php
|
2 |
+
/**
|
3 |
+
* iubenda.class.php
|
4 |
+
* version: 1.0.1
|
5 |
+
* @author: Copyright 2015 iubenda
|
6 |
+
* @license GNU/GPL
|
7 |
+
* This program is free software: you can redistribute it and/or modify
|
8 |
+
* it under the terms of the GNU General Public License as published by
|
9 |
+
* the Free Software Foundation, either version 3 of the License, or
|
10 |
+
* (at your option) any later version.
|
11 |
+
*
|
12 |
+
* This program is distributed in the hope that it will be useful,
|
13 |
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14 |
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
15 |
+
* GNU General Public License for more details.
|
16 |
+
*
|
17 |
+
*
|
18 |
+
* You should have received a copy of the GNU General Public License
|
19 |
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
20 |
+
*/
|
21 |
|
22 |
class Page {
|
23 |
+
|
24 |
const IUB_REGEX_PATTERN = '/<!--\s*IUB_COOKIE_POLICY_START\s*-->(.*?)<!--\s*IUB_COOKIE_POLICY_END\s*-->/sU';
|
25 |
+
|
26 |
public $auto_script_tags = array(
|
27 |
'platform.twitter.com/widgets.js',
|
28 |
'apis.google.com/js/plusone.js',
|
45 |
'maps.google.it/maps',
|
46 |
'www.google.com/maps/embed'
|
47 |
);
|
48 |
+
|
49 |
public $iub_comments_detected = array();
|
50 |
public $iframe_detected = array();
|
51 |
public $iframe_converted = array();
|
53 |
public $scripts_inline_detected = array();
|
54 |
public $scripts_inline_converted = array();
|
55 |
public $scripts_converted = array();
|
56 |
+
|
57 |
+
|
58 |
/*
|
59 |
construct: the whole HTML output of the page
|
60 |
*/
|
62 |
$this->original_content_page = $content_page;
|
63 |
$this->content_page = $content_page;
|
64 |
}
|
65 |
+
|
66 |
/*
|
67 |
print iubenda banner, parameter: the script code of iubenda to print the banner
|
68 |
*/
|
69 |
+
public function print_banner($banner){
|
70 |
return $banner.= "\n
|
71 |
<script>
|
72 |
var iCallback = function(){};
|
73 |
+
|
74 |
if('callback' in _iub.csConfiguration) {
|
75 |
if('onConsentGiven' in _iub.csConfiguration.callback) iCallback = _iub.csConfiguration.callback.onConsentGiven;
|
76 |
+
|
77 |
_iub.csConfiguration.callback.onConsentGiven = function()
|
78 |
{
|
79 |
iCallback();
|
80 |
+
|
81 |
/*
|
82 |
* Separator
|
83 |
*/
|
84 |
+
|
85 |
jQuery('noscript._no_script_iub').each(function (a, b) { var el = jQuery(b); el.after(el.html()); });
|
86 |
};
|
87 |
};
|
88 |
</script>";
|
89 |
}
|
90 |
+
|
91 |
/*
|
92 |
Static, detect bot & crawler
|
93 |
*/
|
94 |
static function bot_detected() {
|
95 |
+
return (isset($_SERVER['HTTP_USER_AGENT']) && preg_match('/bot|crawl|slurp|spider|google|yahoo/i', $_SERVER['HTTP_USER_AGENT']));
|
96 |
}
|
97 |
|
98 |
/*
|
104 |
return true;
|
105 |
}
|
106 |
}
|
107 |
+
return false;
|
108 |
}
|
109 |
/*
|
110 |
Static, utility function: strpos for array
|
123 |
}
|
124 |
return false;
|
125 |
}
|
126 |
+
|
127 |
|
128 |
/* Convert scripts, iframe and other code inside IUBENDAs comment in text/plain to not generate cookies */
|
129 |
public function create_tags($html){
|
130 |
+
|
131 |
$elements = $html->find("*");
|
132 |
$js = '';
|
133 |
+
|
134 |
if(is_array($elements)){
|
135 |
$count = count($elements);
|
136 |
for($j=0; $j<$count; $j++){
|
139 |
case 'script':
|
140 |
$class = $e->class;
|
141 |
$e->class = $class . ' _iub_cs_activate';
|
142 |
+
$e->type = 'text/plain';
|
143 |
$js.= $e->outertext;
|
144 |
break;
|
145 |
+
|
146 |
case 'iframe':
|
147 |
$new_src = "//cdn.iubenda.com/cookie_solution/empty.html";
|
148 |
$class = $e->class;
|
149 |
$e->suppressedsrc = $e->src;
|
150 |
$e->src = $new_src;
|
151 |
+
$e->class = $class . ' _iub_cs_activate';
|
152 |
$js.= $e->outertext;
|
153 |
break;
|
154 |
+
|
155 |
default:
|
156 |
+
$js = $html;
|
|
|
|
|
157 |
break;
|
158 |
+
}
|
159 |
}
|
160 |
}
|
161 |
return $js;
|
162 |
}
|
163 |
+
|
164 |
/* Parse all IUBENDAs comment and convert the code inside with create_tags method */
|
165 |
public function parse_iubenda_comments(){
|
166 |
preg_match_all(self::IUB_REGEX_PATTERN, $this->content_page, $scripts);
|
168 |
$count = count($scripts[1]);
|
169 |
$js_scripts = array();
|
170 |
for($j=0; $j<$count; $j++){
|
171 |
+
$this->iub_comments_detected[] = $scripts[1][$j];
|
172 |
$html = str_get_html($scripts[1][$j], $lowercase=true, $forceTagsClosed=true, $stripRN=false);
|
173 |
$js_scripts[] = $this->create_tags($html);
|
174 |
}
|
175 |
+
|
176 |
if(is_array($scripts[1]) && is_array($js_scripts)){
|
177 |
if(count($scripts[1]) >= 1 && count($js_scripts) >= 1){
|
178 |
$this->content_page = strtr($this->content_page, array_combine($scripts[1], $js_scripts));
|
179 |
}
|
180 |
+
}
|
181 |
+
}
|
182 |
}
|
183 |
+
|
184 |
+
/* Parse automatically all the scripts in the page and converts it in text/plain
|
185 |
if src or the whole output has inside one of the elements in $auto_script_tags array */
|
186 |
public function parse_scripts(){
|
187 |
|
198 |
$class = $s->class;
|
199 |
$s->class = $class . ' _iub_cs_activate-inline';
|
200 |
$s->type = 'text/plain';
|
201 |
+
$this->scripts_converted[] = $s->innertext;
|
202 |
}
|
203 |
}else{
|
204 |
$src = $s->src;
|
218 |
/*
|
219 |
* AdSense check by Peste Vasile Alexandru, AdSense here
|
220 |
*/
|
221 |
+
|
222 |
$ad_found = false;
|
223 |
+
|
224 |
while(preg_match("#google_ad_client =(.*?);#i", $html))
|
225 |
{
|
226 |
$ad_found = true;
|
229 |
$ad_width = null;
|
230 |
$ad_height = null;
|
231 |
$ad_block = null;
|
232 |
+
|
233 |
/**/
|
234 |
+
|
235 |
preg_match("#google_ad_client =(.*?);#i", $html, $ad_client);
|
236 |
preg_match("#google_ad_slot =(.*?);#i", $html, $ad_slot);
|
237 |
preg_match("#google_ad_width =(.*?);#i", $html, $ad_width);
|
238 |
preg_match("#google_ad_height =(.*?);#i", $html, $ad_height);
|
239 |
+
|
240 |
/**/
|
241 |
+
|
242 |
$html = preg_replace("#google_ad_client =(.*?);#i", "", $html, 1);
|
243 |
$html = preg_replace("#google_ad_slot =(.*?);#i", "", $html, 1);
|
244 |
$html = preg_replace("#google_ad_width =(.*?);#i", "", $html, 1);
|
245 |
$html = preg_replace("#google_ad_height =(.*?);#i", "", $html, 1);
|
246 |
+
|
247 |
/**/
|
248 |
+
|
249 |
$ad_client = trim($ad_client[1]);
|
250 |
$ad_slot = trim($ad_slot[1]);
|
251 |
$ad_width = trim($ad_width[1]);
|
252 |
$ad_height = trim($ad_height[1]);
|
253 |
+
|
254 |
/**/
|
255 |
+
|
256 |
$ad_class = 'class="_iub_cs_activate_google_ads"';
|
257 |
$ad_style = 'style="width:'.$ad_width.'px; height:'.$ad_height.'px;"';
|
258 |
+
|
259 |
$ad_client = 'data-client='.$ad_client;
|
260 |
$ad_slot = 'data-slot='.$ad_slot;
|
261 |
$ad_width = 'data-width="'.$ad_width.'"';
|
262 |
$ad_height = 'data-height="'.$ad_height.'"';
|
263 |
+
|
264 |
/**/
|
265 |
+
|
266 |
$ad_block = "<div $ad_style $ad_class $ad_width $ad_height $ad_slot $ad_client></div>";
|
267 |
+
|
268 |
/**/
|
269 |
+
|
270 |
$html = preg_replace('#(<[^>]+) src="//pagead2.googlesyndication.com/pagead/show_ads.js"(.*?)</script>#i', $ad_block, $html, 1);
|
271 |
}
|
272 |
+
|
273 |
/**/
|
274 |
+
|
275 |
if($ad_found)
|
276 |
{
|
277 |
$adsense_callback =
|
312 |
else
|
313 |
{
|
314 |
_iub.csConfiguration.callback = {};
|
315 |
+
|
316 |
_iub.csConfiguration.callback.onConsentGiven = iubenda_adsense_unblock;
|
317 |
}
|
318 |
</script>
|
319 |
";
|
320 |
+
|
321 |
$html = str_replace("</body>", $adsense_callback."</body>", $html);
|
322 |
}
|
323 |
+
|
324 |
/**/
|
325 |
+
|
326 |
$this->content_page = $html;
|
327 |
}
|
328 |
}
|
329 |
|
330 |
/* Parse automatically all the iframe in the page and change the src to suppressedsrc
|
331 |
+
if src has inside one of the elements in $auto_iframe_tags array */
|
332 |
public function parse_iframe(){
|
333 |
$html = str_get_html($this->content_page, $lowercase=true, $forceTagsClosed=true, $stripRN=false);
|
334 |
if(is_object($html)){
|
335 |
+
$iframes = $html->find("iframe");
|
336 |
if(is_array($iframes)){
|
337 |
$count = count($iframes);
|
338 |
for($j=0; $j<$count; $j++){
|
339 |
$i = $iframes[$j];
|
340 |
$src = $i->src;
|
341 |
$this->iframe_detected[] = $src;
|
342 |
+
if (Page::strpos_array($src, $this->auto_iframe_tags) !== false){
|
343 |
$new_src = "//cdn.iubenda.com/cookie_solution/empty.html";
|
344 |
$class = $i->class;
|
345 |
$i->suppressedsrc = $src;
|
352 |
$this->content_page = $html;
|
353 |
}
|
354 |
}
|
355 |
+
|
356 |
/*
|
357 |
Call three methods to parse the page, iubendas comment, scripts + iframe
|
358 |
*/
|
359 |
+
public function parse()
|
360 |
+
{
|
361 |
$this->parse_iubenda_comments();
|
362 |
$this->parse_scripts();
|
363 |
$this->parse_iframe();
|
364 |
}
|
365 |
+
|
366 |
/*
|
367 |
Return the final page to output
|
368 |
*/
|
369 |
public function get_converted_page(){
|
370 |
return $this->content_page;
|
371 |
}
|
372 |
+
|
373 |
}
|
374 |
|
375 |
+
?>
|
iubenda_cookie_solution.php
CHANGED
@@ -1,60 +1,147 @@
|
|
1 |
<?php
|
|
|
2 |
/*
|
3 |
* Plugin Name: Iubenda Cookie Solution
|
4 |
* Plugin URI: https://www.iubenda.com
|
5 |
* Description: Iubenda Cookie Solution permette di gestire tutti gli aspetti della cookie law su WP.
|
6 |
* Author: iubenda
|
7 |
-
* Version: 1.
|
8 |
* Text Domain: iubenda-cookie-wp-plugin
|
9 |
* Author URI: https://www.iubenda.com
|
10 |
*/
|
11 |
|
12 |
-
define(
|
13 |
-
define(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
|
15 |
/**/
|
16 |
|
17 |
-
if(
|
|
|
18 |
return;
|
19 |
}
|
20 |
|
21 |
/**/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
22 |
|
23 |
function iubenda_load_admin_panel()
|
24 |
{
|
25 |
/*
|
26 |
-
*
|
27 |
*/
|
28 |
|
29 |
-
if(function_exists(
|
|
|
30 |
define("IUBENDA_WPML", true);
|
31 |
}
|
32 |
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
if(!function_exists('file_get_html')){
|
38 |
-
include_once dirname(__FILE__) . '/iubenda-cookie-class/simple_html_dom.php';
|
39 |
}
|
40 |
-
|
41 |
-
/*
|
42 |
-
* Import iubenda CLASS
|
43 |
-
*/
|
44 |
|
45 |
-
|
|
|
46 |
|
47 |
/*
|
48 |
-
*
|
49 |
*/
|
50 |
|
51 |
-
if(is_admin())
|
|
|
|
|
|
|
52 |
}
|
53 |
|
54 |
add_action("plugins_loaded", "iubenda_load_admin_panel");
|
55 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
56 |
function __iubenda_buffer_head()
|
57 |
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
58 |
/*
|
59 |
* __iubenda_buffer_head
|
60 |
*/
|
@@ -63,7 +150,8 @@
|
|
63 |
|
64 |
/**/
|
65 |
|
66 |
-
if(get_option("iub_code"))
|
|
|
67 |
$wpml_old = html_entity_decode(stripslashes(get_option("iub_code")));
|
68 |
|
69 |
$iubenda_languages = array("it", "de", "en", "es", "pt-br", "ru", "fr");
|
@@ -82,79 +170,96 @@
|
|
82 |
update_option("iub_code", false);
|
83 |
}
|
84 |
|
85 |
-
if(defined("IUBENDA_WPML") && get_option("iubenda-code-".ICL_LANGUAGE_CODE))
|
86 |
-
|
87 |
$iubenda_code .= get_option("iubenda-code-".ICL_LANGUAGE_CODE);
|
88 |
}
|
89 |
-
else
|
|
|
90 |
$iubenda_code .= get_option("iubenda-code-default");
|
91 |
}
|
92 |
|
93 |
$iubenda_code .= "\n
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
if('callback' in _iub.csConfiguration)
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
|
|
103 |
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
|
108 |
-
|
109 |
-
|
110 |
-
};
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
/**/
|
115 |
|
116 |
-
echo
|
117 |
}
|
118 |
-
|
119 |
-
/**/
|
120 |
-
|
121 |
-
add_action("wp_head", "__iubenda_buffer_head", 99);
|
122 |
-
|
123 |
-
function __iubenda_shutdown()
|
124 |
-
{
|
125 |
-
$final = "";
|
126 |
|
127 |
-
|
128 |
|
129 |
-
|
130 |
-
$final .= ob_get_clean();
|
131 |
-
}
|
132 |
-
|
133 |
-
echo apply_filters("final_output", $final);
|
134 |
-
}
|
135 |
-
|
136 |
-
// add_action("shutdown", "__iubenda_shutdown", 0);
|
137 |
-
|
138 |
-
function __iubenda_setup_output() {
|
139 |
-
if(!is_admin()) {
|
140 |
-
ob_start("__iubenda_final_output");
|
141 |
-
}
|
142 |
-
}
|
143 |
-
|
144 |
-
add_action("registered_taxonomy", "__iubenda_setup_output", 0);
|
145 |
|
146 |
function __iubenda_final_output($output)
|
147 |
{
|
148 |
-
if(Page::consent_given() && get_option("skip_parsing") || Page::bot_detected())
|
|
|
149 |
return $output;
|
150 |
}
|
151 |
|
152 |
-
|
153 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
154 |
|
155 |
/**/
|
156 |
|
157 |
-
return $
|
158 |
}
|
159 |
|
160 |
add_filter("final_output", "__iubenda_final_output");
|
@@ -165,27 +270,17 @@ if('callback' in _iub.csConfiguration) {
|
|
165 |
return '<!--IUB_COOKIE_POLICY_START-->'.do_shortcode($content).'<!--IUB_COOKIE_POLICY_END-->';
|
166 |
}
|
167 |
|
168 |
-
|
169 |
add_shortcode('iub-cookie-policy', 'iub_func');
|
170 |
|
171 |
-
|
172 |
-
/***********************************
|
173 |
-
*
|
174 |
-
* Add menù item on the admin
|
175 |
-
*
|
176 |
-
************************************/
|
177 |
-
|
178 |
|
179 |
function iub_admin()
|
180 |
{
|
181 |
add_menu_page("Iubenda - Settings", "Iubenda", "administrator", __FILE__, "__iub_admin_load");
|
182 |
}
|
183 |
|
|
|
184 |
|
185 |
-
/*
|
186 |
-
* Iub admin forms
|
187 |
-
*
|
188 |
-
*/
|
189 |
function __iub_admin_load(){
|
190 |
|
191 |
if(get_option("iub_code")) {
|
@@ -195,7 +290,8 @@ if('callback' in _iub.csConfiguration) {
|
|
195 |
|
196 |
foreach($iubenda_languages as $iubenda_language)
|
197 |
{
|
198 |
-
if(strpos($wpml_old, 'lang: "'.$iubenda_language) !== false)
|
|
|
199 |
$language_tag = $iubenda_language;
|
200 |
|
201 |
break;
|
@@ -207,19 +303,7 @@ if('callback' in _iub.csConfiguration) {
|
|
207 |
update_option("iub_code", false);
|
208 |
}
|
209 |
|
210 |
-
|
211 |
-
// *Don't touch*
|
212 |
-
// delete_option('iub_cp_default');
|
213 |
-
// delete_option('iub_cp');
|
214 |
-
|
215 |
-
/***************************************************************************
|
216 |
-
*
|
217 |
-
* Style for messages
|
218 |
-
*
|
219 |
-
***************************************************************************/
|
220 |
-
|
221 |
-
|
222 |
-
if ( ! current_user_can( 'manage_options' ) && ( ! defined( 'DOING_AJAX' ) || ! DOING_AJAX ) ) {
|
223 |
wp_die( __( 'You are not allowed to access this part of the site' ) );
|
224 |
}
|
225 |
|
@@ -231,38 +315,109 @@ if('callback' in _iub.csConfiguration) {
|
|
231 |
update_option("skip_parsing", "skip");
|
232 |
}
|
233 |
else {
|
234 |
-
update_option("skip_parsing",
|
|
|
|
|
|
|
|
|
|
|
|
|
235 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
236 |
}
|
237 |
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
242 |
|
243 |
/**/
|
244 |
|
245 |
if($_POST)
|
246 |
{
|
247 |
-
foreach($iubenda_language as $iub_check)
|
|
|
248 |
if(!empty($_POST["iubenda-code-$iub_check"])) {
|
249 |
update_option("iubenda-code-$iub_check", stripslashes($_POST["iubenda-code-$iub_check"]));
|
250 |
}
|
251 |
}
|
252 |
}
|
253 |
|
254 |
-
|
255 |
-
|
256 |
-
$checked = "";
|
257 |
-
|
258 |
-
if(get_option("skip_parsing")) $checked = 'checked="true"';
|
259 |
|
260 |
-
|
|
|
|
|
|
|
|
|
261 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
262 |
|
263 |
echo '
|
264 |
-
|
265 |
<style>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
266 |
#iubenda-tabs
|
267 |
{
|
268 |
display: table;
|
@@ -417,6 +572,23 @@ if('callback' in _iub.csConfiguration) {
|
|
417 |
display: inline-table;
|
418 |
margin-bottom: 10px;
|
419 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
420 |
</style>
|
421 |
<script>
|
422 |
function iubendaGetLanguage(str) {
|
@@ -448,6 +620,22 @@ if('callback' in _iub.csConfiguration) {
|
|
448 |
var firstTab = document.querySelector("[data-iubenda-button]");
|
449 |
|
450 |
if(firstTab) jQuery(firstTab).trigger("click");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
451 |
}
|
452 |
);
|
453 |
|
@@ -460,17 +648,17 @@ if('callback' in _iub.csConfiguration) {
|
|
460 |
}, 3000
|
461 |
);
|
462 |
</script>
|
463 |
-
|
464 |
<a class="iubenda-link" href="http://iubenda.com"><img id="iubenda-logo" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAG4AAAAdCAMAAAB8M6mmAAAAhFBMVEUAAAA0O0Ibr380O0Ibr380O0Ibr380O0Ibr380O0Ibr380O0I0O0Ibr380O0Ibr380O0Ibr380O0Ibr380O0Ibr380O0Ibr380O0Ibr380O0Ibr380O0Ibr380O0Ibr3/////G69+35tdTw5/U8Ofx+vdiyKd+0rep4c/i9e8otIeN17/AB1g0AAAAHnRSTlMAEBAgIDAwQEBQUGBwcICAkJCgoLCwwMDQ0ODg8PCQCZ0FAAACrklEQVR4Xr2V63LbIBCFF1OZKBCiKAohlK7kXHt5//cruyDjjFTX42l9fnhh1+yHGB0EAJu7kXS/gUto8zRmPV2Edz/OergA7ctYtV0DCKPPBCgrF7kb4rzs3incrCzpEd05LKEDolqkb4nzNr1RuF1UB8TzcE1E/CPu+7Rbxwnozn06Eddw25H0wr9XsJQh3Flyazh4HGd9hRWpf4zbfptx15fAwR53dRHcWHFSkQDKoOJ05w5M1NjBdXpvFU0WW9TlHidN73rbVtz7844PU7mIiADQOkyaccIjqQOW6DHQ/3yTxiYg2pQhqVIfMPYDYiwZHdF3gdpk3K/XadoVH6hCgbbivMcsyzSPhntiFBAcbcOj6xI/QKl7UYynciOTj9YWJ/z8scfBjIOKQ68ADC2n8+oKNc37FHuqp7xMsQGuRzHvV1U/tMVQVwm0O4oLIg+4v0CkKXNiChZxEMVmbQrN/tBjweVdygXu7g84B3N/D6AxWhYdY8ZZgDroM6QaQUfGiwXu8Tiu5UyP0e3VLHERccUIqseCuzkVJzjjMEDVAtfgCk4HdLrgbk/FQcHhMZxa4hqPLg0WuKcTce1fcPITTvMbtoIbj+MaHvWIAxQFuXqYuuLYMKH08xQeTsVpbqRrPx1h9VVxFcd+6w77PX7G+dmtC5zDILK90XAl2nUjoD7A2fJUzRK3AYCBLzc5JCwqIarNTdmHxaRg7YBR5Gl3iJOx8EyKVkjFuxO8qhky7nV6m79ALXdDLyhGxXdf0EJYjO1s9yLFN2TZjgiIngaaSt4FjPla55AWc5o+dx/P0zQ9fzCOT5EfMBU19+nygl5CkeVEaCo6gOfI76AKuewwWgnQ0NRJcNwVxirGgdSGOlkFs5SxLZFrwppaXUoZ6qD1PFWSQ8p9wl3D/9ZvoAF23RgFj1kAAAAASUVORK5CYII="/></a>
|
465 |
|
466 |
<p class="iubenda-text">
|
467 |
-
|
468 |
-
|
469 |
-
|
470 |
-
|
471 |
-
|
472 |
-
|
473 |
-
|
474 |
</a>.
|
475 |
</p>
|
476 |
|
@@ -503,7 +691,7 @@ if('callback' in _iub.csConfiguration) {
|
|
503 |
|
504 |
echo
|
505 |
'
|
506 |
-
<div id="iubenda-information">Seleziona una lingua a cui associare
|
507 |
';
|
508 |
|
509 |
}
|
@@ -512,18 +700,76 @@ if('callback' in _iub.csConfiguration) {
|
|
512 |
echo '<textarea class="iubenda-textarea iubenda-textarea-single" name="iubenda-code-default">'.stripslashes(get_option("iubenda-code-default")).'</textarea>';
|
513 |
}
|
514 |
|
515 |
-
|
516 |
-
|
517 |
-
|
518 |
-
|
519 |
-
|
520 |
-
|
521 |
-
|
522 |
-
|
523 |
-
|
524 |
-
|
525 |
-
|
526 |
-
|
527 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
528 |
}
|
529 |
?>
|
1 |
<?php
|
2 |
+
|
3 |
/*
|
4 |
* Plugin Name: Iubenda Cookie Solution
|
5 |
* Plugin URI: https://www.iubenda.com
|
6 |
* Description: Iubenda Cookie Solution permette di gestire tutti gli aspetti della cookie law su WP.
|
7 |
* Author: iubenda
|
8 |
+
* Version: 1.11.0-beta2
|
9 |
* Text Domain: iubenda-cookie-wp-plugin
|
10 |
* Author URI: https://www.iubenda.com
|
11 |
*/
|
12 |
|
13 |
+
define("IUB_DEBUG", 0);
|
14 |
+
define("IUB_REGEX_PATTERN", "/<!--IUB_COOKIE_POLICY_START-->(.*)<!--IUB_COOKIE_POLICY_END-->/sU");
|
15 |
+
|
16 |
+
/*
|
17 |
+
* External resources
|
18 |
+
*/
|
19 |
+
|
20 |
+
define("IUB_HTML_DOM", "/iubenda-cookie-class/simple_html_dom.php");
|
21 |
+
define("IUB_CLASS_FASTER", "/iubenda-cookie-class/iubenda.class.faster.php");
|
22 |
+
define("IUB_CLASS_DEFAULT", "/iubenda-cookie-class/iubenda.class.php");
|
23 |
|
24 |
/**/
|
25 |
|
26 |
+
if(defined("XMLRPC_REQUEST") && XMLRPC_REQUEST || defined("DOING_AJAX") && DOING_AJAX || isset($_SERVER["HTTP_X_REQUESTED_WITH"]) || isset($_GET["iub_no_parse"]))
|
27 |
+
{
|
28 |
return;
|
29 |
}
|
30 |
|
31 |
/**/
|
32 |
+
|
33 |
+
function __iubenda_initialize_output()
|
34 |
+
{
|
35 |
+
ob_start("__iubenda_final_output");
|
36 |
+
}
|
37 |
+
|
38 |
+
add_action("registered_taxonomy", "__iubenda_initialize_output", 0);
|
39 |
+
|
40 |
+
/****/
|
41 |
|
42 |
function iubenda_load_admin_panel()
|
43 |
{
|
44 |
/*
|
45 |
+
* Checks
|
46 |
*/
|
47 |
|
48 |
+
if(function_exists("icl_object_id"))
|
49 |
+
{
|
50 |
define("IUBENDA_WPML", true);
|
51 |
}
|
52 |
|
53 |
+
if(!function_exists("file_get_html"))
|
54 |
+
{
|
55 |
+
require(dirname(__FILE__).IUB_HTML_DOM);
|
|
|
|
|
|
|
56 |
}
|
|
|
|
|
|
|
|
|
57 |
|
58 |
+
require(dirname(__FILE__).IUB_CLASS_FASTER);
|
59 |
+
require(dirname(__FILE__).IUB_CLASS_DEFAULT);
|
60 |
|
61 |
/*
|
62 |
+
* Admin
|
63 |
*/
|
64 |
|
65 |
+
if(is_admin())
|
66 |
+
{
|
67 |
+
add_action("admin_menu", "iub_admin");
|
68 |
+
}
|
69 |
}
|
70 |
|
71 |
add_action("plugins_loaded", "iubenda_load_admin_panel");
|
72 |
|
73 |
+
/****/
|
74 |
+
|
75 |
+
function __iubenda_content_type()
|
76 |
+
{
|
77 |
+
if(get_option("iubenda_ctype"))
|
78 |
+
{
|
79 |
+
$iub_headers = headers_list();
|
80 |
+
$destroy = true;
|
81 |
+
|
82 |
+
/**/
|
83 |
+
|
84 |
+
foreach($iub_headers as $h)
|
85 |
+
{
|
86 |
+
if(strpos($h, "Content-Type: text/html") !== false || strpos($h, "Content-type: text/html") !== false)
|
87 |
+
{
|
88 |
+
$destroy = false;
|
89 |
+
}
|
90 |
+
}
|
91 |
+
|
92 |
+
/**/
|
93 |
+
|
94 |
+
if($destroy)
|
95 |
+
{
|
96 |
+
define("IUBENDA_NO_HTML", true);
|
97 |
+
}
|
98 |
+
}
|
99 |
+
}
|
100 |
+
|
101 |
+
/***/
|
102 |
+
|
103 |
function __iubenda_buffer_head()
|
104 |
{
|
105 |
+
/*
|
106 |
+
* iubenda user logged in
|
107 |
+
*/
|
108 |
+
|
109 |
+
if(!get_option("default_skip_parsing")) {
|
110 |
+
update_option("default_skip_parsing", true);
|
111 |
+
update_option("skip_parsing", true);
|
112 |
+
}
|
113 |
+
if(!get_option("default_iubendactype")) {
|
114 |
+
update_option("default_iubendactype", true);
|
115 |
+
update_option("iubenda_ctype", true);
|
116 |
+
}
|
117 |
+
if(!get_option("default_iubendaparse")) {
|
118 |
+
update_option("default_iubendaparse", true);
|
119 |
+
update_option("iubenda_parse", true);
|
120 |
+
}
|
121 |
+
if(!get_option("default_parser_engine")) {
|
122 |
+
update_option("default_parser_engine", true);
|
123 |
+
update_option("parser_engine", "default");
|
124 |
+
}
|
125 |
+
|
126 |
+
|
127 |
+
/**/
|
128 |
+
|
129 |
+
__iubenda_content_type();
|
130 |
+
|
131 |
+
/**/
|
132 |
+
|
133 |
+
if(function_exists("is_user_logged_in"))
|
134 |
+
{
|
135 |
+
if(is_user_logged_in())
|
136 |
+
{
|
137 |
+
return;
|
138 |
+
}
|
139 |
+
}
|
140 |
+
if($_POST || defined("IUBENDA_NO_HTML"))
|
141 |
+
{
|
142 |
+
return;
|
143 |
+
}
|
144 |
+
|
145 |
/*
|
146 |
* __iubenda_buffer_head
|
147 |
*/
|
150 |
|
151 |
/**/
|
152 |
|
153 |
+
if(get_option("iub_code"))
|
154 |
+
{
|
155 |
$wpml_old = html_entity_decode(stripslashes(get_option("iub_code")));
|
156 |
|
157 |
$iubenda_languages = array("it", "de", "en", "es", "pt-br", "ru", "fr");
|
170 |
update_option("iub_code", false);
|
171 |
}
|
172 |
|
173 |
+
if(defined("IUBENDA_WPML") && get_option("iubenda-code-".ICL_LANGUAGE_CODE))
|
174 |
+
{
|
175 |
$iubenda_code .= get_option("iubenda-code-".ICL_LANGUAGE_CODE);
|
176 |
}
|
177 |
+
else
|
178 |
+
{
|
179 |
$iubenda_code .= get_option("iubenda-code-default");
|
180 |
}
|
181 |
|
182 |
$iubenda_code .= "\n
|
183 |
+
<script>
|
184 |
+
var iCallback = function(){};
|
185 |
+
|
186 |
+
if('callback' in _iub.csConfiguration)
|
187 |
+
{
|
188 |
+
if('onConsentGiven' in _iub.csConfiguration.callback) iCallback = _iub.csConfiguration.callback.onConsentGiven;
|
189 |
+
|
190 |
+
_iub.csConfiguration.callback.onConsentGiven = function()
|
191 |
+
{
|
192 |
+
iCallback();
|
193 |
|
194 |
+
/*
|
195 |
+
* Separator
|
196 |
+
*/
|
197 |
|
198 |
+
jQuery('noscript._no_script_iub').each(function (a, b) { var el = jQuery(b); el.after(el.html()); });
|
199 |
+
};
|
200 |
+
};
|
201 |
+
</script>";
|
202 |
+
|
|
|
203 |
/**/
|
204 |
|
205 |
+
echo($iubenda_code);
|
206 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
207 |
|
208 |
+
add_action("wp_head", "__iubenda_buffer_head", 99);
|
209 |
|
210 |
+
/****/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
211 |
|
212 |
function __iubenda_final_output($output)
|
213 |
{
|
214 |
+
if(!get_option("iubenda_parse") || Page::consent_given() && get_option("skip_parsing") || Page::bot_detected() || $_POST || defined("IUBENDA_NO_HTML") || get_option("iubenda_output_filter") && ob_get_level() > 1)
|
215 |
+
{
|
216 |
return $output;
|
217 |
}
|
218 |
|
219 |
+
/**/
|
220 |
+
|
221 |
+
if(function_exists("is_user_logged_in")) { if(is_user_logged_in()) { return $output; } }
|
222 |
+
if(function_exists("is_feed") && get_option("iubenda_output_feed")) { if(is_feed()) { return $output; } }
|
223 |
+
|
224 |
+
/**/
|
225 |
+
|
226 |
+
$startime = microtime(true);
|
227 |
+
|
228 |
+
/**/
|
229 |
+
|
230 |
+
if(get_option("parser_engine") == "new")
|
231 |
+
{
|
232 |
+
$faster = new Faster;
|
233 |
+
|
234 |
+
/**/
|
235 |
+
|
236 |
+
$output = $faster -> isParse($output);
|
237 |
+
|
238 |
+
/**/
|
239 |
+
|
240 |
+
$signature = "Parsed with iubenda experimental class in ";
|
241 |
+
}
|
242 |
+
else
|
243 |
+
{
|
244 |
+
$page = new Page($output);
|
245 |
+
$page->parse();
|
246 |
+
|
247 |
+
/**/
|
248 |
+
|
249 |
+
$output = $page->get_converted_page();
|
250 |
+
|
251 |
+
/**/
|
252 |
+
|
253 |
+
$signature = "Parsed with iubenda default class in ";
|
254 |
+
}
|
255 |
+
|
256 |
+
/**/
|
257 |
+
|
258 |
+
$output .= "<!-- ".$signature.round(microtime(true) - $startime, 4)."s -->";
|
259 |
|
260 |
/**/
|
261 |
|
262 |
+
return $output;
|
263 |
}
|
264 |
|
265 |
add_filter("final_output", "__iubenda_final_output");
|
270 |
return '<!--IUB_COOKIE_POLICY_START-->'.do_shortcode($content).'<!--IUB_COOKIE_POLICY_END-->';
|
271 |
}
|
272 |
|
|
|
273 |
add_shortcode('iub-cookie-policy', 'iub_func');
|
274 |
|
275 |
+
/****/
|
|
|
|
|
|
|
|
|
|
|
|
|
276 |
|
277 |
function iub_admin()
|
278 |
{
|
279 |
add_menu_page("Iubenda - Settings", "Iubenda", "administrator", __FILE__, "__iub_admin_load");
|
280 |
}
|
281 |
|
282 |
+
/****/
|
283 |
|
|
|
|
|
|
|
|
|
284 |
function __iub_admin_load(){
|
285 |
|
286 |
if(get_option("iub_code")) {
|
290 |
|
291 |
foreach($iubenda_languages as $iubenda_language)
|
292 |
{
|
293 |
+
if(strpos($wpml_old, 'lang: "'.$iubenda_language) !== false)
|
294 |
+
{
|
295 |
$language_tag = $iubenda_language;
|
296 |
|
297 |
break;
|
303 |
update_option("iub_code", false);
|
304 |
}
|
305 |
|
306 |
+
if (!current_user_can( 'manage_options' ) && ( ! defined( 'DOING_AJAX' ) || ! DOING_AJAX ) ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
307 |
wp_die( __( 'You are not allowed to access this part of the site' ) );
|
308 |
}
|
309 |
|
315 |
update_option("skip_parsing", "skip");
|
316 |
}
|
317 |
else {
|
318 |
+
update_option("skip_parsing", false);
|
319 |
+
}
|
320 |
+
if(!empty($_POST['iubenda_ctype'])) {
|
321 |
+
update_option("iubenda_ctype", true);
|
322 |
+
}
|
323 |
+
else {
|
324 |
+
update_option("iubenda_ctype", false);
|
325 |
}
|
326 |
+
if(!empty($_POST['iubenda_parse'])) {
|
327 |
+
update_option("iubenda_parse", true);
|
328 |
+
}
|
329 |
+
else {
|
330 |
+
update_option("iubenda_parse", false);
|
331 |
+
}
|
332 |
+
if(!empty($_POST['iubenda_output_filter'])) {
|
333 |
+
update_option("iubenda_output_filter", true);
|
334 |
+
}
|
335 |
+
else {
|
336 |
+
update_option("iubenda_output_filter", false);
|
337 |
+
}
|
338 |
+
if(!empty($_POST['iubenda_output_feed'])) {
|
339 |
+
update_option("iubenda_output_feed", true);
|
340 |
+
}
|
341 |
+
else {
|
342 |
+
update_option("iubenda_output_feed", false);
|
343 |
+
}
|
344 |
+
|
345 |
+
if($_POST["parser_engine"] == "default") update_option("parser_engine", "default");
|
346 |
+
if($_POST["parser_engine"] == "new") update_option("parser_engine", "new");
|
347 |
}
|
348 |
|
349 |
+
/*
|
350 |
+
Enabled by default.
|
351 |
+
*/
|
352 |
+
|
353 |
+
if(!get_option("default_skip_parsing")) {
|
354 |
+
update_option("default_skip_parsing", true);
|
355 |
+
update_option("skip_parsing", "skip");
|
356 |
+
}
|
357 |
+
if(!get_option("default_parser_engine")) {
|
358 |
+
update_option("default_parser_engine", true);
|
359 |
+
update_option("parser_engine", "default");
|
360 |
+
}
|
361 |
+
if(!get_option("default_iubendactype")) {
|
362 |
+
update_option("default_iubendactype", true);
|
363 |
+
update_option("iubenda_ctype", true);
|
364 |
+
}
|
365 |
+
if(!get_option("default_iubendaparse")) {
|
366 |
+
update_option("default_iubendaparse", true);
|
367 |
+
update_option("iubenda_parse", true);
|
368 |
+
}
|
369 |
+
if(!get_option("default_iubenda_output_feed")) {
|
370 |
+
update_option("default_iubenda_output_feed", true);
|
371 |
+
update_option("iubenda_output_feed", true);
|
372 |
+
}
|
373 |
|
374 |
/**/
|
375 |
|
376 |
if($_POST)
|
377 |
{
|
378 |
+
foreach($iubenda_language as $iub_check)
|
379 |
+
{
|
380 |
if(!empty($_POST["iubenda-code-$iub_check"])) {
|
381 |
update_option("iubenda-code-$iub_check", stripslashes($_POST["iubenda-code-$iub_check"]));
|
382 |
}
|
383 |
}
|
384 |
}
|
385 |
|
386 |
+
/**/
|
|
|
|
|
|
|
|
|
387 |
|
388 |
+
$checked = "";
|
389 |
+
$checked_ctype = "";
|
390 |
+
$checked_parse = "";
|
391 |
+
$checked_output_feed = "";
|
392 |
+
$checked_output_filter = "";
|
393 |
|
394 |
+
if(get_option("iubenda_parse")) $checked_parse = 'checked="true"';
|
395 |
+
if(get_option("skip_parsing")) $checked = 'checked="true"';
|
396 |
+
if(get_option("iubenda_ctype")) $checked_ctype = 'checked="true"';
|
397 |
+
if(get_option("iubenda_output_feed")) $checked_output_feed = 'checked="true"';
|
398 |
+
if(get_option("iubenda_output_filter")) $checked_output_filter = 'checked="true"';
|
399 |
+
|
400 |
+
$parser_engine_default = "";
|
401 |
+
$parser_engine_new = "";
|
402 |
+
|
403 |
+
if(get_option("parser_engine") == "default") $parser_engine_default = 'checked="true"';
|
404 |
+
if(get_option("parser_engine") == "new") $parser_engine_new = 'checked="true"';
|
405 |
+
|
406 |
+
/**/
|
407 |
|
408 |
echo '
|
|
|
409 |
<style>
|
410 |
+
#iubenda-view
|
411 |
+
{
|
412 |
+
display: table;
|
413 |
+
|
414 |
+
width: 90%;
|
415 |
+
margin: 50px auto;
|
416 |
+
|
417 |
+
border-radius: 2px;
|
418 |
+
background-color: #FFFFFF;
|
419 |
+
box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.1)
|
420 |
+
}
|
421 |
#iubenda-tabs
|
422 |
{
|
423 |
display: table;
|
572 |
display: inline-table;
|
573 |
margin-bottom: 10px;
|
574 |
}
|
575 |
+
|
576 |
+
#parser_engine label input
|
577 |
+
{
|
578 |
+
margin-right: 5px
|
579 |
+
}
|
580 |
+
|
581 |
+
#parser_engine, #par_skip_parsing, #par_iubenda_output_filter {
|
582 |
+
margin-left: 30px;
|
583 |
+
}
|
584 |
+
|
585 |
+
.wp-admin .iubenda-checkbox-options p label input[type=checkbox], .iubenda-checkbox-options label span {
|
586 |
+
display: inline-block;
|
587 |
+
vertical-align: top;
|
588 |
+
margin-top: 0;
|
589 |
+
line-height: 1.2;
|
590 |
+
}
|
591 |
+
|
592 |
</style>
|
593 |
<script>
|
594 |
function iubendaGetLanguage(str) {
|
620 |
var firstTab = document.querySelector("[data-iubenda-button]");
|
621 |
|
622 |
if(firstTab) jQuery(firstTab).trigger("click");
|
623 |
+
|
624 |
+
var engine = document.getElementById("parser_type");
|
625 |
+
|
626 |
+
engine.onchange = function()
|
627 |
+
{
|
628 |
+
if(this.checked)
|
629 |
+
{
|
630 |
+
document.getElementById("iubenda_parse_child").style.display = "block";
|
631 |
+
}
|
632 |
+
else
|
633 |
+
{
|
634 |
+
document.getElementById("iubenda_parse_child").style.display = "none";
|
635 |
+
}
|
636 |
+
}
|
637 |
+
|
638 |
+
jQuery(engine).trigger("change");
|
639 |
}
|
640 |
);
|
641 |
|
648 |
}, 3000
|
649 |
);
|
650 |
</script>
|
651 |
+
<div id="iubenda-view">
|
652 |
<a class="iubenda-link" href="http://iubenda.com"><img id="iubenda-logo" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAG4AAAAdCAMAAAB8M6mmAAAAhFBMVEUAAAA0O0Ibr380O0Ibr380O0Ibr380O0Ibr380O0Ibr380O0I0O0Ibr380O0Ibr380O0Ibr380O0Ibr380O0Ibr380O0Ibr380O0Ibr380O0Ibr380O0Ibr380O0Ibr3/////G69+35tdTw5/U8Ofx+vdiyKd+0rep4c/i9e8otIeN17/AB1g0AAAAHnRSTlMAEBAgIDAwQEBQUGBwcICAkJCgoLCwwMDQ0ODg8PCQCZ0FAAACrklEQVR4Xr2V63LbIBCFF1OZKBCiKAohlK7kXHt5//cruyDjjFTX42l9fnhh1+yHGB0EAJu7kXS/gUto8zRmPV2Edz/OergA7ctYtV0DCKPPBCgrF7kb4rzs3incrCzpEd05LKEDolqkb4nzNr1RuF1UB8TzcE1E/CPu+7Rbxwnozn06Eddw25H0wr9XsJQh3Flyazh4HGd9hRWpf4zbfptx15fAwR53dRHcWHFSkQDKoOJ05w5M1NjBdXpvFU0WW9TlHidN73rbVtz7844PU7mIiADQOkyaccIjqQOW6DHQ/3yTxiYg2pQhqVIfMPYDYiwZHdF3gdpk3K/XadoVH6hCgbbivMcsyzSPhntiFBAcbcOj6xI/QKl7UYynciOTj9YWJ/z8scfBjIOKQ68ADC2n8+oKNc37FHuqp7xMsQGuRzHvV1U/tMVQVwm0O4oLIg+4v0CkKXNiChZxEMVmbQrN/tBjweVdygXu7g84B3N/D6AxWhYdY8ZZgDroM6QaQUfGiwXu8Tiu5UyP0e3VLHERccUIqseCuzkVJzjjMEDVAtfgCk4HdLrgbk/FQcHhMZxa4hqPLg0WuKcTce1fcPITTvMbtoIbj+MaHvWIAxQFuXqYuuLYMKH08xQeTsVpbqRrPx1h9VVxFcd+6w77PX7G+dmtC5zDILK90XAl2nUjoD7A2fJUzRK3AYCBLzc5JCwqIarNTdmHxaRg7YBR5Gl3iJOx8EyKVkjFuxO8qhky7nV6m79ALXdDLyhGxXdf0EJYjO1s9yLFN2TZjgiIngaaSt4FjPla55AWc5o+dx/P0zQ9fzCOT5EfMBU19+nygl5CkeVEaCo6gOfI76AKuewwWgnQ0NRJcNwVxirGgdSGOlkFs5SxLZFrwppaXUoZ6qD1PFWSQ8p9wl3D/9ZvoAF23RgFj1kAAAAASUVORK5CYII="/></a>
|
653 |
|
654 |
<p class="iubenda-text">
|
655 |
+
Questo plugin è il modo più semplice e completo per adeguare il tuo sito Wordpress alla cookie law. Alla prima visita dell'utente il plugin si occuperà di raccoglierne il consenso, di bloccare i più popolari fra gli script che installano cookie e di riattivarli non appena il consenso viene fornito. Le impostazioni di base includono la raccolta del consenso tramite il semplice scroll (il metodo più efficace) e la riattivazione senza il refresh della pagina.
|
656 |
+
<span class="iubenda-title">Vuoi capire di più sulla cookie law?</span>
|
657 |
+
Consulta <a href="https://www.iubenda.com/it/soluzione-cookie-law" class="iubenda-url" target="_blank">la nostra guida completa alla cookie law</a>.
|
658 |
+
<span class="iubenda-title">Quali sono le funzionalità complete del plugin?</span>
|
659 |
+
Visita <a href="https://www.iubenda.com/it/help/posts/810" class="iubenda-url" target="_blank">la nostra pagina dedicata al plugin</a>.
|
660 |
+
<span class="iubenda-title">Inserisci qui sotto il codice di iubenda per la cookie law.</span>
|
661 |
+
Per far funzionare il plugin, è necessario inserire nel form sottostante il codice di iubenda che attiva il banner cookie law e la cookie policy.Questo codice può essere generato su www.iubenda.com, seguendo <a href="https://www.iubenda.com/it/help/posts/680" class="iubenda-url" target="_blank">questa guida
|
662 |
</a>.
|
663 |
</p>
|
664 |
|
691 |
|
692 |
echo
|
693 |
'
|
694 |
+
<div id="iubenda-information">Seleziona una lingua a cui associare il tuo codice</div>
|
695 |
';
|
696 |
|
697 |
}
|
700 |
echo '<textarea class="iubenda-textarea iubenda-textarea-single" name="iubenda-code-default">'.stripslashes(get_option("iubenda-code-default")).'</textarea>';
|
701 |
}
|
702 |
|
703 |
+
echo '
|
704 |
+
<div class="iubenda-checkbox-options">
|
705 |
+
|
706 |
+
<p>
|
707 |
+
<label>
|
708 |
+
<input id="parser_type" type="checkbox" name="iubenda_parse" value="enabled" '.$checked_parse.'>
|
709 |
+
<span>
|
710 |
+
Effettua il blocco automatico degli script rilevati dal plugin<br />
|
711 |
+
(consulta <a target="_blank" class="iubenda-url" href="https://www.iubenda.com/it/help/posts/810">la nostra documentazione</a> per la lista di script rilevati)
|
712 |
+
</span>
|
713 |
+
</label>
|
714 |
+
</p>
|
715 |
+
|
716 |
+
<div id="iubenda_parse_child">
|
717 |
+
<p id="parser_engine">
|
718 |
+
Parsing engine:<br>
|
719 |
+
<label><input type="radio" name="parser_engine" value="default" '.$parser_engine_default.'>Default</label>
|
720 |
+
<label><input type="radio" name="parser_engine" value="new" '.$parser_engine_new.'>Sperimentale (Performance migliorata)</label>
|
721 |
+
</p>
|
722 |
+
<p id="par_skip_parsing">
|
723 |
+
<label>
|
724 |
+
<input type="checkbox" name="skip_parsing" value="skip" '.$checked.'>
|
725 |
+
<span>
|
726 |
+
Lascia intatti gli script della pagina se l\'utente ha già dato il consenso<br />
|
727 |
+
(migliora le prestazioni, altamente consigliato, da disattivare solo qualora il tuo sito utilizzi un sistema di cache)
|
728 |
+
</span>
|
729 |
+
</label>
|
730 |
+
</p>
|
731 |
+
<p id="par_iubenda_output_filter">
|
732 |
+
<label>
|
733 |
+
<input type="checkbox" name="iubenda_output_filter" value="enabled" '.$checked_output_filter.'>
|
734 |
+
<span>
|
735 |
+
Applica ottimizzazioni speciali in caso di errori con l\'output<br />
|
736 |
+
(attiva questa opzione solo qualora avessi problemi di performance o notassi che il blocco dei codici viene applicato più volte)
|
737 |
+
</span>
|
738 |
+
</label>
|
739 |
+
</p>
|
740 |
+
|
741 |
+
<hr />
|
742 |
+
</div> <!-- /iubenda_parse_child -->
|
743 |
+
|
744 |
+
<p>
|
745 |
+
<label>
|
746 |
+
<input type="checkbox" name="iubenda_ctype" value="enabled" '.$checked_ctype.'>
|
747 |
+
<span>
|
748 |
+
Restringi l\'esecuzione del plugin alle sole richieste che presentano "Content-type: text/html" (consigliato)
|
749 |
+
</span>
|
750 |
+
</label>
|
751 |
+
</p>
|
752 |
+
<p>
|
753 |
+
<label>
|
754 |
+
<input type="checkbox" name="iubenda_output_feed" value="enabled" '.$checked_output_feed.'>
|
755 |
+
<span>
|
756 |
+
Non eseguire il plugin all\'interno dei Feed RSS (consigliato)
|
757 |
+
</span>
|
758 |
+
</label>
|
759 |
+
</p>
|
760 |
+
<p>
|
761 |
+
<input type="submit" value="Salva" id="iubenda-save">
|
762 |
+
</p>
|
763 |
+
</div> <!-- /iubenda-checkbox-options -->
|
764 |
+
</form>
|
765 |
+
<p class="iubenda-text">
|
766 |
+
<span class="iubenda-title">Hai bisogno di supporto su questo plugin?</span>
|
767 |
+
Visita il nostro <a href="//support.iubenda.com/forums/314835-general/suggestions/9670701-discussion-regarding-the-iubenda-cookie-law-soluti" class="iubenda-url" target="_blank">forum di supporto</a>.
|
768 |
+
</p>
|
769 |
+
<p class="iubenda-text">
|
770 |
+
<span class="iubenda-title">Vuoi provare una versione Beta di questo plugin, con le funzionalità più recenti?</span>
|
771 |
+
Visita <a href="https://www.iubenda.com/it/help/posts/810" class="iubenda-url" target="_blank">la nostra documentazione</a> e segui le istruzioni per installare una versione Beta.
|
772 |
+
</p>
|
773 |
+
</div>';
|
774 |
}
|
775 |
?>
|
readme.txt
CHANGED
@@ -3,8 +3,8 @@ Contributors: iubenda
|
|
3 |
Donate link:
|
4 |
Tags: cookies, cookie law, cookie policy, cookie banner, cookie block, privacy policy, cookie consent, privacy
|
5 |
Requires at least: 3.0.1
|
6 |
-
Tested up to: 4.4.
|
7 |
-
Stable tag: 1.
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
@@ -12,7 +12,7 @@ A plugin that works with the iubenda Cookie Law Solution: shows a cookie banner
|
|
12 |
|
13 |
== Description ==
|
14 |
|
15 |
-
NOTE: This plugin is a beta and could in certain situations still have bugs. We encourage you to actively let us know about any issues here: http://
|
16 |
|
17 |
* Find a comprehensive _guide and demo_ to the cookie law solution on our help blog https://www.iubenda.com/en/help/posts/1177
|
18 |
|
@@ -54,7 +54,7 @@ Iubenda and the Cookie Law Solution extension for WordPress help remove these co
|
|
54 |
|
55 |
-----
|
56 |
|
57 |
-
NOTA: Il plugin è attualmente in versione beta e potrebbe pertanto presentare alcuni bug. Ti invitiamo a segnalare sul nostro forum eventuali malfunzionamenti: http://
|
58 |
|
59 |
* Consulta la _guida completa_ al kit cookie law di iubenda: https://www.iubenda.com/it/help/posts/680
|
60 |
|
@@ -96,7 +96,7 @@ Il plugin Wordpress di iubenda permette di semplificare l’adeguamento del prop
|
|
96 |
|
97 |
== Installation ==
|
98 |
|
99 |
-
**NOTE: This plugin is a beta and could in certain situations still have bugs. We encourage you to actively let us know about any issues here:** http://
|
100 |
|
101 |
- **Installation via WP.org**: search in your WordPress plugin admin panel for "Iubenda Cookie Solution", install it;
|
102 |
- Once the plugin is installed and activated, go to the Admin Panel (Settings > Iubenda Cookie Solution) where you will be asked to paste the code into tht field that gets generated from your Iubenda account dashboard when you activate the cookie law kit for your privacy policy. For more information on how to activate the cookie law kit, see this article: https://www.iubenda.com/it/help/posts/680;
|
@@ -106,8 +106,8 @@ Il plugin Wordpress di iubenda permette di semplificare l’adeguamento del prop
|
|
106 |
|
107 |
`<!--IUB_COOKIE_POLICY_START-->
|
108 |
<!--IUB_COOKIE_POLICY_END-->`
|
109 |
-
- In case you're querying WordPress via API, you can disable our plugin by using the iub_no_parse=true URL parameter, like this: www.example.com/api/get_recent_posts?iub_no_parse=true.
|
110 |
-
|
111 |
|
112 |
- **Installazione automatica**: installa da WordPres.org cercando "Iubenda Cookie Solution";
|
113 |
- Una volta installato ed attivato il plugin, accedi al pannello Admin (Impostazioni > Iubenda Cookie Solution) dove ti verrà chiesto di incollare in un campo il codice che iubenda genera quando attivi il kit cookie law sulla tua privacy policy. Per ulteriori informazioni su come attivare il kit cookie law, consulta questo articolo: https://www.iubenda.com/it/help/posts/680;
|
@@ -119,6 +119,14 @@ Il plugin Wordpress di iubenda permette di semplificare l’adeguamento del prop
|
|
119 |
<!--IUB_COOKIE_POLICY_END-->`
|
120 |
- Se utilizzi WordPress tramite API, puoi disattivare il nostro plugin usando il parametro URL iub_no_parse=true, in questo modo: www.example.com/api/get_recent_posts?iub_no_parse=true.
|
121 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
122 |
== Screenshots ==
|
123 |
|
124 |
1. This screen shot shows the default banner on top of our test site testkada4.altervista.org/cookie-test/example2.html
|
@@ -127,11 +135,19 @@ Il plugin Wordpress di iubenda permette di semplificare l’adeguamento del prop
|
|
127 |
|
128 |
== Changelog ==
|
129 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
130 |
= 1.10.21 =
|
131 |
* Rolling back to 1.10.11
|
132 |
|
133 |
= 1.10.20 =
|
134 |
-
* Hotfix: moved
|
135 |
|
136 |
= 1.10.19 =
|
137 |
* Fixed a series of conflicts with AJAX requests, which were conflicting with Contact Form 7 and other plugins
|
@@ -302,7 +318,7 @@ In case of continued browsing, the preferences of your users for the use of cook
|
|
302 |
== Bug reports ==
|
303 |
|
304 |
* The best way you can help us is by providing as much information as possible, including the use of wp_debug https://codex.wordpress.org/Debugging_in_WordPress.
|
305 |
-
* We will be very happy to receive feedback here: http://
|
306 |
|
307 |
== Istruzioni in italiano ==
|
308 |
|
@@ -337,4 +353,4 @@ In caso di proseguimento della navigazione, le preferenze dei tuoi utenti circa
|
|
337 |
== Segnalazioni di bug ==
|
338 |
|
339 |
* Il modo migliore per aiutarci è quello di fornire quante più informazioni possibili, compreso l'uso di wp_debug https://codex.wordpress.org/Debugging_in_WordPress.
|
340 |
-
* Saremo molto contenti di ricevere feedback qui: http://
|
3 |
Donate link:
|
4 |
Tags: cookies, cookie law, cookie policy, cookie banner, cookie block, privacy policy, cookie consent, privacy
|
5 |
Requires at least: 3.0.1
|
6 |
+
Tested up to: 4.4.1
|
7 |
+
Stable tag: 1.10.21
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
12 |
|
13 |
== Description ==
|
14 |
|
15 |
+
NOTE: This plugin is a beta and could in certain situations still have bugs. We encourage you to actively let us know about any issues here: [Uservoice forum](http://support.iubenda.com/forums/314835-general/suggestions/9670701-discussion-regarding-the-iubenda-cookie-law-soluti) (support.iubenda.com)
|
16 |
|
17 |
* Find a comprehensive _guide and demo_ to the cookie law solution on our help blog https://www.iubenda.com/en/help/posts/1177
|
18 |
|
54 |
|
55 |
-----
|
56 |
|
57 |
+
NOTA: Il plugin è attualmente in versione beta e potrebbe pertanto presentare alcuni bug. Ti invitiamo a segnalare sul nostro forum eventuali malfunzionamenti: [Uservoice forum](http://support.iubenda.com/forums/314835-general/suggestions/9670701-discussion-regarding-the-iubenda-cookie-law-soluti) (support.iubenda.com)
|
58 |
|
59 |
* Consulta la _guida completa_ al kit cookie law di iubenda: https://www.iubenda.com/it/help/posts/680
|
60 |
|
96 |
|
97 |
== Installation ==
|
98 |
|
99 |
+
**NOTE: This plugin is a beta and could in certain situations still have bugs. We encourage you to actively let us know about any issues here:** [Uservoice forum](http://support.iubenda.com/forums/314835-general/suggestions/9670701-discussion-regarding-the-iubenda-cookie-law-soluti)
|
100 |
|
101 |
- **Installation via WP.org**: search in your WordPress plugin admin panel for "Iubenda Cookie Solution", install it;
|
102 |
- Once the plugin is installed and activated, go to the Admin Panel (Settings > Iubenda Cookie Solution) where you will be asked to paste the code into tht field that gets generated from your Iubenda account dashboard when you activate the cookie law kit for your privacy policy. For more information on how to activate the cookie law kit, see this article: https://www.iubenda.com/it/help/posts/680;
|
106 |
|
107 |
`<!--IUB_COOKIE_POLICY_START-->
|
108 |
<!--IUB_COOKIE_POLICY_END-->`
|
109 |
+
- In case you're querying WordPress via API, you can disable our plugin by using the iub_no_parse=true URL parameter, like this: www.example.com/api/get_recent_posts?iub_no_parse=true.
|
110 |
+
|
111 |
|
112 |
- **Installazione automatica**: installa da WordPres.org cercando "Iubenda Cookie Solution";
|
113 |
- Una volta installato ed attivato il plugin, accedi al pannello Admin (Impostazioni > Iubenda Cookie Solution) dove ti verrà chiesto di incollare in un campo il codice che iubenda genera quando attivi il kit cookie law sulla tua privacy policy. Per ulteriori informazioni su come attivare il kit cookie law, consulta questo articolo: https://www.iubenda.com/it/help/posts/680;
|
119 |
<!--IUB_COOKIE_POLICY_END-->`
|
120 |
- Se utilizzi WordPress tramite API, puoi disattivare il nostro plugin usando il parametro URL iub_no_parse=true, in questo modo: www.example.com/api/get_recent_posts?iub_no_parse=true.
|
121 |
|
122 |
+
== Frequently Asked Questions ==
|
123 |
+
|
124 |
+
**Where can I find help?**
|
125 |
+
You can find a dedicated support forum thread here [Uservoice forum](http://support.iubenda.com/forums/314835-general/suggestions/9670701-discussion-regarding-the-iubenda-cookie-law-soluti) or we're happy to answer at info@iubenda.com.
|
126 |
+
|
127 |
+
**Do you have more guidance, or a demo?**
|
128 |
+
Yes, right here: https://www.iubenda.com/en/help/posts/1177
|
129 |
+
|
130 |
== Screenshots ==
|
131 |
|
132 |
1. This screen shot shows the default banner on top of our test site testkada4.altervista.org/cookie-test/example2.html
|
135 |
|
136 |
== Changelog ==
|
137 |
|
138 |
+
= 1.11.0 =
|
139 |
+
* New: Introduced a MUCH FASTER experimental parsing engine (visit the plugin options and select the experimental parsing engine)
|
140 |
+
* New: Created a new option that allow users to enable/disable the parsing engine and to select the parsing engine between stabile and experimental
|
141 |
+
* New: Created a new option that filters the output buffer level to get only the first level ()
|
142 |
+
* Fixed a series of conflicts with AJAX requests, which were conflicting with Contact Form 7, BackWPUp and other plugins
|
143 |
+
* Added filter that only activates the plugin when the Content Type is text/html, enabled by default
|
144 |
+
* Loads of bug fixes and speed improvements
|
145 |
+
|
146 |
= 1.10.21 =
|
147 |
* Rolling back to 1.10.11
|
148 |
|
149 |
= 1.10.20 =
|
150 |
+
* Hotfix: moved "is_user_logged_in" method control after the “template_redirect” hook.
|
151 |
|
152 |
= 1.10.19 =
|
153 |
* Fixed a series of conflicts with AJAX requests, which were conflicting with Contact Form 7 and other plugins
|
318 |
== Bug reports ==
|
319 |
|
320 |
* The best way you can help us is by providing as much information as possible, including the use of wp_debug https://codex.wordpress.org/Debugging_in_WordPress.
|
321 |
+
* We will be very happy to receive feedback here: [Uservoice forum](http://support.iubenda.com/forums/314835-general/suggestions/9670701-discussion-regarding-the-iubenda-cookie-law-soluti)
|
322 |
|
323 |
== Istruzioni in italiano ==
|
324 |
|
353 |
== Segnalazioni di bug ==
|
354 |
|
355 |
* Il modo migliore per aiutarci è quello di fornire quante più informazioni possibili, compreso l'uso di wp_debug https://codex.wordpress.org/Debugging_in_WordPress.
|
356 |
+
* Saremo molto contenti di ricevere feedback qui: http://support.iubenda.com/forums/314835-general/suggestions/9670701-discussion-regarding-the-iubenda-cookie-law-soluti
|