Gestione Articoli per creare un blog modello wordpress

Questa lezione si articolerà su tre punti o su tre funzione

  • registra
  • leggi
  • numeropost

con queste tre funzioni sarà possibile gestire tutto il post e andiamo brevemente a mostrarvele per una maggiore comprensione di quello che di fatto siamo andati a fare.

Creare un blog con PHP e Mysql. Gestione dell’articolo post

Ma iniziamo proprio da utenteValido() questa funzione si limita a verificare che i dati passati come parametri alla funzione ($utente e $password)

Gestione Articoli per creare un blog modello wordpress

function utenteValido($utente, $password) {
global $UTENTE, $PASSWORD;
return ($utente == $UTENTE && $password == $PASSWORD);
}

Insomma questa è, vediamo ora la funzione registra, questa funzione dovrà avere principalmente la funzione di leggere il file, scrivere in testa il nuovo post, e poi scrivere il contenuto precedente di seguito.

Questo è il suo codice



function registra($titolo, $testo) {
global $BLOGFILE;
$contenuto = file($BLOGFILE); // leggo il contenuto
// creo il nuovo id
$penultimo = explode("#", $contenuto[0]);
$ultimo = $penultimo[0] + 1;
$fp = fopen($BLOGFILE, "w"); // apro il file in scrittura
// elimino eventuali caratteri di a capo e entità
// non conformi con HTML
$titolo = rendiConforme($titolo);
$testo = rendiConforme($testo);
// compongo la riga da registrare contenente il nuovo post
$post = $ultimo . "#" . date("Y-m-d, G:i")
. "#" . $titolo . "#" . $testo . "\n";
fwrite($fp, $post); // scrivo il post
if (count($contenuto) > 0) { // se il blog contiene già qualcosa
foreach ($contenuto as $post) {
// riscrivo, di seguito, tutti i post precedenti
fwrite($fp, $post);
}
}

fclose($fp); // chiudo il file
}

Come potete vedere ci siamo procurati di suddividere la funzione in tre parti distinte , la prima parte diciamo che grosso modo rappresenta la parte preparatoria della funzione, nella quale vengono preparati i dati necessari per la composizione del post,: si legge il contenuto del file, si calcola l’identificare dell’ultimo post, si riapre il file per la scrittura ( in questo modo viene cancellato e andrà riscritto) e si utilizza la funzione rendiConforme() per eliminare caratteri non voluti nel titolo e nel testo del post.

 

Ci vogliamo solamente soffermare un attimo sulla funzione explode ma solamente giusto per fare un richiamo.

Supponiamo che in ingeresso la funzione explode riceva una stringa del tipo

"1#2009-08-01, 12:22#Ciao Mondo# Ciao come stai io tutto bene e tu

A questo punto la funzione explode separerà la stringa ricevuta in ingresso e produrrà in uscita la seguente stringa

 

[0] => 1

[1] => "2009-08-01"

[2] => Ciao mondo

Insomma ogni volta che trova il separatore che abbiamo introdotto al primo capito questa prende e crea di conseguenza un array. Vi vogliamo mostrare anche la funizione rendiconforme ma solamente perche’ è intrisa di codice php

 

function rendiConforme($testo) {
$testo = nl2br(htmlentities(stripslashes($testo)));
$testo = str_replace("\r\n", "", $testo); // sistemi windows
$testo = str_replace("\n", "", $testo); // sistemi unix
$testo = str_replace("\r", "", $testo); // sistemi MacOS

return $testo;
}

 

Lo riconoscete? No? allora è meglio che diate una buona ripassata al buon vecchio codice PHP.E veniamo dunque alla funzione piu’ importante e sicurmente la piu’ semplice dell’intero panorama del nostro blog, beh diciamo almeno una delle piu’ semplici. Stiamo parlando della funzione leggi.

 


function leggi($da, $quanti = NULL) {
global $BLOGFILE;
$risultato = array();
$contenuto = file($BLOGFILE); // leggo il contenuto
if (is_null($quanti))
$quanti = count($contenuto);

for ($i = $da; ($i - $da < $quanti) && ($i <= count($contenuto)); $i++) {
// estraggo un post dal file e lo aggiungo all'array $risultato
$post = explode("#", $contenuto[$i - 1]); //(* \label{line:PHP_leggi-explode} *)
$risultato[] = $post;
}

return $risultato;
}

è abbastanza autoesplicativa, l’unica nota che vi vogliamo fare tenere presente è la condizione sul ciclo for , che estrae i post specificati dal file. Si osservi che , oltre a verificare che l’indice $i non vada oltre gli $n post a partire dal volore della variabile $da, è necessario anche verificare che esso non vada oltre al numero totale di post contenuti nell’array (istruizione $i <= count($contenuto)

 

ci sarebbe anche da spiegare la funzione numeroPost ma insomma vi abbiamo detto funzione ma è una funzione per modo di dire dato che è



function numeroPost() {
global $BLOGFILE;
$blog = file($BLOGFILE);

// restituisco il numero di righe del file
return count($blog); 
}

Grosso modo possiamo dirvi che cmq la lezione finisce qui a domani con la prossima.