I blog di Alessioempoli

Data 26 settembre 2018

PHP – NUKE

Per ingrandire il testo, cliccare sul browser

Per ingrandire le foto, cliccarci sopra

                              PHP – NUKE

 

Una guida all’installazione e all’uso del noto sistema di gestione contenuti open source. Impariamo a personalizzare i nostri siti modificando interfaccia, homepage e moduli.

 

PHP Nuke rientra nella categoria di quelle applicazioni dette CMS (Content Management System), ovvero “sistemi per la gestione dei contenuti”.

Queste applicazioni permettono la gestione dinamica dei contenuti di un sito web senza richiedere nozioni di programmazione avanzate per modificare pagine html o pagine dinamiche, scritte con altri linguaggi.

 

PHP Nuke è sviluppato con tecnologia PHP ed  offre tutti gli strumenti necessari per poter creare un sito web e gestire i contenuti al suo interno in maniera semplice ed efficace.

Si compone di una serie di pagine in php che si appoggiano ad un database MySql per “immagazzinare” i dati, mentre all’interno della “custodia” in php agiscono molti componenti sviluppati in altri linguaggi di programmazione e/o tecnologie (da Flash a Java fino a Javascript), che permettono di sviluppare al suo interno applicazioni multimediali.

Cosa molto importante, questo sistema permette la totale personalizzazione di ogni elemento grafico dalla home page del sito, al singolo componente.

 

Perché dunque usare un CMS ed in questo caso PHP Nuke? Ecco alcune delle ragioni che ci convincono della scelta:

 

# La gestione dei contenuti è più facile e veloce rispetto ai siti tradizionali in HTML.

# Permette l’implementazione al suo interno di pagine dinamiche (come forum, newsletter, ecc.).

# Permette una catalogazione dei contenuti.

# È open source.

 

PHP Nuke è rilasciato sotto licenza GNU GPL (ovvero una licenza per software liberamente ridistribuibili). Per ottenere l’ultima versione è necessario, da alcuni mesi, pagare 10 dollari, anche se rimangono gratuite tutte le versioni precedenti l’ultima. Il tipo di licenza adottato, tuttavia, consente a chi acquista l’applicazione di ridistribuirla, anche gratuitamente. Gratuite sono infatti le ultime versioni, anche in italiano. La sua diffusione avviene nell’anno del suo boom, il 2001, quando ormai giunto alla versione 4.4 comincia ad avere un numero sempre crescente di utilizzatori, e la comunità che gli orbita intorno si espande a tal punto da posizionare il pacchetto di distribuzione del programma in testa alla classifica dei file più scaricati di HotScripts.com per parecchio tempo.

Oggi PHP Nuke vanta una vastissima comunità che permette a questo CMS di veder nascere molti componenti che lo rendono sempre più ricco e completo.

Questa guida vuole fornire la possibilità di affacciarsi ad un modo di creare siti web alternativo e molto efficace, che può dare molte soddisfazioni!

 

 

La cartella di PHP Nuke

 

Il viaggio nel mondo di PHP Nuke inizia con il download e l’installazione del software.

Per prima cosa scarichiamo i file di PHP Nuke, consiglio di farlo dal sito ufficiale nella sezione «download»  dove troverete la versione corretta ed ottimizzata in italiano. La versione cui facciamo riferimento è la 7.8

Una volta terminato il download, abbiamo un unico file zippato che spostiamo in una cartella che chiameremo “nuke”:

 

1-

 

Se non si possiede nessun programma per la gestione degli archivi compressi (.zip) occorre scaricarne uno, ad esempio WinZip, per manipolare il file.

Estraiamo l’archivio nella cartella «nuke» e otteniamo i seguenti files:

 

2-

 

La cartella “html” contiene i file di PHP Nuke, ovvero quelli che utilizzeremo per l’installazione.

La cartella “sql” contiene il database di PHP Nuke, che andremmo ad installare tramite PhpMyAdmin.

La cartella “Upgrades” contiene i file da installare nel caso in cui si voglia aggiornare una versione di PHP Nuke già esistente, perciò non la utilizzeremo.

A questo punto siamo pronti per installare

 

 

Installazione di PHP Nuke in locale

 

Cominciamo la nostra avventura con PHP Nuke installandolo sul nostro PC. Per farlo abbiamo bisogno anzitutto di un web server locale.

Un personal web server (o web server locale) è un vero e proprio server HTTP da installare sul proprio PC e che gestisce le richieste del browser consentendoci di navigare pagine che sono sulla nostra stessa macchina (detta localhost, ovvero nodo locale) e non su un server remoto.

 

Il server locale dunque ci consente di provare “a casa” tutte le funzionalità delle nostre pagine web come se queste fossero pubblicate e visibili online.

