// Función de debounce para optimizar el rendimiento function debounce(func, wait) { let timeout; return function executedFunction(...args) { const later = () => { clearTimeout(timeout); func(...args); }; clearTimeout(timeout); timeout = setTimeout(later, wait); }; } jQuery(document).ready(function($) { // Initialize color pickers $('.color-picker').wpColorPicker({ change: function(event, ui) { updateStyles(); } }); // Initialize html2canvas var script = document.createElement('script'); script.src = 'https://cdnjs.cloudflare.com/ajax/libs/html2canvas/1.4.1/html2canvas.min.js'; document.head.appendChild(script); script.onload = function() { console.log('html2canvas loaded'); $('.download-jpg').prop('disabled', false); }; // Optimized zoom handling const handleZoom = debounce(function(target, value) { const zoomValue = value/100; const template = $(target).closest('.preview-box').find('.sunset-template'); template.css('transform', `scale(${zoomValue})`); }, 16); // Zoom control event listener $('.zoom-range').on('input', function() { const value = $(this).val(); $(this).siblings('.zoom-value').text(value + '%'); handleZoom(this, value); }); // Toggle excerpt position field visibility $('#cwpai_show_excerpt').on('change', function() { $('#excerpt_position').toggle(this.checked); updateStyles(); }); // Update styles function function updateStyles() { const lineColor = $('#cwpai_line_color').val(); const lineWidth = $('#cwpai_line_width').val() + 'px'; const marginTop = $('#cwpai_line_margin_top').val() + 'px'; const marginBottom = $('#cwpai_line_margin_bottom').val() + 'px'; const marginLeft = $('#cwpai_line_margin_left').val() + 'px'; const marginRight = $('#cwpai_line_margin_right').val() + 'px'; const categoryTop = $('#cwpai_category_position_top').val() + 'px'; const websiteTop = $('#cwpai_website_position_top').val() + 'px'; const titleTop = $('#cwpai_title_position_top').val() + 'px'; const excerptTop = $('#cwpai_excerpt_position_top').val() + 'px'; const categoryLeft = $('#cwpai_category_position_left').val() + 'px'; const websiteLeft = $('#cwpai_website_position_left').val() + 'px'; const titleLeft = $('#cwpai_title_position_left').val() + 'px'; const titleSize = $('#cwpai_title_font_size').val() + 'px'; const categorySize = $('#cwpai_category_font_size').val() + 'px'; const websiteSize = $('#cwpai_website_font_size').val() + 'px'; // Update visibility states const showCategory = $('#cwpai_show_category').prop('checked'); const showWebsite = $('#cwpai_show_website').prop('checked'); const showTitle = $('#cwpai_show_title').prop('checked'); const showExcerpt = $('#cwpai_show_excerpt').prop('checked'); $('.vertical-line').css({ 'background-color': lineColor, 'width': lineWidth, 'top': marginTop, 'height': `calc(100% - (${marginTop} + ${marginBottom}))`, 'left': marginLeft, 'margin-right': marginRight }); $('.category-tag').css({ 'display': showCategory ? 'block' : 'none', 'top': categoryTop, 'left': categoryLeft, 'font-size': categorySize }); $('.website-link').css({ 'display': showWebsite ? 'block' : 'none', 'top': websiteTop, 'left': websiteLeft, 'font-size': websiteSize }); $('.title').css({ 'display': showTitle ? 'block' : 'none', 'top': titleTop, 'left': titleLeft, 'font-size': titleSize }); $('.excerpt-preview').css({ 'display': showExcerpt ? 'block' : 'none', 'top': excerptTop, 'left': titleLeft }); } // Copy buttons functionality with improved feedback $('.copy-excerpt, .copy-hashtags').on('click', function() { const button = $(this); const content = button.data('content'); const originalText = button.text(); // Create temporary textarea const textarea = document.createElement('textarea'); textarea.value = content; textarea.style.position = 'absolute'; textarea.style.left = '-9999px'; document.body.appendChild(textarea); try { // Select and copy text textarea.select(); document.execCommand('copy'); // Visual feedback button.text('¡Copiado!'); button.css('background-color', '#4CAF50'); // Reset button after delay setTimeout(() => { button.text(originalText); button.css('background-color', ''); }, 2000); } catch(err) { console.error('Error al copiar:', err); button.text('Error al copiar'); button.css('background-color', '#f44336'); setTimeout(() => { button.text(originalText); button.css('background-color', ''); }, 2000); } finally { document.body.removeChild(textarea); } }); // Canvas optimization function function optimizeCanvas(canvas, format) { const ctx = canvas.getContext('2d'); // Enable image smoothing ctx.imageSmoothingEnabled = true; ctx.imageSmoothingQuality = 'high'; // Set dimensions based on format switch(format) { case 'rectangular': canvas.width = 1200; canvas.height = 630; break; case 'vertical': canvas.width = 500; canvas.height = 890; break; case 'horizontal': canvas.width = 864; canvas.height = 864; break; } return canvas; } // Image download functionality with improved error handling $('.download-jpg').on('click', function() { const button = $(this); const format = button.data('format'); const template = button.closest('.preview-box').find('.sunset-template')[0]; // Disable button and show loading state button.text('Generando...').prop('disabled', true); const options = { scale: 2, // Higher quality useCORS: true, allowTaint: true, backgroundColor: '#000000', logging: false, // Disable logging in production onclone: function(clonedDoc) { const clonedElement = clonedDoc.querySelector('.sunset-template'); if (clonedElement) { // Reset zoom for export clonedElement.style.transform = 'scale(1)'; // Set dimensions based on format switch(format) { case 'rectangular': clonedElement.style.width = '1200px'; clonedElement.style.height = '630px'; break; case 'vertical': clonedElement.style.width = '500px'; clonedElement.style.height = '890px'; break; case 'horizontal': clonedElement.style.width = '864px'; clonedElement.style.height = '864px'; break; } } } }; // Wait for all images to load Promise.all(Array.from(template.getElementsByTagName('img')).map(img => { return new Promise((resolve, reject) => { if (img.complete) { resolve(); } else { img.onload = resolve; img.onerror = reject; } }); })) .then(() => { return html2canvas(template, options); }) .then(canvas => { // Optimize canvas canvas = optimizeCanvas(canvas, format); // Convert to blob return new Promise((resolve, reject) => { canvas.toBlob(resolve, 'image/jpeg', 0.95); }); }) .then(blob => { // Generate filename const postTitle = template.dataset.title; const timestamp = new Date().getTime(); const fileName = `${postTitle}-${format}-${timestamp}.jpg`; // Save file saveAs(blob, fileName); // Reset button button.text('Descargar ' + ( format === 'vertical' ? 'Vertical' : format === 'horizontal' ? 'Horizontal' : 'Rectangular' )).prop('disabled', false); }) .catch(error => { console.error('Error:', error); button.text('Error - Intentar de nuevo').prop('disabled', false) .css('background-color', '#f44336'); setTimeout(() => { button.css('background-color', ''); button.text('Descargar ' + ( format === 'vertical' ? 'Vertical' : format === 'horizontal' ? 'Horizontal' : 'Rectangular' )); }, 3000); }); }); // Line and position controls $('#cwpai_line_width, #cwpai_line_margin_top, #cwpai_line_margin_bottom, #cwpai_line_margin_left, #cwpai_line_margin_right, #cwpai_category_position_top, #cwpai_website_position_top, #cwpai_title_position_top, #cwpai_excerpt_position_top, #cwpai_category_position_left, #cwpai_website_position_left, #cwpai_title_position_left, #cwpai_title_font_size, #cwpai_category_font_size, #cwpai_website_font_size') .on('change input', debounce(updateStyles, 100)); // Visibility controls $('#cwpai_show_category, #cwpai_show_website, #cwpai_show_title, #cwpai_show_excerpt') .on('change', updateStyles); // Global error handler window.onerror = function(msg, url, lineNo, columnNo, error) { console.error('Error: ', { message: msg, url: url, lineNumber: lineNo, columnNumber: columnNo, error: error }); return false; }; // Initial styles update updateStyles(); });
Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/diariocosta.com/httpdocs/wp-content/plugins/social-media-stories/social-media-stories.php:1) in /var/www/vhosts/diariocosta.com/httpdocs/wp-includes/rest-api/class-wp-rest-server.php on line 1893

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/diariocosta.com/httpdocs/wp-content/plugins/social-media-stories/social-media-stories.php:1) in /var/www/vhosts/diariocosta.com/httpdocs/wp-includes/rest-api/class-wp-rest-server.php on line 1893

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/diariocosta.com/httpdocs/wp-content/plugins/social-media-stories/social-media-stories.php:1) in /var/www/vhosts/diariocosta.com/httpdocs/wp-includes/rest-api/class-wp-rest-server.php on line 1893

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/diariocosta.com/httpdocs/wp-content/plugins/social-media-stories/social-media-stories.php:1) in /var/www/vhosts/diariocosta.com/httpdocs/wp-includes/rest-api/class-wp-rest-server.php on line 1893

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/diariocosta.com/httpdocs/wp-content/plugins/social-media-stories/social-media-stories.php:1) in /var/www/vhosts/diariocosta.com/httpdocs/wp-includes/rest-api/class-wp-rest-server.php on line 1893

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/diariocosta.com/httpdocs/wp-content/plugins/social-media-stories/social-media-stories.php:1) in /var/www/vhosts/diariocosta.com/httpdocs/wp-includes/rest-api/class-wp-rest-server.php on line 1893

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/diariocosta.com/httpdocs/wp-content/plugins/social-media-stories/social-media-stories.php:1) in /var/www/vhosts/diariocosta.com/httpdocs/wp-includes/rest-api/class-wp-rest-server.php on line 1893

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/diariocosta.com/httpdocs/wp-content/plugins/social-media-stories/social-media-stories.php:1) in /var/www/vhosts/diariocosta.com/httpdocs/wp-includes/rest-api/class-wp-rest-server.php on line 1893
{"id":13601,"date":"2018-02-28T11:41:28","date_gmt":"2018-02-28T10:41:28","guid":{"rendered":"http:\/\/diariocosta.com\/?p=13601"},"modified":"2018-02-28T17:59:18","modified_gmt":"2018-02-28T16:59:18","slug":"la-junta-amplia-las-bonificaciones-a-los-precios-publicos-de-escuelas-infantiles","status":"publish","type":"post","link":"https:\/\/diariocosta.com\/la-junta-amplia-las-bonificaciones-a-los-precios-publicos-de-escuelas-infantiles\/","title":{"rendered":"La Junta ampl\u00eda las bonificaciones a los precios p\u00fablicos de escuelas infantiles"},"content":{"rendered":"

El\u00a0Consejo de Gobierno\u00a0ha acordado\u00a0ampliar las bonificaciones\u00a0que se aplican a los\u00a0precios p\u00fablicos de los servicios de atenci\u00f3n socioeducativa y comedor escolar de los centros del primer ciclo de Educaci\u00f3n Infantil\u00a0(hasta tres a\u00f1os), con el fin de\u00a0reforzar el apoyo a las familias para la escolarizaci\u00f3n en esta etapa educativa.<\/p>\n

La medida se aplicar\u00e1 a partir del pr\u00f3ximo curso\u00a0y beneficiar\u00e1 a las\u00a0familias con renta per c\u00e1pita de entre 1,3 y 1,4 veces el Indicador P\u00fablico Renta de Efectos M\u00faltiples\u00a0(Iprem), que pasar\u00e1n del 10% al 15% de bonificaci\u00f3n. Asimismo, se a\u00f1ade\u00a0un nuevo tramo del 10% para las que tienen rentas entre 1,4 y 1,5 veces el Iprem.<\/p>\n

De este modo,\u00a0una familia media con dos hijos e ingresos anuales\u00a0de\u00a0entre 38.766,72 y 41.748,8 euros podr\u00e1 acceder a estas reducciones, que se aplican sobre el precio por plaza (actualmente situado en 278,88 euros mensuales para un servicio de atenci\u00f3n socioeducativa de ocho horas con comedor). Seg\u00fan las previsiones de la\u00a0Consejer\u00eda de Educaci\u00f3n, unas\u00a03.650 unidades familiares\u00a0se beneficiar\u00e1n de la medida aprobada por el Consejo.<\/p>\n

La introducci\u00f3n de estos cambios se ha realizado a trav\u00e9s de una modificaci\u00f3n del anexo III del Decreto ley 1\/2017, de 28 de marzo, de medidas urgentes para favorecer la escolarizaci\u00f3n en el primer ciclo de Educaci\u00f3n Infantil en Andaluc\u00eda. La norma establece un programa de ayudas que se distribuye con progresividad en nueve tramos desde el 100% al 10%.<\/p>\n

El primero de estos tramos, que supone la gratuidad y un ahorro m\u00e1ximo por plaza de 3.067,68 euros al a\u00f1o, se aplica a las familias con m\u00e1s de tres hijos matriculados en el Primer Ciclo de Educaci\u00f3n Infantil; las que tienen v\u00edctimas de violencia de g\u00e9nero o terrorismo; las que presentan riesgo de exclusi\u00f3n social o carencias y dificultades en la atenci\u00f3n de las necesidades b\u00e1sicas de los menores, y aquellas con renta per c\u00e1pita inferior al 0,5 del Iprem (del 0,75 en caso de las monoparentales).<\/p>\n

La implantaci\u00f3n del nuevo programa en el presente curso escolar ha permitido aumentar en 15.016 las plazas ofertadas para menores de tres a\u00f1os, hasta alcanzar las 113.019. El sistema se basa en un modelo abierto, equitativo, garantista y solidario en una ense\u00f1anza que, seg\u00fan la legislaci\u00f3n estatal, no es obligatoria, universal ni gratuita. Andaluc\u00eda es actualmente la comunidad que m\u00e1s fondos destina a este servicio socioeducativo, con casi 185 millones de euros este a\u00f1o.<\/p>\n","protected":false},"excerpt":{"rendered":"

El\u00a0Consejo de Gobierno\u00a0ha acordado\u00a0ampliar las bonificaciones\u00a0que se aplican a los\u00a0precios p\u00fablicos de los servicios de atenci\u00f3n socioeducativa y comedor escolar de los centros del primer ciclo de Educaci\u00f3n Infantil\u00a0(hasta tres a\u00f1os), con el fin de\u00a0reforzar el apoyo a las familias para la escolarizaci\u00f3n en esta etapa educativa. La medida se aplicar\u00e1 a partir del pr\u00f3ximo […]<\/p>\n","protected":false},"author":3,"featured_media":13600,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[47],"tags":[],"class_list":{"0":"post-13601","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-andalucia"},"_links":{"self":[{"href":"https:\/\/diariocosta.com\/wp-json\/wp\/v2\/posts\/13601","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/diariocosta.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/diariocosta.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/diariocosta.com\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/diariocosta.com\/wp-json\/wp\/v2\/comments?post=13601"}],"version-history":[{"count":0,"href":"https:\/\/diariocosta.com\/wp-json\/wp\/v2\/posts\/13601\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/diariocosta.com\/wp-json\/wp\/v2\/media\/13600"}],"wp:attachment":[{"href":"https:\/\/diariocosta.com\/wp-json\/wp\/v2\/media?parent=13601"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/diariocosta.com\/wp-json\/wp\/v2\/categories?post=13601"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/diariocosta.com\/wp-json\/wp\/v2\/tags?post=13601"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}