Caputo's blog

Informatica, tecnologia, programmazione, fai da te, papercraft e papertoy

Archive for the 'tutorial' Category

Gestire i Feed RSS di un blog WordPress

Agosto 30th, 2010 by Giovanni Caputo

Includere una pagina tra i feed RSS

Il filtro verifica se i posti sono presenti post di un feed, e se ci sono , va a  modificare la query per includere sia post e pagine.

function feedFilter($query) {
	if ($query->is_feed) {
		$query->set('post_type','any');
		}
	return $query;
}
add_filter('pre_get_posts','feedFilter');

Se si vogliono visualizzare solo le pagine, allora si potrebbe cambiare la parola ‘any’ su ‘page’ (o con il nome di un qualsiasi post personalizzatao che si è  creati). E’ possibile selezionare solo i feed delle pagine di  livello più alto con il codice seguente:

function feedFilter($query) {
	if ($query->is_feed) {
		$query->set('post_type','any');
		$query->set('post_parent','0');
		}
	return $query;
}
add_filter('pre_get_posts','feedFilter');

Aggiungere Thumbnails ai feed RSS

function feedFilter($query) {
	if ($query->is_feed) {
		add_filter('the_content', 'feedContentFilter');
		}
	return $query;
}
add_filter('pre_get_posts','feedFilter');

function feedContentFilter($content) {
	$thumbId = get_post_thumbnail_id();

	if($thumbId) {
		$img = wp_get_attachment_image_src($thumbId);
		$image = '<img align="left" src="'. $img[0] .'" alt="" width="'. $img[1] .'" height="'. $img[2] .'" />';
		echo $image;
	}

	return $content;
}

Escludere i post con un certo Tag

Se vogliamo escludere dai feed RSS tutti i posti con il tag numero 29 e possibile utilizzare il seguente codice:

function feedFilter($query) {
	if ($query->is_feed) {
		$tags = array('29');
		$query->set('tag__not_in', $tags);
	}

	return $query;
}
add_filter('pre_get_posts','feedFilter');

Filtrare i feed RSS di una certa categoria

E’ possibile filtrare i feed rss in base al nome della categoria, in questa caso: “blog”

function feedFilter($query) {
	if ($query->is_feed) {
		$query->set('category_name', 'blog');
	}

	return $query;
}
add_filter('pre_get_posts','feedFilter');

inoltre è possibile escludere i post di una certa categoria con

$query->set('cat', '-45');

Aggiungere contenuto alla fine al Feed RSS di ogni post

Nel caso seguente sarà aggiunta qualcosa tipo: “Thanks for reading, check out Your Blog name for more WordPress news!”

function feedFilter($query) {
	if ($query->is_feed) {
		add_filter('the_content','feedContentFilter');
	}
	return $query;
}
add_filter('pre_get_posts','feedFilter');
 
function feedContentFilter($content) {
	$content .= '<p>Thanks for reading, check out <a href="'. get_bloginfo('url') .'">'. get_bloginfo('name') .'</a> for more WordPress news!</p>';
 
	return $content;
}

Category: Programmazione, Tecnologia, tutorial | No Comments »

Inserire un motore di ricerca nel proprio sito con Google Ajax Search

Agosto 23rd, 2010 by Giovanni Caputo

Google AJAX Search API è un servizio gratuito che permette di ricercare all’interno del vostro blog, sito web e video attraverso un modulo di ricerca che svolge le operazioni in Ajax.

Google AJAX Search APII richiede di essere registrati per ottenere API key.  La registrazione è gratutita e può essere effettuata in qualche minuto. Deve essere richiesta una key per ogni dominio in cui si vuole inserire il motore di ricerca.

Vediamo il codice HTML necessario

<!– SEARCH FORM –>
<form action=”http://www.google.com/search” method=”get”>
<!– HTML5 SEARCH BOX!  –>
<input type=”search” id=”search-box” name=”q” results=”5″ placeholder=”Search…” autocomplete=”on” />
<!– SEARCH davidwalsh.name ONLY! –>
<input type=”hidden” name=”sitesearch” value=”davidwalsh.name” />
<!– SEARCH BUTTON –>
<input id=”search-submit” type=”submit” value=”Search” />
</form>

