Personalizzare phpnuke - Risorseweb.net Manuali grafica

Personalizzare PhpNuke 6.0
Introduzione
Capitolo 1:
Strumenti
1.1 Siti ufficiali della Relazione
1.2 Risorse
1.3 Manuali, Mailing List e NewsGroup
Capitolo 2:
Installazione
2.1 All’opera
2.2 Installare Red Hat Apache, MySql, PHP e PHPNuke
2.2.1 Red Hat
2.2.1.1 Partizione necessarie
2.2.1.2 Creazione LILO (LInux LOader)
2.2.1.3 Scelta dell’installazione e dei pacchetti
Capitolo 3: Configurazione
3.1
3.2
3.3
3.4
3.5
MySql
Apache
PhpNuke
Configurazione in ambiente windows
PhpMyAdmin un utile strumento
Capitolo 4: Presentazione della struttura e funzionalità grafiche
4.1 Cosa ci troviamo di fronte
4.2 Alcune sezioni in dettaglio
4.2.1 Downloads
4.2.2 Forum
4.2.3 Ricerca all'interno del portale
4.2.4 Statistiche sugli utenti del portale
4.2.5 Sezione per gli utenti registrati
4.2.6 Sezione di amministrazione
Capitolo 5: Architettura e Struttura del PhpNuke
5.1 Struttura delle cartelle
5.1.1 Cartella di root
Fabrizio Di Cola & Giovanni De Angelis
2
Personalizzare PhpNuke 6.0
5.1.2 Le altre cartelle
5.2 Gestione della pagina principale
Capitolo 6: Gestione remota del portale
6.1 Inserimento di un nuovo tema : V-BlueBaby1.0
6.2 Inserimento di un addon : Internet Radio2.0
6.2.1 Il modulo Internet Radio
6.2.2 Il blocco Internet Radio
Capitolo 7: Viaggio all’interno del codice PhpNuke
7.1 Personalizzazione di un Tema
7.1.1 Analisi e creazione di un tema
7.1.2 Selezionare un tema
7.2 Personalizzazione dei blocchi
7.2.1 Analisi e creazione di un blocco
7.2.2 Aggiungere un blocco
7.3 Personalizzazione di un modulo
7.3.1 Parte pubblica
7.3.2 Parte di amministrazione
7.3.3 Inserire un modulo
Capitolo 8: Analisi del database Nuke
8.1 Creazione del database
8.2 Uno sguardo sulle tabelle
8.3 Le tabelle principali
Fabrizio Di Cola & Giovanni De Angelis
3
Personalizzare PhpNuke 6.0
Introduzione
Questa relazione è stata scritta basandoci anche su alcuni passi tratti dalla documentazione
indicata qui di seguito :
“ Versione Originale di Claudio Erba ([email protected]),
www.spaghettibrain.com , PHPnuke italian Mirror, 2002, questo libro, in tutte le sue versioni
(anche quelle modificate da terzi in italiano o in qualsiasi ) ,per volontà dell’autore, può essere
riprodotto anche integralmente senza violare nessuna legge in quanto questo libro e rilasciato
sotto GNU free Documentation License (http://www.gnu.org/licenses/licenses.html ) “
PHPNuke è un sistema che integra al suo interno tutti gli strumenti utili a creare un sito portale di
informazione (inteso in senso allargato).
Gli ambiti di applicazione sono molteplici:
-
Portali di informazione, testate giornalistiche
Associazioni, No profit
Enti Pubblici (Siti di comuni, province, ASL ...)
Intranet aziendali, Supporto tecnico, House organ
In generale tutti quei siti che hanno bisogno di offrire molte informazioni (e di conseguenza molte
pagine) e degli strumenti per gestirne il flusso.
Php + MySQL (Il sistema è multipiattaforma e funziona su qualsiasi OS che abbia installato i due
sistemi sopra citati.
PHPNuke è un sistema sviluppato dal Venezuelano (ma di origini canadesi) Francisco Burzi che
tutt’ora ne segue personalmente lo sviluppo.
Pur essendo rilasciato sotto licenza GPL ed abbracciando in pieno la filosofia open source
PHPnuke non dispone di un CVS e lo sviluppo è seguito unicamente dal suo creatore.
Nella correzione di Bug, realizzazione di moduli, traduzioni in lingue diverse dall’inglese
ottimizzazione del codice, sono coinvolte molte comunità sparse in tutto il mondo ma lo “scettro” e
l’ultima parola spettano sempre a Francisco.
E’ stato fatto un tentativo di creazione di un CVS assieme al team di Nukeaddon.com ma il server
è stato chiuso poco dopo.
Cosa è PHPNuke:
-
Mezzo milione di files scaricati
Più di 100 siti di supporto in tutte le lingue
Trecentomila membri attivi nelle varie comunità Nuke
Il supporto ufficiale di Linux Mandrake
Più di 300 moduli aggiuntivi e 500 diverse proposte grafiche reperibili in rete
Perché scegliere PHPNuke:
-
Perché gestire siti di grandi dimensioni con sole pagine html fa male alla salute
Perché attraverso pagine dinamiche gli utenti possono interagire (Forum, chat..)
Perché attraverso le pagine dinamiche si possono offrire servizi a valore aggiunto (Aree
riservate, servizi diversi in base alle categorie di utenti...)
Perché le informazioni sono più facimente catalogabili
Perché con poche pagine richiamiamo molte informazioni
Fabrizio Di Cola & Giovanni De Angelis
4
Personalizzare PhpNuke 6.0
Capitolo 1: Strumenti
Portale del Progetto
1.1
http://login.campus.uniroma2.it/~deangelg/phpnuke/
Siti ufficiali della Relazione
Home page del progetto
Giovanni De Angelis
Fabrizio Di Cola
1.2
Risorse
Apache Web Server
MySql
PHP
PHPNuke
PhpMyAdmin
Linux
Php EasyWindows
FoxServ
V-BlueBaby
Internet Radio
1.3
http://www.ii01047x.cjb.net/
http://www.mrguru.net
http://dicola.cjb.net
http://www.apache.org
http://www.mysql.org
http://www.php.net
http://www.phpnuke.org
http://www.phpmyadmin.net
http://www.redhat.it
http://php.weblogs.com/easywindows
http://www.foxserv.net
http://vipixel.com
http://www.just4me.nl
Manuali, Mailing List e NewsGroup
Portale italiano dedicato al PHPNuke
Apache Web Server
MySql
PHP
PHPNuke
Linux
Linux
Mailing List Linux e PHP italiane
Newsgroup Linux
Newsgroup Linux
Newsgroup PHP
Newsgroup PHP
http://www.spaghettibrain.com
http://www.apache.org
http://www.mysql.org
http://www.php.net
http://www.phpnuke.org
http://www.ziobudda.net
http://www.start-linux.com
http://www.infomedia.it
it.comp.os.linux.*
comp.os.linux.*
it.comp.www.php
comp.lang.php
Fabrizio Di Cola & Giovanni De Angelis
5
Personalizzare PhpNuke 6.0
Capitolo 2: Installazione
2.1
All’opera
Una volta scaricate tutte le risorse necessarie a far funzionare PHPNuke passiamo alla
fase di installazione dei pacchetti.
PHPNuke è stato interamente scritto in PHP e visto che tale linguaggio è nativo per Linux
abbiamo pensato di installare questo sistema operativo.
Linux è gratuito e OpenSource perciò lo si può scaricare e installare tranquillamente sulle
nostre macchine senza badare a costi di licenze. Da notare il fatto che Linux e Windows
possono coesistere su uno stesso computer.
Tra le varie distribuzioni che esistono (per esempio Suse, Debian, Slackware, Mandrake..)
abbiamo scelto di utilizzare la Red Hat 7.3 e 8.0 su due macchine differenti.
La scelta è ricaduta sulla Red Hat perché a nostro avviso si tratta di una distribuzione che
riesce ad unire stabilità, leggerezza (sia nell’installazione che non richiede molto spazio
rispetto ad altre e sia nella gestione dei processi che non appesantiscono l’utilizzo del
computer) e facilità di utilizzo (i suoi motori grafici sono molto user friendly).
Per quanto riguarda i tool da noi utilizzati la differenza tra le due versioni è minima. Da
notare infatti che sulla 8.0 troviamo il Server Web Apache 2.0 a differenza di una versione
più vecchia che si trova nella 7.3 di Red Hat.
2.2
Installare Red Hat Apache, MySql, PHP e PHPNuke
2.2.1 Red Hat
Se disponiamo di un computer con un sistema operativo che non sia Linux e
vogliamo comunque mantenere anche tale sistema dobbiamo partizionare il nostro
Hard Disk in almeno due parti dove in una metteremo Linux e nell’altra il secondo
sistema operativo. Fatto ciò, non ci resta che inserire i nostri cd di installazione di
Linux Red Hat nel lettore e partire con l’installazione. Se non si dispone di un cd rom
autoavviante o se il nostro lettore non è bootable basta creare un floppy disk di boot
anche sotto windows servendoci del tool Rawrite esistente in versione Dos e
versione a 32 bit per Windows. Tale tool si trova nei CD di installazione. Questo
programma permette di creare un dischetto di avvio che lancerà in seguito
l’installazione da cdrom. Leggere il readme di tale pacchetto per capire quale è
l’immagine da utilizzare per creare il dischetto. L’immagine cambia a seconda del
computer che si possiede. Una volta avviata l’installazione (al prompt <boot:>
premere tranquillamente <INVIO>) non si dovrà far altro che scegliere la lingua e
seguire tutte le richieste di Anaconda (questo è il nome dell’interfaccia che gestisce
il setup) passo dopo passo. Passi importanti in questa installazione sono creare le
partizioni all’interno di quelle in cui si vuole mettere Linux, configurare il LILO (LInux
LOader) e scegliere l’installazione (Workstation, Server o Full).
2.2.1.1 Partizioni necessarie
Arrivati alla creazione delle partizioni, per Red Hat ne basta creare due,
quella di root (/) e quella di swap che generalmente deve essere dimensione
doppia di quella del banco di memoria che si ha sul nostro computer.
Fabrizio Di Cola & Giovanni De Angelis
6
Personalizzare PhpNuke 6.0
Anaconda crea già delle partizioni di default, noi consigliamo di cancellarle e
procedere come detto sopra.
2.2.1.2 Creazione del LILO (LInux LOader)
La creazione del LILO è molto importante in quanto serve a far funzionare il
corretto avvio di Linux al boot del computer.
Ci sono due opzioni e sono:
1) Creare il LILO sul MBR del nostro Hard Disk
2) Saltare questa fase e creare un dischetto di boot per Linux alla fine
dell’installazione quindi il LILO verrà creato su floppy.
La differenza tra le due opzioni è che creando il LILO su un floppy saremo
schiavi nell’inserire questo ad ogni avvio di Linux !
Nelle ultime versioni di Linux si può far uso di un nuovo loader di nome
GRUB che è equivalente al LILO.
2.2.1.3 Scelta dell’installazione e dei pacchetti
Per quanto riguarda la scelta dell’installazione, noi consigliamo di scegliere
quella Server con la scelta dei pacchetti in maniera personalizzata.
Non bisogna essere degli esperti per scegliere i pacchetti e in genere
troviamo già dei pacchetti selezionati. A questi se ne possono aggiungere
altri a seconda dell’utilizzo che si vuole fare del nostro sistema e dello spazio
che abbiamo a disposizione sul disco rigido (generalmente un installazione
full richiede circa 2,5 Gb di spazio libero per quanto riguarda red hat 7.3).
Detto ciò è molto importante verificare che i pacchetti MySql, Apache e PHP
siano selezionati affinché si debba installarli manualmente dopo
l’installazione. Durante la fase di setup ci verrà anche chiesta la password di
root (amministratore) che si vuole usare e di creare un semplice utente sul
sistema. Fatto ciò non ci resta che attendere che Anaconda si prenda cura
del nostro computer portando a termine il processo di installazione.
Una volta finita l’installazione se non si sono selezionati i pacchetti
MySql,PHP e Apache, scaricarli dalla rete o dai propri supporti cd e
installarli. Se si sta installando un pacchetto specifico per Red Hat, quindi un
RPM, l’installazione sarà molto semplice perché basta utilizzare il
programma kpackage (non sempre questi tool mantengono questi nomi nel
passare da una versione all’altra delle distribuzioni, basterà però cercarli
navigando nel menù grafico del nostro windows manager) che penserà
all’installazione del pacchetto sulla nostra macchina.
Se invece il pacchetto scaricato è un TAR.GZ o BZ2 allora basterà
decomprimere il pacchetto in una directory e seguire le istruzioni che si
trovano generalmente nei README o INSTALL files.
Fabrizio Di Cola & Giovanni De Angelis
7
Personalizzare PhpNuke 6.0
Capitolo 3: Configurazione
3.1
MySql
All’avvio del nostro computer dovremo specificare con quale nome utente ci
vogliamo loggare all’interno del nostro Server Linux.
Utilizzeremo quindi il nome utente che abbiamo creato durante l’installazione.
Una volta entrati apriamo una shell e digitiamo il comando “ su – “ a questo punto
inseriamo la password di root che abbiamo scelto precedentemente.
Noteremo che il prompt della shell cambierà da username@localhost$ in
root@localhost# questo contraddistingue il fatto che adesso siete root e l’utente root
può fare tutto ciò che vuole del computer. A questo punto digitiamo il comando
setup e muoviamoci sulla sezione relativa ai servizi. Qui non dobbiamo far altro che
assicurarci che i demone che si occupano di attivare all’avvio i servizi Apache e
MySql siano attivati. Se così non fosse selezioniamo tali demoni tramite il tasto
spazio. I demoni in considerazione sono httpd o apache e mysql o mysqld (da
notare che generalmente i file che hanno una d alla fine del loro nome sono dei
demoni cioè dei programmi che lavorano in background e che si occupano di
assicurare dei servizi). Fatto ciò riavviamo il server.
Adesso riapriamo una shell e verifichiamo che Mysql sia attivo digitando il comando
mysql. Se ci troviamo di fronte al prompt “ mysql> “ ciò vuol dire che il nostro Server
Database è attivo e che siamo attualmente connessi a questo!
3.2
Apache
Adesso verifichiamo che Apache sia attivo.
Apriamo uno dei tanti Browser che troviamo nella nostra macchina e scriviamo nella
barra degli indirizzi http://localhost, se si apre una pagina di benvenuto di Apache il
nostro Server Web funziona correttamente!
Adesso passiamo alla fase di configurazione del Server Web sotto utente, ovvero
dell’attivazione della directory virtuale http://localhost/~username dove in seguito
andremo a installare PHPNuke.
Per configurare la nostra directory apriamo una shell e creiamo una cartella
chiamata public_html digitando il comando “ mkdir public_html “.
Fatto questo diamo dei permessi a tale cartella facendo così:
username@localhost$ su –
username@localhost$ password: <scriviamo la password di root>
root@localhost# chmod 711 ~username
root@localhost# chmod 755 –R ~username/public_html
root@localhost#
Potremmo dire di aver finito ma in realtà come in molti dei pacchetti Linux dobbiamo
editare i files di configurazione.
Avendo sempre la nostra shell a portata di mano muoviamoci nella directory
/etc/httpd/conf con il comando “ cd /etc/httpd/conf/ “ e andiamo a scrivere il file
httpd.conf che è il file di configurazione di Apache.
L’httpd.conf è un file molto importante e in esso si trovano molte direttive che
permettono di configurare il Server nei modi più flessibili e consoni alle nostre
esigenze, sia a livello di sicurezza che a livello di usabilità.
Fabrizio Di Cola & Giovanni De Angelis
8
Personalizzare PhpNuke 6.0
Per editare il file basta usare uno dei tanti editor che troviamo sul nostro sistema,
noi prediligiamo jed e il comando che dobbiamo digitare è “ jed httpd.conf” ma si
possono utilizzare tanti altri tool di testo come emacs e kwrite che sono ache più
user friendly di jed.
Una volta aperto il file dobbiamo aggiungere delle informazioni per far si che tutto
funzioni nella nostra cartella public_html.
Ciò che dobbiamo cercare e modificare all’interno del documento è la stringa
UserDir. Una volta trovata dobbiamo togliere il # davanti ad essa e modificare la
linea facendo in modo che non ci sia nient’altro che questo:
UserDir /home/*/public_html
Questo farà si che tutti gli utenti sul nostro server potranno creare la cartella
public_html ed avere il loro indirizzo sul proprio spazio del tipo
http://localhost/~username.
Fatto ciò dobbiamo dare dei permessi all’interno di quella cartella ovvero far si che i
nostri script php possano essere eseguiti senza problemi da Apache. Andiamo
quindi a cercare il tag
<Directory /home/*/public_html>
…
</Directory>
Ciò che dobbiamo fare è:
1) Assicurarci che tutto ciò che si trova tra la stringa iniziale e quella finale si
preceduta da #
2) Rimuovere tutto ciò che è contenuto tra le due stringhe
3) Rimuovere i #
4) Aggiungere tale codice all’interno delle due stringhe:
Options Indexes FollowSymLinks
Order allow,deny
Allow from all
5) La sintassi risulterà così:
<Directory /home/*/public_html>
Options Indexes FollowSymLinks
Order allow,deny
Allow from all
</Directory>
6) Se nn si trova tale direttiva nel file httpd.conf inseritela così come è riportata qui
sopra all’interno del documento in uno spazio vuoto.
Molto Importante Nella nuova versione di Apache la 2.0 si trova una nuova
direttiva che non è presente nelle precedenti versioni ed è la seguente:
<IfModule mod_userdir.c>
#
# UserDir is disabled by default since it can confirm the presence
# of a username on the system (depending on home directory
# permissions).
#
#UserDir disable
Fabrizio Di Cola & Giovanni De Angelis
9
Personalizzare PhpNuke 6.0
#
# To enable requests to /~user/ to serve the user's public_html
# directory, remove the "UserDir disable" line above, and uncomment
# the following line instead:
#
UserDir public_html
</IfModule>
Tale direttiva deve essere scritta così, altrimenti l’utente non potrà visualizzare la
propria pagina sotto l’indirizzo http://localhost/~username
Giunti a questo punto non dobbiamo far altro che salvare il file e chiuderlo, fermare
l’esecuzione di Apache e farlo ripartire.
Ovvero:
1) Chiudiamo il file salvandolo
2) Sempre nella nostra shell e sotto root eseguire il comando “ apachectl –k stop ”
fermando così Apache
3) Eseguire il comando “ apachectl –k start ” per far ripartire il Server. Se non si
riscontrano messaggi di errore vuol dire che il file httpd.conf da noi editato non
contiene errori ☺ !
4) Nelle versioni precedenti alla 2.0 di Apache i comandi sopra citati non sono gli
stessi ma i seguenti “ apachectl stop ” e “ apachectl start “
Come si può notare non è difficile usare tali strumenti sotto Linux e inoltre la
documentazione fornita con tali strumenti è molto chiara e questo permette di avere
un semplice controllo del sistema.
Da notare che soltanto l’amministratore di sistema può modificare tali file.
3.3
PHPNuke
Eccoci giunti alla configurazione di PHPNuke. Una volta scaricato il pacchetto dal
sito http://www.phpnuke.org decomprimerlo e spostare tutto il contenuto della
cartella html nella cartella public_html con il seguente comando:
mv –r /home/username/path_di_phpnuke/* /home/username/public_html
Adesso quindi dovremmo avere tutti i file necessari al PHPNuke per poter essere
funzionante. Prima di verificare se questo funziona dobbiamo creare le tabelle e il
database nuke all’interno di Mysql. Per far ciò entriamo in MySql da root e al prompt
di MySql digitiamo il comando “create database nuke” dopo di che spostiamoci nel
nuovo database con il comando:
\u nuke;
e digitiamo:
\. /home/username/path_di_phpnuke/sql/nuke.sql;
a questo punto se si è passata la directory esatta in cui risiede il file nuke.sql
dovremmo ricevere il messaggio di esatta creazione delle tabelle all’interno del
database nuke.
Fabrizio Di Cola & Giovanni De Angelis
10
Personalizzare PhpNuke 6.0
Come ultima cosa dobbiamo assicurarci che le istruzioni all’interno del file
config.php siano corrette. Tale file si trova all’interno della directory public_html
adesso che abbiamo spostato tutto il contenuto del PHPNuke in essa.
Editiamolo nuovamente con jed digitando il comando:
jed /home/username/public_html/config.php
e istruzioni che più ci interessano sono:
$dbhost = "localhost"; // nome del dominio, localhost se il Server Database è sulla
macchina dove risiede PHPNuke
$dbuname = "root"; // utente dautilizzare per connettersi
$dbpass = ""; // password dell’utente root in MySql
$dbname = "nuke"; // nome del database
$prefix = "nuke"; // prefisso delle tabelle che è il nome del database utilizzato
// in genere
$user_prefix = "nuke";
$dbtype = "MySQL"; //tipo di Motore utilizzato in questo caso MySql
Tali istruzioni devono rimanere così se non si è cambiata la password di root in
Mysql che generalmente è vuota quando lo si installa per la prima volta.
Se così non fosse cambiate la variabile $dbpass =”” in $dbpass=”nuovapassword”
se è stata cambiata e $dbuname=”root” in un altro utente se l’utente con cui vi
volete connettere non è root ma un altro. Ovviamente la password a questo punto
non sarà quella dell’utente root ma quella dell’utente che volete utilizzare per
connettervi. Adesso si può finalmente accedere da Browser alla pagina
http://localhost/~username/index.php e ciò che si dovrà visualizzare sarà la home
del nostro portale PHPNuke.
3.4
Configurazione in ambiente Windows
Per installare PhpNuke in ambiente windows ( in particolare abbiamo lavorato su
win2000 server ) ci sono due strade:
1. La configurazione per così dire “ manuale” del sistema operativo utilizzando
internet information server ( nativo di win2000 ) e un installer per il Php come
easy windows installer e quindi fare l’installazione vera e propria del PhpNuke
2. La configurazione “ automatica “ di tutto ciò che abbiamo bisogno per far girare
phpnuke sulla nostra macchina ( Apache + mysql + php ) con un software
freeware come foxserv ( in particolare noi abbiamo usato la versione 2.0 ) e
quindi fare l’installazione vera e propria del PhpNuke.
Attenzione!!! Non ci addentriamo nelle due tecniche di configurazione perchè l’uso
di Php e in particolare di PhpNuke in un ambiente Windows crea molti problemi in
quanto abbiamo riscontrato una estrema instabilità nella gestione del PhpNuke sia
usando IIS sia con la configurazione tramite foxserv. In particolare con qualsiasi
versione di Php si cerchi di installare abbiamo riscontrato problemi con molte delle
librerie fornite da Php per Windows. Visti tutti questi problemi riscontrati noi abbiamo
Fabrizio Di Cola & Giovanni De Angelis
11
Personalizzare PhpNuke 6.0
deciso di utilizzare il PhpNuke solamente in ambiente linux abbandonando
decisamente l’idea di usarlo con win2000 server in attesa di nuovi sviluppi.
3.5
PhpMyAdmin un utile strumento
L’utilizzo di MySql in Linux avviene interamente in maniera testuale, ovvero nel
pacchetto installato non è compresa una GUI che ci facilita nella gestione del
Database.
Tra le varie GUI che si possono scaricare dalla rete ne abbiamo trovata una
veramente funzionale e User Friendly. Questa si chiama PhpMyAdmin ed è
interamente basata su PHP. Scaricato il tool non ci resta altro che decomprimerlo
dentro una cartella da noi creata appositamente in public_html. Ad esempio creiamo
una cartella phpmyadmin e estraiamone il contenuto del pacchetto in modo tale che
una volta configurato potremo accederci tramite l’url:
http://localhost/~username/phpmyadmin
Per configurare MyAdmin non dobbiamo far altro che aprire il file config.inc.php con
un editor testuale e modificarlo secondo le nostre esigenze. MyAdmin ha bisogno di
un superuser per essere utilizzato al pieno delle sue funzionalità ma lo si può usare
anche come semplice utente sui databases a cui l’utente ha accesso. Aprendo il file
config.inc.php la prima variabile da configurare è
$cfg['PmaAbsoluteUri'] = ' ';
qui dobbiamo inserire l’url in cui abbiamo estratto il nostro pacchetto, ovvero
$cfg['PmaAbsoluteUri'] = 'http://localhost/~username/phpmyadmin';
Fatto ciò si passa alla parte Server Configuration:
/**
* Server(s) configuration
*/
$i = 0;
// The $cfg['Servers'] array starts with $cfg['Servers'][1]. Do not use
// $cfg['Servers'][0].
// You can disable a server config entry by setting host to ''.
$i++;
$cfg['Servers'][$i]['host']
= 'localhost';
$cfg['Servers'][$i]['port']
= '';
$cfg['Servers'][$i]['socket']
// MySQL hostname
// MySQL port - leave blank for default port
= ''; // Path to the socket - leave blank for default
// socket
Fabrizio Di Cola & Giovanni De Angelis
12
Personalizzare PhpNuke 6.0
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['auth_type']
$cfg['Servers'][$i]['user']
$cfg['Servers'][$i]['password']
$cfg['Servers'][$i]['only_db']
// How to connect to MySQL server ('tcp'
// or ’socket')
= 'config'; // Authentication method (config, http or
// cookie based)?
= 'root';
= '';
= '';
// MySQL user
// MySQL password (only needed
// with 'config' auth_type)
// If set to a db-name, only
// this db is displayed
// at left frame
// It may also be an array
// of db-names
La prima cosa che posiamo notare è che troviamo un array di servers ovvero è
possibile impostare le stesse variabili per più servers se disponiamo di un accesso a
più di questi. Tra le variabili che possiamo passare al file di configurazione per
garantirci un accesso sicuro ne abbiamo prese in considerazione otto che sono poi
le più importanti e quelle che generalmente bisogna modificare.
Host specifica dove risiede il server SQL e generalmente va lasciato localhost se
questo si trova sul nostro pc.
Port specifica la porta a cui connettersi per sfruttare il database, generalmente si
lascia bianca se MySql lavora sulla porta di default.
Socket è la variabile che controlla dove risiede il file socket di MySql che ne
garantisce la connessione.
Connect_Type indica il tipo di connessione al Server MySql, possiamo
tranquillamente lasciare Tcp.
Auth_type è il tipo di accesso che vogliamo utilizzare per accedere al database
tramite PhpMyAdmin, se si lascia config vuol dire che PhpMyAdmin userà il file di
configurazione per accedervi, altrimenti con http o cookie viene svolta un
autenticazione tramite browser.
User indica l’utente con il quale si vuole accedere a MySql, generalmente per motivi
di sicurezza se ci troviamo su un pc che è connesso a una rete è meglio evitare di
usare l’utente root.
Password indica la password dello user specificato sopra. Se si utilizza MySql
per la prima volta di default la password del root è vuota, si cosiglia quindi di
cambiarla e digitarla all’interno di questo file sempre per motivi di sicurezza.
Only_db specifica l’accesso ad un unico database invece che a tutti i database
MySql se specificato.
PhpMyAdmin non è un tool sicuro se usato su un server che è connesso in rete a
Fabrizio Di Cola & Giovanni De Angelis
13
Personalizzare PhpNuke 6.0
meno che non si adottano alcuni accorgimenti:
1) Cercare di nascondere la cartella dove abbiamo installato il pacchetto e
comunque far sì che l’accesso a questa sia ristretto. Basta pensare che
chiunque riesce ad arrivare al file config.inc.php può entrare in possesso della
password di root per mysql e fare così danni nel database.
2) Possiamo usare un approccio http o cookie invece che config nella variabile
Auth_type. Per poter utilizzare tali metodi però abbiamo bisogno di un controluser
all’interno di MySql che può fare solo una SELECT sul database mysql e sulle
tabelle user,db e tables_priv che sono le tabelle in cui si conservano i dati relativi
agli utenti e ai databases a cui questi hanno accesso. Una volta creato il
controluser dobbiamo impostare i suoi dati nel file config.inc.php al posto dello user
standard e per far questo le variabili che entrano in gioco sono:
$cfg['Servers'][$i]['controluser']
$cfg['Servers'][$i]['controlpass']
Comunque sia c’è da dire che tra http e cookie è meglio scegliere cookie in quanto
usando il primo metodo la password viaggia in modalità text/plain mentre con il
secondo metodo la password viene salvata in un cookie temporaneo che verrà
cancellato al termine della sessione di lavoro.
Fabrizio Di Cola & Giovanni De Angelis
14
Personalizzare PhpNuke 6.0
Capitolo 4: Presentazione della struttura e funzionalità grafiche
4.1
Cosa ci troviamo di fronte
Una volta aperto il sito in cui abbiamo installato il PhpNuke notiamo che la grafica è così
strutturata:
Header: qui troviamo il logo del nostro portale , un messaggio di benvenuto, la data e un
piccolo menù di navigazione nel portale.
Colonne: all’interno delle colonne sono riportati alcuni link ( blocchi ) per usufruire delle
funzionalità e per garantire la navigazione nel portale. In aggiunta troviamo una tendina (
combo box ) per selezionare la lingua, un form per l’accesso agli utenti registrati, e form
aggiuntivi a secondo dei moduli che sono stati installati. Tra i moduli che generalmente
sono attivati di default troviamo un form per le statistiche configurabile dall’amministratore e
un modulo che ci avverte della presenza di altri utenti online sia che essi siano registrati o
meno.
Blocco centrale: all’interno del blocco centrale troviamo di default il modulo delle news. Il
modulo che compare all’interno di tale blocco può essere cambiato dall’amministratore del
sito.
In ogni news possiamo vedere:
-
il nome dell’autore con un link al suo profilo
il titolo dell’articolo
il nome del moderatore che ha visionato la news
un link ai commenti fatti da altri utenti su tale news
un indice di gradimento
se attivato un pulsante di visualizzazione dell’articolo completo
la data e l’ora di pubblicazione
Oltre a questi articoli si possono trovare dei messaggi inseriti dagli amministratori. Tali
messaggi hanno un titolo e un contenuto.
Un messaggio nelle news appare in questa forma:
Fabrizio Di Cola & Giovanni De Angelis
15
Personalizzare PhpNuke 6.0
Oltre alle parti già analizzate dobbiamo porre l’attenzione sul fondo della pagina. Qui
troviamo informazioni sul copyright del portale e dei moduli installati in esso, un messaggio
che può essere usato come slogan per il portale settato dall’amministratore.
4.2
Alcune sezioni in dettaglio
4.2.1 Downloads
Entrando nella sezione downloads ci troviamo di fronte ad un motore di ricerca
interno al portale. Da qui possiamo verificare se un file o un link attinente a ciò che
stiamo cercando si trova nel nostro portale. La sezione downloads è divisa in
categorie, e all’interno della pagina possiamo trovare una lista di queste.
Sotto alla cella in cui possiamo immettere la chiave di ricerca troviamo delle voci
che ci permettono di inserire un nuovo download, visionare la lista dei nuovi file
aggiunti, ottenere la lista dei file più richiesti o più commentati. Una volta trovato il
download del file desiderato possiamo trovare una descrizione su di esso, il nome
dell’autore che lo ha inserito, se l’inserzione è nuova o meno e altre informazioni
utili.
4.2.2 Forum
Fabrizio Di Cola & Giovanni De Angelis
16
Personalizzare PhpNuke 6.0
In questa sezione chiunque può immettere dei messaggi visionabili da tutti gli altri
utenti del portale su determinati argomenti. I messaggi sono raggruppati in categorie
di discussione.
E’ possibile rispondere a tutti gli utenti che postano nel forum e usare il proprio
avatar, creato al momento dell’iscrizione, per rendersi riconoscibili.
4.2.3 Ricerca all’interno del portale
PhpNuke offre un motore di ricerca che aiuta gli utenti nella ricerca delle
informazioni all’interno del portale.
Tale strumento ci permette di effettuare una ricerca avanzata tra articoli, commenti e
utenti.
4.2.4 Statistiche sugli utenti del portale
Il tipo di statistiche a noi offerte sono:
Basic Statistics
Questa ci fa vedere il tipo di browser e sistema operativo che usa l’utente, se
l’utente che ha visitato il sito è registrato, se ci sono autori attivi, il numero di articoli
pubblicati, di argomenti attivi, di commenti postati, di articoli in attesa di essere
pubblicati e la versione del nostro PhpNuke.
Fabrizio Di Cola & Giovanni De Angelis
17
Personalizzare PhpNuke 6.0
Detailed Statistics
La statistica dettagliata ci informa sul numero di pagine visitate in un anno, in un
mese e in un giorno, nonché la percentuale di pagine visitate ad ogni orario della
giornata.
4.2.5 Sezione per gli utenti registrati
Una volta che l’utente si è autenticato si trova davanti alla sua pagina di
amministrazione personale. Vediamo in dettaglio gli strumenti principali che si
presentano all’utente.
Cambia tue info: Permette di cambiare le informazioni inserite al momento della
registrazione.
Cambia Home: Cambia le impostazioni personalizzabili della home page
visualizzabile dall’utente una volta autenticato. Come ad esempio il numero di
articoli o l’attivazione dei messaggi pubblici in broadcast.
Setup Commenti: Selezionando questa opzione si ha la possibilità di gestire la
visualizzazione, l’ordinamento e in generale il layout grafico dei commenti
Fabrizio Di Cola & Giovanni De Angelis
18
Personalizzare PhpNuke 6.0
WebMail: In questa sezione l’utente può impostare i propri indirizzi di posta
elettronica e gestirli da remoto. La sezione offre anche una rubrica e una ricerca dei
contatti inseriti.
Logout: Permette di chiudere la propria pagina personale e di uscire dall’account.
4.2.6 Sezione di amministrazione
Aggiungi Articolo: Permette all’amministratore di aggiungere un articolo all’interno
del portale.
Backup DB: Permette di fare una copia di sicurezza del database attuale.
Banners: Consente di gestire il sistema di scambio banner all’interno del portale.
Blocchi: Consente di entrare nel menù di gestione dei blocchi.
Fabrizio Di Cola & Giovanni De Angelis
19
Personalizzare PhpNuke 6.0
Download: Permette di aggiungere una categoria principale, una sottocategoria e un
nuovo download. Per quest’ultimo possiamo impostare il nome del file, il percorso in
cui risiede, la categoria in cui inserirlo, la descrizione, il nome dell’ autore, la sua
email, le dimensioni del file, la versione, l’homepage dell’autore e il numero di hits.
Edit Amministratori: Gestisce l’aggiunta, la modifica e la cancellazione di un
amministratore permettendo di assegnare un certo grado di amministrazione.
Edit Utente: Permette di modificare i dati relativi ad un utente esistente o di
aggiungerne uno nuovo.
Enciclopedia: Permette di gestire un glossario dei termini usati all’interno del sito
FAQ: Permette di aggiungere una categoria delle FAQ
Forums: Permette di gestire i forums attivi.
HTTP Referrers: Visualizza i siti che contengono il nostro link e da cui si proviene.
Messaggi: Visualizza un resoconto dei messaggi presenti e la possibilità di inserirne
uno nuovo.
Moduli: Visualizza la lista dei moduli presenti nel portale e la possibilità di gestirli
attivandoli, cancellandoli e editandoli.
Newsletter: Permette di mandare una newsletter a tutti gli utenti registrati.
Optimize DB: Ottimizza i dati del DB velocizzandone le performance.
Recensioni: Consente di inserire una pagina di recensioni.
Manager Sezioni: Permette di aggiungere una nuova sezione e un’immagine
predefinita per questa.
Fabrizio Di Cola & Giovanni De Angelis
20
Personalizzare PhpNuke 6.0
Preferenze: Consente di impostare molti dei parametri utili alla caratterizzazione del
sito.
Articoli: Gestisce gli articoli inseriti da terzi e l’area di moderazione dell’area news.
Sondaggio: Consente di inserirne uno nuovo o editarne e cancellarne uno esistente.
Argomenti: Consente di gestire i topics relativi ad un argomento del portale.
Web Links: Consente di creare una sezione links ad altri siti.
Logout/Exit: Consente di uscire totalmente dalla sezione di amministrazione
rendendo invalido il cookie relativo alla sessione.
Fabrizio Di Cola & Giovanni De Angelis
21
Personalizzare PhpNuke 6.0
Capitolo 5: Architettura e Struttura del PhpNuke
5.1
Struttura delle cartelle
Una volta installato il PhpNuke andiamo a esaminare le cartelle contenute nel pacchetto.
Queste sono sette:
admin
blocks
images
include
language
modules
themes
5.1.1 Cartella di root
PhpNuke ha tre files che hanno il compito di gestire la struttura del portale. Essi
sono:
index.php: che serve a visualizzare la pagina principale
modules.php: che serve ad includere i moduli interni
admin.php: che gestisce l’interfaccia amministratore
Il compito di questi files è quello di far si che i moduli non possano essere richiamati
in maniera diretta dall’esterno per rendere più sicuro il sistema. Un esempio di
richiamo di un modulo è il seguente :
http://localhost/~username/modules.php?name=Topics
Questo non fa altro che richiamare il modulo topics attraverso modules.php.
Oltre a questi files principale nella cartella di root troviamo:
auth.php: gestiscono l'autenticazione attraverso i cookies.
mainfile.php: Contiene tutte le funzioni necessarie alla gestione di PHPNuke
header.php: gestisce le variabili relative all'header (Inclusione di Metatag,
Javascript ...)
footer.php: variabili relative al footer.
backend.php: gestisce l'output delle news che possono essere prelevate da
altri siti
ultramode.txt: come sopra
robots.txt: contiene le istruzioni per i motori di ricerca dando come informazione
quali sono le cartelle da non indicizzare
Fabrizio Di Cola & Giovanni De Angelis
22
Personalizzare PhpNuke 6.0
5.1.2 Le altre cartelle
admin: contiene quattro sottocartelle ( links , language , case , modules ) che
gestiscono i vari moduli di amministrazione.
blocks: all’interno di questa troviamo tutti i blocchi che vengono inclusi nelle sezioni
laterali della home page.
images: contiene tutte le immagini che servono ad abbellire la grafica del portale. In
essa troviamo alcune sottocartelle ( topics, forum, admin, banners, etc… ) in cui
sono incluse alcune immagini proprie di queste sottocategorie.
include: ci sono files di gestione di particolare applicazioni che non lavorano
autonomamente ma che vengono richiamati da altri files, principalmente
mainfile.php e header.php che si trovano in root.
language: ci sono i files che completano le astrazioni dei linguaggi con i vocabili
specifici di ciascuna lingua. Ciascun file deve essere nominato come langnomelingua.php .
modules: qui vanno inserite le cartelle dei moduli presenti nel portale che non sono
altro che strumenti utilizzabili tramite il portale.
themes: qui vengono aggiunte i temi grafici del portale. Ogni cartella ha il nome del
tema e contiene un file principale chiamato theme.php oltre ai relativi files di
supporto.
5.2
Gestione della pagina principale
La prima cosa che appare nella pagina principale è il modulo che noi abbiamo
scelto di default per essa. Questo viene richiamato dal file index.php. I passi che
vengono eseguiti ogni volta che la pagina principale viene richiamata sono:
1) Viene incluso il file mainfile.php
2) Per vedere quale è il modulo impostato come default per la pagina principale
viene eseguita una query al database
3) Viene eseguito un controllo sulla provenienza del visitatore ( qualora venisse da
un sito web che linka il portale questo evento viene segnalato e scritto in una tabella
apposita del database )
Vengono inoltre fatti dei controlli relativi al collegamento con il database e vengono
definiti dei messaggi di errore qualora esso non vada a buon fine. Infine se ci sono
problemi nella visualizzazione della pagina scelta come default ne viene visualizzata
un’altra contenente un design standard ma con un messaggio di errore definito
all’interno.
Fabrizio Di Cola & Giovanni De Angelis
23
Personalizzare PhpNuke 6.0
Capitolo 6: Gestione remota del portale
6.1
Inserimento di un nuovo tema : V-BlueBaby1.0
Una volta configurato il portale abbiamo pensato di inserire un nuovo tema grafico,
diverso da quelli presenti di default. Per fare questo abbiamo ricercato un tema dal sito
phpnuke.org. Tra quelli presenti abbiamo scelto il V-BlueBaby1.0 scaricabile da
vipixel.com. Fatto questo si procede nel seguente modo :
1) Si decomprime l’archivio V-BlueBaby.zip in una cartella temporanea
2) Si prende il contenuto della cartella temporanea ( la cartella V-BlueBaby ) e lo si
pone in themes ( ad esempio tramite protocollo ftp o ssh )
3) Si entra nella sezione di amministrazione ( http://mioportale.it/admin.php ) e ci si
autentica
4) Si va nella sezione Preferences alla voce “ tema di default “ selezionare VBlueBaby
Fatto questo il tema visualizzato sarà quello da noi inserito.
modificare il logo del tema. I passi da seguire sono i seguenti :
Ci proponiamo ora di
1) Creare un immagine delle dimensioni adatte
2) Chiamarla con il nome del logo del tema ( header_r1_c10.jpg )
3) Copiarla nella cartella images del tema sovrascrivendo l’immagine esistente
Vediamo ora visualizzato il nostro logo al prossimo ingresso nel portale. Abbiamo
constatato che nella cartella images era presente un file con nome favicon.ico. Questa è
l’icona che compare in alcuni browser quando si inserisce nei preferiti il sito. Usando la
stessa tecnica di prima abbiamo personalizzato l’icona visualizzata accanto al nome del
sito.
6.2
Inserimento di un addon : Internet Radio2.0
Con questo esempio mostriamo come inserire un nuovo blocco e un nuovo modulo
all’interno del portale. Caratteristica di questo addon è il bisogno, oltre al fatto di inserirlo
come modulo, di inserire un nuovo blocco apposito. Siamo andati su phpnuke.org e tra i
vari link che ci sono apparsi, ce ne è stato uno che ha attirato la nostra attenzione :
Internet Radio 2.0. Benché non sia da considerare un modulo che possa aggiungere
funzionalità di base, una volta installato, abbiamo pensato fosse un buon esempio su cui
basarsi per spiegare in modo chiaro la gestione remota dell’inserimento di moduli e blocchi.
Abbiamo scaricato quindi il file InternetRadio_V2.0.zip dal sito www.just4me.nl .
6.2.1 Il modulo Internet Radio
I passi da seguire per inserire questo nuovo modulo sono:
Fabrizio Di Cola & Giovanni De Angelis
24
Personalizzare PhpNuke 6.0
1) Decomprimere
temporanea.
l’archivio
InternetRadio_V2.0.zip
in
una
cartella
2) Troviamo tre cartelle ( images, blocks, modules ) il cui contenuto va
copiato all’interno delle omonime cartelle della directory root del portale.
3) Fatto questo si entra nella sezione di amministrazione e ci si identifica.
4) Si va nella sezione “ modules “ e il modulo inserito viene visualizzato
nella lista dei moduli esistenti all’interno del portale.
5) Si attiva il nuovo modulo cliccando su “ Attiva “
Il nuovo modulo è ora attivo all’interno del portale ma bisogna renderlo utilizzabile
dagli utenti :
6) Cliccare su “ metti in home “ .
Ora il link alla radio appare sul main menù e può essere utilizzato cliccandoci sopra.
6.2.2 Il blocco Internet Radio
I passi da seguire per inserire il nuovo blocco sono :
1) , 2) , 3) sono già stati eseguiti nell’inserire il modulo.
4) Si va nella sezione blocks e si arriva nella form “ aggiungi blocco ”.
5) Si compila la form con i seguenti dati :
Titolo : Internet Radio
Campo RSS/RDF : è stato lasciato vuoto
NomeFile : selezionare la voce internet radio
Contenuto : è stato lasciato vuoto
Posizione : Destra
Attivare : Si
Tempo Aggiornamento : 30 minuti
Chi può vederlo ? : Tutti
A questo punto abbiamo fatto tutto ciò che serviva per renderlo disponibile
agli utenti del portale. Visto che abbiamo impostato come lingua del portale
l’Italiano e in questo modulo non era stato previsto tale linguaggio, nel
momento in cui è stato installato, è apparso il messaggio di errore che
rilevava l’assenza del file di traduzione. Abbiamo quindi creato tale file e
inserito nella cartella modules/Internet_Radio/language. Le scritte nel nostro
blocco sono ora nel linguaggio voluto e il modulo funziona correttamente.
Per vedere il modulo in funzione bisogna avere windows media player sul
nostro personal computer .
Fabrizio Di Cola & Giovanni De Angelis
25
Personalizzare PhpNuke 6.0
Capitolo 7 : Personalizzazione
7.1
Personalizzazione di un Tema
7.1.1 Analisi e creazione di un tema
Analizziamo il tema NukeNews. E' un tema composto da molti file html che
vengono inclusi nel theme.php. Il tema nukenews è strutturato in questo modo:
theme.php: Gestisce le funzioni principali e le variabili dei colori di sfondo
tables.php: gestisce le funzioni opentable(); e closetable();
La grafica del portale è costituita da alcune pagine html:
header.html:
footer.html
blocks.html
center_right.html
left_ceter.html
story_home.html
story_page.html
Questi files vengono inclusi nelle funzioni definite in theme.php.
Abbiamo poi un foglio di stile chiamato style.css che viene incluso nel file
header.php che si trova in root. Per convenzione il foglio di stile deve chiamarsi
sempre style.css e deve essere sempre contenuto in una cartella chiamata
style all'interno della cartella del nostro tema.
Le immagini vengono inserite in una cartella chiamata images che si trova
sempre nella cartella del nostro tema. Allora la struttura della cartella del tema
NukeNews sarà:
themes/NukeNews
themes/NukeNews/style/
themes/NukeNews/images/
Il PhpNuke definisce uno standard per cui ogni tema deve definire delle funzioni
particolari e themeheader() è una di queste. La funzione themeheader() è la
funzione che viene richiamata per prima nel file header.php ed è assolutamente
indispensabile crearla quando si crea un nuovo tema. Da questa funzione parte
tutto l’aspetto grafico del nuovo tema. Per rendere più facile la creazione della
grafica del tema è possibile anziché usare degli echo o dei print per ottenere un
output direttamente dalla funzione themeheader() , usare una tecnica che
consente di ottenere in output il risultato di un normale file html, lasciando
invariate le variabili. In particolare la funzione themeheader() valuta prima il file
header.html , poi viene richiamata la funzione blocks con il parametro left e
infine valutato left_center.html .
Fabrizio Di Cola & Giovanni De Angelis
26
Personalizzare PhpNuke 6.0
La funzione themesidebox() gestisce invece il layout dei blocchi che noi creiamo
o che troviamo già fatti, include anch'esso un file chiamato blocks.htm che ne
definisce lo stile e il layout. Altri elementi del file theme.php sono le variabili di
formattazione del testo, alcune sono inserite nel css (foglio di stile) ma altre sono
invece definite all'inizio del file theme.php. Vediamo quelle del tema NukeNews:
$bgcolor1 = "#efefef";
$bgcolor2 = "#cfcfbb";
$bgcolor3 = "#efefef";
$bgcolor4 = "#cfcfbb";
$textcolor1 = "#000000";
$textcolor2 = "#000000";
In queste variabili sono espressi i valori in formato esadecimale. Adesso
passiamo ad analizzare il file tables.php . Questo file crea 4 funzioni
opentable();
closetable();
opentable2();
closetable2();
che non fanno altro che includere dei tag html che aprono e chiudono delle
tabelle in modo predefinito. Per creare una tabella possiamo fare così :
opentable();
echo”Contenuto della tabella”;
closetable();
Diamo uno sguardo per prima opentable().
function OpenTable() {
global $bgcolor1, $bgcolor2;
echo "<table width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"0\"
bgcolor=\"$bgcolor2\"><tr><td>\n";
echo "<table width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"8\"
bgcolor=\"$bgcolor1\"><tr><td>\n";
}
Vengono richiamate le variabili necessarie ( $bgcolor1, $bgcolor2). Si apre una
tabella larga il 100%. Se ne definisce il colore di background. Apri Riga, Apri
Colonna. Si inserisce una nuova tabella larga il 100% (per i bordi). Gli si
definiscono le caratteristiche di larghezza, altezza ecc ...riga colonna. Ci si ferma
alla colonna perché è qui che andrà inserito il contenuto della tabella .
function CloseTable() {
echo "</td></tr></table></td></tr></table>\n";
}
Chiudi Colonna, Chiudi Riga. Chiudi Tabella Interna. Chiudi Colonna, Chiudi
Riga. Chiudi Tabella Esterna.
Vediamo ora un esempio di creazione di un file html da includere nel tema:
Esempio 1) Il blocco viene creato in questo modo:
Fabrizio Di Cola & Giovanni De Angelis
27
Personalizzare PhpNuke 6.0
<table border="0" cellpadding="1" cellspacing="0" bgcolor="#000000" width="150"><tr><td>
<table border="0" cellpadding="3" cellspacing="0" bgcolor="#dedebb" width="100%"><tr><td
align="left">
<font class="content" color="#363636"><b>$title</b></font>
</td></tr></table></td></tr></table>
<table border="0" cellpadding="0" cellspacing="0" bgcolor="#ffffff" width="150">
<tr valign="top"><td bgcolor="#ffffff">
$content
</td></tr></table>
<br>
Viene creata una tabella di larghezza fissa (nel nostro caso 150) e gli vengono
attribuiti dei colori di background ecc.. Vengono inoltre passate due variabili
($title e $content) che, una volta inclusi nel theme.php vanno a richiamare il
titolo e il contenuto del blocco. Sarebbe stato utile, per una questione di
pulizia del codice, definire anche i valori di Background delle tabelle nel css.
7.1.2 Selezionare un tema
Si entra nella sezione di amministrazione tramite la pagina
http://localhost/~username/admin.php
a questo punto si accede con la username e password dell’amministratore e si
clicca sull’icona preferences. A questo punto ci troviamo di fronte una schermata
con i settaggi generali del nostro sito. Basta andare sul menù a tendina
corrispondente alla voce default theme for your site e selezionare quindi il tema da
noi creato che dovrebbe apparire tra quelli nella lista dei temi predefiniti.
7.2
Personalizzazione dei blocchi
7.2.1 Analisi e creazione di un blocco
I blocchi di phpnuke possono essere di 3 tipi differenti:
RSS/RDF: Sono blocchi che prelevano news da altri siti che mettono a
disposzione un File in formato standard per la lettura del testo contenuto in esso.
Blocchi di contenuto: Sono blocchi in cui inseriamo del testo semplice o del
testo HTML che verrà poi visualizzato all'interno del blocco
Blocchi di files: Sono script in PHP che eseguono determinati comandi
Per inserire dei links e del testo in un blocco di testo si può fare in questo modo:
links da inserire:
pippo.com
pluto.com
Allora il testo andrà formattato in questo modo per poi essere inserito nel
blocco:
Fabrizio Di Cola & Giovanni De Angelis
28
Personalizzare PhpNuke 6.0
Il <b>webmaster</b> che scrive questo libro gestisce i seguenti siti:<br><br>
<a href=”http://www.pippo.com ”>pippo.com</a>
<a href=”http://www.pluto.com ”>pluto.com</a>
Per creare un blocco del tipo “script php” che si interfaccia al database e ne
estrapola i dati bisogna innanzitutto capire come sono strutturati questi blocchi.
Essi sono contenuti in una cartella chiamata blocks, il nome del blocco deve
essere:
block-nomedelblocco.php
dove block- va nominato in questo modo obbligatoriamente. Ogni blocco che
inizierà con block- verrà incluso nella schermata dei blocchi attivabili nel menu di
amministrazione sezione blocchi.nella tendina nomefile. Il nome assegnato, se
non assegnato da admin, sarà quello che segue in block- . Non sono ammessi
spazi nel nome del blocco, gli spazi vanno sostituiti con l'underscore _ . Tutti i
blocchi che rispetteranno queste regole saranno inseriti nell'interfaccia di admin.
Per realizzare un blocco si devono fare le seguenti operazioni:
a) in ogni blocco inserire il seguente codice all'inizio:
if (eregi("block-Nomeblocco.php",$PHP_SELF)) {
Header("Location: index.php");
die();}
questo protegge il file evitando che gli utenti possano accedere direttamente
dalla cartella blocks, il blocco verrà visualizzato solo se richiamato dal portale.
b) Nel blocco posso includere script scritti in qualunque linguaggio.
c) Tutto quello che è l'output del blocco ( cioè ciò che viene visualizzato in esso )
deve avere un valore richiamabile dalla variabile $content.
Bisogna sempre ricordare che lo spazio nel blocco è limitato quando se ne crea
il layout.
Per creare un blocco che visualizza le pagine web a cui si è acceduti nella
giornata precedente a questa in un determinato sito avremo dunque bisogno di
una sola query ed un solo valore, questo per facilitare le cose. Chimando il
blocco hits, il suo nome completo sarà block-hits.php.
Apriamo il tag php:
<?php
In secondo luogo inseriamo lo script di protezione visto prima:
if (eregi("block-hits.php",$PHP_SELF)) {
Header("Location: index.php");
die();
}
Fabrizio Di Cola & Giovanni De Angelis
29
Personalizzare PhpNuke 6.0
Le variabili che intendiamo richiamare sono il parametro $prefix e $dbi
che è l'astrazione del database:
global $prefix, $dbi;
Inseriamo la query che va a leggere dal database quante pagine sono state
visitate sul sito (L'istruzione sarebbe leggi il valore della prima riga della tabella
nuke_counter nella cella count)
$result = sql_query("select count from ".$prefix."_counter order by type desc limit 0,1", $dbi);
list($count) = sql_fetch_row($result, $dbi);
Come ultima cosa passiamo la variabile $content che sarà quella che richiamerà il
blocco e chiudiamo il tag PHP
$content .= $count
?>
Per dare una visione di insieme inseriamo ora lo script nella sua interezza :
<?php
if (eregi("block-hits.php",$PHP_SELF)) {
Header("Location: index.php");
die();
}
global $prefix, $dbi;
$result = sql_query("select count from ".$prefix."_counter order by type desc limit 0,1", $dbi);
list($count) = sql_fetch_row($result, $dbi);
$content .= $count
?>
7.2.2 Aggiungere un blocco
Si entra nella sezione di amministrazione tramite la pagina
http://localhost/~username/admin.php
e si clicca su l’icona blocks. Ci troviamo una lista dei blocchi e per ognuno di essi
possiamo vedere se esso è attivo o inattivo e abbiamo l’opportunità di editarlo o
cancellarlo. Più in basso troviamo una form editabile attraverso la quale si può
inserire un nuovo blocco.
7.3
Personalizzazione di un modulo
7.3.1 Parte pubblica
I moduli di phpnuke sono quelle applicazioni scritte in PHP che gestiscono la
parte centrale del portale. Sono moduli le News, Il forum, La lista utenti ecc ...
Ogni modulo, a seconda della complessità è strutturato nella sola parte utente e
una parte amministratore nel caso vi siano dei contenuti da modificare. Il tutto è
gestito dal files modules.php che, già da solo, svolge il lavoro di autenticazione e
Fabrizio Di Cola & Giovanni De Angelis
30
Personalizzare PhpNuke 6.0
gestione dei diritti di accesso . Il file modules.php verifica se il modulo è stato
attivato o no.
Se prendiamo il modulo avantgo, per richiamare il file index.php, basta
passare, nella stringa, il nome di questo (di default viene cercato index.php)
modules.php?name=AvantGo
Se invece volessimo richiamare una pagina diversa da index.php (prendiamo
print.php), la stringa che dovremo passare è:
modules.php?name=AvantGo&file=print
ossia la variabile file con un valore (print) che corrisponde al nome del file senza
l'estensione
.php .
All'interno della cartella modules/nomemodulo è anche presente una
sottocartella che si chiama language. Così gestiamo in modo semplice ed
immediato la funzione multilinguaggio all'interno dei moduli.
Il file modules.php lavora in questo modo:
Include il mainfile.php
Verifica se il modulo è attivo
Verifica se la stringa passa un nome di file diverso da index.php
Verifica i permessi sul modulo (Se lo può vedere chinque, solo utenti registrati o
solo admin)
Per realizzare un modulo per PHPNuke si deve:
1) Realizzare files PHP per la parte pubblica degli utenti
2) Realizzare una interfaccia di admin
3) Verificare che tutto quello che abbiamo realizzato si attenga alle regole di
sviluppo di PHPnuke.
I moduli devono essere inclusi nella cartella modules/nomemodulo nella parte
pubblica e nella cartella admin/modules nella parte amministrativa. Il file
principale del modulo incluso in modules/nomemodulo deve essere chiamato
index.php. Le tabelle nella sintassi php vengono indicate con il prefisso.
Ad esempio Nuke_pages sarà indicata con ".$prefix."_pages dove $prefix
prende il valore dal file config.php
I percorsi delle eventuali immagini o links devono partire da root e non dalla
cartella modules/nomemodulo in quanto i files contenuti in essa vengono inclusi
in un file collocato in root che si chiama modules.php. Per gestire in modo
ottimale la funzione multilingua bisogna creare delle astrazioni ( variabili in cui si
inserisce il testo stesso ) dei testi che dobbiamo inserire nel file creando una
cartella language all'interno della cartella del modulo. Il tutto verrà poi richiamato
in automatico.
Fabrizio Di Cola & Giovanni De Angelis
31
Personalizzare PhpNuke 6.0
Ad esempio per creare un modulo che chiamiamo Topolino dobbiamo dare la
possibilità a chi lo legge attraverso l'interfaccia in italiano di leggere “Topolino” e
a chi lo legge in inglese di leggere “Mickey Mouse” .
1) Si crea la cartella language nella cartella modules/topolino
2) Si inseriscono due files .php chiamati lang-italian.php e lang-english.php
3) Si crea una astrazione per topolino, nel lang-italian.php sarà:
define("_TOPO","Topolino");
In inglese sarà:
define("_TOPO","Mickey Mouse");
In questo modo inserendo nel modulo l'astrazione "._TOPO." questo verrà
sostituito in automatico da Topolino nell'interfaccia Italiana e da Mickey mouse
nell'interfaccia inglese
Per creare un modulo che visualizza una gif di topolino con un elenco di 3 nomi
predefiniti che sono editabili dagli utenti si prenda in considerazione la versione
standard di tutti i moduli:
<?php
if (!eregi("modules.php", $PHP_SELF)) {
die ("You can't access this file directly...");
}
$index = 1;
require_once("mainfile.php");
$module_name = basename(dirname(__FILE__));
get_lang($module_name);
include("header.php");
// QUI CI VA TUTTO LO SCRIPT DEL MODULO
include("footer.php");
?>
E’ necessario creare una cartella modules/Topolino, il file riportato in alto (con gli
altri contenuti), dovrà chiamarsi index.php e risiedere in quella cartella. Si crea
una tabella di database chiamata nuke_topolino che sarà strutturata in questo
modo:
idpersonaggi : E' una cella che contiene gli id dei personaggi (int 11, primary)
nomipersonaggi: E' una cella che contiene i nomi dei personaggi (varchar 60)
E inseriamo manualmente i nomi dei 3 personaggi che ci interessano (Il modulo
non consente di aggiungere o eliminare personaggi ma solo di editare quelli
esistenti).
Fabrizio Di Cola & Giovanni De Angelis
32
Personalizzare PhpNuke 6.0
Id 1: Topolino
Id 2: Minnie
Id 3: Pluto
Per l’output si utilizzi una query con un ciclo for che restituirà i valori inseriti nel
database. E’ necessario utilizzare la sintassi illustrata nel file
include/sql_layer.php
La query da compilare sarà strutturata in questo modo:
$resultpersonaggi = sql_query("SELECT idpersonaggi, nomepersonaggi FROM
".$prefix."_topolino", $dbi);
for ($m=0; $m < sql_num_rows($resultpersonaggi, $dbi); $m++)
{
list($idpersonaggi, $nomepersonaggi) = sql_fetch_row($resultpersonaggi, $dbi);
echo "$idpersonaggi - $nomepersonaggi <br> ";
}
Ora si inseriscono altri elementi:
-
una tabella
i risultati
un titolo
una descrizione
Si definiscono quindi le astrazioni che vanno a comporre le due frasi di cui
abbiamo bisogno, nel file lang-italian.php :
<?php
define("_BENVETOPOMOD","Modulo Topolino, Benvenuti!");
define("_DESCRITOPOMOD","Questo è un modulo di esempio che serve ad
illustrare come si crea un modulo PHPNuke, non ha nessuna velleità funzionale :)");
?>
Si prendano i due pezzi di codice costruiti prima e come risultato finale si avrà:
<?php
if (!eregi("modules.php", $PHP_SELF)) {
die ("You can't access this file directly...");
}
$index = 1;
require_once("mainfile.php");
$module_name = basename(dirname(__FILE__));
get_lang($module_name);
include("header.php");
echo"<br>";
echo""._BENVETOPOMOD."";
echo"<br><br>";
opentable();
echo"<br>";
echo""._DESCRITOPOMOD."";
echo"<br><br>";
Fabrizio Di Cola & Giovanni De Angelis
33
Personalizzare PhpNuke 6.0
$resultpersonaggi = sql_query("SELECT idpersonaggi, nomepersonaggi FROM
".$prefix."_topolino", $dbi);
for ($m=0; $m < sql_num_rows($resultpersonaggi, $dbi); $m++)
{
list($idpersonaggi, $nomepersonaggi) = sql_fetch_row($resultpersonaggi, $dbi);
echo "$idpersonaggi - $nomepersonaggi <br> ";
}
closetable();
include("footer.php");
?>
Si è aggiunto del testo, dei Break per gli “a capo” e un opentable(); closetable();
per includere il testo.
7.3.2 Parte di amministrazione
Ora verrà realizzata la parte di amministrazione. In questo modulo l'unica
funzione che andrà a lavorare sul DB sarà quella in cui si modifica il testo di una
delle tre voci che si sono create. Innanzitutto si devono creare i files da inserire
nelle cartelle:
admin/case
admin/links
admin/modules
Admin: Contiene 4 sottocartelle (Links, language, case, modules) che
gestiscono i vari moduli di amministrazione. La cartella che ospita i files operativi
è admin/modules, è qui che sono presenti i file che eseguono le operazioni. La
cartella admin/links invece dice che modulo di admin deve richiamare e
posiziona una voce in admin per quel determinato modulo.
Esempio (Modulo di amministrazione per le FAQ):
if (($radminsuper==1) OR ($radminfaq==1)) {
adminmenu("admin.php?op=FaqAdmin", ""._FAQ."", "faq.gif");
}
Questo modulo:
Verifica i diritti di amministrazione (Esso può essere amministrato o dal
superadmin o da un admin che ha abilitato il livello per le FAQ. Passa un case
(op=FaqAdmin) che dice al file admin.php (che include tutti i moduli di admin)
che modulo andare a richiamare, associa un valore per tradurre il termine faq e
associa una immagine per l'amministrazione visuale (faq.gif). La cartella
admin/case invece serve a definire che modulo usare in determinati case.
Questo è importante quando, usando lo stesso file di admin si vogliono fare più
operazioni usando i case.
Case1 = inserisci
Case2 = cancella
ecc ...
Infatti dice che modulo richiamare al verificarsi di un case.
Fabrizio Di Cola & Giovanni De Angelis
34
Personalizzare PhpNuke 6.0
Ad esempio, nel modulo faq i case sono molti, vediamo solo gli ultimi 2:
case "FaqAdmin":
case "FaqCatGo":
include ("admin/modules/adminfaq.php");
break;
Entrambi i case richiamano il file adminfaq.php ma gli fanno fare operazioni
diverse. Il primo richiama il file nella schermata di default, il secondo invece dà
l'ok ad inserire una nuova categoria. Questo avviene attraverso una stringa tipo:
admin.php?op=FaqAdmin nel primo caso e admin.php?op=FaqCatGo nel
secondo. Andremo poi a creare, nell'ordine, i files:
admin/modules/topolino.php
admin/case/case.topolino.php
admin/links/links.topolino.php
Per creare il file all'interno della cartella modules (modules/topolino.php)
dobbiamo immaginare una struttura di questo tipo:
Parte inziale dei files (Simile per tutti i moduli)
Definizione delle funzioni necessarie
Definizione dei case necessari per richiamare le diverse funzioni del modulo di
admin
Parte finale del file
La sintassi della parte inziale del file è la seguente:
<?php
if (!eregi("admin.php", $PHP_SELF)) { die ("Access Denied"); }
$result = sql_query("select radminsuper, admlanguage from ".$prefix."_authors where
aid='$aid'", $dbi);
list($radminsuper,$admlanguage) = sql_fetch_row($result, $dbi);
if ($radminsuper==1) {
Il lavoro che fa questa parte di file è un controllo sui diritti di amministrazione di
chi lo invoca, un controllo sulla lingua da utilizzare e (non in questo modulo) un
controllo sui diritti dell'amministratore. Un admin può avere solo dei diritti parziali
di amministrazione su certi moduli o alcuni moduli possono essere amministrati
solo da un superadmin. Nel nostro caso specifico il modulo può essere gestito
solo da un superadmin in quanto il controllo è solo:
if ($radminsuper==1)
Nel caso vi fossero dei diritti specifici (prendiamo come esempio il modulo
reviews) i diritti da controllare sarebbero stati:
if (($radminreviews==1) OR ($radminsuper==1))
Per attivare i diritti su nuovi moduli bisogna infatti andare a specificare nella
tabella nuke_authors un nuovo campo che specifici i diritti, modificare poi il
modulo admin/modules/authors.php aggiungendo la checkbox per i diritti del
nuovo modulo e modificare le relative query di update.
Fabrizio Di Cola & Giovanni De Angelis
35
Personalizzare PhpNuke 6.0
Tornando al modulo, la parte inziale della sintassi è obbligatoriamente (salvo il
caso sopracitato):
<?php
if (!eregi("admin.php", $PHP_SELF)) { die ("Access Denied"); }
$result = sql_query("select radminsuper from ".$prefix."_authors where aid='$aid'", $dbi);
list($radminsuper) = sql_fetch_row($result, $dbi);
if ($radminsuper==1) {
e quella finale è invece:
} else {
echo "Access Denied";
}
?>
Tutto quello che ci sta in mezzo sono le funzioni di gestione e i case che devono
essere richiamati che ora andremo a costruire. Ci sono un paio di regole da
rispettare per costruire le funzioni di admin:
1) Includere all'inizio della funzione l'header e alla fine il footer
include("header.php");
include("footer.php");
2) Includere subito dopo l'header anche la funzione
GraphicAdmin();
che visualizza il pannello di navigazione che conduce a tutti gli altri links di
admin.
Le funzioni che andremo ora a creare sono:
Visualizzazione dei record
Scelta del record e richiamo in un campo di testo modificabile
Modifica del record con inserimento del valore modificato nel database.
Ecco la visualizzazione della funzione relativa alla selezione del record:
function Topodisplay() {
global $admin, $bgcolor2, $prefix, $dbi, $multilingual;
include ("header.php");
GraphicAdmin();
Opentable();
$resultpersonaggi = sql_query("SELECT idpersonaggi, nomepersonaggi FROM
".$prefix."_topolino",
$dbi);
for ($m=0; $m < sql_num_rows($resultpersonaggi, $dbi); $m++)
{
list($idpersonaggi, $nomepersonaggi) = sql_fetch_row($resultpersonaggi, $dbi);
echo "$idpersonaggi - $nomepersonaggi <a
href=\"admin.php=Toposeleziona&idtopo=$idpersonaggi\">Selcttopo</a> <br> ";
}
closetable();
include("footer.php");
}
Fabrizio Di Cola & Giovanni De Angelis
36
Personalizzare PhpNuke 6.0
La prossima funzione da implementare è quella relativa alla selezione di uno dei
tre record:
function Toposelect() {
global $admin, $bgcolor2, $prefix, $dbi, $multilingual, $idtopo;
include ("header.php");
GraphicAdmin();
Opentable();
$resultpersonaggi = sql_query("SELECT idpersonaggi, nomepersonaggi FROM
".$prefix."_topolino
where idpersonaggi='$idtopo'", $dbi);
for ($m=0; $m < sql_num_rows($resultpersonaggi, $dbi); $m++)
{
list($idpersonaggi, $nomepersonaggi) = sql_fetch_row($resultpersonaggi, $dbi);
echo"<form action=\"admin.php\" method=\"post\">";
echo"<input type=\"text\" name=\"nomepersonaggio\" size=\"20\" maxlength=\"20\"
value=\"$nomepersonaggi\"><br><br>";
echo"<input type=\"hidden\" name=\"idpersonaggio\" value=\"$idtopo\">";
echo"<input type=\"hidden\" name=\"op\" value=\"topomodifica\">";
echo"<input type=\"submit\" value=\""._ADDTOPO."\">";
echo"</form>";
}
closetable();
include("footer.php");
}
E importantissimo notare alcune cose:
1) Le variabili vanno richiamate, infatti $idtopo è stata inserita nella dichiarazione
delle variabili
2) Il valore del case viene passato da un campo hidden del form ( <input
type=\"hidden\" name=\"op\" value=\"topomodifica\"> ).
L'Ultima funzione presa in considerazione è quella relativa all'aggiornamento
dei valori nel database (Anche qui abbiamo aggiunto due variabili che ci
interessavano ($nomepersonaggio, $idpersonaggio):
function Topomodifica() {
global $admin, $bgcolor2, $prefix, $dbi, $multilingual, $idtopo, $nomepersonaggio,
$idpersonaggio;
include ("header.php");
GraphicAdmin();
Opentable();
sql_query("update ".$prefix."_topolino set nomepersonaggi='$nomepersonaggio' where
idpersonaggi=$idpersonaggio", $dbi);
echo"OK";
die(mysql_error());
closetable();
include("footer.php");
}
Gli ultimi due elementi da inserire sono la definizione dei case (Ossia quale
funzione richiamare a seconda delle variabili passate nel modulo) e la chiusura
del file.
Definizione dei case:
Fabrizio Di Cola & Giovanni De Angelis
37
Personalizzare PhpNuke 6.0
switch($op) {
case "":
Topodisplay();
break;
case "topolino":
Topodisplay();
break;
case "toposeleziona":
Toposelect();
break;
case "topomodifica":
Topomodifica();
break;
}
Chiusura del file:
} else {
echo "Access Denied";
}
?>
La pagina di definizione dei case definisce richiamandoli quali sono i case
compresi nel file admin/modules/topolino.php nel file
admin/case/case.topolino.php
Eccone la sintassi:
<?php
if (!eregi("admin.php", $PHP_SELF)) { die ("Access Denied"); }
switch($op) {
case "topolino":
include("admin/modules/topolino.php");
break;
case "toposeleziona":
include("admin/modules/topolino.php");
break;
case "topomodifica":
include("admin/modules/topolino.php");
break;
}
?>
Ora passiamo a compilare il file admin/links/link.topolino.php :
Compilazione del file link.topolino.php:
<?php
if ($radminsuper==1) {
adminmenu("admin.php?op=topolino", ""._EDITTOPOLINO."", "topolino.gif");
}
?>
Fabrizio Di Cola & Giovanni De Angelis
38
Personalizzare PhpNuke 6.0
Dove: admin.php?op=topolino definisce quale modulo deve andare a richiamare
""._EDITTOPOLINO."" è la voce da tradurre (Va compilata in admin/language)
Per la modifica del modulo di linguaggio vi rimando al paragrafo precedente con
una sola nota. Il file di linguaggio della sezione di admin è comune per tutti
(admin/language), le voci relative vanno aggiunte in coda a quelle già presenti.
7.3.3 Inserire un modulo
Si entra nella sezione di amministrazione tramite la pagina
http://localhost/~username/admin.php
e quindi si clicca sull’icona modules. Troviamo una lista dei moduli presenti
all’interno del nostro portale PhpNuke. Tali moduli si possono attivare, disattivare,
modificare e inserire direttamente nella home page. Una volta creato un nuovo
modulo esso apparirà all’interno di questa lista e conseguentemente si può agire su
di esso come su tutti gli altri moduli.
Capitolo 8: Analisi del database nuke
8.1 Creazione del database
Della creazione del database nuke si è già fatto riferimento nel paragrafo 3.3
quando si è parlato della installazione del PhpNuke.
8.2 Uno sguardo sulle tabelle
Vediamo ora come è strutturato il database del PhpNuke. Cominciamo
dall’analizzare le tabelle del portale :
nuke_access : Definisce i vari profili utenti
nuke_authors : Definisce gli admin e i loro livelli
nuke_autonews : Gestisce le news temporizzate
nuke_banlist : Gestisce gli utenti bannati (esclusi dalla visualizzazione del portale)
nuke_banner : Gestisce le campagne banner, le impression e i click
nuke_bannerclient : Gestisce i clienti delle campagne banner
nuke_bbtopics : Gestisce il BBCode
nuke_blocks : Elenco dei blocchi creati
nuke_catagories : Elenco delle categorie
Fabrizio Di Cola & Giovanni De Angelis
39
Personalizzare PhpNuke 6.0
nuke_comments : Gestisce i commneti e le risposte
nuke_config : Gestisce alcune configurazioni tipo la possibilità di postare in HTML
ecc...
nuke_counter : Gestisce le statistiche
nuke_disallow : Blocca un utente
nuke_downloads_categories : Gestisce categorie e sottocategorie dell'area
download
nuke_downloads_downloads : Gestisce i files presenti in area download
nuke_downloads_editorials : Gestisce i commenti sui files
nuke_downloads_modrequest : Gestisce la segnalazione di Brken Files Link
nuke_downloads_newdownload : Gestisce l'inserimento di files da parte di terzi
nuke_encyclopedya : Sono elencate le varie enciclopedia presenti
nuke_encyclopedia_text : Sono elencati i termini delle enciclopedie
nuke_ephem : Gestisce gli eventi ricorrenti
nuke_faqAnswer : Archivia le risposte delle faq
nuke_faqCategories : Gestisce le categorie in cui sono suddivise le FAQ
nuke_forum_access : Registra gli utlimi accessi degli utenti
nuke_forum_mods : Definisce i moderatori dei forum
nuke_forums : Definisce i forum attivi
nuke_forumtopics : Definisce le categorie dei forum
nuke_headlines : Definisce le fonti da cui prendere news con i blocchi
nuke_links_categories : Definisce le categorie in cui sono suddivisi i link
nuke_links_editorials : Gestisce i giudizi sui links
nuke_links_links : Archivia i links
nuke_links_modrequest : Archivia i messaggi relativi ai link (Broken link ecc ...)
nuke_links_newlink : Archivia le richieste di aggiunta di nuvi links
nuke_links_votedata : Archivia i voti dei link
nuke_main : Definisce quale è il modulo principale che deve essere incluso in
index.php
Fabrizio Di Cola & Giovanni De Angelis
40
Personalizzare PhpNuke 6.0
nuke_message : Gestisce i messaggi in home page
nuke_modules : Elenca e gestisce i moduli installati
nuke_pages : Contiene i contenuti della sezione Content
nuke_pages_categories : Contiene la lista delle categorie che si trovano nella
sezione Content
nuke_poll_check : Elenco di ip che hanno già votato nelle ultime 24 ore
nuke_poll_data : Elenco di risposte ai sondaggi
nuke_poll_desc : Elenco dei sondaggi presenti e passati
nuke_pollcomments : Commento al sondaggio
nuke_posts : Sono i titoli principali dei post del forum
nuke_priv_msgs : Gestisce il modulo private messages
nuke_queue : Elenca i testi in attesa di essere pubblicati
nuke_ranks : Registra i voti delle news
nuke_referer : Elenca da dove arrivano le ultime x righe
nuke_related : Associa eventuali links ai topics
nuke_reviews_comments : Commenti alle reviews
nuke_reviews_main : Tabella principale delle reviews
nuke_seccont : Elenca i testi delle sezioni
nuke_sections : Elenca le sezioni attive
nuke_session : Elenca le sessioni attive
nuke_smiles : Elenca le faccine supportate
nuke_stats_date : Modulo statistiche
nuke_stats_hour : Modulo statistiche
nuke_stats_month : Modulo statistiche
nuke_stats_year : Modulo statistiche
nuke_stories : Testi delle news
nuke_stories_cat : Categorie delle news
nuke_topics : Elenco dei topics
Fabrizio Di Cola & Giovanni De Angelis
41
Personalizzare PhpNuke 6.0
nuke_users : Elenco utenti
nuke_words : Parole da censurare
8.3 Le tabelle principali
nuke_blocks
title
titolo del blocco
content
contenuto del blocco
position
posizione del blocco nella pagina
active
blocco attivo/non attivo
refresh
intervallo di ricarimento
blanguage
linguaggio del blocco
blockfile
nome del file del blocco
view
indica il tipo di utente che può visualizzare il
blocco
nuke_config
sitename
nome del sito che appare nella barra superiore
del browser
nukeurl
url del sito
site_logo
il nome del file del logo ( esempio: logo.gif )
slogan
è lo slogan del portale
startdate
è la data di inizio del progetto
adminmail
email dell’amministratore del portale
anonpost
variabile per il permesso di immissione
Fabrizio Di Cola & Giovanni De Angelis
42
Personalizzare PhpNuke 6.0
commmenti da parte di utenti non registrati
Default_Theme
è il tema di default impostato dell’amministratore
per il portale
foot1
informazioni, messaggi o immagini che vengono
visualizzate in fondo ad ogni pagina del portale
foot2
vedi sopra
foot3
vedi sopra
commentlimit
è la dimensione massima in byte dei commenti
con un limite di nove cifre
anonymous
come viene chiamato l’utente non registrato che
interagisce con il portale
minpass
numero minimo di caratteri della password
pollcomm
consente di attivare i commenti nei sondaggi
articlecomm
consente di attivare i commenti agli articoli
broadcast_msg
consente di attivare messaggi scritti da un utente
e visualizzabili da tutti gli altri
user_news
banners
consente agli utenti di cambiare il numero di
news in home
consente di scegliere se attivare i banners
language
imposta la lingua del portale
multilingual
consente di attivare le caratteristiche
multilinguaggio
notify
consente di scegliere se ricevere la notifica via
email in seguito a nuovi inserimenti
notify_email
email a cui mandare le notifiche
notify_subject
soggetto della email di notifica
notify_message
testo della email di notifica
notify_from
account da cui ricevo la email
footermessage
messaggio a piè di pagina in tutte le email inviate
email_send
permette agli utenti di inviare email
attachmentdir
directory temporanea degli allegati
Fabrizio Di Cola & Giovanni De Angelis
43
Personalizzare PhpNuke 6.0
permette agli utenti di inviare allegati
attachments
attachments_view permette agli utenti di vedere/leggere gli allegati
download_dir
directory da dove scaricare gli allegati
defaultpopserver
server di posta da cui scaricare le email
numaccounts
numero massimo di account registrabili
imgpath
percorso di default delle immagini mailbox
moderator
permette di selezionare il tipo di moderazione
CensorMode
tipo di censura applicata
CensorReplace
parola da sostituire a quelle censurate
copyright
testo del coyright
version_Num
versione del PhpNuke
nuke_main
main_module
modulo caricato di default nella home page
nuke_modules
title
titolo del modulo
custom_title
titolo visualizzato nel modulo
active
se il modulo è attivo o meno
view
indica il tipo di utente che può vedere il modulo
nuke_user
name
nome reale dell’utente
uname
user name dell’utente
Fabrizio Di Cola & Giovanni De Angelis
44
Personalizzare PhpNuke 6.0
email
email reale dell’utente
femail
email che verrà visualizzata
url
sito dell’utente
user_avatar
immagine con cui l’utente viene riconosciuto
nel portale
user_regdate
data di registrazione
user_icq
icq number dell’utente
user_occ
occupazione dell’utente
user_from
provenienza del’utente
user_intrest
interessi dell’utente
user_sig
firma dell’utente
user_viewemail
abilita gli altri utenti alla visualizzare della email
reale
user_aim
aim number dell’utente
user_yim
yim number dell’utente
user_msmn
messanger number dell’utente
pass
password dell’utente
theme
nome del tema scelto dall’utente
commentmax
lunghezza massima in byte del commento da
parte dell’utente
newsletter
dice se l’utente ha aderito alle newsletter
user_posts
numero di post fatti dall’utente
user_level
livello dell’utente sulla base del proprio
punteggio
Fabrizio Di Cola & Giovanni De Angelis
45