Articoli con Tag ‘PHP’


Very short trick: proxy RSS con SimplePie

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:

Continua...

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.

Continua...

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:

1
if ( strpos($wp_version, '2.5') !== false || strpos($wp_version, '2.6') !== false ) {

Deve diventare:

1
if ( strpos($wp_version, '2.7') !== false ) {

Aggiornate e tutto andrà per il meglio: fate sempre un backup dei file e del database

Continua...

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.

Continua...

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;
}

Continua...

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";
    }
}

Continua...

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.

Continua...

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 ) );
}

Continua...

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>';
}

Continua...

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_login standard 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 :D

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

Continua...



Stop SOPA