Il software che utilizzeremo è EasyPHP (giunto alla versione 1.8. EasyPHP contiene non solo il web server apache ma anche un server MySQL, che serve per memorizzare tutte le impostazioni ed i contenuti del sito, nonchè l’immancabile PHP che è il motore che fa girare tutta l’applicazione PHP Nuke.

Una volta scaricato il file, lanciamo il setup di installazione e ci lasciamo guidare dal wizard fino al termine del processo. Una volta terminata l’installazione, appare la finestra di EasyPHP:

 

3-

 

Se l’installazione è avvenuta in modo corretto i semafori saranno verdi, ciò significa che il vostro personal web server è pronto per far girare PHP Nuke.

A questo punto, andiamo nella directory di installazione del programma (solitamente C:ProgrammiEasyPHPxx) e cerchiamo la cartella “www”. Questa è la cartella principale di pubblicazione del sito locale, ed è qui che copieremo i file della cartella “html” (vedi lezione precente).

Apriamo la finestra di EasyPHP (nel caso in cui si sia minimizzata, troviamo l’icona sulla barra delle applicazioni), clicchiamo sul simbolo della “E” in alto a sinistra ed apparirà un menu; scegliamo “configurazione” e quindi “PhpMyAdmin“:

 

4-

Appare questa pagina:

 

5-

 

Da questa pagina possiamo:

 

# Selezionare un database esistente

# Creare un nuovo database

Andiamo su “Crea un nuovo database” ed inseriamo ad esempio “nuke” come nome. Ci appare la pagina per la gestione del nostro database. Il menu in alto ci permette di:

 

# Visualizzare la struttura del database

# Effettuare operazioni con Sql (ad esempio caricare un database esistente)

# Backup del database

# Cercare dati

# Visualizzare struttura delle query

# Eliminare un database

 

6-

 

È il momento di usare il contenuto della cartella “sql”! Abbiamo detto che MySQL ci consente di installare un database già esistente. Per farlo è sufficente, dopo aver selezionato “SQL” dal menu, caricare il file del database (generalmente un file con estensione .sql, ma potrebbe anche avere estensione .txt, .php, ecc.) che troviamo, appunto, nella cartella “sql” della distribuzione che abbiamo scaricato:

 

7-

 

Se il caricamento del file non dovesse andare a buon fine possiamo copiare il contenuto del file di database nell’area di testo “Esegui la/e query SQL sul database “.La funzione “Esporta” ci permette di effettuare il backup del database. Per farlo però dobbiamo spiegare come funziona la gestione dell’esportazione:

 

8-

 

Nella parte di sinistra viene visualizzato l’elenco delle tabelle del nostro database, mentre nella parte sinistra ci vengono proposte le opzioni di salvataggio. Consiglio di non modificare le spunte, a meno di necessità specifiche, quindi lasceremo spuntate le voci “Struttura” e “Dati”.

Per quanto riguarda le tabelle, se non ne viene selezionata nessuna PhpMyAdmin effettuerà il backup di tutte le tabelle.

Nel campo “Compressione” infine se selezioniamo “Nessuno” viene visualizzata la struttura del database a video, “compresso con zip” crea un file con estensione .zip con il nostro database. mentre “compresso con gzip” crea un file con estensione .sql.gz.

Clicchiamo su SQL ed importiamo il database di PHP Nuke (contenuto, come abbiamo visto in precedenza, nella cartella “sql”) caricando il file nuke.sql:

 

9-

 

Come ultimo passaggio dobbiamo indicare a PHP Nuke dove si trova e qual’e il database che abbiamo appena creato. Per fare questo, apriamo il file config.php (nella directory principale della cartella html sul nostro computer) e posizioniamoci in questo punto :

 

10-

 

Ecco come modificare queste righe:

 

# $dbhost=”localhost”;

# $dbuname = “”; //(lasciamo il campo vuoto perchè EasyPHP non richiede un nome utente)

# $dbname = “nuke”; //(il nome del database, nell’esempio lo abbiamo chiamato “nuke”)

 

Gli altri campi possono rimanere inalterati.

A questo punto siamo arrivati alla fine della procedura di installazione. Non ci rimane che aprire il browser e digitare l’indirizzo: http://localhost/nuke

Finalmente appare la home page di PHP Nuke.

 

 

Installazione su server remoto

 

Adesso  seguiamo la procedura da usare per installare PHP Nuke su un server web remoto.

Per installare PHP Nuke su un server web, dobbiamo verificare che chi ci fornisce l’hosting ci metta a disposizione le seguenti caratteristiche:

 

# un server web con PHP (versione non inferiore alla 4.1.1)

# un database MySQL

PHPNuke funziona su tutti i maggiori sistemi operativi tra cui:

 

Linux

Windows

Unix

Mac OSX 10

Sun

FreeBSD

 

Scelto il servizio di hosting che soddisfa i requisiti indicati ed acquistato lo spazio web riceviamo username e password per accedere al nostro “spazio virtuale” nel quale copiamo i file della cartella “html”.

Per farlo abbiamo bisogno di un programma che ci consenta la connessione al nostro spazio web ed il trasferimento dei file, questo tipo di applicazioni si chiamano client FTP. Ne esistono molti da poter utilizzare, se non ne abbiamo uno installato sul nostro pc, possiamo usare un software open source: Filezilla. Lo preleviamo gratuitamente e lo installiamo. Ecco la schermata principale:

 

11-

 

Nella parte sinistra trovate le directory del vostro PC mentre nella parte destra visulizzeremo le cartelle del server web remoto.

Per connetterci allo spazio web, selezioniamo dal menu “file” la voce “Sitemanager”:

 

12-

 

Dopo aver selezionato “Nuovo sito”, nella casella “host” inseriamo il nome del nostro dominio, ad esempio www.miodominio.it, oppure ftp.miodominio.it (a seconda dell’indicazione del provider), lasciando inalterate (quando non diversamente richiesto) le voci “porta”, “tipo server” e “tipo logon”.

Inseriamo i dati dell’account (il nome utente e la password) che ci è stato fornito dal provider. È consigliabile non spuntare la casella “Non salvare la password” e di impostare il sito come default, fino a quando non si aggiunge altro dominio.

Fatto questo selezioniamo “Connetti”. Nella parte destra ci appariranno le cartelle del server in remoto.

Ora cerchiamo la cartella di PHP Nuke sul nostro PC attraverso la finestra nella parte sinistra, ed apriamo sul server remoto la cartella che possiamo utilizzare per pubblicare i nostri files facendo riferimento alle indicazioni del provider.

Finalmente copiamo il contenuto della nostra cartella “html” nella cartella remota.

Una volta terminata la copia di tutti i files e cartelle dobbiamo impostare i permessisui file. Questa operazione permette al programma di accedere ai files con diritti di esecuzione, scrittura o lettura, che in generale potrebbero non essere concessi.

Attenzione, questo vale solo se stiamo installando PHP Nuke su un server Linux/Unix, nel caso di installazione su server Windows non dobbiamo fare nulla.

La corretta impostazione dei permessi è fondamentale affinchè PHP Nuke funzioni correttamente. Dunque clicchiamo con il tasto destro del mouse sul file o sulla cartella ed eseguiamo l’operazione CHMOD (o “Attributi file” nel caso di Filezilla):

 

13-

 

I permessi da dare sono 666 per i files e 777 per le cartelle.

Questo procedimento è da effettuare su tutte le cartelle ed i files, ed è da ripetere ogni volta che aggiungeremo un file o una cartella a PHP Nuke.

Dobbiamo fare ancora due passaggi per poter poi lavorare sul nostro sito, ovvero creare il database MySql e configurare PHP Nuke affinchè riconosca il database.

Il nostro provider ci ha fornito gli account (username e password) sia per il servizio FTP, sia per accedere alla gestione del database MySql (qualche volta sono identici tra loro). Inoltre ci ha dotato di un indirizzo per raggiungere il pannello di controllo di MySql. Una volta entrati, la procedura da seguire è identica a quella descritta in precedenza.

Siamo quasi pronti per iniziare a lavorare sul nostro nuovo sito, dobbiamo configurare PHP Nuke affinchè dialoghi con il database che abbiamo creato. Per fare questo, apriamo il file config.php (nella directory principale della cartella html sul nostro computer) e posizioniamoci in questo punto :

 

14-

 

Ecco come dovremo modificare queste righe:

 

# $dbhost=”localhost”;

# $dbuname = “xxx”; (inseriremo lo username fornito dal provider)

# $dbname = “nuke”; (il nome del database, nell’esempio lo abbiamo chiamato “nuke”

 

Gli altri campi possono rimanere inalterati. Finalmente apriamo il browser e colleghiamoci all’indirizzo del nostro sito, troviamo la homepage di PHP Nuke.

 

 

Installazione su sistemi Linux

 

Adesso  vedremo come installare Apache, PHP e MySql su sistemi linux (Mandrake e Red Hat) usando strumenti visuali. Naturalmente, chi è già un utente linux esperto non ha bisogno di questa spiegazione.

Per installare i pacchetti dai CD (che è la procedura più semplice) utilizziamo il tool di applicazione software chiamato RPMdrake.

Inserita la password di root ci viene chiesto cosa vogliamo installare, nel campo “Trova” scriviamo “Apache” e selezioniamo il pacchetto principale, quindi installiamo anche i files delle dipendenze:

 

15-

 

Scegliamo “installa”, a quel punto ci verrà chiesto di inserire il CD (o i CD) contenenti l’installazione con gli RPM. Una volta installato correttamente apache andiamo nel “mandrake control center” e selezioniamo “Avvia” per il servizio httpd (gli Rpm per Linux Mandrake e Red Hat corrispondono ai file .exe di windows).

 

16-

 

A questo punto apriamo il browser e digitiamo http://localhost, se l’installazione è andata a buon fine ci apparirà la pagina di benvenuto di Apache.

Ripetiamo le operazioni nello stesso identico modo per Mysql e per PHP. Nel fare questo facciamo attenzione perchè MySql richiede di essere avviato nel “mandrake control center” mentre php non richiede di essere avviato.

La cartella in cui inserire i files di PHPNuke è var/www/html, è consigliabile fin da subito installarvi phpMyAdmin e configurare questa cartella con permessi 777, in questo modo anche un utente normale che non possiede i permessi di ROOT, potrà lavorarci.

 

Cerchiamo adesso di risolvere alcuni problemi relativi alla configurazione di Red Hat 8.0 con PHP, Apache e Linux. Purtroppo Red Hat, non collega PHP a Mysql e ci costringe a dei “trucchetti” per poterlo far funzionare.

Nel caso i pacchetti Apache PHP e Mysql non siano installati dobbiamo procedere alla loro installazione. Dalla Barra degli strumenti andiamo su Impostazioni del sistema e poi installazione pacchetti:

 

17-

 

Entrati nel sistema (come root) selezioniamo Apache, PHP e Mysql:

 

# Apache: È collocato in “Server Web”

# PHP: È collocato in “Server Web”

# Apache: È collocato in “Server per database SQL”

 

Clicchiamo su “aggiorna” così Red Hat inizierà la procedura di aggiornamento dei pacchetti.

L’ultima operazione che dobbiamo fare è la configurazione del file php.ini per farlo dialogare con MySql. Editiamo il file php.ini in maniera che possa supportare anche gli script in php che iniziano con <? e non solamente quelli che iniziano con <?php, poi installiamo il file mysql.so

Apriamo il file php.ini che si trova in “etc/php.ini” con un comune editor di testi e configuriamo su ON il seguente parametro:

 

18-

 

A questo punto copiamo (con i permessi di root) il file mysql.so in “usr/lib/php4/”

Riavviamo ora i servizi attraverso il Tool grafico:

 

19-

 

 

Apriamo il nostro browser ed andiamo all’indirizzo http://localhost

 

 

La pagina principale

 

In questa lezione cominciamo ad analizzare le funzionalità presenti in PHP Nuke cercando di capire cosa ci mette a disposizione questo strumento.

Iniziamo dalla pagina principale. Ecco come appare (nella sua versione “base”) la prima pagina che visualizziamo dopo aver terminato il processo di installazione:

 

20-

 

Il sistema è strutturato come un portale con layout a 3 colonne, nelle due laterali sono inclusi i blocchi, in quella centrale i moduli di funzione. Questi posizionamenti iniziali sono solo quelli predefiniti, nulla ci impedisce di modificare completamente la struttura.

Oltre le 3 colonne di cui abbiamo già parlato abbiamo anche un header (intestazione) e un footer (piè di pagina), in genere sono le prime cose che modifichiamo per personalizzare il sito.

 

i blocchi

I blocchi sono presenti nelle colonne di destra e/o sinistra del nostro portale e riportano delle funzioni che si ripetono in tutte le pagine del sito (ad esempio blocco di menu, blocco dei banner, blocco di login). Possiamo scegliere se rendere un blocco visibile o meno a seconda di determinate condizioni. Ad esempio il blocco di amministrazione appare solo se un utente è loggato.

Uno degli aspetti più interessanti è la possibilità di personalizzare i blocchi utilizzando l’interfaccia di amministrazione di PHP Nuke e, volendo, di inventarne di nuovi, oltre a quelli previsti dal CMS.

 

Ci sono due gruppi di blocchi:

 

# i blocchi di sistema (menu principale, search, il menu delle categorie ed i sondaggi), che hanno un comportamento predefinito e sono in numero fisso

# i blocchi utente, che possono essere creati liberamente.

 

Da segnalare che dalla versione 6 in poi, si possono posizionare anche nella colonna centrale della homepage, scegliendo inoltre se posizionarli nella parte alta (top) della colonna o nella parte bassa (bottom).

 

I moduli

I moduli sono la parte principale della pagina, compaiono nel blocco centrale ognuno con una funzione specifica. Ad esempio il modulo news ha la funzione di riportare gli articoli, il modulo search di fare una ricerca interna al nostro sito, ecc. In genere è il blocco centrale ad ospitare le notizie più recenti e gli avvisi.

 

Gli avvisi consentono di mostrare messaggio dell’amministratore, per questo tipicamente occupano una posizione che li rende evidenti. Può trattarsi di un’introduzione al contenuto del sito o semplicemente una nota amministrativa. Gli avvisi possono esserce diretti alle seguenti categorie:

 

# tutti i visitatori

# gli utenti anonimi

# gli utenti registrati

# gli amministratori.

 

In seguito  vedremo più nel dettaglio cosa sono i blocchi ed i moduli, e come si possono gestire e personalizzare.

 

 

I moduli

 

I moduli appaiono nella colonna centrale della pagina, e rappresentano come abbiamo visto il “nucleo” della pagina stessa, ciascuno con la propria funzione e ciascuno con la possibilità di essere impostato nella homepage.

Nell’installazione base di PHP Nuke sono già presenti diversi moduli (news, forum, ecc.) ed altri possono essere scaricati dai siti di PHP Nuke ed installati. La vasta comunità esistente permette di trovare in rete tantissimi moduli diversi, con molteplici funzionalità.

Passiamo ad esaminare le funzionalità messe a disposizione dai moduli preinstallati.

 

Il modulo «news»

Il modulo news gestisce una serie di notizie suddivise per soggetto (topic) e per categorie. In genere a ciascun topic è associata una immagine. Se cliccchiamo sull’immagine ci viene mostrato elenco degli articoli (news) attinenti il topic relativo:

 

21-

 

Da segnalare che, a partire dalla versione 6.6, è possibile assegnare più “topic” alla stessa notizia.

In parallelo ai topic troviamo le categorie, che rappresentano un modo alternativo di catalogazione delle news. Non sono, quindi, delle sotto-categorie dei topic ma dei “raccoglitori” indipendenti.

Ad esempio immaginiamo che il nostro sito contenga notizie ed abbia 3 topic:

 

# Soggetto A

# Soggetto B

# Soggetto C

 

Potremmo pensare delle categorie che parlino di:

 

# News dal mondo

# News dall’Italia

# News sportive

 

Supponiamo di avere un articolo che contenga “News dal mondo/Soggetto A” , oppure “News sportive/Soggetto C”. Cliccando, ad esempio, sul topic Soggetto A, avremo una selezione di tutti gli articoli che parlano del Soggetto A. Cliccando la categoria “News dal mondo”, avremo una selezione degli articoli che parlano di “News dal mondo” indipendentemente dal topic cui appartengono.

Il numero di News pubblicate nella homepage è variabile, e si può modificare dall’amministrazione; inoltre, se il testo è troppo lungo PHP Nuke metterà in automatico un link “leggi tutto” per visualizzare l’intero testo.

A ciascun articolo sono associate altre informazioni che vengono visualizzate sotto il testo dell’articolo (come ad esempio l’autore, la possibilità di esprimere un giudizio sull’articolo, di inviarlo ad un amico, ecc.)

 

Downloads

Il modulo Downaloads è molto utile e molto complesso ed offre la possibilità di gestire un vero e proprio archivio di files:

 

22-

 

Questo modulo permette diverse operazioni, come ricercare un file all’interno del database del sito, aggiungere un nuovo file (salvo poi essere approvato ed attivato dall’amministrazione), visualizzare un elenco dei files nuovi, più visitati e scaricati e maggiormente votati.

Infine permette di navigare all’interno delle directory dei files, divisi in categorie: selezionando quella che ci interessa possiamo prelevare i files, votarli o segnalarli:

 

23-

 

AvantGo

Il modulo AvantGo permette di visualizzare il sito su dispositivi mobili come ad esempio un palmare, essendo una versione semplificata del modulo News.

 

Feedback

Feedback serve per inviare un messaggio all’amministratore del sito. L’indirizzo e-mail di destinazione può essere modificato nell’amministrazione, nella gestione delle preferenze.

 

FAQ

FAQ (Frequently Asked Questions) ci mostra un elenco delle domande più frequenti su un certo argomento all’interno del sito, ed è gestibile dall’amministrazione.

 

Journal

Interessante il modulo Journal, una sorta di “blog” dove l’utente (iscritto al sito) può inserire un testo, creando un “giornale” e dando la possibilità ad altri utenti di rispondere attraverso i commenti.

 

Private messages

Tutti gli utenti registrati hanno un sistema di messaggistica interno con cui possono scambiarsi messaggi appunto “Private messages”. Nel box di login apparirà il numero di messaggi che ci sono in archivio e sarà possibile gestirli rispondendo o eliminadoli. Dalla versione 6.5 il modulo della messaggistica è stato cambiato integrandolo con il modulo messaggi privati del forum PHPBB risultando integrato in modo molto stretto con il sistema di messaggistica del forum.

 

Recommend Us

Il modulo Recommend Us consente di inviare una mail ad un indirizzo con l’invito a visitare il nostro sito. Come le altre anche questa funzione è personalizzabile dall’amministrazione.

 

Search

Search permette una ricerca all’interno del sito sia nei contenuti sia nelle voci di menu, ecc. Permette inoltre una ricerca multipla, combinando le varie opzioni dei menu a tendina:

 

24-

 

Statistics

Il modulo Statistics fornisce delle statistiche sul nostro sito (numero di pagine totali visualizzate, tipo di Browser e sistema operativo utilizzato fino al numero di utenti iscritti).

 

Stories Archive

Stories Archive è l’archivio di tutte le notizie pubblicate sul sito ordinate per mese di pubblicazione. Una volta scelto il mese, appare l’elenco delle news, con la possibilità (mediante le iconcine nella parte destra) di inviare ad un amico l’articolo o di visualizzare una versione stampabile.Contiene inoltre un motore di ricerca relativo alle news.

 

25-

 

Submit News

Submit News consente agli utenti (o ai semplici visitatori del sito) di proporre un articolo all’amministratore che verrà poi vagliato e, se ritenuto adatto ai contenuti del sito, pubblicato.

Gli utenti non hanno tutte le possibilità di catalogazione che ha l’admin, possono infatti decidere il titolo dell’articolo, l’argomento (Topic) la lingua e il testo. Non possono inserirlo in determinate categorie o scegliere se deve essere pubblicato in home page o no. Non possono decidere inoltre la data di pubblicazione dell’articolo.

 

Surveys

Il modulo Surveys (Sondaggi) dà la possibilità all’amminstratore di creare un sondaggio che apparirà poi in un blocco o nell’elenco dei sondaggi. Gli utenti possono votare questo sondaggio (una sola votazione al giorno), ed eventualmente commentare. Inoltre è possibile visualizzare la lista dei sondaggi precedenti consultandone i risultati finali.

 

Altri moduli base

 

# Top 10: è la “top ten” dei contenuti del nostro sito, indicando i 10 articoli più letti, i 10 sondaggi più votati, ecc.

 

# Topics: elenca le categorie principali di PHP Nuke. Una volta entrati all’interno di questo modulo abbiamo la possibilità, cliccando sull’icona corrispondente al Topic, di effettuare una selezione degli articoli e in automatico, vedere tutti gli articoli corrispondenti a quel topic. È presente inoltre la funzione “search” per affinare la nostra ricerca all’interno di questo argomento.

 

# Web Links: è una raccolta di links. Il modulo ha le stesse funzionalità del modulo download, il motore di ricerca per i links e l’icona “new” per far vedere i links nuovi inseriti dopo l’ultima visita.

 

# Your Account: consente l’amministrazione del nostro profilo utente (funziona solo con gli utenti registrati), e permette di modificare varie impostazioni, come le proprie informazioni, personalizzare la homepage, selezionare il tema di PHP Nuke, ecc.

 

 

I blocchi

 

I blocchi sono delle zone del nostro sito che funzionano come dei “contenitori” di diverse funzioni (blocco del menu, blocco dei login, ecc.), e che si ripetono in tutte le pagine del nostro sito.

Dalle ultime versioni di PHP Nuke è possibile inserire i blocchi anche nella parte centrale della homepage, sia in alto (top) sia in basso (bottom).

Passiamo a descrivere i blocchi di base, installati con PHP Nuke.

 

Moduli

Il blocco “Moduli” elenca i moduli attivi, e viene utilizzato come menu principale del sito. Se siamo registrati come amministratori in questo blocco verranno visualizzati anche i moduli non attivi e nascosti:

 

26-

 

Who’s Online

“Who’s Online” elenca il numero di utenti online sul sito:

 

27-

 

Languages

Il blocco “Languages” consente di visualizzare l’interfaccia nella lingua desiderata attraverso un menu a tendina o ad una visualizzazione grafica (mediante bandierine, opzione modificabile dall’amministrazione):

 

28-

 

Login

Login permette agli utenti registrati di autenticarsi inserendo nickname e password. Permette inoltre di accedere alla pagina di registrazione al sito.

 

29-

 

Altri blocchi predefiniti

# Survey consente agli utenti di votare il sondaggio proposto.

# Big Story of Today, infine, visualizza l’articolo più letto della giornata.

 

 

Il pannello di amministrazione

 

PHP Nuke, come abbiamo visto, è un sistema per la gestione dei contenuti. Questa gestione è consentita principalmente dai pannelli di amministrazione ai quali si accede puntando alla pagina admin.php (www.nomesito.com/admin.php).

Alla richiesta di login, inseriamo il nickname e la password di amministrazione (l’utente non deve autenticarsi da questa pagina ma deve farlo attraverso il modulo di login “Your Account”).

Una volta effettuato l’accesso con i diritti di amministrazione accediamo all’interfaccia di amministrazione che può essere testuale o grafica, a seconda della impostazione data nelle preferenze generali. L’interfaccia grafica si divide in:

 

# Menu Amministrazione

# Moduli di Amministrazione

 

31-

 

Per impostare la modalità di amministrazione grafica andiamo su preferenze e impostiamo in “Opzioni grafica” la voce “Menu grafico in amministrazione” su SI, se la impostiamo su NO vedremo solo link testuali.

Vediamo ora nel dettaglio le funzioni che possiamo utilizzare nell’amministrazione di PHP Nuke.

 

Blocchi

La funzione Blocchi è molto importante perché ci permette di gestire le due colonne (destra e sinistra) del nostro sito e di stabilire la posizione dei blocchi.

Ci viene presentata per prima la lista dei blocchi che abbiamo sul nostro sito, con la possibilità di modificarli, disattivarli, cancellarli o visualizzarli nell’amministrazione.

Con la funzione di editing possiamo decidere il nome del blocco, la sua posizione (sinistra, centro su, centro giù, destra), se attivarlo o no, un’eventuale scadenza e quale categoria di utenti può visualizzarlo

 

32-

 

Creare un nuovo blocco

In PHP Nuke i blocchi possono essere principalmente di due tipi:

 

# RSS/RDF è un tipo di blocco che preleva da altri siti un file con delle news che verranno poi visualizzate sul nostro sito.

# Blocchi di contenuto hanno come contenuto il testo che inseriamo attraverso l’editor.

Per creare un blocco del primo tipo, RSS/RDF, dobbiamo scegliere la fonte delle news dall’elenco disponibile nella lista o aggiungerne una utilizzando il link “Setup”.

Per i blocchi di contenuto sarà sufficiente inserire il testo tralasciando il campo RSS/RDF.

Una volta creato il nuovo blocco clicchiamo su “Crea Blocco”.

 

Gestione moduli

La gestione dei moduli ci permette di gestire i moduli installati, modificandoli, attivandoli o disattivandoli e stabilendo chi può visualizzarli. È particolarmente importante la funzione che ci consente di stabilire quale modulo dovrà apparire in homepage come pagina principale:

 

33-

 

News

News ci permette di aggiungere un articolo al modulo News, attraverso un editor di testo. Inoltre comprende le opzioni per personalizzarne la pubblicazione (in homepage o no, data di pubblicazione dell’articolo, ecc.):

 

34-

 

# Titolo: Inserisce il titolo della news

# Argomento: Inserisce la News in una categoria per topic

# Categoria: Determina in quale categoria dovrà essere collocata la news, se la categoria è “Articolo” la news verrà inserita in homepage,oppure, creando una nuova categoria (lo si può fare dal link a fianco) possiamo archiviare gli articoli senza che siano visualizzati in homepage

# Pubblica in home page: Permette di scegliere se pubblicare la news in homepage oppure no, ma solo se quest’ultima appartiene alla categoria Articoli”.

# Attiva commenti: Determina l’opzione di commento per la news.

# Lingua: Se nelle preferenze abbiamo attivato la funzione Multilingua ci viene chiesto in quale lingua visualizzare l’articolo

# Testo: Testo che appare come anteprima.

# Testo esteso: È il testo che appare quando clicchiamo su “Leggi tutto”.

# Articolo programmato: Permette di stabilire data e ora di pubblicazione della news.

# Antemprima o Invia: A seconda della scelta l’aticolo viene mostrato in anteprima o pubblicato.

# Sondaggio: Permette di associare un sondaggio ad una singola news.

 

Contenuto

La funzione Contenuto ci permette di aggiungere un nuovo contenuto al sito ed una nuova categoria.

Un contenuto è composto da un Titolo, un Sottotitolo, un Testo Intestazione, un Testo Pagina, un Testo piè di pagina ed una Firma. Ci viene fornito un editor col quale formattare il testo, aggiungere link ed usare i costrutti HTML grazie ad un pannello di gestione del codice.

È possibile creare dei links che puntano direttamente alla pagina creata in modo da richiamarla da menu o da bottoni. Il percorso del link potrebbe essere simile a questo:

 

35-

 

Dove pid=4 è l’ID della pagina che richiama direttamente il contenuto

 

Downloads

Questa funzione consente di aggiungere file da mettere a disposizione nell’area download organizzandoli in categorie e sottocategorie. Per caricare un file dobbiamo effettuarne l’upload a mano ed inserirne il percorso sul nostro sito in quanto PHP Nuke per ragioni di sicurezza non consente l’upload.

Ad esempio, se il file si trova nella cartella “file” dobbiamo indicare il percorso www.nomesito.com/file/nomefile.zip

 

Funzioni per i visitatori

Queste funzioni sono orientate alla gestione dei diritti e delle azioni visitatori del nostro sito.

 

# Edit Amministratori permette di aggiungere amministratori e di modificare i dati di quelli presenti, assegnando i livelli di accesso. Ad esempio, ad un amministratore potrà essere consentita solo la funzione di inserimento News.

# L’Edit Utenti come il precedente consente di gestire i dati degli utenti registrati al sito, aggiungendone eventualmente di nuovi.

# HTTP Referers ci permette di scoprire la provenienza degli ultimi visitatori del nostro sito.

# IP Ban fornisce uno strumento per impedire ad un determinato IP di partecipare al sito.

# Messaggi ci consente di creare un blocco nella parte centrale della homepage per inviare messaggi a determinate categorie di utenti, ad esempio potremo creare un messaggio da mostrare solo agli utenti iscritti e così via.

# Dalle ultime versioni di PHP Nuke viene inserito nel sistema base il Forum PHPBB. Vista la sua complessità e le sue molteplici funzioni vi consiglio di visitare il sito web ufficiale per ogni riferimento, all’indirizzo http://www.phpbb.com.

 

Funzioni per le promozioni

 

# La funzione Newsletter permette di inviare un messaggio email agli utenti registrati che si sono iscritti a questo servizio.

# Banners gestisce gli spazi pubblicitari del nostro sito, fornendo la possibilità di organizzare i banner per categorie ed eventualmente per cliente.

 

Funzioni per il DB

 

Sono quelle funzioni che riguardano la base di dati, ovvero l’insieme delle informazioni relative sia alla struttura, sia ai contenuti del nostro sito. La durata delle operazioni sul DB varia dai pochi secondi ad alcuni minuti e dipende dalla quantità di informazioni immagazzinate.

 

# Backup DB ci permette di creare una copia di backup del database del nostro sito. Attivata questa funzione il server crea un file che possiamo salvare sul nostro computer.

# Optimize DB permette di ottimizzare l’immagazzinamento dei dati.

 

Altre funzioni

 

# La funzione Encyclopedia permette di creare una sorta di glossario dove inserire elenchi di parole con i relativi significati.

# FAQ gestisce le Frequently Asked Question che vengono organizzate in categorie. Una volta creata la categoria attraverso il pulsante di modifica (edit) possiamo inserire le domande.

# Reviews serve a gestire i testi di recensione

# Polls/Surveys l’amministrazione dei sondaggi che permette di inserire le varie opzioni e di creare un messaggio che annuncerà il nuovo sondaggio sul sito

# Topics gestisce le categorie delle news del sito

# Web Links la gestione dei link ad altri siti.

 

 

Le preferenze

 

Una parte importante dell’amministrazione è rappresenteata dalle preferenze. Questa sezione permette di modificare:

 

# Info Generali Sito

# Opzioni Multilingua

# Messaggi Piè Pagina

# Backend Configurazione

# Notifica Nuovi Articoli all’Amministratore

# Moderazione commenti

# Opzioni Commenti

# Opzioni Grafica

# Opzioni Varie

# Opzioni Utente

# Opzioni di Censura

# Vediamo nel dettaglio le varie funzioni.

 

Info Generali Sito consente di modificare il nome del nostro sito, l’indirizzo, il logo (che deve essere contenuto nella cartella “images”), un eventuale slogan, la data di inizio pubblicazione, l’indirizzo email dell’amministratore (è l’indirizzo di riferimento per tutti i contatti dell’utente con chi gestisce il sito), il numero massimo di articoli che vogliamo visualizzare in Top Page, Home e nel Box Articoli Vecchi.

Permette di consentire o vietare il prelievo delle news dal nostro sito, attraverso il file ultramode.txt, di consentire o meno ad utenti anonimi l’inserimento di messaggi, il tema di defualt, la lingua del sito ed il formato dell’ora (per noi è it_IT).

Con Opzioni Multilingua possiamo attivare la funzionalità multilingua del sito e decidere la visulizzazione della scelta (bandierine o menù a tendina)

Messaggi Piè Pagina permette di modificare il testo che appare in fondo alle pagine del nostro sito.

Il messaggio che appare quando si scaricano le news dal nostro sito è configurabile da Backend Configurazione

Notifica Nuovi Articoli all’Amministratore specifica l’indirizzo di posta elettronica cui sarà inviato il messaggio di notifica dell’inserimento di una news da parte di un utente.

Moderazione Commenti ed Opzioni Commenti stabiliscono se i commenti dovranno essere moderati da un utente, dall’amministratore o non essere moderati, e la dimensione massima (espressa in bytes) del commento.

Opzioni Grafica permette di stabilire la modalità di visualizzazione del pannello di amministrazione che può essere testuale o grafico (a icone).

Opzioni Varie consente di attivare i referenti HTTP, cioè la provenienza degli utenti che visitano il nostro sito, il numero massimo dei referrers e se attivare o meno i commenti ai sondaggi ed agli articoli.

 

Opzioni utente consente di:

 

# stabilire la lunghezza minima della password degli utenti nel momento della registrazione

# attivare o meno i messaggi in Broadcast, ovvero dei messaggi che gli utenti possono lasciare in homepage

# attivare Headlines Reader, ovvero i messaggi provenienti da altri siti via RSS/RDF

# consentire agli utenti di scegliere il numero di news visualizzate in homepage

 

Infine con le Opzioni di Censura stabiliamo quali parole censurare e cosa visualizzare al loro posto.

 

Personalizzare la home page

 

L’homepage di PHP Nuke è un contenitore che serve ad includere e richiamare i vari blocchi ed i moduli che la compongono. Questa linea è generale ed è applicabile ad ogni pagina di un sito realizzato con questo sistema:

 

36-

 

Quando accediamo alla pagina inizale del nostro sito, index.php, PHP Nuke effettua le seguenti operazioni:

 

# Include il file main.php

# Verifica sul database quale modulo è impostato per essere quello iniziale

# Verifica la provenienza dell’utente

 

Tutti i contenuti vengono richiamati attraverso stringhe (indirizzi o querystring) che contengono le informazioni sui files da includere al file modules.php. Ad esempio con la stringa:

 

37-

 

comandiamo che nella pagina modules.php deve essere incluso il file index.php che si trova nella cartella “modules/Downloads”.

Nella root (ovvero la cartella principale) sono presenti anche i seguenti files:

 

# admin.php: Rimanda all’amministrazione del sito

# backend.php: gestisce l’output delle news che possono essere prelevate da altri siti

# config.php: È il file di configurazione di PHP Nuke che contiene le istruzioni per dialogare con il database

# footer.php: Contiene un insieme di variabili relative al footer.

# header.php: Gestisce le variabili relative all’header

# mainfile.php e ultramode.txt: Contengono tutte le funzioni necessarie alla gestione di PHPNuke

# robots.txt: Una serie di istruzioni per i motori di ricerca per indicare quali sono le cartelle da non indicizzare

…e le cartelle:

 

#Blocks” contiene tutti i blocchi che vengono inclusi in PHP Nuke

#Images” in cui sono contenute tutte le immagini relative a PHP Nuke. Ad esempio nella cartella “banners” ci sono tutte le immagini dei banner in rotazione sul sito, etc.

#include” contiene frammenti di codice scritti su file che sono inclusi, quando occorre, nelle pagine del sito, principalmente in mainfile.php e header.php.

#language” immagazzina i files di traduzione del modulo base di PHPnuke. Il file di linguaggio deve essere nominato con sintassi lang-nomelingua.php.

#Modules” serve per contenere le cartelle dei nuovi moduli.

# “themes” vengono aggiunte qui le interfacce grafiche dette “temi”, ogni cartella ha il nome del tema in questione che contiene un file principale che si chiama theme.php e gli altri file del tema.

 

La cartella “admin”, dell’amministrazione di PHP Nuke, presenta 4 sotto-cartelle, case, language, links e modules.

Il codice che gestisce l’amministrazione dal punto di vista operativo è contenuto in file nella cartella “modules“, mentre la cartella “links” contiene piccoli file che servono per determinare il percorso di uno specifico modulo di amministrazione. Ad esempio per il modulo di amministrazione per le FAQ ecco il contenuto di links.faq.php:

 

38-

 

Questo modulo verifica i diritti di amministrazione, passa un case (op=FaqAdmin) che dice al file admin.php (che include tutti i moduli di admin) quale modulo andare a richiamare, associa un valore per tradurre il termine faq e associa una immagine per l’amministrazione visuale (faq.gif).

La cartella “languages” contiene i file delle lingue e permette di modificare tutte le voci in lingua che vengono visualizzate sul sito. Infine la cartella “case” contiene quei file che determinano casi per i quali usare moduli particolari. Questo è importante quando, usando lo stesso file di admin si vogliono fare operazioni diverse al verficarsi di certe condizioni.

 

39-

 

Entrambi i case richiamano il file “adminfaq.php” ma gli fanno compiere operazioni diverse. Il primo richiama il file nella schermata di default, il secondo invece concede il permesso di inserire una nuova categoria.

Questo avviene attraverso la stringa (querystring) admin.php?op=FaqAdmin nel primo caso e admin.php?op=FaqCatGo nel secondo.

 

 

Uso dei moduli

 

I moduli, come abbiamo visto, sono la parte principale della pagina ed appaiono nel blocco centrale, ciascuno con una funzione specifica.

Ogni modulo ha una propria cartella posta all’interno della cartella “padre” Modules. Tutti i file presenti nella cartella del modulo servono ad implementarlo.

 

40-

 

Per usare un modulo ci si collega (o si include) alla pagina modules.php che contiene tutte le funzioni necessarie alla gestione dei moduli. Per comunicare a modules.php quale modulo caricare e le eventuali opzioni vi si fa riferimento aggiungendo alcune variabili alla querystring.

Un esempio pratico potrà chiarirci le idee. Supponiamo di voler richiamare il modulo Downloads, per farlo è sufficiente aggingere alla stringa la variabile “name” ed assegnarle il nome del modulo:

 

41-

 

Lo script modules.php a sua volta fa riferimento alla pagina principale del modulo che è obbligatorio dichiarare come index.php. Questa si trova all’interno della cartella del modulo insieme ad altre eventuali pagine che svolgono funzioni particolari.

Per fare riferimento a queste funzioni particolari bisogna specificare, oltre il nome del modulo (variabile name) anche l’operazione specifica, valorizzando la variabile “d_op”.

Ad esempio se volessimo chiamare invece la funzione del modulo Download che aggiunge un nuovo file, la nostra stringa sarà:

 

42-

 

Questo meccanismo ci permette, ad esempio, di creare link nel nostro sito che puntino direttamente ad una funzione specifica, a seconda delle nostre esigenze.

Da segnalare inoltre che ogni cartella dei moduli contiene una sottocartellalanguage” che permette di modificare la localizzazione del modulo.

 

 

Creare i “blocchi”

 

Abbiamo già detto che possiamo considerare i blocchi come zone del nostro sito che funzionano da “contenitori” di diverse funzioni (blocco del menù, blocco dei login, etc..), e che si ripetono in tutte le pagine del nostro sito.

I blocchi possono essere di tre tipi:

 

# RSS/RDF

# Blocchi di contenuto

# Blocchi di file

 

Abbiamo già affrontato la creazione di blocchi del primo e del secondo tipo

Adesso  invece illustreremo come creare blocchi del terzo tipo, con richiami al database.

Come i moduli anche i blocchi sono contenuti in una cartella, stavolta chiamata “blocks” e per essere visibili nell’amministrazione (e poter essere quindi attivati o modificati) hanno dei nomi che seguono la sintassi:

 

43-

 

44-

 

Nei blocchi possiamo inserire codice scritto in qualsiasi linguaggio di programmazione (HTML, PHP, Perl, Flash, etc..) quindi possiamo anche creare pagine dinamiche che interroghino il nostro database.

Facciamo un esempio pratico. Supponiamo di voler creare un blocco che visualizza le pagine visitate ieri nel nostro sito. Per facilitarci il compito consideriamo una sola query ed un solo valore.

Chiamiamo il nostro blocco “pagine”, perciò il nome completo del blocco sarà block-pagine.php

Per cominciare apriamo il tag php:<?. Lo script per intero potrebbe essere:

 

45-

 

Ecco due regole da tenere in considerazione:

1) Quando creiamo un blocco per effettuare una query all’inizio del codice ricordiamoci sempre di inserire:

 

