Come ogni mese ecco Envato con le sue risorse gratuite (FREE) mensili, occorre essere registrati e loggati per vedere il pulsante free download, altrimenti verrà visualizzato il costo.
[Risorse disponibili Free SOLO per il mese di FEBBRAIO]
Risorse Free di Envato per il mese di Gennaio
Riapre l’anno Envato con le sue risorse gratuite (FREE) mensili, occorre essere registrati e loggati per vedere il pulsante free download, altrimenti verrà visualizzato il costo.
[Risorse disponibili Free SOLO per il mese di GENNAIO]
Photodune
ActiveDen
Audiojungle
Video>Hive
Graphicriver
ThemeForest
CodeCanyon
Risorse Free di Envato per il mese di Dicembre
Qui di seguito un po’ di link delle risorse rilasciate FREE da parte di Envato, occorre essere registrati e loggati per vedere il pulsante free download, altrimenti verrà visualizzato il costo.
[Risorse disponibili Free SOLO per il mese di DICEMBRE]
Photodune
ActiveDen
3docean
Audiojungle
Video>Hive
Graphicriver
ThemeForest
CodeCanyon
Per non farci mancare proprio nulla, Envato per il periodo di Natale ha iniziato a rilasciare altre risorse FREE fino al 25 di Dicembre
Risorse Free di Envato per il mese di Novembre
Qui di seguito un po’ di link delle risorse rilasciate FREE da parte di Envato, occorre essere registrati e loggati per vedere il pulsante free download, altrimenti verrà visualizzato il costo.
[Risorse disponibili free SOLO per il mese di NOVEMBRE]
Photodune
ActiveDen
3docean
Audiojungle
Video>Hive
Graphicriver
ThemeForest
CodeCanyon
Come caricare il contenuto di un post tramite ajax in WordPress
Pubblico questa risorsa, per cercare di venire in contro a chi come me ha dovuto affrontare in WordPress, la questione “Caricamento dei post tramite chiamata Ajax” ed ha riscontrato difficolà nei vari link presenti in rete.
Nel codice che vedremo io ho strutturato la pagina in modo che un determinato Custom Post venisse aperto tramite finestra in style modal.
Gli step che vedremo sono molto semplici:
- Creazione della funzione che gestirà il contenuto
- Gestione differenti template in base al post type
- Creazione link
- Richiamo/associazione della chiamata Ajax tramite jQuery
Creazione della funzione che gestirà il contenuto
Creiamo ora la nostra funzione PHP che gestirà la query in base alla chiamata ajax per caricare il contenuto richiesto, inseriamo quindi il seguente codice sempre nel nostro functions.php
function load_post() { if ( isset( $_POST['id'] ) && isset( $_POST['id'] ) && wp_verify_nonce($_POST['load_post_nonce'], 'load_post-nonce') ) { $id = absint($_POST["id"]); $post_type= sanitize_text_field($_POST["post_type"]); $myquery = new WP_Query(array( 'p' => $id , 'post_type' => $post_type )); while ($myquery->have_posts()): $myquery->the_post(); get_template_part( 'template_parts/ajax', $post_type ); endwhile; die(); } } add_action( 'wp_ajax_load_post', 'load_post' ); add_action( 'wp_ajax_nopriv_load_post', 'load_post' );
Vediamo nei dettagli questa funzione, non fa altro che creare una query custom tramite l’ID del post che si vuol richiamare e la tipologia del post, questo è stato fatto per far sì che la funzione possa essere il più universale possibile, in quanto si può usare oltre che per i normali post, anche per i Custom Post Type creati in base alle proprie esigenze.
Nel ciclo while, invece che l’output desiderato, ho inserito la funzione
get_template_part();
grazie alla quale vado a richiamare all’interno della cartella “template_parts” il file “ajax-post_type.php” dove tramite la variabile $_POST[‘post_type’] andrò a recuperare la tipologia del post e richiamare quindi il template che ho creato ad hoc (es. ajax-staff.php o ajax-promo.php).
vediamo inoltre che subito dopo la funzione vado ad aggiungere l’azione al mio tema tramite add_action utilizzando le funzioni
wp_ajax_NOME_FUNZIONE
e
wp_ajax_nopriv_NOME_FUNZIONE
importante per non sbagliare di utilizzare sempre il nome della funzione
add_action( 'wp_ajax_NOME_FUNZIONE', 'NOME_FUNZIONE' );
Gestione differenti template in base al post type
Come nell’esempio qui sopra riportato, vediamo ora come ho generato il mio file template:
ID, 'custom_field_impostato', true ); ?>
Questa struttura la scegliete voi in base alle vostre esigenze e in base a ciò che dovete/volete mostrare e tramite CSS potrete mostrare il contenuto come fosse una modal oppure mostrare il contenuto creando un effetto slide.
Creazione link
Nel nostro loop in home page o ovunque voi vogliate usare la chiamata ajax, vediamo come strutturare il link
Maggiori Dettagli
analizziamo il link:
la classe: ne ho impostata una che mi servirà per la funzione jQuery che andremo a vedere a breve, nella quale definirò che al suo click venga trattata la chiamata ajax.
href: imposto l’ID di un div* dislocato nel nostro codice
, nel quale verrà destinato il contenuto della chiamata.
id e data-type: prelevo i dati che sfrutterò per creare la corretta query che mi estrarrà il contenuto richiesto
*= al div sopra segnalato, ho impostato una classe hide con la quale lo nascondo tramite CSS alla quale alternerò una classe open per mostrarlo (con le regole css che meglio si adattano alla situazione
Richiamo/associazione della chiamata Ajax tramite jQuery e localizzazione dello script
Ultima cosa ho creato un file js (es.richieste-ajax.js) che ho impostato per tutto il tema tramite la funzione custom_scripts() e sempre nella stessa ho provveduto a localizzare lo script ed impostare l’url di admin-ajax.php che serve per le chiamate Ajax.
function custom_scripts() { wp_enqueue_script('richieste_ajax', get_template_directory_uri().'/js/richieste-ajax.js',array('jquery'),'1.0',true); wp_localize_script( 'richieste_ajax', 'richieste_ajax_vars', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ),'nonce' => wp_create_nonce('load_post-nonce'), ) ); } add_action( 'wp_enqueue_scripts', 'scripts' );
ma andiamo a vedere il file in questione come è strutturato:
jQuery(function($){ $( 'a.ajaxPost' ).on( 'click', function( e ) { e.preventDefault(); var post_id = $(this).attr( 'id' ); var post_type = $(this).attr( 'data-type' ); jQuery.ajax({ url:richieste_ajax_vars.ajaxurl, // questa è la variabile che abbiamo impostato con il primo script type: "POST", data: { action: 'load_post', // questo è il richiamo alla funzione che deve gestire la chiamata id: post_id, //questo è il passaggio da js a php dell'ID del post da richiamare post_type: post_type //questo è il passaggio da js a php della tipologia di post da richiamare load_post_nonce:richieste_ajax_vars.nonce }, success: function(response, satus, call) { $("#ContenutoPost").html(response); //tramite questa stringa comunico che il div con id ContenutoPost sia la destinazione della mia chiamata ajax console.log("Success", arguments); //mostron in console l'esito della chiamata - può essere commentata la riga jQuery('#ContenutoPost').removeClass('hide').addClass('open'); //tramite questa stringa, alterno le classi open e hide per mostrare o nascondere il div if (jQuery('#ContenutoPost').hasClass('open')) { //se il div ha la classe open, quindi è visualizzato farò in modo che al clic al di fuori del contenuto o sulla X, venga chiuso jQuery("#ContenutoPost").mouseup(function(e) { var subject = $('.modalPost'); if(e.target.id != subject.attr('id') && !subject.has(e.target).length) { jQuery('#ContenutoPost').removeClass('open').addClass('hide'); } }); jQuery('.closeModal').click(function(event){ event.preventDefault(); jQuery('#ContenutoPost').removeClass('open').addClass('hide'); }); } }, error: function(err) { console.log("Error", arguments); //nel caso di errori stampa il contenuto dell'errore - può essere commentata la riga } }); }); });
Mi auguro di aver fatto cosa gradita e chiarito dubbi in merito all’utilizzo di Ajax, su WordPress.
Cosa ne pensate?
Risorse Free di Envato per il mese di Ottobre
Qui di seguito un po’ di link delle risorse rilasciate FREE da parte di Envato, occorre essere registrati e loggati per vedere il pulsante free download, altrimenti verrà visualizzato il costo.
[Risorse disponibili free SOLO per il mese di OTTOBRE]
Photodune
ActiveDen
3docean
Audiojungle
VideoHive
Graphicriver
ThemeForest
CodeCanyon
Cookie Law – chiarezza e possibili rimedi
Avendo creato diversi siti ed essendo particolarmente attivo su facebook (complice il fatto di essere in alcuni gruppi riguardandi Web Design e Web in generale), nell’ultimo periodo mi son mosso nella direzione di cercare di fare chiarezza riguardo il provvedimento dell’8 Maggio 2014 del Garante sulla Privacy, sulla questione dei cookie e del loro consenso a farli rilasciare o eventualmente bloccare.
Tutti gli utenti probabilmente inizieranno a vedere su TUTTI (o quasi) i siti, un banner/popup che avvisa che il sito fa utilizzo di cookie e per tanto occorre il loro consenso per fruire a pieno della corretta navigazione del sito.
Premesso che:
questo articolo non rappresenta in alcun modo una consulenza legale ma esclusivamente un contributo volto a chiarire alcuni aspetti della normativa. Per maggiori ed ulteriori chiarimenti circa la normativa in materia di cookie e l’eventuale conformità del proprio sito web alla normativa, si rileva la necessità di richiedere apposita consulenza legale
Questo è quanto da me riportato in alcuni gruppi:
Cookie – cerchiamo di fare chiarezza
[#cookie #chiarezza] In attesa delle comunicazioni ufficiali che rilascerà il Garante (ma le rilascerà?!), facciamo un po’ di chiarezza per EVITARE di aprire ogni giorno 1000 post sullo stesso argomento.
In merito a questa mia affermazione, il Garante il giorno 29 Maggio ha provveduto a rilasciare notizie, che però non hanno di certo portato chiarimenti sui dubbi emersi
Cosa prevede la nuova norma?
Per i COOKIE TECNICI:
-
ok: solo informativa circa l’uso dei cookie, non è necessario acquisire il consenso.
Nell’informativa estesa spieghi, in generale, cosa sono i cookie, la loro durata, la loro finalità etc
Spieghi che il tuo sito utilizza SOLO cookie tecnici e nessun cookie di profilazione né di prima né di terza parte. (postilla di un legale)
Per i COOKIE di PROFILAZIONE e/o di TERZE PARTI:
-
I cookie di profilazione devono essere bloccati preventivamente oppure, seppur non rappresenta un documento ufficiale del Garante della privacy, il titolare del sito potrebbe optare per l’alternativa indicata a pag. 6 del kit di implementazione diffuso dalle Associazioni di categoria. (postilla di un legale)
-
Ma non deve essere eccessivamente invasivo tale da impedire la navigazione all’utente e costringere lo stesso a dover necessariamente esprimere il consenso. (postilla di un legale)
-
Su ogni pagina del sito web e non solo sulla home page. DEVE esser presente SOLO al primo accesso. Una volta acquisito il consenso – di cui il titolare del sito dovrà mantenere traccia – dal secondo accesso non sarà più necessario mostrare il banner. Resta inteso che laddove l’utente dovesse disattivare i cookie tramite browser o modulo gestione del consenso presente nel testo dell’informativa estesa, sarà poi necessario al successivo accesso mostrare di nuovo il banner. (postilla di un legale)
deve indicare che con il proseguimento della navigazione (sullo scroll come consenso ho dei dubbi in quanto l’utente potrebbe non accorgerse) premendo su un apposito elemento del banner si da il consenso all’utilizzo dei cookie
-
concordo in pieno sullo scroll che ritengo “eccesivo” come metodo di acquisizione del consenso. (postilla di un legale)
-
esatto (postilla di un legale)
Informativa ESTESA:
-
i cookie tecnici NON possono essere deselezionati altrimenti il sito non funzionerebbe, quindi se il sito utilizza solo cookie tecnici non è necessario fornire questa possibilità all’utente. Per i tecnici non è necessario il consenso ma solo informativa. (postilla di un legale)
-
Deve specificare i tipi di cookie di profilazione utilizzati dal sito, sia di prima che di terza parte, ed indicare i link che indirizzano l’utente al sito del terze per eventuale deselezione. (postilla di un legale)
Pagamento dei diritti di segreteria (150€):
-
Non sono da pagare e non vi è alcun obbligo di notifica al garante in caso di cookies di terze parti. (postilla di un legale)
Per quali siti si Applica la normativa Europea
La normativa Europea che ogni stato membro ha recepito va applicata tenendo conto dei seguenti casi:
-
Art. 5. (Codice privacy) Oggetto ed ambito di applicazione 1. Il presente codice disciplina il trattamento di dati personali, anche detenuti all’estero, effettuato da chiunque è stabilito nel territorio dello Stato o in un luogo comunque soggetto alla sovranità dello Stato. 2. Il presente codice si applica anche al trattamento di dati personali effettuato da chiunque è stabilito nel territorio di un Paese non appartenente all’Unione europea e impiega, per il trattamento, strumenti situati nel territorio dello Stato anche diversi da quelli elettronici, salvo che essi siano utilizzati solo ai fini di transito nel territorio dell’Unione europea. In caso di applicazione del presente codice, il titolare del trattamento designa un proprio rappresentante stabilito nel territorio dello Stato ai fini dell’applicazione della disciplina sul trattamento dei dati personali. 3. Il trattamento di dati personali effettuato da persone fisiche per fini esclusivamente personali è soggetto all’applicazione del presente codice solo se i dati sono destinati ad una comunicazione sistematica o alla diffusione. Si applicano in ogni caso le disposizioni in tema di responsabilità e di sicurezza dei dati di cui agli articoli 15 e 31. (postilla di un legale)
Quesiti:
L’utente deve essere informato. Se il tuo sito ha solo contenuti in italiano perché è rivolto solo ad italiani la tua policy sarà in italiano. Se il tuo sito usa diverse lingue e i contenuti sono puntualmente tradotti nelle rispettive lingue, significa che i tuoi utenti sono anche stranieri e quindi devi informare anche loro traducendo i testi. (postilla di un legale)
-
Non sono un tecnico, ma credo che ogni sito web rilasci almeno 1 cookie tecnico per poter funzionare. In questo caso, trova applicazione la normativa. Discorsi form di contatto etc rientrano in altri ambiti non inerenti alla materia cookie, ma alla privacy. Gli adempimenti anche in quel caso (non solo per il form contatto) sono indispensabili perché le sanzioni previste sono analoghe a quelle previste per i cookie (oltre anche a sanzioni penali). (postilla di un legale)
-
Se si ha la certezza che le finalità sono quelle di cui sopra (anonimi, forma aggregata etc), confermo che è da considerarsi tecnico. In caso contrario è un non tecnico. (postilla di un legale)
-
rivedere la sezione precedente per aver maggiori ragguagli (postilla di un legale)
-
non ti arriva direttamente la sanzione. Ti arriverà una comunicazione da parte del Garante il quale ti chiederà delucidazioni e chiarimenti circa il trattamento dei dati personali effettuato all’interno del tuo sito. Non credo proprio che si limiterà ad un mero controllo dei cookie, ma chiederà tutta la documentazione lato privacy (in generale) e lato cookie. Avrai un termine per rispondere. Dopodichè il garante valuterà le tue risposte, eventualmente chiederà integrazione di documenti e poi si regola di conseguenza. (postilla di un legale)
– attendono il 2 giugno
– sono pronti in ambiente di test e pubblicheranno tutto all’ultimo
– attendono in quanto considerano gli eventuali blocchi troppo rischioso (perderebbero introiti o altro)
– hanno interpretato in modo differente dal nostro il provvedimento
– varie ed eventuali 😉
Tool e Script:
Voci di corridoio:
in altri gruppi utenti affermano di aver avuto conversazione con riferimenti del Garante i quali affermano che stanno “lavorando” per risolvere i dubbi in materia (più che altro fino a quando non rendono ufficiale qualcosa è come se non ci stessero lavorando).
Provvedimento dell’8 Maggio 2014:
http://www.garanteprivacy.it/web/guest/home/docweb/-/docweb-display/docweb/3118884
Domande Frequenti (con risposta) sul sito del Garante :
http://www.garanteprivacy.it/web/guest/home/docweb/-/docweb-display/docweb/3585077
http://www.garanteprivacy.it/web/guest/home/docweb/-/docweb-display/docweb/2142939
ELENCO COOKIE E LORO FUNZIONE RILASCIATI DA ALCUNI DEI PRINCIPALI SERVIZI
(Google Analytics, Google Calendar, Google Maps, Youtube, Disqus, Slideshare, Issuu, Viemeo, etc.)
In questo link si trovano alcuni dei principali servizi che utilizziamo sui siti, con indicati i cookie che rilasciano, la descrizione e quando scadono.
Questi sono tutti cookie di terze parti. In aggiunta sotto alcuni servizi, c’è oltre al link di rimando alla loro cookie policy anche il link per l’Opt out
http://www.ed.ac.uk/about/website/privacy/third-party-cookies
Questi sono di Performance
http://www.ed.ac.uk/about/website/privacy/performance-cookies
Questi strettamente Necessari
http://www.ed.ac.uk/about/website/privacy/necessary-cookies
ELENCO SERVIZI TERZI PARTI che è possibile ANONIMIZZARE in modo da evitare di doverli bloccare preventivamente
Google Analytics: https://support.google.com/analytics/answer/2763052?hl=en
Video Youtube > Condividi > Codice da Incorporare > Mostra Altro > Abilita modalità di privacy avanzata
Google Map:https://developers.google.com/maps/documentation/staticmaps/
AddThis: http://stackoverflow.com/questions/20218458/how-do-i-prevent-addthis-from-using-cookies-on-my-site (testare utilizzando => var addthis_config = {data_use_cookies_ondomain: !1, data_use_cookies: !1};
Kit Cookies/Guida Cookies (il presente documento non è legge):
https://www.facebook.com/download/1071765236185724/GUIDA_COOKIES.pdf
Non è un documento ufficiale del Garante (anche se presentato in sua presenza). E’ un documento di ausilio predisposto dalle Associazioni di categoria, ma non è la normativa di riferimento, né provvedimento né linea guida del garante.
Esempi (personali) di policy Cookie & Privacy (tralasciando l’aspetto estetico del sito):
http://bruzzano.com/privacy-policy/ => PRIVACY
http://bruzzano.com/cookies-policy/ => COOKIE (no analytics, ma piwik)
http://www.giulianiautomilano.it/cookies.html => COOKIE (utilizzando Analytics)
IMPORTANTE nelle Cookie Policy NON vanno inseriti link o altri riferimenti a servizi che non utilizzate, nel senso non state larghi e pensate metto i link anche degli altri servizi, in quanto questo renderebbe la vostra policy ambigua e non corretta (rischio sanzioni anche in questo caso)
La mia Soluzione?! eccola riportata
=> vari colleghi e non, professionisti e non me l’hanno chiesta
1) banner con ACCETTO e NEGO il CONSENSO
2) blocco preventivo di tutto tramite PHP
3) informativa ESTESA con eventuale blocco/sblocco dei vari cookie
il codice per svolgere questi step lo trovate qui:
http://paste.ofcode.org/3aE3eYUYL6uDRUXeypbjkJu (old link)
http://pastebin.com/t0Tv7qg8
scusate ma non ho avuto modo e tempo di preparare un corretto repository su Github
risorsa esterna: jquery.cookie.js => https://github.com/carhartl/jquery-cookie/tree/master/src
la mia soluzione è poi stata rivista e anche migliorata a livello di codice ed è presente a questo link: http://www.marcopanichi.com/tools/cookiekit-soluzione-completa-adeguamento-legge-cookie/
Il legale che mi ha seguito e consigliato nella vicenda è: Avv. Raffaele Romano
Continueranno a pensare che per fare un sito ci vogliono 5 minuti??
Forse qualche sprovveduto si e ci saranno ancora clienti o presunti tali che seguiranno questa politica, voi che dite?