<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Karibusana</title>
	<atom:link href="https://www.karibusana.org/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.karibusana.org</link>
	<description>Blog di tecnologia</description>
	<lastBuildDate>Sun, 05 Oct 2025 16:52:19 +0000</lastBuildDate>
	<language>it-IT</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>KondoManager: il gestionale condominiale open source in italiano</title>
		<link>https://www.karibusana.org/2025/08/kondomanager-gestionale-condominio-open-source/</link>
					<comments>https://www.karibusana.org/2025/08/kondomanager-gestionale-condominio-open-source/#comments</comments>
		
		<dc:creator><![CDATA[Vincenzo]]></dc:creator>
		<pubDate>Wed, 20 Aug 2025 13:17:43 +0000</pubDate>
				<category><![CDATA[Marketing]]></category>
		<category><![CDATA[gestionale condominio]]></category>
		<category><![CDATA[open source condominio]]></category>
		<category><![CDATA[software gestione condominiale]]></category>
		<guid isPermaLink="false">https://www.karibusana.org/?p=1620</guid>

					<description><![CDATA[Gestire un condominio non è mai semplice: contabilità, rate, assemblee, comunicazioni ai condomini… spesso gli amministratori si trovano sommersi da scadenze, documenti e mille strumenti diversi.E se ci fosse una soluzione gratuita, moderna e open source, sviluppata in Italia, per rendere tutto più semplice? Nasce KondoManager, un progetto open source disponibile su GitHub, pensato proprio [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p data-start="388" data-end="706"><img fetchpriority="high" decoding="async" class="aligncenter size-large wp-image-1622" src="https://www.karibusana.org/wp-content/uploads/2025/08/Untitled-1-1024x256.webp" alt="" width="1024" height="256" srcset="https://www.karibusana.org/wp-content/uploads/2025/08/Untitled-1-1024x256.webp 1024w, https://www.karibusana.org/wp-content/uploads/2025/08/Untitled-1-300x75.webp 300w, https://www.karibusana.org/wp-content/uploads/2025/08/Untitled-1-768x192.webp 768w, https://www.karibusana.org/wp-content/uploads/2025/08/Untitled-1-1536x384.webp 1536w, https://www.karibusana.org/wp-content/uploads/2025/08/Untitled-1.webp 1600w" sizes="(max-width: 1024px) 100vw, 1024px" /></p>
<p data-start="388" data-end="706">Gestire un condominio non è mai semplice: contabilità, rate, assemblee, comunicazioni ai condomini… spesso gli amministratori si trovano sommersi da scadenze, documenti e mille strumenti diversi.<br data-start="583" data-end="586" />E se ci fosse una soluzione <strong data-start="614" data-end="649">gratuita, moderna e open source</strong>, sviluppata in Italia, per rendere tutto più semplice?</p>
<p data-start="708" data-end="826">Nasce <a href="https://kondomanager.short.gy/iBcqnR"><strong data-start="714" data-end="730">KondoManager</strong></a>, un progetto open source <a href="https://kondomanager.short.gy/github">disponibile su GitHub</a>, pensato proprio per la gestione condominiale. Aiutaci a fare crescere la nostra comunità mettendo una stella sulla repository. </p>
<h2 data-start="708" data-end="826">Cos’è KondoManager?</h2>
<p data-start="860" data-end="1043">KondoManager è un software gestionale sviluppato in <strong data-start="912" data-end="922">Vue.js, Laravel e MySql</strong>, progettato per aiutare gli amministratori di condominio a gestire in modo chiaro e intuitivo tutte le attività legate ai condomini.</p>
<h3 data-start="1045" data-end="1072">Funzionalità principali</h3>
<ul>
<li data-start="1075" data-end="1121">Gestione di condomini e unità immobiliari</li>
<li data-start="1124" data-end="1168">Contabilità e registrazione delle spese</li>
<li data-start="1171" data-end="1213">Generazione e ripartizione delle rate</li>
<li data-start="1216" data-end="1254">Archiviazione documenti e bilanci</li>
<li data-start="1257" data-end="1288">Comunicazioni ai condomini</li>
<li data-start="1291" data-end="1332">Report chiari e facili da consultare</li>
</ul>
<p data-start="1334" data-end="1463">Il progetto è rilasciato in open source, quindi chiunque può provarlo, utilizzarlo gratuitamente e contribuire al suo sviluppo.</p>
<h2 data-start="1334" data-end="1463">Perché scegliere un gestionale per condominio open source?</h2>
<p data-start="1521" data-end="1683">Molti software gestionali per condomini sono <strong data-start="1566" data-end="1577">costosi</strong> e vincolano gli utenti a licenze o servizi cloud proprietari.<br data-start="1639" data-end="1642" />Con KondoManager l’obiettivo è diverso:</p>
<ul>
<li data-start="1687" data-end="1755"><strong data-start="1687" data-end="1698">Libertà</strong> → il codice è aperto, nessun vincolo con un fornitore.</li>
<li data-start="1758" data-end="1861"><strong data-start="1758" data-end="1776">Collaborazione</strong> → chiunque può suggerire miglioramenti, segnalare bug o sviluppare nuove funzioni.</li>
<li data-start="1864" data-end="1982"><strong data-start="1864" data-end="1881">Accessibilità</strong> → perfetto non solo per amministratori professionisti, ma anche per piccoli condomini autogestiti.</li>
</ul>
<h2>Come provare KondoManager</h2>
<p>Il progetto è disponibile su GitHub:<a class="decorated-link" href="https://kondomanager.short.gy/github" target="_new" rel="noopener" data-start="2065" data-end="2136"> KondoManager su GitHub</a> li trovi istruzioni per l’installazione, documentazione e roadmap, se invece vuoi provare una demo online, vai sul sito <a href="https://kondomanager.short.gy/iBcqnR">Kondomanager</a>, troverai il link alla demo e le credenziali per eseguire l&#8217;accesso, (ricorda, alcune funzioni come l&#8217;invio delle email e alcuni permessi dell&#8217;amministratore demo sono disattivati per questioni di sicurezza)</p>
<p>Se hai competenze tecniche, puoi anche <strong data-start="2248" data-end="2273">contribuire al codice</strong> o aprire issue per richiedere nuove funzionalità.</p>
<p data-start="2368" data-end="2459">KondoManager cresce grazie al supporto della community. Puoi contribuire in tanti modi:</p>
<ul>
<li data-start="2463" data-end="2550"><strong data-start="2465" data-end="2495">Metti una stella su GitHub</strong> → è il modo più semplice per supportare il progetto.</li>
<li data-start="2553" data-end="2611"><strong data-start="2556" data-end="2571">Segnala bug</strong> o problemi riscontrati durante l’uso.</li>
<li data-start="2614" data-end="2688"><strong data-start="2617" data-end="2650">Suggerisci nuove funzionalità</strong> utili per la gestione condominiale.</li>
<li data-start="2691" data-end="2801"><strong data-start="2697" data-end="2724">Contribuisci con codice</strong> o traduzioni (ad esempio, per renderlo disponibile anche in altre lingue).</li>
<li data-start="2804" data-end="2880"><strong data-start="2807" data-end="2831">Diffondi il progetto</strong> tra colleghi, amministratori o community tech.</li>
</ul>
<p data-start="2920" data-end="2954">La roadmap del progetto prevede:</p>
<ul>
<li data-start="2957" data-end="3004">Funzioni avanzate di contabilità condominiale</li>
<li data-start="3007" data-end="3053">Integrazione con servizi di pagamento online</li>
<li data-start="3056" data-end="3122">Piattaforma cloud per chi non vuole gestire installazioni locali</li>
<li data-start="3125" data-end="3191">Versioni multilingua per espandere l’uso anche fuori dall’Italia</li>
</ul>
<p data-start="3193" data-end="3300">L’obiettivo è ambizioso: diventare il <strong data-start="3231" data-end="3267">punto di riferimento open source</strong> per la gestione dei condomini.</p>
<p data-start="3326" data-end="3501">Se sei un amministratore di condominio, un condomino che vuole gestire in autonomia il proprio stabile o uno sviluppatore curioso, <strong data-start="3457" data-end="3498">KondoManager è un progetto da seguire</strong>.</p>
<p data-start="3503" data-end="3703"><a href="https://kondomanager.short.gy/github">Provalo subito su GitHub </a>e aiutaci a costruire insieme il futuro della gestione condominiale open source.</p>


]]></content:encoded>
					
					<wfw:commentRss>https://www.karibusana.org/2025/08/kondomanager-gestionale-condominio-open-source/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>Come creare contenuti privati per utenti</title>
		<link>https://www.karibusana.org/2020/02/wordpress-come-creare-contenuti-privati-per-utenti/</link>
					<comments>https://www.karibusana.org/2020/02/wordpress-come-creare-contenuti-privati-per-utenti/#comments</comments>
		
		<dc:creator><![CDATA[Vincenzo Vecchio]]></dc:creator>
		<pubDate>Sun, 02 Feb 2020 10:18:41 +0000</pubDate>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[contenuti privati]]></category>
		<category><![CDATA[wordpress area privata]]></category>
		<guid isPermaLink="false">https://www.karibusana.org/?p=1243</guid>

					<description><![CDATA[Come creare un'area privata in wordpress senza plugins per proteggere contenuti per singoli utenti o gruppi di uten]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="540" src="https://www.karibusana.org/wp-content/uploads/2020/02/area-privata-wordpress-senza-plugins.png" alt="" class="wp-image-1281" srcset="https://www.karibusana.org/wp-content/uploads/2020/02/area-privata-wordpress-senza-plugins.png 1024w, https://www.karibusana.org/wp-content/uploads/2020/02/area-privata-wordpress-senza-plugins-300x158.png 300w, https://www.karibusana.org/wp-content/uploads/2020/02/area-privata-wordpress-senza-plugins-768x405.png 768w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>Qualche tempo fa avevo scritto un articolo su come <a href="https://www.karibusana.org/2018/08/come-creare-area-riservata-wordpress-senza-plugins/">creare un&#8217;area riservata in WordPress senza l&#8217;utilizzo di plugins</a> grazie ai custom post type, è infatti possibile proteggere degli articoli per tutti gli utenti che hanno il ruolo di sottoscrittore. </p>



<p>Un lettore mi ha chiesto se fosse possibile attribuire gli articoli a degli specifici utenti, in questo articolo vi spiego come fare. Le nuove funzionalità permetteranno di: </p>



<ul class="wp-block-list"><li>Inserire contenuti visibili<strong> a tutti</strong> gli utenti aventi accesso con il ruolo subscriber</li><li>Inserire contenuti assegnati a <strong>un singolo</strong> utente</li></ul>



<p>Quando l’utente si loggerà vedrà un elenco di contenti misti, alcuni visibili a tutti, alcuni solo per lui. Di seguito uno screenshot dell&#8217;area privata</p>
</div></div>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" width="1024" height="441" src="https://www.karibusana.org/wp-content/uploads/2020/02/area-riservata-wordpress-1024x441.png" alt="Area privata WordPress contenuti per singolo utente" class="wp-image-1269" srcset="https://www.karibusana.org/wp-content/uploads/2020/02/area-riservata-wordpress-1024x441.png 1024w, https://www.karibusana.org/wp-content/uploads/2020/02/area-riservata-wordpress-300x129.png 300w, https://www.karibusana.org/wp-content/uploads/2020/02/area-riservata-wordpress-768x331.png 768w, https://www.karibusana.org/wp-content/uploads/2020/02/area-riservata-wordpress.png 1043w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure></div>



<p>Se hai dimestichezza con WordPress puoi implementatare le modifiche utilizzando il seguente codice. Se invece preferisci utilizzare un plugin ne ho sviluppato uno ad hoc, questo plugin ti permette anche di attribuire gli articoli privati a più di un utente e aggiunge anche una sidebar all&#8217;area privata dove poter inserire dei widget specifici per gli utenti che hanno accesso all&#8217;area privata.</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow"></div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
	<form id="edd_purchase_1308" class="edd_download_purchase_form edd_purchase_1308" method="post">

		
		<div class="edd_purchase_submit_wrapper">
			<button class="edd-add-to-cart button blue edd-submit" data-nonce="46d5af0427" data-timestamp="1776624470" data-token="8ed8ec2f982c766a3575d5af4c6de3ae1d126217585ac124c5f36190bb08b02a" data-action="edd_add_to_cart" data-download-id="1308" data-variable-price="no" data-price-mode=single data-price="15.00" ><span class="edd-add-to-cart-label">&euro;15.00&nbsp;&ndash;&nbsp;Acquista il plugin</span> <span class="edd-loading" aria-label="Caricamento"></span></button><input type="submit" class="edd-add-to-cart edd-no-js button blue edd-submit" name="edd_purchase_download" value="&euro;15.00&nbsp;&ndash;&nbsp;Acquista il plugin" data-action="edd_add_to_cart" data-download-id="1308" data-variable-price="no" data-price-mode=single /><a href="https://www.karibusana.org/checkout/" class="edd_go_to_checkout button blue edd-submit" style="display:none;">Checkout</a>
							<span class="edd-cart-ajax-alert" aria-live="assertive">
					<span class="edd-cart-added-alert" style="display: none;">
						<svg class="edd-icon edd-icon-check" xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28" aria-hidden="true">
							<path d="M26.11 8.844c0 .39-.157.78-.44 1.062L12.234 23.344c-.28.28-.672.438-1.062.438s-.78-.156-1.06-.438l-7.782-7.78c-.28-.282-.438-.673-.438-1.063s.156-.78.438-1.06l2.125-2.126c.28-.28.672-.438 1.062-.438s.78.156 1.062.438l4.594 4.61L21.42 5.656c.282-.28.673-.438 1.063-.438s.78.155 1.062.437l2.125 2.125c.28.28.438.672.438 1.062z"/>
						</svg>
						Aggiunto al carrello					</span>
				</span>
															</div><!--end .edd_purchase_submit_wrapper-->

		<input type="hidden" name="download_id" value="1308">
							<input type="hidden" name="edd_action" class="edd_action_input" value="add_to_cart">
		
					<input type="hidden" name="edd_redirect_to_checkout" value="1">
		
		
	</form><!--end #edd_purchase_1308-->
	
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow"></div>
</div>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>


           
            <div class="onp-locker-call" style="display: none;" data-lock-id="onpLock889107">
                <p></p>


<h2 class="wp-block-heading">Modifichiamo il file functions.php</h2>



<p>Per prima cosa inseriamo il seguente codice nel file functions.php del nostro tema. Questo ci permetterà di creare un nuovo custom post type chiamato <strong>Area Riservata</strong></p>



<pre title="PHP" class="wp-block-code"><code lang="php" class="language-php">// Creo il post type per l’area riservata
function karibusana_create_post_type() {

    $labels = array(

        'name'           		=> __('Area riservata'),
        'singular_name'  		=> __('Contenuto'),
        'add_new'        		=> __('Aggiungi contenuto'),
        'add_new_item'  		=> __('Nuovo contenuto'),
        'edit_item'      		=> __('Modifica contenuto'),
        'new_item'       		=> __('Nuovo contenuto'),
        'all_items'      		=> __('Elenco contenuti'),
        'view_item'      		=> __('Visualizza contenuti'),
        'search_items'   		=> __('Cerca contenuto'),
        'not_found'      		=> __('Contenuto non trovato'),
        'not_found_in_trash' 	=> __('Contenuto non trovato nel cestino'),

    );

    $args = array(

        'labels'            => $labels,
        'public'            => true,
        'rewrite'           => array('slug' => 'contenuti'),
        'has_archive'       => true,
        'hierarchical'      => false,
        'menu_position'     => 5,
        'supports'          => array(
                                'title',
                                'editor',
                                'thumbnail',
                                'comments'
                                ),
    );

   register_post_type('area-riservata', $args);

}

add_action('init', 'karibusana_create_post_type');</code></pre>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Funzioni aggiuntive</h2>



<p>Inseriamo una serie di funzioni che servono per il funzionamento del sistema:</p>



<ul class="wp-block-list"><li>Rendiamo i post del custom post type privati di default</li><li>Rendiamo i post privati visibili ai sottoscrittori</li><li>Rimuoviamo la parola privato dal titolo del post</li><li>Nascondiamo la barra di WordPress agli utenti con il ruolo sottoscrittore</li></ul>



<pre title="PHP" class="wp-block-code"><code lang="php" class="language-php">//rendo il post type privato di default
function karibusana_force_type_private ($post) {

    if ($post['post_type'] == 'area-riservata') {
        if ($post['post_status'] == 'publish') {
	        $post['post_status'] = 'private';
        } 
    }

    return $post;
}

add_filter('wp_insert_post_data', 'karibusana_force_type_private');

$subRole = get_role('subscriber');
// Rendo il post privato visibile al ruolo sottoscrittore
$subRole->add_cap('read_private_posts');

function karibusana_remove_private_post_prefix($format) {
    return '%s';
}
 
add_filter( 'private_title_format', 'karibusana_remove_private_post_prefix', 99, 2 );

// Nascondo la barra di wordpress tranne che all’admin
if (!current_user_can('manage_options')) {
	add_filter('show_admin_bar', '__return_false');
}

if (!current_user_can('edit_posts')) {
	add_filter('show_admin_bar', '__return_false');
}</code></pre>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Aggiungiamo un custom metabox</h2>



<p>Con il seguente codice possiamo aggiungere un custom metabox all&#8217;interno dell&#8217;editor degli articoli,  per mostrare un menù a tendina con una lista di tutti gli utenti che hanno il ruolo sottoscrittore. Per questa funzione ho tratto spunto da un articolo che ho trovato su <a rel="noreferrer noopener" aria-label="smashing magazine (opens in a new tab)" href="https://www.smashingmagazine.com/2011/10/create-custom-post-meta-boxes-wordpress/" target="_blank">smashing magazine</a>.</p>



<p>Di default il nostro select box è impostato su tutti, lasciate questa opzione se volete mostrare l&#8217;articolo a tutti gli utenti con il ruolo di sottoscrittore oppure scegliete uno scpecifico utente dal menù a tendina. </p>



<pre title="PHP" class="wp-block-code"><code lang="php" class="language-php">// creo il metabox per il post type area riservata
function users_meta_init(){
  add_meta_box("users-meta", "Seleziona utenti", "users", "area-riservata", "normal", "high");
}

add_action("admin_init", "users_meta_init");

// lista degli utenti
function users(){

  global $post;

  $custom = get_post_custom($post->ID);
  $users = isset($custom["users"][0]);

	$user_args  = array(
		// cerco solo gli utenti di tipo sottoscrittore
		'role' => 'Subscriber',
		'orderby' => 'display_name'
	);

	// creo la WP_User_Query object
	$wp_user_query = new WP_User_Query($user_args);
	// richiamo i risultati
	$subscribers = $wp_user_query->get_results();
	// controllo i risultati
	if (!empty($subscribers)) {

	    // l’attributo di name è la chiave del customfield
	    echo "&lt;select name='users'>";
	    	echo '&lt;option value="all">Tutti&lt;/option>';
		    // loop che mostra tutti i sottoscrittori
		    foreach ($subscribers as $subscriber){

		        // Richiamo i dati dei sottoscrittori
		        $subscriber_info = get_userdata($subscriber->ID);
		        $subscriber_id = get_post_meta($post->ID, 'users', true);
		        if($subscriber_id == $subscriber_info->ID) { 
		        	$subscriber_selected = 'selected="selected"'; 
		        } else { 
		        	$subscriber_selected = '';
		        }

		        echo '&lt;option value='.$subscriber_info->ID.' '.$subscriber_selected.'>'.$subscriber_info->display_name.'&lt;/option>';
		    }

	    echo "&lt;/select>";

	} else {

	    echo 'Nessun utente trovato';

	}

}

function karibusana_save_userlist(){

  global $post;
	
	if (defined('DOING_AUTOSAVE') &amp;&amp; DOING_AUTOSAVE) {
	    return;
	}

   if(isset($_POST["users"])){

   update_post_meta($post->ID, "users", sanitize_html_class($_POST["users"]));
	}

}

// salvo l’impostazione della lista
add_action('save_post', 'karibusana_save_userlist');
</code></pre>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Template Area Riservata</h2>



<p>Una volte eseguitre le modifiche al nostro file functions.php dobbiamo creare un nuovo template perosnalizzato che ci permetterà di elencare i diversi post filtrandoli a seconda dei permessi che abbiamo impostato. Basterà creare un nuovo file <strong>areariservata.php </strong> che inseriremo nel cartella del nostro tema.</p>



<pre title="PHP" class="wp-block-code"><code lang="php" class="language-php">&lt;?php
/*
Template Name: Area Riservata
*/

get_header(); 

// Controllo che l'utente sia loggato
if (is_user_logged_in()) {

	$current_user = wp_get_current_user();

	// Funzione per ottenere il nome e cognome dell'utente
	function karibusana_get_users_name( $user_id = null ) {
		$user_info = $user_id ? new WP_User($user_id) : $current_user;
		if ( $user_info->first_name ) {
			if ( $user_info->last_name ) {
				return $user_info->first_name . ' ' . $user_info->last_name;
			}
			return $user_info->first_name;
		}
		return $user_info->display_name;
	
	}

	// Funzione per ottenere il ruolo dell'utente
	function karibusana_get_user_role ($user, $role) {
		  $roles = $user->roles; 
		  return in_array($role, (array) $user->roles);
	
	}

	// ID dell'utene loggato
	$user_id = $current_user->ID;

	// Mostro messaggio di benvenuto
	echo 'Benvenuto, '.karibusana_get_users_name($user_id).'&lt;hr/>';

	// Controllo il ruolo dell'utene, se amministratore allora mostra tutti i contenuti altrimenti solo quelli dell'utente
	if(karibusana_get_user_role ($current_user, 'administrator')) {

		// loop con tutti i contenuti
		$wpquery = new WP_Query(array(
			'post_type'	=> 'area-riservata',
		));

	} else {

		//loop con i contenuti del relativo utente + quelli contrassegnati come all
		$wpquery = new WP_Query(array(  'post_type'	=> 'area-riservata',
										'meta_query' => array(
										'relation' => 'OR',
											array(  'key' => 'users',
													'value' => $user_id,
													'compare' => '=' 
											),
											array(  'key' => 'users',
													'value' => 'all',
												    'compare' => '='
											)
										)
								    )
								);

	}

if ( $wpquery -> have_posts() ) : while ( $wpquery -> have_posts() ) : $wpquery -> the_post(); ?>

&lt;div class="post">
&lt;h2>&lt;a href="&lt;?php the_permalink(); ?>">&lt;?php the_title(); ?>&lt;/a>&lt;/h2>&lt;br>
&lt;?php the_content('Leggi…');?>
&lt;/div>
&lt;hr/>

&lt;?php endwhile; else: ?>

&lt;div class="post">

&lt;h3>Spicenti, non ci sono contenuti&lt;/h3>

&lt;/div>

&lt;?php endif; 

 echo "&lt;a href=" . wp_logout_url( home_url() ) . " title='Logout'>Logout&lt;/a>";	

} else { ?>

	Area Riservata

	&lt;h2>Login&lt;/h2>

	&lt;?php wp_login_form(); ?>

	&lt;?php } ?>

&lt;/div>

&lt;?php get_footer(); ?></code></pre>


<p></p>
            </div>
         

        


<p>Spero questo articolo sia stato di vostro gradimento, lasciatemi un commento se dovesse servirvi aiuto e non dimenticate di condividere questo articolo sui social. </p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.karibusana.org/2020/02/wordpress-come-creare-contenuti-privati-per-utenti/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>Come disabilitare la GPU AMD Radeon su MacBook Pro</title>
		<link>https://www.karibusana.org/2019/12/come-disabilitare-la-gpu-amd-radeon-su-macbook-pro/</link>
					<comments>https://www.karibusana.org/2019/12/come-disabilitare-la-gpu-amd-radeon-su-macbook-pro/#comments</comments>
		
		<dc:creator><![CDATA[Vincenzo Vecchio]]></dc:creator>
		<pubDate>Wed, 04 Dec 2019 10:38:16 +0000</pubDate>
				<category><![CDATA[MacOs]]></category>
		<category><![CDATA[errore scheda grafica macbook]]></category>
		<category><![CDATA[scheda grafica macbook]]></category>
		<guid isPermaLink="false">https://www.karibusana.org/?p=1217</guid>

					<description><![CDATA[Se il tuo MacBook al primo avvio una schermata con delle linee orizzontali verdi oppure delle linee blu allora è possibile che la scheda grafica dedicata AMD sia danneggiata, un problema comune a molti modelli di MacBook del 2011 anche se il problema è esteso anche ai MacBook Pro con doppia scheda video da 15 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="540" src="https://www.karibusana.org/wp-content/uploads/2019/12/come-riparare-scheda-video-macbook.png" alt="" class="wp-image-1235" srcset="https://www.karibusana.org/wp-content/uploads/2019/12/come-riparare-scheda-video-macbook.png 1024w, https://www.karibusana.org/wp-content/uploads/2019/12/come-riparare-scheda-video-macbook-300x158.png 300w, https://www.karibusana.org/wp-content/uploads/2019/12/come-riparare-scheda-video-macbook-768x405.png 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Se il tuo MacBook al primo avvio una schermata con delle linee orizzontali verdi oppure delle linee blu allora è possibile che la scheda grafica dedicata AMD sia danneggiata, un problema comune a molti modelli di MacBook del 2011 anche se il problema è esteso anche ai MacBook Pro con doppia scheda video da 15 e 17 pollici del 2010 e 2012. Sembra che la casistica più ampia si registri coi modelli che possiedono la <strong>AMD Radeon 6750M GPU</strong>, ma anche le GPU Radeon 6490M, 6750M e 6970M non sono del tutto esenti dal problema. Nella maggior parte dei casi la macchina è inutilizzabile e presenta i seguenti errori:</p>



<ol class="wp-block-list"><li>All&#8217;avvio del sistema operativo compaiono delle righe orizzontali o verticali sullo schermo di colore verde o blu, subito al primo avvio sullo sfondo grigio con il logo della Apple</li><li>Il MacBook Pro tenta di avviarsi ma si blocca sulla schermata di caricamento con il logo Apple, quindi non arriva al 100% e si riavvia (questo è quello che è successo al mio MacBook Pro)</li></ol>



<p>Qualche tempo fa scrissi un articolo dal titolo <a href="https://www.karibusana.org/2016/02/come-ho-risolto-lo-schermo-bianco-e-a-righe-sul-mio-macbook/">come ho risolto lo schermo bianco e a righe sul mio MacBook</a> allora la Apple aveva riconosciuto tale difetto come errore di fabbrica e aveva pertanto avviato un programma di riparazioni GRATUITE su tutti i modelli di MacBook Pro che rientravano in questa categoria.&nbsp; Oggi il programma di sostituzione è scaduto e inoltre esendo la scheda madre sostituita con un modello identico non garantisce che il problema non possa verificarsi nuovamente.</p>



<p>A distanza di tre anni dalla riparazione mi sono ritrovato con l&#8217;identico problema, ho quidi prenotato un appuntamento all&#8217;Apple Genius per confermare che si trattasse nuovamente di un difetto della scheda grafica. Ho anche scoperto che non riparano più i modelli di MacBook Pro del 2011 perchè ormai obsoleti e perchè le schede madri compatibili non vengono più prodotte, mi è stato suggerito pertanto di acquistare un nuovo MacBook Pro.</p>



<h2 class="wp-block-heading">Come disattivare GPU discreta AMD su MacBook Pro</h2>



<p>In questo articolo voglio spiegarti come puoi risolvere il problema semplicemente <strong>disattivando completamente la GPU discreta AMD</strong> (quella che da problemi) attivando quindi soltanto la scheda principale Intel HD Graphics integrata nella scheda madre.</p>



<p>Dopo aver fatto delle ricerche online e provato diverse soluzioni ne ho trovata una che funziona ed è facile da applicare. L&#8217;ho testata sul mio MacBook Pro late 2011 con sistema operativo macOS High Sierra ma dovrebbe funzionare anche con la verisone macOS Sierra.</p>



<p>Prima di procedere con la procedura di disattivazione della scheda video dedicata leggi bene di seguito:
</p>



<ol class="wp-block-list"><li>Qualora lo schermo vada in modalità standby sarà necessario un riavvio forzato del vostro MacBook. Questo problema può essere evitato utilizzando la applicazione Amphetamine che trovate <a href="https://www.google.com/url?sa=t&amp;rct=j&amp;q=&amp;esrc=s&amp;source=web&amp;cd=1&amp;cad=rja&amp;uact=8&amp;ved=2ahUKEwilu9Wt4JrmAhWkThUIHWAwD1IQFjAAegQIBBAI&amp;url=https%3A%2F%2Fapps.apple.com%2Fus%2Fapp%2Famphetamine%2Fid937984704%3Fmt%3D12&amp;usg=AOvVaw2o99yDNP2d-ILjXKc5IE0I">qui</a> oppure disattivando lo stop del monitor della gestione dei risparmio energia nelle preferenze di sistema</li><li>Non sarà possibile regolare la luminosità dello schermo utilizzando i tasti veloci della tastiera, anche questo risolvibile utilizzando l&#8217;applicazione &#8220;<a href="https://actproductions.net/free-apps/brightness-slider/">Brightness Slider</a>&#8220;. Questo problema si verifica solo su High Sierra e non su Sierra</li><li>Non sarà più possibile collegare il MacBook con uno schermo esterno e potrebbero verificarsi piccoli problemi di surriscaldamento</li></ol>



<p>Se siete disposti a fare a meno di queste funzioni piuttosto che spendere dei soldi per far ripare il vostro MacBook con il rischo che il problema di presenti nuovamente, oppure non volete acquistarne uno nuovo allora seguite i seguenti passaggi.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>Importante!</strong> Prima di procedere assicurati di aver eseguito un backup dei tuoi dati con Time Capsule o altro sistema di salvataggio dei dati.</p></blockquote>



<h3 class="wp-block-heading">Step 1 &#8211; Disabilita il csrutil</h3>



<p>Per prima cosa dovremo disabiltare csrutil dal terminale questo è importante per poi sccessivamente spostare i files kexts ed eliminarli dalla cartella di sistema. Provate a riavviare il vostro MacBook in modalità &#8220;<em>recovery mode</em>&#8221; premendo la combinazione di tasti <strong>CMD + R</strong> e andate direttamente allo Step 1.1 altrimenti avviante il MacBook in modalità &#8220;<em>single user mode</em>&#8221; premendo la combinazione di tasti <strong>CMD</strong> + <strong>S</strong> al primo avvio, non appena il processo di carcamento sarà completato dovrete inserire il seguente codice:</p>



<pre title="Bash/Shell" class="wp-block-code"><code lang="bash" class="language-bash">sudo nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00</code></pre>



<p>e successivamente riavviare il computer utilizzando il comando:</p>



<pre title="Bash/Shell" class="wp-block-code"><code lang="bash" class="language-bash">reboot</code></pre>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">Step 1.1</h3>



<p>Quindi riavvia il MacBook in modalità “<em>recovery mode</em>” premendo la combinazione di tasti <strong>CMD + R. </strong></p>



<p>Quando lo schermo ha finito di caricare scegli la lingua e dal menù in alto seleziona la voce <strong>Utilities</strong> -> <strong>Terminal</strong>  come mostrato nell&#8217;immagine successiva.</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="800" height="600" src="https://www.karibusana.org/wp-content/uploads/2019/12/recovery-mode-mac-os.png" alt="" class="wp-image-1223" srcset="https://www.karibusana.org/wp-content/uploads/2019/12/recovery-mode-mac-os.png 800w, https://www.karibusana.org/wp-content/uploads/2019/12/recovery-mode-mac-os-300x225.png 300w, https://www.karibusana.org/wp-content/uploads/2019/12/recovery-mode-mac-os-768x576.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></figure></div>



<p>Quindi nel terminale appena aperto inserisci il comando:</p>



<pre title="Bash/Shell" class="wp-block-code"><code lang="bash" class="language-bash">csrutil disable</code></pre>



<p>Successivamente riavvia nuovamente il computer utilizzando il comando:</p>



<pre title="Bash/Shell" class="wp-block-code"><code lang="bash" class="language-bash">reboot</code></pre>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">Step 2 &#8211; Rimuovi i driver della scheda AMD difettosa</h3>



<p>Al riavvio assicurati di entrare nuovamente in &#8220;<em>single user mode</em>&#8221; premendo la combinazione di tasti <strong>CMD</strong> + <strong>S</strong> e nel terminale inserisci i seguenti comandi di codice, per prima cosa esegui un controllo sul disco rigido per asicurati che non ci siano errori ed eventualmente per correggerli</p>



<pre title="Bash/Shell" class="wp-block-code"><code lang="bash" class="language-bash">fsck -fy</code></pre>



<p>Quando il processo è completato, monta il disco rigido utilizzando il comando:</p>



<pre title="Bash/Shell" class="wp-block-code"><code lang="bash" class="language-bash">mount -uw /</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Qualora riscontrassi un errore del tipo mount command not found allora prova con /sbin/mount -uw /</p></blockquote>



<p>Nel passaggio successivo andremo a spostare tutti i driver della scheda grafica AMD ma prima ci assicureremo di copiarli in una cartella di backup, pertanto generiamo prima una nuova cartella utilizzando il comando:</p>



<pre title="Bash/Shell" class="wp-block-code"><code lang="bash" class="language-bash">sudo mkdir /amd-backup-kexts/</code></pre>



<p>Quindi sposta tutti i driver nella cartella appena creata, utilizzando il comando di codice:</p>



<pre title="Bash/Shell" class="wp-block-code"><code lang="bash" class="language-bash">sudo mv /System/Library/Extensions/AMD*.* /amd-backup-kexts/</code></pre>



<p>Successivamente devi eliminare la cache dei files kext utilizzando il seguente comando di codice:</p>



<pre title="Bash/Shell" class="wp-block-code"><code lang="bash" class="language-bash">sudo rm -rf /System/Library/Caches/com.apple.kext.caches/</code></pre>



<p>Quindi ricrea la cache:</p>



<pre title="Bash/Shell" class="wp-block-code"><code lang="bash" class="language-bash">sudo mkdir /System/Library/Caches/com.apple.kext.caches/</code></pre>



<p>Quindi aggiorna il timestamps della cache dei drivers senza i driver della scheda AMD:</p>



<pre title="Bash/Shell" class="wp-block-code"><code lang="bash" class="language-bash">sudo touch /System/Library/Extensions/</code></pre>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">Step 3 &#8211; Abilita nuovamente il csrutil</h3>



<p>Adesso ripetiamo lo Step 1:</p>



<pre title="Bash/Shell" class="wp-block-code"><code lang="bash" class="language-bash">sudo nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00</code></pre>



<p>Quindi riavvia il MacBook in modalità &#8220;<em>recovery mode</em>&#8221; premendo la combinazione di tasti <strong>CMD + R. </strong>Quando lo schermo ha finito di caricare scegli la lingua e dal menù in alto seleziona la voce <strong>Utilities -&gt; Terminal</strong>&nbsp; come mostrato nell&#8217;immagine successiva.</p>



<pre title="Bash/Shell" class="wp-block-code"><code lang="bash" class="language-bash">reboot</code></pre>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="800" height="600" src="https://www.karibusana.org/wp-content/uploads/2019/12/recovery-mode-mac-os.png" alt="" class="wp-image-1223" srcset="https://www.karibusana.org/wp-content/uploads/2019/12/recovery-mode-mac-os.png 800w, https://www.karibusana.org/wp-content/uploads/2019/12/recovery-mode-mac-os-300x225.png 300w, https://www.karibusana.org/wp-content/uploads/2019/12/recovery-mode-mac-os-768x576.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></figure></div>



<p>Quindi nel terminale appena aperto inserisci il comando:</p>



<pre title="Bash/Shell" class="wp-block-code"><code lang="bash" class="language-bash">csrutil enable</code></pre>



<p>E quindi riavviamo nuovamente:</p>



<pre title="Bash/Shell" class="wp-block-code"><code lang="bash" class="language-bash">reboot</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>Nota Bene:</strong> Probabilmente dovrai ripetere questi passaggi qualora vorrai installare degli aggiornamenti di sistema anche se si trattasse di semplici aggiornamenti di sicurezza. Per risolvere completamente il problema si potrebbe tentare di rimuovere il chip R8911 dissaldandolo dalla scheda madre.</p></blockquote>



<p>Adesso il tuo MacBook dovrebbe riuscire a riavviarsi normalmente e puoi goderti un computer come nuovo senza dover spendere soldi per sostituire la scheda madre o acquistare un nuovo MacBook.</p>



<p>Spero di esserti stato d&#8217;aiuto e se hai trovato questo articolo interesante puoi condividerlo utilizzando le opzioni di condivisione che trovi sotto al titolo dell&#8217;articolo o lasciare un commento qui nel blog.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.karibusana.org/2019/12/come-disabilitare-la-gpu-amd-radeon-su-macbook-pro/feed/</wfw:commentRss>
			<slash:comments>188</slash:comments>
		
		
			</item>
		<item>
		<title>Come creare area riservata WordPress senza plugins</title>
		<link>https://www.karibusana.org/2018/08/come-creare-area-riservata-wordpress-senza-plugins/</link>
					<comments>https://www.karibusana.org/2018/08/come-creare-area-riservata-wordpress-senza-plugins/#comments</comments>
		
		<dc:creator><![CDATA[Vincenzo Vecchio]]></dc:creator>
		<pubDate>Thu, 30 Aug 2018 15:06:21 +0000</pubDate>
				<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">https://www.karibusana.org/?p=1134</guid>

					<description><![CDATA[In questo articolo ti spiego come creare un&#8217;area riservata in WordPress senza utilizzare plugins, in passato avevo già crreato un articolo su questo argomento e avevo parlato di un utile plugin per i neofiti di WordPress, pertanto se non conosci bene WordPress ti suggerisco di leggere &#8220;Area riservata su WordPress con WP Customer Area. Vediamo [&#8230;]]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="540" src="https://www.karibusana.org/wp-content/uploads/2018/08/area-riservata-wordpress-senza-plugins-1024x540.png" alt="area riservata wordpress senza plugin" class="wp-image-1151" srcset="https://www.karibusana.org/wp-content/uploads/2018/08/area-riservata-wordpress-senza-plugins.png 1024w, https://www.karibusana.org/wp-content/uploads/2018/08/area-riservata-wordpress-senza-plugins-300x158.png 300w, https://www.karibusana.org/wp-content/uploads/2018/08/area-riservata-wordpress-senza-plugins-768x405.png 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>In questo articolo ti spiego come creare un&#8217;area riservata in WordPress senza utilizzare plugins, in passato avevo già crreato un articolo su questo argomento e avevo parlato di un utile plugin per i neofiti di WordPress, pertanto se non conosci bene WordPress ti suggerisco di leggere &#8220;<a rel="noreferrer noopener" href="https://www.karibusana.org/2015/05/creare-area-riservata-su-wordpress/" target="_blank">Area riservata su WordPress con WP Customer Area</a>. Vediamo invece come sia semplice realizzare una semplice area privata utilizzando i custom post type di WordPress in associazione ai ruoli e capabilities messi già a disposizione da WordPress stesso e senza l&#8217;utilizzo di plugins.</p>



<h2 class="wp-block-heading">Riassumiamo i passaggi per la creazione dell&#8217;area riservata in WordPress senza plugin</h2>



<p>L&#8217;idea è quella di utilizzare l&#8217;opzione articolo privato di WordPress e per rendere più facile la gestione dei nostri articoli utilizzeremo i custom post tiype, tra la impostazioni di pubblicazione degli articoli WorPress ci offre la possibilità di modificarne la visibilità potendo scgliere scegliere tra le opzioni &#8220;pubblico, protetto da password e privato&#8221;. Gli articoli privati sono però solo visualizzabili dagli utenti appartenti ai ruoli con la <a href="https://codex.wordpress.org/Roles_and_Capabilities">capability read_private_posts</a>: gliamministratori e gli editori. Dal momento che non è auspicabile registrare nuovi utenti come editori ne tantomeno come amministratori dovremo aggiungere questa capability agli utenti con il ruolo di sottoscrittore oppure creare un ruolo specifico per le nostre esigenze. Di seguito trovi elencati i passaggi che seguiremo</p>



<ul class="wp-block-list"><li>Creazione di un custom post type che chiameremo per semplicità &#8220;Area Privata&#8221;, questo verrà mostrato nel menu di amminstrazione di WordPress e ci permetterà di inserire e tenere ordinati i nostri contenuti. Quindi andremo a rendere privati di default tutti i nuovi contenuti che inseriremo</li><li>Creazione di un template di pagina personalizzato per mostrare il modulo di login quando l&#8217;utente non è connesso e la lista di articoli privati dopo aver eseguito il login</li><li>Aggiungeremo la capability <strong>read_private_post</strong> agli utenti con il ruolo di sottoscrittore e rimuoveremo anche l&#8217;accesso al backend di WordPress</li><li>Faremo anche in modo di poter mostrare gli articoli selettivamente per i singoli utenti</li></ul>


           
            <div class="onp-locker-call" style="display: none;" data-lock-id="onpLock697300">
                <p></p>


<h3 class="wp-block-heading">1. Definiamo il custom post type</h3>



<p>Per il nostro scopo utilizzeremo la funzione di WordPress <a href="https://codex.wordpress.org/Function_Reference/register_post_type">register_post_type</a>, vai al link per scoprire ulterioripossibilità di personalizzazione delle opzioni.&nbsp; Apriamo il file <strong>function.php</strong> del nostro tema wordpress e inseriamo il seguente codice.</p>



<pre title="PHP" class="wp-block-code"><code lang="php" class="language-php">function karibusana_custom_post_type() {

	$labels = array(
		'name' => __( 'Area riservata'),
		'singular_name' => __( 'Articolo' ),
		'menu_name' => __( 'Area riservata'),
		'name_admin_bar' => __( 'Area riservata'),
		'add_new' => __( 'Nuovo articolo'),
		'add_new_item' => __( 'Aggiungi nuovo articolo'),
		'new_item' => __( 'Nuovo articolo'),
		'edit_item' => __( 'Modifica articolo'),
		'view_item' => __( 'Visualizza articolo'),
		'all_items' => __( 'Elenco articoli'),
		'search_items' => __( 'Cerca articoli'),
		'not_found' => __( 'Nessun articolo trovato'),
		'not_found_in_trash' => __( 'Nessun articolo trovato nel cestino')
	);

	$args = array(
		'labels' => $labels,
		'public' => true,
		'rewrite' => array('slug' => 'area-privata'),
		'show_ui' => true,
		'show_in_menu' => true,
		'query_var' => true,
		'capability_type' => 'post',
		'has_archive' => true,
		'hierarchical' => false,
		'menu_position' => 5,
		'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments' )
	);

	register_post_type( 'area-riservata', $args );
}

add_action( 'init', 'karibusana_custom_post_type' );</code></pre>



<h3 class="wp-block-heading">2. Articoli del custom post type come privati</h3>



<p>Per nascondere i contenuti al pubblico decidiamo di impostarli compe privati, questo è possibile farlo semplicemente utilizzando le impostazioni di pubblicazione di WordPress. Cosa succederebbe se il tuo cliente dimenticasse di impostare l&#8217;artcolo come privato prima di pubblicarlo? Per evitare questo tipo di problemi possiamo fare in modo che tutti gli articoli creati all&#8217;interno del nostro custom post type siamo pubblicati come privati di default. Utilizzeremo il filtro <a href="https://codex.wordpress.org/Plugin_API/Filter_Reference/wp_insert_post_data">wp_insert_post_data</a> e per fare questo devi inserire il seguente codice nel file <strong>functions.php</strong> del tuo tema.</p>



<pre title="PHP" class="wp-block-code"><code lang="php" class="language-php">function karibusana_force_type_private($post) {
	if ($post['post_type'] != 'area-riservata' || $post['post_status'] == 'trash')
	return $post;
	$post['post_status'] = 'private';
	return $post;
}
add_filter('wp_insert_post_data', 'karibusana_force_type_private');</code></pre>



<h3 class="wp-block-heading">3. Rendiamo i contenuti privati visibili agli utenti di tipo “Sottoscrittore”</h3>



<p>Come detto precedentemente i contenuti privati di default sono solo visbili agli utenti con il ruolo di editore o amministratore, pertanto dobbiamo aggiungere la capability read_private_posts anche al ruolo sottoscrittore utilizzando la funzione <a href="https://codex.wordpress.org/Function_Reference/add_cap">add_cap</a> e per fare questo devi aggiungere il seguente codice all&#8217;interno del file <strong>functions.php</strong> del tuo tema</p>



<pre title="PHP" class="wp-block-code"><code lang="php" class="language-php">$role = get_role( 'subscriber' );
$role->add_cap( 'read_private_posts' );</code></pre>



<h3 class="wp-block-heading">4. Richiamiamo i custom post type in un template pagina “area riservata”</h3>



<p>Per visualizzare i nostri custom post type andremo a creare un nuovo template per la pagina area riservata, chiamiamo questo nuovo file area-riservata.php e lo inseriamo nella cartella del nostro tema. In questo file andremo ad inserire il loop per mostrare i nostri articoli privati agli utenti connessi e una condizione logica peer mostrare il modulo di login se l&#8217;utente non è connesso. Nel file area-riservata.php dobbiamo inserire il seguente codice, ho ottimizzato il codice per il tema twentytwelve se utilizzate un altro tema dovrete inserire i giusti tag css per ottimizzarne il layout, scrivetemi un commento qualora vi servisse aiuto.</p>



<pre title="PHP" class="wp-block-code"><code lang="php" class="language-php">&lt;?php

/*
Template Name: Area Riservata
*/

get_header();

?>

&lt;div id="primary" class="site-content">
&lt;div id="content" role="main">

&lt;?php

//se l'utente è loggato mostra messaggio di benvenuto e post
if ( is_user_logged_in() ) {

//loop custom post type privati
$wpquery = new WP_Query(array(
	'post_type' => 'area-riservata',
));

while ($wpquery->have_posts()): $wpquery->the_post();

get_template_part( 'content', get_post_format() );

endwhile; ?>

&lt;/div>&lt;!-- #content -->
&lt;/div>&lt;!-- #primary -->

&lt;?php

}else{

$args = array(

	'echo' => true,
	'remember' => false,
	'redirect' => ( is_ssl() ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'],
	'form_id' => 'loginform',
	'id_username' => 'user_login',
	'id_password' => 'user_pass',
	'id_remember' => 'rememberme',
	'id_submit' => 'wp-submit',
	'label_username' => __( '' ),
	'label_password' => __( '' ),
	'label_log_in' => __( 'Log in' ),
	'value_username' => '',
);

wp_login_form( $args );

}

get_sidebar();
get_footer();</code></pre>



<h3 class="wp-block-heading">5. Rimuoviamo la voce &#8220;private&#8221; prima del titolo dell&#8217;articolo</h3>



<p>Di default wordpress mostra la voce &#8220;private&#8221; prima del titolo dell&#8217;articolo, per rimuoverla basta inserire il seguente codice nel file <strong>functions.php</strong> del vostro tema</p>



<pre title="PHP" class="wp-block-code"><code lang="php" class="language-php">function karibusana_remove_private_post_prefix($format) {
return '%s';
}

add_filter( 'private_title_format', 'karibusana_remove_private_post_prefix', 99, 2 );</code></pre>


<p></p>
            </div>
         

        


<h3 class="wp-block-heading">Conclusione</h3>



<p>In questo articolo hai visto come è semplice creare un&#8217;area riservata in WordPress senza utilizzare plugins, nel prossimo articolo ti spiegherò come <a href="https://www.karibusana.org/2020/02/wordpress-come-creare-contenuti-privati-per-utenti/">assegnare degli articoli ad uno specifico utente.</a></p>



<table style="width: 100%; border-collapse: collapse; border-style: none;" cellspacing="20" cellpadding="20" border="0">
<tbody>
<tr style="border-style: none;">
<td style="width: 67.4137%; border-style: none;">Se invece preferisci utilizzare un plugin ne ho sviluppato uno ad hoc, questo plugin ti permette anche di attribuire gli articoli privati a più di un utente e aggiunge anche una sidebar all&#8217;area privata dove poter inserire dei widget specifici per gli utenti che hanno accesso all&#8217;area privata.</td>
<td style="width: 32.5863%; border-style: none; text-align: right; vertical-align: top;">
<p class="has-text-align-center">	<form id="edd_purchase_1308-2" class="edd_download_purchase_form edd_purchase_1308" method="post">

		
		<div class="edd_purchase_submit_wrapper">
			<button class="edd-add-to-cart button blue edd-submit" data-nonce="46d5af0427" data-timestamp="1776624470" data-token="8ed8ec2f982c766a3575d5af4c6de3ae1d126217585ac124c5f36190bb08b02a" data-action="edd_add_to_cart" data-download-id="1308" data-variable-price="no" data-price-mode=single data-price="15.00" ><span class="edd-add-to-cart-label">&euro;15.00&nbsp;&ndash;&nbsp;Acquista il plugin</span> <span class="edd-loading" aria-label="Caricamento"></span></button><input type="submit" class="edd-add-to-cart edd-no-js button blue edd-submit" name="edd_purchase_download" value="&euro;15.00&nbsp;&ndash;&nbsp;Acquista il plugin" data-action="edd_add_to_cart" data-download-id="1308" data-variable-price="no" data-price-mode=single /><a href="https://www.karibusana.org/checkout/" class="edd_go_to_checkout button blue edd-submit" style="display:none;">Checkout</a>
							<span class="edd-cart-ajax-alert" aria-live="assertive">
					<span class="edd-cart-added-alert" style="display: none;">
						<svg class="edd-icon edd-icon-check" xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28" aria-hidden="true">
							<path d="M26.11 8.844c0 .39-.157.78-.44 1.062L12.234 23.344c-.28.28-.672.438-1.062.438s-.78-.156-1.06-.438l-7.782-7.78c-.28-.282-.438-.673-.438-1.063s.156-.78.438-1.06l2.125-2.126c.28-.28.672-.438 1.062-.438s.78.156 1.062.438l4.594 4.61L21.42 5.656c.282-.28.673-.438 1.063-.438s.78.155 1.062.437l2.125 2.125c.28.28.438.672.438 1.062z"/>
						</svg>
						Aggiunto al carrello					</span>
				</span>
															</div><!--end .edd_purchase_submit_wrapper-->

		<input type="hidden" name="download_id" value="1308">
							<input type="hidden" name="edd_action" class="edd_action_input" value="add_to_cart">
		
					<input type="hidden" name="edd_redirect_to_checkout" value="1">
		
		
	</form><!--end #edd_purchase_1308-2-->
	</p>
</td>
</tr>
</tbody>
</table>
]]></content:encoded>
					
					<wfw:commentRss>https://www.karibusana.org/2018/08/come-creare-area-riservata-wordpress-senza-plugins/feed/</wfw:commentRss>
			<slash:comments>14</slash:comments>
		
		
			</item>
		<item>
		<title>GDPR e WordPress la guida definitiva per il tuo sito</title>
		<link>https://www.karibusana.org/2018/04/gdpr-e-wordpress-la-guida-definitiva-per-il-tuo-sito/</link>
					<comments>https://www.karibusana.org/2018/04/gdpr-e-wordpress-la-guida-definitiva-per-il-tuo-sito/#respond</comments>
		
		<dc:creator><![CDATA[Vincenzo Vecchio]]></dc:creator>
		<pubDate>Sat, 28 Apr 2018 13:05:07 +0000</pubDate>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[gdpr wordpress]]></category>
		<guid isPermaLink="false">https://www.karibusana.org/?p=1111</guid>

					<description><![CDATA[GDPR è un acronimo che sta per &#8220;General Data Protection Regulation&#8220;, un nuovo regolamento della Comunità Europea che entrerà in vigore il 25 maggio 2018 e che si applicherà a tutti gli stati membri dell&#8217;Europa con il fine di proteggere i dati personali dei cittadini residenti nell&#8217;unione Europea. Questo significa che gli utenti dovranno essere [&#8230;]]]></description>
										<content:encoded><![CDATA[<div style="text-align: justify;"><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-1115" src="https://www.karibusana.org/wp-content/uploads/2018/04/GDPR-guida-definitiva-1024x452.png" alt="GDPR guida definitiva" width="1024" height="452" srcset="https://www.karibusana.org/wp-content/uploads/2018/04/GDPR-guida-definitiva.png 1024w, https://www.karibusana.org/wp-content/uploads/2018/04/GDPR-guida-definitiva-300x132.png 300w, https://www.karibusana.org/wp-content/uploads/2018/04/GDPR-guida-definitiva-768x339.png 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></div>
<div></div>
<p style="text-align: justify;">GDPR è un acronimo che sta per &#8220;<strong>General Data Protection Regulation</strong>&#8220;, un nuovo regolamento della Comunità Europea che entrerà in vigore il 25 maggio 2018 e che si applicherà a tutti gli stati membri dell&#8217;Europa con il fine di proteggere i dati personali dei cittadini residenti nell&#8217;unione Europea. Questo significa che gli utenti dovranno essere in grado di esprimere un esplicito consenso sul permesso di utilizzare i loro dati e qualora questi vengano archiviati si dovrà specificare come verranno utilizzati e dare la possibilità ai soggetti interessati di avere accesso alle informazioni o richiederne la rimozione. In questo articolo cercherò di riassumere le principali azioni da attuare per <strong>mettere in regola un sito web per il GDPR n.679/2016</strong></p>
<h2 style="text-align: left;">Eseguire un&#8217;analisi del sito per capire che tipologia di dati personali vengono trattati</h2>
<p style="text-align: justify;">La prima cosa da fare è l&#8217;analisi dettagliata del vostro sito web per capire quali informazioni personali vengono archiviate o richieste, di seguito ho riassunto una lista di domande che dovreste porvi prima di iniziare il processo per mettervi in regola con il nuovo GDPR:</p>
<p style="text-align: justify;">1. Per cosa utilizzate i dati personali che trattate?<br />
2. Dove sono archiviate informazioni?<br />
3. Sono questi dati ancora necessari?</p>
<p style="text-align: justify;">Questo significa che qualora utilizziate dein servizi forniti da terzi è opportuno controllare che abbiano aggiornato il loro regolamento sulla privacy degli utenti per assicurarsi che siano in accordo con la nuova normativa europea su trattamento dei dati personali, anche se molte delle compagnie hanno già prvveduto ad aggiornare questi dettagli è comunque bene essere informati.</p>
<h2 style="text-align: left;">Come mettervi in regola per il GDPR?</h2>
<p style="text-align: justify;">1. Richiedere agli utenti il <strong>consenso esplicito</strong> al trattamento dei loro dati<br />
2. Rivedere la <strong>Privacy Policy</strong> presente sul sito<br />
3. Diritto all&#8217;oblio<br />
4. Comunicare violazione dati personali</p>
<h3 id="richiedereilconsensoesplicitoallusodeidati" style="text-align: left;">Richiedi il consenso esplicito all’uso dei dati personali</h3>
<p style="text-align: justify;">Con consenso esplicito si intende la volontà dell&#8217;utente di eseguire una certa azione mediante un atto inequivocabile che manifesti l&#8217;intenzione libera e informata di accettare il trattamento dei dati personali. In alcuni casi il consento può anche essere implicito, purchè non sussista alcun dubbio che con la propria scelta l&#8217;interessato abbia voluto comunicare il proprio consenso. Quanti di voi ad esempio hanno dei moduli di contatto sul proprio sito? In questo caso è necessario ad esmpio inserire una casella di spunta che può essere selezionata dall&#8217;utente prima di inviare la richiesta. Se ad esempio volete integrare l&#8217;iscrizione alla vostra newsletter all&#8217;intenro del modulo contatti allora questa casella non potrà e non dovrà essere spuntata automaticamente ma deve essere lasciata vuota così da dare all&#8217;utente la possibilità di scegliere. La richiesta deve essere quindi chiara, concisa e non interferire emotivamente con il servizio per il quale il consenso è richiesto. é inoltre opportuno che il modulo invii una notifica contenente il fatto che l’utente ha accettato la privacy policy <em>punto 42 Regolamento (UE) 2016/679</em></p>
<p style="text-align: justify;">Il consenso deve essere esplicito (art. 9 GDPR) nel caso del trattamento di dati sensibili o nel caso di processi automatizzati quali alcuni metodi di profilazione. Il titolare del trattamento deve informare gli individui interessati dell&#8217;esistenza di una decisione basata sul trattamento di dati in modo automatizzato, nell&#8217;informativativa devono quindi essere esplicitate le modalità e finalità di profilazione e dovranno essere utilizzati solo i dati strettamente necessari pe rla finalità specificata.</p>
<p style="text-align: justify;">Per consenso libero si intende la possibilità di operare una scelta effettiva senza condizionamenti emotivi o intimidazioni ad esempio nel caso di alcune pubblicità commerciali l&#8217;utenrte deve avere la possibilità di addivenire al contratto senza subire il ricatto di dover ricevere pubblicità commerciale.</p>
<p style="text-align: justify;">Infine il consenso dovrà essere revocabile, questo significa che può non essere specificata la motivazione per la quale la revoca è richiesta, in generale le regole per la revoca del consenso sono le stesse di quelle per la concessione, Ad esmepio è possibile revocare il consenso inviando una comunicazione o tramite un apposito form sul sito. Per revoca si intende il diritto di cancellazione dei dati personali dell&#8217;utente.</p>
<h3 style="text-align: left;">Rivedi la privacy policy del tuo sito web</h3>
<p style="text-align: justify;">La norvativa europea in campo di privacy prvede che il titolare debba fornire ai soggetti interessati, prima del trattamento dei loro dati personali,  un&#8217;informativa finalizzata ad informali così che si possa render eun valido consenso. L&#8217;informativa sulla privacy policy è dovuta qualora un sito web offra la registrazione e creazione di un profilo utente o quando si verificho una raccolta o trattamento di dati sensibili (es indirizzo ip, email, compilazione di moduli) o in tutti i casi di utilizzo di cookie per raccogliere i dati degli utenti, per quanto riguarda la legge sui cookies ti consiglio anche di leggere l&#8217;articolo dal titolo &#8220;<a href="https://www.karibusana.org/2015/06/cookie-law-tutto-quello-che-devi-sapere/">Cookie Law: tutto quello che devi sapere</a>&#8221; . Se il sito permette la registrazione degli utenti ma i dati vengono usati solo per fini del sito stesso (mailinglist) e non per l&#8217;invio di proposte commerciali allora occore solo mostrare l&#8217;informativa della privacy (da linkare all&#8217;interno del modulo di registrazione, per consentirne la consulatazione) ma non occorre la raccolta del consenso.</p>
<h4 style="text-align: left;">Come redigere una buona privacy policy</h4>
<p style="text-align: justify;">Il testo dell&#8217;informativa sulla privacy deve avere un contenuto affine con gli articoli 13 e 14 del <a href="http://eur-lex.europa.eu/legal-content/IT/TXT/PDF/?uri=CELEX:32016R0679&amp;from=IT" rel="nofollow">regolamento europeo</a> e pertanto specificare le finalità e modalità su come verranno trattati i dati e dividere questi per categorie. Il testo deve essere chiaro e conciso, facilemte accessibile e leggibile eventualemte utilizzando anche immagini ed icone (queste ultime non sono necessariamente richieste ma qualora presenti dovranno conformarsi alle direttive euorpee che verranno specificate nei provvedimenti futuri). Di seguito le principali caratteristiche che una buona privacy policy deve avere:</p>
<p style="text-align: justify;"><img loading="lazy" decoding="async" class="size-large wp-image-1114 alignright" src="https://www.karibusana.org/wp-content/uploads/2018/04/infografica-GDPR-regolamento-europeo-505x1024.jpg" alt="infografica-GDPR-regolamento-europeo" width="505" height="1024" srcset="https://www.karibusana.org/wp-content/uploads/2018/04/infografica-GDPR-regolamento-europeo-505x1024.jpg 505w, https://www.karibusana.org/wp-content/uploads/2018/04/infografica-GDPR-regolamento-europeo-148x300.jpg 148w, https://www.karibusana.org/wp-content/uploads/2018/04/infografica-GDPR-regolamento-europeo-768x1558.jpg 768w, https://www.karibusana.org/wp-content/uploads/2018/04/infografica-GDPR-regolamento-europeo.jpg 1240w" sizes="auto, (max-width: 505px) 100vw, 505px" /></p>
<p style="text-align: justify;">1. Specificare i dati del responsabile del trattamento dei dai personali (nome cognome, indirizzo, contatti etc)<br />
2. Specificare a quale fine vengono utilizzati quesrti dati<br />
3. Specificare se i dati sensibili vengono cancellati dopo un determinato periodo di tempo<br />
4. Specificare come i soggetti interessati possono rettificare o modificare i propri dati personali<br />
5. Specificare se questi dati vengono ceduti a terzi o per attività finalizzate al marketing<br />
6. Specificare il diritto all&#8217;oblio e cioè la possibilità per gli utenti di richiedere la cancellazione dei propri dati personali<br />
7. Se vengono raccolti dati di minori di 16 è necessario il consenso dei genitori</p>
<p style="text-align: justify;">La scrittura di una privacy policy di sicuro è un&#8217;operazione delicata e che richiede tempo anche perchè non esista un modello uguale per utti i siti ma deve essere costruita e personalizzata sulle caratteristiche specifiche del sito stesso, per fortuna però qualcuno ha pensato ad un approccio che permette una gestione facile e semplificata della rpivacy policy, sto parlando di <a href="http://www.iubenda.com" rel="nofollow">Iubenda.</a> e che utilizzo da tempo anche sul questo blog. Grazie a Iubenda potrai generare una privacy policy e cookie policy in pochissimi passaggi e utilizzando una grafica di elaborazione facile ed intuitiva. Se ad esempio il tuo sito internet utilizza Google Analytics per monitorare le visite, basterà aggiungere il servizio &#8220;Google Analytics&#8221; tramite un semplice pulsante. Alla fine del processo riceverai un link che rimanderà alla privacy policy e che potrai implementare nel footer delle tue pagine. La privacy policy verrà ospitata direttamente sul sito di Iubenda e potrai modificarla e aggiornala in qualsiasi momento.</p>
<h2 style="text-align: left;">Garantire il diritto all&#8217;oblio</h2>
<p style="text-align: justify;">Come abbiamo descritto sopra e anche all&#8217;<a href="http://eur-lex.europa.eu/legal-content/IT/TXT/PDF/?uri=CELEX:32016R0679&amp;from=IT" rel="nofollow">articolo 65 del regolamento europeo</a>, nella vostra Privacy Policy dovete anche aggiungere il diritto di cancellazione (impropriamente definito come diritto all&#8217;oblio). Questo signifa che il titolare del trattamento dei dati nei casi in cui gli viene chiesto è obbligato a procedere alla cancellazione di tutti i dati sensibili.</p>
<h2 style="text-align: left;">Comunicazione della violazioni dei dati personali (Data Breach)</h2>
<p style="text-align: justify;">Il responsabile o titolare del trattamento dei dati personali è tenuto a comunicare entro 72 ore una violazione dei dati, questo sisgnifica che se il vostro sito è stato vittima di un attacco informatico e questo ha portato ad un furto o perdita di informazioni sensibili allora dovrai comunicarlo alle autorità competenti in quanto questo potrebbe comportare un rishio alla libertà dei tuoi clienti o utenti. Di conseguenza questo comporta la necessità di avere una copia di backup dei dati in quanto dovrete essere in grado di comunicare il furto anche ai diretti interessati. Pwer maggiori informazioni puoi consultare gli articoli <a href="http://eur-lex.europa.eu/legal-content/IT/TXT/PDF/?uri=CELEX:32016R0679&amp;from=IT" rel="nofollow">32-34 del regolamento europeo</a></p>
<h2 style="text-align: left;">Come rendere WordPress compatibile con il GDPR?</h2>
<p style="text-align: justify;">WordPress è di sicuro il sistema più diffuso per la creazione di blog e siti internet, pertanto è lecito chiedersi come questo nuovo regolamento possa avere impatto sui plugin utilizzati da WordPress, dobbiamo infatti tenere in considerazione che numerosi plugin archiviano dati sensibili e alcuni tengono traccia delle informazioni personali, basti pensare a plugins come woocommerce per la creazione di e-commerce ma anche quelli per la creazione di moduli di contatto e tanti altri.</p>
<p style="text-align: justify;">Il tema di sviluppo di WordPress è già a lavoro per cercare di implementare gli asapetti fondamentale del nuovo regolamento direttamete nel core del CMS, ancora tuttavia è tutto in fase di sviluppo e cercercherò di aggiornare questo post con le ultime novità. Nel frattempo però qualcuno ha creato un plugin gratuito che permette lavore su alcune cose, ad esempio vi da la possibilità di creare una pagina dalla quale i soggetti interessati potranno richedere informazioni sulle modalità di trattamento dei loro dati ma anche la possibilità di inserire la chiesta di consenso all&#8217;interno del sistema di commenti di WordPress. Per ulteriori informazioni sul plugin potete visistare la <a href="https://wordpress.org/plugins/wp-gdpr-core/" rel="nofollow">seguente pagina</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.karibusana.org/2018/04/gdpr-e-wordpress-la-guida-definitiva-per-il-tuo-sito/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Come ottimizzare i CSS per avere 100/100 su Google PageSpeed</title>
		<link>https://www.karibusana.org/2018/03/ottimizza-css-google-pagespeed/</link>
					<comments>https://www.karibusana.org/2018/03/ottimizza-css-google-pagespeed/#respond</comments>
		
		<dc:creator><![CDATA[Vincenzo Vecchio]]></dc:creator>
		<pubDate>Wed, 21 Mar 2018 09:56:06 +0000</pubDate>
				<category><![CDATA[SEO]]></category>
		<category><![CDATA[velocizzare pagine internet]]></category>
		<guid isPermaLink="false">https://www.karibusana.org/?p=1075</guid>

					<description><![CDATA[Introduzione al problema CSS che bloccano la visualizzazione nei contenuti above-the-fold Chiunque abbia utilizzato PageSpeed Insight almeno una volta si è trovato davanti al frustrante messaggio di errore &#8220;Elimina Javascript e CSS che bloccano la visualizzazione nei contenuti above-the-fold&#8221; prima di iniziare con i dettagli tecnici vorrei spiegare perchè questo accade e perchè è importante [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-1088" src="https://www.karibusana.org/wp-content/uploads/2018/03/velocizzare-sito-internet.png" alt="velocizzare-sito-internet" width="1024" height="579" srcset="https://www.karibusana.org/wp-content/uploads/2018/03/velocizzare-sito-internet.png 1024w, https://www.karibusana.org/wp-content/uploads/2018/03/velocizzare-sito-internet-300x170.png 300w, https://www.karibusana.org/wp-content/uploads/2018/03/velocizzare-sito-internet-768x434.png 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></p>
<h2>Introduzione al problema CSS che bloccano la visualizzazione nei contenuti above-the-fold</h2>
<p style="text-align: justify;">Chiunque abbia utilizzato PageSpeed Insight almeno una volta si è trovato davanti al frustrante messaggio di errore <strong>&#8220;Elimina Javascript e CSS che bloccano la visualizzazione nei contenuti above-the-fold&#8221;</strong> prima di iniziare con i dettagli tecnici vorrei spiegare perchè questo accade e perchè è importante risolvere questo problema.</p>
<p style="text-align: justify;">La velocità di caricamento di un sito internet è uno dei fattori più importanti per attrarre nuovi visitatori ed è anche considerato un importante fattore di ranking per l&#8217;indicizzazione sui motori di ricerca. Uno studio condotto da <a href="https://blog.kissmetrics.com/loading-time/" rel="nofollow">Akamai</a> dimostra come circa la metà degli utenti si aspetti che un sito internet venga caricato in 2 secondi o meno e in generale altrimenti abbandonano la pagina rivolgendo le proprie ricerche altrove. Questo significa che non solo rischi di perdere visitatori ma anche potenziali conversioni di vendita dei tuoi prodotti. Pertanto se vuoi competere per le migliori posizioni nella serp di Google ti consiglio di leggere questa guida.</p>
<h3 style="text-align: justify;">Perchè gli stili css bloccano il rendering della pagina?</h3>
<p style="text-align: justify;">Per costruire la struttura di una pagina web, il browser esegue numerose operazioni in seguenza. Questo significa che la pagina viene caricata solo quando tutte le informazioni, compresi gli stili css sono stati scaricati ed elabrati correttamente. In particolare per caricare i fogli di stile esterni è necessario che vengano eseguite numerose comunicazioni tra il server ed il browser stesso causando ritardi nel render della pagina.</p>
<p style="text-align: justify;">Quanti di voi non hanno inserito il link ai file CSS nella sezione <em>&lt;head&gt;</em> della pagina HTML utilizzando il codice <em>&lt;link rel=&#8221;stylesheet&#8221; href=&#8221;mycssfile.css&#8221;&gt; </em>? Questo significa che il contenuto <strong>&#8220;above the fold&#8221;</strong> cioè la prima porzione di pagina che viene visualizzata dai vostri utenti non verrà mostrata fino a quando il browser non avrà elaborato tutti i vostri stili CSS.</p>
<p style="text-align: justify;">Se andiamo ad interpellare le linee guida di Google, il suggerimento è quello di eseguire il caricamento del file CSS e javasscript in manienra asincrona, questo significa che questi vengono caricati in parallelo al codice HTML velocizzando di gran lunga il rendering strutturale della pagina. Se questo è facilemente realizzabile per i files javascript semplicemente utilizzando il comando <em>async</em> in questo modo &lt;script src=&#8221;myjsfile.js&#8221; async&lt;/script&gt; vi chiederete invece come possa essere possibile farlo con i fogli di stile CSS dal momento che non è possibile utilizzare <em>async</em> all&#8217;interno del codice <em>&lt;link rel=&#8221;stylesheet&#8221; href=&#8221;mycssfile.css&#8221;&gt;</em></p>
<h3 style="text-align: justify;">Come caricare gli stili CSS in modo asincrono?</h3>
<p style="text-align: justify;">Di certo esistono numerose soluzioni tuttavia quella che io preferisco perchè un approccio più moderno  è l&#8217;utilizzo di <em>rel=&#8221;preload&#8221;</em> questo informa il browser che una determinata risorsa è necessaria come parte della navigazione corrente e che dovrebbe essere recuperata il prima possibile. In questo modo i files CSS vengono pre-caricaricati per poi essere utilizzati in un secondo momento per il rendering della stessa pagina HTML. L&#8217;unico problema è che, per il momento, questo formato è solo supportato dal browser Google Chrome anche se in futuro dovrebbe essere anche implementato su Firefox e Safari. Per controllare la compatibilità con il browser puoi utilizzare il sito <a href="https://caniuse.com/#search=preload" rel="nofollow">caniuse.com</a> e per ovviare a questo ostacolo possiamo utilizzare una funzione javascript sviluppata da <a href="https://github.com/filamentgroup/loadCSS" rel="nofollow">Filamentgroup</a> e chiamata LoadCSS.</p>
<h3 style="text-align: justify;">Risolvere il problema di compatibilità utilizzando LoadCSS</h3>
<p style="text-align: justify;">Il plugin javascript LoadCSS permette di utilizzare la tecnologia HTTP/2 Server Push la quale permette di inviare all&#8217;utente i dati strutturali della pagina anche se il browser non li chiesti espicitamente permettendo in questo modo di velocizzare enormement eil caricamento dell pagine. Ma come implementare questo plugin nelle vostre pagine? Basta utilizzare una combinazione dell&#8217;attributo preload e un po&#8217; di javascript tramite il plugin LoadCSS come di seguito</p>
<p>Inserisci il seguente codice nella sezione <em>&lt;head&gt;</em> sostituendo l&#8217;url del file CSS d&#8217;esempio con</p>
<p>&lt;link rel=&#8221;preload&#8221; href=&#8221;path/to/mystylesheet.css&#8221; as=&#8221;style&#8221; onload=&#8221;this.rel=&#8217;stylesheet'&#8221;&gt;<br />
&lt;noscript&gt;&lt;link rel=&#8221;stylesheet&#8221; href=&#8221;path/to/mystylesheet.css&#8221;&gt;&lt;/noscript&gt;</p>
<p>Come potete notare l&#8217;utilizzo di &lt;noscript&gt; permette di continuare a caricare il file CSS anche qualora il browser dell&#8217;utente non supporti javascript permettendo in questo modo di eseguire correttamente il rendering della pagina nella maniera tradizionale.</p>
<p>Successivamente dovrete inserire il rispettivo codice javascript che trovate qui <a href="https://github.com/filamentgroup/loadCSS/blob/master/src/cssrelpreload.js">LoadCSS rel=preload polyfil</a> all&#8217;interno del tag <em>&lt;script&gt;</em> il codice finale quindi sarà</p>
<p>&lt;<span class="pl-ent">link</span> <span class="pl-e">rel</span>=<span class="pl-s"><span class="pl-pds">&#8220;</span>preload<span class="pl-pds">&#8220;</span></span> <span class="pl-e">href</span>=<span class="pl-s"><span class="pl-pds">&#8220;</span>path/to/mystylesheet.css<span class="pl-pds">&#8220;</span></span> <span class="pl-e">as</span>=<span class="pl-s"><span class="pl-pds">&#8220;</span>style<span class="pl-pds">&#8220;</span></span> <span class="pl-e">onload</span>=<span class="pl-s"><span class="pl-pds">&#8220;</span>this.onload=null;this.rel=&#8217;stylesheet&#8217;<span class="pl-pds">&#8220;</span></span>&gt;<br />
&lt;<span class="pl-ent">noscript</span>&gt;&lt;<span class="pl-ent">link</span> <span class="pl-e">rel</span>=<span class="pl-s"><span class="pl-pds">&#8220;</span>stylesheet<span class="pl-pds">&#8220;</span></span> <span class="pl-e">href</span>=<span class="pl-s"><span class="pl-pds">&#8220;</span>path/to/mystylesheet.css<span class="pl-pds">&#8220;</span></span>&gt;&lt;/<span class="pl-ent">noscript</span>&gt;<br />
&lt;<span class="pl-ent">script</span>&gt;<br />
<span class="pl-s1"><span class="pl-c">/*! loadCSS rel=preload polyfill. </span></span><br />
<span class="pl-s1">(<span class="pl-k">function</span>(){ <span class="pl-k">&#8230;</span> }());</span><br />
<span class="pl-s1">&lt;</span>/<span class="pl-ent">script</span>&gt;<code></code></p>
<h3 style="text-align: justify;">Conclusioni</h3>
<p style="text-align: justify;">La modalità in cui il browser scarica gli stili CSS è la cause del rallentamento del rendering delle pagine web, questo in particolare potrebbe essere un problema per gli utenti che hanno una connessione internet più lenta come quelli che si collegano da smartphone. In questo articolo ho illustrato una delle tante possibili soluzioni, voi cosa ne pensate? SAvete avuto modo di lavorare su questo problema e come lo avete risolto? Non esitate a commentare</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.karibusana.org/2018/03/ottimizza-css-google-pagespeed/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Integrare Gravity Forms con MyCred</title>
		<link>https://www.karibusana.org/2017/10/integrare-gravity-forms-con-mycred/</link>
					<comments>https://www.karibusana.org/2017/10/integrare-gravity-forms-con-mycred/#respond</comments>
		
		<dc:creator><![CDATA[Vincenzo Vecchio]]></dc:creator>
		<pubDate>Wed, 18 Oct 2017 11:29:02 +0000</pubDate>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[gravity forms]]></category>
		<category><![CDATA[mycred]]></category>
		<category><![CDATA[personalizza mycred]]></category>
		<guid isPermaLink="false">https://www.karibusana.org/?p=1027</guid>

					<description><![CDATA[Mi è stato chiesto da un lettore se esistesse un metodo per poter integrare il plugin MyCred, il quale permette di creare un sistema di crediti per gli utenti, con un Gravity Forms, il famoso plugin per la creazione di moduli di contatto. Il plugin MyCred offre già la possibilità di integrare Gravity Forms utilizzando [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-1035" src="https://www.karibusana.org/wp-content/uploads/2017/10/gravity-forms-and-mycred.png" alt="integrare gravity forms con mycred" width="1024" height="549" srcset="https://www.karibusana.org/wp-content/uploads/2017/10/gravity-forms-and-mycred.png 1024w, https://www.karibusana.org/wp-content/uploads/2017/10/gravity-forms-and-mycred-300x161.png 300w, https://www.karibusana.org/wp-content/uploads/2017/10/gravity-forms-and-mycred-768x412.png 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></p>
<p style="text-align: justify;">Mi è stato chiesto da un lettore se esistesse un metodo per poter integrare il plugin <a href="https://mycred.me" target="_blank" rel="noopener">MyCred</a>, il quale permette di creare un sistema di crediti per gli utenti, con un <a href="https://www.gravityforms.com">Gravity Forms</a>, il famoso plugin per la creazione di moduli di contatto.</p>
<p style="text-align: justify;">Il plugin MyCred offre già la possibilità di integrare Gravity Forms utilizzando l&#8217;hook <strong>gform_after_submission</strong> il quale permette di eseguire delle azioni non appena il form è stato inviato, tuttavia l&#8217;hook di base fornito dal plugin MyCred permette solo di lavorare con un unico valore impostato precedentemente dall&#8217;amministratore di WordPress.</p>
<p style="text-align: justify;">La domanda invece era: &#8220;<strong>vorrei creare un form con delle caselle di selezione a cui attribuire un valore in crediti che dovranno essere scalati dal portafoglio crediti dell&#8217;utente</strong>&#8221; allora come fare? Segui la guida in semplici passaggi</p>
<p style="text-align: justify;">Crea il nuovo form e inserisci un nuovo campo checkbox, quindi per ogni opzione devi specificarne il valore (questo sarà poi il numero di crediti che verrà rimosso o aggiunto) non appena il form sarà inviato.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-1031" src="https://www.karibusana.org/wp-content/uploads/2017/10/gravity-forms-checkbox-1.png" alt="" width="448" height="170" srcset="https://www.karibusana.org/wp-content/uploads/2017/10/gravity-forms-checkbox-1.png 448w, https://www.karibusana.org/wp-content/uploads/2017/10/gravity-forms-checkbox-1-300x114.png 300w" sizes="auto, (max-width: 448px) 100vw, 448px" /></p>
<p>Inserisci un nuovo campo di testo e imposta la visibilità su nascosto</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-1032" src="https://www.karibusana.org/wp-content/uploads/2017/10/gravity-fomrs-hidden-field.png" alt="gravity forms campo nascosto" width="465" height="156" srcset="https://www.karibusana.org/wp-content/uploads/2017/10/gravity-fomrs-hidden-field.png 465w, https://www.karibusana.org/wp-content/uploads/2017/10/gravity-fomrs-hidden-field-300x101.png 300w" sizes="auto, (max-width: 465px) 100vw, 465px" /></p>
<p style="text-align: justify;">Inserisci un nuovo campo HTML e incolla il seguente codice javascript, questo permetterà di passare il valore selezionato nel campo checkbox all&#8217;interno del campo di testo nascosto. Fai attenzione ad inserire i valori corretti per i rispettivi ID del campo checkbox e del campo di testo nascosto come specificato nei commenti che trovi nel codice.</p>
<p style="text-align: justify;"><strong>Nota Bene</strong>: di solito il valore dell&#8217;id del campo è <strong>input_idform_idcampo </strong>altrimenti puoi ispezionare il codice HTML della tua pagina utilizzando lo strumento di analisi del codice che trovi su Google Chrome.</p>
<p>           
            <div class="onp-locker-call" style="display: none;" data-lock-id="onpLock391001">
                <p></p>
<pre>
&lt;script&gt;

var checkboxHandler = {

//Modifica gli ID a seconda di quelli del tuo form
 checkboxFieldId: 'input_1_25',  //ID del campo checkbox
 outputFieldId: 'input_1_23',  //ID del campo di testo nascosto

 checkboxField: null,
 outputField: null,

init: function() {

      this.outputField = document.getElementById(this.outputFieldId);
      if (typeof this.outputField === 'undefined' || !this.outputField) {
         console.error('Missing output field ' + this.outputFieldId);
         return;
      }

      this.checkboxField = document.getElementById(this.checkboxFieldId);
      if (typeof this.checkboxField === 'undefined' || !this.checkboxField) {
         console.error('Missing checkbox field ' + this.checkboxFieldId);
         return;
      }

     jQuery(this.checkboxField).on(
            'change',
            'input[type=checkbox]', {
                  checkbox: this.checkboxField,
                  output: this.outputField
             },
            this.setValues
     );
 },

setValues: function(ev) {

 var fields = ev.data;
 var valueString = '';

   jQuery(fields.checkbox).find('input:checked').each(function(i) {
         valueString += this.value + ', ';
   });

 fields.output.value = valueString.replace(/, $/, '');
}
};

jQuery().ready(checkboxHandler.init());
&lt;/script&gt;
</pre>
<p></p>
            </div>
         

        <br />
Fatto questo dobbiamo fare un modo che il valore del campo nascosto venga processato da MyCred. Basta inserire il seguente codice php all&#8217;interno del tuo file functions.php facendo le dovute modifiche come descritto nei commenti all&#8217;interno del codice</p>
<p>           
            <div class="onp-locker-call" style="display: none;" data-lock-id="onpLock270371">
                <p></p>
<pre>function update_balance_form3( $entry, $form ) {

        // Modifica il numero 2 con l'id del campo nascosto
        $orderID = rgar( $entry, '2' );
        $user_id = get_current_user_id();

            // Sostituisci mycred_subtract con mycred_add se vuoi aggiungere i crediti
            if ( function_exists( 'mycred_subtract' ) ) {
                mycred_subtract(
                    'Riduzione punti per invio form',
                    $user_id,
                    $orderID,
                    'Rimozione punti: ' . $orderID
                );
            }
    }

// Modifca il numero 1 di gform_after_submission_1 con l'id del form in questione
add_action( 'gform_after_submission_1', 'update_balance_form3', 10, 2 );</pre>
<p></p>
            </div>
         

        </p>
<p>Ti serve aiuto per integrare MyCred con Gravity Forms? Inviami una email per una consulenza privata.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.karibusana.org/2017/10/integrare-gravity-forms-con-mycred/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Infinite WP: come gestire tutti i siti WordPress da un&#8217;unica interfaccia</title>
		<link>https://www.karibusana.org/2016/08/infinite-wp-come-gestire-tutti-i-siti-wordpress-da-ununica-interfaccia/</link>
					<comments>https://www.karibusana.org/2016/08/infinite-wp-come-gestire-tutti-i-siti-wordpress-da-ununica-interfaccia/#comments</comments>
		
		<dc:creator><![CDATA[Vincenzo Vecchio]]></dc:creator>
		<pubDate>Wed, 17 Aug 2016 18:29:17 +0000</pubDate>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[gestire più siti in wordpress]]></category>
		<category><![CDATA[infintewp]]></category>
		<guid isPermaLink="false">https://www.karibusana.org/?p=917</guid>

					<description><![CDATA[Se anche tu come me gestisti più progetti in WordPress sai bene quanto tempo è necessario per amministrare e mantenere questi siti internet costantemente aggiornati. Ecco perché ho pensato di presentarti InfiniteWP, un sistema centralizzato che ti permette di gestire da un’unica applicazione web tutte le installazioni WordPress! Pensa a quante volte hai dimenticato la [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="https://www.karibusana.org/wp-content/uploads/2016/08/infinitewp.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-928 size-large" src="https://www.karibusana.org/wp-content/uploads/2016/08/infinitewp-1024x549.png" alt="infinitewp" width="1024" height="549" srcset="https://www.karibusana.org/wp-content/uploads/2016/08/infinitewp-1024x549.png 1024w, https://www.karibusana.org/wp-content/uploads/2016/08/infinitewp-300x161.png 300w, https://www.karibusana.org/wp-content/uploads/2016/08/infinitewp-768x412.png 768w, https://www.karibusana.org/wp-content/uploads/2016/08/infinitewp.png 1026w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></p>
<p style="text-align: justify;">Se anche tu come me gestisti più progetti in WordPress sai bene quanto tempo è necessario per amministrare e mantenere questi siti internet costantemente aggiornati.</p>
<blockquote><p>Ecco perché ho pensato di presentarti <a href="http://bit.ly/2aVOILD"><b>InfiniteWP</b></a>, un sistema centralizzato che ti permette di gestire da un’unica applicazione web tutte le installazioni WordPress!</p></blockquote>
<p style="text-align: justify;">Pensa a quante volte hai dimenticato la password per accedere ad uno dei tanti pannelli di controllo, a tutte le ore spese per la manutenzione e l’aggiornamento di plugins e temi, ma anche alla gestione dei backup periodici di files e database.</p>
<p style="text-align: justify;">Se infatti l’installazione di WordPress è molto semplice e veloce la gestione di quest’ultimo ti fa perdere tempo prezioso che invece potresti investire nella realizzazione di nuovi progetti.</p>
<p style="text-align: justify;"><strong>Utilizzo <a href="http://bit.ly/2aVOILD">InfiniteWP</a> da molto tempo e ormai non posso più farne a meno</strong>. In questo articolo ti spiegherò come sfruttarne le sue potenzialità nella speranza che anche tu come me possa risparmiare tempo prezioso.</p>
<h2 style="text-align: justify;">Cos’è InfiniteWP</h2>
<p style="text-align: justify;">Esistono diverse soluzioni che ti permettono di gestire più installazioni di WordPress da un unico pannello di controllo. Ma allora perché ti parlo solo di InfiniteWP? Perché è un’applicazione gratuita che una volta installata sul tuo server ti permette di gestire più una installazione di WordPress da un singolo pannello di gestione. <strong>Potrai facilmente creare backups, aggiornare plugins e temi ma anche scrivere articoli, leggere commenti e saltare da un sito all’altro con un semplice click. </strong></p>
<p style="text-align: justify;">Inoltre l’installazione estremamente semplice e i numerosi add-on ti permetteranno di personalizzarne le funzionalità e di sfruttare al massimo questo strumento a seconda delle tue esigenze.</p>
<h3 style="text-align: justify;">Un unico pannello di controllo per la gestione di WordPress</h3>
<p style="text-align: justify;">Personalmente ho deciso di utilizzare <a href="http://bit.ly/2aVOILD">InfiniteWP</a> perché dopo aver letto diverse recensioni e testato diverse soluzioni, questo è ormai diventato uno strumento indispensabile nella gestione e manutenzione di tutti i miei progetti. Ho scelto InfiniteWP non solo per la sua semplicità ma anche perché già nella versione gratuita offre numerose funzionalità e sono io a scegliere quando e come potenziarlo con l’utilizzo di una o più estensioni a pagamento.</p>
<p style="text-align: justify;">Inoltre la possibilità di installarlo sul mio server oppure in locale mi permette di non dipendere da terzi, e di non dover pagare stupidi costi mensili di manutenzione. Se pensi che questo possa rappresentare un rischio devi sapere che lo sviluppatore ha pensato bene di mettere a tua disposizione degli ottimi strumenti di sicurezza:</p>
<ol style="text-align: justify;">
<li><strong>Restrizione IP:</strong> ti permette di proteggere il login garantendo accesso solo ad uno specifico indirizzo IP.</li>
<li><strong>Htaccess:</strong> puoi attivare la protezione con .htaccess di Apache</li>
<li><strong>Autenticazione a due fattori</strong>: gratuitamente puoi utilizzare la tua email per ricevere una nuova password ogni volta che esegui il login.</li>
<li><strong>HTTPS:</strong> puoi attivare il protocollo https per la connessione sicura.</li>
</ol>
<h3 style="text-align: justify;">InfiniteWP sotto il cappello</h3>
<p style="text-align: justify;">Ho creato un video che ti spiega come installare Infinite WP. Prima però ti suggerisco di leggere in dettaglio quali sono le funzionalità offerte da questa fantastica applicazione.</p>
<h4 style="text-align: justify;"><b>Aggiornamenti di WordPress centralizzati</b></h4>
<p style="text-align: justify;">Infinite WP ti offre la possibilità di avere un quadro completo di tutti i plugin e temi installati nei diversi siti realizzati in WordPress. Il software infatti ti invia delle notifiche ogni volta che viene rilasciata una una nuova versione di WordPress o di uno dei plugins che hai installato nei tuoi siti. In questo modo in un colpo solo potrai eseguire tutti gli aggiornamenti comodamente dal pannello di controllo di Infinite WP.</p>
<p style="text-align: justify;"><strong>Favoloso vero?</strong> Si, ma fai attenzione se hai modificato il core di wordpress, di un plugin o di un tema, questa operazione potrebbe compromettere tutto. Se sei un po’ pratico di WordPress sai bene che non dovresti mai modificare questi file, piuttosto utilizza i <a href="https://www.karibusana.org/2014/01/creare-child-theme-in-wordpress/">child themes</a> o gli hook all’interno del file functions.php</p>
<p><a href="https://infinitewp.com/?ref=227"><img loading="lazy" decoding="async" class="aligncenter wp-image-929 size-full" src="https://www.karibusana.org/wp-content/uploads/2016/08/infinitewp-update-plugins.png" alt="gestisci wordpress con infinitewp" width="700" height="360" srcset="https://www.karibusana.org/wp-content/uploads/2016/08/infinitewp-update-plugins.png 700w, https://www.karibusana.org/wp-content/uploads/2016/08/infinitewp-update-plugins-300x154.png 300w" sizes="auto, (max-width: 700px) 100vw, 700px" /></a></p>
<h4 style="text-align: justify;"><b>Esegui backup con un semplice click</b></h4>
<p style="text-align: justify;">Un’altra funzione che trovi nella versione gratuita è la possibilità di eseguire il backup dei files e del database di WordPress. Basta selezionare la voce backup per fare il backup di tutte le installazioni di WordPress archiviate su Infinite WP.</p>
<p style="text-align: justify;"><strong>E se devi ripristinare un backup? Semplicissimo Infinite WP ti offre anche questa possibilità!!</strong></p>
<p style="text-align: justify;">L’unico aspetto negativo è che nella versione gratuita puoi solo creare i backup manualmente, qualora volessi automatizzare il processo allora ti consiglio di acquistare l’estensione “<a href="http://bit.ly/2b1tHh3">Schedule Backup</a>” di sicuro uno dei migliori investimenti che abbia mai fatto!! E così mentre sei in vacanza o ti riposi hai sempre la situazione sotto controllo, ottimo no?!</p>
<p style="text-align: justify;">I backup vengono normalmente archiviati all’interno del server, pertanto assicurati di avere abbastanza spazio, qualora però volessi utilizzare un servizio di archiviazione esterno come Dropbox, Google Driver o Amazon allora puoi considerare di acquistare l’add-on “<a href="http://bit.ly/2bnfwVu">Cloud Backup</a>”</p>
<p style="text-align: center;"><iframe loading="lazy" src="https://www.youtube-nocookie.com/embed/IbvABsrKpwU" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<h2 style="text-align: justify;">Conclusioni</h2>
<p style="text-align: justify;">Spero che questo articolo posso servirti a risparmiare tempo e risorse da dedicare alla crescita del tuo business o ad altri entusiasmati progetti. Credo che Infinite WP nella sua semplicità e intuitività rappresenti una valida soluzione economica per l’amministrazione e manutenzione quotidiana di più siti realizzati in WordPress.</p>
<p style="text-align: justify;">Come ti ho già detto io lo uso da molto tempo e tu cosa ne pensi? Ti invito a commentare questo articolo e magari condividerlo sui social per essere d’aiuto a tanti altri amici.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.karibusana.org/2016/08/infinite-wp-come-gestire-tutti-i-siti-wordpress-da-ununica-interfaccia/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
		<item>
		<title>Il Direct E-mail Marketing diventa alla portata di tutti grazie a OpenDEM</title>
		<link>https://www.karibusana.org/2016/05/direct-e-mail-marketing-alla-portata-di-tutti-con-opendem/</link>
					<comments>https://www.karibusana.org/2016/05/direct-e-mail-marketing-alla-portata-di-tutti-con-opendem/#respond</comments>
		
		<dc:creator><![CDATA[Vincenzo Vecchio]]></dc:creator>
		<pubDate>Wed, 25 May 2016 10:07:28 +0000</pubDate>
				<category><![CDATA[Marketing]]></category>
		<category><![CDATA[direct email marketing]]></category>
		<category><![CDATA[email marketing]]></category>
		<guid isPermaLink="false">https://www.karibusana.org/?p=909</guid>

					<description><![CDATA[Forse anche tu avrai sentito parlare del DEM, la sigla utilizzata per indicare il Direct E-mail Marketing, una particolare strategia di promozione attraverso il web, basata sull&#8217;invio di e-mail o, per meglio dire, di newsletter. In una sorta di evoluzione digitale dei vecchi volantini pubblicitari consegnati nella nostra buca delle lettere, le newsletter rappresentano dei [&#8230;]]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;"><a href="https://www.karibusana.org/wp-content/uploads/2016/05/strategia-email-marketing.png"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-911" src="https://www.karibusana.org/wp-content/uploads/2016/05/strategia-email-marketing.png" alt="strategia-email-marketing" width="700" height="400" srcset="https://www.karibusana.org/wp-content/uploads/2016/05/strategia-email-marketing.png 700w, https://www.karibusana.org/wp-content/uploads/2016/05/strategia-email-marketing-300x171.png 300w, https://www.karibusana.org/wp-content/uploads/2016/05/strategia-email-marketing-332x190.png 332w" sizes="auto, (max-width: 700px) 100vw, 700px" /></a></p>
<p style="text-align: justify;">Forse anche tu avrai sentito parlare del DEM, la sigla utilizzata per indicare il <strong>Direct E-mail Marketing</strong>, una particolare strategia di promozione attraverso il web, basata sull&#8217;invio di e-mail o, per meglio dire, di newsletter.<br />
In una sorta di evoluzione digitale dei vecchi volantini pubblicitari consegnati nella nostra buca delle lettere, le newsletter rappresentano dei bollettini spediti attraverso la posta elettronica che, in tempi molto rapidi e con un dispendio di risorse molto contenuto, raggiungono il giusto destinatario.</p>
<p style="text-align: justify;">In questo articolo, vogliamo analizzare le principali caratteristiche del Direct E-mail Marketing e capire come questo particolare canale di comunicazione possa rivelarsi utile per qualunque tipo di impresa. Inoltre, dedicheremo la nostra attenzione a OpenDEM, un servizio online molto pratico ed efficace, grazie al quale chiunque di noi può creare e spedire newsletter in totale autonomia.</p>
<h2 style="text-align: justify;">Le caratteristiche del DEM</h2>
<p style="text-align: justify;">Come già accennato, le caratteristiche che fanno delle newsletter uno strumento tanto utile per promuovere la nostra attività commerciale o un nuovo progetto intrapreso, sono la possibilità di contattare in modo molto diretto i nostri potenziali clienti e il costo assolutamente accessibile di questo tipo di campagne promozionali.</p>
<p style="text-align: justify;">In effetti, lo scopo del DEM è duplice: da una parte fidelizzare i clienti già acquisiti, attraverso l&#8217;invio di notizie, offerte promozionali e proposte studiate ad hoc, dall&#8217;altra spingere nuovi utenti a interessarsi ai prodotti da noi venduti o ai servizi offerti.<br />
La platea potenzialmente raggiungibile è molto vasta. Oggi, chiunque di noi possiede più di un indirizzo di posta elettronica e, grazie al tablet e allo smartphone, può consultare i messaggi ricevuti in qualunque momento.</p>
<p style="text-align: justify;">Ovviamente, per ottenere risultati significativi, è fondamentale progettare la nostra campagna nel migliore dei modi, facendo particolare attenzione alla creazione delle mailing list, ovvero delle nostre liste di contatti, nonché al tipo di informazioni e al modo in cui scegliamo di veicolarle all&#8217;interno dei messaggi.</p>
<p style="text-align: justify;">Per quanto riguarda le nostre mailing list, maggiore sarà la loro qualità e migliori potranno essere i risultati ottenuti.<br />
Innanzitutto, i nostri contatti devono essere attivi, ovvero gli indirizzi devono essere funzionanti e attualmente in uso. In più, la raccolta dei dati degli utenti deve sempre avvenire nel totale rispetto della tutela della privacy, come stabilito dal Decreto Legge n. 196 del 2003. Le norme contenute nel decreto stabiliscono che per l&#8217;invio di messaggi a scopo promozionale è necessario aver ricevuto il consenso del destinatario. Qualsiasi operazione che non tiene conto di questo obbligo si configura come attività di spam.<br />
Evitare di essere etichettati come spammer non è importante solo per non incorrere in sanzioni e problemi di natura legale, ma soprattutto per non danneggiare la nostra immagine: inviare la nostra newsletter ad utenti non interessati non ci fornisce alcun vantaggio pratico, ma rischia di farci inserire all&#8217;interno delle black list degli spammer, con tutte le conseguenze che ne derivano.</p>
<p style="text-align: justify;">Esistono diverse strategie che ci consentono di collezionare in maniera del tutto lecita un buon numero di contatti. Se la nostra attività possiede punti vendita o strutture fisiche, possiamo invitare i clienti a iscriversi alla nostra mailing list dal vivo. In alternativa, è sempre possibile ricorrere agli appositi form per l&#8217;iscrizione online, posizionandoli in punti strategici del nostro sito e pubblicizzando la possibilità di ricevere la newsletter anche attraverso i social network.</p>
<p style="text-align: justify;">Invogliare gli utenti a concederci i nostri dati può essere arduo. In primis, è utile adottare un atteggiamento trasparente, dichiarando sin da subito il numero esatto o la frequenza con cui si riceveranno i messaggi. In secondo luogo, possiamo cercare di incentivare gli utenti offrendo loro sconti o contenuti speciali in cambio dell&#8217;iscrizione.<br />
Un&#8217;ultima accortezza è quella di facilitare il processo di cancellazione, inserendo in ogni newsletter un link evidente e snellendo il più possibile la procedura. Così facendo, forse perderemo qualche utente non interessato ai nostri servizi, ma in compenso ci dimostreremo molto attenti e corretti nei confronti del nostro pubblico.</p>
<p style="text-align: justify;">Pensare di poter avere successo in termini di conversioni ottenute, ovvero di visite al nostro sito, vendite realizzate o nuovi contratti stipulati, semplicemente spedendo messaggi contenenti un avviso pubblicitario è molto poco realistico.<br />
Le e-mail sono un mezzo di comunicazione molto efficace, ma solo quando vengono aperte e lette con attenzione. Per ottenere questo risultato, i nostri messaggi devono essere interessanti per il pubblico e rivelarsi fonte di informazioni davvero utili e di suggerimenti ad hoc, che in qualche modo vadano a semplificare una scelta dell&#8217;utente, rendendogli, in parole povere, la vita più facile.</p>
<p style="text-align: justify;">Il tipo di contenuti più adatti per la nostra newsletter varia molto sulla base delle caratteristiche dell&#8217;attività che intendiamo promuovere. Anche in questo caso, offerte personalizzate e piccole guide possono essere soluzioni perfette per attirare l&#8217;attenzione dell&#8217;utenza.<br />
Una newsletter piacevole da consultare richiede un uso sapiente del testo e delle immagini. È bene esprimersi in maniera chiara e sintetica, non rinunciando all&#8217;uso di un linguaggio amichevole, perfetto per “umanizzare” il mittente dell&#8217;e-mail. La parte grafica deve essere curata con attenzione, scegliendo solo materiale di alta qualità e proponendo per ogni foto la descrizione alternativa, che compare nel caso in cui sia impossibile scaricare il file.</p>
<p style="text-align: justify;">L&#8217;oggetto della newsletter ha un ruolo fondamentale: con poche parole, deve esprimere il contenuto del messaggio, incuriosendo i destinatari. È importante non cedere alla tentazione di usare frasi sensazionalistiche, nei confronti delle quali gli utenti hanno imparato a diffidare, ma preferire espressioni semplici ed esaustive.<br />
Un discorso simile vale per la scelta delle call to action. Esse rappresentano le parti testuali o le immagini utilizzate per invitare gli utenti a compiere l&#8217;azione da noi suggerita nella newsletter. Call to action come “clicca qui” o “segui questo link” hanno uno scarso appeal nei confronti del lettore e difficilmente lo convinceranno a fare quanto suggerito. La soluzione migliore è quella di allettare l&#8217;utente, dichiarando sin da subito il vantaggio di cui potrà usufruire cliccando sul link, con espressioni quali “scopri subito le offerte pensate per te” o “completa in 1 minuto la registrazione”.</p>
<p style="text-align: justify;">Quando impostiamo una campagna di Direct E-mail Marketing con la giusta attenzione, i risultati non tarderanno certo ad arrivare. Il DEM rappresenta una delle attività di web marketing con il più alto ROI, ovvero Return on Investment. Si stima che qualunque cifra investita in questo tipo di operazioni possa incrementare del 40% il nostro investimento iniziale, un tasso attualmente superato solo dalle campagne SEO.</p>
<h2 style="text-align: justify;">Dare vita ad un campagna efficace con OpenDEM</h2>
<p style="text-align: justify;">Non si può pensare di seguire le molteplici attività in cui si articola una perfetta campagna di Direct E-mail Marketing senza ricorrere ad uno strumento adeguato.<br />
Nello specifico, avremo bisogno di un servizio di mailing professionale, che metta a nostra disposizione la necessaria quantità di banda e tutti gli strumenti utili per creare e mantenere aggiornate le nostre mailing list, nonché redarre e spedire le newsletter.</p>
<p style="text-align: justify;"><a href="http://www.opendem.it/" rel="nofollow">Il portale OpenDEM</a> si qualifica come uno dei migliori mailer disponibili per completezza e affidabilità. Oltre a essere completamente in italiano, questo strumento si distingue per la semplicità con cui può essere utilizzato anche da chi ha poca dimestichezza con il mondo del web e dell&#8217;e-mail marketing.</p>
<h2 style="text-align: justify;">I vantaggi</h2>
<p style="text-align: justify;">Affidandoci a OpenDEM, saremo certi di poter usufruire di un&#8217;ampiezza di banda adeguata ai nostri bisogni e di recapitare correttamente i nostri messaggi, nei giusti tempi.<br />
Ciascuna newsletter viene spedita singolarmente ad ognuno dei nostri contatti: evitando gli invii di massa di un medesimo messaggio verso molti destinatari, aumentano le chance che le nostre e-mail giungano a destinazione senza essere bloccate dai filtri antispam.</p>
<p style="text-align: justify;">OpenDEM è una piattaforma completamente online. Per usare questo servizio, non abbiamo bisogno di acquistare e installare sul nostro computer un software, ma dobbiamo semplicemente entrare nella nostra area personale del sito, inserendo la username e la password.<br />
Questa formula web based offre diversi vantaggi: non rischieremo di incappare in problemi di compatibilità con il nostro sistema operativo e potremo ricorrere al servizio in qualunque momento e ovunque ci troviamo.</p>
<p style="text-align: justify;">Questo mailer si adatta a iniziative di qualunque dimensione, anche quando il budget a disposizione è molto esiguo. La formula proposta per il pagamento si basa sul modello pay per speed: l&#8217;utente acquista la larghezza di banda dell&#8217;ampiezza desiderata, sulla base del numero dei messaggi da spedire e della rapidità con cui desideriamo siano consegnati.</p>
<p style="text-align: justify;">OpenDEM garantisce l&#8217;attivazione di ogni nuova utenza nell&#8217;arco delle 24 ore lavorative successive alla firma del contratto.<br />
In ogni momento, l&#8217;utente può richiedere il supporto del personale per far luce su piccoli dubbi o problemi tecnici.</p>
<h2 style="text-align: justify;">Le funzioni principali</h2>
<p style="text-align: justify;">Un buon servizio di mailing è di supporto in tutte le varie fasi in cui si articola la creazione di una newsletter. In più, consente di gestire agevolmente le liste di contatti e di avere un riscontro diretto circa il numero di e-mail aperte e correttamente visualizzate o sul numero di click ricevuti dai link inserirti nei messaggi.</p>
<p style="text-align: justify;">Analizziamo più nel dettaglio le attività principali che potremo svolgere grazie a OpenDEM:</p>
<ul style="text-align: justify;">
<li>creazione delle mailing list. Non esiste alcun limite al numero delle liste di contatti. Per ciascuna, possiamo indicare un nome e definirne il contenuto aggiungendo una descrizione oppure delle note. Oltre al nome e all&#8217;indirizzo di ciascun contatto, possiamo indicare altre caratteristiche ritenute di rilievo. Per compilare la lista in modo rapido, è sufficiente eseguire un copia e incolla a partire da un elenco excel o CSV.</li>
<li>Stesura delle newsletter. OpenDEM ci fornisce un&#8217;ampia selezione di template predefiniti che possiamo completare aggiungendo i nostri testi, immagini e link. In alternativa, possiamo caricare un documento realizzato con un editor HTML oppure un file PDF, che il sistema convertirà automaticamente nel formato grafico JPEG.</li>
<li>Programmazione della campagna. Possiamo raccogliere le nostre newsletter all&#8217;interno delle “campagne”, archivi virtuali che ci aiuteranno a suddividere i messaggi in base al progetto di appartenenza. Per ciascuna newsletter, siamo liberi di indicare una o più mailing list a cui spedire i messaggi, pianificando con precisione la data e l&#8217;orario di invio.</li>
<li>Analisi dei risultati. Mentre l&#8217;invio della newsletter è in corso, abbiamo accesso ai dati relativi all&#8217;avanzamento della spedizione, al numero di messaggi aperti (Open Rate), di click ricevuti dai link (Click-Through Rate) e di e-mail non correttamente consegnate (E-mail Buonce Rate).<br />
Grazie a queste informazioni, possiamo valutare l&#8217;andamento della nostra campagna e capire come migliorare le nostre newsletter future.</li>
</ul>
<p style="text-align: justify;">Le potenzialità dell&#8217;e-mail marketing sono davvero enormi e, oggi, scegliere di affiancare questo strumento ai canali di promozione tradizionali rappresenta davvero una scelta vincente. Sfruttando OpenDEM, con un investimento contenuto, sia in termini di tempo che di denaro, saremo certi di veder crescere il numero dei nostri clienti, ma anche la visibilità del nostro marchio.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.karibusana.org/2016/05/direct-e-mail-marketing-alla-portata-di-tutti-con-opendem/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Come ho risolto lo schermo bianco e a righe sul mio Macbook</title>
		<link>https://www.karibusana.org/2016/02/come-ho-risolto-lo-schermo-bianco-e-a-righe-sul-mio-macbook/</link>
					<comments>https://www.karibusana.org/2016/02/come-ho-risolto-lo-schermo-bianco-e-a-righe-sul-mio-macbook/#comments</comments>
		
		<dc:creator><![CDATA[Vincenzo Vecchio]]></dc:creator>
		<pubDate>Sun, 07 Feb 2016 19:02:45 +0000</pubDate>
				<category><![CDATA[MacOs]]></category>
		<category><![CDATA[problema avvio mac]]></category>
		<category><![CDATA[problema schermo mac]]></category>
		<category><![CDATA[schermo bianco macbook]]></category>
		<guid isPermaLink="false">https://www.karibusana.org/?p=890</guid>

					<description><![CDATA[ATTENZIONE: Questo articolo è ormai obsoleto, se hai dei problemi con la scheda video del tuo MacBook Pro vai al seguente articolo &#8220;Come disabilitare la GPU AMD Radeon su MacBook Pro&#8221; per la soluzione definitiva Questa mattina dopo aver premuto il pulsante di accensione del mio Macbook Pro mi è apparsa una schermata con delle [&#8230;]]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;"><a href="https://www.karibusana.org/wp-content/uploads/2016/02/schermo-bianco-macbook.jpg" rel="attachment wp-att-894"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-894" src="https://www.karibusana.org/wp-content/uploads/2016/02/schermo-bianco-macbook.jpg" alt="Schermo bianco macbook" width="700" height="400" srcset="https://www.karibusana.org/wp-content/uploads/2016/02/schermo-bianco-macbook.jpg 700w, https://www.karibusana.org/wp-content/uploads/2016/02/schermo-bianco-macbook-300x171.jpg 300w, https://www.karibusana.org/wp-content/uploads/2016/02/schermo-bianco-macbook-332x190.jpg 332w" sizes="auto, (max-width: 700px) 100vw, 700px" /></a></p>
<blockquote><p><strong>ATTENZIONE</strong>: Questo articolo è ormai obsoleto, se hai dei problemi con la scheda video del tuo MacBook Pro vai al seguente articolo &#8220;<a href="https://www.karibusana.org/2019/12/come-disabilitare-la-gpu-amd-radeon-su-macbook-pro/">Come disabilitare la GPU AMD Radeon su MacBook Pro</a>&#8221; per la soluzione definitiva</p></blockquote>
<p style="text-align: justify;">Questa mattina dopo aver premuto il pulsante di accensione del mio Macbook Pro mi è apparsa una schermata con delle linee orizzontali verdi e dopo un primo tentativo di caricamento del sistema operativo lo schermo è diventato bianco. Potete immaginare il panico! Per fortuna sono riuscito a risolvere il problema anche grazie all&#8217;aiuto di un tecnico del centro di supporto di Apple e in questo articolo vi spiego come fare.</p>
<p style="text-align: justify;">Nonostante fossi quasi sicuro che si trattasse di un problema hardware video ho deciso di controllare i permessi dell&#8217;hard disk ed accertarmi che non fosse questo ad essere danneggiato (Ho da poco installato un SSD e fatto l&#8217;upgrade della RAM). Ho prima di tutto spento il computer tenendo premuto il tasto di accensione. Quindi ho riavviato il Mac tenendo premuto i tasti CMD + R&nbsp;fino a quando non mi è comparsa una schermata di recovery (vedi immagine seguente) nella quale ho potuto eseguire l&#8217;utility disk e quindi correggere alcuni errori presenti nell&#8217;hard disk, che si è rivelato in ottima salute.</p>
<p><a href="https://www.karibusana.org/wp-content/uploads/2016/02/utility-macos.jpg" rel="attachment wp-att-891"><img loading="lazy" decoding="async" class="aligncenter wp-image-891" src="https://www.karibusana.org/wp-content/uploads/2016/02/utility-macos.jpg" alt="utility disco mac os" width="671" height="408" srcset="https://www.karibusana.org/wp-content/uploads/2016/02/utility-macos.jpg 775w, https://www.karibusana.org/wp-content/uploads/2016/02/utility-macos-300x182.jpg 300w, https://www.karibusana.org/wp-content/uploads/2016/02/utility-macos-768x467.jpg 768w" sizes="auto, (max-width: 671px) 100vw, 671px" /></a></p>
<p style="text-align: justify;">Dopo essermi accertato che il problema non era dovuto all&#8217;hard disk danneggiato ho pensato che potesse essere un problema di hardware connesso alla scheda video, ho pertanto deciso di chiamare il centro di supporto della Apple e ho parlato con un operatore che mi ha fatto eseguire le seguenti procedure.</p>
<h2 id="main-title">Come reimpostare la NVRAM o PRAM sul Mac</h2>
<p style="text-align: justify;">Si tratta di una quantità ridotta di memoria denominata&nbsp;NVRAM&nbsp;&#8220;non-volatile random-access memory&#8221; o PRAM (Parameter RAM) per i computer Mac meno recenti. Questa ha la funzione di archiviare alcune impostazioni in una posizione a cui OS X può accedere rapidamente. Tra queste&nbsp;il volume degli altoparlanti, la risoluzione dello schermo, la selezione del disco di avvio.</p>
<p>Esegui la seguente procedura:</p>
<ol>
<li>Spegni il Mac.</li>
<li>Individua i seguenti tasti sulla tastiera: Comando (⌘), Opzione, P e R.</li>
<li>Accendi il Mac.</li>
<li>Tieni premuti i tasti Comando-Opzione-P-R subito dopo aver udito il segnale acustico di avvio.</li>
<li>Continua a tenerli premuti finché il computer non si riavvia e senti il segnale acustico di avvio per la seconda volta.</li>
<li>Rilascia i tasti.</li>
</ol>
<h2 id="main-title">Reimpostazione del controller di gestione del sistema (SMC) sul Mac</h2>
<p style="text-align: justify;">Dovresti reimpostare l&#8217;SMC solo dopo aver provato tutte le altre procedure standard di risoluzione dei problemi. Prova i seguenti passaggi nell&#8217;ordine specificato prima<em>&nbsp;</em>di reimpostare l&#8217;SMC. &nbsp;Dopo ogni passaggio verifica se il problema è stato risolto.</p>
<ol>
<li>Premi Comando-Opzione-Esc per chiudere le applicazioni che non rispondono.</li>
<li>Metti il Mac in stato di stop facendo clic sul menu Apple e scegliendo Stop. Dopo che il computer è entrato in stato di stop, riattivalo.</li>
<li>Riavvia il Mac scegliendo Riavvia dal menu Apple.</li>
<li>Spegni il Mac scegliendo Spegni dal menu Apple.</li>
<li>Se il Mac non risponde ai comandi, forzane lo spegnimento tenendo premuto per 10 secondi il pulsante di alimentazione. Tieni presente che il lavoro non salvato delle applicazioni aperte andrà perso.</li>
</ol>
<p style="text-align: justify;">Il controller di gestione del sistema svolge diverse funzioni quali: controllo della velocità delle ventole, la retroilluminazione del monitor e della tastiera, le prestazioni di sistema e quindi della CPU e tanto altro. Di seguito i passaggi nel dettaglio:</p>
<h3>Sui notebook Mac con batteria non rimovibile</h3>
<p style="text-align: justify;">I computer portatili dotati di una batteria che non dovrebbe essere rimossa&nbsp;includono: MacBook Pro (inizio 2009) e versioni più recenti, tutti i modelli di MacBook Air, MacBook (fine 2009) e MacBook (Retina, 12 pollici, inizio 2015).</p>
<p>Come reimpostare l&#8217;SMC:</p>
<ol>
<li>Spegni il computer.</li>
<li>Collega l&#8217;alimentatore a una fonte di alimentazione al computer.</li>
<li>Sulla tastiera integrata premi contemporaneamente i tasti <strong>Maiuscole-Ctrl-Opzione e il pulsante di alimentazione</strong>.</li>
<li>Rilascia tutti i tasti e il pulsante di alimentazione contemporaneamente.</li>
<li>Premi il pulsante di alimentazione per accendere il computer.</li>
</ol>
<h2 class="post-title entry-title">Apple ripara gratuitamente i MacBook Pro difettosi</h2>
<p style="text-align: justify;">Facendo delle ricerche su internet ho anche scoperto che&nbsp;esiste un problema diffuso su alcune &#8220;annate&#8221; di MacBook Pro, sia Retina (15 pollici) che non retina, (15 e 17 pollici) usciti dal 2011 a inizio 2013 e la Apple ha dichiarato che essendo tale difetto riconosciuto come errore di fabbrica, effettuerà d&#8217;ora in poi riparazioni GRATUITE&nbsp;su tutti i computer&nbsp;Mac che presentano tale problematica e che rientrano nella categoria.</p>
<p style="text-align: justify;">Per maggiori&nbsp;dettagli su questo servizio e sui requisiti per determinare se il vostro MacBook Pro rientra tra quelli con difetto di fabbrica, potete visitare l&#8217;apposita&nbsp;<a href="http://www.apple.com/support/macbookpro-videoissues/" target="_blank" rel="nofollow noopener noreferrer">pagina</a> sul sito ufficiale dove potete inserire&nbsp;il serial number del vostro Mac e quindi controllare se questo rientra nella categoria di prodotti idonei al servizio.&nbsp;Si tratta in pratica di un&#8217;estesione di garanzia che vi coprirà fino al 27 Febbraio 2016.</p>
<p style="text-align: justify;">Per il momento ho risolto in questo modo, però ho prenotato un appuntamento nel più vicino Apple Store per fare un check up e assicurarmi che il problema non si ripresenti.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.karibusana.org/2016/02/come-ho-risolto-lo-schermo-bianco-e-a-righe-sul-mio-macbook/feed/</wfw:commentRss>
			<slash:comments>31</slash:comments>
		
		
			</item>
	</channel>
</rss>