46-

 

Questo impedirà agli utenti di accedere direttamente alla cartella “blocks”.

2) La variabile $content rappresenta sempre il contenuto che il blocco mostra quando viene richiamata la pagina.

 

 

Creare i “moduli”

 

Fin’ora dei moduli sappiamo che appaiono nel blocco centrale della pagina ciascuno con la sua funzione, che sono scritti in file PHP contenuti nella cartella “modules” e che ciascun modulo possiede una parte necessaria alla visualizzazione per gli utenti finali (all’interno del blocco centrale) ed una parte di che serve per l’ amministrazione.

Per chi ha dimestichezza con il linguaggio PHP realizzare un modulo può essere una procedura semplice, per chi invece non si sente troppo ferrato con questa tecnologia iniziamo insieme a crearne uno.

Possiamo vedere come inserire un modulo vuoto. Nella cartella “modules” creiamo una nuova cartella che chiamiamo “prova”:

 

47-

 

All’interno di questa cartella creiamo i file in php che eseguiranno le operazioni di cui abbiamo bisogno. Ora nel pannello di amministrazione dei moduli appare la voce che abbiamo appena creato:

 

48-

 

Vediamo ora come richiamare i moduli all’interno delle nostre pagine. L’accesso è mediato da un componente di PHP Nuke che possiamo chiamare “module manager”, ed è accessibile chiamando il file modules.php.

