Peter Lavin
a- a+

Creare siti facili da aggiornare con Php, MySQL e Css

UN SITO "SOSTENIBILE"

In questo articolo si parlerà del significato del termine "sostenibile" e verranno mostrati alcuni esempi per raggiungere questo obiettivo.
I siti devono essere progettati tenendo bene a mente anche la loro futura manutenzione, così da ridurre le difficoltà e i costi di aggiornamento.
I fogli di stile (CSS) sono già stati ben descritti in altro luogo, ma non farà male parlarne brevemente anche qui.
Usare i fogli di stile è un metodo rapido e semplice per effettuare cambiamenti all'interno di pagine o siti web e i benefici del loro utilizzo superano di gran lunga i problemi che potrebbero essere generati da un browsers che non li supporta.
Infatti, col passare del tempo sempre più utenti aggiornano i loro browsers.
Ma come facciamo a effettuare cambiamenti sul contenuto? Sosteniamo che l'utilizzo di un database sia essenziale, infatti spostare contenuti e links da pagine HTML in tabelle di database, rende un sito più "sostenibile".
Gli esempi di database saranno effettuati usando MySQL e PHP per il lato server.
Si presuppone una conoscenza di HTML e CSS.
L'utilizzo di queste tecnologie non è arbitrario. PHP e MySQL offrono un modo economico per creare siti web professionali, infatti il vostro web host non deve pagare diritti di licenza, così come succede per web host che utilizzano Apache su un sistema Linux.

L'ESECUZIONE

Ogni pagina web ha degli hyperlinks, sia interni che esterni e che di solito possono apparire in più pagine differenti.
I links cambiano regolarmente, spesso bisogna modificare l'URL o addirittura eliminarlo.
Se queste informazioni sono memorizzate in un database e richiamate ogni volta che la pagina viene caricata, non è necessario effettuare modifiche al codice HTML, ma solamente aggiornare la tabella di database.
Qui sotto trovate una descrizione di come può apparire una tabella contenente hyperlinks:

TABELLA "LINKS"

 Field  Type   Key  Null?  Extra
 id  int(11)  PRI    auto_increment
 url  varchar(255)      
 target  varchar(35)    Yes  
 description  varchar(255)      
 typeid  int(11)      
 whenadded  date      


Il campo "Id" è un contrassegno unico e la chiave primaria. Questo campo è del tipo "auto_increment".
Il campo "Url" sarà l'indirizzo reale, sia un indirizzo relativo sul lato server o un indirizzo esterno assoluto.
Il campo "Target" determinerà, invece, se un collegamento dovrà sostituire la finestra corrente oppure aprire una nuova finestra.
I valori permessi in questo campo sono i legittimi valori di attributo target e cioè "_self" , "_top" , "_blank" , "_parent" , una stringa vuota oppure il nome dato ad un frame.
Il campo "Description" sarà il testo che appare nella pagina come hyperlink.
Il campo "Typeid" permetterà di selezionare i collegamenti o limitare la loro selezione.

Potrebbe aver senso per voi avere una tabella relativa simile alla seguente:

TABELLA "LINKTYPES" 

Field  Type  Key  Null?  Extra
 id  int(11)  PRI     auto_increment
 description  varchar(255)      


Per esempio, se volete mostrare solo collegamenti esterni e l'identificazione di tali collegamenti è "1" , potete restringere la selezione solo a quei record nei quali "typeid" è 1.
Infine, il campo "whenadded" è la data in cui il vostro collegamento è stato generato nel database. Più avanti ritorneremo a parlare di questo campo.

IL CODICE

Qui sotto trovate il codice PHP che richiamerà i dati dalla vostra tabella e dinamicamente genererà il codice HTML:

