Se usate Flash o Ajax per leggere Feed RSS da altri domini, dovete necessariamente dotarvi di un proxy (tunneling) a causa delle protezioni imposte da entrambe le tecnologie (vedi Tunneling e proxy server per Ajax e non solo ). Se sul vostro sito o blog è già presente SimplePie, potete scrivere una semplice proxy in questo modo:
Articoli con Tag ‘PHP’
Very short trick: proxy RSS con SimplePie
Creare un semplice Feed Reader con SimplePie e jQuery
SimplePie è una libreria PHP in grado di semplificare notevolmente il recupero e la manipolazione di Feed RSS o, più in generale, di formati XML. È possibile, ad esempio, scrivere poche righe di codice, sfruttando anche qualche “funzioncina” jQuery, per realizzare un News Ticker da inserire nel nostro sito/blog.
Aggiornamento a WordPress 2.7
Come molti ho eseguito anch’io l’aggiornamento a WordPress 2.7. Tutto è andato bene, come al solito, tranne che per due Plugin:
Lighter Menus non ha più senso nella nuova interfaccia di WordPress, quindi disattivatelo (ed eliminatelo) prima di eseguire l’aggiornamento.
Per Simple Tags, invece, dovete alterare una riga di codice che causa il malfunzionamento del Plugin con la release 2.7 di WordPress. Per farlo andate nell’editor di Plugin interno a WordPress e selezionate Simple Tags. La riga:
Deve diventare:
1 |
Aggiornate e tutto andrà per il meglio: fate sempre un backup dei file e del database
Very short snippet: WordPress, separare le categorie in due colonne
Prendendo spunto da WordPress Hack #2 – Separare le categorie in colonne nella sidebar può tornare utile “spezzare” in due colonne la lista delle categorie di WordPress.
Very short trick: 3 output function in PHP
All’interno di una funzione PHP è possibile stampare in tre modi diversi:
1 2 3 4 5 6 7 8 9 10 | <?php function miaFunction( $valore = 'Ciao' ) { ?> <ul> <!-- <li><?php echo $valore; ?> --> <li><?=$valore?></li> </ul> <?php } ?> |
Oppure:
1 2 3 4 | function miaFunction( $valore = 'Ciao' ) { $o = '<ul><li>'.$valore.'</li></ul>'; echo $o; } |
Oppure:
1 2 3 4 | function miaFunction( $valore = 'Ciao' ) { $o = "<ul><li>$valore</li></ul>"; echo $o; } |
Very short snippet: WordPress administrator?
Amministratore o sottoscrittore? Ecco un modo rapido per capirlo:
1 2 3 4 5 6 7 8 9 | global $user_ID; // $capabilities = get_usermeta( $user_ID, 'wp_capabilities'); // if ( is_array( $capabilities ) ) { if( $capabilities['Administrator']==1 || $capabilities['administrator']==1 ) { echo "Sei un amministratore"; } } |
WordPress: rimuovere i menu dell’amministrazione
Può risultare utile, a volte, “oscurare” alcuni menu dell’amministrazione di WordPress, soprattutto se si è sviluppato un sito/blog per un cliente e non si vuole permettere l’accesso a funzionalità particolarmente delicate. Esistono Plugin che svolgono questa già funzione ma, per avere un controllo personale e completo, vediamo come funziona in dettaglio questa caratteristica.
Come sempre sfruttiamo le utilissime Action messe a disposizione da WordPress, in questo caso admin_menu. Tramite la variabile globale $menu possiamo accedere alla lista dei menu dell’amministrazione. Possiamo individuare il menu da “eliminare” in due modi: tramite l’etichetta o tramite il link a cui punta (vedi parti commentati nell’esempio qui sotto). Nell’esempio proposto vengono “oscurate” le voci di menu Design, Impostazioni e Plugins:
1 2 3 4 5 6 7 8 9 10 11 12 13 | function remove_menu_item() { global $menu; // tramite label $removes = array( 'Design', 'Impostazioni', 'Plugins' ); // tramite link // $removes = array( 'themes.php', 'options-general.php', 'plugins.php' ); foreach( $removes as $todel ) foreach($menu as $key => $sm) if($sm[0] == $todel ) { unset( $menu[$key] ); break; } // tramite link // foreach($menu as $key => $sm) if($sm[2] == $todel ) { unset( $menu[$key] ); break; } } // add_action('admin_menu', 'remove_menu_item'); |
L’uso del link come chiave per la rimozione ($sm[2] nelle parti commentate nel codice qui sorpra), è utile quando non si ha certezza della lingua – localizzazione – con cui è stato installato WordPress. Con questa tecnica, tuttavia, il menu è rimosso solo a livello di interfaccia, quindi sarà possibile ancora accedere alla pagina tramite una link diretto.
Very short snippet: PHP plain date
Converte una data dal formato yyyy-mm-dd hh:mm:ss a yyyymmddhhmmss. Utile per poter sfruttare le funzioni di ordinamento; tipo asort().
1 2 3 4 5 6 | /** * Format from "yyyy-mm-dd hh:mm:ss" to "yyyymmddhhmmss" */ function plainDate( $d ) { return( preg_replace( '/(-|:|\040)/', '', $d ) ); } |
WordPress: scrivere un logout personale
Partendo dal post WordPress: come creare passo passo un proprio login, eseguita la procedura di login potrebbe essere utile indicare all’interno del nostro blog un link per effettuare la disconnessione, ovvero il logout. Non useremo anche in questo caso le procedure standard di WordPress, ma vedremo come eseguire il logout a basso livello. Prima di tutto dobbiamo capire se un utente è loggato o meno. Questo è possibile interrogando semplicemente la variabile $user_ID di WordPress. Ad esempio:
1 2 3 | if( $user_ID != '' ) { // oppure if( is_user_logged_in() ) { // un utente risulta "loggato" ... } |
Una volta che sappiamo che un utente è “loggato” nel sistema, possiamo inserire un semplice link ad una nostra pagina di logout. Creiamo quindi una pagina, ad esempio logout.php, e inserendo il seguende codice:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /** * Esegue il logout * * @author Giovambattista Fazioli * @email g.fazioli@undolog.com * @web http://www.undolog.com */ // Invoke WordPress bootstrap @require_once('wp-config.php'); @require_once('wp-includes/pluggable.php'); // wp logout wp_logout(); // carico qualsiasi altra pagina header( "Location: /" ); |
E sufficiente quindi “linkare” alla nostra pagina per fornire una procedure di logout:
1 2 3 | if( $user_ID != '' ) { echo 'Esegui il <a href="logout.php">logout</a>'; } |
WordPress: come creare passo passo un proprio login
In questo tutorial vedremo come creare una procedura di Login personale, utilizzando anche funzionalità Ajax tramite jQuery. Ci sono vari metodi per personalizzare il login di WordPress, ad esempio tramite l’uso di hook e filtri (add_action(), add_filter()). Noi qui useremo una procedura più a basso livello, anche se ci interfacceremo comunque al Kernel di WordPress. Inoltre faremo in modo di convalidare un utente tramite la dupla email/password.
Perchè realizzare un proprio login?
- In alcuni contesti può ritornare uitle avere il massimo controllo sulla pagina di login, per proporre un layout personalizzato ai nostri utenti registrati. Inoltre si può arricchire la pagina con informazioni utili, dal un logo al classico “Password dimenticata?”
- Per permettere l’accesso tramite l’email (come nell’esempio qui trattato) al posto dello
user_loginstandard di WordPress - Per avere la possibilità di inserire un pannello di login nella sidebar del nostro Blog
- E infine, per avere uno scheletro – ed un’idea – per un ottimo Plugin
Ambiente
Nel nostro esempio/tutorial lavoreremo sulla root di WordPress all’interno di una cartella mylogin. Creiamo due file php all’interno di questa cartella: index.php e logon.php. Il primo conterrà l’interfaccia del nostro login, con tutte le funzioni Javascript/jQuery che ci servono. Il secondo file, logon.php, conterrà il codice per la validazione dell’utente. Creiamo poi una cartella css e dentro questa un file layout.css e una cartella images. All’interno della cartella images inseriremo un classico Ajax loader: createlo online su AjaxLoad.info. Alla fine dovreste avere:
- mylogin
- index.php
- logon.php
- css
- layout.css
- images
- ajax-loader.gif






Ultimi Commenti
Giovambattista Fazioli: @Nik: Sono contento! In bocca al lupo dunque!!
Nik: Lunedì ho l’esame di informatica su java, grazie mi sei stato utilissimo, il libro che ho era poco chiaro...
Marco: Ti ringrazio moltissimo, mi hai illuminato
ho risolto impostando [cc_objc] //OptionViewController.m -...
Giovambattista Fazioli: @Marco: Ti consiglio un approccio credo più corretto. Se hai eseguito il subclass del tab...
luigi: molto chiaro e semplice devo ammettere che anche scrivendo da un pà difficilmente uso delegati creati da...