Il module manager gestisce varie operazioni, la principale è modload, selezionata impostando appropriatamente la variabile “op”.

Per la precisione, la stringa URL completa che in generale consente di accedere ad un modulo è:

 

49-

 

Esaminiamo la stringa di richiesta. Anzitutto occorre utilizzare il nome del modulo, che è modules.php. Questo modulo prende una serie di parametri: il parametro “op” è essenziale: infatti seleziona la funzione di caricamento modulo.

Il modulo da caricare viene specificato con l’opzione “name” e poiché un modulo può essere composto da più file, il parametro “file” si occupa di selezionare quello che vogliamo. Di solito è semplicemente l’index.

Inoltre possiamo aggiungere alla stringa altri parametri, specifici del modulo: tipicamente si specificano parametri per selezionare le sotto-funzioni del modulo. Questi parametri funzionano in modo analogo a “op”, solo che sono sfruttati internamente al modulo, e per questo motivo non possono prendere il nome di “op” per non causare ambiguità.

Insieme a “op” vi sono altre variabili che non vanno usate. Queste prendono il nome di variabili riservate e sono le seguenti:

 

50-

 

Le ultime tre le abbiamo già viste, sono appunto i parametri standard che vengono passati a al modulo. La variabile $index indica se il modulo corrente deve essere visualizzato a tre colonne oppure due.