<a class="new" href="westnile.html" target="_self" >West Nile</a><br />
<?php
//dynamically create links 
//include database password information etc.
$hostname = "myhost.com";
$username = "user";
$password = "password";
$databasename = "mydatabase";
$strsql="SELECT description, url, target, ".
"IF(whenadded > (SUBDATE(CURDATE(), ".
"INTERVAL '14' DAY)), 'new', 'info') as cssclass FROM links ".
"ORDER BY cssclass, UCASE(description)";
$connection = @ mysql_connect($hostname, $username,$password)
or die("Cannot connect to database");
if (! mysql_selectdb($databasename, $connection))
die("Cannot open table");
if (!($result = @ mysql_query($strsql, $connection))) 
die("Cannot select record");
$strlinks="";
//tbllinks url, description, type
while($row = mysql_fetch_array($result)){
//should ouput in the following format
//<a class="new" href="westnile.html" target=_self >West Nile</a><br />
$strlinks.="<a class="";
$strlinks.=$row["cssclass"];
$strlinks.="" href="";
$strlinks.=$row["url"]."" ";
if($row["target"]!= null)
$strlinks.="target="". $row["target"].""";
$strlinks.=">". $row["description""]. "</a><br />
"; 
}
echo $strlinks;
?>

Salvate questo codice in un file chiamato "links.inc" e potete poi includerlo, laddove è più opportuno.
Se osservate più attentamente il codice, vedrete che fa molto di più che richiamare le informazioni dal database.
Il campo "whenadded" è utilizzato per restituire un valore di "nuovo" , se il collegamento è stato aggiunto meno di 14 giorni fa.
Questo valore è usato per settare l'attributo "class" del tag ancora.
Usando i CSS è inoltre possibile dare differenti attributi ai tags più nuovi.
Guardiamo ora come potremmo definire lo stile di un tag ancora della classe "new".

A.new:link {
color: Red;
text-decoration: none;
background-color : transparent;
}
A.new:visited {
color: Red;
text-decoration: none;
background-color : transparent;
}
A.new:hover {
color: Orange;
text-decoration: none;
background-color : transparent;
}

Alcuni nuovi collegamenti appariranno in rosso e saranno i primi nella nostra lista a causa della clausola "ORDER BY".
In più, il nome della classe cambierà automaticamente quando il link è vecchio di più di due settimane.
Questo succederà senza il bisogno dell'intervento dell'utente o del progettista.
Non solo otteniamo una manutenzione migliorata mettendo i nostri links in un database, ma otteniamo anche una migliore presentazione senza spese extra.

ALTRO CONTENUTO DINAMICO

Così come i links possono essere archiviati in un database, nello stesso modo è possibile farlo per il contenuto delle pagine web.
Una tabella come la seguente, potrebbe essere utile per organizzare gli articoli di un sito.
Il campo "contents" può contenere testo o HTML

TABELLA "CONTENTS"

Field  Type  Key  Null?  Extra
 id  int(11)  PRI    auto_increment
 title  varchar(35)      
 description  varchar(255)      
 topic  varchar(35)    YES  
 author  varchar(35)      
 contents  text      
 whenadded  timestamp(14)    YES  


Come potete immaginare, i vari campi ci danno vari modi di ordinare il nostro materiale, per autore, data, argomento, etc.
Inoltre, insieme ai CSS, è possibile ottenere molte altre possibilità.

COME CAMBIARE I RECORDS?

Ci siamo chiesti come è possibile cambiare le informazioni di un database nel web server.
Molti web hosts usano un open-source tool chiamato "phpMyAdmin".
Questo rende l'aggiornamento del vostro database molto più facile.
Una semplice interfaccia permette di effettuare aggiunte o cancellazioni di record e le tabelle possono essere create anche senza la conoscenza di SQL.
Se il vostro web hosts non offre tale strumento, è possibile cercare in giro altre alternative altrettanto valide.
Mi permetto a questo punto di menzionare MySQLGraphic, un open-source tool creato dall'autore di questo articolo che fornisce una interfaccia grafica a MySQL e può essere usato sia sotto Linux che Windows.

Liberamente tradotto da http://www.devarticles.com/art/1/650



Ti potrebbe interessare anche

commenta la notizia

C'Ŕ 1 commento
Pier Paolo
Condividi le tue opinioni su questo articolo!