1<!DOCTYPE html 2 PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 3<html xmlns="http://www.w3.org/1999/xhtml" lang="es" xml:lang="es"> 4 5<head> 6 <meta name="facebook-domain-verification" content="g3breuegufxb4ipr93ffdfpwg0giue" /> 7 8<!-- InMobi Choice. Consent Manager Tag v3.0 (for TCF 2.2) --> 9
9<script type="text/javascript"> 10 (function() { 11 var host = window.location.hostname; 12 var element = document.createElement('script'); 13 var firstScript = document.getElementsByTagName('script')[0]; 14 var url = 'https://cmp.inmobi.com' 15 .concat('/choice/', 'f9AQTyv7AXes2', '/', host, '/choice.js?tag_version=V3'); 16 var uspTries = 0; 17 var uspTriesLimit = 3; 18 element.async = false; 19 element.type = 'text/javascript'; 20 element.src = url; 21 22 firstScript.parentNode.insertBefore(element, firstScript); 23 24 function makeStub() { 25 var TCF_LOCATOR_NAME = '__tcfapiLocator'; 26 var queue = []; 27 var win = window; 28 var cmpFrame; 29 30 function addFrame() { 31 var doc = win.document; 32 var otherCMP = !!(win.frames[TCF_LOCATOR_NAME]); 33 34 if (!otherCMP) { 35 if (doc.body) { 36 var iframe = doc.createElement('iframe'); 37 38 iframe.style.cssText = 'display:none'; 39 iframe.name = TCF_LOCATOR_NAME; 40 doc.body.appendChild(iframe); 41 } else { 42 setTimeout(addFrame, 5); 43 } 44 } 45 return !otherCMP; 46 } 47 48 function tcfAPIHandler() { 49 var gdprApplies; 50 var args = arguments; 51 52 if (!args.length) { 53 return queue; 54 } else if (args[0] === 'setGdprApplies') { 55 if ( 56 args.length > 3 && 57 args[2] === 2 && 58 typeof args[3] === 'boolean' 59 ) { 60 gdprApplies = args[3]; 61 if (typeof args[2] === 'function') { 62 args[2]('set', true); 63 } 64 } 65 } else if (args[0] === 'ping') { 66 var retr = { 67 gdprApplies: gdprApplies, 68 cmpLoaded: false, 69 cmpStatus: 'stub' 70 }; 71 72 if (typeof args[2] === 'function') { 73 args[2](retr); 74 } 75 } else { 76 if(args[0] === 'init' && typeof args[3] === 'object') { 77 args[3] = Object.assign(args[3], { tag_version: 'V3' }); 78 } 79 queue.push(args); 80 } 81 } 82 83 function postMessageEventHandler(event) { 84 var msgIsString = typeof event.data === 'string'; 85 var json = {}; 86 87 try { 88 if (msgIsString) { 89 json = JSON.parse(event.data); 90 } else { 91 json = event.data; 92 } 93 } catch (ignore) {} 94 95 var payload = json.__tcfapiCall; 96 97 if (payload) { 98 window.__tcfapi( 99 payload.command, 100 payload.version, 101 function(retValue, success) { 102 var returnMsg = { 103 __tcfapiReturn: { 104 returnValue: retValue, 105 success: success, 106 callId: payload.callId 107 } 108 }; 109 if (msgIsString) { 110 returnMsg = JSON.stringify(returnMsg); 111 } 112 if (event && event.source && event.source.postMessage) { 113 event.source.postMessage(returnMsg, '*'); 114 } 115 }, 116 payload.parameter 117 ); 118 } 119 } 120 121 while (win) { 122 try { 123 if (win.frames[TCF_LOCATOR_NAME]) { 124 cmpFrame = win; 125 break; 126 } 127 } catch (ignore) {} 128 129 if (win === window.top) { 130 break; 131 } 132 win = win.parent; 133 } 134 if (!cmpFrame) { 135 addFrame(); 136 win.__tcfapi = tcfAPIHandler; 137 win.addEventListener('message', postMessageEventHandler, false); 138 } 139 }; 140 141 makeStub(); 142 143 function makeGppStub() { 144 const CMP_ID = 10; 145 const SUPPORTED_APIS = [ 146 '2:tcfeuv2', 147 '6:uspv1', 148 '7:usnatv1', 149 '8:usca', 150 '9:usvav1', 151 '10:uscov1', 152 '11:usutv1', 153 '12:usctv1' 154 ]; 155 156 window.__gpp_addFrame = function (n) { 157 if (!window.frames[n]) { 158 if (document.body) { 159 var i = document.createElement("iframe"); 160 i.style.cssText = "display:none"; 161 i.name = n; 162 document.body.appendChild(i); 163 } else { 164 window.setTimeout(window.__gpp_addFrame, 10, n); 165 } 166 } 167 }; 168 window.__gpp_stub = function () { 169 var b = arguments; 170 __gpp.queue = __gpp.queue || []; 171 __gpp.events = __gpp.events || []; 172 173 if (!b.length || (b.length == 1 && b[0] == "queue")) { 174 return __gpp.queue; 175 } 176 177 if (b.length == 1 && b[0] == "events") { 178 return __gpp.events; 179 } 180 181 var cmd = b[0]; 182 var clb = b.length > 1 ? b[1] : null; 183 var par = b.length > 2 ? b[2] : null; 184 if (cmd === "ping") { 185 clb( 186 { 187 gppVersion: "1.1", // must be âVersion.Subversionâ, current: â1.1â 188 cmpStatus: "stub", // possible values: stub, loading, loaded, error 189 cmpDisplayStatus: "hidden", // possible values: hidden, visible, disabled 190 signalStatus: "not ready", // possible values: not ready, ready 191 supportedAPIs: SUPPORTED_APIS, // list of supported APIs 192 cmpId: CMP_ID, // IAB assigned CMP ID, may be 0 during stub/loading 193 sectionList: [], 194 applicableSections: [-1], 195 gppString: "", 196 parsedSections: {}, 197 }, 198 true 199 ); 200 } else if (cmd === "addEventListener") { 201 if (!("lastId" in __gpp)) { 202 __gpp.lastId = 0; 203 } 204 __gpp.lastId++; 205 var lnr = __gpp.lastId; 206 __gpp.events.push({ 207 id: lnr, 208 callback: clb, 209 parameter: par, 210 }); 211 clb( 212 { 213 eventName: "listenerRegistered", 214 listenerId: lnr, // Registered ID of the listener 215 data: true, // positive signal 216 pingData: { 217 gppVersion: "1.1", // must be âVersion.Subversionâ, current: â1.1â 218 cmpStatus: "stub", // possible values: stub, loading, loaded, error 219 cmpDisplayStatus: "hidden", // possible values: hidden, visible, disabled 220 signalStatus: "not ready", // possible values: not ready, ready 221 supportedAPIs: SUPPORTED_APIS, // list of supported APIs 222 cmpId: CMP_ID, // list of supported APIs 223 sectionList: [], 224 applicableSections: [-1], 225 gppString: "", 226 parsedSections: {}, 227 }, 228 }, 229 true 230 ); 231 } else if (cmd === "removeEventListener") { 232 var success = false; 233 for (var i = 0; i < __gpp.events.length; i++) { 234 if (__gpp.events[i].id == par) { 235 __gpp.events.splice(i, 1); 236 success = true; 237 break; 238 } 239 } 240 clb( 241 { 242 eventName: "listenerRemoved", 243 listenerId: par, // Registered ID of the listener 244 data: success, // status info 245 pingData: { 246 gppVersion: "1.1", // must be âVersion.Subversionâ, current: â1.1â 247 cmpStatus: "stub", // possible values: stub, loading, loaded, error 248 cmpDisplayStatus: "hidden", // possible values: hidden, visible, disabled 249 signalStatus: "not ready", // possible values: not ready, ready 250 supportedAPIs: SUPPORTED_APIS, // list of supported APIs 251 cmpId: CMP_ID, // CMP ID 252 sectionList: [], 253 applicableSections: [-1], 254 gppString: "", 255 parsedSections: {}, 256 }, 257 }, 258 true 259 ); 260 } else if (cmd === "hasSection") { 261 clb(false, true); 262 } else if (cmd === "getSection" || cmd === "getField") { 263 clb(null, true); 264 } 265 //queue all other commands 266 else { 267 __gpp.queue.push([].slice.apply(b)); 268 } 269 }; 270 window.__gpp_msghandler = function (event) { 271 var msgIsString = typeof event.data === "string"; 272 try { 273 var json = msgIsString ? JSON.parse(event.data) : event.data; 274 } catch (e) { 275 var json = null; 276 } 277 if (typeof json === "object" && json !== null && "__gppCall" in json) { 278 var i = json.__gppCall; 279 window.__gpp( 280 i.command, 281 function (retValue, success) { 282 var returnMsg = { 283 __gppReturn: { 284 returnValue: retValue, 285 success: success, 286 callId: i.callId, 287 }, 288 }; 289 event.source.postMessage(msgIsString ? JSON.stringify(returnMsg) : returnMsg, "*"); 290 }, 291 "parameter" in i ? i.parameter : null, 292 "version" in i ? i.version : "1.1" 293 ); 294 } 295 }; 296 if (!("__gpp" in window) || typeof window.__gpp !== "function") { 297 window.__gpp = window.__gpp_stub; 298 window.addEventListener("message", window.__gpp_msghandler, false); 299 window.__gpp_addFrame("__gppLocator"); 300 } 301 }; 302 303 makeGppStub(); 304 305 var uspStubFunction = function() { 306 var arg = arguments; 307 if (typeof window.__uspapi !== uspStubFunction) { 308 setTimeout(function() { 309 if (typeof window.__uspapi !== 'undefined') { 310 window.__uspapi.apply(window.__uspapi, arg); 311 } 312 }, 500); 313 } 314 }; 315 316 var checkIfUspIsReady = function() { 317 uspTries++; 318 if (window.__uspapi === uspStubFunction && uspTries < uspTriesLimit) { 319 console.warn('USP is not accessible'); 320 } else { 321 clearInterval(uspInterval); 322 } 323 }; 324 325 if (typeof window.__uspapi === 'undefined') { 326 window.__uspapi = uspStubFunction; 327 var uspInterval = setInterval(checkIfUspIsReady, 6000); 328 } 329 })(); 330 </script>
330 331 <!-- End InMobi Choice. Consent Manager Tag v3.0 (for TCF 2.2) --> 332 333 334<!-- Google tag (gtag.js) -->
vendor: 65 bytes, lines 334-335
334 335<script async src="https://www.googletagmanager.com/gtag/js?id=
335G-NRC0WJCCFW
vendor: 13 bytes, line 335
335"></script>
336<script> 337
vendor: 138 bytes, lines 337-341
337window.dataLayer = window.dataLayer || []; 338 function gtag(){dataLayer.push(arguments);} 339 gtag('js', new Date()); 340 341 gtag('config', '
341G-NRC0WJCCFW
vendor: 5 bytes, line 341
341');
342</script>
342 343
344<script> 345 346let attempts = 0; 347let maxAttempts = 100; // 10 segundos / 100ms = 100 intentos 348 349let interval = setInterval(() => { 350 $("#accept-btn").trigger("click"); 351 attempts++; 352 353 if ($("#accept-btn").data("clicked")) { 354 clearInterval(interval); 355 clearTimeout(timeout); 356 console.log("Click detectado, deteniendo el intento."); 357 } 358 359 if (attempts >= maxAttempts) { 360 clearInterval(interval); 361 console.log("Se alcanzó el lÃmite de intentos, deteniendo."); 362 } 363}, 100); 364 365let timeout = setTimeout(() => { 366 clearInterval(interval); 367 console.log("Tiempo lÃmite de 10 segundos alcanzado, deteniendo."); 368}, 10000); // 10 segundos 369 370$("#accept-btn").on("click", function() { 371 $(this).data("clicked", true); 372}); 373 374</script>
374 375
376<script type="text/javascript"> 377!function(){"use strict";function e(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],c=document.createElement("script");c.src=e,t?c.type="module":(c.async=!0,c.type="text/javascript",c.setAttribute("nomodule",""));var n=document.getElementsByTagName("script")[0];n.parentNode.insertBefore(c,n)}!function(t,c){!function(t,c,n){var a,o,r;n.accountId=c,null!==(a=t.marfeel)&&void 0!==a||(t.marfeel={}),null!==(o=(r=t.marfeel).cmd)&&void 0!==o||(r.cmd=[]),t.marfeel.config=n;var i="https://sdk.mrf.io/statics";e("".concat(i,"/marfeel-sdk.js?id=").concat(c),!0),e("".concat(i,"/marfeel-sdk.es5.js?id=").concat(c),!1)}(t,c,arguments.length>2&&void 0!==arguments[2]?arguments[2]:{})}(window,9104,{} /* Config */)}(); 378</script>
378 379 380 381<meta name="verify-getalink" content="verify-getalink-10122"/> 382 383<meta name="spr-verification" content="c53c0f3f8f6b0b5" /> 384 385<meta name="lh-site-verification" content="f5287485db9d9b2da00e" /> 386
387<script src="https://analytics.ahrefs.com/analytics.js" data-key="qjMw5yAf+WEJH0oA+PWlng" async></script>
387 388
389<script src="https://cdn.onesignal.com/sdks/web/v16/OneSignalSDK.page.js" defer></script>
vendor: 2 bytes, line 389
389
390<script> 391 window.OneSignalDeferred = window.OneSignalDeferred || []; 392 OneSignalDeferred.push(async function(OneSignal) { 393 await OneSignal.init({ 394 appId: "ee83b8a9-7297-444e-abc8-28a5522781d8", 395 safari_web_id: "web.onesignal.auto.1b5ff574-1f63-4acf-ab26-dadb313db610", 396 notifyButton: { 397 enable: true, 398 }, 399 }); 400 }); 401</script>
401 402 403<meta name='prensarank-verification' content='U30RU03'> 404 <!-- METAS 1 --> 405 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 406 <meta name="robots" content="index, follow, max-image-preview:large" /> 407 <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 408 <!-- // METAS 1 --> 409 <title>Ãltimas noticias sobre top-100-FRS en FRS</title> 410 411 <!-- favicons --> 412 <!-- Favicon básico en formato .ico --> 413 <link rel="icon" href="/web/assets_new/img/www.foodretail.es/favicons/favicon.ico" sizes="any"> 414 415 <!-- Favicon de alta resolución en PNG --> 416 <link rel="icon" href="/web/assets_new/img/www.foodretail.es/favicons/favicon-32x32.png" 417 sizes="32x32" type="image/png"> 418 <link rel="icon" href="/web/assets_new/img/www.foodretail.es/favicons/favicon-192x192.png" 419 sizes="192x192" type="image/png"> 420 421 <!-- Apple Touch Icon (para dispositivos iOS) --> 422 <link rel="apple-touch-icon" 423 href="/web/assets_new/img/www.foodretail.es/favicons/apple-touch-icon.png" sizes="180x180"> 424 425 <!-- Android Icons (para la mayorÃa de dispositivos Android y Chrome) --> 426 <link rel="icon" href="/web/assets_new/img/www.foodretail.es/favicons/android-chrome-192x192.png" 427 sizes="192x192" type="image/png"> 428 <link rel="icon" href="/web/assets_new/img/www.foodretail.es/favicons/android-chrome-512x512.png" 429 sizes="512x512" type="image/png"> 430 431 <!-- Windows Tiles Icon (para dispositivos con Windows) --> 432 <meta name="msapplication-square150x150logo" 433 content="/web/assets_new/img/www.foodretail.es/favicons/mstile-150x150.png"> 434 435 <!-- Safari Pinned Tab Icon (Safari monocromático) --> 436 <link rel="mask-icon" href="/web/assets_new/img/www.foodretail.es/favicons/safari-pinned-tab.svg" 437 color="#5bbad5"> 438 439 440 <link rel="manifest" 441 href="/web/assets_new/img/www.foodretail.es/favicons/site.webmanifest?2026100206"> 442 <meta name="msapplication-TileColor" content="#da532c"> 443 <meta name="theme-color" content="#ffffff"> 444 <meta name="apple-mobile-web-app-capable" content="no"> 445 <meta name="application-name" content="www.foodretail.es" /> 446 <meta property="og:image" 447 content="/web/assets_new/img/www.foodretail.es/favicons/og-www.foodretail.es.png" /> 448 <!-- // Favicons --> 449 450 <!-- CSS + FONTS --> 451 <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> 452 <link href="/web/assets_new/dist/style.css?20261002062150" type="text/css" rel="stylesheet" /> 453 <link href="/web/assets_new/dist/infocap.css?20261002062150" type="text/css" rel="stylesheet" /> 454 455 <link rel="preconnect" href="https://fonts.googleapis.com"> 456 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 457 <!-- Roboto serif --> 458 <link 459 href="https://fonts.googleapis.com/css2?family=DM+Serif+Text:ital@0;1&family=Roboto+Serif:ital,opsz,wght@0,8..144,100..900;1,8..144,100..900&display=swap" 460 rel="stylesheet"> 461 <!-- Asap San serif --> 462 <link href="https://fonts.googleapis.com/css2?family=Asap:ital,wght@0,100..900;1,100..900&display=swap" 463 rel="stylesheet"> 464 <!-- Montserrat --> 465 <link href="https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap" 466 rel="stylesheet"> 467 <!-- Open Sans --> 468 <link href="https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap" 469 rel="stylesheet"> 470 <link 471 href="https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&family=Playfair+Display:ital,wght@0,400..900;1,400..900&display=swap" 472 rel="stylesheet"> 473 <link href="https://fonts.cdnfonts.com/css/cabinet-grotesk" rel="stylesheet"> 474 <!-- saira --> 475 <link href="https://fonts.googleapis.com/css2?family=Saira:ital,wght@0,100..900;1,100..900&display=swap" 476 rel="stylesheet"> 477 <!-- // CSS + FONTS --> 478 479 480 <!-- MICRODATA : SCHEMA --> 481 482
482<script type="application/ld+json"> 483 { 484 "@context": "http://schema.org", 485 "@type": "Organization", 486 "url": "https://www.foodretail.es", 487 "logo": "/web/assets/img/favicons/icon-www.foodretail.es.png" 488 } 489 </script>
489 490 491
491<script type="application/ld+json"> 492 { 493 "@context": "https://schema.org", 494 "@type": "WebSite", 495 "url": "https://www.foodretail.es", 496 "potentialAction": { 497 "@type": "SearchAction", 498 "target": { 499 "@type": "EntryPoint", 500 "urlTemplate": "https://www.foodretail.es/?s={search_term_string}" 501 }, 502 "query-input": "required name=search_term_string" 503 } 504 } 505 </script>
505 506 507 <!-- // MICRODATA : SCHEMA --> 508 509 510 <!-- METAS --> 511 <link rel="canonical" href="https://www.foodretail.es/tag/top-100-FRS" /> <meta property="og:url" 512 content="https://www.foodretail.es/foodretail/"> 513 <meta property="og:title" content="Ãltimas noticias sobre top-100-FRS en FRS"> 514 <meta property="og:description" content="Noticias y análisis: tendencias que definen el consumo en supermercados y hostelerÃa"> 515 <meta name="description" content="Noticias y análisis: tendencias que definen el consumo en supermercados y hostelerÃa" /> 516 <meta property="og:image" content="https://www.foodretail.es/web/assets/img/og-image/www.foodretail.es.png"> 517 <!-- // METAS --> 518 519 <!-- JS : JQUERY --> 520
520<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
520 521
521<script 522 src="https://www.paypal.com/sdk/js?client-id=Ad-WWadPq0-r4825ydtY97Hn4m--5Rz3pHSk3FNWBL9BR23K3fxaLLCUMBs8qYLb48r0JI-s1QL9nuFy¤cy=EUR"></script>
522 523 <!-- // JS : JQUERY --> 524 525 <!-- BN --> 526<!-- //BN ID 1|portada|head|oculto| -->
527<script type="application/javascript" src="https://ced.sascdn.com/tag/4090/smart.js" async></script>
vendor: 2 bytes, line 527
527
528<script type="application/javascript"> 529Â Â var sas = sas || {}; 530Â Â sas.cmd = sas.cmd || []; 531Â Â sas.cmd.push(function() { 532Â Â Â Â sas.setup({ networkid: 4090, domain: "https://www8.smartadserver.com", async: true }); 533Â Â }); 534Â Â sas.cmd.push(function() { 535Â Â Â Â sas.call("onecall", { 536Â Â Â Â Â Â siteId: 686605, 537Â Â Â Â Â Â pageId: 2041734, 538Â Â Â Â Â Â formats: [ 539Â Â Â Â Â Â Â Â Â { id: 133118, tagId:"sas_133118"} 540Â Â Â Â Â Â Â Â ,{ id: 133119, tagId:"sas_133119"} 541Â Â Â Â Â Â Â Â ,{ id: 133120, tagId:"sas_133120"} 542Â Â Â Â Â Â Â Â ,{ id: 133121, tagId:"sas_133121"} 543Â Â Â Â Â Â Â Â ,{ id: 133122, tagId:"sas_133122"} 544Â Â Â Â Â Â Â Â ,{ id: 133123, tagId:"sas_133123"} 545Â Â Â Â Â Â Â Â ,{ id: 133124, tagId:"sas_133124"} 546Â Â Â Â Â Â Â Â ,{ id: 133125, tagId:"sas_133125"} 547Â Â Â Â Â Â Â Â ,{ id: 133126, tagId:"sas_133126"} 548Â Â Â Â Â Â Â Â ,{ id: 133127, tagId:"sas_133127"} 549Â Â Â Â Â Â Â Â ,{ id: 133128, tagId:"sas_133128"} 550Â Â Â Â Â Â Â Â ,{ id: 133129, tagId:"sas_133129"} 551Â Â Â Â Â Â Â Â ,{ id: 133130, tagId:"sas_133130"} 552 ,{ id: 141814, tagId:"sas_141814"} 553Â Â Â Â Â Â ], 554Â Â Â Â Â Â target: '', 555schain: '1.0,1!ads4you.es,686605,1,,' 556Â Â Â Â }); 557Â Â }); 558</script>
558 559<!-- //BN ID 1|portada|head|oculto| --> 560<!-- //BN --> 561 <style> 562 :root { 563 --color-periodico-1: 564 #CD2329 ; 565 --color-periodico-2: 566 #65AC3B ; 567 --color-periodico-3: 568 #E7F7DE ; 569 } 570 </style> 571 572</head> 573 574<body itemscope itemtype="http://schema.org/WebPage" class="INFOCAP FR"> 575 576 <section id="site-adv-side-banners" class="ad-wrapper-side"> 577 <!-- BN --> 578<!-- //BN ID 12|portada|wrapper|sky|4 --> 579<div class="ad-wrapper-side-left"> 580<div class="ad"> 581<div class="ad-container"> 582<div class="ad-entry" id="content-sky-left"> 583<div id="sas_133128"></div>
584<script type="application/javascript"> 585 sas.cmd.push(function() { 586 sas.render("sas_133128"); // Format : i_Sky_Left 120x600 587 }); 588</script>
588 589</div> 590</div> 591</div> 592</div> 593<!-- //BN ID 12|portada|wrapper|sky|4 --> 594<!-- //BN --> 595<!-- BN --> 596<!-- //BN ID 13|portada|wrapper|sky|5 --> 597<div class="ad-wrapper-side-right"> 598<div class="ad"> 599<div class="ad-container"> 600<div class="ad-entry" id="content-sky-right"> 601<div id="sas_133129"></div>
602<script type="application/javascript"> 603 sas.cmd.push(function() { 604 sas.render("sas_133129"); // Format : i_Sky_Right 120x600 605 }); 606</script>
606 607</div> 608</div> 609</div> 610</div> 611<!-- //BN ID 13|portada|wrapper|sky|5 --> 612<!-- //BN --> 613 </section> 614 <!-- BN --> 615<!-- //BN ID 14|portada|wrapper|sticky|1 --> 616<div id="content-sticky"> 617<div id="sas_133130"></div>
618<script type="application/javascript"> 619 sas.cmd.push(function() { 620 sas.render("sas_133130"); // Format : Sticky 0x0 621 }); 622</script>
622 623</div> 624<!-- //BN ID 14|portada|wrapper|sticky|1 --> 625<!-- //BN --> 626 <div class="BN BN-MEGATOP"> 627 <!-- BN --> 628<!-- //BN ID 2|portada|wrapper|mega|6 --> 629<div class=BN> 630<div id="sas_133118"></div>
631<script type="application/javascript"> 632 sas.cmd.push(function() { 633 sas.render("sas_133118"); // Format : i_Mega_1 980x250 634 }); 635</script>
635 636</div> 637<!-- //BN ID 2|portada|wrapper|mega|6 --> 638<!-- //BN --> 639 </div> 640 <!-- Wrap HEADER --> 641 <div class="wrap-HEADER pin-top"> 642 <!-- destacados start --> 643 644 <div class="wrap-TRIPLE wrap-DEST 2"> 645 <div class="container"> 646 <ul> 647 <li class="destfijo"> 648 <a href="https://www.foodretail.es/">Temas Destacados</a> 649 </li> 650 <li><a href="https://www.foodretail.es/ebook-descarga/101/frs-anuario-de-la-innovacion" 651 title="Anuario Innovación">Anuario Innovación</a> 652 </li> 653 <li><a href="https://www.foodretail.es/tag/top-100-FRS" 654 title="TOP 100 FRS">TOP 100 FRS</a> 655 </li> 656 <li><a href="https://www.foodretail.es/ebook-descarga/90/especial-marcas-de-distribucion-frs-2026" 657 title="Ebook MDD">Ebook MDD</a> 658 </li> 659 <li><a href="https://www.foodretail.es/especiales/supermercados/" 660 title="Supermercados">Supermercados</a> 661 </li> 662 <li><a href="https://www.foodretail.es/tag/mercadona/" 663 title="Mercadona">Mercadona</a> 664 </li> 665 <li><a href="https://www.foodretail.es/tag/carrefour/" 666 title="Carrefour">Carrefour</a> 667 </li> 668 <li><a href="https://www.foodretail.es/especiales/remitidas/" 669 title="Remitidas">Remitidas</a> 670 </li> 671 </ul> 672 673 </div> 674 <!-- BOTÃN FLOTANTE GOOGLE NEWS PC --> 675 676 <div class="btn-google-fuente-preferida-desktop"> 677 678 <svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg"> 679 <g clip-path="url(#clip0_134_1479)"> 680 <mask id="mask0_134_1479" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0" 681 width="12" height="12"> 682 <path 683 d="M11.7784 4.90909H6.1875V7.22728H9.40569C9.10569 8.7 7.85114 9.54546 6.1875 9.54546C4.22387 9.54546 2.64205 7.96364 2.64205 6C2.64205 4.03637 4.22387 2.45455 6.1875 2.45455C7.03296 2.45455 7.79659 2.75455 8.39659 3.24546L10.142 1.5C9.07841 0.572727 7.71478 0 6.1875 0C2.86023 0 0.1875 2.67273 0.1875 6C0.1875 9.32728 2.86023 12 6.1875 12C9.1875 12 11.9148 9.81819 11.9148 6C11.9148 5.64546 11.8602 5.26364 11.7784 4.90909Z" 684 fill="white"></path> 685 </mask> 686 <g mask="url(#mask0_134_1479)"> 687 <path d="M-0.35791 9.5455V2.45459L4.27846 6.00005L-0.35791 9.5455Z" fill="#FBBC05"> 688 </path> 689 </g> 690 <mask id="mask1_134_1479" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0" 691 width="12" height="12"> 692 <path 693 d="M11.7784 4.90909H6.1875V7.22728H9.40569C9.10569 8.7 7.85114 9.54546 6.1875 9.54546C4.22387 9.54546 2.64205 7.96364 2.64205 6C2.64205 4.03637 4.22387 2.45455 6.1875 2.45455C7.03296 2.45455 7.79659 2.75455 8.39659 3.24546L10.142 1.5C9.07841 0.572727 7.71478 0 6.1875 0C2.86023 0 0.1875 2.67273 0.1875 6C0.1875 9.32728 2.86023 12 6.1875 12C9.1875 12 11.9148 9.81819 11.9148 6C11.9148 5.64546 11.8602 5.26364 11.7784 4.90909Z" 694 fill="white"></path> 695 </mask> 696 <g mask="url(#mask1_134_1479)"> 697 <path 698 d="M-0.35791 2.45459L4.27846 6.00005L6.18755 4.33641L12.733 3.27277V-0.54541H-0.35791V2.45459Z" 699 fill="#EA4335"></path> 700 </g> 701 <mask id="mask2_134_1479" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0" 702 width="12" height="12"> 703 <path 704 d="M11.7784 4.90909H6.1875V7.22728H9.40569C9.10569 8.7 7.85114 9.54546 6.1875 9.54546C4.22387 9.54546 2.64205 7.96364 2.64205 6C2.64205 4.03637 4.22387 2.45455 6.1875 2.45455C7.03296 2.45455 7.79659 2.75455 8.39659 3.24546L10.142 1.5C9.07841 0.572727 7.71478 0 6.1875 0C2.86023 0 0.1875 2.67273 0.1875 6C0.1875 9.32728 2.86023 12 6.1875 12C9.1875 12 11.9148 9.81819 11.9148 6C11.9148 5.64546 11.8602 5.26364 11.7784 4.90909Z" 705 fill="white"></path> 706 </mask> 707 <g mask="url(#mask2_134_1479)"> 708 <path 709 d="M-0.35791 9.5455L7.82391 3.27277L9.97846 3.5455L12.733 -0.54541V12.5455H-0.35791V9.5455Z" 710 fill="#34A853"></path> 711 </g> 712 <mask id="mask3_134_1479" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0" 713 width="12" height="12"> 714 <path
715 d="M11.7784 4.90909H6.1875V7.22728H9.40569C9.10569 8.7 7.85114 9.54546 6.1875 9.54546C4.22387 9.54546 2.64205 7.96364 2.64205 6C2.64205 4.03637 4.22387 2.45455 6.1875 2.45455C7.03296 2.45455 7.79659 2.75455 8.39659 3.24546L10.142 1.5C9.07841 0.572727 7.71478 0 6.1875 0C2.86023 0 0.1875 2.67273 0.1875 6C0.1875 9.32728 2.86023 12 6.1875 12C9.1875 12 11.9148 9.81819 11.9148 6C11.9148 5.64546 11.8602 5.26364 11.7784 4.90909Z" 716 fill="white"></path> 717 </mask> 718 <g mask="url(#mask3_134_1479)"> 719 <path d="M12.733 12.5455L4.27841 6.00005L3.1875 5.18186L12.733 2.45459V12.5455Z" 720 fill="#4285F4"></path> 721 </g> 722 </g> 723 <defs> 724 <clipPath id="clip0_134_1479"> 725 <rect width="12" height="12" fill="white"></rect> 726 </clipPath> 727 </defs> 728 </svg> 729 <a href="https://www.google.com/preferences/source?q=www.foodretail.es" 730 target="_blank">MARCAR COMO fuente preferida en Google</a> 731 </div> 732 733 <!-- BOTÃN FLOTANTE GOOGLE NEWS PC END --> 734 </div> 735 <!-- destacados end --> 736 737 <!-- submenú destacado start --> 738 <div class="wrap-submenu-destacado"> 739 <div class="container"> 740 <div class="row"> 741 <div class="col s12"> 742 <ul> 743 <li itemprop="name"><a target="_blank" 744 href="/revista-frs-foodretail/" 745 itemprop="url">ANUARIOS PAPEL</a></li> 746 <li itemprop="name"><a target="_blank" 747 href="/ultimas-newsletters/" 748 itemprop="url">ÃLTIMAS NEWSLETTERS</a></li> 749 <li itemprop="name"><a target="_blank" 750 href="/ebooks/" 751 itemprop="url">DESCARGA EBOOKS</a></li> 752 <li itemprop="name"><a target="_blank" 753 href="/blogs/" 754 itemprop="url">BLOGS</a></li> 755 <li itemprop="name"><a target="_blank" 756 href="/multimedia/" 757 itemprop="url">VÃDEOS</a></li> 758 </ul> 759 </div> 760 </div> 761 </div> 762 </div> 763 <!-- submenu destacado end --> 764 765 <!-- CORPORATIVO --> 766 <div class="wrap-TRIPLE wrap-CORP"> 767 <div class="container"> 768 <!-- Left --> 769 <div class="CORP-left"> 770 <a class="button-collapse" href="#" data-activates="slide-out"> 771 <svg id="Layer_1" data-name="Layer 1" width="32" height="32" viewBox="0 0 32 32" fill="none" 772 xmlns="http://www.w3.org/2000/svg"> 773 <mask id="mask0_2_1380" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" 774 width="32" height="32"> 775 <rect width="32" height="32" fill="#D9D9D9" /> 776 </mask> 777 <g mask="url(#mask0_2_1380)"> 778 <path 779 d="M5.33337 23.0256V21.6923H26.6667V23.0256H5.33337ZM5.33337 16.6666V15.3333H26.6667V16.6666H5.33337ZM5.33337 10.3076V8.97427H26.6667V10.3076H5.33337Z" 780 fill="#13181A" /> 781 </g> 782 </svg> 783 </a> 784 <a class="cd-search-trigger" href="#cd-search"> 785 <svg id="Layer_1" data-name="Layer 1" width="40" height="40" viewBox="0 0 40 40" fill="none" 786 xmlns="http://www.w3.org/2000/svg"> 787 <rect width="40" height="40" rx="20" fill="#F5F5F5" /> 788 <path 789 d="M18 10C15.8783 10 13.8434 10.8429 12.3431 12.3431C10.8429 13.8434 10 15.8783 10 18C10 20.1217 10.8429 22.1566 12.3431 23.6569C13.8434 25.1571 15.8783 26 18 26C20.1217 26 22.1566 25.1571 23.6569 23.6569C25.1571 22.1566 26 20.1217 26 18C26 15.8783 25.1571 13.8434 23.6569 12.3431C22.1566 10.8429 20.1217 10 18 10Z" 790 fill="#3C3C3B" /> 791 <path fill-rule="evenodd" clip-rule="evenodd" 792 d="M29.707 29.707C29.5195 29.8945 29.2652 29.9998 29 29.9998C28.7349 29.9998 28.4806 29.8945 28.293 29.707L24.793 26.207C24.6109 26.0184 24.5101 25.7658 24.5124 25.5036C24.5146 25.2414 24.6198 24.9906 24.8052 24.8052C24.9906 24.6198 25.2414 24.514
7926 25.5036 24.5123C25.7658 24.5101 26.0184 24.6109 26.207 24.793L29.707 28.293C29.8945 28.4805 29.9998 28.7348 29.9998 29C29.9998 29.2652 29.8945 29.5195 29.707 29.707Z" 793 fill="#3C3C3B" /> 794 </svg> 795 </a> 796 <div class="subs-and-seguidores"> 797 <p><span 798 data-target="125000">125000</span> 799 seguidores</p> 800 <p>en redes sociales</p> 801 </div> 802 </div> 803 <!-- // Left --> 804 805 <!-- Center --> 806 <div class="CORP-center"> 807 <h1><a class="wrap-logo " 808 title="Ãltimas noticias sobre top-100-FRS en FRS" href="//www.foodretail.es/" 809 style="background-image: url(/web/assets_new/img/www.foodretail.es/logos/logo-www.foodretail.es-color.svg);background-position:center;"></a> 810 </h1> 811 </div> 812 <!-- Center --> 813 814 <!-- Right --> 815 <div id="contenedor-login-header" class="CORP-right"> 816 <!-- carga dinámica de botones através de la API --> 817 </div> 818 <!-- // Right --> 819 820 </div> 821 </div> 822 <!-- // CORPORATIVO --> 823 824 <!-- NAVEGACION - NAV --> 825 <div class="wrap-TRIPLE wrap-NAV" data-id-publi="2041734"> 826 <!-- Bottom --> 827 <div class="NAV-Bottom"> 828 <div class="container"> 829 <nav> 830 <ul> 831 <li class="no-padding bg-darkblue"><a href="/novedades/" itemprop="url">NOVEDADES</a></li><li class="no-padding bg-darkblue"><a href="/sector-fmcg/" itemprop="url">SECTOR</a></li><li class="no-padding bg-darkblue"><a href="/retailers/" itemprop="url">RETAILERS</a></li><li class="no-padding bg-darkblue"><a href="/franquicias-cooperativas-supermercados/" itemprop="url">FRANQUICIAS</a></li><li class="no-padding bg-darkblue"><a href="/fabricantes/" itemprop="url">FABRICANTES</a></li><li class="no-padding bg-darkblue"><a href="/frutas-hortalizas/" itemprop="url">FRUTAS Y HORTALIZAS</a></li><li class="no-padding bg-darkblue"><a href="/convenience-food/" itemprop="url">CONVENIENCE FOOD</a></li><li class="no-padding bg-darkblue"><a href="/horeca/" itemprop="url">HORECA</a></li><li class="no-padding bg-darkblue"><a href="/voz-consumidor/" itemprop="url">LA VOZ DEL CONSUMIDOR</a></li> 832 </ul> 833 </nav> 834 </div> 835 </div> 836 <!-- // Bottom --> 837 </div> 838 <!-- // NAVEGACION - NAV --> 839 </div> 840 <!-- // Wrap HEADER --> 841 842 <!------------------------------------------------------------------------------------------------------------------------------------------------------------> 843 <!------------------------------------------------------------------------------------------------------------------------------------------------------------> 844 <!------------------------------------------------------------------------------------------------------------------------------------------------------------> 845 <!------------------------------------------------------------------------------------------------------------------------------------------------------------> 846 847 848 <!-- MAIN --> 849 <main class="cd-main-content"> 850 851 852 853<!-- Wrap LISTADO --> 854<div class="wrap-LISTADO wrap-MEDIO"> 855 856 <div class='container-mega'><!-- BN --> 857<!-- //BN ID 3|portada|wrapper|mega|7 --> 858<div class=BN> 859<div id="sas_133119"></div>
860<script type="application/javascript"> 861 sas.cmd.push(function() { 862 sas.render("sas_133119"); // Format : i_Mega_2 980x250 863 }); 864</script>
864 865</div> 866<!-- //BN ID 3|portada|wrapper|mega|7 --> 867<!-- //BN --> 868</div> <div class="container"> 869 870 871 </div> 872 <div class="container"> 873 <div class="section "> 874 875 876 <div class="cabecero-cate-tag wrap-titulo"> 877 <h2> 878 ÃLTIMAS NOTICIAS SOBRE TOP-100-FRS EN FRS </h2> 879 </div> 880 881 882 <!-- row --> 883 <div class="flex"> 884 885 886 887 <!-- CONTENIDO-IZQ LISTADO_BUSQUEDA --> 888 <div class="CONTENIDO-IZQ LISTADO_BUSQUEDA LISTADO_NORMAL"> 889 890 <div class="primeros-tres-articulos"> 891 <div class="MODULO articulo-principal"> 892 <div class="MODULO_M"> 893 <div class="sec-wrap"> 894 895 <!-- ART --> 896 <article itemscope 897 itemtype="http://schema.org/NewsArticle" > 898 899 <div class="wrap-both"> 900 901 <div class="wrap-media"> 902 <figure itemprop="image" itemscope 903 itemtype="http://schema.org/ImageObject" > 904 <a href="/blogs/con-mi-marca-blanca/quien-es-quien-en-el-sector-alimentacion-en-espana-top-100-profesionales-2026-frs.html" 905 title="Quién es quién en la Alimentación en España: El TOP 100 de profesionales más influyentes (2026)"> 906 <div class="img-wrap "> 907 <img src="//d3nqciqdbtzkc.cloudfront.net/articulos/articulos-115764.jpg" 908 alt="Quién es quién en la Alimentación en España: El TOP 100 de profesionales más influyentes (2026)" 909 title="Quién es quién en la Alimentación en España: El TOP 100 de profesionales más influyentes (2026)" 910 onerror="this.onerror=null; this.src='/web/assets/img/sin-imagen.jpg';" /> 911 </div> 912 </a> 913 </figure> 914 </div> 915 <!-- modulos opi 4,5,6 y 7 --> 916 <!-- modulos opi 4,5,6 y 7 --> 917 <div class="wrap-text"> 918 <p class="count_lo_mas_leido"> 919 1 </p> 920 <!-- op-redactor new --> 921 <div class="op-redactor"> 922 <a href="/redaccion/"><span> 923 924 925 Carlos Azofra </span> 926 </a> 927 </div> 928 <!-- op-redactor new --> 929 <div class="pretitulo"><!-- pretitulo --> 930 <a href="/blogs/con-mi-marca-blanca/quien-es-quien-en-el-sector-alimentacion-en-espana-top-100-profesionales-2026-frs.html"> 931 </a> 932 </div> 933 934 <header> 935 <h3 itemprop="headline" > 936 937 <a itemprop="url" href="/blogs/con-mi-marca-blanca/quien-es-quien-en-el-sector-alimentacion-en-espana-top-100-profesionales-2026-frs.html" 938 title="Quién es quién en la Alimentación en España: El TOP 100 de profesionales más influyentes (2026)"> 939 940 941 Quién es quién en la Alimentación en España: El TOP 100 de profesionales más influyentes (2026) </a> 942 </h3> 943 </header> 944 945 <div class="entradilla" itemprop="description" > 946 </div> 947 </div> 948 </div> 949 </article> 950 <!-- / ART --> 951 </div> 952 </div> 953 </div> 954 <div class="articulos-secundarios-wrapper"> 955 <div class="MODULO articulo-secundario"> 956 <div class="MODULO_M"> 957 <div class="sec-wrap"> 958 959 <!-- ART --> 960 <article itemscope 961 itemtype="http://schema.org/NewsArticle" > 962 963 <div class="wrap-both"> 964 965 <div class="wrap-media"> 966 <figure itemprop="image" itemscope 967 itemtype="http://schema.org/ImageObject" > 968 <a href="/sector-fmcg/descarga-con-un-solo-clic-el-ebook-exclusivo-top-100-frs-profesionales-del-sector-alimentacion-fmcg.html" 969 title="Descarga con un solo clic el ebook exclusivo "TOP 100 FRS Profesionales del sector Alimentación (FMCG)""> 970 <div class="img-wrap "> 971 <img src="//d3nqciqdbtzkc.cloudfront.net/articulos/articulos-115708.jpg" 972 alt="Descarga con un solo clic el ebook exclusivo "TOP 100 FRS Profesionales del sector Alimentación (FMCG)"" 973 title="Descarga con un solo clic el ebook exclusivo "TOP 100 FRS Profesionales del sector Alimentación (FMCG)"" 974 onerror="this.onerror=null; this.src='/web/assets/img/sin-imagen.jpg';" /> 975 </div> 976 </a> 977 </figure> 978 </div> 979 <!-- modulos opi 4,5,6 y 7 --> 980 <!-- modulos opi 4,5,6 y 7 --> 981 <div class="wrap-text"> 982 <p class="count_lo_mas_leido"> 983 2 </p> 984 <!-- op-redactor new --> 985 <div class="op-redactor"> 986 <a href="/redaccion/"><span> 987 988 989 Maite M. Vendrell </span> 990 </a> 991 </div> 992 <!-- op-redactor new --> 993 <div class="pretitulo"><!-- pretitulo --> 994 <a href="/sector-fmcg/descarga-con-un-solo-clic-el-ebook-exclusivo-top-100-frs-profesionales-del-sector-alimentacion-fmcg.html"> 995 </a> 996 </div> 997 998 <header> 999 <h3 itemprop="headline" > 1000 1001 <a itemprop="url" href="/sector-fmcg/descarga-con-un-solo-clic-el-ebook-exclusivo-top-100-frs-profesionales-del-sector-alimentacion-fmcg.html" 1002 title="Descarga con un solo clic el ebook exclusivo "TOP 100 FRS Profesionales del sector Alimentación (FMCG)""> 1003 1004 1005 Descarga con un solo clic el ebook exclusivo "TOP 100 FRS Profesionales del sector Alimentación (FMCG)" </a> 1006 </h3> 1007 </header> 1008 1009 <div class="entradilla" itemprop="description" > 1010 </div> 1011 </div> 1012 </div> 1013 </article> 1014 <!-- / ART --> 1015 </div> 1016 </div> 1017 </div> 1018 <div class="MODULO articulo-secundario"> 1019 <div class="MODULO_M"> 1020 <div class="sec-wrap"> 1021 1022 <!-- ART --> 1023 <article itemscope 1024 itemtype="http://schema.org/NewsArticle" > 1025 1026 <div class="wrap-both"> 1027 1028 <div class="wrap-media"> 1029 <figure itemprop="image" itemscope 1030 itemtype="http://schema.org/ImageObject" >
1031 <a href="/sector-fmcg/top-100-frs-2026-las-cien-personas-mas-influyentes-del-sector-alimentacion-fmcg.html" 1032 title="TOP 100 FRS 2026: los cien profesionales más valiosos e influyentes del sector Alimentación (FMCG)"> 1033 <div class="img-wrap "> 1034 <img src="//d3nqciqdbtzkc.cloudfront.net/articulos/articulos-114514.jpg" 1035 alt="TOP 100 FRS 2026: los cien profesionales más valiosos e influyentes del sector Alimentación (FMCG)" 1036 title="TOP 100 FRS 2026: los cien profesionales más valiosos e influyentes del sector Alimentación (FMCG)" 1037 onerror="this.onerror=null; this.src='/web/assets/img/sin-imagen.jpg';" /> 1038 </div> 1039 </a> 1040 </figure> 1041 </div> 1042 <!-- modulos opi 4,5,6 y 7 --> 1043 <!-- modulos opi 4,5,6 y 7 --> 1044 <div class="wrap-text"> 1045 <p class="count_lo_mas_leido"> 1046 3 </p> 1047 <!-- op-redactor new --> 1048 <div class="op-redactor"> 1049 <a href="/redaccion/"><span> 1050 1051 1052 Carlos Azofra </span> 1053 </a> 1054 </div> 1055 <!-- op-redactor new --> 1056 <div class="pretitulo"><!-- pretitulo --> 1057 <a href="/sector-fmcg/top-100-frs-2026-las-cien-personas-mas-influyentes-del-sector-alimentacion-fmcg.html"> 1058 </a> 1059 </div> 1060 1061 <header> 1062 <h3 itemprop="headline" > 1063 1064 <a itemprop="url" href="/sector-fmcg/top-100-frs-2026-las-cien-personas-mas-influyentes-del-sector-alimentacion-fmcg.html" 1065 title="TOP 100 FRS 2026: los cien profesionales más valiosos e influyentes del sector Alimentación (FMCG)"> 1066 1067 1068 TOP 100 FRS 2026: los cien profesionales más valiosos e influyentes del sector Alimentación (FMCG) </a> 1069 </h3> 1070 </header> 1071 1072 <div class="entradilla" itemprop="description" > 1073 </div> 1074 </div> 1075 </div> 1076 </article> 1077 <!-- / ART --> 1078 </div> 1079 </div> 1080 </div> 1081 </div> 1082 </div> 1083 <div class="MODULO"> 1084 <div class="MODULO_M"> 1085 <div class="sec-wrap"> 1086 1087 <!-- ART --> 1088 <article itemscope 1089 itemtype="http://schema.org/NewsArticle" > 1090 1091 <div class="wrap-both"> 1092 1093 <div class="wrap-media"> 1094 <figure itemprop="image" itemscope 1095 itemtype="http://schema.org/ImageObject" > 1096 <a href="/sector-fmcg/top-100-frs-profesionales-del-sector-alimentacion-puestos-1-a-10.html" 1097 title="TOP 100 FRS Profesionales del Sector Alimentación: Puestos 1 a 10"> 1098 <div class="img-wrap "> 1099 <img src="//d3nqciqdbtzkc.cloudfront.net/articulos/articulos-114263.jpg" 1100 alt="TOP 100 FRS Profesionales del Sector Alimentación: Puestos 1 a 10" 1101 title="TOP 100 FRS Profesionales del Sector Alimentación: Puestos 1 a 10" 1102 onerror="this.onerror=null; this.src='/web/assets/img/sin-imagen.jpg';" /> 1103 </div> 1104 </a> 1105 </figure> 1106 </div> 1107 <!-- modulos opi 4,5,6 y 7 --> 1108 <!-- modulos opi 4,5,6 y 7 --> 1109 <div class="wrap-text"> 1110 <p class="count_lo_mas_leido"> 1111 4 </p> 1112 <!-- op-redactor new --> 1113 <div class="op-redactor"> 1114 <a href="/redaccion/"><span> 1115 1116 1117 Carlos Azofra </span> 1118 </a> 1119 </div> 1120 <!-- op-redactor new --> 1121 <div class="pretitulo"><!-- pretitulo --> 1122 <a href="/sector-fmcg/top-100-frs-profesionales-del-sector-alimentacion-puestos-1-a-10.html"> 1123 </a> 1124 </div> 1125 1126 <header> 1127 <h3 itemprop="headline" > 1128 1129 <a itemprop="url" href="/sector-fmcg/top-100-frs-profesionales-del-sector-alimentacion-puestos-1-a-10.html" 1130 title="TOP 100 FRS Profesionales del Sector Alimentación: Puestos 1 a 10"> 1131 1132 1133 TOP 100 FRS Profesionales del Sector Alimentación: Puestos 1 a 10 </a> 1134 </h3> 1135 </header> 1136 1137 <div class="entradilla" itemprop="description" > 1138 </div> 1139 </div> 1140 </div> 1141 </article> 1142 <!-- / ART --> 1143 </div> 1144 </div> 1145 </div> 1146 <div class="MODULO"> 1147 <div class="MODULO_M"> 1148 <div class="sec-wrap"> 1149 1150 <!-- ART --> 1151 <article itemscope 1152 itemtype="http://schema.org/NewsArticle" > 1153 1154 <div class="wrap-both"> 1155 1156 <div class="wrap-media"> 1157 <figure itemprop="image" itemscope 1158 itemtype="http://schema.org/ImageObject" > 1159 <a href="/sector-fmcg/top-100-frs-profesionales-del-sector-alimentacion-puestos-11-a-20.html" 1160 title="TOP 100 FRS Profesionales del Sector Alimentación: Puestos 11 a 20"> 1161 <div class="img-wrap "> 1162 <img src="//d3nqciqdbtzkc.cloudfront.net/articulos/articulos-114038.jpg" 1163 alt="TOP 100 FRS Profesionales del Sector Alimentación: Puestos 11 a 20" 1164 title="TOP 100 FRS Profesionales del Sector Alimentación: Puestos 11 a 20" 1165 onerror="this.onerror=null; this.src='/web/assets/img/sin-imagen.jpg';" /> 1166 </div> 1167 </a> 1168 </figure> 1169 </div> 1170 <!-- modulos opi 4,5,6 y 7 --> 1171 <!-- modulos opi 4,5,6 y 7 --> 1172 <div class="wrap-text"> 1173 <p class="count_lo_mas_leido"> 1174 5 </p> 1175 <!-- op-redactor new --> 1176 <div class="op-redactor"> 1177 <a href="/redaccion/"><span> 1178 1179 1180 Carlos Azofra </span> 1181 </a> 1182 </div> 1183 <!-- op-redactor new --> 1184 <div class="pretitulo"><!-- pretitulo --> 1185 <a href="/sector-fmcg/top-100-frs-profesionales-del-sector-alimentacion-puestos-11-a-20.html"> 1186 </a> 1187 </div> 1188 1189 <header> 1190 <h3 itemprop="headline" > 1191 1192 <a itemprop="url" href="/sector-fmcg/top-100-frs-profesionales-del-sector-alimentacion-puestos-11-a-20.html" 1193 title="TOP 100 FRS Profesionales del Sector Alimentación: Puestos 11 a 20"> 1194 1195 1196 TOP 100 FRS Profesionales del Sector Alimentación: Puestos 11 a 20 </a> 1197 </h3> 1198 </header> 1199 1200 <div class="entradilla" itemprop="description" > 1201 </div> 1202 </div> 1203 </div> 1204 </article> 1205 <!-- / ART --> 1206 </div> 1207 </div> 1208 </div> 1209 <div class="MODULO"> 1210 <div class="MODULO_M"> 1211 <div class="sec-wrap"> 1212 1213 <!-- ART --> 1214 <article itemscope 1215 itemtype="http://schema.org/NewsArticle" > 1216 1217 <div class="wrap-both"> 1218 1219 <div class="wrap-media"> 1220 <figure itemprop="image" itemscope 1221 itemtype="http://schema.org/ImageObject" > 1222 <a href="/sector-fmcg/top-100-frs-profesionales-del-sector-alimentacion-puestos-21-a-30.html" 1223 title="TOP 100 FRS Profesionales del Sector Alimentación: Puestos 21 a 30"> 1224 <div class="img-wrap "> 1225 <img src="//d3nqciqdbtzkc.cloudfront.net/articulos/articulos-113911.jpg" 1226 alt="TOP 100 FRS Profesionales del Sector Alimentación: Puestos 21 a 30" 1227 title="TOP 100 FRS Profesionales del Sector Alimentación: Puestos 21 a 30" 1228 onerror="this.onerror=null; this.src='/web/assets/img/sin-imagen.jpg';" /> 1229 </div> 1230 </a> 1231 </figure> 1232 </div> 1233 <!-- modulos opi 4,5,6 y 7 --> 1234 <!-- modulos opi 4,5,6 y 7 --> 1235 <div class="wrap-text"> 1236 <p class="count_lo_mas_leido"> 1237 6 </p> 1238 <!-- op-redactor new --> 1239 <div class="op-redactor"> 1240 <a href="/redaccion/"><span> 1241 1242 1243 Carlos Azofra </span> 1244 </a> 1245 </div> 1246 <!-- op-redactor new --> 1247 <div class="pretitulo"><!-- pretitulo --> 1248 <a href="/sector-fmcg/top-100-frs-profesionales-del-sector-alimentacion-puestos-21-a-30.html"> 1249 </a> 1250 </div> 1251 1252 <header> 1253 <h3 itemprop="headline" > 1254 1255 <a itemprop="url" href="/sector-fmcg/top-100-frs-profesionales-del-sector-alimentacion-puestos-21-a-30.html" 1256 title="TOP 100 FRS Profesionales del Sector Alimentación: Puestos 21 a 30"> 1257 1258 1259 TOP 100 FRS Profesionales del Sector Alimentación: Puestos 21 a 30 </a> 1260 </h3> 1261 </header> 1262 1263 <div class="entradilla" itemprop="description" > 1264 </div> 1265 </div> 1266 </div> 1267 </article> 1268 <!-- / ART --> 1269 </div> 1270 </div> 1271 </div> 1272 <div class="MODULO"> 1273 <div class="MODULO_M"> 1274 <div class="sec-wrap"> 1275 1276 <!-- ART --> 1277 <article itemscope 1278 itemtype="http://schema.org/NewsArticle" > 1279 1280 <div class="wrap-both"> 1281 1282 <div class="wrap-media"> 1283 <figure itemprop="image" itemscope 1284 itemtype="http://schema.org/ImageObject" > 1285 <a href="/sector-fmcg/top-100-frs-profesionales-del-sector-alimentacion-puestos-31-a-40.html" 1286 title="TOP 100 FRS Profesionales del Sector Alimentación: Puestos 31 a 40"> 1287 <div class="img-wrap "> 1288 <img src="//d3nqciqdbtzkc.cloudfront.net/articulos/articulos-113724.jpg" 1289 alt="TOP 100 FRS Profesionales del Sector Alimentación: Puestos 31 a 40" 1290 title="TOP 100 FRS Profesionales del Sector Alimentación: Puestos 31 a 40" 1291 onerror="this.onerror=null; this.src='/web/assets/img/sin-imagen.jpg';" /> 1292 </div> 1293 </a> 1294 </figure> 1295 </div> 1296 <!-- modulos opi 4,5,6 y 7 --> 1297 <!-- modulos opi 4,5,6 y 7 --> 1298 <div class="wrap-text"> 1299 <p class="count_lo_mas_leido"> 1300 7 </p> 1301 <!-- op-redactor new --> 1302 <div class="op-redactor"> 1303 <a href="/redaccion/"><span> 1304 1305 1306 Carlos Azofra </span> 1307 </a> 1308 </div> 1309 <!-- op-redactor new --> 1310 <div class="pretitulo"><!-- pretitulo --> 1311 <a href="/sector-fmcg/top-100-frs-profesionales-del-sector-alimentacion-puestos-31-a-40.html"> 1312 </a> 1313 </div> 1314 1315 <header> 1316 <h3 itemprop="headline" > 1317 1318 <a itemprop="url" href="/sector-fmcg/top-100-frs-profesionales-del-sector-alimentacion-puestos-31-a-40.html" 1319 title="TOP 100 FRS Profesionales del Sector Alimentación: Puestos 31 a 40"> 1320 1321 1322 TOP 100 FRS Profesionales del Sector Alimentación: Puestos 31 a 40 </a> 1323 </h3> 1324 </header> 1325 1326 <div class="entradilla" itemprop="description" > 1327 </div> 1328 </div> 1329 </div> 1330 </article> 1331 <!-- / ART --> 1332 </div> 1333 </div> 1334 </div> 1335 <div class="MODULO"> 1336 <div class="MODULO_M"> 1337 <div class="sec-wrap"> 1338 1339 <!-- ART --> 1340 <article itemscope 1341 itemtype="http://schema.org/NewsArticle" > 1342 1343 <div class="wrap-both"> 1344 1345 <div class="wrap-media"> 1346 <figure itemprop="image" itemscope 1347 itemtype="http://schema.org/ImageObject" > 1348 <a href="/sector-fmcg/top-100-frs-profesionales-del-sector-alimentacion-puestos-41-a-50.html" 1349 title="TOP 100 FRS Profesionales del Sector Alimentación: Puestos 41 a 50"> 1350 <div class="img-wrap "> 1351 <img src="//d3nqciqdbtzkc.cloudfront.net/articulos/articulos-113531.jpg" 1352 alt="TOP 100 FRS Profesionales del Sector Alimentación: Puestos 41 a 50" 1353 title="TOP 100 FRS Profesionales del Sector Alimentación: Puestos 41 a 50" 1354 onerror="this.onerror=null; this.src='/web/assets/img/sin-imagen.jpg';" /> 1355 </div> 1356 </a> 1357 </figure> 1358 </div> 1359 <!-- modulos opi 4,5,6 y 7 --> 1360 <!-- modulos opi 4,5,6 y 7 --> 1361 <div class="wrap-text"> 1362 <p class="count_lo_mas_leido"> 1363 8 </p> 1364 <!-- op-redactor new --> 1365 <div class="op-redactor"> 1366 <a href="/redaccion/"><span> 1367 1368 1369 Carlos Azofra </span> 1370 </a> 1371 </div> 1372 <!-- op-redactor new --> 1373 <div class="pretitulo"><!-- pretitulo --> 1374 <a href="/sector-fmcg/top-100-frs-profesionales-del-sector-alimentacion-puestos-41-a-50.html"> 1375 </a> 1376 </div> 1377 1378 <header> 1379 <h3 itemprop="headline" > 1380 1381 <a itemprop="url" href="/sector-fmcg/top-100-frs-profesionales-del-sector-alimentacion-puestos-41-a-50.html" 1382 title="TOP 100 FRS Profesionales del Sector Alimentación: Puestos 41 a 50"> 1383 1384 1385 TOP 100 FRS Profesionales del Sector Alimentación: Puestos 41 a 50 </a> 1386 </h3> 1387 </header> 1388 1389 <div class="entradilla" itemprop="description" > 1390 </div> 1391 </div> 1392 </div> 1393 </article> 1394 <!-- / ART --> 1395 </div> 1396 </div> 1397 </div> 1398 <div class="MODULO"> 1399 <div class="MODULO_M"> 1400 <div class="sec-wrap"> 1401 1402 <!-- ART --> 1403 <article itemscope 1404 itemtype="http://schema.org/NewsArticle" > 1405 1406 <div class="wrap-both"> 1407 1408 <div class="wrap-media"> 1409 <figure itemprop="image" itemscope 1410 itemtype="http://schema.org/ImageObject" > 1411 <a href="/sector-fmcg/top-100-frs-profesionales-del-sector-alimentacion-puestos-51-a-60.html" 1412 title="TOP 100 FRS Profesionales del sector Alimentación: Puestos 51 a 60"> 1413 <div class="img-wrap "> 1414 <img src="//d3nqciqdbtzkc.cloudfront.net/articulos/articulos-113376.jpg" 1415 alt="TOP 100 FRS Profesionales del sector Alimentación: Puestos 51 a 60" 1416 title="TOP 100 FRS Profesionales del sector Alimentación: Puestos 51 a 60" 1417 onerror="this.onerror=null; this.src='/web/assets/img/sin-imagen.jpg';" /> 1418 </div> 1419 </a> 1420 </figure> 1421 </div> 1422 <!-- modulos opi 4,5,6 y 7 --> 1423 <!-- modulos opi 4,5,6 y 7 --> 1424 <div class="wrap-text"> 1425 <p class="count_lo_mas_leido"> 1426 9 </p> 1427 <!-- op-redactor new --> 1428 <div class="op-redactor"> 1429 <a href="/redaccion/"><span> 1430 1431 1432 Carlos Azofra </span> 1433 </a> 1434 </div> 1435 <!-- op-redactor new --> 1436 <div class="pretitulo"><!-- pretitulo --> 1437 <a href="/sector-fmcg/top-100-frs-profesionales-del-sector-alimentacion-puestos-51-a-60.html"> 1438 </a> 1439 </div> 1440 1441 <header> 1442 <h3 itemprop="headline" > 1443 1444 <a itemprop="url" href="/sector-fmcg/top-100-frs-profesionales-del-sector-alimentacion-puestos-51-a-60.html" 1445 title="TOP 100 FRS Profesionales del sector Alimentación: Puestos 51 a 60"> 1446 1447 1448 TOP 100 FRS Profesionales del sector Alimentación: Puestos 51 a 60 </a> 1449 </h3> 1450 </header> 1451 1452 <div class="entradilla" itemprop="description" > 1453 </div> 1454 </div> 1455 </div> 1456 </article> 1457 <!-- / ART --> 1458 </div> 1459 </div> 1460 </div> 1461 <div class="MODULO"> 1462 <div class="MODULO_M"> 1463 <div class="sec-wrap"> 1464 1465 <!-- ART --> 1466 <article itemscope 1467 itemtype="http://schema.org/NewsArticle" > 1468 1469 <div class="wrap-both"> 1470 1471 <div class="wrap-media"> 1472 <figure itemprop="image" itemscope 1473 itemtype="http://schema.org/ImageObject" > 1474 <a href="/sector-fmcg/top-100-frs-profesionales-del-sector-alimentacion-puestos-61-a-70.html" 1475 title="TOP 100 FRS Profesionales del sector Alimentación: Puestos 61 a 70"> 1476 <div class="img-wrap "> 1477 <img src="//d3nqciqdbtzkc.cloudfront.net/articulos/articulos-113268.jpg" 1478 alt="TOP 100 FRS Profesionales del sector Alimentación: Puestos 61 a 70" 1479 title="TOP 100 FRS Profesionales del sector Alimentación: Puestos 61 a 70" 1480 onerror="this.onerror=null; this.src='/web/assets/img/sin-imagen.jpg';" /> 1481 </div> 1482 </a> 1483 </figure> 1484 </div> 1485 <!-- modulos opi 4,5,6 y 7 --> 1486 <!-- modulos opi 4,5,6 y 7 --> 1487 <div class="wrap-text"> 1488 <p class="count_lo_mas_leido"> 1489 10 </p> 1490 <!-- op-redactor new --> 1491 <div class="op-redactor"> 1492 <a href="/redaccion/"><span> 1493 1494 1495 Carlos Azofra </span> 1496 </a> 1497 </div> 1498 <!-- op-redactor new --> 1499 <div class="pretitulo"><!-- pretitulo --> 1500 <a href="/sector-fmcg/top-100-frs-profesionales-del-sector-alimentacion-puestos-61-a-70.html"> 1501 </a> 1502 </div> 1503 1504 <header> 1505 <h3 itemprop="headline" > 1506 1507 <a itemprop="url" href="/sector-fmcg/top-100
1507-frs-profesionales-del-sector-alimentacion-puestos-61-a-70.html" 1508 title="TOP 100 FRS Profesionales del sector Alimentación: Puestos 61 a 70"> 1509 1510 1511 TOP 100 FRS Profesionales del sector Alimentación: Puestos 61 a 70 </a> 1512 </h3> 1513 </header> 1514 1515 <div class="entradilla" itemprop="description" > 1516 </div> 1517 </div> 1518 </div> 1519 </article> 1520 <!-- / ART --> 1521 </div> 1522 </div> 1523 </div> 1524 <div class="MODULO"> 1525 <div class="MODULO_M"> 1526 <div class="sec-wrap"> 1527 1528 <!-- ART --> 1529 <article itemscope 1530 itemtype="http://schema.org/NewsArticle" > 1531 1532 <div class="wrap-both"> 1533 1534 <div class="wrap-media"> 1535 <figure itemprop="image" itemscope 1536 itemtype="http://schema.org/ImageObject" > 1537 <a href="/sector-fmcg/top-100-frs-profesionales-del-sector-alimentacion-puestos-71-a-80.html" 1538 title="TOP 100 FRS Profesionales del Sector Alimentación: Puestos 71 a 80"> 1539 <div class="img-wrap "> 1540 <img src="//d3nqciqdbtzkc.cloudfront.net/articulos/articulos-113201.jpg" 1541 alt="TOP 100 FRS Profesionales del Sector Alimentación: Puestos 71 a 80" 1542 title="TOP 100 FRS Profesionales del Sector Alimentación: Puestos 71 a 80" 1543 onerror="this.onerror=null; this.src='/web/assets/img/sin-imagen.jpg';" /> 1544 </div> 1545 </a> 1546 </figure> 1547 </div> 1548 <!-- modulos opi 4,5,6 y 7 --> 1549 <!-- modulos opi 4,5,6 y 7 --> 1550 <div class="wrap-text"> 1551 <p class="count_lo_mas_leido"> 1552 11 </p> 1553 <!-- op-redactor new --> 1554 <div class="op-redactor"> 1555 <a href="/redaccion/"><span> 1556 1557 1558 Carlos Azofra </span> 1559 </a> 1560 </div> 1561 <!-- op-redactor new --> 1562 <div class="pretitulo"><!-- pretitulo --> 1563 <a href="/sector-fmcg/top-100-frs-profesionales-del-sector-alimentacion-puestos-71-a-80.html"> 1564 </a> 1565 </div> 1566 1567 <header> 1568 <h3 itemprop="headline" > 1569 1570 <a itemprop="url" href="/sector-fmcg/top-100-frs-profesionales-del-sector-alimentacion-puestos-71-a-80.html" 1571 title="TOP 100 FRS Profesionales del Sector Alimentación: Puestos 71 a 80"> 1572 1573 1574 TOP 100 FRS Profesionales del Sector Alimentación: Puestos 71 a 80 </a> 1575 </h3> 1576 </header> 1577 1578 <div class="entradilla" itemprop="description" > 1579 </div> 1580 </div> 1581 </div> 1582 </article> 1583 <!-- / ART --> 1584 </div> 1585 </div> 1586 </div> 1587 <div class="MODULO"> 1588 <div class="MODULO_M"> 1589 <div class="sec-wrap"> 1590 1591 <!-- ART --> 1592 <article itemscope 1593 itemtype="http://schema.org/NewsArticle" > 1594 1595 <div class="wrap-both"> 1596 1597 <div class="wrap-media"> 1598 <figure itemprop="image" itemscope 1599 itemtype="http://schema.org/ImageObject" > 1600 <a href="/sector-fmcg/cuenta-atras-del-top-100-frs-conoce-a-los-profesionales-fmcg-destacados-del-puesto-81-al-90.html" 1601 title="TOP 100 FRS Profesionales del Sector Alimentación: Puestos 81 a 90"> 1602 <div class="img-wrap "> 1603 <img src="//d3nqciqdbtzkc.cloudfront.net/articulos/articulos-112915.jpg" 1604 alt="TOP 100 FRS Profesionales del Sector Alimentación: Puestos 81 a 90" 1605 title="TOP 100 FRS Profesionales del Sector Alimentación: Puestos 81 a 90" 1606 onerror="this.onerror=null; this.src='/web/assets/img/sin-imagen.jpg';" /> 1607 </div> 1608 </a> 1609 </figure> 1610 </div> 1611 <!-- modulos opi 4,5,6 y 7 --> 1612 <!-- modulos opi 4,5,6 y 7 --> 1613 <div class="wrap-text"> 1614 <p class="count_lo_mas_leido"> 1615 12 </p> 1616 <!-- op-redactor new --> 1617 <div class="op-redactor"> 1618 <a href="/redaccion/"><span> 1619 1620 1621 Carlos Azofra </span> 1622 </a> 1623 </div> 1624 <!-- op-redactor new --> 1625 <div class="pretitulo"><!-- pretitulo --> 1626 <a href="/sector-fmcg/cuenta-atras-del-top-100-frs-conoce-a-los-profesionales-fmcg-destacados-del-puesto-81-al-90.html"> 1627 </a> 1628 </div> 1629 1630 <header> 1631 <h3 itemprop="headline" > 1632 1633 <a itemprop="url" href="/sector-fmcg/cuenta-atras-del-top-100-frs-conoce-a-los-profesionales-fmcg-destacados-del-puesto-81-al-90.html" 1634 title="TOP 100 FRS Profesionales del Sector Alimentación: Puestos 81 a 90"> 1635 1636 1637 TOP 100 FRS Profesionales del Sector Alimentación: Puestos 81 a 90 </a> 1638 </h3> 1639 </header> 1640 1641 <div class="entradilla" itemprop="description" > 1642 </div> 1643 </div> 1644 </div> 1645 </article> 1646 <!-- / ART --> 1647 </div> 1648 </div> 1649 </div> 1650 <div class="MODULO"> 1651 <div class="MODULO_M"> 1652 <div class="sec-wrap"> 1653 1654 <!-- ART --> 1655 <article itemscope 1656 itemtype="http://schema.org/NewsArticle" > 1657 1658 <div class="wrap-both"> 1659 1660 <div class="wrap-media"> 1661 <figure itemprop="image" itemscope 1662 itemtype="http://schema.org/ImageObject" > 1663 <a href="/sector-fmcg/cuenta-atras-del-top-100-frs-conoce-a-los-profesionales-fmcg-destacados-del-puesto-91-al-100.html" 1664 title="Cuenta atrás del TOP 100 FRS: conoce a los profesionales FMCG destacados del puesto 100 al 91"> 1665 <div class="img-wrap "> 1666 <img src="//d3nqciqdbtzkc.cloudfront.net/articulos/articulos-112676.jpg" 1667 alt="Cuenta atrás del TOP 100 FRS: conoce a los profesionales FMCG destacados del puesto 100 al 91" 1668 title="Cuenta atrás del TOP 100 FRS: conoce a los profesionales FMCG destacados del puesto 100 al 91" 1669 onerror="this.onerror=null; this.src='/web/assets/img/sin-imagen.jpg';" /> 1670 </div> 1671 </a> 1672 </figure> 1673 </div> 1674 <!-- modulos opi 4,5,6 y 7 --> 1675 <!-- modulos opi 4,5,6 y 7 --> 1676 <div class="wrap-text"> 1677 <p class="count_lo_mas_leido"> 1678 13 </p> 1679 <!-- op-redactor new --> 1680 <div class="op-redactor"> 1681 <a href="/redaccion/"><span> 1682 1683 1684 Carlos Azofra </span> 1685 </a> 1686 </div> 1687 <!-- op-redactor new --> 1688 <div class="pretitulo"><!-- pretitulo --> 1689 <a href="/sector-fmcg/cuenta-atras-del-top-100-frs-conoce-a-los-profesionales-fmcg-destacados-del-puesto-91-al-100.html"> 1690 </a> 1691 </div> 1692 1693 <header> 1694 <h3 itemprop="headline" > 1695 1696 <a itemprop="url" href="/sector-fmcg/cuenta-atras-del-top-100-frs-conoce-a-los-profesionales-fmcg-destacados-del-puesto-91-al-100.html" 1697 title="Cuenta atrás del TOP 100 FRS: conoce a los profesionales FMCG destacados del puesto 100 al 91"> 1698 1699 1700 Cuenta atrás del TOP 100 FRS: conoce a los profesionales FMCG destacados del puesto 100 al 91 </a> 1701 </h3> 1702 </header> 1703 1704 <div class="entradilla" itemprop="description" > 1705 </div> 1706 </div> 1707 </div> 1708 </article> 1709 <!-- / ART --> 1710 </div> 1711 </div> 1712 </div> 1713 <div class="MODULO"> 1714 <div class="MODULO_M"> 1715 <div class="sec-wrap"> 1716 1717 <!-- ART --> 1718 <article itemscope 1719 itemtype="http://schema.org/NewsArticle" > 1720 1721 <div class="wrap-both"> 1722 1723 <div class="wrap-media"> 1724 <figure itemprop="image" itemscope 1725 itemtype="http://schema.org/ImageObject" > 1726 <a href="/sector-fmcg/top-100-frs-los-profesionales-que-marcan-el-rumbo-de-la-alimentacion-en-espana.html" 1727 title="TOP 100 FRS: los profesionales que marcan el rumbo de la Alimentación en España"> 1728 <div class="img-wrap "> 1729 <img src="//d3nqciqdbtzkc.cloudfront.net/articulos/articulos-112655.jpg" 1730 alt="TOP 100 FRS: los profesionales que marcan el rumbo de la Alimentación en España" 1731 title="TOP 100 FRS: los profesionales que marcan el rumbo de la Alimentación en España" 1732 onerror="this.onerror=null; this.src='/web/assets/img/sin-imagen.jpg';" /> 1733 </div> 1734 </a> 1735 </figure> 1736 </div> 1737 <!-- modulos opi 4,5,6 y 7 --> 1738 <!-- modulos opi 4,5,6 y 7 --> 1739 <div class="wrap-text"> 1740 <p class="count_lo_mas_leido"> 1741 14 </p> 1742 <!-- op-redactor new --> 1743 <div class="op-redactor"> 1744 <a href="/redaccion/"><span> 1745 1746 1747 Carlos Azofra </span> 1748 </a> 1749 </div> 1750 <!-- op-redactor new --> 1751 <div class="pretitulo"><!-- pretitulo --> 1752 <a href="/sector-fmcg/top-100-frs-los-profesionales-que-marcan-el-rumbo-de-la-alimentacion-en-espana.html"> 1753 </a> 1754 </div> 1755 1756 <header> 1757 <h3 itemprop="headline" > 1758 1759 <a itemprop="url" href="/sector-fmcg/top-100-frs-los-profesionales-que-marcan-el-rumbo-de-la-alimentacion-en-espana.html" 1760 title="TOP 100 FRS: los profesionales que marcan el rumbo de la Alimentación en España"> 1761 1762 1763 TOP 100 FRS: los profesionales que marcan el rumbo de la Alimentación en España </a> 1764 </h3> 1765 </header> 1766 1767 <div class="entradilla" itemprop="description" > 1768 </div> 1769 </div> 1770 </div> 1771 </article> 1772 <!-- / ART --> 1773 </div> 1774 </div> 1775 </div> 1776 1777 1778 1779 </div> 1780 <!-- // CONTENIDO-IZQ LISTADO_NORMAL --> 1781 1782 <!-- CONTENIDO-DER --> 1783 <div class="CONTENIDO-DER wrap-SIMPLE"> 1784 1785 1786 <div id="roba_desktop_1"> 1787 </div> 1788 1789 1790 1791 1792 <div id="roba_desktop_2"> 1793 </div> 1794 1795 <div class="container"> 1796 <div class="row"> 1797 <div class="col s12"> 1798 1799 <div class="box_ box_outline _box_xs"> 1800 <p>Listas de difusión FRS</p>
1801 <a href="#modal-registro" 1802 class="modal-trigger btn_ btn_periodico_color_2">UNIRME</a> 1803 </div> 1804 1805 </div><!-- col s12 boletin --> 1806 </div><!-- row boletin --> 1807 </div><!-- container boletin --> 1808 1809 <div id="roba_desktop_3"> 1810 </div> 1811 1812 <div id="roba_desktop_4"> 1813 </div> 1814 1815 <div id="roba_desktop_5"> 1816 </div> 1817 1818 <div id="roba_desktop_6"> 1819 </div> 1820 1821 <div class="container"> 1822 <div class="row"> 1823 <div class="col s12 l12"> 1824 <p class="lo-mas-leido-cabecero"> 1825 <span>Lo Más LeÃdo</span> 1826 </p> 1827 <ul class="ul-lo-mas-leido"> 1828 <li> 1829 <a href="/retailers/javier-bardes-alcampo-el-futuro-pasara-por-combinar-buena-gestion-producto-de-calidad-y-una-experiencia-de-compra-mas-atractiva.html"> 1830 <div class="div-number first-number"> 1831 <span> 1832 1 </span> 1833 </div> 1834 Javier Bardés (Alcampo): "El futuro pasará por combinar buena gestión, producto de calida
1834d y una experiencia de compra más atractiva" </a> 1835 </li> 1836 <li> 1837 <a href="/especiales/ferias_y_eventos/foodretailes-especiales-ferias-y-eventos-visitanos-en-fruit-attraction-2026-en-el-estand-frs.html"> 1838 <div class="div-number first-number"> 1839 <span> 1840 2 </span> 1841 </div> 1842 VisÃtanos en Fruit Attraction 2026, en el estand 5A01 </a> 1843 </li> 1844 <li> 1845 <a href="/retailers/carrefour-negocia-para-hacerse-con-las-3000-tiendas-de-proximidad-de-codifrance.html"> 1846 <div class="div-number first-number"> 1847 <span> 1848 3 </span> 1849 </div> 1850 Carrefour negocia para hacerse con las 3.000 tiendas de proximidad de Codifrance </a> 1851 </li> 1852 <li> 1853 <a href="/especiales/remitidas/climatizacion-eficiente-en-la-logistica-alimentaria.html"> 1854 <div class="div-number first-number"> 1855 <span> 1856 4 </span> 1857 </div> 1858 Climatización eficiente en la logÃstica alimentaria⨠</a> 1859 </li> 1860 <li> 1861 <a href="/especiales/ferias_y_eventos/sial-innovation-2026-explora-las-ultimas-tendencias-en-alimentacion-coincidiendo-con-su-30-aniversario.html"> 1862 <div class="div-number first-number"> 1863 <span> 1864 5 </span> 1865 </div> 1866 Sial Innovation 2026 explora las últimas tendencias en alimentación coincidiendo con su 30º aniversario </a> 1867 </li> 1868 </ul> 1869 <!-- EJEMPLO ESTÃTICO (ELIMINAR) --> 1870 1871 <!-- EJEMPLO ESTÃTICO (ELIMINAR) --> 1872 </div> 1873 </div> 1874 </div> 1875 1876 1877 1878 <div id="roba_desktop_7"> 1879 </div> 1880 1881 <div id="roba_desktop_8"> 1882 </div> 1883 <div id="roba_desktop_9"> 1884 </div> 1885 <div id="roba_desktop_10"> 1886 </div> 1887 1888 1889 1890 </div> 1891 <!-- // CONTENIDO-DER --> 1892 1893 <!-- banner intermedio especial --> 1894 <div class="container"> 1895 <div class="row"> 1896 <div class="col s12"> 1897 1898 <div class="box_ box_color _box_lg"> 1899 <p>Listas de difusión FRS</p> 1900 <span>InspÃrate y contribuye cada mañana a tu éxito profesional con nuestra información 1901 de alto valor</span> 1902 <a href="" class="btn_ btn_gris">UNIRME</a> 1903 </div> 1904 1905 </div> 1906 </div> 1907 </div> 1908 <!-- banner intermedio especial --> 1909 1910 1911 </div> 1912 <!-- // row --> 1913 </div> 1914 </div> 1915 <div class='container-mega'><!-- BN --> 1916<!-- //BN ID 4|portada|wrapper|mega|8 --> 1917<div class=BN> 1918<div id="sas_133120"></div>
1919<script type="application/javascript"> 1920 sas.cmd.push(function() { 1921 sas.render("sas_133120"); // Format : i_Mega_3 980x250 1922 }); 1923</script>
1923 1924</div> 1925<!-- //BN ID 4|portada|wrapper|mega|8 --> 1926<!-- //BN --> 1927</div> 1928</div> 1929<!-- // Wrap LISTADO --> 1930<!----------------------------------------------------> 1931<!----------------------------------------------------> 1932<!----------------------------------------------------><!------------------------------------------------------------------------------------------------------------------------------------------------------------> 1933<!------------------------------------------------------------------------------------------------------------------------------------------------------------> 1934<!------------------------------------------------------------------------------------------------------------------------------------------------------------> 1935<!------------------------------------------------------------------------------------------------------------------------------------------------------------> 1936 1937 <!-- PRE FOOTER --> 1938 <div class="pre-footer"> 1939 <div class="container"> 1940 <div class="row"> 1941 <div class="col s12 tab-slider"> 1942 1943 <div class=""> 1944 1945 <!-- tabs --> 1946 <div class="contenedor-tabs"> 1947 <input class="inputs" type="radio" id="tab1" name="tab" checked> 1948 <label 1949 for="tab1">PUBLICACIONES</label> 1950 </div><!-- end contenedor tabs --> 1951 <!-- tabs --> 1952 1953 <div class="content-container"> 1954 <!-- tab 1 --> 1955 <div class="content" id="c1"> 1956 1957 <div class="wrap"> 1958 <div class="slider slider-monografos"> 1959 <div class="item"> 1960 <a href="https://www.foodretail.es/revista/revista-frs-foodretail/BqNT2PlHKqz2LU4Hy8dn" 1961 target="_blank"> 1962 <img src="https://d3nqciqdbtzkc.cloudfront.net/revistas/xFe6ZrPSaDiJNtQWNXyy.jpeg?20261002062151" 1963 alt="FRS ANUARIO DE FRUTAS Y HORTALIZAS"> 1964 </a> 1965 </div> 1966 <div class="item"> 1967 <a href="https://www.foodretail.es/revista/revista-frs-foodretail/rbWkAUDvOWIJLJhGmbtW" 1968 target="_blank"> 1969 <img src="https://d3nqciqdbtzkc.cloudfront.net/revistas/oChzbFOrgshjt6XNO39M.jpg?20261002062151" 1970 alt="FRS ANUARIO DE LA INNOVACIÃN"> 1971 </a> 1972 </div> 1973 <div class="item"> 1974 <a href="https://www.foodretail.es/revista/revista-frs-foodretail/00YVTUGIXbodWt654123" 1975 target="_blank"> 1976 <img src="https://d3nqciqdbtzkc.cloudfront.net/revistas/Og5Zbppc8byok90YUb78.jpg?20261002062151" 1977 alt="FRS ANUARIO PERSPECTIVAS FMCG"> 1978 </a> 1979 </div> 1980 </div> 1981 </div> 1982 1983 </div> 1984 <!-- tab 2 --> 1985 </div><!-- end content container --> 1986 </div><!-- end div --> 1987 1988 1989 </div><!-- col --> 1990 </div><!-- row --> 1991 </div><!-- container --> 1992 </div><!-- prefooter --> 1993 1994<!-- Wrap FOOTER --> 1995 <div class="wrap-FOOTER"> 1996 <div class="wrap-TRIPLE"> 1997 <footer class="page-footer"> 1998 1999 <!-- Footer mid --> 2000 <div class="footer-mid"> 2001 <div class="container"> 2002 <div class="row"> 2003 <div class="col s12"> 2004 2005 <img src="/web/assets_new/img/www.foodretail.es/logos/logo-www.foodretail.es-blanco.png" 2006 alt="www.foodretail.es"> 2007 2008 </div> 2009 </div> 2010 </div> 2011 </div> 2012 <!-- // Footer mid --> 2013 2014 <!-- Footer top --> 2015 <div class="footer-top"> 2016 <div class="container"> 2017 <div class="row"> 2018 <div class="col s12"> 2019 2020 <!-- social media --> 2021 <div class="social-media"> 2022 <ul> 2023 <li> 2024 <a href="https://www.linkedin.com/company/food-retail-service/" target="_blank"> 2025 <svg width="30" height="30" viewBox="0 0 30 30" fill="none" 2026 xmlns="http://www.w3.org/2000/svg"> 2027 <rect width="30" height="30" rx="15" fill="#D4D6D6" /> 2028 <path fill-rule="evenodd" clip-rule="evenodd" 2029 d="M15.5094 11.796V13.493C15.8648 12.9517 16.3546 12.5119 16.931 12.2167C17.5073 11.9215 18.1504 11.781 18.7974 11.809C22.2524 11.809 22.9994 13.969 22.9994 16.779V22.5H19.7994V17.428C19.7994 16.218 19.5554 14.662 17.6714 14.662C15.8444 14.662 15.5324 15.979 15.5324 17.338V22.5H12.3424V11.796H15.5094ZM10.1994 9.106C10.199 9.423 10.105 9.73284 9.92926 9.99665C9.7535 10.2605 9.50377 10.4665 9.21138 10.589C8.91911 10.7105 8.5973 10.7423 8.28692 10.6803C7.97653 10.6183 7.6916 10.4654 7.46838 10.241C
20297.24475 10.0165 7.0925 9.73081 7.03077 9.41997C6.96905 9.10913 7.00061 8.78698 7.12149 8.49403C7.24237 8.20108 7.44717 7.95041 7.71013 7.77354C7.97309 7.59667 8.28248 7.5015 8.59938 7.5C8.81 7.5 9.01855 7.54158 9.21306 7.62236C9.40758 7.70315 9.58423 7.82154 9.73288 7.97075C9.88153 8.11996 9.99926 8.29705 10.0793 8.49186C10.1594 8.68668 10.2002 8.89538 10.1994 9.106Z" 2030 fill="#101117" /> 2031 <path d="M10.2 11.809H7V22.5H10.2V11.809Z" fill="#101117" /> 2032 </svg> 2033 </a> 2034 </li> 2035 <li> 2036 <a href="https://www.facebook.com/FoodRetail.Es" target="_blank"> 2037 <svg width="30" height="30" viewBox="0 0 30 30" fill="none" 2038 xmlns="http://www.w3.org/2000/svg"> 2039 <rect width="30" height="30" rx="15" fill="#D4D6D6" /> 2040 <path 2041 d="M16.75 16.5H19.25L20.25 12.5H16.75V10.5C16.75 9.47 16.75 8.5 18.75 8.5H20.25V5.14C19.924 5.097 18.693 5 17.393 5C14.678 5 12.75 6.657 12.75 9.7V12.5H9.75V16.5H12.75V25H16.75V16.5Z" 2042 fill="#101117" /> 2043 </svg> 2044 </a> 2045 </li> 2046 <li> 2047 <a href="https://twitter.com/food_retail" target="_blank"> 2048 <svg width="30" height="30" viewBox="0 0 30 30" fill="none" 2049 xmlns="http://www.w3.org/2000/svg"> 2050 <rect width="30" height="30" rx="15" fill="#D4D6D6" /> 2051 <path 2052 d="M16.7213 13.8997L21.885 7.5H19.5802L15.639 12.3878L12.1425 7.5H7.125L12.9795 15.6825L7.4775 22.5H9.783L14.0617 17.1975L17.8575 22.5H22.875L16.7213 13.8997ZM14.9362 16.1122L13.8525 14.598L9.645 8.72025H11.3775L14.7735 13.458L15.8558 14.973L20.3693 21.2797H18.6368L14.9362 16.1122Z" 2053 fill="#101117" /> 2054 </svg> 2055 </a> 2056 </li> 2057 <li> 2058 <a href="https://www.instagram.com/foodretail.es" target="_blank"> 2059 <svg width="30" height="30" viewBox="0 0 30 30" fill="none" 2060 xmlns="http://www.w3.org/2000/svg"> 2061 <rect width="30" height="30" rx="15" fill="#D4D6D6" /> 2062 <path 2063 d="M15.7712 7.5C16.615 7.50225 17.0432 7.50675 17.4129 7.51725L17.5584 7.5225C17.7264 7.5285 17.8922 7.536 18.0924 7.545C18.8904 7.5825 19.4349 7.7085 19.9126 7.89374C20.4076 8.08424 20.8246 8.34223 21.2416 8.75847C21.6231 9.13326 21.9182 9.5868 22.1063 10.0874C22.2916 10.5652 22.4176 11.1097 22.4551 11.9084C22.4641 12.1079 22.4716 12.2736 22.4776 12.4424L22.4821 12.5879C22.4933 12.9569 22.4978 13.3851 22.4993 14.2288L22.5001 14.7883V15.7708C22.5019 16.3178 22.4961 16.8649 22.4828 17.4118L22.4783 17.5573C22.4723 17.726 22.4648 17.8917 22.4558 18.0912C22.4183 18.89 22.2908 19.4337 22.1063 19.9122C21.9182 20.4128 21.6231 20.8664 21.2416 21.2412C20.8668 21.6227 20.4133 21.9178 19.9126 22.1059C19.4349 22.2911 18.8904 22.4171 18.0924 22.4546L17.5584 22.4771L17.4129 22.4816C17.0432 22.4921 16.615 22.4974 15.7712 22.4989L15.2117 22.4996H14.23C13.6827 22.5016 13.1354 22.4958 12.5883 22.4824L12.4428 22.4779C12.2648 22.4711 12.0868 22.4634 11.9088 22.4546C11.1108 22.4171 10.5664 22.2911 10.0879 22.1059C9.5875 21.9177 9.13422 21.6226 8.75965 21.2412C8.37786 20.8665 8.08249 20.4129 7.89417 19.9122C7.70892 19.4345 7.58292 18.89 7.54543 18.0912L7.52293 17.5573L7.51918 17.4118C7.50535 16.8649 7.4991 16.3178 7.50043 15.7708V14.2288C7.49835 13.6818 7.50385 13.1348 7.51693 12.5879L7.52218 12.4424C7.52818 12.2736 7.53568 12.1079 7.54468 11.9084C7.58217 11.1097 7.70817 10.5659 7.89342 10.0874C8.08218 9.5866 8.37807 9.13304 8.7604 8.75847C9.13475 8.37714 9.58777 8.08204 10.0879 7.89374C10.5664 7.7085 11.1101 7.5825 11.9088 7.545C12.1083 7.536 12.2748 7.5285 12.4428 7.5225L12.5883 7.518C13.1352 7.50467 13.6822 7.49892 14.2293 7.50075L15.7712 7.5ZM15.0002 11.2499C14.0057 11.2499 13.0519 11.645 12.3487 12.3482C11.6454 13.0515 11.2503 14.0053 11.2503 14.9998C11.2503 15.9944 11.6454 16.9482 12.3487 17.6514C13.0519 18.3546 14.0057 18.7497 15.0002 18.7497C15.9948 18.7497 16.9486 18.3546 17.6518 17.6514C18.3551 16.9482 18.7502 15.9944 18.7502 14.9998C18.7502 14.0053 18.3551 13.0515 17.6518 12.3482C16.9486 11.645 15.9948 11.2499 15.0002 11.2499ZM15.0002 12.7499C15.2957 12.7498 15.5883 12.808 15.8613 12.921C16.1343 13.034 16.3823 13.1997 16.5913 13.4086C16.8003 13.6175 16.966 13.8655 17.0792 14.1385C17.1923 14.4114 17.2505 14.704 17.2506 14.9994C17.2506 15.2949 17.1925 15.5875 17.0794 15.8605C16.9664 16.1335 16.8007 16.3815 16.5918 16.5905C16.3829 16.7995 16.1349 16.9652 15.862 17.0784C15.589 17.1915 15.2965 17.2497 15.001 17.2498C14.4043 17.2498 13.832 17.0127 13.41 16.5908C12.9881 16.1688 12.751 15.5965 12.751 14.9998C12.751 14.4031 12.9881 13.8308 13.41 13.4089C13.832 12.9869 14.4043 12.7499 15.001 12.7499M18.9384 10.1249C18.6898 10.1249 18.4513 10.2237 18.2755 10.3995C18.0997 10.5753 18.0009 10.8138 18.0009 11.0624C18.0009 11.311 18.0997 11.5495 18.2755 11.7253C18.4513 11.9011 18.6898 11.9999 18.9384 11.9999C19.187 11.9999 19.4255 11.9011 19.6013 11.7253C19.7771 11.5495 19.8759 11.311 19.8759 11.0624C19.8759 10.8138 19.7771 10.5753 19.6013 10.3995C19.4255 10.2237 19.187 10.1249 18.9384 10.1249Z" 2064 fill="#101117" /> 2065 </svg> 2066 </a> 2067 </li> 2068 <li> 2069 <a href="https://www.youtube.com/@FoodRetail" target="_blank"> 2070 <svg width="30" height="30" viewBox="0 0 30 30" fill="none" 2071 xmlns="http://www.w3.org/2000/svg"> 2072 <rect width="30" height="30" rx="15" fill="#D4D6D6" /> 2073 <path 2074 d="M13 18L18.19 15L13 12V18ZM24.56 10.17C24.69 10.64 24.78 11.27 24.84 12.07C24.91 12.87 24.94 13.56 24.94 14.16L25 15C25 17.19 24.84 18.8 24.56 19.83C24.31 20.73 23.73 21.31 22.83 21.56C22.36 21.69 21.5 21.78 20.18 21.84C18.88 21.91 17.69 21.94 16.59 21.94L15 22C10.81 22 8.2 21.84 7.17 21.56C6.27 21.31 5.69 20.73 5.44 19.83C5.31 19.36 5.22 18.73 5.16 17.93C5.09 17.13 5.
207406 16.44 5.06 15.84L5 15C5 12.81 5.16 11.2 5.44 10.17C5.69 9.27 6.27 8.69 7.17 8.44C7.64 8.31 8.5 8.22 9.82 8.16C11.12 8.09 12.31 8.06 13.41 8.06L15 8C19.19 8 21.8 8.16 22.83 8.44C23.73 8.69 24.31 9.27 24.56 10.17Z" 2075 fill="#101117" /> 2076 </svg> 2077 </a> 2078 </li> 2079 </ul> 2080 <!-- rrss only mobile --> 2081 <div class="subs-and-seguidores" style="display:none"> 2082 <p><span 2083 data-target="125000">125000</span> 2084 seguidores</p> 2085 </div> 2086 <!-- rrss only mobile --> 2087 </div> 2088 <!-- social media --> 2089 2090 <nav> 2091 <ul itemscope="" itemtype="https://schema.org/SiteNavigationElement"> 2092 <li itemprop="name"><a href="/contacto/" class="semi-heading" 2093 itemprop="url">Contacto</a></li> 2094 <li itemprop="name"><a href="/nosotros/" class="semi-heading" 2095 itemprop="url">Nosotros</a></li> 2096 <li itemprop="name"><a href="/aviso-legal/" class="semi-heading" 2097 itemprop="url">Aviso Legal</a></li> 2098 <li itemprop="name"><a href="/transparencia/" class="semi-heading" 2099 itemprop="url">Transparencia</a></li> 2100 <li itemprop="name"><a href="/terminos-y-condiciones/" class="semi-heading" 2101 itemprop="url">Términos y Condiciones</a></li> 2102 <li itemprop="name"><a href="/politica-privacidad/" class="semi-heading" 2103 itemprop="url">Privacidad - Cookies</a></li> 2104 </ul> 2105 </nav> 2106 </div> 2107 </div> 2108 </div> 2109 </div> 2110 <!-- // Footer top --> 2111 2112 <!-- Footer bottom/copyright --> 2113 <div class="footer-copyright"> 2114 <div class="container"> 2115 <div class="row"> 2116 <div class="col s12"> 2117 <div class="centrado"> 2118 <span itemscope="" itemprop="copyrightHolder" itemtype="http://schema.org/Person"><span 2119 itemprop="name">© 2026 </span><a href="https://infocap.es/" 2120 target="_blank" itemprop="name">Infocap Media Group, S.L.</a></span> 2121 </div> 2122 2123 <div class="centrado" style="margin-top:12px"> 2124 <a href="https://oacloud.es/" target="_blank" itemprop="name" 2125 style="color: var(--neutral-6)">Desarrollado por OA Cloud</a> 2126 </div> 2127 </div> 2128 </div> 2129 </div> 2130 </div> 2131 <!-- Footer bottom/copyright --> 2132 2133 </footer> 2134 </div> 2135 </div> 2136<!-- // Wrap FOOTER --> 2137<!-- Boton Google News MOVIL --> 2138 2139 2140<div class="btn-google-fuente-preferida-movil"> 2141 <a href="https://www.google.com/preferences/source?q=www.foodretail.es" target="_blank" 2142 rel="noopener" aria-label="Añadir como fuente preferida en Google"> 2143 <div class="logo-gn-container"> 2144 <svg width="40" height="36" viewBox="0 0 40 36" fill="none" xmlns="http://www.w3.org/2000/svg"> 2145 <rect y="3.75781" width="36.3672" height="32.242" rx="5" fill="#F7F7F7" /> 2146 <mask id="path-2-inside-1_4509_25193" fill="white"> 2147 <path 2148 d="M3.63281 5C3.63281 2.23857 5.87139 0 8.63281 0H35C37.7614 0 40 2.23858 40 5V27.242C40 30.0034 37.7614 32.242 35 32.242H8.63281C5.87139 32.242 3.63281 30.0034 3.63281 27.242V5Z" /> 2149 </mask> 2150 <path 2151 d="M3.63281 5C3.63281 2.23857 5.87139 0 8.63281 0H35C37.7614 0 40 2.23858 40 5V27.242C40 30.0034 37.7614 32.242 35 32.242H8.63281C5.87139 32.242 3.63281 30.0034 3.63281 27.242V5Z" 2152 fill="#F7F7F7" /> 2153 <path 2154 d="M3.63281 0H40H3.63281M40 27.242C40 31.6603 36.4183 35.242 32 35.242H8.63281C4.21453 35.242 0.632812 31.6603 0.632812 27.242H6.63281C6.63281 28.3466 7.52824 29.242 8.63281 29.242H35C37.7614 29.242 40 28.3466 40 27.242ZM8.63281 35.242C4.21453 35.242 0.632812 31.6603 0.632812 27.242V8C0.632812 3.58172 4.21453 0 8.63281 0C7.52824 0 6.63281 2.23858 6.63281 5V27.242C6.63281 28.3466 7.52824 29.242 8.63281 29.242V35.242ZM8.63281 29.242M40 0V32.242V0" 2155 fill="white" mask="url(#path-2-inside-1_4509_25193)" /> 2156 <g clip-path="url(#clip0_4509_25193)"> 2157 <mask id="mask0_4509_25193" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="15" y="7" 2158 width="17" height="17"> 2159 <path 2160 d="M31.0651 13.6957H23.4395V16.8575H27.8288C27.4197 18.8662 25.7085 20.0194 23.4395 20.0194C20.7612 20.0194 18.6037 17.8619 18.6037 15.1836C18.6037 12.5053 20.7612 10.3478 23.4395 10.3478C24.5926 10.3478 25.6341 10.757 26.4525 11.4266L28.8332 9.0459C27.3825 7.78116 25.5226 7 23.4395 7C18.9013 7 15.2559 10.6454 15.2559 15.1836C15.2559 19.7218 18.9013 23.3672 23.4395 23.3672C27.5313 23.3672 31.2511 20.3913 31.2511 15.1836C31.2511 14.7 31.1767 14.1792 31.0651 13.6957Z" 2161 fill="white" /> 2162 </mask> 2163 <g mask="url(#mask0_4509_25193)"> 2164 <path d="M14.512 20.0192V10.3477L20.8356 15.1834L14.512 20.0192Z" fill="#FBBC05" /> 2165 </g> 2166 <mask id="mask1_4509_25193" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="15" y="7" 2167 width="17" height="17"> 2168 <path 2169 d="M31.0651 13.6957H23.4395V16.8575H27.8288C27.4197 18.8662 25.7085 20.0194 23.4395 20.0194C20.7612 20.0194 18.6037 17.8619 18.6037 15.1836C18.6037 12.5053 20.7612 10.3478 23.4395 10.3478C24.5926 10.3478 25.6341 10.757 26.4525 11.4266L28.8332 9.0459C27.3825 7.78116 25.5226 7 23.4395 7C18.9013 7 15.2559 10.6454 15.2559 15.1836C15.2559 19.7218 18.9013 23.3672 23.4395 23.3672C27.5313 23.3672 31.2511 20.3913 31.2511 15.1836C31.2511 14.7 31.1767 14.1792 31.0651 13.6957Z" 2170 fill="white" /> 2171 </mask> 2172 <g mask="url(#mask1_4509_25193)"> 2173 <path 2174 d="M14.512 10.3477L20.8356 15.1834L23.4395 12.9143L32.3671 11.4636V6.25586H14.512V10.3477Z" 2175 fill="#EA4335" /> 2176 </g> 2177 <mask id="mask2_4509_25193" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="15" y="7" 2178 width="17" height="17"> 2179 <path 2180 d="M31.0651 13.6957H23.4395V16.8575H27.8288C27.4197 18.8662 25.7085 20.0194 23.4395 20.0194C20.7612 20.0194 18.6037 17.8619 18.6037 15.1836C18.6037 12.5053 20.7612 10.3478 23.4395 10.3478C24.5926 10.3478 25.6341 10.757 26.4525 11.4266L28.8332 9.0459C27.3825 7.78116 25.5226 7 23.4395 7C18.9013 7 15.2559 10.6454 15.2559 15.1836C15.2559 19.7218 18.9013 23.3672 23.4395 23.3672C27.5313 23.3672 31.2511 20.3913 31.2511 15.1836C31.2511 14.7 31.1767 14.1792 31.0651 13.6957Z" 2181 fill="white" /> 2182 </mask> 2183 <g mask="url(#mask2_4509_25193)"> 2184 <path d="M14.512 20.0192L25.6714 11.4636L28.6101 11.8356L32.3671 6.25586V24.111H14.512V20.0192Z" 2185 fill="#34A853" /> 2186 </g> 2187 <mask id="mask3_4509_25193" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="15" y="7" 2188 width="17" height="17"> 2189 <path 2190 d="M31.0651 13.6957H23.4395V16.8575H27.8288C27.4197 18.8662 25.7085 20.0194 23.4395 20.0194C20.7612 20.0194 18.6037 17.8619 18.6037 15.1836C18.6037 12.5053 20.7612 10.3478 23.4395 10.3478C24.5926 10.3478 25.6341 10.757 26.4525 11.4266L28.8332 9.0459C27.3825 7.78116 25.5226 7 23.4395 7C18.9013 7 15.2559 10.6454 15.2559 15.1836C15.2559 19.7218 18.9013 23.3672 23.4395 23.3672C27.5313 23.3672 31.2511 20.3913 31.2511 15.1836C31.2511 14.7 31.1767 14.1792 31.0651 13.6957Z" 2191 fill="white" /> 2192 </mask> 2193 <g mask="url(#mask3_4509_25193)"> 2194 <path d="M32.367 24.111L20.8356 15.1834L19.3477 14.0675L32.367 10.3477V24.111Z" 2195 fill="#4285F4" /> 2196 </g> 2197 </g> 2198 <defs> 2199 <clipPath id="clip0_4509_25193"> 2200 <rect width="16.3672" height="16.3672" fill="white" transform="translate(15 7)" /> 2201 </clipPath> 2202 </defs> 2203 </svg> 2204 2205 </div> 2206 2207 <span class="texto-gn">Marcar como fuente<br>preferida en Google</span> 2208 </a> 2209</div> 2210 2211 2212<!-- Boton Google News MOVIL END --> 2213</main> 2214<!-- // MAIN --> 2215<div id="cd-search" class="cd-search floating-search"> 2216 <form action="/"> 2217 <!-- <input type="hidden" name="hemeroteca-articulo" value="1"> --> 2218 <input type="search" name="s" 2219 placeholder="Buscar noticias en FRS..."> 2220 <!-- svg --> 2221 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 2222 <path 2223 d="M10 3C11.8565 3 13.6374 3.73705 14.9502 5.0498C16.2629 6.36256 17 8.14348 17 10C17 11.8565 16.2629 13.6374 14.9502 14.9502C13.6374 16.2629 11.8565 17 10 17C8.14348 17 6.36256 16.2629 5.0498 14.9502C3.73705 13.6374 3 11.8565 3 10L3.00879 9.65332C3.09452 7.92303 3.8
222319 6.28061 5.0498 5.0498C6.36256 3.73705 8.14348 3 10 3Z" 2224 stroke="#008D36" stroke-width="2" /> 2225 <mask id="path-2-inside-1_935_2520" fill="white"> 2226 <path fill-rule="evenodd" clip-rule="evenodd" 2227 d="M21.707 21.7064C21.5195 21.8939 21.2652 21.9992 21 21.9992C20.7349 21.9992 20.4806 21.8939 20.293 21.7064L16.793 18.2064C16.6109 18.0178 16.5101 17.7652 16.5124 17.503C16.5146 17.2408 16.6198 16.99 16.8052 16.8046C16.9906 16.6192 17.2414 16.514 17.5036 16.5118C17.7658 16.5095 18.0184 16.6103 18.207 16.7924L21.707 20.2924C21.8945 20.48 21.9998 20.7343 21.9998 20.9994C21.9998 21.2646 21.8945 21.5189 21.707 21.7064Z" /> 2228 </mask> 2229 <path 2230 d="M21.707 21.7064L23.121 23.1209L23.1215 23.1204L21.707 21.7064ZM20.293 21.7064L18.8788 23.1206L18.879 23.1209L20.293 21.7064ZM16.793 18.2064L15.3545 19.5959L15.3665 19.6084L15.3788 19.6206L16.793 18.2064ZM18.207 16.7924L19.6213 15.3782L19.609 15.3659L19.5965 15.3539L18.207 16.7924ZM21.707 20.2924L23.1215 18.8784L23.1213 18.8782L21.707 20.2924ZM21.707 21.7064L20.293 20.292C20.4806 20.1045 20.7349 19.9992 21 19.9992V21.9992V23.9992C21.7955 23.9992 22.5585 23.6833 23.121 23.1209L21.707 21.7064ZM21 21.9992V19.9992C21.2652 19.9992 21.5195 20.1045 21.707 20.292L20.293 21.7064L18.879 23.1209C19.4416 23.6833 20.2046 23.9992 21 23.9992V21.9992ZM20.293 21.7064L21.7073 20.2922L18.2073 16.7922L16.793 18.2064L15.3788 19.6206L18.8788 23.1206L20.293 21.7064ZM16.793 18.2064L18.2316 16.817C18.4138 17.0056 18.5146 17.2582 18.5123 17.5204L16.5124 17.503L14.5124 17.4857C14.5056 18.2722 14.808 19.03 15.3545 19.5959L16.793 18.2064ZM16.5124 17.503L18.5123 17.5204C18.51 17.7826 18.4048 18.0334 18.2194 18.2188L16.8052 16.8046L15.391 15.3904C14.8348 15.9466 14.5193 16.6991 14.5124 17.4857L16.5124 17.503ZM16.8052 16.8046L18.2194 18.2188C18.034 18.4042 17.7832 18.5094 17.521 18.5117L17.5036 16.5118L17.4863 14.5118C16.6997 14.5187 15.9472 14.8342 15.391 15.3904L16.8052 16.8046ZM17.5036 16.5118L17.521 18.5117C17.2588 18.514 17.0062 18.4132 16.8176 18.231L18.207 16.7924L19.5965 15.3539C19.0307 14.8074 18.2729 14.505 17.4863 14.5118L17.5036 16.5118ZM18.207 16.7924L16.7928 18.2066L20.2928 21.7066L21.707 20.2924L23.1213 18.8782L19.6213 15.3782L18.207 16.7924ZM21.707 20.2924L20.2926 21.7064C20.1051 21.5189 19.9998 21.2646 19.9998 20.9994H21.9998H23.9998C23.9998 20.2039 23.6839 19.441 23.1215 18.8784L21.707 20.2924ZM21.9998 20.9994H19.9998C19.9998 20.7343 20.1051 20.48 20.2926 20.2924L21.707 21.7064L23.1215 23.1204C23.6839 22.5578 23.9998 21.7949 23.9998 20.9994H21.9998Z" 2231 fill="#008D36" mask="url(#path-2-inside-1_935_2520)" /> 2232 </svg> 2233 <!-- svg --> 2234 </form> 2235</div> 2236 2237<!------------------------------------------------------------------------------------------------------------------------------------------------------------> 2238<!------------------------------------------------------------------------------------------------------------------------------------------------------------> 2239<!------------------------------------------------------------------------------------------------------------------------------------------------------------> 2240<!------------------------------------------------------------------------------------------------------------------------------------------------------------> 2241 2242 2243<div class="cd-overlay"></div> 2244 2245<!-- NAVEGACION PRINCIPAL - SIDENAV --> 2246<ul id="slide-out" class="side-nav" itemtype="https://schema.org/SiteNavigationElement" itemscope=""> 2247 2248 <!-- rrss --> 2249 <li class="no-padding fijo-sidenav"> 2250 <ul class="social"> 2251 <li><a itemprop="sameAs" rel="nofollow" target="_blank" href="https://www.facebook.com/FoodRetail.Es" 2252 title="VisÃtanos en Facebook" class="" data-position="bottom" data-delay="50" 2253 data-tooltip="VisÃtanos en Facebook"><i class="zmdi zmdi-facebook"></i></a></li> 2254 <li style="display:flex; flex-direction:row;align-items:center"> 2255 <a itemprop="sameAs" rel="nofollow" target="_blank" href="https://twitter.com/food_retail" 2256 title="VisÃtanos en Twitter" class="" data-position="bottom" data-delay="50" 2257 data-tooltip="VisÃtanos en Twiter"> 2258 <svg viewBox="0 0 1200 1227" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="none" 2259 class="twitterx-icon" style="height: 16px;fill: currentColor;"> 2260 <path 2261 d="M714.163 519.284L1160.89 0H1055.03L667.137 450.887L357.328 0H0L468.492 681.821L0 1226.37H105.866L515.491 750.218L842.672 1226.37H1200L714.137 519.284H714.163ZM569.165 687.828L521.697 619.934L144.011 79.6944H306.615L611.412 515.685L658.88 583.579L1055.08 1150.3H892.476L569.165 687.854V687.828Z"> 2262 </path> 2263 </svg> 2264 </a> 2265 </li> 2266 <li><a itemprop="sameAs" rel="nofollow" target="_blank" href="https://www.linkedin.com/company/food-retail-service/" 2267 title="VisÃtanos en Linkedin" class="" data-position="bottom" data-delay="50" 2268 data-tooltip="VisÃtanos en Linkedin"><i class="zmdi zmdi-linkedin"></i></a></li> 2269 <li><a itemprop="sameAs" rel="nofollow" target="_blank" href="https://www.instagram.com/foodretail.es" 2270 title="VisÃtanos en Instagram" class="" data-position="bottom" data-delay="50" 2271 data-tooltip="VisÃtanos en Instagram"><i class="zmdi zmdi-instagram"></i></a></li> 2272 <li><a itemprop="sameAs" rel="nofollow" target="_blank" href="https://www.youtube.com/@FoodRetail" 2273 title="VisÃtanos en Youtube" class="" data-position="bottom" data-delay="50" 2274 data-tooltip="VisÃtanos en Youtube"><i class="zmdi zmdi-youtube"></i></a></li> 2275 <li><a target="_blank" href="/rss/?i=2&dominio=www.foodretail.es" 2276 title="RSS" class="" data-position="bottom" data-delay="50" data-tooltip="RSS"><i 2277 class="zmdi zmdi-rss"></i></a></li> 2278 <!-- <li><a href="#BOLETIN" title="NEWSLETTER" class=" BoletinScroll" data-position="bottom" data-delay="50" data-tooltip="NEWSLETTER"><i class="zmdi zmdi-email"></i></a></li> --> 2279 </ul> 2280 </li> 2281 <!-- rss --> 2282 2283 <!-- logotipo --> 2284 <li class="no-padding fijo-sidenav"> 2285 <div class="side-logo"><a 2286 class="wrap-logo " 2287 title="Ãltimas noticias sobre top-100-FRS en FRS" href="/" id="ID_EDICION" 2288 style="background-image:url(/web/assets_new/img/www.foodretail.es/logos/logo-www.foodretail.es-color.png);)"><span 2289 class="hidden-content">Ãltimas noticias sobre top-100-FRS en FRS</span></a> </div> </li> 2290 <!-- logotipo --> 2291 <!-- buscador --> 2292 <li class="no-padding first-type-of-list"> 2293 <div id="cd-search" class="cd-search"> 2294 <form action="/"> 2295 <!-- <label for="">Buscar</label> --> 2296 <!-- <input type="hidden" name="hemeroteca-articulo" value="1"> --> 2297 <div> 2298 <input type="search" name="s" 2299 placeholder="Buscar noticias en FRS..."> 2300 <svg width="40" height="41" viewBox="0 0 40 41" fill="none" xmlns="http://www.w3.org/2000/svg"> 2301 <rect y="0.5" width="40" height="40" rx="20" fill="white" /> 2302 <path 2303 d="M18 10.5C15.8783 10.5 13.8434 11.3429 12.3431 12.8431C10.8429 14.3434 10 16.3783 10 18.5C10 20.6217 10.8429 22.6566 12.3431 24.1569C13.8434 25.6571 15.8783 26.5 18 26.5C20.1217 26.5 22.1566 25.6571 23.6569 24.1569C25.1571 22.6566 26 20.6217 26 18.5C26 16.3783 25.1571 14.3434 23.6569 12.8431C22.1566 11.3429 20.1217 10.5 18 10.5Z" 2304 fill="#3C3C3B" /> 2305 <path fill-rule="evenodd" clip-rule="evenodd" 2306 d="M29.707 30.207C29.5195 30.3945 29.2652 30.4998 29 30.4998C28.7349 30.4998 28.4806 30.3945 28.293 30.207L24.793 26.707C24.6109 26.5184 24.5101 26.2658 24.5124 26.0036C24.5146 25.7414 24.6198 25.4906 24.8052 25.3052C24.9906 25.1198 25.2414 25.0146 25.5036 25.0124C25.7658 25.0101 26.0184 25.1109 26.207 25.293L29.707 28.793C29.8945 28.9806 29.9998 29.2349 29.9998 29.5C29.9998 29.7652 29.8945 30.0195 29.707 30.207Z" 2307 fill="#3C3C3B" /> 2308 </svg> 2309 </div> 2310 </form> 2311 </div> 2312 </li>
vendor: 79 bytes, lines 2312-2314
2312 2313 <script src="https://www.google.com/recaptcha/api.js" async defer></script> 2314
2314<!-- buscador --> 2315 2316 <!-- listado --> 2317 <li class="no-padding bg-darkblue"><a href="/novedades/" itemprop="url">NOVEDADES</a></li><li class="no-padding bg-darkblue"><a href="/sector-fmcg/" itemprop="url">SECTOR FMCG</a></li><li class="no-padding bg-darkblue"><a href="/retailers/" itemprop="url">RETAILERS</a></li><li class="no-padding bg-darkblue"><a href="/franquicias-cooperativas-supermercados/" itemprop="url">FRANQUICIAS</a></li><li class="no-padding bg-darkblue"><a href="/fabricantes/" itemprop="url">FABRICANTES</a></li><li class="no-padding bg-darkblue"><a href="/frutas-hortalizas/" itemprop="url">FRUTAS Y HORTALIZAS</a></li><li class="no-padding bg-darkblue"><a href="/convenience-food/" itemprop="url">CONVENIENCE FOOD</a></li><li class="no-padding bg-darkblue"><a href="/horeca/" itemprop="url">FOOD SERVICE</a></li><li class="no-padding bg-darkblue"><a href="/blogs/" itemprop="url">BLOGS</a></li><li class="no-padding bg-darkblue"><a href="/multimedia/" itemprop="url">VÃDEOS</a></li><li class="no-padding bg-darkblue"><a href="/#registro" itemprop="url">NEWSLETTER</a></li> 2318 <!-- listado --> 2319 2320 <!-- corporativas --> 2321 <li class="no-padding bg-darkblue"><a href="/contacto/" itemprop="url" class="collapsible-header">Contacto</a> 2322 </li> 2323 <li class="no-padding bg-darkblue"><a href="/nosotros/" itemprop="url" class="collapsible-header">Nosotros</a> 2324 </li> 2325 <!-- corporativas --> 2326 2327 2328</ul> 2329<!-- // NAVEGACION PRINCIPAL - SIDENAV --> 2330 2331<!-- ------------------------------------------------------------------------------ --> 2332<!-- --------------------------------- SCRIPTS ----------------------------------- --> 2333<!-- ------------------------------------------------------------------------------ -->
2334<script type="text/javascript" src="/web/assets_new/dist/all.js"></script>
vendor: 1 bytes, line 2334
2334
2335<script src="//cdn.jsdelivr.net/npm/sweetalert2@11"></script>
2335 2336 2337 2338<!-- materialize-dropdown-fix.js -->
2339<script> 2340 $(document).on('click', '.select-wrapper', function (e) { 2341 e.stopPropagation(); 2342 }) 2343</script>
2343 2344 2345<!-- ------------------------------------------------------------------------------ --> 2346<!-- ------------------------------ // SCRIPTS ----------------------------------- --> 2347<!-- ------------------------------------------------------------------------------ --> 2348 2349<!-- --------------------------------------------------------------------------------> 2350<!-- ---------------------------------- MODALES -------------------------------------> 2351<!-- --------------------------------------------------------------------------------> 2352 2353<!-- modal login --> 2354<div id="modal-login" class="modal modalNew modal-trigger"> 2355 <a href="javascript:void(0);" class="modal-action modal-close close-btn"><i class="material-icons">close</i></a> 2356 <div class="modal-content center-align"> 2357 <img class="wrap-logo-modal" 2358 src="/web/assets_new/img/www.foodretail.es/logos/logo-www.foodretail.es-color.png" 2359 alt="www.foodretail.es" /> 2360 <form id="formulario_login" onsubmit="return false;" class="Formulario row"> 2361 <div class="input-field col s12"> 2362 <input id="usuario_log" name="usuario_log" type="text" class="validate"> 2363 <label for="usuario_log">Nombre de usuario o correo electrónico</label> 2364 </div> 2365 <div class="input-field col s12 field_pw recover_field_pw"> 2366 <input id="password_log" name="password_log" type="password" class="validate"> 2367 <label for="password_log">Contraseña</label> 2368 <!-- view --> 2369 <svg class="view_pw" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"> 2370 <path 2371 d="M288 32c-80.8 0-145.5 36.8-192.6 80.6C48.6 156 17.3 208 2.5 243.7c-3.3 7.9-3.3 16.7 0 24.6C17.3 304 48.6 356 95.4 399.4C142.5 443.2 207.2 480 288 480s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C433.5 68.8 368.8 32 288 32zM144 256a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-64c0 35.3-28.7 64-64 64c-7.1 0-13.9-1.2-20.3-3.3c-5.5-1.8-11.9 1.6-11.7 7.4c.3 6.9 1.3 13.8 3.2 20.7c13.7 51.2 66.4 81.6 117.6 67.9s81.6-66.4 67.9-117.6c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3z" /> 2372 </svg> 2373 <!-- non_view --> 2374 <svg class="non_view_pw" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"> 2375 <path 2376 d="M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zM223.1 149.5C248.6 126.2 282.7 112 320 112c79.5 0 144 64.5 144 144c0 24.9-6.3 48.3-17.4 68.7L408 294.5c8.4-19.3 10.6-41.4 4.8-63.3c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3c0 10.2-2.4 19.8-6.6 28.3l-90.3-70.8zM373 389.9c-16.4 6.5-34.3 10.1-53 10.1c-79.5 0-144-64.5-144-144c0-6.9 .5-13.6 1.4-20.2L83.1 161.5C60.3 191.2 44 220.8 34.5 243.7c-3.3 7.9-3.3 16.7 0 24.6c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c47.8 0 89.9-12.9 126.2-32.5L373 389.9z" /> 2377 </svg> 2378 </div> 2379 <div class="col s12"> 2380 <a href="#modal-pass" class="modal-close modal-trigger right">¿Olvidaste tu contraseña?</a> 2381 </div> 2382 <div class="input-field col s12"> 2383 <button type="button" class="btn_ btn_line btn_full_width" onclick="iniciarSesion()"> 2384 <span>Acceder ></span> 2385 </button> 2386 </div> 2387 <!--<div class="col s12"> 2388 <p class="center "><small>o entra con tu proveedor favorito</small></p> 2389 </div>--> 2390 <!-- <div class="row"> 2391 <div class="col s12 m-b-20"> 2392 <button class="btn_primary_outline_acceso"> 2393 <svg viewBox="0 0 24 24" width="24" height="24" xmlns="http://www.w3.org/2000/svg"> 2394 <g transform="matrix(1, 0, 0, 1, 27.009001, -39.238998)"> 2395 <path fill="#4285F4" d="M -3.264 51.509 C -3.264 50.719 -3.334 49.969 -3.454 49.239 L -14.754 49.239 L -14.754 53.749 L -8.284 53.749 C -8.574 55.229 -9.424 56.479 -10.684 57.329 L -10.684 60.329 L -6.824 60.329 C -4.564 58.239 -3.264 55.159 -3.264 51.509 Z"></path> 2396 <path fill="#34A853" d="M -14.754 63.239 C -11.514 63.239 -8.804 62.159 -6.824 60.329 L -10.684 57.329 C -11.764 58.049 -13.134 58.489 -14.754 58.489 C -17.884 58.489 -20.534 56.379 -21.484 53.529 L -25.464 53.529 L -25.464 56.619 C -23.494 60.539 -19.444 63.239 -14.754 63.239 Z"></path> 2397 <path fill="#FBBC05" d="M -21.484 53.529 C -21.734 52.809 -21.864 52.039 -21.864 51.239 C -21.864 50.439 -21.724 49.669 -21.484 48.949 L -21.484 45.859 L -25.464 45.859 C -26.284 47.479 -26.754 49.299 -26.754 51.239 C -26.754 53.179 -26.284 54.999 -25.464 56.619 L -21.484 53.529 Z"></path> 2398 <path fill="#EA4335" d="M -14.754 43.989 C -12.984 43.989 -11.404 44.599 -10.154 45.789 L -6.734 42.369 C
2398-8.804 40.429 -11.514 39.239 -14.754 39.239 C -19.444 39.239 -23.494 41.939 -25.464 45.859 L -21.484 48.949 C -20.534 46.099 -17.884 43.989 -14.754 43.989 Z"></path> 2399 </g> 2400 </svg> 2401 <span>Acceder con Google</span> 2402 <svg class="icon-acceso-lg" width="12" height="11" viewBox="0 0 12 11" fill="none" xmlns="http://www.w3.org/2000/svg"> 2403 <path d="M1.41494 10.7744L0.8125 10.172L9.63316 1.33447H1.50244V0.459473H11.1274V10.0845H10.2524V1.95375L1.41494 10.7744Z" fill="#0000"/> 2404 </svg> 2405 </button> 2406 </div> --> 2407 <!-- <div class="col s12"> 2408 <button class="btn_primary_outline_acceso"> 2409 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 2410 <path d="M11.1187 0.0468764C7.19997 0.351564 3.71716 2.51719 1.68747 5.90625C0.14997 8.475 -0.351593 11.6531 0.309344 14.625C1.21872 18.7125 4.22809 22.0313 8.22653 23.3672C8.81716 23.5641 9.82028 23.8125 10.0265 23.8125H10.125V19.6406V15.4688H8.60153H7.07809V13.7344V12H8.60153H10.125V10.3406C10.125 9.07031 10.1437 8.5875 10.1953 8.26875C10.5375 6.28594 11.8218 5.02031 13.7718 4.73438C14.2828 4.65938 15.7922 4.69688 16.6781 4.80469L17.3437 4.88906V6.375V7.86094L16.35 7.88906C15.225 7.91719 14.9906 7.96406 14.5922 8.23594C14.4562 8.325 14.2828 8.49844 14.2031 8.61563C13.9359 9.01875 13.9125 9.17344 13.889 10.65L13.8656 12H15.5343C17.0015 12 17.2031 12.0094 17.2031 12.0703C17.2031 12.15 16.7531 15.1266 16.7062 15.3422L16.6781 15.4688H15.2765H13.875V19.6406V23.8125H13.9734C14.1797 23.8125 15.1828 23.5641 15.7734 23.3672C18.2062 22.5563 20.2218 21.0703 21.7406 18.9703C23.7093 16.2469 24.4265 12.7172 23.6906 9.375C22.7953 5.32031 19.739 1.94531 15.7781 0.632814C14.3156 0.150001 12.6047 -0.0656236 11.1187 0.0468764Z" fill="#1877F2"></path> 2411 </svg> 2412 <span>Acceder con Facebook</span> 2413 <svg class="icon-acceso-lg" width="12" height="11" viewB
2413ox="0 0 12 11" fill="none" xmlns="http://www.w3.org/2000/svg"> 2414 <path d="M1.41494 10.7744L0.8125 10.172L9.63316 1.33447H1.50244V0.459473H11.1274V10.0845H10.2524V1.95375L1.41494 10.7744Z" fill="#0000"/> 2415 </svg> 2416 </button> 2417 </div> 2418 </div> --> 2419 </form> 2420 </div> 2421 <div class="modal-footer center-align"> 2422 <p>¿No tienes cuenta? <a class="modal-close modal-trigger link_primary" href="#modal-registro">RegÃstrate 2423 ahora</a></p> 2424 </div> 2425</div> 2426<!-- modal login --> 2427 2428<!-- modal registro --> 2429<div id="modal-registro" class="modal modalNew modal-trigger"> 2430 <a href="javascript:void(0);" class="modal-action modal-close close-btn"><i class="material-icons">close</i></a> 2431 <div class="modal-content center-align"> 2432 2433 <div class="wrap-top"> 2434 <div class="wrap-left"> 2435 <img src="/web/assets_new/img/www.foodretail.es/logos/logo-www.foodretail.es-color.png" 2436 alt="www.foodretail.es"> 2437 <h3>SuscrÃbete a nuestras listas de difusión</h3> 2438 <!-- listado info movil --> 2439 <ul class="list-info list-info-movil"> 2440 <li><span>ð¢</span>No te pierdas ninguna noticia clave de tu sector.</li> 2441 <li><span>ð¡</span>Sé el primero en enterarte de primicias, análisis y tendencias.</li> 2442 <li><span>ð©</span>Recibe en tu email la información más valiosa.</li> 2443 <li><span>â </span>Rápido, fácil y sin spam. Solo lo que realmente importa.</li> 2444 <li><span>ð</span>RegÃstrate ahora gratis. Impulsa tu carrera y tu empresa.</li> 2445 </ul> 2446 <!-- listado info movil --> 2447 </div> 2448 <div class="wrap-right"> 2449 2450 <div class="listado"> 2451 <p>listas de difusión</p> 2452 <ul> 2453 <li> 2454 <div class="form-check form-check-inline oculto-ayuda-unica"> 2455 <input class="form-check-input cantidad" type="checkbox" name="newsletter[]" 2456 value="18" 2457 id="boletin-18"> 2458 <label class="form-check-label" 2459 for="boletin-18">FRS</label> 2460 </div> 2461 </li> 2462 <li> 2463 <div class="form-check form-check-inline oculto-ayuda-unica"> 2464 <input class="form-check-input cantidad" type="checkbox" name="newsletter[]" 2465 value="19" 2466 id="boletin-19"> 2467 <label class="form-check-label" 2468 for="boletin-19">#trendrinks</label> 2469 </div> 2470 </li> 2471 <li> 2472 <div class="form-check form-check-inline oculto-ayuda-unica"> 2473 <input class="form-check-input cantidad" type="checkbox" name="newsletter[]" 2474 value="20" 2475 id="boletin-20"> 2476 <label class="form-check-label" 2477 for="boletin-20">Food Service</label> 2478 </div> 2479 </li> 2480 <!-- end bucle --> 2481 </ul> 2482 </div> 2483 <div class="listado"> 2484 <p>alertas última hora</p> 2485 <ul> 2486 <li> 2487 <div class="form-check form-check-inline oculto-ayuda-unica"> 2488 <input class="form-check-input cantidad" type="checkbox" name="newsletter[]" 2489 value="51" 2490 id="alerta-51"> 2491 <label class="form-check-label" 2492 for="alerta-51">Alertas Ultima Hora</label> 2493 </div> 2494 </li> 2495 <!-- end bucle --> 2496 </ul> 2497 </div> 2498 2499 </div> 2500 </div> 2501 2502 <div class="wrap-center-full"> 2503 <!-- listado info oredenador --> 2504 <ul class="list-info list-info-ordenador"> 2505 <li><span>ð¢</span>No te pierdas ninguna noticia clave de tu sector.</li> 2506 <li><span>ð¡</span>Sé el primero en enterarte de primicias, análisis y tendencias.</li> 2507 <li><span>ð©</span>Recibe en tu email la información más valiosa.</li> 2508 <li><span>â </span>Rápido, fácil y sin spam. Solo lo que realmente importa.</li> 2509 <li><span>ð</span>RegÃstrate ahora gratis. Impulsa tu carrera y tu empresa.</li> 2510 </ul> 2511 <!-- listado info ordenador --> 2512 </div> 2513 2514 <div class="wrap-mid"> 2515 <form id="formulario_registro" onsubmit="return false;"> 2516 2517 <div class="paso-uno"> 2518 <div class="wrap-left"> 2519 <p>DATOS DE MI CUENTA</p> 2520 2521 <div class="form-control"> 2522 <div class="input-field"> 2523 <input type="text" id="nombre-usuario" name="nombre-usuario" 2524 placeholder="Nombre de usuario*"> 2525 </div> 2526 <div class="input-field"> 2527 <input type="email" id="email" name="email" placeholder="Correo electrónico*"> 2528 </div> 2529 <div class="input-field field_pw"> 2530 <input type="password" id="password" name="password" placeholder="Contraseña*"> 2531 <!-- view --> 2532 <svg class="view_pw" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"> 2533 <path 2534 d="M288 32c-80.8 0-145.5 36.8-192.6 80.6C48.6 156 17.3 208 2.5 243.7c-3.3 7.9-3.3 16.7 0 24.6C17.3 304 48.6 356 95.4 399.4C142.5 443.2 207.2 480 288 480s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C433.5 68.8 368.8 32 288 32zM144 256a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-64c0 35.3-28.7 64-64 64c-7.1 0-13.9-1.2-20.3-3.3c-5.5-1.8-11.9 1.6-11.7 7.4c.3 6.9 1.3 13.8 3.2 20.7c13.7 51.2 66.4 81.6 117.6 67.9s81.6-66.4 67.9-117.6c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3z" /> 2535 </svg> 2536 <!-- non_view --> 2537 <svg class="non_view_pw" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"> 2538 <path 2539 d="M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zM223.1 149.5C248.6 126.2 282.7 112 320 112c79.5 0 144 64.5 144 144c0 24.9-6.3 48.3-17.4 68.7L408 294.5c8.4-19.3 10.6-41.4 4.8-63.3c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3c0 10.2-2.4 19.8-6.6 28.3l-90.3-70.8zM373 389.9c-16.4 6.5-34.3 10.1-53 10.1c-79.5 0-144-64.5-144-144c0-6.9 .5-13.6 1.4-20.2L83.1 161.5C60.3 191.2 44 220.8 34.5 243.7c-3.3 7.9-3.3 16.7 0 24.6c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c47.8 0 89.9-12.9 126.2-32.5L373 389.9z" /> 2540 </svg> 2541 </div> 2542 <div class="input-field field_pw"> 2543 <input type="password" id="repetir-password" name="repetir-password" 2544 placeholder="Repetir password*"> 2545 <!-- view --> 2546 <svg class="view_pw" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"> 2547 <path 2548 d="M288 32c-80.8 0-145.5 36.8-192.6 80.6C48.6 156 17.3 208 2.5 243.7c-3.3 7.9-3.3 16.7 0 24.6C17.3 304 48.6 356 95.4 399.4C142.5 443.2 207.2 480 288 480s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C433.5 68.8 368.8 32 288 32zM144 256a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-64c0 35.3-28.7 64-64 64c-7.1 0-13.9-1.2-20.3-3.3c-5.5-1.8-11.9 1.6-11.7 7.4c.3 6.9 1.3 13.8 3.2 20.7c13.7 51.2 66.4 81.6 117.6 67.9s81.6-66.4 67.9-117.6c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3z" /> 2549 </svg> 2550 <!-- non_view --> 2551 <svg class="non_view_pw" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"> 2552 <path 2553 d="M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zM223.1 149.5C248.6 126.2 282.7 112 320 112c79.5 0 144 64.5 144 144c0 24.9-6.3 48.3-17.4 68.7L408 294.5c8.4-19.3 10.6-41.4 4.8-63.3c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3c0 10.2-2.4 19.8-6.6 28.3l-90.3-70.8zM373 389.9c-16.4 6.5-34.3 10.1-53 10.1c-79.5 0-144-64.5-144-144c0-6.9 .5-13.6 1.4-20.2L83.1 161.5C60.3 191.2 44 220.8 34.5 243.7c-3.3 7.9-3.3 16.7 0 24.6c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c47.8 0 89.9-12.9 126.2-32.5L373 389.9z" /> 2554 </svg> 2555 </div> 2556 <div style="display: flex;width: 100%;gap: 6px;flex-direction: column;"> 2557 <div class="error" id="error-email"> 2558 <label for="">Ingrese un correo electrónico válido</label> 2559 </div> 2560 <div class="error" id="error-password"> 2561 <label for="">El campo "Contraseña" y "Repetir contraseña" deben coincidir.</label> 2562 </div> 2563 </div> 2564 </div> 2565 2566 </div> 2567 <div class="wrap-right"> 2568 <p>DATOS DE usuario</p> 2569 2570 <div class="form-control"> 2571 <div class="input-field"> 2572 <input type="text" id="nombre" name="nombre" placeholder="Nombre y Apellido*"> 2573 </div> 2574 <div class="input-field"> 2575 <input type="text" id="telefono" name="telefono" placeholder="Telefono*"> 2576 </div> 2577 <div class="input-field"> 2578 <input type="text" id="pais" name="pais" placeholder="PaÃs*"> 2579 </div> 2580 <div class="input-field"> 2581 <input type="text" id="provincia" name="provincia" placeholder="Provincia*"> 2582 </div> 2583 <div class="input-field"> 2584 <input type="text" id="localidad" name="localidad" placeholder="Localidad*"> 2585 </div> 2586 <div class="input-field"> 2587 <input type="text" id="direccion" name="direccion" placeholder="Dirección*"> 2588 </div> 2589 <div class="input-field"> 2590 <input type="text" id="codigo-postal" name="codigo-postal" placeholder="Código postal*"> 2591 </div> 2592 </div> 2593 2594 </div>
2595 </div> 2596 2597 <div class="paso-dos"> 2598 <div class="wrap-left"> 2599 <button id="bnt_regresar_paso_anterior" class="btn_ btn_periodico_color_1"> 2600 < VOLVER ATRÃS</button> 2601 <p>DATOS PROFESIONALES</p> 2602 2603 <!-- Formulario --> 2604 <div class="form-control"> 2605 <!-- Perfil --> 2606 <div class="input-field"> 2607 <select id="perfil" name="perfil" class="select2"> 2608 <option value="" disabled selected>Seleccione un perfil</option> 2609 <option value="Director">Director</option> 2610 <option value="Director departamento">Director departamento</option> 2611 <option value="Mando intermedio">Mando intermedio</option> 2612 <option value="Otro">Otro</option> 2613 </select> 2614 </div> 2615 2616 <!-- Cargo --> 2617 <div class="input-field"> 2618 <input type="text" id="cargo" name="cargo" placeholder="Cargo*"> 2619 </div> 2620 2621 <!-- Empresa --> 2622 <div class="input-field"> 2623 <input type="text" id="empresa" name="empresa" placeholder="Empresa*"> 2624 </div> 2625 2626 <!-- Actividad --> 2627 <div class="input-field"> 2628 <select id="actividad" name="actividad" class="select2"> 2629 <option value="" disabled selected>Seleccione una actividad</option> 2630 <option value="Fabricación">Fabricación</option> 2631 <option value="Distribución">Distribución</option> 2632 <option value="Otra">Otra</option> 2633 </select> 2634 </div> 2635 2636 2637 <!-- texto legal inscripcion --> 2638 <div class="texto-legal-inscripcion"> 2639 <p> 2640 De conformidad con la normativa europea y nacional en protección de datos, 2641 se 2642 te informa de que, en caso de estar interesado en darse de alta en nuestras 2643 listas de difusión, debes completar los campos al efecto con información 2644 veraz, 2645 siendo responsable de la actualización de los mismos. 2646 </p> 2647 <ul> 2648 <li> 2649 Responsable del Tratamiento: Infocap Media Group, S.L. - 2650 Calle Albasanz, 35. 28037 Madrid - Tel. 913603173. 2651 </li> 2652 <li> 2653 Finalidad: Gestionar tu suscripción a nuestra newsletter y enviarte 2654 información 2655 sobre novedades, promociones y contenidos de interés. 2656 </li> 2657 <li> 2658 Legitimación: Consentimiento del interesado. 2659 </li> 2660 <li> 2661 Destinatarios: No se cederán datos a terceros, salvo obligación legal o 2662 proveedores de servicios bajo contrato de encargo de tratamiento. 2663 </li> 2664 <li> 2665 Derechos: Puedes ejercer tus derechos de acceso, rectificación, 2666 supresión, 2667 oposición, limitación y portabilidad enviando una solicitud a <a 2668 href="mailto:[email protected]" target=_blank>[email protected]</a>. 2669 </li> 2670 <li> 2671 Más información: Consulta nuestra <a href="/politica-privacidad/" 2672 target="_blank">PolÃtica de Privacidad</a> 2673 </li> 2674 </ul> 2675 <p> 2676 Al hacer clic en suscribirme, aceptas recibir nuestra newsletter conforme a 2677 la polÃtica de privacidad expuesta. 2678 </p> 2679 </div> 2680 <!-- texto legal inscripcion --> 2681 2682 </div> 2683 2684 <button type="button" id="suscribirme" 2685 class="btn_ btn_periodico_color_1 btn_full_width disabled" 2686 onclick="registrarCuenta()">SUSCRIBIRME</button> 2687 2688 </div> 2689 </div> 2690 2691 <button type="button" id="siguiente" class="btn_ btn_line btn_full_width disabled">SIGUIENTE ></button> 2692 2693 </form> 2694 </div> 2695 2696 </div> 2697</div> 2698<!-- modal registro --> 2699 2700<!-- modal recuperar contrasenia --> 2701<div id="modal-pass" class="modal modalNew modal-trigger"> 2702 <div class="modal-content"> 2703 <h4>Recuperar contraseña</h4> 2704 <p>Introduce la dirección de correo electrónico con la que te registraste y te enviaremos una nueva clave de 2705 acceso.</p> 2706 <form id="formulario_recuperarpass" onsubmit="return false;" class="Formulario"> 2707 <div class="input-field"> 2708 <input placeholder="Correo electrónico" id="email_recuperar" name="email_recuperar" type="email" 2709 class="validate"> 2710 </div> 2711 </form> 2712 </div> 2713 <div class="modal-footer right-align"> 2714 <button type="button" class="btn_primary" onclick="recuperarPass()"> 2715 <span>Recuperar contraseña</span>
2716 <svg class="icon-acceso-lg" width="12" height="11" viewBox="0 0 12 11" fill="none" 2717 xmlns="http://www.w3.org/2000/svg"> 2718 <path 2719 d="M1.41494 10.7744L0.8125 10.172L9.63316 1.33447H1.50244V0.459473H11.1274V10.0845H10.2524V1.95375L1.41494 10.7744Z" 2720 fill="white" /> 2721 </svg> 2722 </button> 2723 </div> 2724 <a href="javascript:void(0);" class="modal-action modal-close"><i class="material-icons">close</i></a> 2725</div> 2726<!-- modal recuperar contrasenia --> 2727 2728 2729<!-- modal formulario de pago revista --> 2730<div id="modal-pago" class="modal modal-trigger"> 2731 <div class="modal-content"> 2732 <a href="javascript:void(0);" class="modal-action modal-close"><i class="material-icons">close</i></a> 2733 <form id="formulario-pago" onsubmit="return false;" class="Formulario"> 2734 <input type="hidden" id="id_revista" name="id_revista" value=""> 2735 <input type="hidden" id="hidden_pro" name="hidden_pro" value="0"> 2736 <input type="hidden" id="hidden_ejemplar_revista" name="hidden_ejemplar_revista" value="0"> 2737 <p>Datos de usuario</p> 2738 <div class="input-field"> 2739 <input type="text" id="nombre_revista" name="nombre_revista" placeholder="Nombre y Apellido*"> 2740 </div> 2741 <div class="input-field"> 2742 <input type="text" id="nif_revista" name="nif_revista" placeholder="N.I.F./C.I.F.*"> 2743 </div> 2744 <div class="input-field"> 2745 <input type="text" id="telefono_revista" name="telefono_revista" placeholder="Telefono*"> 2746 </div> 2747 <div class="input-field"> 2748 <input type="text" id="empresa_revista" name="empresa_revista" placeholder="Empresa"> 2749 </div> 2750 2751 <div class="input-field"> 2752 <input type="email" id="email_revista" name="email_revista" placeholder="Email*"> 2753 </div> 2754 <p>Dirección de envÃo</p> 2755 <div class="input-field"> 2756 <input type="text" id="direccion_revista" name="direccion_revista" 2757 placeholder="Calle, número, piso, letra, etc...*"> 2758 </div> 2759 <div class="input-field"> 2760 <input type="text" id="ciudad_revista" name="ciudad_revista" placeholder="Ciudad*"> 2761 </div> 2762 <div class="input-field"> 2763 <input type="text" id="codigo_postal_revista" name="codigo_postal_revista" placeholder="Código postal*"> 2764 </div> 2765 <div class="form-check form-check-inline oculto-ayuda-unica"> 2766 <input class="form-check-input" type="checkbox" name="direccion_diferente" value="1" 2767 id="direccion_diferente"> 2768 <label class="form-check-label pl-4" for="direccion_diferente">Haz clic aquà si la dirección de 2769 facturación es diferente a la dirección de envÃo.</label> 2770 2771 </div> 2772 <div class="direccion_facturacion"> 2773 <p>Dirección de facturación</p> 2774 <div class="input-field"> 2775 <input type="text" id="direccion_facturacion_revista" name="direccion_facturacion_revista" 2776 placeholder="Calle, número, piso, letra, etc...*"> 2777 </div> 2778 <div class="input-field"> 2779 <input type="text" id="ciudad_facturacion_revista" name="ciudad_facturacion_revista" 2780 placeholder="Ciudad*"> 2781 </div> 2782 <div class="input-field"> 2783 <input type="text" id="codigo_postal_facturacion_revista" name="codigo_postal_facturacion_revista" 2784 placeholder="Código postal*">
2785 </div> 2786 </div> 2787 <p>PRECIO</p> 2788 <div class="form-check form-check-inline oculto-ayuda-unica"> 2789 <input class="" type="radio" name="precio" value="1" id="precio1"> 2790 <label class="form-check-label pl-4 black-text fw-bold" for="precio1">España (salvo Canarias) 111,32 2791 â¬</label> 2792 2793 </div> 2794 <div class="form-check form-check-inline oculto-ayuda-unica"> 2795 <input class="" type="radio" name="precio" value="1" id="precio2"> 2796 <label class="form-check-label pl-4 black-text fw-bold" for="precio2">Canarias 111,32 â¬</label> 2797 2798 </div> 2799 <div class="form-check form-check-inline oculto-ayuda-unica"> 2800 <input class="" type="radio" name="precio" value="1" id="precio3"> 2801 <label class="form-check-label pl-4 black-text fw-bold" for="precio3">Fuera de España 111,32 â¬</label> 2802 </div> 2803 <span class="iva" style="color: #6e6e6e!important; font-size: 12px!important;">* España (salvo Canarias): 2804 IVA incluido</span> 2805 <br> 2806 <br> 2807 <div id="bloque_pago"> 2808 <span class="iva">ELIGE MÃTODO DE PAGO</span> 2809 <div class="form-check form-check-inline"> 2810 <input type="radio" name="metodo_pago" id="paypal" value="paypal"> 2811 <label class="form-check-label black-text pl-4" for="paypal">Paypal o tarjeta</label> 2812 </div> 2813 2814 <div class="form-check form-check-inline"> 2815 <input type="radio" name="metodo_pago" id="domiciliacion" value="domiciliacion"> 2816 <label class="form-check-label black-text pl-4" for="domiciliacion">Transferencia</label> 2817 </div> 2818 </div> 2819 2820 <div id="bloque_pago2"> 2821 <span class="iva">ELIGE MÃTODO DE PAGO</span> 2822 <div class="form-check form-check-inline"> 2823 <input type="radio" name="metodo_pago" id="paypal_2" value="paypal_2"> 2824 <label class="form-check-label black-text pl-4" for="paypal_2">Paypal</label> 2825 </div> 2826 2827 <div class="form-check form-check-inline"> 2828 <input type="radio" name="metodo_pago" id="transferencia" value="transferencia"> 2829 <label class="form-check-label black-text pl-4" for="transferencia">Domiciliación</label> 2830 </div> 2831 </div> 2832 2833 <!-- <div class="form-check form-check-inline"> 2834 <input type="radio" name="metodo_pago" id="transferencia" value="transferencia"> 2835 <label class="form-check-label pl-4" for="transferencia">Transferencia</label> 2836 </div> --> 2837 2838 <!-- <button class="btn_ btn_periodico_color_1 btn_dinamico adquirir_ejemplar" onclick="adquirirEjemplar()"> Adquirir Ejemplar</button> 2839 <div id="paypal-button-container"></div> --> 2840 2841 <div id="recaptcha" name="recaptcha" class="g-recaptcha" 2842 data-sitekey="6LfGyOkrAAAAAES6Nb6hCeA77U8TXzaXH3lPdvqs" data-callback="recaptchaValidado" 2843 data-expired-callback="recaptchaExpirado"></div> 2844 2845 <div id="transferencia-container" class="btn-container"> 2846 <br> 2847 <div class="border-bottom"> 2848 <div class="input-field"> 2849 <input type="text" id="iban_revista" name="iban_revista" placeholder="IBAN*"> 2850 </div> 2851 <p> 2852 En un plazo de dos dÃas, se procederá a la domiciliación del importe indicado. 2853 </p> 2854 <p> 2855 <strong> 2856 Instrucciones: 2857 </strong> 2858 </p> 2859 <p> 2860 - Ahorro frente a la compra del ejemplar suelto 2861 </p> 2862 <p> 2863 - EnvÃo gratuito por mensajerÃa en un plazo de 3 a 5 dÃas hábiles. 2864 </p> 2865 <p> 2866 - Renovación automática, que puedes cancelar en cualquier momento con un 2867 aviso mÃnimo de un mes antes del vencimiento. 2868 </p> 2869 <p> 2870 <strong> 2871 PolÃtica de privacidad: 2872 </strong> 2873 </p> 2874 <p> 2875 Tus datos se almacenarán en un fichero de Infocap Media Group, S.L.. De acuerdo con la Ley 2876 Orgánica 15/1999, de 13 de diciembre,puedes acceder, modificar o cancelar tus datos 2877 notificándolo por escrito. 2878 </p> 2879 <p> 2880 Cuenta Bancaria: ES36 - 0049 - 4468 - 26 - 2310005044 2881 </p> 2882 <p> 2883 Recuerda indicar en el asunto de la transferencia tu nombre y apellidos. 2884 </p> 2885 </div> 2886 <button class="btn_ btn_periodico_color_1 btn_dinamico adquirir_ejemplar" 2887 onclick="adquirirEjemplar('subscripcion')"> Suscribirme</button> 2888 </div> 2889 2890 <!-- Botón para Domiciliación --> 2891 <div id="domiciliacion-container" class="btn-container" style="text-align:center;"> 2892 <div class="border-bottom"> 2893 <p> 2894 En un plazo de dos dÃas, se procederá a la domiciliación del importe indicado. 2895 </p> 2896 <p> 2897 Cuenta Bancaria: ES36 - 0049 - 4468 - 26 - 2310005044 2898 </p> 2899 <p style="margin-bottom: 12px!important;"> 2900 Recuerda indicar en el asunto de la transferencia tu nombre y apellidos. 2901 </p> 2902 </div> 2903 <button class="btn_ btn_periodico_color_1 btn_dinamico adquirir_ejemplar" 2904 onclick="adquirirEjemplar('adquirir')"> Adquirir ejemplar</button> 2905 </div> 2906 2907 <!-- Contenedor de PayPal --> 2908 <div id="paypal-container" class="btn-container"> 2909 <div id="paypal-button-container"></div> 2910 </div> 2911 2912 <!-- Contenedor de Transferencia --> 2913 <!-- <div id="transferencia-container" class="btn-container"> 2914 <button class="btn_ btn_transferencia">Pagar con Transferencia</button> 2915 </div> --> 2916 2917 </form> 2918 2919 <div class="exito"> 2920 <h3>¡SOLICITUD ENVIADA CON ÃXITO!</h3> 2921 2922 <p>Ahora recuerda hacer la transferencia a la cuenta arriba señalada. No te olvides de indicar en el asunto 2923 de la transferencia tu nombre y apellidos</p> 2924 </div> 2925 </div> 2926 2927 2928</div> 2929<!-- modal formulario de pago revista --> 2930 2931 2932 2933<!-- modal newsletter --> 2934<div id="modal-newsletter" class="modal modalNew modal-trigger"> 2935 <div class="modal-content"> 2936 <h4>ALTA NEWSLETTER</h4> 2937 <form id="formulario_alta_newsletter" onsubmit="return false;" class="Formulario"> 2938 <div class="input-field"> 2939 <input placeholder="Nombre" id="nombre-alta-newsletter" name="nombre-alta-newsletter" type="text" 2940 class="validate"> 2941 </div> 2942 <div class="input-field"> 2943 <input placeholder="Correo electrónico" id="email-alta-newsletter" name="email-alta-newsletter" 2944 type="email" class="validate"> 2945 </div> 2946 <div class="input-field"> 2947 <p style="margin: 0 0 5px 0; font-size: 0.9rem; color: #757575;">Seguridad: ¿Cuánto es 5 + 2?</p> 2948 <input placeholder="Escribe el resultado" id="respuesta_humana" name="respuesta_humana" type="number" 2949 class="validate"> 2950 </div> 2951 <div style='display:none;' aria-hidden='true'> 2952 <input type='text' name='control_trampa_filtro' id='control_trampa_filtro' tabindex='-1' 2953 autocomplete='off'> 2954 </div> 2955 </form> 2956 </div> 2957 <div class="modal-footer center-align"> 2958 <button type="button" class="button-newsletter" onclick="solicitarAltaNewsletter()"> 2959 <span> 2960 Suscribirme 2961 </span> 2962 <span class="icon-container"> 2963 <svg class="icon-email" width="19" height="15" viewBox="0 0 19 15" fill="none" 2964 xmlns="http://www.w3.org/2000/svg"> 2965 <path 2966 d="M1.875 15C1.35937 15 0.918125 14.8166 0.55125 14.4497C0.184375 14.0828 0.000625 13.6412 0 13.125V1.875C0 1.35937 0.18375 0.918125 0.55125 0.55125C0.91875 0.184375 1.36 0.000625 1.875 0H16.875C17.3906 0 17.8322 0.18375 18.1997 0.55125C18.5672 0.91875 18.7506 1.36 18.75 1.875V13.125C18.75 13.6406 18.5666 14.0822 18.1997 14.4497C17.8328 14.8172 17.3912 15.0006 16.875 15H1.875ZM9.375 8.4375L16.875 3.75V1.875L9.375 6.5625L1.875 1.875V3.75L9.375 8.4375Z" 2967 fill="#008D36"></path> 2968 </svg> 2969 <svg class="icon-arrow" width="17" height="15" viewBox="0 0 17 15" fill="none" 2970 xmlns="http://www.w3.org/2000/svg"> 2971 <path 2972 d="M0.440939 14.9636C0.312221 14.9194 0.20055 14.8362 0.121505 14.7257C0.0424597 14.6151 -1.71477e-05 14.4827 5.19295e-09 14.347C5.19295e-09 11.3675 0.599906 8.98477 1.78378 7.26435C3.21407 5.18566 5.47026 4.06643 8.50003 3.92744V0.65208C8.50004 0.524384 8.53764 0.399501 8.60816 0.292924C8.67869 0.186346 8.77903 0.102764 8.89674 0.0525456C9.01446 0.00232745 9.14437 -0.0123165 9.27035 0.0104302C9.39633 0.033177 9.51285 0.0923135 9.60544 0.180504L16.7978 7.02795C16.8617 7.08884 16.9126 7.16202 16.9473 7.24307C16.9821 7.32413 17 7.41137 17 7.49952C17 7.58768 16.9821 7.
297267492 16.9473 7.75597C16.9126 7.83703 16.8617 7.91021 16.7978 7.9711L9.60544 14.8185C9.51285 14.9067 9.39633 14.9659 9.27035 14.9886C9.14437 15.0114 9.01446 14.9967 8.89674 14.9465C8.77903 14.8963 8.67869 14.8127 8.60816 14.7061C8.53764 14.5995 8.50004 14.4747 8.50003 14.347V11.0957C6.66108 11.1511 5.27165 11.4482 4.16542 12.0184C2.97011 12.6347 2.10335 13.5554 1.16916 14.7493C1.08536 14.8563 0.970141 14.9346 0.839593 14.9731C0.709044 15.0117 0.569677 15.0087 0.440939 14.9645V14.9636Z" 2973 fill="#008D36"></path> 2974 </svg> 2975 </span> 2976 </button> 2977 </div> 2978 <a href="javascript:void(0);" class="modal-action modal-close"><i class="material-icons">close</i></a> 2979</div> 2980<!-- modal newsletter --> 2981 2982<!-- modal solicitar revista --> 2983<div id="modal-solicitar-revista" class="modal modalNew modal-trigger"> 2984 <div class="modal-content"> 2985 <h4>Solicita ahora tus ejemplares en papel</h4> 2986 2987 <p>Completa el formulario y recibe uno o varios números de nuestra revista en edición impresa, una referencia 2988 informativa para directivos y profesionales del sector.</p> 2989 <p>Solo tienes que:</p> 2990 <ul> 2991 <li>â¢â â Rellenar tus datos de contacto básicos.</li> 2992 <li>â¢â â Seleccionar los números que deseas recibir.</li> 2993 </ul> 2994 <p>En cuanto recibamos tu solicitud, uno de nuestros asesores se pondrá en contacto contigo por teléfono o email 2995 para confirmar tu selección, resolver cualquier duda y cerrar la compra de forma rápida y sencilla.</p> 2996 <p>Precio por ejemplar: 26,90 â¬</p> 2997 <ul> 2998 <li>â IVA incluido</li> 2999 <li>â EnvÃo por mensajerÃa urgente incluido</li> 3000 </ul> 3001 <p>Una forma cómoda y segura de acceder a información valiosa, en el mejor formato.</p> 3002 <form id="formulario_solicitar_revista_papel" onsubmit="return false;" class="Formulario"> 3003 <div class="input-field"> 3004 <input placeholder="Nombre" id="nombre-solicitar-revista-papel" name="nombre-solicitar-revista-papel" 3005 type="text" class="validate"> 3006 </div> 3007 <div class="input-field"> 3008 <input placeholder="Apellido" id="apellido-solicitar-revista-papel" 3009 name="apellido-solicitar-revista-papel" type="text" class="validate"> 3010 </div> 3011 <div class="input-field"> 3012 <input placeholder="Correo electrónico" id="email-solicitar-revista-papel" 3013 name="email-solicitar-revista-papel" type="email" class="validate"> 3014 </div> 3015 <div> 3016 <p>Selecciona una o más revistas</p> 3017 <ul> 3018 <li> 3019 <div class="form-check form-check-inline oculto-ayuda-unica"> 3020 <input class="form-check-input cantidad" type="checkbox" name="revista[]" 3021 value="FRS ANUARIO PERSPECTIVAS FMCG" 3022 id="revista-FRS ANUARIO PERSPECTIVAS FMCG"> 3023 <label class="form-check-label" 3024 for="revista-FRS ANUARIO PERSPECTIVAS FMCG">FRS ANUARIO PERSPECTIVAS FMCG</label> 3025 </div> 3026 </li> 3027 <li> 3028 <div class="form-check form-check-inline oculto-ayuda-unica"> 3029 <input class="form-check-input cantidad" type="checkbox" name="revista[]" 3030 value="FRS ANUARIO DE LA INNOVACIÃN" 3031 id="revista-FRS ANUARIO DE LA INNOVACIÃN"> 3032 <label class="form-check-label" 3033 for="revista-FRS ANUARIO DE LA INNOVACIÃN">FRS ANUARIO DE LA INNOVACIÃN</label> 3034 </div> 3035 </li> 3036 <li> 3037 <div class="form-check form-check-inline oculto-ayuda-unica"> 3038 <input class="form-check-input cantidad" type="checkbox" name="revista[]" 3039 value="FRS ANUARIO DE FRUTAS Y HORTALIZAS" 3040 id="revista-FRS ANUARIO DE FRUTAS Y HORTALIZAS"> 3041 <label class="form-check-label" 3042 for="revista-FRS ANUARIO DE FRUTAS Y HORTALIZAS">FRS ANUARIO DE FRUTAS Y HORTALIZAS</label> 3043 </div> 3044 </li> 3045 <li> 3046 <div class="form-check form-check-inline oculto-ayuda-unica"> 3047 <input class="form-check-input cantidad" type="checkbox" name="revista[]" 3048 value="TOP 100 FRS PROFESIONALES DEL SECTOR ALIMENTACIÃN (FMCG)" 3049 id="revista-TOP 100 FRS PROFESIONALES DEL SECTOR ALIMENTACIÃN (FMCG)"> 3050 <label class="form-check-label" 3051 for="revista-TOP 100 FRS PROFESIONALES DEL SECTOR ALIMENTACIÃN (FMCG)">TOP 100 FRS PROFESIONALES DEL SECTOR ALIMENTACIÃN (FMCG)</label> 3052 </div> 3053 </li> 3054 </ul> 3055 </div> 3056 </form> 3057 </div> 3058 <div class="modal-footer center-align"> 3059 <button type="button" class="button-newsletter" onclick="solicitarRevistaPapel()"> 3060 <span> 3061 Solicitar 3062 </span> 3063 <span class="icon-container"> 3064 <svg width="17" height="15" viewBox="0 0 17 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 3065 <path 3066 d="M0.440939 14.9636C0.312221 14.9194 0.20055 14.8362 0.121505 14.7257C0.0424597 14.6151 -1.71477e-05 14.4827 5.19295e-09 14.347C5.19295e-09 11.3675 0.599906 8.98477 1.78378 7.26435C3.21407 5.18566 5.47026 4.06643 8.50003 3.92744V0.65208C8.50004 0.524384 8.53764 0.399501 8.60816 0.292924C8.67869 0.186346 8.77903 0.102764 8.89674 0.0525456C9.01446 0.00232745 9.14437 -0.0123165 9.27035 0.0104302C9.39633 0.033177 9.51285 0.0923135 9.60544 0.180504L16.7978 7.02795C16.8617 7.08884 16.9126 7.16202 16.9473 7.24307C16.9821 7.32413 17 7.41137 17 7.49952C17 7.58768 16.9821 7.
306667492 16.9473 7.75597C16.9126 7.83703 16.8617 7.91021 16.7978 7.9711L9.60544 14.8185C9.51285 14.9067 9.39633 14.9659 9.27035 14.9886C9.14437 15.0114 9.01446 14.9967 8.89674 14.9465C8.77903 14.8963 8.67869 14.8127 8.60816 14.7061C8.53764 14.5995 8.50004 14.4747 8.50003 14.347V11.0957C6.66108 11.1511 5.27165 11.4482 4.16542 12.0184C2.97011 12.6347 2.10335 13.5554 1.16916 14.7493C1.08536 14.8563 0.970141 14.9346 0.839593 14.9731C0.709044 15.0117 0.569677 15.0087 0.440939 14.9645V14.9636Z" 3067 fill="#008D36"></path> 3068 </svg> 3069 </span> 3070 </button> 3071 </div> 3072 <a href="javascript:void(0);" class="modal-action modal-close"><i class="material-icons">close</i></a> 3073</div> 3074<!-- modal solicitar revista --> 3075 3076<!-- --------------------------------------------------------------------------------> 3077<!-- ------------------------------- // MODALES -------------------------------------> 3078<!-- --------------------------------------------------------------------------------> 3079<!-- MODAL + COOKIES -->
3080<script src="https://cdn.jsdelivr.net/npm/js-cookie@2/src/js.cookie.min.js"></script>
vendor: 1 bytes, line 3080
3080
3081<script> 3082 $(document).ready(function () { 3083 if (Cookies.get('cookieApp') === 'true') { 3084 // console.log( "YES!" ); 3085 $('#simple-overlay').hide(); 3086 } else { 3087 Cookies.set('cookieApp', 'true', { 3088 expires: 1 3089 }); 3090 // console.log( "NO!" ); 3091 $('#simple-overlay').show(); 3092 } 3093 3094 $(".simple-hide a.close").click(function () { 3095 $('#simple-overlay').hide(); 3096 }); 3097 3098 }); 3099 3100</script>
3100 3101<!-- // MODAL + COOKIES --> 3102<!-- MODAL URGENTE + cookies -->
3103<script> 3104 3105 $(document).ready(function () { 3106 3107 var inThirtyMinutes = new Date(new Date().getTime() + 30 * 60 * 1000); 3108 if (Cookies.get('cookieURG') === 'true') { 3109 // console.log( "Cookie exists! - dont show" ); 3110 } else { 3111 Cookies.set('cookieURG', 'true', { 3112 expires: inThirtyMinutes 3113 }); 3114 // console.log( "NO cookie! showing urgent" ); 3115 setTimeout(function () { 3116 $('#modal-urgente').modal('open'); 3117 }, 1000); 3118 } 3119 3120 $("input[name='metodo_pago']").change(function () { 3121 // Ocultar todos los contenedores de botones 3122 $("#paypal-container, #domiciliacion-container, #transferencia-container").hide(); 3123 3124 let metodoSeleccionado = $("input[name='metodo_pago']:checked").val(); 3125 3126 if (metodoSeleccionado === "paypal_2") { 3127 console.log("PAYPAL2"); 3128 $("#paypal-container").show(); 3129 let formData = validarForm(); 3130 if (formData) { 3131 $("#paypal-button-container").show(); 3132 renderPayPalButton(formData.precio, formData, "ocultar"); 3133 } 3134 } else if (metodoSeleccionado === "paypal") { 3135 console.log("PAYPAL"); 3136 $("#paypal-container").show(); 3137 let formData = validarForm(); 3138 if (formData) { 3139 $("#paypal-button-container").show(); 3140 renderPayPalButton(formData.precio, formData, "mostrar"); 3141 } 3142 //renderPayPalButton(); // Función para cargar el botón de PayPal 3143 } else if (metodoSeleccionado === "domiciliacion") { 3144 $("#domiciliacion-container").show(); 3145 } else if (metodoSeleccionado === "transferencia") { 3146 $("#transferencia-container").show(); 3147 } 3148 }); 3149 3150 3151 function validarForm() { 3152 var nombre = $("#nombre_revista").val().trim(); 3153 var nif = $("#nif_revista").val().trim(); 3154 var telefono = $("#telefono_revista").val().trim(); 3155 var empresa = $("#empresa_revista").val().trim(); 3156 var email = $("#email_revista").val().trim(); 3157 var direccion = $("#direccion_revista").val().trim(); 3158 var ciudad = $("#ciudad_revista").val().trim(); 3159 var cp = $("#codigo_postal_revista").val().trim(); 3160 var direccion_fact = $("#direccion_facturacion_revista").val().trim(); 3161 var ciudad_fact = $("#ciudad_facturacion_revista").val().trim(); 3162 var cp_fact = $("#codigo_postal_facturacion_revista").val().trim(); 3163 var id_revista = $("#id_revista").val(); 3164 var precio = $('input[name="precio"]:checked').val(); 3165 var hidden_pro = $("#hidden_pro").val(); 3166 var hidden_ejemplar_revista = $("#hidden_ejemplar_revista").val(); 3167 3168 var direccion_diferente_fact = $("#direccion_diferente").is(':checked') ? 1 : 0; 3169 3170 var recaptcha = grecaptcha.getResponse(); 3171 3172 var guardar = true; 3173 var errores = []; 3174 3175 // Validaciones con regex 3176 if (nombre.length < 3) { guardar = false; errores.push("Nombre inválido"); } 3177 if (!/^[0-9A-Z]{7,9}$/i.test(nif)) { guardar = false; errores.push("NIF inválido"); } 3178 if (!/^[0-9]{9}$/.test(telefono)) { guardar = false; errores.push("Teléfono inválido"); } 3179 if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email)) { guardar = false; errores.push("Email inválido"); } 3180 if (direccion.length < 5) { guardar = false; errores.push("Dirección inválida"); } 3181 if (ciudad.length < 2) { guardar = false; errores.push("Ciudad inválida"); } 3182 if (!/^[0-9]{5}$/.test(cp)) { guardar = false; errores.push("Código postal inválido"); } 3183 3184 // Validar facturación si hay dirección diferente 3185 if (direccion_diferente_fact) { 3186 if (direccion_fact.length < 5) { guardar = false; errores.push("Dirección de facturación inválida"); } 3187 if (ciudad_fact.length < 2) { guardar = false; errores.push("Ciudad facturación inválida"); } 3188 if (!/^[0-9]{5}$/.test(cp_fact)) { guardar = false; errores.push("CP facturación inválido"); } 3189 } 3190 3191 // Validar precio 3192 if (!precio) { 3193 guardar = false; 3194 errores.push("Debes seleccionar un precio"); 3195 } 3196 3197 if (!guardar) { 3198 alert("Errores en el formulario:\n- " + errores.join("\n- ")); 3199 return null; 3200 } 3201 3202 if (recaptcha.length == 0) { 3203 // Si el usuario eligió PayPal pero no marcó el captcha antes de que el botón aparezca 3204 alert("Por favor, confirma el reCAPTCHA antes de proceder con el pago."); 3205 return null; 3206 } 3207 3208 return { 3209 nombre, nif, telefono, empresa, email, 3210 direccion, ciudad, cp, 3211 id_revista, precio, 3212 direccion_fact, ciudad_fact, cp_fact, 3213 direccion_diferente_fact, hidden_pro, hidden_ejemplar_revista, recaptcha 3214 }; 3215 } 3216 3217 function recaptchaValidado() { 3218 console.log("Captcha completado"); 3219 } 3220 3221 function recaptchaExpirado() { 3222 grecaptcha.reset(); 3223 alert("La validación de seguridad ha caducado por tiempo. Por favor, marca el reCAPTCHA de nuevo."); 3224 } 3225 3226 function renderPayPalButton(price, formData, metodo) { 3227 console.log("PRECIO" + parseFloat(price.replace(',', '.')).toFixed(2)); 3228 $("#paypal-button-container").empty(); // Limpiar botón anterior 3229 3230 if (metodo == "ocultar") { 3231 paypal.Buttons({ 3232 fundingSource: paypal.FUNDING.PAYPAL, // Mostrar solo PayPal 3233 createOrder: function (data, actions) { 3234 return actions.order.create({ 3235 purchase_units: [{ 3236 amount: { 3237 value: parseFloat(price.replace(',', '.')).toFixed(2), 3238 // value: 0.01, 3239 currency_code: "EUR" // Configurar pagos en euros 3240 } 3241 }] 3242 }); 3243 }, 3244 onApprove: function (data, actions) { 3245 return actions.order.capture().then(function (details) {
3246 console.log(JSON.stringify(details)); 3247 // alert("Pago exitoso, gracias " + details.payer.name.given_name); 3248 3249 var recaptcha = grecaptcha.getResponse(); 3250 3251 if (!recaptcha.length) { 3252 alert("Por favor, confirma que no eres un robot."); 3253 return; 3254 } 3255 3256 $.ajax({ 3257 type: "POST", 3258 xhrFields: { 3259 withCredentials: true 3260 }, 3261 url: `https://api.foodretail.es/api/adquirir_ejemplar.php?t=` + generarCadenaAlfanumerica(), 3262 data: { 3263 nombre: formData.nombre, 3264 nif: formData.nif, 3265 telefono: formData.telefono, 3266 empresa: formData.empresa, 3267 email: formData.email, 3268 direccion: formData.direccion, 3269 ciudad: formData.ciudad, 3270 cp: formData.cp, 3271 id_revista: formData.id_revista, 3272 precio: formData.precio, 3273 direccion_fact: formData.direccion_fact, 3274 ciudad_fact: formData.ciudad_fact, 3275 cp_fact: formData.cp_fact, 3276 direccion_diferente_fact: formData.direccion_diferente_fact, 3277 hidden_pro: formData.hidden_pro, 3278 hidden_ejemplar_revista: formData.hidden_ejemplar_revista, 3279 tipo: "PayPal", 3280 token_pay: details.purchase_units[0].payments.captures[0].id, 3281 recaptcha: recaptcha 3282 }, 3283 success: function (data) { 3284 if (data == 1) { 3285 setTimeout(function () { 3286 $('#formulario-pago').hide(); 3287 $('.exito').css('display', 'block'); 3288 $('#modal-pago .modal-close').css('display', 'flex'); 3289 }, 2000); 3290 } 3291 else { 3292 3293 } 3294 }, 3295 error: function (request, error) { 3296 console.log(error); 3297 } 3298 }); 3299 }); 3300 } 3301 }).render("#paypal-button-container"); 3302 } 3303 else { 3304 paypal.Buttons({ 3305 createOrder: function (data, actions) { 3306 return actions.order.create({ 3307 purchase_units: [{ 3308 amount: { 3309 value: parseFloat(price.replace(',', '.')).toFixed(2), 3310 // value: 0.01, 3311 currency_code: "EUR" // Configurar pagos en euros 3312 } 3313 }] 3314 }); 3315 }, 3316 onApprove: function (data, actions) { 3317 return actions.order.capture().then(function (details) { 3318 console.log(JSON.stringify(details)); 3319 // alert("Pago exitoso, gracias " + details.payer.name.given_name); 3320 3321 var recaptcha = grecaptcha.getResponse(); 3322 if (!recaptcha.length) { 3323 alert("Por favor, confirma que no eres un robot."); 3324 return; 3325 } 3326 3327 $.ajax({ 3328 type: "POST", 3329 xhrFields: { 3330 withCredentials: true 3331 }, 3332 url: `https://api.foodretail.es/api/adquirir_ejemplar.php?t=` + generarCadenaAlfanumerica(), 3333 data: { 3334 nombre: formData.nombre, 3335 nif: formData.nif, 3336 telefono: formData.telefono, 3337 empresa: formData.empresa, 3338 email: formData.email, 3339 direccion: formData.direccion, 3340 ciudad: formData.ciudad, 3341 cp: formData.cp, 3342 id_revista: formData.id_revista, 3343 precio: formData.precio, 3344 direccion_fact: formData.direccion_fact, 3345 ciudad_fact: formData.ciudad_fact, 3346 cp_fact: formData.cp_fact, 3347 direccion_diferente_fact: formData.direccion_diferente_fact, 3348 hidden_pro: formData.hidden_pro, 3349 hidden_ejemplar_revista: formData.hidden_ejemplar_revista, 3350 tipo: "PayPal", 3351 token_pay: details.purchase_units[0].payments.captures[0].id, 3352 recaptcha: recaptcha 3353 }, 3354 success: function (data) { 3355 if (data == 1) { 3356 setTimeout(function () { 3357 $('#formulario-pago').hide(); 3358 $('.exito').css('display', 'block'); 3359 $('#modal-pago .modal-close').css('display', 'flex'); 3360 }, 2000); 3361 } 3362 else { 3363 3364 } 3365 }, 3366 error: function (request, error) { 3367 console.log(error); 3368 } 3369 }); 3370 }); 3371 } 3372 }).render("#paypal-button-container"); 3373 } 3374 3375 } 3376 3377 // Detectar cuando se selecciona un radio button y actualizar PayPal 3378 // $("input[name='precio']").change(function() { 3379 // let formData = validarForm(); 3380 // if (formData) { 3381 // $("#paypal-button-container").show(); 3382 // renderPayPalButton(formData.precio, formData, ""); 3383 // } 3384 // }); 3385 3386 // Renderizar botón inicial si hay un radio seleccionado por defecto 3387 // let initialPrice = $("input[name='precio']:checked").val(); 3388 // if (initialPrice) { 3389 // renderPayPalButton(initialPrice); 3390 // } 3391 3392 }); 3393</script>
3393 3394<!-- // MODAL URGENTE + cookies --> 3395
3396<script> 3397 $(document).on('click', '.modal-trigger', function () { 3398 3399 $('#formulario-pago').show(); 3400 $('.exito').css('display', 'none'); 3401 $('#modal-pago .modal-close').css('display', 'flex'); 3402 3403 // Obtén los valores de data-* del botón que disparó el modal 3404 var precio1 = $(this).data('precio1'); 3405 var precio2 = $(this).data('precio2'); 3406 var precio3 = $(this).data('precio3'); 3407 var tipo = $(this).data('tipo'); 3408 var pro_revista = $(this).data('pro_revista'); 3409 var ejemplar_revista = $(this).data('ejemplar_revista'); 3410 3411 // Marca el modal como inicializado 3412 $('#modal-pago').data('initialized', true); 3413 3414 if (tipo == "subscripcion") { 3415 console.log("subscripcion"); 3416 $("#domiciliacion-container").hide(); 3417 $("#bloque_pago").hide(); 3418 $("#bloque_pago2").show(); 3419 $("#paypal-container").hide(); 3420 $("#transferencia-container").show(); 3421 } 3422 else if (tipo == "adquirir") { 3423 console.log("adquirir"); 3424 $("#transferencia-container").hide(); 3425 $("#bloque_pago").show(); 3426 $("#bloque_pago2").hide(); 3427 $("#domiciliacion-container").show(); 3428 } 3429 3430 console.log(precio1, precio2, precio3); // Depuración 3431 3432 // Encuentra los radios dentro del modal y actualiza sus etiquetas y valores 3433 $('#modal-pago').find('#precio1').next('label').text(`España (salvo Canarias) ${precio1} â¬`); 3434 $('#modal-pago').find('#precio2').next('label').text(`Canarias ${precio2} â¬`); 3435 $('#modal-pago').find('#precio3').next('label').text(`Fuera de España ${precio3} â¬`); 3436 3437 // Asigna los valores a los radios 3438 $('#modal-pago').find('#precio1').val(precio1); 3439 $('#modal-pago').find('#precio2').val(precio2); 3440 $('#modal-pago').find('#precio3').val(precio3); 3441 $('#modal-pago').find('#hidden_pro').val(pro_revista); 3442 $('#modal-pago').find('#hidden_ejemplar_revista').val(ejemplar_revista); 3443 }); 3444 3445 $('#modal-pago').on('click', function (event) { 3446 if ($(this).data('initialized')) { 3447 event.stopPropagation(); 3448 } 3449 }); 3450 3451 $(document).ready(function () { 3452 3453 $('#direccion_diferente').click(function () { 3454 if ($('#direccion_diferente').prop('checked')) { 3455 $('.direccion_facturacion').css('display', 'block'); 3456 } else { 3457 $('.direccion_facturacion').css('display', 'none'); 3458 } 3459 }); 3460 }); 3461 3462 // $('#modal-pago').on('show.bs.modal', function (event) { 3463 // var button = $(event.relatedTarget); // Botón que disparó el modal 3464 // // Obtén los valores de data-* del botón que disparó el modal 3465 // var precio1 = $(this).data('precio1'); 3466 // var precio2 = $(this).data('precio2'); 3467 // var precio3 = $(this).data('precio3'); 3468 // var pro_revista = $(this).data('pro_revista'); 3469 // var ejemplar_revista = $(this).data('ejemplar_revista'); 3470 3471 // // Marca el modal como inicializado
3472 // $('#modal-pago').data('initialized', true); 3473 3474 // console.log(precio1, precio2, precio3); // Depuración 3475 3476 // // Actualiza las etiquetas de los radio buttons con los precios 3477 // $('label[for="precio1"]').text(`España (salvo Canarias) ${precio1} â¬`); 3478 // $('label[for="precio2"]').text(`Canarias ${precio2} â¬`); 3479 // $('label[for="precio3"]').text(`Extranjero ${precio3} â¬`); 3480 3481 // // Asigna los valores a los radios 3482 // $('#modal-pago').find('#precio1').val(precio1); 3483 // $('#modal-pago').find('#precio2').val(precio2); 3484 // $('#modal-pago').find('#precio3').val(precio3); 3485 // $('#modal-pago').find('#hidden_pro').val(pro_revista); 3486 // $('#modal-pago').find('#hidden_ejemplar_revista').val(ejemplar_revista); 3487 // }); 3488 3489 // function send_form() { 3490 3491 // } 3492 3493 // setTimeout(function() { 3494 // window.location.reload(); 3495 // }, 2 * 60 * 60 * 1000); 3496 3497 // $(".modal-overlay").focus(function() { 3498 // $(".modal-overlay").trigger("click"); 3499 // }); 3500 3501 // if (!$('.slick_x3_slider').hasClass('slick-initialized')) { 3502 // $('.slick_x3_slider').slick({ 3503 // //lazyLoad: 'ondemand', 3504 // slidesToShow: 3, 3505 // slidesToScroll: 1, 3506 // infinite: true, 3507 // responsive: [{ 3508 // breakpoint: 992, 3509 // settings: { 3510 // slidesToShow: 3, 3511 // slidesToScroll: 1 3512 // } 3513 // }, 3514 // { 3515 // breakpoint: 768, 3516 // settings: { 3517 // slidesToShow: 2, 3518 // slidesToScroll: 1 3519 // } 3520 // }, 3521 // { 3522 // breakpoint: 576, 3523 // settings: { 3524 // slidesToShow: 1, 3525 // slidesToScroll: 1 3526 // } 3527 // } 3528 // // You can unslick at a given breakpoint now by adding: 3529 // // settings: "unslick" 3530 // // instead of a settings object 3531 // ] 3532 // }); 3533 // } 3534 3535 // if (!$('.carousel_x3_responsive').hasClass('slick-initialized')) { 3536 // $('.carousel_x3_responsive').slick({ 3537 // //lazyLoad: 'ondemand', 3538 // slidesToShow: 3, 3539 // slidesToScroll: 1, 3540 // infinite: true, 3541 // responsive: [{ 3542 // breakpoint: 992, 3543 // settings: { 3544 // slidesToShow: 3, 3545 // slidesToScroll: 1 3546 // } 3547 // }, 3548 // { 3549 // breakpoint: 768, 3550 // settings: { 3551 // slidesToShow: 3, 3552 // slidesToScroll: 1 3553 // } 3554 // }, 3555 // { 3556 // breakpoint: 576, 3557 // settings: { 3558 // slidesToShow: 1, 3559 // slidesToScroll: 1 3560 // } 3561 // } 3562 // ] 3563 // }); 3564 // } 3565 // }); 3566 3567 function adquirirEjemplar(tipo) { 3568 3569 console.log(tipo); 3570 3571 var nombre = $("#nombre_revista").val(); 3572 var nif = $("#nif_revista").val(); 3573 var telefono = $("#telefono_revista").val(); 3574 var empresa = $("#empresa_revista").val(); 3575 var email = $("#email_revista").val(); 3576 3577 var guardar = true; 3578 3579 var direccion_diferente_fact = 0; 3580 3581 var direccion = $("#direccion_revista").val(); 3582 var ciudad = $("#ciudad_revista").val(); 3583 var cp = $("#codigo_postal_revista").val(); 3584 3585 var hidden_pro = $("#hidden_pro").val(); 3586 var hidden_ejemplar_revista = $("#hidden_ejemplar_revista").val(); 3587 3588 var direccion_fact = $("#direccion_facturacion_revista").val(); 3589 var ciudad_fact = $("#ciudad_facturacion_revista").val(); 3590 var cp_fact = $("#codigo_postal_facturacion_revista").val(); 3591 3592 var iban_revista = $("#iban_revista").val(); 3593 3594 var recaptcha = grecaptcha.getResponse(); 3595 3596 console.log(recaptcha); 3597 3598 if (tipo == "subscripcion") { 3599 if (iban_revista.length == 0) { 3600 guardar = false; 3601 } 3602 } 3603 else if (tipo == "adquirir") { 3604 if (iban_revista.length == 0) { 3605 guardar = true; 3606 } 3607 } 3608 3609 if ($("#direccion_diferente").is(':checked')) { 3610 direccion_diferente_fact = 1; 3611 } 3612 3613 var id_revista = $("#id_revista").val(); 3614 var precio = $('input[name="precio"]:checked').val(); 3615 3616 if (nombre.length == 0) { 3617 alert("Por favor, confirma el nombre."); 3618 guardar = false; 3619 } 3620 3621 if (nif.length == 0) { 3622 alert("Por favor, confirma el nif."); 3623 guardar = false; 3624 } 3625 3626 if (telefono.length == 0) { 3627 alert("Por favor, confirma el telefono."); 3628 guardar = false; 3629 } 3630 3631 if (recaptcha.length == 0) { 3632 alert("Por favor, confirma que no eres un robot."); 3633 guardar = false; 3634 } 3635 3636 if (email.length == 0) { 3637 alert("Por favor, confirma el email."); 3638 guardar = false;
3639 } 3640 3641 if (direccion.length == 0) { 3642 alert("Por favor, confirma la dirección."); 3643 guardar = false; 3644 } 3645 3646 if (ciudad.length == 0) { 3647 alert("Por favor, confirma la localidad."); 3648 guardar = false; 3649 } 3650 3651 if (cp.length == 0) { 3652 alert("Por favor, confirma el código postal."); 3653 guardar = false; 3654 } 3655 3656 if (guardar) { 3657 let tipo = "Domiciliacion"; 3658 $.ajax({ 3659 type: "POST", 3660 xhrFields: { 3661 withCredentials: true 3662 }, 3663 url: `https://api.foodretail.es/api/adquirir_ejemplar.php?t=` + generarCadenaAlfanumerica(), 3664 data: { 3665 nombre: nombre, 3666 nif: nif, 3667 telefono: telefono, 3668 empresa: empresa, 3669 email: email, 3670 direccion: direccion, 3671 ciudad: ciudad, 3672 cp: cp, 3673 id_revista: id_revista, 3674 precio: precio, 3675 direccion_fact: direccion_fact, 3676 ciudad_fact: ciudad_fact, 3677 cp_fact: cp_fact, 3678 direccion_diferente_fact: direccion_diferente_fact, 3679 hidden_pro: hidden_pro, 3680 hidden_ejemplar_revista: hidden_ejemplar_revista, 3681 iban_revista: iban_revista, 3682 tipo: tipo, 3683 recaptcha: recaptcha 3684 }, 3685 success: function (data) { 3686 if (data == 1) { 3687 setTimeout(function () { 3688 $('#formulario-pago').hide(); 3689 $('.exito').css('display', 'block'); 3690 $('#modal-pago .modal-close').css('display', 'flex'); 3691 }, 2000); 3692 } 3693 else { 3694 3695 } 3696 }, 3697 error: function (request, error) { 3698 console.log(error); 3699 } 3700 }); 3701 } 3702 3703 } 3704 3705</script>
3705 3706
3707<script> 3708 const saveElements = document.querySelectorAll('.save'); 3709 3710 saveElements.forEach(function (element) { 3711 element.addEventListener('click', function () { 3712 if (this.classList.contains('guardado')) { 3713 this.classList.remove('guardado'); 3714 } else { 3715 this.classList.add('guardado'); 3716 } 3717 //console.log(this); 3718 }); 3719 }); 3720</script>
3720 3721
3722<script type="text/javascript" src="/web/assets/js/validate-form.js"></script>
vendor: 1 bytes, line 3722
3722
3723<script type="text/javascript" src="/web/assets/js/main.js"></script>
3723 3724
3725<script> 3726 function generarCadenaAlfanumerica() { 3727 let longitud = 8; 3728 const caracteres = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; 3729 let resultado = ''; 3730 3731 for (let i = 0; i < longitud; i++) { 3732 const indiceAleatorio = Math.floor(Math.random() * caracteres.length); 3733 resultado += caracteres[indiceAleatorio]; 3734 } 3735 3736 return resultado; 3737 } 3738 3739 function recargar_cabecero_sesion() { 3740 $.ajax({ 3741 url: `https://api.foodretail.es/api/header-login.php?t=` + generarCadenaAlfanumerica(), 3742 xhrFields: { 3743 withCredentials: true 3744 }, 3745 success: function (data) { 3746 //console.log(data); 3747 $("#contenedor-login-header").html(data); 3748 3749 // Declarar los textos en JavaScript desde las variables PHP 3750 const textos = [ 3751 "Newsletter", 3752 "Suscr\u00edbete", 3753 "<span class=\"texto-reducido\">52.000 suscriptores<\/span>" ]; 3754 3755 const boton = document.getElementById("boton-dinamico"); 3756 let indice = 0; 3757 3758 function esVisible(elemento) { 3759 // Verifica si el elemento es visible en la página 3760 return elemento && elemento.offsetParent !== null && 3761 window.getComputedStyle(elemento).visibility !== "hidden"; 3762 } 3763 3764 function cambiarTexto() { 3765 // Solo ejecuta si el botón está visible 3766 if (esVisible(boton)) { 3767 indice = (indice + 1) % textos.length; // Cambiar entre textos 3768 boton.innerHTML = textos[indice]; // Cambiar el contenido del botón, interpretando HTML 3769 3770 // Cambiar tiempo según el texto actual 3771 setTimeout(cambiarTexto, indice === 0 ? 2000 : 2000); 3772 } else { 3773 // Si el botón no está visible, verifica nuevamente después de un tiempo 3774 setTimeout(cambiarTexto, 1000); 3775 } 3776 } 3777 3778 // Iniciar el ciclo de cambio de texto 3779 setTimeout(cambiarTexto, 1000); 3780 3781 } 3782 }); 3783 } 3784 3785 function recargar_menu_sesion() { 3786 $.ajax({ 3787 url: `https://api.foodretail.es/api/menu-login.php?t=` + generarCadenaAlfanumerica(), 3788 xhrFields: { 3789 withCredentials: true 3790 }, 3791 success: function (data) { 3792 //console.log(data); 3793 $("#contenedor-menu-usuario").html(data); 3794 } 3795 }); 3796 } 3797 3798 function recargar_comentar_sesion() { 3799 $.ajax({ 3800 url: `https://api.foodretail.es/api/comentar-login.php?t=` + generarCadenaAlfanumerica(), 3801 xhrFields: { 3802 withCredentials: true 3803 }, 3804 success: function (data) { 3805 //console.log(data); 3806 $("#container-registro-comentarios").html(data); 3807 } 3808 }); 3809 } 3810 3811 function recargar_comentar_comentar() { 3812 $.ajax({ 3813 url: `https://api.foodretail.es/api/comentar-comentar.php?t=` + generarCadenaAlfanumerica(), 3814 xhrFields: { 3815 withCredentials: true 3816 }, 3817 success: function (data) { 3818 //console.log(data); 3819 $("#container-comentar-comentarios").html(data); 3820 } 3821 }); 3822 } 3823 3824 function comentar() { 3825 var id_articulo = 0; 3826 var comentario = ""; 3827 3828 // if(id_padre > 0) 3829 // { 3830 // comentario = $("#caja-comentario-respuesta").val(); 3831 // } 3832 // else 3833 // { 3834 comentario = $("#caja-comentario").val(); 3835 // } 3836 3837 $.ajax({ 3838 type: "POST", 3839 xhrFields: { 3840 withCredentials: true 3841 }, 3842 url: `https://api.foodretail.es/api/comentar.php?t=` + generarCadenaAlfanumerica(), 3843 data: { 3844 id_articulo: id_articulo, 3845 comentario: comentario 3846 }, 3847 success: function (data) { 3848 //console.log(data); 3849 if (data == 1) { //OK 3850 var respuesta = "<div style='background-color: var(--color-periodico-1); padding: 10px; font-weight: 400; color: white; margin-bottom: -15px;font-family: var(--font-1);color: var(--blanco)'>Gracias! tu comentario ha sido publicado. Al recargar la noticia será visible. Recuerda que podrás volver a comentar una noticia dentro de un minuto.</div>"; 3851 $("#container-comentar-comentarios").html(respuesta); 3852 } else if (data == 2) { //TIEMPO 3853 var respuesta = "<div style='background-color: var(--color-periodico-1); padding: 10px; font-weight: 400; color: white; margin-bottom: -15px;font-family: var(--font-1);color: var(--blanco)'>Aún no ha pasado un minuto desde tu último comentario. Espera un poco y podrás volver a comentar una noticia.</div>"; 3854 $("#container-comentar-comentarios").html(respuesta); 3855 } else if (data == 3) { //PALABROTA 3856 var respuesta = "Por favor, utiliza un lenguaje correcto para poder comentar noticias"; 3857 Swal.fire({ 3858 title: respuesta, 3859 icon: "warning" 3860 }); 3861 } else { //NO LOGUEADO 3862 var respuesta = "Lo sentimos, no parece que tengas una sesión abierta. Vuelve a iniciar sesión y podrás publicar este comentario"; 3863 Swal.fire({ 3864 title: respuesta, 3865 icon: "warning" 3866 }); 3867 } 3868 3869 }, 3870 error: function (request, error) { 3871 //console.log(error); 3872 } 3873 }); 3874 3875 } 3876 3877 function cargarComentarios(id_articulo) { 3878 3879 $.ajax({ 3880 type: "POST", 3881 xhrFields: { 3882 withCredentials: true 3883 }, 3884 url: `https://api.foodretail.es/api/comentar-listado.php?t=` + generarCadenaAlfanumerica(), 3885 data: { 3886 id_articulo: id_articulo 3887 }, 3888 success: function (data) { 3889 $("#comment-section").html(data); 3890 3891 3892 // Comment system 3893 3894 const toggleButton = document.querySelector('.toggle-comments'); 3895 const commentsContainer = document.querySelector('.comments-container'); 3896 const arrow = document.querySelector('.arrow'); 3897 3898 // Mostrar/ocultar los comentarios al hacer clic en el botón 3899 toggleButton.addEventListener('click', function () { 3900 commentsContainer.classList.toggle('hidden'); 3901 arrow.classList.toggle('up'); 3902 }); 3903 3904 // Manejar clic en el botón de responder 3905 document.querySelectorAll('.reply-btn').forEach(function (button) { 3906 button.addEventListener('click', function () { 3907 const replyForm = this.parentNode.nextElementSibling; 3908 replyForm.classList.toggle('hidden'); 3909 }); 3910 }); 3911 3912 3913 3914 }, 3915 error: function (request, error) { 3916 //console.log(error); 3917 } 3918 }); 3919 3920 } 3921 3922 function sumarPositivo(id_comentario, id_usuario) { 3923 3924 $.ajax({ 3925 type: "POST", 3926 xhrFields: { 3927 withCredentials: true 3928 }, 3929 url: `https://api.foodretail.es/api/sumar_reaccion_comentario.php?t=` + generarCadenaAlfanumerica(), 3930 data: { 3931 tipo: 'positivo', 3932 id_comentario: id_comentario, 3933 id_usuario: id_usuario 3934 }, 3935 success: function (data) { 3936 //console.log(data); 3937 if (data == 1) { 3938 var likes = parseInt($("#like_" + id_comentario + " span").text()); 3939 $("#like_" + id_comentario + " span").text(parseInt(likes + 1)); 3940 } 3941 }, 3942 error: function (request, error) { 3943 //console.log(error); 3944 } 3945 }); 3946 3947 } 3948 3949 function sumarNegativo(id_comentario, id_usuario) { 3950 $.ajax({ 3951 type: "POST", 3952 xhrFields: { 3953 withCredentials: true 3954 }, 3955 url: `https://api.foodretail.es/api/sumar_reaccion_comentario.php?t=` + generarCadenaAlfanumerica(), 3956 data: { 3957 tipo: 'negativo', 3958 id_comentario: id_comentario, 3959 id_usuario: id_usuario 3960 }, 3961 success: function (data) { 3962 //console.log(data); 3963 if (data == 1) { 3964 var dislikes = parseInt($("#dislike_" + id_comentario + " span").text()); 3965 $("#dislike_" + id_comentario + " span").text(parseInt(dislikes + 1)); 3966 } 3967 }, 3968 error: function (request, error) { 3969 //console.log(error); 3970 } 3971 }); 3972 } 3973 3974 function recargar_widgets_sesion() { 3975 recargar_cabecero_sesion(); 3976 recargar_menu_sesion(); 3977 } 3978 window.load = function () { 3979 setTimeout(function () { 3980 if ($.trim($("#container-registro-comentarios").html()) === "") { 3981 recargar_widgets_sesion(); 3982 } 3983 }, 2000); 3984 } 3985 3986 function iniciarSesion() { 3987 var continuar = true; 3988 var msg = ""; 3989 var usuario_log = $("#usuario_log").val(); 3990 var password_log = $("#password_log").val(); 3991 3992 if (usuario_log.length == 0) { 3993 continuar = false;
3994 msg += "Debe rellenar el email \n"; 3995 } 3996 3997 if (password_log.length == 0) { 3998 continuar = false; 3999 msg += "Debe rellenar la contraseña \n"; 4000 } 4001 4002 if (continuar) { 4003 $.ajax({ 4004 type: "POST", 4005 data: $("#formulario_login").serialize(), 4006 xhrFields: { 4007 withCredentials: true 4008 }, 4009 url: `https://api.foodretail.es/api/login-user.php?t=` + generarCadenaAlfanumerica(), 4010 success: function (data) { 4011 //console.log(data); 4012 if (data == 1) { 4013 recargar_widgets_sesion(); 4014 $("#modal-login .modal-action.modal-close.close-btn").trigger("click"); 4015 $("#usuario_log").val(""); 4016 $("#password_log").val(""); 4017 if (window.location.href.includes("area-usuario")) { 4018 window.location.reload(); 4019 } 4020 } else { 4021 var respuesta = "No hemos encontrado ningún usuario registrado en la plataforma con las credenciales proporcionadas. Por favor, vuelve a intentarlo o recupera la contraseña pulsando en '¿Olvidastes tu contraseña?'"; 4022 Swal.fire({ 4023 title: respuesta, 4024 icon: "warning" 4025 }); 4026 } 4027 } 4028 }); 4029 } else { 4030 Swal.fire({ 4031 title: msg, 4032 icon: "warning" 4033 }); 4034 } 4035 } 4036 4037 function cerrarSesion() { 4038 $.ajax({ 4039 type: "POST", 4040 xhrFields: { 4041 withCredentials: true 4042 }, 4043 url: `https://api.foodretail.es/api/delete-session-user.php?t=` + generarCadenaAlfanumerica(), 4044 success: function (data) { 4045 //console.log(data); 4046 recargar_widgets_sesion(); 4047 $("#offCanvasClose").trigger("click"); 4048 if (window.location.href.includes("area-usuario")) { 4049 window.location.href = '/'; 4050 } 4051 } 4052 }); 4053 } 4054 4055 function registrarCuenta() { 4056 const pasoUno = document.querySelector(".paso-uno"); 4057 const pasoDos = document.querySelector(".paso-dos"); 4058 const btnSiguiente = document.getElementById("siguiente"); 4059 4060 let datosFormulario = $("#formulario_registro").serialize(); 4061 4062 // Verificar si se seleccionó al menos un boletÃn 4063 let seleccionados = []; 4064 $('input[name="newsletter[]"]:checked').each(function () { 4065 seleccionados.push($(this).val()); 4066 }); 4067 4068 if (seleccionados.length === 0) { 4069 // Mostrar alerta si no se seleccionó ningún boletÃn 4070 Swal.fire({ 4071 title: "Debes seleccionar al menos una Lista de difusión.", 4072 icon: "warning" 4073 }); 4074 return; // Detener la ejecución si no hay boletines seleccionados 4075 } 4076 4077 // Agregar los boletines seleccionados a los datos del formulario 4078 if (seleccionados.length > 0) { 4079 datosFormulario += '&' + seleccionados.map(val => `newsletter[]=${encodeURIComponent(val)}`).join('&'); 4080 } 4081 4082 // Realizar la solicitud AJAX 4083 $.ajax({ 4084 type: "POST", 4085 xhrFields: { 4086 withCredentials: true 4087 }, 4088 data: datosFormulario, 4089 url: `https://api.foodretail.es/api/register-user.php?t=` + generarCadenaAlfanumerica(), 4090 success: function (data) { 4091 //console.log(data); 4092 if (data == 0) { 4093 var respuesta = "El usuario ya existe."; 4094 var respuestaInfo = "Utiliza un correo electrónico válido o ve al area de inicio de sesión para recuperar la contraseña"; 4095 Swal.fire({ 4096 title: respuesta, 4097 html: respuestaInfo, 4098 icon: "warning" 4099 }); 4100 } else { 4101 var respuesta = "!Enhorabuena! Ya formas parte de la gran comunidad de " + "FRS"; 4102 var respuestaInfo = "<b>Importante</b> Te hemos enviado un email de confirmación de tu registro."; 4103 Swal.fire({ 4104 title: respuesta, 4105 html: respuestaInfo, 4106 icon: "success" 4107 }).then(() => { 4108 // Limpiar el formulario después de cerrar el alerta 4109 document.getElementById("formulario_registro").reset(); 4110 pasoUno.style.display = "flex"; 4111 pasoDos.style.display = "none"; 4112 btnSiguiente.style.display = "flex"; 4113 4114 // Asegurarse de que se recargue la página después de la confirmación 4115 setTimeout(function () { 4116 location.reload(); 4117 // Recargar la página 4118 }, 200); 4119 // Añadido un pequeño retraso para asegurarse de que SweetAlert se cierre antes de recargar 4120 4121 }); 4122 4123 recargar_widgets_sesion(); 4124 } 4125 } 4126 }); 4127 } 4128 4129 function recuperarPass() { 4130 $.ajax({ 4131 type: "POST", 4132 xhrFields: { 4133 withCredentials: true 4134 }, 4135 data: $('#formulario_recuperarpass').serialize(), 4136 url: `https://api.foodretail.es/api/reset-pass-user.php?t=` + generarCadenaAlfanumerica(), 4137 success: function (data) { 4138 //console.log(data); 4139 var respuesta = "Revisa tu correo electrónico y sigue las instrucciones para recuperar tu c
4139ontraseña"; 4140 Swal.fire({ 4141 title: respuesta, 4142 icon: "info" 4143 }); 4144 $("#modal-pass .modal-action.modal-close").trigger("click"); 4145 $("email_recuperar").val(""); 4146 } 4147 }); 4148 } 4149 4150 function resetearPass() { 4151 if ($("#nuevo-pass").val() == $("#nuevo-pass-repeat").val()) { 4152 if ($("#nuevo-pass").val().length >= 8) { 4153 $.ajax({ 4154 type: "POST", 4155 xhrFields: { 4156 withCredentials: true 4157 }, 4158 data: $('#resetear-clave').serialize(), 4159 url: `https://api.foodretail.es/api/resetear-pass.php?t=` + generarCadenaAlfanumerica(), 4160 success: function (data) { 4161 //console.log(data); 4162 $("#email_recuperar").val(""); 4163 var respuesta = "La contraseña ha sido actualizada. Ya puedes volver a iniciar sesión."; 4164 Swal.fire({ 4165 title: respuesta, 4166 icon: "success" 4167 }).then((result) => { 4168 window.location.href = 'http://www.foodretail.es/'; 4169 }); 4170 4171 4172 4173 } 4174 }); 4175 } else { 4176 var respuesta = "La contraseña debe tener un mÃnimo de 8 caracteres"; 4177 Swal.fire({ 4178 title: respuesta, 4179 icon: "warning" 4180 }); 4181 4182 } 4183 } else { 4184 var respuesta = "Ambas contraseñas deben coincidir"; 4185 Swal.fire({ 4186 title: respuesta, 4187 icon: "warning" 4188 }); 4189 4190 } 4191 4192 } 4193 4194 4195 $(document).ready(function () { 4196 recargar_widgets_sesion(); //DESCOMENTAR ESTO 4197 }); 4198</script>
vendor: 1 bytes, line 4198
4198
4199<script> 4200 $(document).ready(function () { 4201 4202 //console.error('prueba v.1.0.0'); 4203 4204 // --- ELEMENTOS CLAVE --- 4205 var $header = $(".wrap-HEADER"); 4206 var $body = $('body'); 4207 var $submenuDestacado = $('.wrap-submenu-destacado'); 4208 4209 if (!$submenuDestacado.length || !$header.length) return; 4210 4211 // --- VARIABLES DE CONTROL --- 4212 var initialHeaderHeight = $header.outerHeight(true); 4213 var submenuOffsetTop = 0; 4214 var isFixed = false; 4215 var scrollListenerActive = false; // <<< NUEVA BANDERA DE CONTROL 4216 4217 // --- 1. FUNCIÃN DE CÃLCULO ROBUSTO --- 4218 function calculateOffsets() { 4219 initialHeaderHeight = $header.outerHeight(true); 4220 submenuOffsetTop = $submenuDestacado.offset().top; 4221 } 4222 4223 // --- 2. FUNCIÃN DE CONTROL DE EFECTOS (APLICA / REMUEVE FIXACIÃN) --- 4224 function applyHeaderEffects(shouldBePinned) { 4225 4226 if (shouldBePinned === isFixed) { 4227 return; 4228 } 4229 4230 if (shouldBePinned) { 4231 // FIJACIÃN 4232 $(".ad-wrapper-side").addClass("fix-top"); 4233 $body.css('padding-top', initialHeaderHeight + 'px'); 4234 $header.addClass("fix-top"); 4235 4236 setTimeout(function () { 4237 $header.addClass('animate-in'); 4238 }, 10); 4239 4240 isFixed = true; 4241 4242 } else { 4243 // DESFIJACIÃN 4244 $(".ad-wrapper-side").removeClass("fix-top"); 4245 $body.css('padding-top', 0); 4246 $header.removeClass("fix-top"); 4247 $header.removeClass('animate-in'); 4248 4249 isFixed = false; 4250 } 4251 } 4252 4253 4254 // --- 3. FUNCIÃN PRINCIPAL DE DETECCIÃN DE SCROLL --- 4255 function checkSubmenuPosition() { 4256 // Ejecutar solo si el listener está activo (después del primer scroll) 4257 if (!scrollListenerActive) { 4258 // Marcamos el listener como activo y detenemos la ejecución. 4259 // Si el usuario hace scroll, esta función se llamará de nuevo inmediatamente. 4260 scrollListenerActive = true; 4261 // Recalculamos por si acaso el offset no era 100% correcto antes 4262 calculateOffsets(); 4263 } 4264 4265 // Si ya estamos activos, procedemos con la lógica de fijación 4266 var scrollPos = $(window).scrollTop(); 4267 var shouldBePinned = (scrollPos >= submenuOffsetTop); 4268 4269 applyHeaderEffects(shouldBePinned); 4270 } 4271 4272 4273 // --- 4. GESTIÃN DE EVENTOS Y ACTIVACIÃN ROBUSTA --- 4274 4275 // 4.1. Activación en Scroll: Se activa el listener, pero la lógica de fijación 4276 // se ejecuta solo después del primer evento de scroll. 4277 $(window).on("scroll", checkSubmenuPosition); 4278 4279 // 4.2. Activación al redimensionar (Recalcular posiciones, pero no aplicar fijación inmediatamente) 4280 var resizeTimer; 4281 $(window).on('resize', function () { 4282 clearTimeout(resizeTimer); 4283 resizeTimer = setTimeout(function () { 4284 calculateOffsets(); 4285 // Si el listener está activo, re-evaluamos la posición después del resize 4286 if (scrollListenerActive) { 4287 checkSubmenuPosition(); 4288 } 4289 }, 0); 4290 }); 4291 4292 4293 // 4.3. Activación en la carga completa (Solo cálculos, NO verificación de scroll) 4294 $(window).on('load', function () { 4295 calculateOffsets(); // Lectura final de la posición 4296 4297 // NO llamamos a checkSubmenuPosition() aquÃ. 4298 // Solo verificamos si el usuario ya hizo scroll antes de que terminara la carga. 4299 if ($(window).scrollTop() > 0) { 4300 scrollListenerActive = true; 4301 checkSubmenuPosition(); 4302 } 4303 4304 if (typeof recargar_area_usuario === 'function') { 4305 recargar_area_usuario(); 4306 } 4307 }); 4308 4309 // 4.4. Cálculo inicial (sin verificar scroll) 4310 calculateOffsets(); 4311 }); 4312 4313 4314 function recargar_area_usuario() { 4315 $.ajax({ 4316 url: `https://api.foodretail.es/api/user-panel.php?t=` + generarCadenaAlfanumerica(), 4317 xhrFields: { 4318 withCredentials: true 4319 }, 4320 success: function (data) { 4321 //console.log(data); 4322 $("#container-area-usuario").html(data); 4323 actualizar_area_usuario(); 4324 4325 } 4326 }); 4327 } 4328 4329 function actualizar_area_usuario() { 4330 4331 /*//Tab system 4332 document.addEventListener('DOMContentLoaded', function() { 4333 var tabs = document.querySelectorAll('.inputs'); 4334 var contents = document.querySelectorAll('.content'); 4335 4336 function showContent(tabId) { 4337 contents.forEach(function(content) { 4338 if (content.id === 'c' + tabId.slice(-1)) { 4339 content.classList.add('active'); 4340 } else { 4341 content.classList.remove('active'); 4342 } 4343 }); 4344 } 4345
4346 tabs.forEach(function(tab) { 4347 tab.addEventListener('change', function() { 4348 showContent(this.id); 4349 }); 4350 4351 // Initial load 4352 if (tab.checked) { 4353 showContent(tab.id); 4354 } 4355 }); 4356 });*/ 4357 4358 activarTabC4(); 4359 4360 // Comment system 4361 document.addEventListener('DOMContentLoaded', function () { 4362 const toggleButton = document.querySelector('.toggle-comments'); 4363 const commentsContainer = document.querySelector('.comments-container'); 4364 const arrow = document.querySelector('.arrow'); 4365 4366 4367 // Mostrar/ocultar los comentarios al hacer clic en el botón 4368 toggleButton.addEventListener('click', function () { 4369 commentsContainer.classList.toggle('hidden'); 4370 arrow.classList.toggle('up'); 4371 }); 4372 4373 // Manejar clic en el botón de responder 4374 document.querySelectorAll('.reply-btn').forEach(function (button) { 4375 button.addEventListener('click', function () { 4376 const replyForm = this.parentNode.nextElementSibling; 4377 replyForm.classList.toggle('hidden'); 4378 }); 4379 }); 4380 }); 4381 4382 } 4383 4384 4385 4386 function eliminarCuenta(usuario_id) { 4387 4388 Swal.fire({ 4389 title: "¿Estás seguro?", 4390 text: "¡Es posible que este cambio sea irreversible!", 4391 icon: "warning", 4392 showCancelButton: true, 4393 confirmButtonText: "SÃ", 4394 cancelButtonText: "No" 4395 }).then((result) => { 4396 if (result.isConfirmed) { 4397 $.ajax({ 4398 type: "POST", 4399 xhrFields: { 4400 withCredentials: true 4401 }, 4402 data: { 4403 usuario_id: usuario_id 4404 }, 4405 url: `https://api.foodretail.es/api/delete-account.php?t=gzYRpLju678RB5OaQMlg`, 4406 success: function (data) { 4407 //console.log(data); 4408 if (data == 1) { 4409 Swal.fire({ 4410 title: "La cuenta de lector ha sido eliminada con éxito", 4411 icon: "success" 4412 }).then((result) => { 4413 window.location.href = 'http://www.foodretail.es/'; 4414 }); 4415 } 4416 } 4417 }); 4418 } 4419 }); 4420 4421 } 4422 4423 function guardarPerfil(usuario_id) { 4424 var nombre = $("#nombre_perfil").val(); 4425 var apellido = $("#apellido_perfil").val(); 4426 var nickname = $("#nickname_perfil").val(); 4427 var email = $("#correo_perfil").val(); 4428 var fecha_nacimiento = $("#fecha-nacimiento_perfil").val(); 4429 4430 $.ajax({ 4431 type: "POST", 4432 xhrFields: { 4433 withCredentials: true 4434 }, 4435 data: { 4436 usuario_id: usuario_id, 4437 nombre: nombre, 4438 apellido: apellido, 4439 email: email, 4440 fecha_nacimiento: fecha_nacimiento, 4441 nickname: nickname 4442 }, 4443 url: `https://api.foodretail.es/api/editar-perfil.php?t=fLp45aB1edFNS25BKHdP`, 4444 success: function (data) { 4445 //console.log(data); 4446 if (parseInt(data) == 1) { 4447 Swal.fire({ 4448 title: "Los datos de tu perfil han sido modificados con éxito", 4449 icon: "success" 4450 }); 4451 } else if (parseInt(data) == 2) { 4452 Swal.fire({ 4453 title: "El email o apodo usado pertenece a otro usuario", 4454 icon: "warning" 4455 }); 4456 } else { 4457 Swal.fire({ 4458 title: "Algo ha ido mal, vuelve a intentarlo mas tarde", 4459 icon: "warning" 4460 }); 4461 } 4462 } 4463 }); 4464 } 4465 4466 function cambiarPass(usuario_id) { 4467 if ($("#nuevo-pass").val() == $("#nuevo-pass-repeat").val()) { 4468 if ($("#nuevo-pass").val().length >= 8) { 4469 $.ajax({ 4470 type: "POST", 4471 xhrFields: { 4472 withCredentials: true 4473 }, 4474 data: { 4475 usuario_id: usuario_id, 4476 nueva_pass: $("#nuevo-pass").val() 4477 }, 4478 url: `https://api.foodretail.es/api/cambiar-pass.php?t=HowIcSIJItzf4W8mWKE0`, 4479 success: function (data) { 4480 //console.log(data); 4481 if (parseInt(data) == 0) { 4482 Swal.fire({ 4483 title: "La contraseña ha sido modificada con exito.", 4484 icon: "success" 4485 }); 4486 $("#nuevo-pass").val(""); 4487 $("#nuevo-pass-repeat").val(""); 4488 } else { 4489 Swal.fire({ 4490 title: "Algo ha ido mal, vuelve a intentarlo mas tarde.", 4491 icon: "warning" 4492 }); 4493 } 4494 } 4495 }); 4496 } else { 4497 Swal.fire({ 4498 title: "Las contraseñas deben tener al menos 8 caracteres", 4499 icon: "warning" 4500 }); 4501 } 4502 } else { 4503 Swal.fire({ 4504 title: "Las contraseñas deben coincidir", 4505 icon: "warning" 4506 }); 4507 } 4508 } 4509 4510 function recibir_newsletter(id_portada, usuario_email, nombre_portada, tipo) { 4511 $.ajax({ 4512 type: "POST", 4513 xhrFields: { 4514 withCredentials: true 4515 }, 4516 data: { 4517 id_portada: id_portada, 4518 usuario_email: usuario_email 4519 }, 4520 url: `https://api.foodretail.es/api/recibir-newsletter.php?t=5sTZFXZDm8rroSoClvsV`, 4521 success: function (data) { 4522 //console.log(data); 4523 if (parseInt(data) > 0) { 4524 $("#newsletter_" + id_portada).remove(); 4525 $("#no-suscrito-boletin").remove(); 4526 $("#mis-newsletters").append(`<div id="mi-newsletter_${id_portada}" class="tipo-newsletter"> 4527 <p class="tipo">${nombre_portada}</p> 4528 <a class="btn-simple" onclick="dejar_newsletter(${id_portada}, ${data}, '${usuario_email}', '${nombre_portada}', '${tipo}');"><span class="msg-unsuscribe-lg">Dejar de recibirla</span><span class="msg-unsuscribe-sm"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M170.5 51.6L151.5 80l145 0-19-28.4c-1.5-2.2-4-3.6-6.7-3.6l-93.7 0c-2.7 0-5.2 1.3-6.7 3.6zm147-26.6L354.2 80 368 80l48 0 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 304c0 44.2-35.8 80-80 80l-224 0c-44.2 0-80-35.8-80-80l0-304-8 0c-13.3 0-24-10.7-24-24S10.7 80 24 80l8 0 48 0 13.8 0 36.7-55.1C140.9 9.4 158.4 0 177.1 0l93.7 0c18.7 0 36.2 9.4 46.6 24.9zM80 128l0 304c0 17.7 14.3 32 32 32l224 0c17.7 0 32-14.3 32-32l0-304L80 128zm80 64l0 208c0 8.8-7.2 16-16 16s-16-7.2
4528-16-16l0-208c0-8.8 7.2-16 16-16s16 7.2 16 16zm80 0l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208c0-8.8 7.2-16 16-16s16 7.2 16 16zm80 0l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208c0-8.8 7.2-16 16-16s16 7.2 16 16z"/></svg></span></a> 4529 </div>`); 4530 } else { 4531 Swal.fire({ 4532 title: "Algo ha ido mal, vuelve a intentarlo mas tarde.", 4533 icon: "warning" 4534 }); 4535 } 4536 } 4537 }); 4538 } 4539 4540 function dejar_newsletter(id_portada, id_newsletter, usuario_email, nombre_portada, tipo) { 4541 $.ajax({ 4542 type: "POST", 4543 xhrFields: { 4544 withCredentials: true 4545 }, 4546 data: { 4547 id_newsletter: id_newsletter, 4548 usuario_email: usuario_email 4549 }, 4550 url: `https://api.foodretail.es/api/dejar-newsletter.php?t=rSHnoE8Co5egXZC99OJT`, 4551 success: function (data) { 4552 //console.log(data); 4553 if (parseInt(data) > 0) { 4554 $("#mi-newsletter_" + id_portada).remove(); 4555 if ($('#mis-newsletters').find('.tipo-newsletter').length == 0) { 4556 $('#mis-newsletters').append(`<p id='no-suscrito-boletin'>Aún no estás suscrito a ninguna lista de difusión.</p>`); 4557 } 4558 $(`#boletines-tipo-${tipo.toLowerCase()}`).append(`<div id="newsletter_${id_portada}" class="newsletter_"> 4559 <div class="textos"> 4560 <h3>${nombre_portada}</h3> 4561 </div> 4562 <div class="check"> 4563 <div class="form-check form-check-inline"> 4564 <input class="form-check-input" type="checkbox" name="check-${id_portada}" id="check-${id_portada}" onclick="recibir_newsletter(${id_portada}, '${usuario_email}', '${nombre_portada}', '${tipo}')"> 4565 <label for="check-${id_portada}" class="form-check-label">Recibir</label> 4566 </div> 4567 </div> 4568 </div>`); 4569 } else { 4570 Swal.fire({ 4571 title: "Algo ha ido mal, vuelve a intentarlo mas tarde.", 4572 icon: "warning" 4573 }); 4574 } 4575 } 4576 }); 4577 } 4578 4579 function readURL(input) { 4580 if (input.files && input.files[0]) { 4581 var reader = new FileReader(); 4582 reader.onload = function (e) { 4583 $('#imagePreview').css('background-image', 'url(' + e.target.result + ')'); 4584 $('#imagePreview').hide(); 4585 $('#imagePreview').fadeIn(650); 4586 } 4587 reader.readAsDataURL(input.files[0]); 4588 } 4589 } 4590 $("#imageUpload").change(function () { 4591 readURL(this); 4592 }); 4593 4594 //Tab system 4595 function activarTabC4() { 4596 var tabs = document.querySelectorAll('.inputs'); 4597 var contents = document.querySelectorAll('.content'); 4598 4599 function showContent(tabId) { 4600 contents.forEach(function (content) { 4601 if (content.id === 'c' + tabId.slice(-1)) { 4602 content.classList.add('active'); 4603 } else { 4604 content.classList.remove('active'); 4605 } 4606 }); 4607 } 4608 4609 // Activar la pestaña c4 al cargar 4610 var defaultTab = document.querySelector('#c5'); 4611 if (defaultTab) { 4612 defaultTab.checked = true; // Marcar c5 como seleccionada 4613 showContent('c5'); // Mostrar el contenido de c5 4614 initPasswordToggle(); 4615 } 4616 4617 // Agregar eventos de cambio a cada pestaña para gestionar las selecciones
4618 tabs.forEach(function (tab) { 4619 tab.addEventListener('change', function () { 4620 showContent(this.id); 4621 }); 4622 }); 4623 } 4624</script>
4624 4625<!-- Scripts -->
4626<script> 4627 document.addEventListener("DOMContentLoaded", function () { 4628 const breakingNewsSlider = document.querySelector(".breaking-news-slider"); 4629 4630 // Inicializa Slick Slider si hay múltiples contenedores 4631 if (breakingNewsSlider && breakingNewsSlider.children.length > 1) { 4632 $(breakingNewsSlider).slick({ 4633 vertical: true, 4634 slidesToShow: 1, 4635 slidesToScroll: 1, 4636 Swiping: true, // Mantiene el deslizamiento 4637 autoplay: true, 4638 autoplaySpeed: 4000, 4639 infinite: true, 4640 arrows: false, 4641 touchMove: false, // Desactiva el movimiento táctil 4642 swipe: false, // Desactiva cualquier tipo de deslizamiento ( u horizontal) 4643 draggable: false, // Desactiva el arrastre con el mouse 4644 }); 4645 4646 // Escucha el evento `afterChange` de Slick para ajustar la elipsis en el slide visible 4647 /* $(breakingNewsSlider).on("afterChange", function () { 4648 adjustEllipsis(); 4649 });*/ 4650 } 4651 4652 // Ajusta elipsis dinámico para los textos visibles 4653 /*function adjustEllipsis() { 4654 const visibleNewsLists = document.querySelectorAll(".slick-active .news-list"); 4655 visibleNewsLists.forEach(newsList => { 4656 const links = newsList.querySelectorAll("li a"); 4657 links.forEach(link => { 4658 const containerWidth = link.parentNode.offsetWidth; 4659 let text = link.getAttribute("data-full-text") || link.textContent.trim(); 4660 4661 // Guarda el texto completo si aún no está almacenado 4662 if (!link.getAttribute("data-full-text")) { 4663 link.setAttribute("data-full-text", text); 4664 } 4665 4666 // Ajusta el texto hasta que encaje en el ancho del contenedor 4667 while (link.scrollWidth > containerWidth && text.length > 0) { 4668 text = text.slice(0, -1); 4669 link.textContent = text + "..."; 4670 } 4671 }); 4672 }); 4673 }*/ 4674 4675 // Ajusta la elipsis inicialmente para el primer slide 4676 //adjustEllipsis(); 4677 4678 // Ajusta la elipsis también en eventos de redimensionamiento de la ventana 4679 //window.addEventListener("resize", adjustEllipsis); 4680 }); 4681</script>
vendor: 1 bytes, line 4681
4681
4682<script src="/web/assets/js/principal_js.js?t=DmGEyOmHilV1DbLOYIUt"></script>
4682 4683<!--
4683<script> 4684 $(document).ready(function() { 4685 function toggleSliderX3() { 4686 if ($(window).width() < 600) { 4687 if ($('.30_30_30 .slider-x3').hasClass('slick-initialized')) { 4688 $(".30_30_30 .slider-x3").slick("destroy"); // Usamos destroy para asegurarnos que se quite completamente 4689 } 4690 } else { 4691 if (!$('.30_30_30 .slider-x3').hasClass('slick-initialized')) { 4692 $(".30_30_30 .slider-x3").slick({ 4693 autoplay: false, 4694 lazyLoad: "ondemand", 4695 arrows: true, 4696 centerMode: false, 4697 slidesToShow: 3, 4698 slidesToScroll: 1, 4699 adaptiveHeight: true, 4700 dots: false, 4701 responsive: [{ 4702 breakpoint: 992, 4703 settings: { 4704 slidesToShow: 2 4705 } 4706 }, 4707 { 4708 breakpoint: 600, 4709 settings: { 4710 slidesToShow: 2 4711 } 4712 }, 4713 ], 4714 }); 4715 } 4716 } 4717 } 4718 toggleSliderX3(); // Inicializar el slider-x3 según el ancho de ventana actual 4719 4720 $(window).on('resize', toggleSliderX3); 4721 }); 4722</script>
4722 -->
4723<script> 4724 document.addEventListener('DOMContentLoaded', function () { 4725 const tabs = document.querySelectorAll('.inputs'); 4726 const contents = document.querySelectorAll('.content'); 4727 4728 // Función para mostrar contenido y reiniciar Slick en el slider activo 4729 function showContent(tabId) { 4730 contents.forEach(function (content) { 4731 if (content.id === 'c' + tabId.slice(-1)) { 4732 content.classList.add('active'); 4733 initializeSlick(content.querySelector('.slider')); 4734 } else { 4735 content.classList.remove('active'); 4736 destroySlick(content.querySelector('.slider')); 4737 } 4738 }); 4739 } 4740 4741 // Inicializar o reiniciar el slider en el tab activo 4742 function initializeSlick(slider) { 4743 if (slider && !$(slider).hasClass('slick-initialized')) { 4744 $(slider).slick({ 4745 slidesToShow: 1, 4746 slidesToScroll: 1, 4747 arrows: true, 4748 dots: false, 4749 centerMode: true, 4750 variableWidth: true, 4751 infinite: true, 4752 focusOnSelect: true, 4753 cssEase: 'linear', 4754 touchMove: true, 4755 prevArrow: '<button class="slick-prev"></button>', 4756 nextArrow: '<button class="slick-next"></button>', 4757 }); 4758 } 4759 } 4760 4761 // Destruir Slick para evitar duplicados cuando se oculta el tab 4762 function destroySlick(slider) { 4763 if (slider && $(slider).hasClass('slick-initialized')) { 4764 $(slider).slick('unslick'); 4765 } 4766 } 4767 4768 // Detectar cambios de tab y reiniciar Slick
4769 tabs.forEach(function (tab) { 4770 tab.addEventListener('change', function () { 4771 showContent(this.id); 4772 }); 4773 4774 // Cargar Slick en el tab activo al cargar la página 4775 if (tab.checked) { 4776 showContent(tab.id); 4777 } 4778 }); 4779 }); 4780 4781 // Inicialización de componentes de Materialize si es necesario 4782 document.addEventListener('DOMContentLoaded', function () { 4783 // Ejemplo: Inicializar menú desplegable 4784 var modals = document.querySelectorAll('.modal'); 4785 // M.Modal.init(modals); 4786 }); 4787 4788 function abrirModalMomentaneamente() { 4789 // Obtener el modal de Materialize 4790 const modal = document.getElementById("modal-registro"); 4791 4792 // Asegurarse de que Materialize lo inicialice 4793 const modalInstance = M.Modal.init(modal); 4794 4795 // Abrir el modal 4796 modalInstance.open(); 4797 } 4798</script>
vendor: 1 bytes, line 4798
4798
4799<script> 4800 $(document).ready(function () { 4801 const $newsList = $('.news-list'); 4802 const $newsItems = $newsList.children('li'); 4803 4804 // Check number of news items 4805 if ($newsItems.length > 1) { 4806 // Activate Slick slider if more than one item 4807 $newsList.slick({ 4808 vertical: true, 4809 slidesToShow: 1, 4810 slidesToScroll: 1, 4811 Swiping: true, 4812 autoplay: true, 4813 autoplaySpeed: 2000, 4814 infinite: true, 4815 arrows: false, 4816 }); 4817 } 4818 4819 // Adjust ellipsis dynamically on window resize 4820 function adjustEllipsis() { 4821 const containerWidth = $('.news-slider').width(); 4822 $newsItems.each(function () { 4823 const $link = $(this).find('a'); 4824 let text = $link.text(); 4825 4826 // Measure text width 4827 $link.text(text); // Reset text 4828 while ($link[0].scrollWidth > containerWidth) { 4829 text = text.slice(0, -1); 4830 $link.text(text + '...'); 4831 } 4832 }); 4833 } 4834 4835 adjustEllipsis(); 4836 //$(window).on('resize', adjustEllipsis); 4837 }); 4838</script>
vendor: 1 bytes, line 4838
4838
4839<script> 4840 document.addEventListener("DOMContentLoaded", function () { 4841 // Referencias a los elementos 4842 const pasoUno = document.querySelector(".paso-uno"); 4843 const pasoDos = document.querySelector(".paso-dos"); 4844 const btnSiguiente = document.getElementById("siguiente"); 4845 const btnAtras = document.getElementById("bnt_regresar_paso_anterior"); 4846 const btnSuscribirme = document.getElementById("suscribirme"); 4847 4848 const inputsPasoUno = pasoUno.querySelectorAll("input"); 4849 const inputsPasoDos = pasoDos.querySelectorAll("input"); 4850 4851 const errorEmail = document.getElementById("error-email"); 4852 const labelErrorEmail = errorEmail.querySelector("label"); 4853 4854 const errorContraseña = document.getElementById("error-password"); 4855 const labelErrorPassword = errorContraseña.querySelector("label"); 4856 4857 // Función para verificar si todos los campos están completos 4858 function checkInputs(inputs, button) { 4859 let allFilled = true; 4860 4861 inputs.forEach(input => { 4862 if (input.value.trim() === "") { 4863 allFilled = false; 4864 } 4865 }); 4866 4867 if (allFilled) { 4868 button.classList.remove("disabled"); 4869 button.disabled = false; 4870 } else { 4871 button.classList.add("disabled"); 4872 button.disabled = true; 4873 } 4874 } 4875 4876 // Validación de contraseñas y correo en el paso uno 4877 function validatePasoUno() { 4878 let valid = true; 4879 4880 // Validar si las contraseñas coinciden 4881 const contraseña = document.getElementById("password"); 4882 const repetirContraseña = document.getElementById("repetir-password"); 4883 4884 if (contraseña.value !== repetirContraseña.value) { 4885 contraseña.classList.add("invalid"); 4886 repetirContraseña.classList.add("invalid"); 4887 errorContraseña.style.display = "block"; // Mostrar mensaje de error 4888 labelErrorPassword.style.display = "block"; 4889 valid = false; 4890 } else { 4891 contraseña.classList.remove("invalid"); 4892 repetirContraseña.classList.remove("invalid"); 4893 errorContraseña.style.display = "none"; // Ocultar mensaje de error 4894 labelErrorPassword.style.display = "none"; 4895 } 4896 4897 // Validar el correo electrónico 4898 const correo = document.getElementById("email"); 4899 const emailPattern = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; 4900 4901 if (!emailPattern.test(correo.value)) { 4902 correo.classList.add("invalid"); 4903 errorEmail.style.display = "block"; // Mostrar mensaje de error 4904 labelErrorEmail.style.display = "block"; 4905 valid = false; 4906 } else { 4907 correo.classList.remove("invalid"); 4908 errorEmail.style.display = "none"; // Mostrar mensaje de error 4909 labelErrorEmail.style.display = "none"; 4910 } 4911 4912 return valid; 4913 } 4914 4915 // Manejar el botón "Siguiente" 4916 btnSiguiente.addEventListener("click", function () { 4917 if (validatePasoUno()) { 4918 pasoUno.style.display = "none"; 4919 pasoDos.style.display = "flex"; 4920 btnSiguiente.style.display = "none"; 4921 } 4922 }); 4923 4924 // Manejar el botón "Volver atrás" 4925 btnAtras.addEventListener("click", function () { 4926 if (validatePasoUno()) { 4927 pasoUno.style.display = "flex"; 4928 pasoDos.style.display = "none"; 4929 btnSiguiente.style.display = "flex"; 4930 } 4931 }); 4932 4933 // Validar inputs del paso uno y habilitar/deshabilitar botón "Siguiente"
4934 inputsPasoUno.forEach(input => { 4935 input.addEventListener("input", function () { 4936 checkInputs(inputsPasoUno, btnSiguiente); 4937 }); 4938 }); 4939 4940 // Validar inputs del paso dos y habilitar/deshabilitar botón "Suscribirme" 4941 inputsPasoDos.forEach(input => { 4942 input.addEventListener("input", function () { 4943 checkInputs(inputsPasoDos, btnSuscribirme); 4944 }); 4945 }); 4946 4947 // Verificación inicial 4948 checkInputs(inputsPasoUno, btnSiguiente); 4949 checkInputs(inputsPasoDos, btnSuscribirme); 4950 }); 4951</script>
vendor: 1 bytes, line 4951
4951
4952<script> 4953 document.addEventListener("DOMContentLoaded", () => { 4954 const counters = document.querySelectorAll(".subs-and-seguidores span"); 4955 4956 counters.forEach(counter => { 4957 const target = parseInt(counter.getAttribute("data-target"), 10); // Valor final 4958 let count = 0; // Valor inicial 4959 const increment = Math.ceil(target / 100); // Incremento basado en el valor final 4960 const duration = 2000; // Duración total en ms 4961 const interval = Math.floor(duration / (target / increment)); // Intervalo entre incrementos 4962 4963 const updateCounter = setInterval(() => { 4964 count += increment; 4965 if (count >= target) { 4966 count = target; // Asegurarse de no sobrepasar el valor final 4967 clearInterval(updateCounter); // Detener la animación 4968 } 4969 counter.textContent = count.toLocaleString(); // Actualizar el texto con formato 4970 }, interval); 4971 }); 4972 }); 4973</script>
vendor: 1 bytes, line 4973
4973
4974<script> 4975 4976 function enviar_form_contacto() { 4977 var nombre_form = $('#contacto_nombre').val().trim(); 4978 var email_form = $('#contacto_email').val().trim(); 4979 var telefono_form = $('#contacto_telefono').val().trim(); 4980 var mensaje_form = $('#contacto_mensaje').val().trim(); 4981 4982 // CAPTURA DE SEGURIDAD 4983 var respuesta_humana = $('#respuesta_humana_contacto').val().trim(); 4984 var trampa = $('#control_trampa_filtro_contacto').val(); 4985 4986 var $cv = $('#contacto_cv'); 4987 var archivo = ($cv.length && $cv[0].files && $cv[0].files.length) ? $cv[0].files[0] : null; 4988 4989 // Expresión regular para validar email 4990 var emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; 4991 var errores = []; 4992 4993 // Validaciones 4994 if (nombre_form === '') { 4995 errores.push('El nombre es obligatorio.'); 4996 } 4997 4998 if (email_form === '' || !emailRegex.test(email_form)) { 4999 errores.push('Ingrese un email válido.'); 5000 } 5001 5002 if (telefono_form === '') { 5003 errores.push('El teléfono es obligatorio.'); 5004 } else if (isNaN(telefono_form)) { 5005 errores.push('El teléfono debe contener solo números.'); 5006 } 5007 5008 if (mensaje_form === '') { 5009 errores.push('El mensaje es obligatorio.'); 5010 } 5011 5012 // VALIDACIÃN DE LA SUMA (CLIENTE) 5013 if (respuesta_humana !== '7') { 5014 errores.push('La respuesta de seguridad es incorrecta.'); 5015 } 5016 5017 if (errores.length > 0) { 5018 Swal.fire({ 5019 icon: 'error', 5020 title: 'Error en el formulario', 5021 html: errores.join('<br>'), 5022 }); 5023 return; 5024 } 5025 5026 var formData = new FormData(); 5027 formData.append('nombre_form', nombre_form); 5028 formData.append('email_form', email_form); 5029 formData.append('telefono_form', telefono_form); 5030 formData.append('mensaje_form', mensaje_form); 5031 formData.append('periodico_id_per', 2); 5032 5033 // ENVIAR CAMPOS DE SEGURIDAD AL BACKEND 5034 formData.append('respuesta_humana', respuesta_humana); 5035 formData.append('control_trampa_filtro', trampa); 5036 5037 if (archivo) { 5038 formData.append('file', archivo); 5039 } 5040 5041 $.ajax({ 5042 type: 'POST', 5043 data: formData, 5044 contentType: false, 5045 processData: false, 5046 xhrFields: { 5047 withCredentials: true 5048 }, 5049 url: `https://api.foodretail.es/api/enviar_formulario_contacto.php?t=` + generarCadenaAlfanumerica(), 5050 success: function (data) { 5051 // Si el backend detecta bot, cortamos aquà 5052 if (data.trim() === 'bot') { 5053 console.log('Spam detectado'); 5054 return; 5055 } 5056 5057 Swal.fire({ 5058 icon: 'success', 5059 title: 'Enviado', 5060 text: 'El formulario se ha enviado correctamente.', 5061 }); 5062 5063 // **LIMPIAR FORMULARIO DESPUÃS DEL ENVÃO** 5064 $('#contacto_nombre').val(''); 5065 $('#contacto_email').val(''); 5066 $('#contacto_telefono').val(''); 5067 $('#contacto_mensaje').val(''); 5068 $('#contacto_cv').val(''); 5069 $('#respuesta_humana_contacto').val(''); 5070 $('#control_trampa_filtro_contacto').val(''); 5071 }, 5072 error: function (request, error) { 5073 Swal.fire({ 5074 icon: 'error', 5075 title: 'Error', 5076 text: 'Hubo un problema al enviar el formulario. Inténtelo nuevamente.', 5077 }); 5078 } 5079 }); 5080 } 5081 5082 function suscribe_novedades_form_art() { 5083 var nombre_form = $("#nombre_suscribe_news_novedades").val().trim(); 5084 var email_form = $("#email_suscribe_news_novedades").val().trim(); 5085 5086 // Expresión regular para validar email 5087 var emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; 5088 var errores = []; 5089 5090 // Validaciones 5091 if (nombre_form === "") { 5092 errores.push("El nombre es obligatorio."); 5093 } 5094 5095 if (email_form === "" || !emailRegex.test(email_form)) { 5096 errores.push("Ingrese un email válido."); 5097 } 5098 5099 if (errores.length > 0) { 5100 Swal.fire({ 5101 icon: "error", 5102 title: "Error en el formulario", 5103 html: errores.join("<br>"), 5104 }); 5105 return; 5106 } 5107 5108 var formData = new FormData(); 5109 formData.append("nombre_form", nombre_form); 5110 formData.append("email_form", email_form); 5111 formData.append("id_boletin_tipo_novedades", 70); 5112 5113 $.ajax({ 5114 type: "POST", 5115 data: formData, 5116 contentType: false, 5117 processData: false, 5118 xhrFields: { 5119 withCredentials: true 5120 }, 5121 url: `https://api.foodretail.es/api/enviar_formulario_articulo_novedades.php?t=` + generarCadenaAlfanumerica(), 5122 success: function (data) { 5123 Swal.fire({ 5124 icon: "success", 5125 title: "Enviado", 5126 text: "El formulario se ha enviado correctamente.", 5127 }); 5128 // **LIMPIAR FORMULARIO DESPUÃS DEL ENVÃO** 5129 $("#nombre_suscribe_news_novedades").val(""); 5130 $("#email_suscribe_news_novedades").val(""); 5131 }, 5132 error: function (request, error) { 5133 Swal.fire({ 5134 icon: "error", 5135 title: "Error", 5136 text: "Hubo un problema al enviar el formulario. Inténtelo nuevamente.", 5137 }); 5138 } 5139 }); 5140 } 5141 5142 5143 function solicitarAltaNewsletter() { 5144 var nombre_form = $('#nombre-alta-newsletter').val().trim(); 5145 var email_form = $('#email-alta-newsletter').val().trim(); 5146 // Capturamos el campo trampa (Honeypot) 5147 var trampa = $('#control_trampa_filtro').val(); 5148 // Capturamos la respuesta a la pregunta (Suma) 5149 var respuesta_usuario = $('#respuesta_humana').val().trim(); 5150 5151 // Expresión regular para validar email 5152 var emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; 5153 var errores = []; 5154 5155 // Validaciones 5156 if (nombre_form === '') { 5157 errores.push('El nombre es obligatorio.'); 5158 } 5159 5160 if (email_form === '' || !emailRegex.test(email_form)) { 5161 errores.push('Ingrese un email válido.'); 5162 } 5163 5164 // VALIDACIÃN DE LA PREGUNTA (Challenge-Response) 5165 if (respuesta_usuario !== '7') { 5166 errores.push('La respuesta a la pregunta de seguridad es incorrecta.'); 5167 } 5168 5169 if (errores.length > 0) { 5170 Swal.fire({ 5171 icon: 'error', 5172 title: 'Error en el formulario', 5173 html: errores.join('<br>'), 5174 }); 5175 return; 5176 } 5177 5178 var formData = new FormData(); 5179 formData.append('nombre_form', nombre_form); 5180 formData.append('email_form', email_form); 5181 formData.append('id_boletin_tipo_novedades', 70); 5182 // Añadimos la trampa al envÃo 5183 formData.append('control_trampa_filtro', trampa); 5184 // Añadimos la respuesta de la suma al envÃo 5185 formData.append('respuesta_humana', respuesta_usuario); 5186 formData.append('id_periodico', 2); 5187 5188 $.ajax({ 5189 type: 'POST', 5190 data: formData, 5191 contentType: false, 5192 processData: false, 5193 xhrFields: { 5194 withCredentials: true 5195 }, 5196 url: `https://api.foodretail.es/api/enviar_formulario_articulo_novedades.php?t=` + generarCadenaAlfanumerica(), 5197 success: function (data) { 5198 // Si el PHP devuelve 'bot', el filtro del servidor ha actuado 5199 if (data.trim() === 'bot') { 5200 console.log('Spam detectado por el servidor'); 5201 return; 5202 } 5203 5204 Swal.fire({ 5205 icon: 'success', 5206 title: 'Enviado', 5207 text: 'El formulario se ha enviado correctamente.', 5208 }); 5209 5210 // LIMPIAR FORMULARIO (Incluyendo el campo de la suma) 5211 $('#nombre-alta-newsletter').val(''); 5212 $('#email-alta-newsletter').val(''); 5213 $('#control_trampa_filtro').val(''); 5214 $('#respuesta_humana').val(''); 5215 }, 5216 error: function (request, error) { 5217 Swal.fire({ 5218 icon: 'error', 5219 title: 'Error', 5220 text: 'Hubo un problema al enviar el formulario. Inténtelo nuevamente.', 5221 }); 5222 } 5223 }); 5224 } 5225 5226</script>
vendor: 1 bytes, line 5226
5226
5227<script> 5228 window.onload = function () { 5229 $("#actividad").change(function () { 5230 if ($(this).val() == "Taller") { 5231 $("#tipo-taller-container").show(); 5232 } else { 5233 $("#tipo-taller-container").hide(); 5234 } 5235 var elems = document.querySelectorAll('select'); 5236 var instances = M.FormSelect.init(elems); 5237 }); 5238 $("#tipo-taller-container").hide(); 5239 } 5240</script>
vendor: 1 bytes, line 5240
5240
5241<script> 5242 $(document).ready(function () { 5243 var $stickyAd = $("#content-sticky"); 5244 var $toggleButton = $("#toggleButton"); 5245 5246 if ($stickyAd.length === 0) { 5247 //console.error("NO HAY PUBLICIDAD STICKY"); 5248 $(".btn-google-fuente-preferida-movil").css("bottom", "50px"); 5249 } else { 5250 var $closeButton = $("<button>", { 5251 class: "toggle-button", 5252 id: "toggleButton", 5253 text: "X" 5254 }); 5255 5256 $stickyAd.append($closeButton); 5257 5258 var $stickyAd = $("#content-sticky"); 5259 var $toggleButton = $("#toggleButton"); 5260 5261 // Agregar funcionalidad al botón 5262 $toggleButton.on("click", function () { 5263 var $btnGoogle = $(".btn-google-fuente-preferida-movil"); 5264 if ($stickyAd.hasClass("hidden")) { 5265 $stickyAd.removeClass("hidden"); 5266 $toggleButton.text("X"); // Cambia el texto del botón 5267 $btnGoogle.css("bottom", "150px"); 5268 } else { 5269 $stickyAd.addClass("hidden"); 5270 $toggleButton.text("â¬"); // Cambia el texto del botón 5271 $btnGoogle.css("bottom", "50px"); 5272 } 5273 }); 5274 } 5275 }); 5276 5277</script>
vendor: 1 bytes, line 5277
5277
5278<script> 5279 document.addEventListener("DOMContentLoaded", function () { 5280 const aboutButton = document.querySelector(".about-blog-button"); 5281 const aboutInfo = document.querySelector(".about-blog-info"); 5282 const closeButton = document.querySelector(".close-button-blog-info"); 5283 5284 if (aboutButton && aboutInfo) { 5285 aboutButton.addEventListener("click", function (event) { 5286 aboutInfo.classList.add("visible"); 5287 event.stopPropagation(); // Evita que el clic se propague al documento 5288 }); 5289 5290 closeButton?.addEventListener("click", function () { 5291 aboutInfo.classList.remove("visible"); 5292 }); 5293 5294 document.addEventListener("click", function (event) { 5295 if (!aboutInfo.contains(event.target) && event.target !== aboutButton) { 5296 aboutInfo.classList.remove("visible"); 5297 } 5298 }); 5299 } 5300 }); 5301</script>
vendor: 1 bytes, line 5301
5301
5302<script> 5303 document.addEventListener("DOMContentLoaded", function () { 5304 let banner = document.getElementById("site-adv-side-banners"); 5305 let content = document.querySelector(".cd-main-content"); 5306 5307 if (banner && content) { 5308 content.insertBefore(banner, content.firstChild); 5309 } 5310 }); 5311</script>
vendor: 1 bytes, line 5311
5311
5312<script> 5313 function initPasswordToggle() { 5314 document.querySelectorAll(".field_pw").forEach(function (field) { 5315 const passwordInput = field.querySelector("input"); 5316 const viewIcon = field.querySelector(".view_pw"); 5317 const nonViewIcon = field.querySelector(".non_view_pw"); 5318 5319 if (!passwordInput || !viewIcon || !nonViewIcon) return; 5320 5321 // Ocultar el Ãcono "non_view" por defecto 5322 nonViewIcon.style.display = "none"; 5323 5324 // Alternar visibilidad de la contraseña 5325 viewIcon.addEventListener("click", function () { 5326 passwordInput.type = "text"; 5327 viewIcon.style.display = "none"; 5328 nonViewIcon.style.display = "inline-block"; 5329 }); 5330 5331 nonViewIcon.addEventListener("click", function () { 5332 passwordInput.type = "password"; 5333 nonViewIcon.style.display = "none"; 5334 viewIcon.style.display = "inline-block"; 5335 }); 5336 }); 5337 } 5338 5339 // Inicializar la función cuando el DOM esté listo 5340 document.addEventListener("DOMContentLoaded", initPasswordToggle); 5341</script>
vendor: 1 bytes, line 5341
5341
5342<script> 5343 function eliminarUltimoParrafoVacio() { 5344 const articulos = document.querySelectorAll(".art-cuerpo"); 5345 5346 if (articulos.length === 0) return; // Si no hay artÃculos, salir de la función 5347 5348 articulos.forEach(articulo => { 5349 const parrafos = articulo.querySelectorAll("p"); 5350 5351 if (parrafos.length > 0) { 5352 const ultimoParrafo = parrafos[parrafos.length - 1]; 5353 const contenidoLimpio = ultimoParrafo.innerHTML.replace(/ |\s|<br>/g, "").trim(); 5354 5355 if (contenidoLimpio === "") { 5356 ultimoParrafo.remove(); 5357 } 5358 } 5359 }); 5360 } 5361 5362 // Ejecutar cuando el DOM esté cargado 5363 document.addEventListener("DOMContentLoaded", eliminarUltimoParrafoVacio); 5364</script>
vendor: 1 bytes, line 5364
5364
5365<script> 5366 function detectarDobleContenedorDestacado() { 5367 // Seleccionar todos los elementos con la clase "wrap-TRIPLE TRIPLE_SUPERIOR" 5368 const elementos = document.querySelectorAll(".wrap-TRIPLE.TRIPLE_SUPERIOR"); 5369 5370 elementos.forEach((elemento, index) => { 5371 // Obtener todas las clases del elemento actual 5372 const clasesElemento = Array.from(elemento.classList); 5373 const claseDestacadoActual = clasesElemento.find(clase => clase.startsWith("destacado-")); 5374 5375 // Obtener el elemento siguiente (hermano en el DOM) 5376 const siguienteElemento = elemento.nextElementSibling; 5377 5378 if (claseDestacadoActual && siguienteElemento) { 5379 // Obtener todas las clases del siguiente elemento 5380 const clasesSiguiente = Array.from(siguienteElemento.classList); 5381 const claseDestacadoSiguiente = clasesSiguiente.find(clase => clase.startsWith("destacado-")); 5382 5383 // Verificar si el siguiente también es un destacado 5384 const siguienteEsDestacado = clasesSiguiente.includes("wrap-TRIPLE") && 5385 clasesSiguiente.includes("TRIPLE_SUPERIOR") && 5386 claseDestacadoSiguiente; 5387 5388 // Si ambos cumplen, agregar clases especÃficas 5389 if (siguienteEsDestacado) { 5390 elemento.classList.add("tiene-doble-contenedor-destacado"); 5391 siguienteElemento.classList.add("tiene-doble-contenedor-destacado", "es-segundo-destacado"); 5392 5393 // Si las clases "destacado-" son diferentes, agregar "mt-40-destacado" al segundo 5394 if (claseDestacadoActual !== claseDestacadoSiguiente) { 5395 siguienteElemento.classList.add("mt-40-destacado"); 5396 } 5397 } 5398 } 5399 }); 5400 } 5401 5402 // Ejecutar la función cuando el DOM esté cargado 5403 document.addEventListener("DOMContentLoaded", detectarDobleContenedorDestacado); 5404 5405 5406 function addFirstTripleClass() { 5407 const firstTriple = document.querySelector(".wrap-SUPERIOR .TRIPLE_SUPERIOR"); 5408 5409 if (firstTriple) { 5410 firstTriple.classList.add("first-triple"); 5411 } 5412 } 5413 5414 // Ejecutar la función cuando el DOM esté cargado 5415 document.addEventListener("DOMContentLoaded", addFirstTripleClass); 5416 5417</script>
vendor: 1 bytes, line 5417
5417
5418<script> 5419 // FUNCION PARA DESPLEGAR MENU HORIZONTAL SOLO CON HOVER 5420 document.addEventListener("DOMContentLoaded", function () { 5421 document.querySelectorAll(".NAV-Bottom li").forEach(li => { 5422 let collapsible = li.querySelector("ul.collapsible"); 5423 5424 if (collapsible) { 5425 let collapsibleBody = collapsible.querySelector(".collapsible-body"); 5426 5427 li.addEventListener("mouseenter", function () { 5428 if (collapsibleBody) { 5429 collapsibleBody.style.display = "block"; 5430 } 5431 }); 5432 5433 li.addEventListener("mouseleave", function () { 5434 if (collapsibleBody) { 5435 collapsibleBody.style.display = "none"; 5436 } 5437 }); 5438 5439 li.addEventListener("click", function () { 5440 if (collapsibleBody) { 5441 collapsibleBody.style.display = "none"; 5442 } 5443 }); 5444 } 5445 }); 5446 }); 5447</script>
vendor: 1 bytes, line 5447
5447
5448<script> 5449 $(document).ready(function () { 5450 $(".art-cuerpo p").each(function () { 5451 let $p = $(this); 5452 let $img = $p.children("img"); 5453 let $small = $p.children("small"); 5454 5455 // Eliminamos <br> para no contar espacios vacÃos 5456 $p.find("br").remove(); 5457 5458 // Obtenemos el texto que no es imagen ni small 5459 let texto = $p.contents().not("img, small").text().trim(); 5460 5461 // Condición: debe tener imagen y algún texto, con o sin <small> 5462 if ($img.length && texto.length > 0) { 5463 // Agregar clase 'has-image-text' al <p> 5464 $p.addClass('has-image-text'); 5465 5466 let $figure = $("<div class='image-container'></div>"); 5467 $p.prepend($figure); // Insertamos antes de la imagen 5468 $figure.append($img); // Movemos la imagen al div 5469 5470 if ($small.length) { 5471 $figure.append($small); // Si hay small, lo agregamos también 5472 } 5473 } 5474 }); 5475 }); 5476</script>
vendor: 1 bytes, line 5476
5476
5477<script> 5478 $(document).ready(function () { 5479 if (window.location.hash === "#registro") { 5480 console.error('la URL contiene #registro'); 5481 setTimeout(function () { 5482 $('#modal-registro').modal('open'); 5483 }, 200); // Le podés poner un pequeño delay por si se está cargando algo 5484 } 5485 }); 5486</script>
vendor: 1 bytes, line 5486
5486
5487<script> 5488 //Función para transformar cualquier cita en un H2 dentro de ficha artÃculo 5489 function reemplazarBlockquotesPorH2() { 5490 const contenedor = document.querySelector('.art-cuerpo'); 5491 if (!contenedor) return; 5492 5493 const blockquotes = contenedor.querySelectorAll('blockquote'); 5494 5495 blockquotes.forEach(bq => { 5496 const texto = bq.textContent.trim(); 5497 5498 // Crear nuevo <h2> con el texto 5499 const h2 = document.createElement('h2'); 5500 h2.textContent = texto; 5501 5502 // Reemplazar el contenido original 5503 bq.innerHTML = ''; // vaciamos el blockquote 5504 bq.appendChild(h2); // insertamos el nuevo h2 5505 }); 5506 } 5507 document.addEventListener('DOMContentLoaded', reemplazarBlockquotesPorH2); 5508</script>
5508 5509<!-- funcion para sticky publi -->
5510<script src="/web/assets/js/sticky-add.js"></script>
5510 5511<!-- funcion para sticky publi -->
5512<script> 5513 console.log('cache clean 2.0'); 5514</script>
5514 5515 5516
5517<script> 5518 5519 function solicitarRevistaPapel() { 5520 var nombre = $("#nombre-solicitar-revista-papel").val(); 5521 var apellido = $("#apellido-solicitar-revista-papel").val(); 5522 var email = $("#email-solicitar-revista-papel").val(); 5523 var revistas = []; 5524 $("input[name='revista[]']:checked").each(function () { 5525 revistas.push($(this).next('label').text().trim()); 5526 }); 5527 5528 if (nombre.trim() == "" || apellido.trim() == "" || email.trim() == "") { 5529 alert("Por favor, complete todos los campos requeridos."); 5530 return; 5531 } 5532 5533 var emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; 5534 if (!emailRegex.test(email)) { 5535 alert("Por favor, ingrese un correo electrónico válido."); 5536 return; 5537 } 5538 5539 if (revistas.length == 0) { 5540 alert("Por favor, seleccione al menos una revista."); 5541 return; 5542 } 5543 5544 // Disable button to prevent double submit 5545 var $btn = $(".button-newsletter[onclick='solicitarRevistaPapel()']"); 5546 var originalText = $btn.find('span').first().text(); 5547 $btn.prop('disabled', true); 5548 5549 $.ajax({ 5550 type: "POST", 5551 url: "https://api.foodretail.es/api/enviar_revista_papel.php?t=" + generarCadenaAlfanumerica(), 5552 data: { 5553 nombre: nombre, 5554 apellido: apellido, 5555 email: email, 5556 revistas: revistas 5557 }, 5558 dataType: "json", 5559 success: function (response) { 5560 console.log(response); 5561 if (response.success) { 5562 alert("Solicitud enviada con éxito. Nos pondremos en contacto con usted."); 5563 $('#modal-solicitar-revista').modal('close'); 5564 $("#formulario_solicitar_revista_papel")[0].reset(); 5565 } else { 5566 alert("Hubo un error al enviar la solicitud: " + (response.message || "Error desconocido")); 5567 } 5568 }, 5569 error: function (xhr, status, error) { 5570 console.error(error); 5571 alert("Error en la conexión con el servidor."); 5572 }, 5573 complete: function () { 5574 $btn.prop('disabled', false); 5575 } 5576 }); 5577 } 5578</script>
5578 5579</body> 5580 5581</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.