L’URL di richiamo del modulo deve essere generata anche quando si usano dei form. Nel caso volessimo richiamare il modulo da un form, aggiungeremmo un codice simile a questo:

 

51-

 

In questo modo i parametri che servono a richiamare il modulo vengono presi dai campi del form invece di essere espressi direttamente nella stringa di richiesta.

Applichiamo quanto detto e realizziamo un semplice modulo che visualizza un elenco di varie opzioni.

Il codice del modulo è contenuto nel file modules/prova/index.php. Le regole di codifica dei moduli impongono che il modulo abbia una intestazione che impedisca l’accesso ad utenti non autorizzati. Il codice comincia così:

 

52-

 

Notiamo l’inclusione della intestazione all’inizio, e del footer alla fine. Il corpo del modulo invece consiste in una selezione per decidere se richiamare la funzione dettaglio(), o elenco().

Il dettaglio viene richiamato quando è stato selezionato una particolare opzione da visualizzare; questo viene deciso dal fatto che il parametro “fn” assume il valore “det”.

In alternativa, e come comportamento predefinito, viene richiamato l’elenco. Ecco il codice che produce l’elenco:

 

53-

 

Come è prevedibile, eseguiamo una interrogazione al database che seleziona il testo di tutte le opzioni. Il collegamento richiama il modulo stesso, stavolta con fn=det, citando quale testo si vuole visualizzare. Il codice della funzione che visualizza il dettaglio è il seguente:

 