<!– ASYNCHRONOUSLY LOAD THE AJAX SEARCH API;  MOOTOOLS TOO! –>
<script type=”text/javascript” src=”http://www.google.com/jsapi?key=MY_REALLY_REALLY_REALLY_REALLY_REALLY_REALLY_LONG_KEY”></script>
<script type=”text/javascript”>
google.load(‘mootools’,’1.2.4′);
google.load(‘search’,’1′);
</script>

Successivamente il codice CSS

/* results positioning */
#search-results        { position:absolute; z-index:90; top:40px; right:10px; visibility:hidden; }
/* triangle! */
#search-results-pointer { width:0px; height:0px; border-left:20px solid transparent; border-right:20px solid transparent; border-bottom:20px solid #eee; margin-left:80%; }
/* content DIV which holds search results! */
#search-results-content { position:relative; padding:20px; background:#fff; border:3px solid #eee; width:380px; min-height:200px; -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.5) }

Infine il codice Javascript

window.addEvent(‘domready’,function(){

/* search */
var searchBox = $(‘search-box’), searchLoaded=false, searchFn = function() {

/*
We’re lazyloading all of the search stuff.
After all, why create elements, add listeners, etc. if the user never gets there?
*/
if(!searchLoaded) {
searchLoaded = true; //set searchLoaded to “true”; no more loading!

//build elements!
var container = new Element(‘div’,{ id: ‘search-results’ }).inject($(‘search-area’),’after’);
var wrapper = new Element(‘div’,{
styles: {
position: ‘relative’
}
}).inject(container);
new Element(‘div’,{ id: ‘search-results-pointer’ }).inject(wrapper);
var contentContainer = new Element(‘div’,{ id: ‘search-results-content’ }).inject(wrapper);
var closer = new Element(‘a’, {
href: ‘javascript:;’,
text: ‘Close’,
styles: {
position: ‘absolute’, //position the “Close” link
bottom: 35,
right: 20
},
events: {
click: function() {
container.fade(0);
}
}
}).inject(wrapper);

//google interaction
var search = new google.search.WebSearch(),
control = new google.search.SearchControl(),
options = new google.search.DrawOptions();

//set google options
options.setDrawMode(google.search.SearchControl.DRAW_MODE_TABBED);
options.setInput(searchBox);

//set search options
search.setUserDefinedClassSuffix(‘siteSearch’);
search.setSiteRestriction(‘davidwalsh.name’);
search.setLinkTarget(google.search.Search.LINK_TARGET_SELF);

//set search controls
control.addSearcher(search);
control.draw(contentContainer,options);
control.setNoResultsString(‘No results were found.’);

//add listeners to search box
searchBox.addEvents({
keyup: function(e) {
if(searchBox.value && searchBox.value != searchBox.get(‘placeholder’)) {
container.fade(0.9);
control.execute(searchBox.value);
}
else {
container.fade(0);
}
}
});
searchBox.removeEvent(‘focus’,searchFn);
}
};
searchBox.addEvent(‘focus’,searchFn);
});

Per maggiori dettagli: http://davidwalsh.name/google-ajax-search

Category: Programmazione, Tecnologia, tutorial | No Comments »

Layout Vuoti in html e css

Agosto 22nd, 2010 by Giovanni Caputo

PrimaryCSS is a framework CSS che mostra come creare i più comuni layouts per i propri siti web.

Contiene 22 differenti layouts da singola colona a variazioni multi colonna, che sono compatibili con i principali browser.

Di default, i layouts hanno dimenzioni di  960px ma sono realizzati FLUID e lavorano con ogni dimensione.

Category: Programmazione, tutorial | No Comments »

Estrarre testo da HTML in PHP

Agosto 21st, 2010 by Giovanni Caputo

function html2txt($document){
     $search = array('@<script [^>]*?>.*?</script>@si', // togliamo i tag script
     '@
<style [^>]*?>.*?</style>
 
@siU', //  togliamo i tag style (codice CSS)
     '@< [?]php[^>].*?[?]>@si', //script php
     '@< [?][^>].*?[?]>@si', //script php
     '@< [\/\!]*?[^<>]*?>@si', // togliamo i tag HTML
     '@< ![\s\S]*?--[ \t\n\r]*>@' // togliamo commenti multi-line incluso CDATA
     );$text = preg_replace($search, '', $document);
     return $text;
}

