La formattazione dei post



Una volta inseriti tramite l'area di amministrazione gli articoli che si desidera mostrare nel front-end, è possibile procedere con il codice necessario per la loro visualizzazione in homepage; tipicamente nella prima pagina di un blog non vengono mostrati gli articoli per esteso ma soltanto delle anteprime composte dalle prime parole dei post.

A questo scopo verrà proposta una piccola funzione che permetterà di "tagliare" il testo degli articoli ad un'altezza definita attraverso una cifra che rappresenterà il numero di parole che verranno mostrate per ogni testo.

Il suo funzionamento è abbastanza semplice, essa accetta tre parametri:

  • il testo da tagliare;
  • il numero di parole da presentare in anteprima;
  • un elemento da mostrare in coda all'anteprima (nel caso specifico sarà un collegamento al testo completo del post).

La funzione "esplode" una stringa e quindi anche un testo sulla base degli spazi in esso presenti, utilizzati come delimitatori per identificare le diverse parole; una volta contato il numero delle parole che compongono il testo, questo viene tagliato subito dopo la parola che corrisponde alla cifra indicata come parametro della funzione preview(), se per esempio $offset = 50, allora il testo verrà tagliato dopo la cinquantesima parola.

L'ultimo parametro ($collegamento) potrà essere definito arbitrariamente a seconda dell'elemento che si desidera visualizzare in code all'anteprima.

Di seguito è possibile analizzare il codice della funzione per la creazione delle anteprime:

// funzione per la creazione di anteprime dei testi
public function preview($post, $offset, $collegamento) {
 return (count($anteprima = explode(" ", $post)) > $offset) ? implode(" ", array_slice($anteprima, 0, $offset)) . $collegamento : $post;
}

Prima di passare al codice per la visualizzazione dei post in homepage, è utile proporre anche una seconda funzione, si ricordi infatti che ad ogni post è associato un valore relativo alla data che utilizza il formato "aaaa-mm-dd", se si desidera riformattare la data in modo da utilizzare la disposizione consueta nei paesi mediterranei, "gg-mm-aaaa", sarà possibile creare una piccola funzione che suddivida la data nei tre diversi componenti e li riunisca nell'ordine desiderato:

// funzione per la formattazione della data
public function format_data($d)
{
  $vet = explode("-", $d); 
  $df = $vet[2]."-".$vet[1]."-".$vet[0]; 
  return $df; 
}

La funzione "vede" la data registrata nel campo "data_post" della tabella "post" come una stringa che "esplode" sulla base del carattere di delimitazione "-", fatto questo la suddivide in tre elementi che verranno risistemati in ordine inverso rispetto a quello originale per ottenere il valore desiderato.

In alternativa possiamo utilizzare le funzioni strtotime e strftime per la formattazione della data. Vediamo come:

// funzione per la formattazione della data
public function format_data($d)
{
  // converte la data in timestamp
  $vet = strtotime($d); 
  // converte il timestamp della variabile $vet 
  // in data formattata 
  $df = strftime('%d-%m-%Y', $vet); 
  return $df;
}

Ultimi articoli PHP

Sessioni PHP: cosa sono, come si usano

Dalla configurazione di PHP, alla gestione delle sessioni in un...

Continuous Integration: automatizziamo i client con Phing

Continuous Integration: automatizziamo i client con Phing. Esempi...

Archiviazione delle applicazioni PHP con Phar

Come incorporare intere applicazioni PHP all'interno di un singolo...

I traits in PHP 5.4

Cosa sono, a cosa servono e come si unsano i traits, la novità per...

PHP 5.4: il web server integrato

Impara ad usare il web server integrato nella versione 5.4 di PHP:...

Altri articoli

Guide PHP

Guida Yii Framework

Come creare applicazioni Web in modo semplice e veloce con il...

Guida Applicazioni Facebook con PHP

Come realizzare un'applicazione per Facebook. Dalle basi della...

Guida PHP con Windows e IIS

Installare ambienti per lo sviluppo e la produzione di applicazioni...

Altre guide

Newsletter @PHP

Ogni lunedì, direttamente nella tua e-mail: script, articoli, guide e tutorial su PHP, MySQL e Apache.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso PHP per Webmaster

11 Giugno 2012 a Milano
Disponibilità: 7 Posti

Corso Google AdWords Base

25 Giugno 2012 a Milano
Disponibilità: 7 Posti

Corso Google AdWords Base

05 Giugno 2012 a Roma
Disponibilità: 7 Posti