54-

 

ovvero una interrogazione che visualizza il testo della voce di menu selezionata.

Abbiamo visto un semplicissimo esempio ma le opportunità di personalizzare i moduli sono veramente infinite. Il consiglio perciò è quello di fare affidamento alle numerosissime comunità di sviluppatori per trovare il modulo che ci serve, ed eventualmente provvedere a modificarlo a seconda dei nostri bisogni.

 

 

Personalizzare la grafica

 

Eccoci alla fine del nostro percorso. L’idea è quella di dare un’immagine personale al proprio sito, distinguendolo dagli altri. Per farlo prepariamo i nostri file grafici e diamo sfogo alla creatività!

Personalizzare il layout di PHP Nuke significa modificarne il tema. I temi sono contenuti nella cartella themes e per ciascuno di essi è prevista una sottocartella:

 

55-

 

Ogni cartella dei temi contiene almeno due sottocartelle:

 

# images che ci presenta le immagini del tema scelto

# style che contiene il foglio di stile ovvero uno (o più) file con estensione .css che elenca le caratteristiche del nostro testo come le dimensioni dei caratteri, i colori, etc. ed altre informazioni che possiamo dare per stabilire una regola nello stile della pagina.

 

Il “cuore” di un tema è il file theme.php che gestisce tutte le inclusioni dei blocchi e dei moduli.