Attraverso le espressioni regolari è stata creata la funzione  che pulisce il codice sorgente di un documento HTML, lasciando solo il testo presente all’interno. Applicando la funzione scriveremo:

 
$html_source = file_get_contents('http://www.rat86.netsons.org');
$txt = html2txt($html_source);

Category: Programmazione, tutorial | No Comments »

Publicizzare il proprio negozio su google Maps

Agosto 12th, 2010 by Giovanni Caputo

Ormai è fondamentale essere  presenti su Google e un modo per far aumentare la probabilità di essere ritrovati è utilizzare Google Maps.

Vediamo quindi come “publicizzare” la propria attività commerciale su Google Maps.

Andare su Google Places, effettuate l’accesso con i propri dati Google e cliccate su Aggiungi nuova attività commerciale. Sarà necessario inserire tutti i dettagli riguardanti il proprio negozio come indirizzo, conatti (email, cellulare, sito web) e altre informazioni descrittive.

Inoltre è possibile fornire maggiori informazioni come orari e metodi di pagamento accettati, foto e/o video.

Infine è necessaria la verifica delle informazioni dell’attività commerciale inserita. E’ possibile verificare i dati tramite telefono o lettera.

Category: Siti Web, Tecnologia, tutorial | No Comments »

Riparare un connettore Ethernet RJ45

Agosto 11th, 2010 by Giovanni Caputo

Penso sia capitato a tutti di avere cavi di rete Ethernet con i ganci dei connettori rotti.. I ganci che bloccano il connettore RJ45 alla scheda di rete oppure al proprio router/modem.

Voglio quindi proprorvi un link che spiega come riparare il connettore

ISTRUZIONI

Category: tutorial | No Comments »

Framework come temi di WordPress

Luglio 27th, 2010 by Giovanni Caputo

Vogli proprorvi alcune soluzioni alternative ai semplici temi di WordPress. Quello di cui vi parlo sono una serie di framework che permettono di configurare un proprio tema personalizzato e da realizzare secondo le proprie esigenze.

Per ognuno di questi framework sono messe a disposizione pagine di configurazione ed inoltre è possibile scaricare una serie di temi figli che sono, di solito, gratuiti da scaricare.

I framework permettono di rendere lo sviluppo di temi più semplice e veloce, hanno un notevole supporto da parte delle comunità attorno ai framework, sono di solito ottimizzati utilizzando CSS, HTML, funzioni PHP e prevedeno la gestione SEO, integrano il codice di WordPress secondo gli standard e le “best practices” e sono semplici da aggiornare per le future release di WordPress.

Vediamo un elenco, probabilmente non esaustivo, di framework per lo sviluppo di temi di wordpress:

ThemeHybrid, framework popolare e gratuito. L’iscrizione al forum, invece è a pagamento.

Thematic, completamente gratuito dal forum ai child theme. Sebbene la documentazione non è comprensiva come quella di ThemeHybrid è possibile trovare vari trucchi e soluzioni soluzioni sul forum.

Canvas, theme framework premium di WooThemes. Come ci si aspetta dai prodotti WooThemes permette un gran numero di opzioni e personalizzazioni. Supporta i child theme e dispone di 5 template pre costruiti. Comprende layout per megazine e template business. Permette di scegliere differenti layouts per ogni pagina e post.

Genesis, framework per temi premium creato da StudioPress. Dispome di differenti child theme ed è molto simile a Canvas, in termini di funzionalità.

Elemental, infine, è un prodotto di ProThemeDesign. Una delle funzionalità uniche è la visualizzazione di un menu di amministrazioni che compare all’interno della pagine del sito solo per gli utenti loggati. Il framework contiene 12 template di pagina e 7 widgets custom di default.

Category: Programmazione, Siti Web, Tecnologia, tutorial | 1 Comment »

Scaricare quotidiani e giornali gratutitamente

Luglio 24th, 2010 by Giovanni Caputo

Per scaricare quotidiani e giornali gratuitamente potete andare sul link seguente.

Sono disponibili in formato pdf anche i quotidiani del giorno stesso:  Corriere Della Sera, La Nazione, Il Sole 24 Ore e La Gazzetta dello Sport.

