Version Description
Download this release
Release Info
Developer | cdoral |
Plugin | Asesor de Cookies para normativa española |
Version | 0.11 |
Comparing to | |
See all releases |
Version 0.11
- README.md +4 -0
- config.php +10 -0
- html/admin/estilos.css +244 -0
- html/admin/principal.html +193 -0
- html/admin/principal.js +115 -0
- html/front/_jquery.kookie.js +107 -0
- html/front/aviso.html +9 -0
- html/front/estilos.css +193 -0
- html/front/lib.js +95 -0
- html/front/mas-informacion.html +106 -0
- html/front/politica.html +45 -0
- html/front/principal.js +25 -0
- lib/lib.php +247 -0
- lib/plugin.php +732 -0
- log/cdp_cookies.log +0 -0
- plugin.php +46 -0
- readme.txt +44 -0
- screenshots/aviso-usuario.png +0 -0
- screenshots/pantalla-configuracion.png +0 -0
README.md
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
Asesor de Cookies para normativa española
|
2 |
+
-------------------------------------------------
|
3 |
+
|
4 |
+
Plugin para establecer la base legal inicial sobre normativa de cookies española en su web.
|
config.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
define( "CDP_COOKIES_DIR_RAIZ", dirname( __FILE__ ) . '/' );
|
4 |
+
define( "CDP_COOKIES_URL_RAIZ", plugins_url( '/', __FILE__ ) );
|
5 |
+
define( "CDP_COOKIES_DIR_HTML", CDP_COOKIES_DIR_RAIZ . 'html/' );
|
6 |
+
define( 'CDP_COOKIES_URL_HTML', CDP_COOKIES_URL_RAIZ . 'html/' );
|
7 |
+
define( "CDP_COOKIES_LOG_ACTIVO", 0 );
|
8 |
+
define( "CDP_COOKIES_ARCHIVO_LOG", CDP_COOKIES_DIR_RAIZ . "log/cdp_cookies.log" );
|
9 |
+
|
10 |
+
?>
|
html/admin/estilos.css
ADDED
@@ -0,0 +1,244 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*============================================
|
2 |
+
General
|
3 |
+
============================================*/
|
4 |
+
.cdp-cookies-admin {
|
5 |
+
width: 100%;
|
6 |
+
max-width: 960px;
|
7 |
+
margin: 0 auto;
|
8 |
+
}
|
9 |
+
.cdp-cookies-admin h1 {
|
10 |
+
font-size:22px;
|
11 |
+
line-height: 24px;
|
12 |
+
font-weight: normal;
|
13 |
+
color: #666666;
|
14 |
+
}
|
15 |
+
.cdp-cookies-admin .cdp-cookies-mensajes {
|
16 |
+
display: none;
|
17 |
+
background-color: #d2ffc9;
|
18 |
+
padding: 20px;
|
19 |
+
border: 1px solid #bbbbbb;
|
20 |
+
border-radius: 5px;
|
21 |
+
-moz-border-radius: 5px;
|
22 |
+
-webkit-border-radius: 5px;
|
23 |
+
-khtml-border-radius: 5px;
|
24 |
+
-webkit-box-sizing: border-box;
|
25 |
+
-moz-box-sizing: border-box;
|
26 |
+
box-sizing: border-box;
|
27 |
+
}
|
28 |
+
.cdp-cookies-admin .cdp-cookies-mensajes.error {
|
29 |
+
background-color: #fffccb;
|
30 |
+
border:1px solid #e4db57;
|
31 |
+
}
|
32 |
+
|
33 |
+
/*============================================
|
34 |
+
varios
|
35 |
+
============================================*/
|
36 |
+
.cdp-align-der {
|
37 |
+
text-align: right;
|
38 |
+
}
|
39 |
+
|
40 |
+
/*============================================
|
41 |
+
Instrucciones
|
42 |
+
============================================*/
|
43 |
+
.cdp-cookies-instrucciones {
|
44 |
+
padding: 0 20px 0 0;
|
45 |
+
}
|
46 |
+
|
47 |
+
/*============================================
|
48 |
+
Grid
|
49 |
+
============================================*/
|
50 |
+
.cdp-cookies-grid {
|
51 |
+
padding: 10px 0;
|
52 |
+
}
|
53 |
+
.cdp-cookies-grid:after {
|
54 |
+
content: "";
|
55 |
+
display: table;
|
56 |
+
clear: both;
|
57 |
+
}
|
58 |
+
.cdp-cookies-1c,
|
59 |
+
.cdp-cookies-2c,
|
60 |
+
.cdp-cookies-3c,
|
61 |
+
.cdp-cookies-4c,
|
62 |
+
.cdp-cookies-5c,
|
63 |
+
.cdp-cookies-6c,
|
64 |
+
.cdp-cookies-7c,
|
65 |
+
.cdp-cookies-8c,
|
66 |
+
.cdp-cookies-9c,
|
67 |
+
.cdp-cookies-10c {
|
68 |
+
float:left;
|
69 |
+
padding: 0 10px;
|
70 |
+
-webkit-box-sizing: border-box;
|
71 |
+
-moz-box-sizing: border-box;
|
72 |
+
box-sizing: border-box;
|
73 |
+
}
|
74 |
+
.cdp-cookies-1c { width: 60px; }
|
75 |
+
.cdp-cookies-2c { width: 120px; }
|
76 |
+
.cdp-cookies-3c { width: 180px; }
|
77 |
+
.cdp-cookies-4c { width: 240px; }
|
78 |
+
.cdp-cookies-5c { width: 300px; }
|
79 |
+
.cdp-cookies-6c { width: 360px; }
|
80 |
+
.cdp-cookies-7c { width: 420px; }
|
81 |
+
.cdp-cookies-8c { width: 480px; }
|
82 |
+
.cdp-cookies-9c { width: 540px; }
|
83 |
+
.cdp-cookies-10c { width: 600px; }
|
84 |
+
.cdp-cookies-pad-v0 { padding-top: 0; padding-bottom: 0; }
|
85 |
+
|
86 |
+
/*============================================
|
87 |
+
Forms
|
88 |
+
============================================*/
|
89 |
+
.cdp-cookies-admin form {
|
90 |
+
display: inline-block;
|
91 |
+
background-color: #efefef;
|
92 |
+
padding: 10px;
|
93 |
+
margin: 0;
|
94 |
+
border: 1px solid #cccccc;
|
95 |
+
border-radius: 5px;
|
96 |
+
-moz-border-radius: 5px;
|
97 |
+
-webkit-border-radius: 5px;
|
98 |
+
-khtml-border-radius: 5px;
|
99 |
+
-webkit-box-sizing: border-box;
|
100 |
+
-moz-box-sizing: border-box;
|
101 |
+
box-sizing: border-box;
|
102 |
+
}
|
103 |
+
.cdp-cookies-admin form label {
|
104 |
+
text-align: right;
|
105 |
+
display: inline-block;
|
106 |
+
width: 100%;
|
107 |
+
padding: 10px;
|
108 |
+
margin:0;
|
109 |
+
font-family: "Arial";
|
110 |
+
font-size:12px;
|
111 |
+
vertical-align: bottom;
|
112 |
+
}
|
113 |
+
.cdp-cookies-admin form label.padv0 {
|
114 |
+
padding-top: 0;
|
115 |
+
padding-bottom: 0;
|
116 |
+
}
|
117 |
+
.cdp-cookies-admin form input[type="text"] {
|
118 |
+
width: 100%;
|
119 |
+
display: block;
|
120 |
+
padding: 10px;
|
121 |
+
margin:0;
|
122 |
+
color: #666666;
|
123 |
+
background-color: #fff;
|
124 |
+
font-family: "Arial";
|
125 |
+
font-size:12px;
|
126 |
+
border: 1px solid #ccc;
|
127 |
+
border-radius: 5px;
|
128 |
+
-moz-border-radius: 5px;
|
129 |
+
-webkit-border-radius: 5px;
|
130 |
+
-khtml-border-radius: 5px;
|
131 |
+
-webkit-box-sizing: border-box;
|
132 |
+
-moz-box-sizing: border-box;
|
133 |
+
box-sizing: border-box;
|
134 |
+
}
|
135 |
+
.cdp-cookies-admin form .cdp-cookies-radio {
|
136 |
+
cursor: pointer;
|
137 |
+
width: 100%;
|
138 |
+
display: block;
|
139 |
+
padding: 10px;
|
140 |
+
margin:0 0 10px 0;
|
141 |
+
color: #666666;
|
142 |
+
background-color: #e5e5e5;
|
143 |
+
font-family: "Arial";
|
144 |
+
font-size:12px;
|
145 |
+
border: 1px solid #ccc;
|
146 |
+
border-radius: 5px;
|
147 |
+
-moz-border-radius: 5px;
|
148 |
+
-webkit-border-radius: 5px;
|
149 |
+
-khtml-border-radius: 5px;
|
150 |
+
-webkit-box-sizing: border-box;
|
151 |
+
-moz-box-sizing: border-box;
|
152 |
+
box-sizing: border-box;
|
153 |
+
}
|
154 |
+
.cdp-cookies-admin form .cdp-cookies-radio input {
|
155 |
+
margin-right: 5px;
|
156 |
+
}
|
157 |
+
.cdp-cookies-admin form select {
|
158 |
+
width: 100%;
|
159 |
+
display: block;
|
160 |
+
padding: 10px;
|
161 |
+
margin:0;
|
162 |
+
color: #666666;
|
163 |
+
background-color: #fff;
|
164 |
+
font-family: "Arial";
|
165 |
+
font-size:12px;
|
166 |
+
height: 36px;
|
167 |
+
border: 1px solid #ccc;
|
168 |
+
border-radius: 5px;
|
169 |
+
-moz-border-radius: 5px;
|
170 |
+
-webkit-border-radius: 5px;
|
171 |
+
-khtml-border-radius: 5px;
|
172 |
+
-webkit-box-sizing: border-box;
|
173 |
+
-moz-box-sizing: border-box;
|
174 |
+
box-sizing: border-box;
|
175 |
+
}
|
176 |
+
.cdp-cookies-admin form hr {
|
177 |
+
padding: 0;
|
178 |
+
margin: 0;
|
179 |
+
height: 1px;
|
180 |
+
border: 0;
|
181 |
+
border-bottom: 1px solid #cccccc;
|
182 |
+
}
|
183 |
+
.cdp-cookies-admin a.cdp-cookies-boton.azul {
|
184 |
+
display: block;
|
185 |
+
width: 100%;
|
186 |
+
border: 1px solid #ffffff;
|
187 |
+
border-radius: 5px;
|
188 |
+
-moz-border-radius: 5px;
|
189 |
+
-webkit-border-radius: 5px;
|
190 |
+
-khtml-border-radius: 5px;
|
191 |
+
-webkit-box-sizing: border-box;
|
192 |
+
-moz-box-sizing: border-box;
|
193 |
+
box-sizing: border-box;
|
194 |
+
text-decoration: none;
|
195 |
+
padding: 0 10px;
|
196 |
+
margin: 0;
|
197 |
+
color: #ffffff;
|
198 |
+
text-shadow: 1px 1px 1px #222222;
|
199 |
+
font-family: "Arial";
|
200 |
+
font-size:14px;
|
201 |
+
line-height: 36px;
|
202 |
+
text-align: center;
|
203 |
+
outline: none;
|
204 |
+
background-image: -moz-linear-gradient(bottom, #4a7bd9, #60ade8);
|
205 |
+
background-image: -ms-linear-gradient(bottom, #4a7bd9, #60ade8);
|
206 |
+
background-image: -o-linear-gradient(bottom, #4a7bd9, #60ade8);
|
207 |
+
background-image: -webkit-gradient(linear, left bottom, left top, from(#4a7bd9), to(#60ade8));
|
208 |
+
background-image: -webkit-linear-gradient(bottom, #4a7bd9, #60ade8);
|
209 |
+
background-image: linear-gradient(bottom, #4a7bd9, #60ade8);
|
210 |
+
filter: progid:DXImageTransform.Microsoft.gradient(startColorStr="#4a7bd9", endColorStr="#60ade8");
|
211 |
+
}
|
212 |
+
.cdp-cookies-admin a.cdp-cookies-boton.azul:hover {
|
213 |
+
background-image: none;
|
214 |
+
filter:none;
|
215 |
+
background-color: #60ade8;
|
216 |
+
}
|
217 |
+
.cdp-cookies-colores {
|
218 |
+
}
|
219 |
+
.cdp-cookies-colores .cdp-cookies-radio.cdp-cookies-color-gris {
|
220 |
+
background-color: #444444;
|
221 |
+
color: #ffffff;
|
222 |
+
border:0;
|
223 |
+
}
|
224 |
+
.cdp-cookies-colores .cdp-cookies-radio.cdp-cookies-color-verde {
|
225 |
+
background-color: #0b7000;
|
226 |
+
color: #dddddd;
|
227 |
+
border:0;
|
228 |
+
}
|
229 |
+
.cdp-cookies-colores .cdp-cookies-radio.cdp-cookies-color-azul {
|
230 |
+
background-color: #5492e0;
|
231 |
+
color: #eeeeee;
|
232 |
+
border:0;
|
233 |
+
}
|
234 |
+
.cdp-cookies-colores .cdp-cookies-radio.cdp-cookies-color-blanco {
|
235 |
+
background-color: #ffffff;
|
236 |
+
color: #888888;
|
237 |
+
border:0;
|
238 |
+
}
|
239 |
+
.cdp-cookies-colores .cdp-cookies-radio.cdp-cookies-color-rojo {
|
240 |
+
background-color: #e04729;
|
241 |
+
color: #dddddd;
|
242 |
+
border:0;
|
243 |
+
}
|
244 |
+
|
html/admin/principal.html
ADDED
@@ -0,0 +1,193 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="cdp-cookies-admin">
|
2 |
+
<h1>Configuración de Asesor de Cookies</h1>
|
3 |
+
|
4 |
+
<p>
|
5 |
+
<a href="javascript:;" class="cdp-cookies-bot-instrucciones">[Ocultar/Mostrar instrucciones]</a>
|
6 |
+
|
7 |
+
<a href="http://webartesanal.com">Plugin creado por Carlos Doral Pérez (webartesanal.com)</a>
|
8 |
+
</p>
|
9 |
+
|
10 |
+
<div class="cdp-cookies-instrucciones">
|
11 |
+
|
12 |
+
<p>Este plugin le va a permitir actualizar su web a la <b>ley de cookies española</b>. El funcionamiento consiste en mostrar un mensaje cada vez que un nuevo usuario visita su web avisándole que si sigue navegando está <b>aceptando</b> la recepción de cookies y la <b>política de cookies</b> de su web.</p>
|
13 |
+
|
14 |
+
<p>Además, este plugin le proporciona los textos legales y técnicos que usted necesita, se generan automáticamente y los puede editar si lo desea. Estos textos son la <b>política de cookies</b>, la <b>descripción técnica de las cookies</b> y las </b>instrucciones de manipulación de cookies</b> desde los <b>navegadores</b> más populares.</p>
|
15 |
+
|
16 |
+
<p>Para configurar este plugin tiene que asignar los valores de estilo y formato para el <b>mensaje mostrado al usuario</b> que aparecen en este formulario y debe pulsar el botón <b>Crear páginas automáticamente</b> que le creará una página de <b>Política de Cookies</b> y otra de <b>Descripción de las cookies</b>, fundamentales para cumplir con la normativa.</p>
|
17 |
+
|
18 |
+
<p>Una vez creadas las páginas, debe editar la de <b>Política de cookies</b> y debe cambiar o completar los siguientes puntos:
|
19 |
+
<ol>
|
20 |
+
<li><cite>Este sitio web utiliza las siguientes cookies propias</cite>. Aquí debe añadir todas aquellas cookies que se estén generando desde su web, las denominadas <b>cookies propias</b>.</li>
|
21 |
+
<li><cite>Este sitio web utiliza las siguientes cookies de terceros</cite>. Aquí debe añadir todas aquellas cookies que se estén generando por servicios externos a su web, como Google Analytics, Facebook, Twitter, etc.</li>
|
22 |
+
<li>Si lo desea, donde dice <cite>Ni esta web ni sus representantes legales ...</cite> puede sustituirlo por el nombre de su empresa.</li>
|
23 |
+
</ol>
|
24 |
+
</p>
|
25 |
+
|
26 |
+
</div>
|
27 |
+
|
28 |
+
<form>
|
29 |
+
|
30 |
+
<!-- Layout -->
|
31 |
+
<div class="cdp-cookies-grid">
|
32 |
+
<div class="cdp-cookies-4c">
|
33 |
+
<label><b>Formato</b> del aviso de cookies:</label>
|
34 |
+
</div>
|
35 |
+
<div class="cdp-cookies-5c">
|
36 |
+
<?php
|
37 |
+
$opciones = array(
|
38 |
+
'ventana' => 'Flotante y siempre a la vista',
|
39 |
+
'pagina' => 'Como contenido de la página'
|
40 |
+
);
|
41 |
+
echo cdp_cookies_html::select( "layout", $opciones, true, cdp_cookies::parametro( 'layout' ) );
|
42 |
+
?>
|
43 |
+
</div>
|
44 |
+
</div>
|
45 |
+
|
46 |
+
<!-- Posición -->
|
47 |
+
<div class="cdp-cookies-grid">
|
48 |
+
<div class="cdp-cookies-4c">
|
49 |
+
<label><b>Posición</b> del aviso de cookies:</label>
|
50 |
+
</div>
|
51 |
+
<div class="cdp-cookies-5c">
|
52 |
+
<?php
|
53 |
+
$opciones = array(
|
54 |
+
'superior' => 'En la zona superior',
|
55 |
+
'inferior' => 'En la zona inferior'
|
56 |
+
);
|
57 |
+
echo cdp_cookies_html::select( "posicion", $opciones, true, cdp_cookies::parametro( 'posicion' ) );
|
58 |
+
?>
|
59 |
+
</div>
|
60 |
+
</div>
|
61 |
+
|
62 |
+
<!-- Alineación -->
|
63 |
+
<div class="cdp-cookies-grid">
|
64 |
+
<div class="cdp-cookies-4c">
|
65 |
+
<label class="padv0"><b>Alineación</b> del texto del aviso de cookies:</label>
|
66 |
+
</div>
|
67 |
+
<div class="cdp-cookies-5c">
|
68 |
+
<?php
|
69 |
+
$opciones = array(
|
70 |
+
'izq' => 'A la izquierda',
|
71 |
+
'cen' => 'Centrado'
|
72 |
+
);
|
73 |
+
echo cdp_cookies_html::select( "alineacion", $opciones, true, cdp_cookies::parametro( 'alineacion' ) );
|
74 |
+
?>
|
75 |
+
</div>
|
76 |
+
</div>
|
77 |
+
|
78 |
+
<!-- Estilo -->
|
79 |
+
<div class="cdp-cookies-grid">
|
80 |
+
<div class="cdp-cookies-4c">
|
81 |
+
<label>Estilo:</label>
|
82 |
+
</div>
|
83 |
+
<div class="cdp-cookies-5c cdp-cookies-colores">
|
84 |
+
<div class="cdp-cookies-radio cdp-cookies-color-gris">
|
85 |
+
<input id="tema" name="tema" type="radio" value="gris" <?php
|
86 |
+
echo cdp_cookies::parametro( 'tema' ) == 'gris' ? 'checked' : '';?>>
|
87 |
+
Gris
|
88 |
+
</div>
|
89 |
+
<div class="cdp-cookies-radio cdp-cookies-color-blanco">
|
90 |
+
<input id="tema" name="tema" type="radio" value="blanco" <?php
|
91 |
+
echo cdp_cookies::parametro( 'tema' ) == 'blanco' ? 'checked' : '';?>>
|
92 |
+
Blanco
|
93 |
+
</div>
|
94 |
+
<div class="cdp-cookies-radio cdp-cookies-color-azul">
|
95 |
+
<input id="tema" name="tema" type="radio" value="azul" <?php
|
96 |
+
echo cdp_cookies::parametro( 'tema' ) == 'azul' ? 'checked' : '';?>>
|
97 |
+
Azul
|
98 |
+
</div>
|
99 |
+
<div class="cdp-cookies-radio cdp-cookies-color-rojo">
|
100 |
+
<input id="tema" name="tema" type="radio" value="rojo" <?php
|
101 |
+
echo cdp_cookies::parametro( 'tema' ) == 'rojo' ? 'checked' : '';?>>
|
102 |
+
Rojo
|
103 |
+
</div>
|
104 |
+
<div class="cdp-cookies-radio cdp-cookies-color-verde">
|
105 |
+
<input id="tema" name="tema" type="radio" value="verde" <?php
|
106 |
+
echo cdp_cookies::parametro( 'tema' ) == 'verde' ? 'checked' : '';?>>
|
107 |
+
Verde
|
108 |
+
</div>
|
109 |
+
</div>
|
110 |
+
</div>
|
111 |
+
|
112 |
+
<!-- Vista previa -->
|
113 |
+
<div class="cdp-cookies-grid">
|
114 |
+
<div class="cdp-cookies-4c">
|
115 |
+
|
116 |
+
</div>
|
117 |
+
<div class="cdp-cookies-5c">
|
118 |
+
<a href="javascript:;" class="cdp-cookies-boton azul cdp-cookies-vista-previa">Vista previa</a>
|
119 |
+
</div>
|
120 |
+
</div>
|
121 |
+
|
122 |
+
<!-- separador -->
|
123 |
+
<div class="cdp-cookies-grid">
|
124 |
+
<div class="cdp-cookies-10c">
|
125 |
+
<hr>
|
126 |
+
</div>
|
127 |
+
</div>
|
128 |
+
|
129 |
+
<!-- URL Política -->
|
130 |
+
<div class="cdp-cookies-grid">
|
131 |
+
<div class="cdp-cookies-4c">
|
132 |
+
<label class="padv0">URL de la <b>página de política</b> de cookies:<br>
|
133 |
+
(puede ser un enlace a un <b>PDF</b>)</label>
|
134 |
+
</div>
|
135 |
+
<div class="cdp-cookies-5c">
|
136 |
+
<input type="text" name="enlace_politica" id="enlace_politica" value="<?php echo cdp_cookies::parametro( 'enlace_politica' );?>">
|
137 |
+
</div>
|
138 |
+
<div class="cdp-cookies-1c">
|
139 |
+
<a href="javascript:;" class="cdp-cookies-boton azul cdp-cookies-ver-politica" target="_blank">Ver</a>
|
140 |
+
</div>
|
141 |
+
</div>
|
142 |
+
|
143 |
+
<!-- URL +info -->
|
144 |
+
<div class="cdp-cookies-grid">
|
145 |
+
<div class="cdp-cookies-4c">
|
146 |
+
<label class="padv0">URL de la <b>página de más información</b> sobre las cookies:<br>
|
147 |
+
(puede ser un enlace a un <b>PDF</b>)</label>
|
148 |
+
</div>
|
149 |
+
<div class="cdp-cookies-5c">
|
150 |
+
<input type="text" name="enlace_mas_informacion" id="enlace_mas_informacion" value="<?php echo cdp_cookies::parametro( 'enlace_mas_informacion' );?>">
|
151 |
+
</div>
|
152 |
+
<div class="cdp-cookies-1c">
|
153 |
+
<a href="javascript:;" class="cdp-cookies-boton azul cdp-cookies-ver-mas-info" target="_blank">Ver</a>
|
154 |
+
</div>
|
155 |
+
</div>
|
156 |
+
|
157 |
+
<!-- Botón crear páginas -->
|
158 |
+
<div class="cdp-cookies-grid">
|
159 |
+
<div class="cdp-cookies-4c">
|
160 |
+
|
161 |
+
</div>
|
162 |
+
<div class="cdp-cookies-5c">
|
163 |
+
<a href="javascript:;" class="cdp-cookies-boton azul cdp-cookies-crear-politica">Crear páginas automáticamente</a>
|
164 |
+
</div>
|
165 |
+
</div>
|
166 |
+
|
167 |
+
<!-- separador -->
|
168 |
+
<div class="cdp-cookies-grid">
|
169 |
+
<div class="cdp-cookies-10c">
|
170 |
+
<hr>
|
171 |
+
</div>
|
172 |
+
</div>
|
173 |
+
|
174 |
+
<!-- Guardar -->
|
175 |
+
<div class="cdp-cookies-grid">
|
176 |
+
<div class="cdp-cookies-4c">
|
177 |
+
|
178 |
+
</div>
|
179 |
+
<div class="cdp-cookies-5c">
|
180 |
+
<a href="javascript:;" class="cdp-cookies-boton azul cdp-cookies-guardar">Guardar</a>
|
181 |
+
</div>
|
182 |
+
</div>
|
183 |
+
|
184 |
+
<!-- Mensajes de error y avisos -->
|
185 |
+
<div class="cdp-cookies-grid">
|
186 |
+
<div class="cdp-cookies-mensajes"></div>
|
187 |
+
</div>
|
188 |
+
|
189 |
+
</form>
|
190 |
+
|
191 |
+
<p>Este plugin pretende ahorrar tiempo y esfuerzo a su empresa para que pueda diseñar una correcta y adecuada política de cookies en su página web. El creador de este plugin no se hace responsable, ni tiene porqué intervenir en posibles litigios o acciones legales que puedan emprender contra su empresa por un posible incumplimiento de la citada ley de cookies. Es su obligación acudir a un abogado para que revise su política de cookies con el fin de conocer si cumple todos los requisitos solicitados por la Agencia de Protección de Datos.</p>
|
192 |
+
|
193 |
+
</div>
|
html/admin/principal.js
ADDED
@@ -0,0 +1,115 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
|
2 |
+
/* ======================================================================================
|
3 |
+
@author Carlos Doral Pérez (http://webartesanal.com)
|
4 |
+
@version 0.11
|
5 |
+
@copyright Copyright © 2013 Carlos Doral Pérez, All Rights Reserved
|
6 |
+
License: GPLv2 or later
|
7 |
+
====================================================================================== */
|
8 |
+
|
9 |
+
//
|
10 |
+
function cdp_cookies_mensaje( texto, clase )
|
11 |
+
{
|
12 |
+
jQuery( '.cdp-cookies-mensajes' ).removeClass( 'error' ).addClass( clase );
|
13 |
+
jQuery( '.cdp-cookies-mensajes' ).html( texto ).fadeIn( 500 ).delay( 2000 ).fadeOut( 500 );
|
14 |
+
}
|
15 |
+
|
16 |
+
//
|
17 |
+
function cdp_cookies_mensaje_error( texto )
|
18 |
+
{
|
19 |
+
cdp_cookies_mensaje( texto, 'error' );
|
20 |
+
}
|
21 |
+
|
22 |
+
//
|
23 |
+
function guardar()
|
24 |
+
{
|
25 |
+
//
|
26 |
+
var datos = {
|
27 |
+
action: 'guardar_config',
|
28 |
+
layout: jQuery( '#layout' ).val(),
|
29 |
+
posicion: jQuery( '#posicion' ).val(),
|
30 |
+
alineacion: jQuery( '#alineacion' ).val(),
|
31 |
+
tema: jQuery( '#tema:checked' ).val(),
|
32 |
+
enlace_politica: jQuery( '#enlace_politica' ).val(),
|
33 |
+
enlace_mas_informacion: jQuery( '#enlace_mas_informacion' ).val(),
|
34 |
+
nonce_guardar: info.nonce_guardar
|
35 |
+
};
|
36 |
+
|
37 |
+
//
|
38 |
+
jQuery.post( ajaxurl, datos, function( resul ) {
|
39 |
+
if( resul.ok )
|
40 |
+
cdp_cookies_mensaje( resul.txt );
|
41 |
+
else
|
42 |
+
cdp_cookies_mensaje_error( resul.txt );
|
43 |
+
}, 'json' );
|
44 |
+
}
|
45 |
+
|
46 |
+
//
|
47 |
+
function crear_paginas()
|
48 |
+
{
|
49 |
+
//
|
50 |
+
var datos = {
|
51 |
+
action: 'crear_paginas',
|
52 |
+
nonce_crear_paginas : info.nonce_crear_paginas
|
53 |
+
};
|
54 |
+
|
55 |
+
//
|
56 |
+
jQuery.post( ajaxurl, datos, function( resul ) {
|
57 |
+
if( resul.ok )
|
58 |
+
{
|
59 |
+
cdp_cookies_mensaje( resul.txt );
|
60 |
+
jQuery( '#enlace_mas_informacion' ).val( resul.url_info );
|
61 |
+
jQuery( '#enlace_politica' ).val( resul.url_politica );
|
62 |
+
}
|
63 |
+
else
|
64 |
+
{
|
65 |
+
cdp_cookies_mensaje_error( resul.txt );
|
66 |
+
}
|
67 |
+
}, 'json' );
|
68 |
+
}
|
69 |
+
|
70 |
+
//
|
71 |
+
jQuery( document ).ready( function( $ ) {
|
72 |
+
|
73 |
+
// Ocultar/mostrar instrucciones
|
74 |
+
$( '.cdp-cookies-bot-instrucciones' ).click( function() {
|
75 |
+
$( '.cdp-cookies-instrucciones' ).toggle();
|
76 |
+
} );
|
77 |
+
|
78 |
+
// Radios más fáciles de pinchar
|
79 |
+
$( 'form .cdp-cookies-radio' ).click( function() {
|
80 |
+
$( this ).find( 'input' ).attr( 'checked', true );
|
81 |
+
} );
|
82 |
+
|
83 |
+
// Guardar config
|
84 |
+
$( 'a.cdp-cookies-guardar' ).click( function() {
|
85 |
+
guardar();
|
86 |
+
} );
|
87 |
+
|
88 |
+
// Crear pág. política
|
89 |
+
$( 'a.cdp-cookies-crear-politica' ).click( function() {
|
90 |
+
crear_paginas();
|
91 |
+
} );
|
92 |
+
|
93 |
+
// Ver pág. más info
|
94 |
+
$( 'a.cdp-cookies-ver-mas-info' ).click( function() {
|
95 |
+
window.open( $( '#enlace_mas_informacion' ).val() );
|
96 |
+
} );
|
97 |
+
|
98 |
+
// Ver pág. politica
|
99 |
+
$( 'a.cdp-cookies-ver-politica' ).click( function() {
|
100 |
+
window.open( $( '#enlace_politica' ).val() );
|
101 |
+
} );
|
102 |
+
|
103 |
+
// Vista previa del aviso
|
104 |
+
$( 'a.cdp-cookies-vista-previa' ).click( function() {
|
105 |
+
window.open(
|
106 |
+
info.siteurl +
|
107 |
+
'?cdp_cookies_vista_previa=1' +
|
108 |
+
'&layout=' + $( '#layout' ).val() +
|
109 |
+
'&posicion=' + $( '#posicion' ).val() +
|
110 |
+
'&alineacion=' + $( '#alineacion' ).val() +
|
111 |
+
'&tema=' + $( '#tema:checked' ).val()
|
112 |
+
);
|
113 |
+
} );
|
114 |
+
|
115 |
+
} );
|
html/front/_jquery.kookie.js
ADDED
@@ -0,0 +1,107 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*!
|
2 |
+
* jQuery Cookie Plugin v1.3.1
|
3 |
+
* https://github.com/carhartl/jquery-cookie
|
4 |
+
*
|
5 |
+
* Copyright 2013 Klaus Hartl
|
6 |
+
* Released under the MIT license
|
7 |
+
*/
|
8 |
+
(function (factory) {
|
9 |
+
if (typeof define === 'function' && define.amd) {
|
10 |
+
// AMD. Register as anonymous module.
|
11 |
+
define(['jquery'], factory);
|
12 |
+
} else {
|
13 |
+
// Browser globals.
|
14 |
+
factory(jQuery);
|
15 |
+
}
|
16 |
+
}(function ($) {
|
17 |
+
|
18 |
+
var pluses = /\+/g;
|
19 |
+
|
20 |
+
function decode(s) {
|
21 |
+
if (config.raw) {
|
22 |
+
return s;
|
23 |
+
}
|
24 |
+
try {
|
25 |
+
// If we can't decode the cookie, ignore it, it's unusable.
|
26 |
+
return decodeURIComponent(s.replace(pluses, ' '));
|
27 |
+
} catch(e) {}
|
28 |
+
}
|
29 |
+
|
30 |
+
function decodeAndParse(s) {
|
31 |
+
if (s.indexOf('"') === 0) {
|
32 |
+
// This is a quoted cookie as according to RFC2068, unescape...
|
33 |
+
s = s.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\');
|
34 |
+
}
|
35 |
+
|
36 |
+
s = decode(s);
|
37 |
+
|
38 |
+
try {
|
39 |
+
// If we can't parse the cookie, ignore it, it's unusable.
|
40 |
+
return config.json ? JSON.parse(s) : s;
|
41 |
+
} catch(e) {}
|
42 |
+
}
|
43 |
+
|
44 |
+
var config = $.cookie = function (key, value, options) {
|
45 |
+
|
46 |
+
// Write
|
47 |
+
if (value !== undefined) {
|
48 |
+
options = $.extend({}, config.defaults, options);
|
49 |
+
|
50 |
+
if (typeof options.expires === 'number') {
|
51 |
+
var days = options.expires, t = options.expires = new Date();
|
52 |
+
t.setDate(t.getDate() + days);
|
53 |
+
}
|
54 |
+
|
55 |
+
value = config.json ? JSON.stringify(value) : String(value);
|
56 |
+
|
57 |
+
return (document.cookie = [
|
58 |
+
config.raw ? key : encodeURIComponent(key),
|
59 |
+
'=',
|
60 |
+
config.raw ? value : encodeURIComponent(value),
|
61 |
+
options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
|
62 |
+
options.path ? '; path=' + options.path : '',
|
63 |
+
options.domain ? '; domain=' + options.domain : '',
|
64 |
+
options.secure ? '; secure' : ''
|
65 |
+
].join(''));
|
66 |
+
}
|
67 |
+
|
68 |
+
// Read
|
69 |
+
|
70 |
+
var result = key ? undefined : {};
|
71 |
+
|
72 |
+
// To prevent the for loop in the first place assign an empty array
|
73 |
+
// in case there are no cookies at all. Also prevents odd result when
|
74 |
+
// calling $.cookie().
|
75 |
+
var cookies = document.cookie ? document.cookie.split('; ') : [];
|
76 |
+
|
77 |
+
for (var i = 0, l = cookies.length; i < l; i++) {
|
78 |
+
var parts = cookies[i].split('=');
|
79 |
+
var name = decode(parts.shift());
|
80 |
+
var cookie = parts.join('=');
|
81 |
+
|
82 |
+
if (key && key === name) {
|
83 |
+
result = decodeAndParse(cookie);
|
84 |
+
break;
|
85 |
+
}
|
86 |
+
|
87 |
+
// Prevent storing a cookie that we couldn't decode.
|
88 |
+
if (!key && (cookie = decodeAndParse(cookie)) !== undefined) {
|
89 |
+
result[name] = cookie;
|
90 |
+
}
|
91 |
+
}
|
92 |
+
|
93 |
+
return result;
|
94 |
+
};
|
95 |
+
|
96 |
+
config.defaults = {};
|
97 |
+
|
98 |
+
$.removeCookie = function (key, options) {
|
99 |
+
if ($.cookie(key) !== undefined) {
|
100 |
+
// Must not alter options, thus extending a fresh object...
|
101 |
+
$.cookie(key, '', $.extend({}, options, { expires: -1 }));
|
102 |
+
return true;
|
103 |
+
}
|
104 |
+
return false;
|
105 |
+
};
|
106 |
+
|
107 |
+
}));
|
html/front/aviso.html
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<!-- HTML del pié de página -->
|
2 |
+
<div class="cdp-cookies-alerta {class}">
|
3 |
+
<div class="cdp-cookies-texto">
|
4 |
+
<h4>Uso de cookies</h4>
|
5 |
+
<p>
|
6 |
+
Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra <a href="{enlace_politica}">política de cookies</a>, pinche el enlace para mayor información.
|
7 |
+
</p>
|
8 |
+
</div>
|
9 |
+
</div>
|
html/front/estilos.css
ADDED
@@ -0,0 +1,193 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*============================================
|
2 |
+
General
|
3 |
+
============================================*/
|
4 |
+
.cdp-cookies-alerta {
|
5 |
+
width: 100%;
|
6 |
+
color:#bbbbbb;
|
7 |
+
background-color: #444444;
|
8 |
+
z-index: 10000;
|
9 |
+
}
|
10 |
+
.cdp-cookies-alerta .cdp-cookies-texto {
|
11 |
+
max-width: 960px;
|
12 |
+
margin: 0 auto;
|
13 |
+
padding: 10px 10px 15px 10px;
|
14 |
+
}
|
15 |
+
.cdp-cookies-alerta .cdp-cookies-texto h4 {
|
16 |
+
text-align: center;
|
17 |
+
font-family: Helvetica, Arial, sans-serif;
|
18 |
+
font-size: 14px;
|
19 |
+
font-weight: normal;
|
20 |
+
line-height: 16px;
|
21 |
+
color:#ffffff;
|
22 |
+
padding: 0 0 5px 0;
|
23 |
+
margin: 0;
|
24 |
+
text-rendering: optimizeLegibility;
|
25 |
+
}
|
26 |
+
.cdp-cookies-alerta .cdp-cookies-texto p {
|
27 |
+
padding: 5px 0;
|
28 |
+
margin: 0;
|
29 |
+
text-align: center;
|
30 |
+
color:#bbbbbb;
|
31 |
+
font-family: Helvetica, Arial, sans-serif;
|
32 |
+
font-size: 10px;
|
33 |
+
font-weight: normal;
|
34 |
+
line-height: 11px;
|
35 |
+
text-rendering: optimizeLegibility;
|
36 |
+
}
|
37 |
+
.cdp-cookies-alerta .cdp-cookies-texto a {
|
38 |
+
font-family: Helvetica, Arial, sans-serif;
|
39 |
+
font-size: 10px;
|
40 |
+
font-weight: normal;
|
41 |
+
color: #ff8888;
|
42 |
+
text-decoration: none;
|
43 |
+
border: 0;
|
44 |
+
text-rendering: optimizeLegibility;
|
45 |
+
}
|
46 |
+
.cdp-cookies-alerta .cdp-cookies-texto a:hover,
|
47 |
+
.cdp-cookies-alerta .cdp-cookies-texto a:active,
|
48 |
+
.cdp-cookies-alerta .cdp-cookies-texto a:visited {
|
49 |
+
color: #ffcccc;
|
50 |
+
}
|
51 |
+
|
52 |
+
/*============================================
|
53 |
+
Modo ventana, pos superior
|
54 |
+
============================================*/
|
55 |
+
.cdp-cookies-layout-ventana.cdp-cookies-pos-superior {
|
56 |
+
display: none;
|
57 |
+
position: fixed;
|
58 |
+
top: 0;
|
59 |
+
}
|
60 |
+
|
61 |
+
/*============================================
|
62 |
+
Modo ventana, pos inferior
|
63 |
+
============================================*/
|
64 |
+
.cdp-cookies-layout-ventana.cdp-cookies-pos-inferior {
|
65 |
+
display: none;
|
66 |
+
position: fixed;
|
67 |
+
bottom: 0;
|
68 |
+
}
|
69 |
+
|
70 |
+
/*============================================
|
71 |
+
Modo pagina, pos superior
|
72 |
+
============================================*/
|
73 |
+
.cdp-cookies-layout-pagina.cdp-cookies-pos-superior {
|
74 |
+
}
|
75 |
+
|
76 |
+
/*============================================
|
77 |
+
Modo pagina, pos inferior
|
78 |
+
============================================*/
|
79 |
+
.cdp-cookies-layout-pagina.cdp-cookies-pos-inferior {
|
80 |
+
}
|
81 |
+
|
82 |
+
/*============================================
|
83 |
+
Alineación
|
84 |
+
============================================*/
|
85 |
+
.cdp-cookies-alerta.cdp-cookies-textos-izq .cdp-cookies-texto h4,
|
86 |
+
.cdp-cookies-alerta.cdp-cookies-textos-izq .cdp-cookies-texto p {
|
87 |
+
text-align: left;
|
88 |
+
}
|
89 |
+
|
90 |
+
/*============================================
|
91 |
+
Color gris
|
92 |
+
============================================*/
|
93 |
+
.cdp-cookies-alerta.cdp-cookies-tema-gris {
|
94 |
+
background-color: #444444;
|
95 |
+
}
|
96 |
+
.cdp-cookies-alerta.cdp-cookies-tema-gris .cdp-cookies-texto h4 {
|
97 |
+
color: #ffffff;
|
98 |
+
}
|
99 |
+
.cdp-cookies-alerta.cdp-cookies-tema-gris .cdp-cookies-texto p {
|
100 |
+
color: #bbbbbb;
|
101 |
+
}
|
102 |
+
.cdp-cookies-alerta.cdp-cookies-tema-gris .cdp-cookies-texto a {
|
103 |
+
color: #ff8888 !important;
|
104 |
+
}
|
105 |
+
.cdp-cookies-alerta.cdp-cookies-tema-gris .cdp-cookies-texto a:hover,
|
106 |
+
.cdp-cookies-alerta.cdp-cookies-tema-gris .cdp-cookies-texto a:active,
|
107 |
+
.cdp-cookies-alerta.cdp-cookies-tema-gris .cdp-cookies-texto a:visited {
|
108 |
+
color: #ffcccc !important;
|
109 |
+
}
|
110 |
+
|
111 |
+
/*============================================
|
112 |
+
Color blanco
|
113 |
+
============================================*/
|
114 |
+
.cdp-cookies-alerta.cdp-cookies-tema-blanco {
|
115 |
+
background-color: #ffffff;
|
116 |
+
}
|
117 |
+
.cdp-cookies-alerta.cdp-cookies-tema-blanco .cdp-cookies-texto h4 {
|
118 |
+
color: #666666;
|
119 |
+
}
|
120 |
+
.cdp-cookies-alerta.cdp-cookies-tema-blanco .cdp-cookies-texto p {
|
121 |
+
color: #888888;
|
122 |
+
}
|
123 |
+
.cdp-cookies-alerta.cdp-cookies-tema-blanco .cdp-cookies-texto a {
|
124 |
+
color: #cc8888;
|
125 |
+
}
|
126 |
+
.cdp-cookies-alerta.cdp-cookies-tema-blanco .cdp-cookies-texto a:hover,
|
127 |
+
.cdp-cookies-alerta.cdp-cookies-tema-blanco .cdp-cookies-texto a:active,
|
128 |
+
.cdp-cookies-alerta.cdp-cookies-tema-blanco .cdp-cookies-texto a:visited {
|
129 |
+
color: #eeaaaa;
|
130 |
+
}
|
131 |
+
|
132 |
+
/*============================================
|
133 |
+
Color rojo
|
134 |
+
============================================*/
|
135 |
+
.cdp-cookies-alerta.cdp-cookies-tema-rojo {
|
136 |
+
background-color: #e04729;
|
137 |
+
}
|
138 |
+
.cdp-cookies-alerta.cdp-cookies-tema-rojo .cdp-cookies-texto h4 {
|
139 |
+
color: #ffffff;
|
140 |
+
}
|
141 |
+
.cdp-cookies-alerta.cdp-cookies-tema-rojo .cdp-cookies-texto p {
|
142 |
+
color: #dddddd;
|
143 |
+
}
|
144 |
+
.cdp-cookies-alerta.cdp-cookies-tema-rojo .cdp-cookies-texto a {
|
145 |
+
color: #febebe;
|
146 |
+
}
|
147 |
+
.cdp-cookies-alerta.cdp-cookies-tema-rojo .cdp-cookies-texto a:hover,
|
148 |
+
.cdp-cookies-alerta.cdp-cookies-tema-rojo .cdp-cookies-texto a:active,
|
149 |
+
.cdp-cookies-alerta.cdp-cookies-tema-rojo .cdp-cookies-texto a:visited {
|
150 |
+
color: #ffffff;
|
151 |
+
}
|
152 |
+
|
153 |
+
/*============================================
|
154 |
+
Color azul
|
155 |
+
============================================*/
|
156 |
+
.cdp-cookies-alerta.cdp-cookies-tema-azul {
|
157 |
+
background-color: #5492e0;
|
158 |
+
}
|
159 |
+
.cdp-cookies-alerta.cdp-cookies-tema-azul .cdp-cookies-texto h4 {
|
160 |
+
color: #ffffff;
|
161 |
+
}
|
162 |
+
.cdp-cookies-alerta.cdp-cookies-tema-azul .cdp-cookies-texto p {
|
163 |
+
color: #eeeeee;
|
164 |
+
}
|
165 |
+
.cdp-cookies-alerta.cdp-cookies-tema-azul .cdp-cookies-texto a {
|
166 |
+
color: #b7d7ff;
|
167 |
+
}
|
168 |
+
.cdp-cookies-alerta.cdp-cookies-tema-azul .cdp-cookies-texto a:hover,
|
169 |
+
.cdp-cookies-alerta.cdp-cookies-tema-azul .cdp-cookies-texto a:active,
|
170 |
+
.cdp-cookies-alerta.cdp-cookies-tema-azul .cdp-cookies-texto a:visited {
|
171 |
+
color: #dcebff;
|
172 |
+
}
|
173 |
+
|
174 |
+
/*============================================
|
175 |
+
Color verde
|
176 |
+
============================================*/
|
177 |
+
.cdp-cookies-alerta.cdp-cookies-tema-verde {
|
178 |
+
background-color: #0b7000;
|
179 |
+
}
|
180 |
+
.cdp-cookies-alerta.cdp-cookies-tema-verde .cdp-cookies-texto h4 {
|
181 |
+
color: #ffffff;
|
182 |
+
}
|
183 |
+
.cdp-cookies-alerta.cdp-cookies-tema-verde .cdp-cookies-texto p {
|
184 |
+
color: #dddddd;
|
185 |
+
}
|
186 |
+
.cdp-cookies-alerta.cdp-cookies-tema-verde .cdp-cookies-texto a {
|
187 |
+
color: #75c76c;
|
188 |
+
}
|
189 |
+
.cdp-cookies-alerta.cdp-cookies-tema-verde .cdp-cookies-texto a:hover,
|
190 |
+
.cdp-cookies-alerta.cdp-cookies-tema-verde .cdp-cookies-texto a:active,
|
191 |
+
.cdp-cookies-alerta.cdp-cookies-tema-verde .cdp-cookies-texto a:visited {
|
192 |
+
color: #c4ffbe;
|
193 |
+
}
|
html/front/lib.js
ADDED
@@ -0,0 +1,95 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
|
2 |
+
/* ======================================================================================
|
3 |
+
@author Carlos Doral Pérez (http://webartesanal.com)
|
4 |
+
@version 0.11
|
5 |
+
@copyright Copyright © 2013 Carlos Doral Pérez, All Rights Reserved
|
6 |
+
License: GPLv2 or later
|
7 |
+
====================================================================================== */
|
8 |
+
|
9 |
+
//
|
10 |
+
//
|
11 |
+
//
|
12 |
+
var cdp_cookie = {
|
13 |
+
|
14 |
+
// vars
|
15 |
+
_id_cookie: 'cdp-cookies-plugin-wp',
|
16 |
+
|
17 |
+
// Compruebo si es visitante nuevo si ya existe la cookie
|
18 |
+
ya_existe_cookie: function _ya_existe_cookie() {
|
19 |
+
return jQuery.cookie( cdp_cookie._id_cookie ) == 'cdp';
|
20 |
+
},
|
21 |
+
|
22 |
+
// Guardo cookie
|
23 |
+
poner_cookie: function _poner_cookie() {
|
24 |
+
return jQuery.cookie( cdp_cookie._id_cookie, 'cdp', { expires: 365, path: '/' } );
|
25 |
+
},
|
26 |
+
|
27 |
+
// Elimino cookie
|
28 |
+
eliminar: function _eliminar() {
|
29 |
+
return jQuery.removeCookie( cdp_cookie._id_cookie );
|
30 |
+
},
|
31 |
+
|
32 |
+
// Traigo aviso y lo inserto en el DOM
|
33 |
+
mostrar_aviso: function _mostrar_aviso() {
|
34 |
+
jQuery.post(
|
35 |
+
info.url_admin_ajax,
|
36 |
+
{
|
37 |
+
action: 'traer_aviso'
|
38 |
+
},
|
39 |
+
function( resul ) {
|
40 |
+
if( resul.layout == 'pagina' && resul.posicion == 'inferior' )
|
41 |
+
jQuery( 'body' ).append( resul.html );
|
42 |
+
else
|
43 |
+
jQuery( 'body' ).prepend( resul.html );
|
44 |
+
if( resul.layout == 'ventana' )
|
45 |
+
jQuery( '.cdp-cookies-alerta' ).fadeIn( 1000 );
|
46 |
+
},
|
47 |
+
'json'
|
48 |
+
);
|
49 |
+
},
|
50 |
+
|
51 |
+
// Preparo la query string
|
52 |
+
variables_get: function _variables_get() {
|
53 |
+
var url = window.location.href;
|
54 |
+
var pares = url.slice( url.indexOf( '?' ) + 1 ).split( '&' );
|
55 |
+
var query = {};
|
56 |
+
for ( var i = 0 ; i < pares.length ; i++ ) {
|
57 |
+
var par = pares[i].split( '=' );
|
58 |
+
if( par.length == 1 )
|
59 |
+
query[par[0]] = null;
|
60 |
+
else
|
61 |
+
if( par.length == 2 )
|
62 |
+
query[par[0]] = par[1];
|
63 |
+
}
|
64 |
+
return query;
|
65 |
+
},
|
66 |
+
|
67 |
+
// Indica si hay vista previa
|
68 |
+
hay_vista_previa: function _hay_vista_previa() {
|
69 |
+
return window.location.href.indexOf( '?cdp_cookies_vista_previa=1' ) >= 0;
|
70 |
+
},
|
71 |
+
|
72 |
+
// Traigo aviso en vista previa
|
73 |
+
mostrar_aviso_vista_previa: function _mostrar_aviso_vista_previa() {
|
74 |
+
//
|
75 |
+
var datos = cdp_cookie.variables_get();
|
76 |
+
datos.action = 'traer_aviso';
|
77 |
+
|
78 |
+
//
|
79 |
+
jQuery.post(
|
80 |
+
info.url_admin_ajax,
|
81 |
+
datos,
|
82 |
+
function( resul ) {
|
83 |
+
if( !resul || !resul.html || resul.html == 0 )
|
84 |
+
return;
|
85 |
+
if( resul.layout == 'pagina' && resul.posicion == 'inferior' )
|
86 |
+
jQuery( 'body' ).append( resul.html );
|
87 |
+
else
|
88 |
+
jQuery( 'body' ).prepend( resul.html );
|
89 |
+
if( resul.layout == 'ventana' )
|
90 |
+
jQuery( '.cdp-cookies-alerta' ).fadeIn( 1000 );
|
91 |
+
},
|
92 |
+
'json'
|
93 |
+
);
|
94 |
+
}
|
95 |
+
};
|
html/front/mas-informacion.html
ADDED
@@ -0,0 +1,106 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<h2>¿Qué es una cookie?</h2>
|
2 |
+
<p>
|
3 |
+
Una <em>cookie</em> es un fichero de texto <b>inofensivo</b> que se almacena en su navegador cuando visita casi cualquier página web. La utilidad de la <em>cookie</em> es que la web sea capaz de recordar su visita cuando vuelva a navegar por esa página. Aunque mucha gente no lo sabe las <em>cookies</em> se llevan utilizando desde hace 20 años, cuando aparecieron los primeros navegadores para la World Wide Web.
|
4 |
+
</p>
|
5 |
+
<h2>¿Qué NO ES una cookie?</h2>
|
6 |
+
<p>
|
7 |
+
No es un virus, ni un troyano, ni un gusano, ni spam, ni spyware, ni abre ventanas pop-up.
|
8 |
+
</p>
|
9 |
+
<h2>¿Qué información almacena una <em>cookie</em>?</h2>
|
10 |
+
<p>
|
11 |
+
Las <em>cookies</em> no suelen almacenar información sensible sobre usted, como tarjetas de crédito o datos bancarios, fotografías, su DNI o información personal, etc. Los datos que guardan son de carácter técnico, preferencias personales, personalización de contenidos, etc.
|
12 |
+
</p>
|
13 |
+
<p>
|
14 |
+
El servidor web no le asocia a usted como persona si no a su navegador web. De hecho, si usted navega habitualmente con Internet Explorer y prueba a navegar por la misma web con Firefox o Chrome verá que la web no se da cuenta que es usted la misma persona porque en realidad está asociando al navegador, no a la persona.
|
15 |
+
</p>
|
16 |
+
<h2>¿Qué tipo de <em>cookies</em> existen?</h2>
|
17 |
+
<p>
|
18 |
+
<ul>
|
19 |
+
<li><em>Cookies</em> técnicas: Son las más elementales y permiten, entre otras cosas, saber cuándo está navegando un humano o una aplicación automatizada, cuándo navega un usuario anónimo y uno registrado, tareas básicas para el funcionamiento de cualquier web dinámica.</li>
|
20 |
+
<li><em>Cookies</em> de análisis: Recogen información sobre el tipo de navegación que está realizando, las secciones que más utiliza, productos consultados, franja horaria de uso, idioma, etc.</li>
|
21 |
+
<li><em>Cookies</em> publicitarias: Muestran publicidad en función de su navegación, su país de procedencia, idioma, etc.</li>
|
22 |
+
</ul>
|
23 |
+
</p>
|
24 |
+
<h2>¿Qué son las <em>cookies</em> propias y las de terceros?</h2>
|
25 |
+
<p>
|
26 |
+
Las <em>cookies propias</em> son las generadas por la página que está visitando y las <em>de terceros</em> son las generadas por servicios o proveedores externos como Facebook, Twitter, Google, etc.
|
27 |
+
</p>
|
28 |
+
<h2>¿Qué ocurre si desactivo las <em>cookies</em>?</h2>
|
29 |
+
<p>
|
30 |
+
Para que entienda el alcance que puede tener desactivar las <em>cookies</em> le mostramos unos ejemplos:
|
31 |
+
<ul>
|
32 |
+
<li>No podrá compartir contenidos de esa web en Facebook, Twitter o cualquier otra red social.</li>
|
33 |
+
<li>El sitio web no podrá adaptar los contenidos a sus preferencias personales, como suele ocurrir en las tiendas online.</li>
|
34 |
+
<li>No podrá acceder al área personal de esa web, como por ejemplo <em>Mi cuenta</em>, o <em>Mi perfil</em> o <em>Mis pedidos</em>.</li>
|
35 |
+
<li>Tiendas online: Le será imposible realizar compras online, tendrán que ser telefónicas o visitando la tienda física si es que dispone de ella.</li>
|
36 |
+
<li>No será posible personalizar sus preferencias geográficas como franja horaria, divisa o idioma.</li>
|
37 |
+
<li>El sitio web no podrá realizar analíticas web sobre visitantes y tráfico en la web, lo que dificultará que la web sea competitiva.</li>
|
38 |
+
<li>No podrá escribir en el blog, no podrá subir fotos, publicar comentarios, valorar o puntuar contenidos. La web tampoco podrá saber si usted es un humano o una aplicación automatizada que publica <em>spam</em>.</li>
|
39 |
+
<li>No se podrá mostrar publicidad sectorizada, lo que reducirá los ingresos publicitarios de la web.</li>
|
40 |
+
<li>Todas las redes sociales usan <em>cookies</em>, si las desactiva no podrá utilizar ninguna red social.</li>
|
41 |
+
</ul>
|
42 |
+
</p>
|
43 |
+
<h2>¿Se pueden eliminar las <em>cookies</em>?</h2>
|
44 |
+
<p>
|
45 |
+
Sí. No sólo eliminar, también bloquear, de forma general o particular para un dominio específico.
|
46 |
+
</p>
|
47 |
+
<p>
|
48 |
+
Para eliminar las <em>cookies</em> de un sitio web debe ir a la configuración de su navegador y allí podrá buscar las asociadas al dominio en cuestión y proceder a su eliminación.
|
49 |
+
</p>
|
50 |
+
<h2 id="navegadores">Configuración de <em>cookies</em> para los navegadores más polulares</h2>
|
51 |
+
<p>
|
52 |
+
A continuación le indicamos cómo acceder a una <em>cookie</em> determinada del navegador <b>Chrome</b>. Nota: estos pasos pueden variar en función de la versión del navegador:
|
53 |
+
<ol>
|
54 |
+
<li>Vaya a Configuración o Preferencias mediante el menú Archivo o bien pinchando el icono de personalización que aparece arriba a la derecha.</li>
|
55 |
+
<li>Verá diferentes secciones, pinche la opción <em>Mostrar opciones avanzadas</em>.</li>
|
56 |
+
<li>Vaya a <em>Privacidad</em>, <em>Configuración de contenido</em>.</li>
|
57 |
+
<li>Seleccione <em>Todas las <em>cookies</em> y los datos de sitios</em>.</li>
|
58 |
+
<li>Aparecerá un listado con todas las <em>cookies</em> ordenadas por dominio. Para que le sea más fácil encontrar las <em>cookies</em> de un determinado dominio introduzca parcial o totalmente la dirección en el campo <em>Buscar cookies</em>.</li>
|
59 |
+
<li>Tras realizar este filtro aparecerán en pantalla una o varias líneas con las <em>cookies</em> de la web solicitada. Ahora sólo tiene que seleccionarla y pulsar la <em>X</em> para proceder a su eliminación.</li>
|
60 |
+
</ol>
|
61 |
+
</p>
|
62 |
+
<p>
|
63 |
+
Para acceder a la configuración de <em>cookies</em> del navegador <b>Internet Explorer</b> siga estos pasos (pueden variar en función de la versión del navegador):
|
64 |
+
<ol>
|
65 |
+
<li>Vaya a <em>Herramientas</em>, <em>Opciones de Internet</em></li>
|
66 |
+
<li>Haga click en <em>Privacidad</em>.</li>
|
67 |
+
<li>Mueva el deslizador hasta ajustar el nivel de privacidad que desee.</li>
|
68 |
+
</ol>
|
69 |
+
</p>
|
70 |
+
<p>
|
71 |
+
Para acceder a la configuración de <em>cookies</em> del navegador <b>Firefox</b> siga estos pasos (pueden variar en función de la versión del navegador):
|
72 |
+
<ol>
|
73 |
+
<li>Vaya a <em>Opciones</em> o <em>Preferencias</em> según su sistema operativo.</li>
|
74 |
+
<li>Haga click en <em>Privacidad</em>.</li>
|
75 |
+
<li>En <em>Historial</em> elija <em>Usar una configuración personalizada para el historial</em>.</li>
|
76 |
+
<li>Ahora verá la opción <em>Aceptar cookies</em>, puede activarla o desactivarla según sus preferencias.</li>
|
77 |
+
</ol>
|
78 |
+
</p>
|
79 |
+
<p>
|
80 |
+
Para acceder a la configuración de <em>cookies</em> del navegador <b>Safari para OSX</b> siga estos pasos (pueden variar en función de la versión del navegador):
|
81 |
+
<ol>
|
82 |
+
<li>Vaya a <em>Preferencias</em>, luego <em>Privacidad</em>.</li>
|
83 |
+
<li>En este lugar verá la opción <em>Bloquear cookies</em> para que ajuste el tipo de bloqueo que desea realizar.</li>
|
84 |
+
</ol>
|
85 |
+
</p>
|
86 |
+
<p>
|
87 |
+
Para acceder a la configuración de <em>cookies</em> del navegador <b>Safari para iOS</b> siga estos pasos (pueden variar en función de la versión del navegador):
|
88 |
+
<ol>
|
89 |
+
<li>Vaya a <em>Ajustes</em>, luego <em>Safari</em>.</li>
|
90 |
+
<li>Vaya a <em>Privacidad y Seguridad</em>, verá la opción <em>Bloquear cookies</em> para que ajuste el tipo de bloqueo que desea realizar.</li>
|
91 |
+
</ol>
|
92 |
+
</p>
|
93 |
+
<p>
|
94 |
+
Para acceder a la configuración de <em>cookies</em> del navegador para dispositivos <b>Android</b> siga estos pasos (pueden variar en función de la versión del navegador):
|
95 |
+
<ol>
|
96 |
+
<li>Ejecute el navegador y pulse la tecla <em>Menú</em>, luego <em>Ajustes</em>.</li>
|
97 |
+
<li>Vaya a <em>Seguridad y Privacidad</em>, verá la opción <em>Aceptar cookies</em> para que active o desactive la casilla.</li>
|
98 |
+
</ol>
|
99 |
+
</p>
|
100 |
+
<p>
|
101 |
+
Para acceder a la configuración de <em>cookies</em> del navegador para dispositivos <b>Windows Phone</b> siga estos pasos (pueden variar en función de la versión del navegador):
|
102 |
+
<ol>
|
103 |
+
<li>Abra <em>Internet Explorer</em>, luego <em>Más</em>, luego <em>Configuración</em></li>
|
104 |
+
<li>Ahora puede activar o desactivar la casilla <em>Permitir cookies</em>.</li>
|
105 |
+
</ol>
|
106 |
+
</p>
|
html/front/politica.html
ADDED
@@ -0,0 +1,45 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<h1>Política de cookies</h1>
|
2 |
+
<p>
|
3 |
+
Una <em>cookie</em> es un pequeño fichero de texto que se almacena en su navegador cuando visita casi cualquier página web. Su utilidad es que la web sea capaz de recordar su visita cuando vuelva a navegar por esa página. Las <em>cookies</em> suelen almacenar información de carácter técnico, preferencias personales, personalización de contenidos, estadísticas de uso, enlaces a redes sociales, acceso a cuentas de usuario, etc. El objetivo de la <em>cookie</em> es adaptar el contenido de la web a su perfil y necesidades, sin <em>cookies</em> los servicios ofrecidos por cualquier página se verían mermados notablemente. Si desea consultar más información sobre qué son las <em>cookies</em>, qué almacenan, cómo eliminarlas, desactivarlas, etc., <a href="{enlace_mas_informacion}">le rogamos se dirija a este enlace.</a>
|
4 |
+
</p>
|
5 |
+
<h2>Cookies utilizadas en este sitio web</h2>
|
6 |
+
<p>
|
7 |
+
Siguiendo las directrices de la Agencia Española de Protección de Datos procedemos a detallar el uso de <em>cookies</em> que hace esta web con el fin de informarle con la máxima exactitud posible.
|
8 |
+
</p>
|
9 |
+
<p>
|
10 |
+
Este sitio web utiliza las siguientes <strong>cookies propias</strong>:
|
11 |
+
<ul>
|
12 |
+
<li>Cookies de sesión, para garantizar que los usuarios que escriban comentarios en el blog sean humanos y no aplicaciones automatizadas. De esta forma se combate el <em>spam</em>.</li>
|
13 |
+
</ul>
|
14 |
+
</p>
|
15 |
+
<p>
|
16 |
+
Este sitio web utiliza las siguientes <strong>cookies de terceros</strong>:
|
17 |
+
<ul>
|
18 |
+
<li>Google Analytics: Almacena <em>cookies</em> para poder elaborar estadísticas sobre el tráfico y volumen de visitas de esta web. Al utilizar este sitio web está consintiendo el tratamiento de información acerca de usted por Google. Por tanto, el ejercicio de cualquier derecho en este sentido deberá hacerlo comunicando directamente con Google.</li>
|
19 |
+
<li>Redes sociales: Cada red social utiliza sus propias <em>cookies</em> para que usted pueda pinchar en botones del tipo <em>Me gusta</em> o <em>Compartir</em>.</li>
|
20 |
+
</ul>
|
21 |
+
</p>
|
22 |
+
<h2>Desactivación o eliminación de cookies</h2>
|
23 |
+
<p>
|
24 |
+
En cualquier momento podrá ejercer su derecho de desactivación o eliminación de cookies de este sitio web. Estas acciones se realizan de forma diferente en función del navegador que esté usando. <a href="{enlace_mas_informacion}#navegadores">Aquí le dejamos una guía rápida para los navegadores más populares</a>.
|
25 |
+
</p>
|
26 |
+
<h2>Notas adicionales</h2>
|
27 |
+
<p>
|
28 |
+
<ul>
|
29 |
+
<li>
|
30 |
+
Ni esta web ni sus representantes legales se hacen responsables ni del contenido ni de la veracidad de las políticas de privacidad que puedan tener los terceros mencionados en esta política de <em>cookies</em>.
|
31 |
+
</li>
|
32 |
+
<li>
|
33 |
+
Los navegadores web son las herramientas encargadas de almacenar las <em>cookies</em> y desde este lugar debe efectuar su derecho a eliminación o desactivación de las mismas. Ni esta web ni sus representantes legales pueden garantizar la correcta o incorrecta manipulación de las <em>cookies</em> por parte de los mencionados navegadores.
|
34 |
+
</li>
|
35 |
+
<li>
|
36 |
+
En algunos casos es necesario instalar <em>cookies</em> para que el navegador no olvide su decisión de no aceptación de las mismas.
|
37 |
+
</li>
|
38 |
+
<li>
|
39 |
+
En el caso de las <em>cookies</em> de Google Analytics, esta empresa almacena las <em>cookies</em> en servidores ubicados en Estados Unidos y se compromete a no compartirla con terceros, excepto en los casos en los que sea necesario para el funcionamiento del sistema o cuando la ley obligue a tal efecto. Según Google no guarda su dirección IP. Google Inc. es una compañía adherida al Acuerdo de Puerto Seguro que garantiza que todos los datos transferidos serán tratados con un nivel de protección acorde a la normativa europea. Puede consultar información detallada a este respecto <a href="http://safeharbor.export.gov/companyinfo.aspx?id=16626" target="_blank">en este enlace</a>. Si desea información sobre el uso que Google da a las cookies <a href="https://developers.google.com/analytics/devguides/collection/analyticsjs/cookie-usage?hl=es&csw=1" target="_blank">le adjuntamos este otro enlace</a>.
|
40 |
+
</li>
|
41 |
+
<li>
|
42 |
+
Para cualquier duda o consulta acerca de esta política de <em>cookies</em> no dude en comunicarse con nosotros a través de la sección de contacto.</a>
|
43 |
+
</li>
|
44 |
+
</ul>
|
45 |
+
</p>
|
html/front/principal.js
ADDED
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* ======================================================================================
|
2 |
+
@author Carlos Doral Pérez (http://webartesanal.com)
|
3 |
+
@version 0.11
|
4 |
+
@copyright Copyright © 2013 Carlos Doral Pérez, All Rights Reserved
|
5 |
+
License: GPLv2 or later
|
6 |
+
====================================================================================== */
|
7 |
+
|
8 |
+
//
|
9 |
+
//
|
10 |
+
//
|
11 |
+
jQuery( document ).ready( function( $ )
|
12 |
+
{
|
13 |
+
// Funcionamiento para depuración desde el admin de Wordpress
|
14 |
+
if( cdp_cookie.hay_vista_previa() )
|
15 |
+
{
|
16 |
+
cdp_cookie.mostrar_aviso_vista_previa();
|
17 |
+
return;
|
18 |
+
}
|
19 |
+
|
20 |
+
// Funcionamiento normal del plugin
|
21 |
+
if( cdp_cookie.ya_existe_cookie() )
|
22 |
+
return;
|
23 |
+
cdp_cookie.poner_cookie();
|
24 |
+
cdp_cookie.mostrar_aviso();
|
25 |
+
} );
|
lib/lib.php
ADDED
@@ -0,0 +1,247 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
|
4 |
+
/* ======================================================================================
|
5 |
+
@author Carlos Doral Pérez (http://webartesanal.com)
|
6 |
+
@version 0.11
|
7 |
+
@copyright Copyright © 2013 Carlos Doral Pérez, All Rights Reserved
|
8 |
+
License: GPLv2 or later
|
9 |
+
====================================================================================== */
|
10 |
+
|
11 |
+
/**
|
12 |
+
*
|
13 |
+
*/
|
14 |
+
class cdp_cookies_error extends Exception
|
15 |
+
{
|
16 |
+
}
|
17 |
+
|
18 |
+
/**
|
19 |
+
*
|
20 |
+
*/
|
21 |
+
class cdp_cookies_error_nonce extends cdp_cookies_error
|
22 |
+
{
|
23 |
+
/**
|
24 |
+
*
|
25 |
+
*/
|
26 |
+
function __construct()
|
27 |
+
{
|
28 |
+
parent::__construct( "Se ha producido un error de seguridad en este plugin" );
|
29 |
+
}
|
30 |
+
}
|
31 |
+
|
32 |
+
/**
|
33 |
+
*
|
34 |
+
* Utilidad log
|
35 |
+
*
|
36 |
+
* Actualiz:
|
37 |
+
*
|
38 |
+
* 10-oct-2013 No arroja excepciones si no puede escribir en el archivo
|
39 |
+
* 03-may-2013 Permite objetos en el metodo de array
|
40 |
+
* 15-feb-2013 Adaptación a WP
|
41 |
+
* 18-sep-2012 Cambio en los defines
|
42 |
+
* 04-sep-2012 Renova y convertido a estático
|
43 |
+
* 23-may-2012 Alerta de programación
|
44 |
+
* 15-may-2012 Hora en formato 24h
|
45 |
+
* 09-may-2012 Añado pon_sql
|
46 |
+
* 20-mar-2012
|
47 |
+
*
|
48 |
+
* @copyright Carlos Doral Pérez
|
49 |
+
* @version 0.42
|
50 |
+
* @author Carlos Doral Pérez
|
51 |
+
*
|
52 |
+
*/
|
53 |
+
class cdp_cookies_log
|
54 |
+
{
|
55 |
+
/**
|
56 |
+
*
|
57 |
+
*/
|
58 |
+
static function pon( $texto )
|
59 |
+
{
|
60 |
+
global $config;
|
61 |
+
if( !CDP_COOKIES_LOG_ACTIVO )
|
62 |
+
return;
|
63 |
+
if( ( $fi = @fopen( CDP_COOKIES_ARCHIVO_LOG, 'a' ) ) === false )
|
64 |
+
{
|
65 |
+
if( !@chmod( CDP_COOKIES_ARCHIVO_LOG, 0777 ) )
|
66 |
+
return;
|
67 |
+
if( ( $fi = @fopen( CDP_COOKIES_ARCHIVO_LOG, 'a' ) ) === false )
|
68 |
+
return;
|
69 |
+
}
|
70 |
+
fwrite( $fi, '[' . date( 'Y-m-d H:i:s' ) . '] ' . $texto . "\n" );
|
71 |
+
fclose( $fi );
|
72 |
+
}
|
73 |
+
|
74 |
+
/**
|
75 |
+
* Logea valores de un array asociativo
|
76 |
+
*/
|
77 |
+
static function pon_array( $array, $titulo )
|
78 |
+
{
|
79 |
+
if( is_object( $array ) )
|
80 |
+
$array = ( array )$array;
|
81 |
+
$str = "//\n// ARRAY $titulo\n";
|
82 |
+
if( is_array( $array ) && count( $array ) > 0 )
|
83 |
+
{
|
84 |
+
foreach( $array as $k => $v )
|
85 |
+
$str .= "[$k] = $v\n";
|
86 |
+
}
|
87 |
+
else
|
88 |
+
{
|
89 |
+
$str .= "-ninguno-\n";
|
90 |
+
}
|
91 |
+
self::pon( $str );
|
92 |
+
}
|
93 |
+
|
94 |
+
/**
|
95 |
+
* Logea el array $_POST
|
96 |
+
*/
|
97 |
+
static function post()
|
98 |
+
{
|
99 |
+
self::pon_array( isset( $_POST ) ? $_POST : null, 'POST' );
|
100 |
+
}
|
101 |
+
|
102 |
+
/**
|
103 |
+
* Logea el array $_GET
|
104 |
+
*/
|
105 |
+
static function get()
|
106 |
+
{
|
107 |
+
self::pon_array( isset( $_GET ) ? $_GET : null, 'GET' );
|
108 |
+
}
|
109 |
+
}
|
110 |
+
|
111 |
+
/**
|
112 |
+
*
|
113 |
+
* Utilidad para dibujar fragmentos HTML
|
114 |
+
*
|
115 |
+
* Creada: 18-jun-2013
|
116 |
+
*
|
117 |
+
* Modif:
|
118 |
+
*
|
119 |
+
* @copyright Carlos Doral Pérez
|
120 |
+
* @version 0.1
|
121 |
+
* @author Carlos Doral Pérez
|
122 |
+
*
|
123 |
+
*/
|
124 |
+
class cdp_cookies_html
|
125 |
+
{
|
126 |
+
/**
|
127 |
+
*
|
128 |
+
*/
|
129 |
+
static function tags( $atributos = null )
|
130 |
+
{
|
131 |
+
if( $atributos == null )
|
132 |
+
$atributos = array();
|
133 |
+
$tags = '';
|
134 |
+
foreach( $atributos as $k => $v )
|
135 |
+
{
|
136 |
+
if( ( trim( $k ) == 'style' ) && is_array( $v ) )
|
137 |
+
{
|
138 |
+
$t = array();
|
139 |
+
foreach( $v as $a => $b )
|
140 |
+
$t[] = "$a:$b";
|
141 |
+
$v = implode( ';', $t );
|
142 |
+
}
|
143 |
+
$tags .= " $k=\"$v\"";
|
144 |
+
}
|
145 |
+
return $tags;
|
146 |
+
}
|
147 |
+
|
148 |
+
/**
|
149 |
+
*
|
150 |
+
*/
|
151 |
+
static function select
|
152 |
+
(
|
153 |
+
$nombre_post,
|
154 |
+
array $items,
|
155 |
+
$es_asoc,
|
156 |
+
$valor_seleccionado,
|
157 |
+
$atributos = null
|
158 |
+
)
|
159 |
+
{
|
160 |
+
$options = '';
|
161 |
+
foreach( $items as $k => $v )
|
162 |
+
{
|
163 |
+
if( !$es_asoc )
|
164 |
+
$v = $k;
|
165 |
+
$selected = $valor_seleccionado == $k ? ' selected' : '';
|
166 |
+
$options .= "<option value=\"$k\"$selected>$v</option>";
|
167 |
+
}
|
168 |
+
$tags = self::tags( $atributos );
|
169 |
+
return
|
170 |
+
"<select id=\"$nombre_post\" name=\"$nombre_post\" $tags>" .
|
171 |
+
$options .
|
172 |
+
"</select>";
|
173 |
+
}
|
174 |
+
}
|
175 |
+
|
176 |
+
/**
|
177 |
+
*
|
178 |
+
* Creada : 13-jun-13
|
179 |
+
*
|
180 |
+
* Modificada
|
181 |
+
* : 10-oct-13 Nuevos métodos
|
182 |
+
* : 14-jun-13
|
183 |
+
*
|
184 |
+
* Versión : 0.13
|
185 |
+
*
|
186 |
+
*/
|
187 |
+
class cdp_cookies_input
|
188 |
+
{
|
189 |
+
/**
|
190 |
+
*
|
191 |
+
*/
|
192 |
+
static function get( $nombre_var, $valor_sino_existe = null )
|
193 |
+
{
|
194 |
+
if( isset( $_GET ) && isset( $_GET[$nombre_var] ) )
|
195 |
+
return $_GET[$nombre_var];
|
196 |
+
return $valor_sino_existe;
|
197 |
+
}
|
198 |
+
|
199 |
+
/**
|
200 |
+
*
|
201 |
+
*/
|
202 |
+
static function post( $nombre_var, $valor_sino_existe = null )
|
203 |
+
{
|
204 |
+
if( isset( $_POST ) && isset( $_POST[$nombre_var] ) )
|
205 |
+
return $_POST[$nombre_var];
|
206 |
+
return $valor_sino_existe;
|
207 |
+
}
|
208 |
+
|
209 |
+
/**
|
210 |
+
*
|
211 |
+
*/
|
212 |
+
static function objeto_post( $lista_vars )
|
213 |
+
{
|
214 |
+
$obj = new stdClass();
|
215 |
+
foreach( $lista_vars as $var )
|
216 |
+
$obj->$var = self::post( $var );
|
217 |
+
return $obj;
|
218 |
+
}
|
219 |
+
|
220 |
+
/**
|
221 |
+
*
|
222 |
+
*/
|
223 |
+
static function validar_array( $nombre_var, $array, $filtrar_previamente = true )
|
224 |
+
{
|
225 |
+
if( !isset( $_POST[$nombre_var] ) )
|
226 |
+
throw new cdp_cookies_error( sprintf( __( "Se requiere un valor para %s" ), $nombre_var ) );
|
227 |
+
if( $filtrar_previamente )
|
228 |
+
$_POST[$nombre_var] = sanitize_text_field( $_POST[$nombre_var] );
|
229 |
+
if( !in_array( $_POST[$nombre_var], $array ) )
|
230 |
+
throw new cdp_cookies_error( sprintf( __( "Valor incorrecto para la lista %s" ), $nombre_var ) );
|
231 |
+
}
|
232 |
+
|
233 |
+
/**
|
234 |
+
*
|
235 |
+
*/
|
236 |
+
static function validar_url( $nombre_var, $filtrar_previamente = true )
|
237 |
+
{
|
238 |
+
if( !isset( $_POST[$nombre_var] ) )
|
239 |
+
throw new cdp_cookies_error( sprintf( __( "Se requiere un valor para %s" ), $nombre_var ) );
|
240 |
+
if( $filtrar_previamente )
|
241 |
+
$_POST[$nombre_var] = sanitize_text_field( $_POST[$nombre_var] );
|
242 |
+
if( !preg_match( '|^http(s?)://|i', $_POST[$nombre_var] ) )
|
243 |
+
throw new cdp_cookies_error( sprintf( __( "Valor incorrecto para la url %s" ), $nombre_var ) );
|
244 |
+
}
|
245 |
+
}
|
246 |
+
|
247 |
+
?>
|
lib/plugin.php
ADDED
@@ -0,0 +1,732 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/* ======================================================================================
|
4 |
+
@author Carlos Doral Pérez (http://webartesanal.com)
|
5 |
+
@version 0.11
|
6 |
+
@copyright Copyright © 2013 Carlos Doral Pérez, All Rights Reserved
|
7 |
+
License: GPLv2 or later
|
8 |
+
====================================================================================== */
|
9 |
+
|
10 |
+
/**
|
11 |
+
*
|
12 |
+
*/
|
13 |
+
class cdp_cookies
|
14 |
+
{
|
15 |
+
/**
|
16 |
+
*
|
17 |
+
*/
|
18 |
+
static function ejecutar()
|
19 |
+
{
|
20 |
+
//
|
21 |
+
// Plugin no puede ser ejecutado directamente
|
22 |
+
//
|
23 |
+
if( !( function_exists( 'add_action' ) && defined( 'ABSPATH' ) ) )
|
24 |
+
throw new cdp_cookies_error( 'Este plugin no puede ser llamado directamente' );
|
25 |
+
|
26 |
+
//
|
27 |
+
// Registro eventos front
|
28 |
+
//
|
29 |
+
add_action( 'wp_ajax_traer_aviso', array( __CLASS__, 'ajax_traer_aviso' ) );
|
30 |
+
add_action( 'wp_ajax_nopriv_traer_aviso', array( __CLASS__, 'ajax_traer_aviso' ) );
|
31 |
+
add_action( 'wp_ajax_traer_aviso_get', array( __CLASS__, 'ajax_traer_aviso_get' ) );
|
32 |
+
add_action( 'wp_ajax_nopriv_traer_aviso_get', array( __CLASS__, 'ajax_traer_aviso_get' ) );
|
33 |
+
|
34 |
+
//
|
35 |
+
// Ejecutando Admin
|
36 |
+
//
|
37 |
+
if( is_admin() )
|
38 |
+
{
|
39 |
+
add_action( 'admin_menu', array( __CLASS__, 'crear_menu_admin' ) );
|
40 |
+
add_action( 'admin_enqueue_scripts', array( __CLASS__, 'cargar_archivos_admin' ) );
|
41 |
+
add_action( 'wp_ajax_guardar_config', array( __CLASS__, 'ajax_guardar_config' ) );
|
42 |
+
add_action( 'wp_ajax_crear_paginas', array( __CLASS__, 'ajax_crear_paginas' ) );
|
43 |
+
return;
|
44 |
+
}
|
45 |
+
|
46 |
+
//
|
47 |
+
// Ejecutando front
|
48 |
+
//
|
49 |
+
add_action( 'wp_enqueue_scripts', array( __CLASS__, 'cargar_archivos_front' ) );
|
50 |
+
}
|
51 |
+
|
52 |
+
/**
|
53 |
+
*
|
54 |
+
*/
|
55 |
+
static function cargar_archivos_front()
|
56 |
+
{
|
57 |
+
wp_enqueue_style( 'front/estilos', CDP_COOKIES_URL_HTML . 'front/estilos.css', false );
|
58 |
+
wp_enqueue_script( 'front/cookie', CDP_COOKIES_URL_HTML . 'front/_jquery.kookie.js', array( 'jquery' ) );
|
59 |
+
wp_enqueue_script( 'front/lib', CDP_COOKIES_URL_HTML . 'front/lib.js', array( 'jquery' ) );
|
60 |
+
wp_enqueue_script( 'front/principal', CDP_COOKIES_URL_HTML . 'front/principal.js', array( 'jquery' ) );
|
61 |
+
wp_localize_script
|
62 |
+
(
|
63 |
+
'front/principal',
|
64 |
+
'info',
|
65 |
+
array
|
66 |
+
(
|
67 |
+
'url_plugin' => CDP_COOKIES_URL_RAIZ . 'plugin.php',
|
68 |
+
'url_admin_ajax' => admin_url() . 'admin-ajax.php'
|
69 |
+
)
|
70 |
+
);
|
71 |
+
}
|
72 |
+
|
73 |
+
/**
|
74 |
+
*
|
75 |
+
*/
|
76 |
+
static function ajax_traer_aviso()
|
77 |
+
{
|
78 |
+
//
|
79 |
+
// Posicionamiento en ventana o página
|
80 |
+
//
|
81 |
+
$class = '';
|
82 |
+
if( self::parametro( 'layout' ) == 'ventana' )
|
83 |
+
$class .= ' cdp-cookies-layout-ventana';
|
84 |
+
else
|
85 |
+
$class .= ' cdp-cookies-layout-pagina';
|
86 |
+
|
87 |
+
//
|
88 |
+
// Posición: superior, inferior
|
89 |
+
//
|
90 |
+
$class .= ' cdp-cookies-pos-' . self::parametro( 'posicion' );
|
91 |
+
|
92 |
+
//
|
93 |
+
// Alineación de los textos
|
94 |
+
//
|
95 |
+
if( self::parametro( 'alineacion' ) == 'izq' )
|
96 |
+
$class .= ' cdp-cookies-textos-izq';
|
97 |
+
|
98 |
+
//
|
99 |
+
// Tema de color
|
100 |
+
//
|
101 |
+
$class .= ' cdp-cookies-tema-' . self::parametro( 'tema' );
|
102 |
+
|
103 |
+
//
|
104 |
+
// Obtengo el archivo con el texto
|
105 |
+
//
|
106 |
+
$html = file_get_contents( CDP_COOKIES_DIR_HTML . 'front/aviso.html' );
|
107 |
+
$html = str_replace( '{class}', $class, $html );
|
108 |
+
$html = str_replace( '{enlace_politica}', self::parametro( 'enlace_politica' ), $html );
|
109 |
+
echo
|
110 |
+
json_encode
|
111 |
+
(
|
112 |
+
array
|
113 |
+
(
|
114 |
+
'html' => $html,
|
115 |
+
'posicion' => self::parametro( 'posicion' ),
|
116 |
+
'layout' => self::parametro( 'layout' )
|
117 |
+
)
|
118 |
+
);
|
119 |
+
exit;
|
120 |
+
}
|
121 |
+
|
122 |
+
/**
|
123 |
+
*
|
124 |
+
*/
|
125 |
+
static function ajax_crear_paginas()
|
126 |
+
{
|
127 |
+
try
|
128 |
+
{
|
129 |
+
//
|
130 |
+
self::comprobar_usuario_admin();
|
131 |
+
|
132 |
+
//
|
133 |
+
if( !wp_verify_nonce( cdp_cookies_input::post( 'nonce_crear_paginas' ), 'crear_paginas' ) )
|
134 |
+
throw new cdp_cookies_error_nonce();
|
135 |
+
|
136 |
+
// Pág. mas info
|
137 |
+
$pag_info = new cdp_cookies_pagina();
|
138 |
+
$pag_info->titulo = 'Más información sobre las cookies';
|
139 |
+
$pag_info->html = file_get_contents( CDP_COOKIES_DIR_HTML . 'front/mas-informacion.html' );
|
140 |
+
if( !$pag_info->crear() )
|
141 |
+
throw new cdp_cookies_error( $pag_info->mensaje );
|
142 |
+
|
143 |
+
// importante! Guardo la url de la página info que será usada por la política
|
144 |
+
self::parametro( 'enlace_mas_informacion', $pag_info->url );
|
145 |
+
|
146 |
+
// Pág. política
|
147 |
+
$pag_pol = new cdp_cookies_pagina();
|
148 |
+
$pag_pol->titulo = 'Política de cookies';
|
149 |
+
$pag_pol->html =
|
150 |
+
str_replace
|
151 |
+
(
|
152 |
+
'{enlace_mas_informacion}',
|
153 |
+
self::parametro( 'enlace_mas_informacion' ),
|
154 |
+
file_get_contents( CDP_COOKIES_DIR_HTML . 'front/politica.html' )
|
155 |
+
);
|
156 |
+
if( !$pag_pol->crear() )
|
157 |
+
throw new cdp_cookies_error( $pag_pol->mensaje );
|
158 |
+
|
159 |
+
// Todo ok!
|
160 |
+
$resul = array( 'ok' => true, 'url_info' => $pag_info->url, 'url_politica' => $pag_pol->url );
|
161 |
+
if( $pag_pol->ya_existia || $pag_info->ya_existia )
|
162 |
+
$resul['txt'] = 'Alguna de las página ya existía y no ha sido necesario crearla';
|
163 |
+
else
|
164 |
+
$resul['txt'] = 'Páginas creadas correctamente';
|
165 |
+
echo json_encode( $resul );
|
166 |
+
}
|
167 |
+
catch( Exception $e )
|
168 |
+
{
|
169 |
+
cdp_cookies_log::pon( $e );
|
170 |
+
echo json_encode( array( 'ok' => false, 'txt' => $e->getMessage() ) );
|
171 |
+
}
|
172 |
+
exit;
|
173 |
+
}
|
174 |
+
|
175 |
+
/**
|
176 |
+
*
|
177 |
+
*/
|
178 |
+
static function ajax_guardar_config()
|
179 |
+
{
|
180 |
+
cdp_cookies_log::pon( "paso1" );
|
181 |
+
try
|
182 |
+
{
|
183 |
+
cdp_cookies_log::pon( "paso2" );
|
184 |
+
//
|
185 |
+
self::comprobar_usuario_admin();
|
186 |
+
cdp_cookies_log::pon( "paso3" );
|
187 |
+
|
188 |
+
//
|
189 |
+
if( !wp_verify_nonce( cdp_cookies_input::post( 'nonce_guardar' ), 'guardar' ) )
|
190 |
+
throw new cdp_cookies_error_nonce();
|
191 |
+
|
192 |
+
//
|
193 |
+
cdp_cookies_input::validar_array( 'layout', array( 'ventana', 'pagina' ) );
|
194 |
+
cdp_cookies_input::validar_array( 'posicion', array( 'superior', 'inferior' ) );
|
195 |
+
cdp_cookies_input::validar_array( 'alineacion', array( 'izq', 'cen' ) );
|
196 |
+
cdp_cookies_input::validar_array( 'tema', array( 'gris', 'blanco', 'azul', 'verde', 'rojo' ) );
|
197 |
+
cdp_cookies_input::validar_url( 'enlace_politica' );
|
198 |
+
cdp_cookies_input::validar_url( 'enlace_mas_informacion' );
|
199 |
+
|
200 |
+
//
|
201 |
+
self::parametro( 'layout', cdp_cookies_input::post( 'layout' ) );
|
202 |
+
self::parametro( 'posicion', cdp_cookies_input::post( 'posicion' ) );
|
203 |
+
self::parametro( 'alineacion', cdp_cookies_input::post( 'alineacion' ) );
|
204 |
+
self::parametro( 'tema', cdp_cookies_input::post( 'tema' ) );
|
205 |
+
self::parametro( 'enlace_politica', cdp_cookies_input::post( 'enlace_politica' ) );
|
206 |
+
self::parametro( 'enlace_mas_informacion', cdp_cookies_input::post( 'enlace_mas_informacion' ) );
|
207 |
+
|
208 |
+
//
|
209 |
+
echo json_encode( array( 'ok' => true, 'txt' => 'Configuración guardada correctamente' ) );
|
210 |
+
}
|
211 |
+
catch( Exception $e )
|
212 |
+
{
|
213 |
+
cdp_cookies_log::pon( $e );
|
214 |
+
echo json_encode( array( 'ok' => false, 'txt' => $e->getMessage() ) );
|
215 |
+
}
|
216 |
+
exit;
|
217 |
+
}
|
218 |
+
|
219 |
+
/**
|
220 |
+
*
|
221 |
+
*/
|
222 |
+
static function parametro( $nombre, $valor = null )
|
223 |
+
{
|
224 |
+
//
|
225 |
+
$vdef =
|
226 |
+
array
|
227 |
+
(
|
228 |
+
'layout' => 'ventana',
|
229 |
+
'posicion' => 'superior',
|
230 |
+
'alineacion' => 'izq',
|
231 |
+
'tema' => 'gris',
|
232 |
+
'enlace_politica' => '#',
|
233 |
+
'enlace_mas_informacion' => '#'
|
234 |
+
);
|
235 |
+
if( !key_exists( $nombre, $vdef ) )
|
236 |
+
throw new cdp_cookies_error( sprintf( "Parámetro desconocido: %s", $nombre ) );
|
237 |
+
|
238 |
+
// Devuelvo valor
|
239 |
+
if( $valor === null )
|
240 |
+
{
|
241 |
+
// Hago una excepción si estoy mostrando el aviso en vista previa
|
242 |
+
if( cdp_cookies_input::post( 'cdp_cookies_vista_previa' ) )
|
243 |
+
if( ( $v = cdp_cookies_input::post( $nombre ) ) )
|
244 |
+
{
|
245 |
+
// Antes de devolver el valor me aseguro que soy el usuario administrador
|
246 |
+
try
|
247 |
+
{
|
248 |
+
self::comprobar_usuario_admin();
|
249 |
+
return $v;
|
250 |
+
}
|
251 |
+
catch( cdp_cookies_error $e )
|
252 |
+
{
|
253 |
+
}
|
254 |
+
}
|
255 |
+
return get_option( 'cdp_cookies_' . $nombre, $vdef[$nombre] );
|
256 |
+
}
|
257 |
+
|
258 |
+
// Lo almaceno
|
259 |
+
update_option( 'cdp_cookies_' . $nombre, $valor );
|
260 |
+
}
|
261 |
+
|
262 |
+
/**
|
263 |
+
*
|
264 |
+
*/
|
265 |
+
static function cargar_archivos_admin()
|
266 |
+
{
|
267 |
+
wp_enqueue_style( 'admin/estilos', CDP_COOKIES_URL_HTML . 'admin/estilos.css', false );
|
268 |
+
wp_register_script( 'admin/principal', CDP_COOKIES_URL_HTML . 'admin/principal.js', array( 'jquery' ) );
|
269 |
+
wp_enqueue_script( 'admin/principal' );
|
270 |
+
wp_localize_script(
|
271 |
+
'admin/principal',
|
272 |
+
'info',
|
273 |
+
array
|
274 |
+
(
|
275 |
+
'nonce_guardar' => wp_create_nonce( 'guardar' ),
|
276 |
+
'nonce_crear_paginas' => wp_create_nonce( 'crear_paginas' ),
|
277 |
+
'siteurl' => site_url()
|
278 |
+
)
|
279 |
+
);
|
280 |
+
}
|
281 |
+
|
282 |
+
/**
|
283 |
+
*
|
284 |
+
*/
|
285 |
+
static function comprobar_usuario_admin()
|
286 |
+
{
|
287 |
+
if( !current_user_can( 'manage_options' ) )
|
288 |
+
throw new cdp_cookies_error( 'No tiene privilegios para acceder a esta página' );
|
289 |
+
}
|
290 |
+
|
291 |
+
/**
|
292 |
+
*
|
293 |
+
*/
|
294 |
+
static function crear_menu_admin()
|
295 |
+
{
|
296 |
+
//
|
297 |
+
self::comprobar_usuario_admin();
|
298 |
+
|
299 |
+
//
|
300 |
+
// Página configuración que cuelgue de Herramientas
|
301 |
+
//
|
302 |
+
add_submenu_page
|
303 |
+
(
|
304 |
+
'tools.php',
|
305 |
+
'Asesor de cookies',
|
306 |
+
'Asesor de cookies',
|
307 |
+
'manage_options',
|
308 |
+
'cdp_cookies',
|
309 |
+
array( __CLASS__, 'pag_configuracion' )
|
310 |
+
);
|
311 |
+
}
|
312 |
+
|
313 |
+
/**
|
314 |
+
*
|
315 |
+
*/
|
316 |
+
static function pag_configuracion()
|
317 |
+
{
|
318 |
+
require_once CDP_COOKIES_DIR_HTML . 'admin/principal.html';
|
319 |
+
}
|
320 |
+
}
|
321 |
+
|
322 |
+
/**
|
323 |
+
*
|
324 |
+
*/
|
325 |
+
class __cdp_cookies
|
326 |
+
{
|
327 |
+
/**
|
328 |
+
*
|
329 |
+
*/
|
330 |
+
static function ejecutar()
|
331 |
+
{
|
332 |
+
//
|
333 |
+
// Plugin no puede ser ejecutado directamente
|
334 |
+
//
|
335 |
+
if( !( function_exists( 'add_action' ) && defined( 'ABSPATH' ) ) )
|
336 |
+
throw new cdp_cookies_error( 'Este plugin no puede ser llamado directamente' );
|
337 |
+
|
338 |
+
//
|
339 |
+
// Para que funcionen correctamente las cookies
|
340 |
+
//
|
341 |
+
add_action( 'init', array( __CLASS__, 'iniciar_sesion' ) );
|
342 |
+
|
343 |
+
//
|
344 |
+
// Compruebo si estoy en el admin o en el front
|
345 |
+
//
|
346 |
+
if( is_admin() )
|
347 |
+
{
|
348 |
+
//
|
349 |
+
// Estoy en el área administración
|
350 |
+
//
|
351 |
+
add_action( 'admin_menu', array( __CLASS__, 'crear_menu_admin' ) );
|
352 |
+
add_action( 'admin_enqueue_scripts', array( __CLASS__, 'cargar_archivos_admin' ) );
|
353 |
+
add_action( 'wp_ajax_guardar_config', array( __CLASS__, 'ajax_guardar_config' ) );
|
354 |
+
return;
|
355 |
+
}
|
356 |
+
|
357 |
+
//
|
358 |
+
// Estoy en el front de la web
|
359 |
+
//
|
360 |
+
|
361 |
+
//
|
362 |
+
// ojo! para debug
|
363 |
+
//
|
364 |
+
if( 0 )
|
365 |
+
self::eliminar_cookie();
|
366 |
+
|
367 |
+
//
|
368 |
+
// Shortcode para mostrar la política de privacidad completa
|
369 |
+
//
|
370 |
+
add_shortcode( 'mostrar_politica_cookies', array( __CLASS__, 'dibujar_politica' ) );
|
371 |
+
|
372 |
+
//
|
373 |
+
// Shortcode para mostrar información adicional sobre las cookies
|
374 |
+
//
|
375 |
+
add_shortcode( 'mostrar_mas_info_cookies', array( __CLASS__, 'dibujar_mas_informacion' ) );
|
376 |
+
|
377 |
+
//
|
378 |
+
// Vista previa de cookies
|
379 |
+
//
|
380 |
+
if( cdp_cookies_input::get( 'cdp_cookies_vista_previa' ) )
|
381 |
+
{
|
382 |
+
add_action( 'wp_footer', array( __CLASS__, 'dibujar_aviso' ) );
|
383 |
+
add_action( 'wp_enqueue_scripts', array( __CLASS__, 'cargar_archivos_front' ) );
|
384 |
+
return;
|
385 |
+
}
|
386 |
+
|
387 |
+
//
|
388 |
+
// Si ya se ha mostrado el aviso
|
389 |
+
//
|
390 |
+
if( self::hay_cookie_guardada() )
|
391 |
+
return;
|
392 |
+
|
393 |
+
//
|
394 |
+
// Activo eventos front
|
395 |
+
//
|
396 |
+
add_action( 'init', array( __CLASS__, 'guardar_cookie' ) );
|
397 |
+
add_action( 'wp_footer', array( __CLASS__, 'dibujar_aviso' ) );
|
398 |
+
add_action( 'wp_enqueue_scripts', array( __CLASS__, 'cargar_archivos_front' ) );
|
399 |
+
}
|
400 |
+
|
401 |
+
/**
|
402 |
+
*
|
403 |
+
*/
|
404 |
+
static function iniciar_sesion()
|
405 |
+
{
|
406 |
+
if( !session_id() )
|
407 |
+
session_start();
|
408 |
+
}
|
409 |
+
|
410 |
+
/**
|
411 |
+
*
|
412 |
+
*/
|
413 |
+
static function hay_cookie_guardada()
|
414 |
+
{
|
415 |
+
return
|
416 |
+
isset( $_COOKIE ) &&
|
417 |
+
isset( $_COOKIE['cdp_cookies_wordpress_plugin'] ) &&
|
418 |
+
$_COOKIE['cdp_cookies_wordpress_plugin'] == 1;
|
419 |
+
}
|
420 |
+
|
421 |
+
/**
|
422 |
+
*
|
423 |
+
*/
|
424 |
+
static function guardar_cookie()
|
425 |
+
{
|
426 |
+
setcookie
|
427 |
+
(
|
428 |
+
'cdp_cookies_wordpress_plugin',
|
429 |
+
'1',
|
430 |
+
time() + 60 * 60 * 24 * 30 * 12 * 100
|
431 |
+
);
|
432 |
+
}
|
433 |
+
|
434 |
+
/**
|
435 |
+
*
|
436 |
+
*/
|
437 |
+
private static function eliminar_cookie()
|
438 |
+
{
|
439 |
+
setcookie
|
440 |
+
(
|
441 |
+
'cdp_cookies_wordpress_plugin',
|
442 |
+
'0',
|
443 |
+
time() - 10000
|
444 |
+
);
|
445 |
+
}
|
446 |
+
|
447 |
+
/**
|
448 |
+
*
|
449 |
+
*/
|
450 |
+
static function parametro( $nombre, $valor = null )
|
451 |
+
{
|
452 |
+
//
|
453 |
+
$vdef =
|
454 |
+
array(
|
455 |
+
'layout' => 'ventana',
|
456 |
+
'posicion' => 'superior',
|
457 |
+
'alineacion' => 'izq',
|
458 |
+
'tema' => 'gris',
|
459 |
+
'enlace_politica' => '#',
|
460 |
+
'enlace_mas_informacion' => '#'
|
461 |
+
);
|
462 |
+
if( !key_exists( $nombre, $vdef ) )
|
463 |
+
throw new cdp_cookies_error( sprintf( "Parámetro desconocido: %s", $nombre ) );
|
464 |
+
|
465 |
+
// Devuelvo valor
|
466 |
+
if( $valor === null )
|
467 |
+
{
|
468 |
+
// Hago una excepción si estoy mostrando el aviso en vista previa
|
469 |
+
if( cdp_cookies_input::get( 'cdp_cookies_vista_previa' ) )
|
470 |
+
if( ( $v = cdp_cookies_input::get( $nombre ) ) )
|
471 |
+
{
|
472 |
+
// Antes de devolver el valor me aseguro que soy el usuario administrador
|
473 |
+
try
|
474 |
+
{
|
475 |
+
self::comprobar_usuario_admin();
|
476 |
+
return $v;
|
477 |
+
}
|
478 |
+
catch( cdp_cookies_error $e )
|
479 |
+
{
|
480 |
+
}
|
481 |
+
}
|
482 |
+
return get_option( 'cdp_cookies_' . $nombre, $vdef[$nombre] );
|
483 |
+
}
|
484 |
+
|
485 |
+
// Lo almaceno
|
486 |
+
update_option( 'cdp_cookies_' . $nombre, $valor );
|
487 |
+
}
|
488 |
+
|
489 |
+
/**
|
490 |
+
*
|
491 |
+
*/
|
492 |
+
static function comprobar_usuario_admin()
|
493 |
+
{
|
494 |
+
if( !current_user_can( 'manage_options' ) )
|
495 |
+
throw new cdp_cookies_error( 'No tiene privilegios para acceder a esta página' );
|
496 |
+
}
|
497 |
+
|
498 |
+
/**
|
499 |
+
*
|
500 |
+
*/
|
501 |
+
static function crear_menu_admin()
|
502 |
+
{
|
503 |
+
//
|
504 |
+
self::comprobar_usuario_admin();
|
505 |
+
|
506 |
+
//
|
507 |
+
// Página configuración que cuelgue de Herramientas
|
508 |
+
//
|
509 |
+
add_submenu_page
|
510 |
+
(
|
511 |
+
'tools.php',
|
512 |
+
'Asesor de cookies',
|
513 |
+
'Asesor de cookies',
|
514 |
+
'manage_options',
|
515 |
+
'cdp_cookies',
|
516 |
+
array( __CLASS__, 'pag_configuracion' )
|
517 |
+
);
|
518 |
+
}
|
519 |
+
|
520 |
+
/**
|
521 |
+
*
|
522 |
+
*/
|
523 |
+
static function cargar_archivos_front()
|
524 |
+
{
|
525 |
+
wp_enqueue_style( 'estilos', CDP_COOKIES_URL_HTML . 'estilos.css', false );
|
526 |
+
wp_enqueue_script( 'main', CDP_COOKIES_URL_HTML . 'main.js', array( 'jquery' ) );
|
527 |
+
}
|
528 |
+
|
529 |
+
/**
|
530 |
+
*
|
531 |
+
*/
|
532 |
+
static function cargar_archivos_admin()
|
533 |
+
{
|
534 |
+
wp_enqueue_style( 'estilos-admin', CDP_COOKIES_URL_HTML . 'estilos-admin.css', false );
|
535 |
+
wp_register_script( 'main-admin', CDP_COOKIES_URL_HTML . 'main-admin.js', array( 'jquery' ) );
|
536 |
+
wp_enqueue_script( 'main-admin' );
|
537 |
+
wp_localize_script(
|
538 |
+
'main-admin',
|
539 |
+
'info',
|
540 |
+
array(
|
541 |
+
'url_admin' => CDP_COOKIES_URL_RAIZ . 'plugin.php',
|
542 |
+
'siteurl' => site_url(),
|
543 |
+
'nonce_guardar' => wp_create_nonce( 'guardar' )
|
544 |
+
) );
|
545 |
+
}
|
546 |
+
|
547 |
+
/**
|
548 |
+
*
|
549 |
+
*/
|
550 |
+
static function dibujar_aviso()
|
551 |
+
{
|
552 |
+
//
|
553 |
+
// Posicionamiento en ventana o página
|
554 |
+
//
|
555 |
+
$class = '';
|
556 |
+
if( self::parametro( 'layout' ) == 'ventana' )
|
557 |
+
$class .= ' cdp-cookies-layout-ventana';
|
558 |
+
else
|
559 |
+
$class .= ' cdp-cookies-layout-pagina';
|
560 |
+
|
561 |
+
//
|
562 |
+
// Posición: superior, inferior
|
563 |
+
//
|
564 |
+
$class .= ' cdp-cookies-pos-' . self::parametro( 'posicion' );
|
565 |
+
|
566 |
+
//
|
567 |
+
// Alineación de los textos
|
568 |
+
//
|
569 |
+
if( self::parametro( 'alineacion' ) == 'izq' )
|
570 |
+
$class .= ' cdp-cookies-textos-izq';
|
571 |
+
|
572 |
+
//
|
573 |
+
// Tema de color
|
574 |
+
//
|
575 |
+
$class .= ' cdp-cookies-tema-' . self::parametro( 'tema' );
|
576 |
+
|
577 |
+
//
|
578 |
+
// Obtengo el archivo con el texto
|
579 |
+
//
|
580 |
+
$html = file_get_contents( CDP_COOKIES_DIR_HTML . 'aviso.html' );
|
581 |
+
$html = str_replace( '{class}', $class, $html );
|
582 |
+
$html = str_replace( '{enlace_politica}', self::parametro( 'enlace_politica' ), $html );
|
583 |
+
echo $html;
|
584 |
+
}
|
585 |
+
|
586 |
+
/**
|
587 |
+
*
|
588 |
+
*/
|
589 |
+
static function dibujar_politica()
|
590 |
+
{
|
591 |
+
$html = file_get_contents( CDP_COOKIES_DIR_HTML . 'politica.html' );
|
592 |
+
$html = str_replace( '{enlace_mas_informacion}', self::parametro( 'enlace_mas_informacion' ), $html );
|
593 |
+
echo $html;
|
594 |
+
}
|
595 |
+
|
596 |
+
/**
|
597 |
+
*
|
598 |
+
*/
|
599 |
+
static function dibujar_mas_informacion()
|
600 |
+
{
|
601 |
+
$html = file_get_contents( CDP_COOKIES_DIR_HTML . 'mas-informacion.html' );
|
602 |
+
echo $html;
|
603 |
+
}
|
604 |
+
|
605 |
+
/**
|
606 |
+
*
|
607 |
+
*/
|
608 |
+
static function pag_configuracion()
|
609 |
+
{
|
610 |
+
require_once CDP_COOKIES_DIR_HTML . 'admin.html';
|
611 |
+
}
|
612 |
+
|
613 |
+
/**
|
614 |
+
*
|
615 |
+
*/
|
616 |
+
static function ajax_guardar_config()
|
617 |
+
{
|
618 |
+
self::comprobar_usuario_admin();
|
619 |
+
try
|
620 |
+
{
|
621 |
+
//
|
622 |
+
if( !wp_verify_nonce( cdp_cookies_input::post( 'nonce_guardar' ), 'guardar' ) )
|
623 |
+
throw new cdp_cookies_error( "Se ha producido un error de seguridad en este plugin" );
|
624 |
+
|
625 |
+
//
|
626 |
+
cdp_cookies_input::validar_array( 'layout', array( 'ventana', 'pagina' ) );
|
627 |
+
cdp_cookies_input::validar_array( 'posicion', array( 'superior', 'inferior' ) );
|
628 |
+
cdp_cookies_input::validar_array( 'alineacion', array( 'izq', 'cen' ) );
|
629 |
+
cdp_cookies_input::validar_array( 'tema', array( 'gris', 'blanco', 'azul', 'verde', 'rojo' ) );
|
630 |
+
cdp_cookies_input::validar_url( 'enlace_politica' );
|
631 |
+
cdp_cookies_input::validar_url( 'enlace_mas_informacion' );
|
632 |
+
|
633 |
+
//
|
634 |
+
self::parametro( 'layout', cdp_cookies_input::post( 'layout' ) );
|
635 |
+
self::parametro( 'posicion', cdp_cookies_input::post( 'posicion' ) );
|
636 |
+
self::parametro( 'alineacion', cdp_cookies_input::post( 'alineacion' ) );
|
637 |
+
self::parametro( 'tema', cdp_cookies_input::post( 'tema' ) );
|
638 |
+
self::parametro( 'enlace_politica', cdp_cookies_input::post( 'enlace_politica' ) );
|
639 |
+
self::parametro( 'enlace_mas_informacion', cdp_cookies_input::post( 'enlace_mas_informacion' ) );
|
640 |
+
|
641 |
+
//
|
642 |
+
echo json_encode( array( 'ok' => true, 'txt' => 'Configuración guardada correctamente' ) );
|
643 |
+
}
|
644 |
+
catch( Exception $e )
|
645 |
+
{
|
646 |
+
cdp_cookies_log::pon( $e );
|
647 |
+
echo json_encode( array( 'ok' => false, 'txt' => $e->getMessage() ) );
|
648 |
+
}
|
649 |
+
exit;
|
650 |
+
}
|
651 |
+
|
652 |
+
}
|
653 |
+
|
654 |
+
/**
|
655 |
+
*
|
656 |
+
*/
|
657 |
+
class cdp_cookies_pagina
|
658 |
+
{
|
659 |
+
/**
|
660 |
+
* entrada
|
661 |
+
*/
|
662 |
+
public $titulo, $html;
|
663 |
+
|
664 |
+
/**
|
665 |
+
* salida
|
666 |
+
*/
|
667 |
+
public $ya_existia, $url, $ok, $mensaje;
|
668 |
+
|
669 |
+
/**
|
670 |
+
*
|
671 |
+
*/
|
672 |
+
function crear()
|
673 |
+
{
|
674 |
+
// Validación del título
|
675 |
+
if( !$this->titulo )
|
676 |
+
{
|
677 |
+
$this->ok = false;
|
678 |
+
$this->mensaje = 'Falta el título de la página';
|
679 |
+
return false;
|
680 |
+
}
|
681 |
+
|
682 |
+
// Compruebo si ya existe
|
683 |
+
if( $pag = get_page_by_title( $this->titulo ) )
|
684 |
+
{
|
685 |
+
// Si está en la papelera...
|
686 |
+
if( $pag->post_status == 'trash' )
|
687 |
+
{
|
688 |
+
$this->ok = false;
|
689 |
+
$this->mensaje = 'Alguna de las páginas está en la papelera, debe eliminarla primero';
|
690 |
+
return false;
|
691 |
+
}
|
692 |
+
|
693 |
+
// Todo bien...
|
694 |
+
$this->ok = true;
|
695 |
+
$this->ya_existia = true;
|
696 |
+
$this->url = get_permalink( $pag );
|
697 |
+
return true;
|
698 |
+
}
|
699 |
+
|
700 |
+
// Validación del html
|
701 |
+
if( !$this->html )
|
702 |
+
{
|
703 |
+
$this->ok = false;
|
704 |
+
$this->mensaje = 'Falta el html de la página';
|
705 |
+
return false;
|
706 |
+
}
|
707 |
+
|
708 |
+
// Me dispongo a crear la página insertando el post en BD
|
709 |
+
$p = array();
|
710 |
+
$p['post_title'] = $this->titulo;
|
711 |
+
$p['post_content'] = $this->html;
|
712 |
+
$p['post_status'] = 'publish';
|
713 |
+
$p['post_type'] = 'page';
|
714 |
+
$p['comment_status'] = 'closed';
|
715 |
+
$p['ping_status'] = 'closed';
|
716 |
+
$p['post_category'] = array( 1 );
|
717 |
+
if( !( $id = wp_insert_post( $p ) ) )
|
718 |
+
{
|
719 |
+
$this->ok = false;
|
720 |
+
$this->mensaje = "No es posible crear la página";
|
721 |
+
return false;
|
722 |
+
}
|
723 |
+
|
724 |
+
// Se ha creado la página correctamente
|
725 |
+
$this->ok = true;
|
726 |
+
$this->ya_existia = false;
|
727 |
+
$this->url = get_permalink( get_post( $id ) );
|
728 |
+
return true;
|
729 |
+
}
|
730 |
+
}
|
731 |
+
|
732 |
+
?>
|
log/cdp_cookies.log
ADDED
File without changes
|
plugin.php
ADDED
@@ -0,0 +1,46 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/*
|
4 |
+
Plugin Name: Asesor de Cookies
|
5 |
+
Plugin URI: http://webartesanal.com
|
6 |
+
Description: Este plugin avisa a los nuevos visitantes de su web sobre la utilización de cookies en su página y le proporciona los textos iniciales para que pueda crear una política de cookies correcta.
|
7 |
+
Version: 0.11
|
8 |
+
Author: Carlos Doral Pérez
|
9 |
+
Author URI: http://webartesanal.com
|
10 |
+
License: GPLv2 or later
|
11 |
+
*/
|
12 |
+
|
13 |
+
/* Copyright 2013 Carlos Doral Pérez
|
14 |
+
|
15 |
+
This program is free software; you can redistribute it and/or modify
|
16 |
+
it under the terms of the GNU General Public License as published by
|
17 |
+
the Free Software Foundation; either version 2 of the License, or
|
18 |
+
(at your option) any later version.
|
19 |
+
|
20 |
+
This program is distributed in the hope that it will be useful,
|
21 |
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
22 |
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
23 |
+
GNU General Public License for more details.
|
24 |
+
|
25 |
+
You should have received a copy of the GNU General Public License
|
26 |
+
along with this program; if not, write to the Free Software
|
27 |
+
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
28 |
+
|
29 |
+
*/
|
30 |
+
|
31 |
+
// Configuración y definiciones
|
32 |
+
require dirname( __FILE__ ) . '/config.php';
|
33 |
+
require dirname( __FILE__ ) . '/lib/lib.php';
|
34 |
+
require dirname( __FILE__ ) . '/lib/plugin.php';
|
35 |
+
|
36 |
+
// Lógica del plugin
|
37 |
+
try
|
38 |
+
{
|
39 |
+
cdp_cookies::ejecutar();
|
40 |
+
}
|
41 |
+
catch( cdp_cookies_error $e )
|
42 |
+
{
|
43 |
+
cdp_cookies_log::pon( $e->getMessage() );
|
44 |
+
}
|
45 |
+
|
46 |
+
?>
|
readme.txt
ADDED
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
=== Asesor de Cookies para normativa española ===
|
2 |
+
Contributors: Carlos Doral Pérez (<a href="http:://webartesanal.com">webartesanal.com</a>)
|
3 |
+
Tags: cookie, cookies, spain, ley, law, politica, policy, españa, normativa
|
4 |
+
Requires at least: 3.5
|
5 |
+
Tested up to: 3.6.1
|
6 |
+
Stable tag: 0.11
|
7 |
+
License: GPLv2 or later
|
8 |
+
|
9 |
+
Este plugins le ayuda a cumplir con la ley de cookies española proporcionándole los textos legales y técnicos necesarios.
|
10 |
+
|
11 |
+
== Description ==
|
12 |
+
|
13 |
+
Este plugin le va a ayudar a confeccionar su política de cookies para la ley española. El funcionamiento consiste en mostrar un mensaje cada vez que un nuevo usuario visita su web avisándole que si sigue navegando está aceptando la recepción de cookies y la política de cookies.
|
14 |
+
|
15 |
+
Este plugin le proporciona los textos legales y técnicos iniciales que necesita su web, se generan automáticamente y los puede editar si lo desea. Estos textos son la política de cookies, la descripción técnica de las cookies y las instrucciones de manipulación de cookies desde los navegadores más populares, todo ello para que el usuario web tenga la máxima información posible, todos ellos requisitos exigidos por la AEPD.
|
16 |
+
|
17 |
+
Características del plugin:
|
18 |
+
* Incorpora los textos legales base.
|
19 |
+
* Incorpora un botón para crear automáticamente las dos páginas que necesita su web: La política de cookies y la descripción de cookies para los usuarios web. Las páginas son editables.
|
20 |
+
* Permite ajustar el estilo de color del aviso que se muestra al usuario, hay cinco colores: gris, blanco, rojo, verde y azul.
|
21 |
+
* Permite configurar la posición del aviso (inferior, superior) y el lugar de inclusión (en página o en ventana).
|
22 |
+
* Permite mostrar el aviso en modo 'vista previa' para que elija el formato y lugar donde aparece el aviso.
|
23 |
+
|
24 |
+
== Screenshots ==
|
25 |
+
|
26 |
+
1. Así aparece el aviso de cookies al visitante de su web.
|
27 |
+
2. Panel de configuración que permite cambiar los colores, posición del aviso, etc.
|
28 |
+
|
29 |
+
== Installation ==
|
30 |
+
|
31 |
+
1. Descargue el plugin, descomprímalo y súbalo al directorio /wp-content/plugins/
|
32 |
+
2. Vaya al apartado plugins y active el Asesor de Cookies.
|
33 |
+
3. Vaya a Herramientas, Asesor de Cookies.
|
34 |
+
4. Pinche el botón 'Generar Páginas' y luego 'Guardar'.
|
35 |
+
5. El plugin ya está funcionando con los textos legales por defecto. Si quiere editarlos vaya a Páginas y ahí verá las dos nuevas páginas que ha creado el plugin, la de 'Política de cookies' y la de 'Más información sobre las cookies' que es totalmente técnica y no tendrá que modificar.
|
36 |
+
6. Es conveniente que añada en su menú o en el pié de página de su web un enlace 'Política de cookies' visible que debe apuntar a la página que ha creado sobre la política de cookies.
|
37 |
+
|
38 |
+
Si lo desea, como método alternativo de instalación puede ir a la sección Plugins y hacer lo siguiente:
|
39 |
+
|
40 |
+
1. Pulse 'Añadir nuevo'.
|
41 |
+
2. En el buscador escriba 'asesor cookies'.
|
42 |
+
3. Haga click en 'Instalar'.
|
43 |
+
4. Ahora siga desde el paso 2 de la sección anterior.
|
44 |
+
|
screenshots/aviso-usuario.png
ADDED
Binary file
|
screenshots/pantalla-configuracion.png
ADDED
Binary file
|