Nella cartella “images” troviamo tutte le immagini e le icone che compongono il tema del sito. Si possono modificare e sostituire a piacimento, fermo restando che dobbiamo comunque tener conto dell’impostazione generale della singola pagina e dell’intero sito.

Proviamo a realizzare un tema personalizzato. Per creare un nuovo tema occorre prima di tutto creare una nuova directory dentro “themes” e poi modificare il file theme.php. Ad esempio, supponendo di voler creare il tema “MioSito”, creiamo la cartella “MioSito”:

 

56-

 

Usiamo un editor HTML (come ad esempio Dreamweaver) ed editiamo il file theme.php dove sono definite le seguenti funzioni (che descriveremo in dettaglio in seguito):

 

57-

 

Queste funzioni produrranno il codice HTML necessario per visualizzare le varie parti del tema.

Per illustrare il procedimento realizziamo le varie funzioni per ottenere un semplice tema. Si tratta di un tema volutamente molto semplice, creato esclusivamente a scopo dimostrativo, che non fa uso di grafica, mantiene volutamente codice HTML molto semplice ed utilizza il colore, nel codice, solo per evidenziare le varie parti. Utile per poi essere modificato e ampliato con i vostri gusti grafici.

themeheader() e themefooter() servono ad impostare l’intestazione (header) e il piè di pagina (footer) del nostro layout.

