// 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":29267,"date":"2023-10-03T10:43:37","date_gmt":"2023-10-03T08:43:37","guid":{"rendered":"https:\/\/diariocosta.com\/?p=29267"},"modified":"2023-10-03T10:43:38","modified_gmt":"2023-10-03T08:43:38","slug":"el-ayuntamiento-y-horizonte-proyecto-hombre-organizan-una-nueva-edicion-de-escuela-de-familias-para-abordar-asuntos-que-afectan-a-los-jovenes-2","status":"publish","type":"post","link":"https:\/\/diariocosta.com\/el-ayuntamiento-y-horizonte-proyecto-hombre-organizan-una-nueva-edicion-de-escuela-de-familias-para-abordar-asuntos-que-afectan-a-los-jovenes-2\/","title":{"rendered":"El Ayuntamiento y Horizonte-Proyecto Hombre organizan una nueva edici\u00f3n de Escuela de Familias para abordar asuntos que afectan a los j\u00f3venes"},"content":{"rendered":"

El Ayuntamiento de Estepona y la asociaci\u00f3n Horizonte-Proyecto Hombre iniciar\u00e1n, el pr\u00f3ximo mes de noviembre, una nueva edici\u00f3n de la actividad \u2018Escuela de Familias\u2019, una iniciativa coordinada por la delegaci\u00f3n municipal de Juventud dirigida a padres, madres, familiares y educadores interesados en abordar temas que afectan a los j\u00f3venes.
\nEsta actividad celebrar\u00e1 este curso su decimotercera convocatoria, habi\u00e9ndose consolidado como una herramienta de gran utilidad para los progenitores a la hora de afrontar los distintos problemas que se plantean en la educaci\u00f3n de los adolescentes.
\nEl programa es gratuito y se estructura en 10 sesiones did\u00e1cticas, que se desarrollar\u00e1n con periodicidad semanal, entre el 6 de noviembre y el 12 de febrero pr\u00f3ximo, en el Centro Cultural Padre Manuel, en horario de tarde, y abordar\u00e1n temas de lo m\u00e1s variado.
\nLas sesiones ser\u00e1n impartidas por Noem\u00ed de Diego, psic\u00f3loga especializada en prevenci\u00f3n de la asociaci\u00f3n Horizonte-Proyecto Hombre. El objetivo es ayudar a las familias a gestionar la educaci\u00f3n emocional de sus hijos y los riesgos de conductas. De esta forma, los temas de las sesiones les ofrecer\u00e1n herramientas para gestionar las dificultades que suelen surgir al abordar algunos temas como normas de la familia, comunicaci\u00f3n, resoluci\u00f3n de conflictos, autoestima y habilidades sociales o inteligencia emocional, entre otros.
\nLa primera sesi\u00f3n se impartir\u00e1 el 6 de noviembre y abordar\u00e1 el tema \u00bfC\u00f3mo actuamos frente a los problemas o dificultades con nuestros hijos?; el 13 de noviembre la cita se centrar\u00e1 en c\u00f3mo reducir y controlar la tensi\u00f3n emocional; el 20 de noviembre, \u00bfC\u00f3mo manejar las normas de familia?; y el 27 de noviembre, sobre la comunicaci\u00f3n en familia.
\nLas sesiones continuar\u00e1n el 11 de diciembre con el tema \u2018Aprender a resolver conflictos\u2019; el 18 de diciembre se referir\u00e1n a la \u2018Autoestima y habilidades sociales\u2019.
\nPosteriormente, el programa se retomar\u00e1 el 22 de enero con una charla sobre \u2018Educar en Inteligencia Emocional\u2019; el 29 de enero se profundizar\u00e1 en la \u2018Adolescencia: pautas de actuaci\u00f3n familiar\u2019, para continuar el 5 de febrero con \u2018H\u00e1bitos saludables en uso de redes sociales y nuevas tecnolog\u00edas\u2019. El d\u00eda 12 de febrero se clausurar\u00e1n las sesiones con el tema \u2018Informarse de lo que son las drogas y sus efectos sobre el organismo\u2019.<\/p>\n","protected":false},"excerpt":{"rendered":"

El Ayuntamiento de Estepona y la asociaci\u00f3n Horizonte-Proyecto Hombre iniciar\u00e1n, el pr\u00f3ximo mes de noviembre, una nueva edici\u00f3n de la actividad \u2018Escuela de Familias\u2019, una iniciativa coordinada por la delegaci\u00f3n municipal de Juventud dirigida a padres, madres, familiares y educadores interesados en abordar temas que afectan a los j\u00f3venes. Esta actividad celebrar\u00e1 este curso su […]<\/p>\n","protected":false},"author":3,"featured_media":29269,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[34520],"tags":[],"class_list":{"0":"post-29267","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-estepona-actualidad"},"_links":{"self":[{"href":"https:\/\/diariocosta.com\/wp-json\/wp\/v2\/posts\/29267","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=29267"}],"version-history":[{"count":0,"href":"https:\/\/diariocosta.com\/wp-json\/wp\/v2\/posts\/29267\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/diariocosta.com\/wp-json\/wp\/v2\/media\/29269"}],"wp:attachment":[{"href":"https:\/\/diariocosta.com\/wp-json\/wp\/v2\/media?parent=29267"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/diariocosta.com\/wp-json\/wp\/v2\/categories?post=29267"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/diariocosta.com\/wp-json\/wp\/v2\/tags?post=29267"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}