LINK

Category: Siti Web, Tecnologia, tutorial | No Comments »

Sitemap.xml per il proprio sito web

Luglio 22nd, 2010 by Giovanni Caputo

Fondamentale per i proprietari dei siti web è preoccuparsi che il proprio sito sia correttamente indicizzato dai principali motori di ricerca e soprattutto da Google.
In generale, mentre il file robots.txt spiega quali file si desidera escludere dai risultati, il file sitemap.xml elenca la struttura del proprio sito e delle relative pagine. Fornisce al crawler dei motori di ricerca un’idea di dove gli ogetti sono diposti all’interno del sito.

La prima operazione da fare per la realizzazione di una Sitemap è quella di creare il file XML che conterrà il proprio codice. Si consiglia di denominare il file come “sitemap.xml” e disporla all’interno della directory principale del tuo proprio sito web.

Di seguitoun esempio base su come creare una sitemap.

 <?xml version="1.0" encoding="UTF-8"?>
 <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
 <url><loc>index.html</loc></url>
 <url><loc>contact.html</loc></url>
 </urlset>

Ogni  Sitemap inizia con la definizione del DTD( Document Type Definition) che indica che il file è codificato UTF-8, scritto in XML, e utilizza lo schema ufficiale Sitemap.

A seguito di tali formalità, si limita a produrre un elenco di URL che presenti all’interno della struttura del tuo sito web.

Ogni URL deve essere contenuta all’interno di due elementi: <url> e <loc>. . Questa è una specifica molto semplice da seguire, quindi, anche gli sviluppatori meno esperti dovrebbero essere in grado di replicare questo meccanismo di base con poco sforzo.

Per fare riferimento la sitemap all’interno dei documenti HTML, inserire questo codice tra i tag <head>:

<head>
 <link rel="sitemap" type="application/xml" title="Sitemap" href="sitemap.xml" />
 <head>

Altri tag importanti sono <lastmod>, che permette di precisare quando la risorsa è stata modificata l’ultima volta (formattata con AAAA-MM-DD), oppure <changefreq>, che utilizza i valori di always, hourly, daily, weekly, monthly, yearly, e never che  suggerisce quanto spesso cambia pagina web. Infine  il tag <priority>, che utilizza una scala di 0,0-1,0 indica l’importanza di una pagina web all’interno del sito.

Vediamo un esempio

<lastmod>2010-05-13</lastmod>
 <changefreq>monthly</changefreq>
 <priority>0.8</priority>

Category: Siti Web, Tecnologia, tutorial | 1 Comment »

File robots.txt e l’indicizzazione

Luglio 22nd, 2010 by Giovanni Caputo

Robots.txt

La funzione principale del robots.txtè quella di dichiarare quale parte del sito deve essere letta o protetta da un motere di crawling. Se non ci sono file robots.txt nella directory del sto web significa che è possibile accedere a tutte le pagine e indicizzare. E’ possibile introlre escludere la scansione di un documento HTML, inserendo il meta tag <meta name="robots" content="noindex" /> all’interno della pagina web.

Nota: è necessario specificar che i crawler, dovrebbero rispettare tali vincoli definiti dal file robots.txt, quindi tale meccanismo non assicura una protezione su file privati.

In generale il file robots.txt fa interagireil motore di ricerca e il proprio sito web.

Creare il file Robots.txt

Per creare un file robots.txt è necessario avere un editor di testo. Inoltre ricordiamo che il file deve essere chiamato proprimo in tale modo: robots.txt e deve essere presente all’interno della directory principale.

Il passo successivo è quello di specificare una lista di istruzioni da far seguire allo spider del motore di ricerca. I commenti nel file possono essere scritti inserendo il carattere ‘#’ all’inizio della riga.

Un semplice esempio che specifica di non indicizzare i file nelle cartelle /utenti/ e /privata/e:

 User-agent: *
 Disallow: /utenti/
 Disallow: /privata/

La prima riga indica lo User-agent, cioè specifica a quale web robots sono suggerite le regole. Con l’asterisco si identificano tutti gli user-agent.

Nei prossimi aricoli vedremo come definire una sitemap, opensearch.xml e dublin.rdf

Category: Siti Web, tutorial | No Comments »