In generale è responsabilità di themeheader() creare la tabella principale del sito. Questa tabella ripropone la classica struttura a tre colonne, variandola si possono ottenere altre strutture. Inoltre questa funzione deve anche occuparsi di creare i blocchi laterali, o almeno il blocco di sinistra (che verrà visualizzato prima del modulo al centro) chiamando esplicitamente la funzione blocks(left). Ecco il codice di esempio:

 

58-

 

La funzione themefooter() chiude le tabelle aperte da themeheader(). Soffermiamoci a considerare una cosa importante: generalmente l’indice del portale è a tre colonne ma il dettaglio di un articolo è preferibile che sia a due colonne. Infatti quando viene visualizzato un articolo, esso viene affiancato da blocchi quali gli articoli correlati. Per questo motivo è bene che il footer non crei il blocco di destra se si sta visualizzando un articolo.

Il modo di operare è semplice: controllare la variabile $index e visualizzare la colonna di destra solamente quando è falsa. Il codice è il seguente:

 

59-

 

La funzione themesidebox($title, $content) imposta la grafica di visualizzazione di un blocco laterale. Poiché non ha particolari dipendenze, è piuttosto semplice ed immediata. Ecco il codice:

 

60-

 

Analogamente, OpenTable() e CloseTable() si limitano ad aprire e chiudere una tabella e sono utilizzati per visualizzare dei messaggi. Il codice ancora più semplice:

 

61-

 

Un po’ più complesso è il codice di themearticle() e themeindex(…) perché i parametri sono numerosi. Il codice consiste infatti essenzialmente nella formattazione in html dei vari parametri forniti. La differenza tra le due funzioni sta nel fatto che la prima visualizza l’articolo per intero (ovvero sia la parte testo che la parte testo esteso), mentre la seconda visualizza solamente la parte di testo più altri elementi quali link, l’ora di invio dell’articolo ecc. Siccome le due funzioni sono molto simili mostriamo il codice solamente del primo:

 

62-

 

Due osservazioni:

1) le immagini che rappresentano l’argomento si trovano nella directory images/topics, dove vengono poste dal componente “Gestore di Argomenti”;

2) si usa la funzione FormatStory, che viene utilizzata anche da themeindex(). Il codice di FormatStory è semplicemente:

 

63-

 

Per quanto riguarda la formattazione del testo e le sue proprietà dobbiamo fare riferimento come visto ai fogli di stile (file .css) ma all’interno di theme.php possiamo trovare alcune indicazioni al testo, sotto forma di variabili che possono essere la prima indicazione nel codice della pagina:

 

64-

 

Il consiglio è quello di partire sempre da un tema esistente che rispecchi in linea di massima il nostro obiettivo per poi modificarlo a seconda delle nostre esigenze.

Una replica a “PHP – NUKE”

  1. adidas scrive:

    Hi there terrific website! Does running a blog such as this require a massive amount work? Kudos!

Lascia una risposta