News Facili v.2.0
Per server con sistemi linux e unix
© Copyright Marco Allegretti aka "shishii".
L'uso è soggetto alle regole della licenza GPL 2
Puoi contattarmi presso shishii@tiscalinet.it
Il mio sito è www.shishii.com
ChangeLog:
La versione 1.1 differisce dalla 1.0 per una generale ottimizzazione e per la possibilità di regolare il colore dei font della pagina creata dallo scipt. Ringrazio Maurizio Vesce per i suggerimenti datimi. Puoi contattarlo tramite il suo sito http://www.cercagratis.it
La versione 1.2 differisce dalla 1.1 solo per la possibilità di scegliere il tipo di formattazione dei paragrafi Si ringrazia Alfredo Profeta per i suggerimenti che hanno contribuito a migliorare questo script http://www.imprint-profeta.com
La versione 2.0 è stata completamente riscritta ma non è stata modificata la struttura del file di database titoli.txt per cui è possibile sostituire i file della nuova versione alla vecchia senza perdere le news già inserite. Sarà sufficiente lasciare il vecchio titoli.txt
I files e directory che troverai nel file compresso sono:
- variabili.pl
- news.pl
- vis_news.pl
- titoli.txt
- new.gif
- news.shtml
- template.tpl
- pages Directory
- old_pages Directory
- readme.html
Requisiti Necessari.
- Server UNIX-LINUX. L'adattamento a server windows è semplice, ma non intendo contribuire al sostegno di un sistema operativo insicuro, costoso e proprietario. Essendo però ammesse le modifiche dello script, gli interessati potranno provvedere.
- Interprete di PERL 5
- Supporto CGI e SSI.
In generale
Questi scripts servono per inserire dinamicamente delle news in un sito web allocato su server UNIX-LINUX.
La struttura per grandi linee è la seguente:
Tramite un pannello di controllo si inseriscono delle news
contraddistinte da un titolo.
Il titolo andrà a formare il link dinamico che comparirà nella pagina
che presenta l'indice delle news che verrà formato dai titoli in
ordine decrescente di inserimento.
Il testo invece andrà a riempire una pagina html statica creata dallo
script e su cui si giungerà tramite il link suddetto.
Lo stesso pannello di controllo consente di cancellare delle news e
il relativo link.
Anche nella versione 2.0 si è badato a renderne l'utilizzo più "economico" e semplice possibile. Per cui non si fa uso di database esterni, o di moduli Perl.
Sono state introdotte le seguenti migliorie:
- Maggiore semplicità grazie alla scomparsa di alcuni file che richiedevano un apposito settaggio, e all'uso di template per l'adeguamento della grafica al sito.
- Maggiore sicurezza grazie alla possibilità di utilizzare password e di filtrare bene l'input.
Le opzioni possibili:
- puoi regolare l'ora tenendo conto del fuso orario del server su cui risiede il tuo sito
- puoi decidere il numero massimo di news da visualizzare
- le news che superano il numero massimo possono:
- essere lasciate nella directory pages
- essere cancellate definitivamente
- essere archiviate nella directory old_pages
- in ogni caso il link delle news scadute viene cancellato automaticamente
- puoi inserire automaticamente una piccola immagine accanto alle news particolarmente recenti
- puoi decidere per quante ore una news va considerata particolarmente recente
- puoi decidere se fare comparire la data ed ora di inserimento accanto al titolo della news e sotto il titolo della pagina relativa
- puoi decidere se la data accanto al titolo deve essere scritta con un font di dimensione minore
- Se decidi di usare la pagina autogenerata:
- puoi decidere il colore di sfondo e il background
- puoi decidere il tipo e la dimensione e il colore dei font
- puoi regolare i margini del testo delle pagine che contengono le news
- puoi regolare colore, spessore, larghezza della linea orizzontale posta sotto il titolo
- puoi scrivere il messaggio di "alt" che si evidenzia quando il mouse va sulla piccola immagine accanto al titolo
- puoi decidere se usare uno stile css per i titoli linkati, in modo che non siano sottolineati ma che cambino colore al passaggio del mouse. Puoi decidere quali colori usare.
- Se invece decidi di usare il template puoi regolarme in assoluta libert? la grafica. Inserendo gli elementi dinamici dove vuoi.
Gli elenchi a tendina di pagine esistenti tra cui scegliere quelle da cancellare sono fatti con uno script che verifica le relative directory e genera il codice html necessario direttamente sul pannello, per cui tali dati sono sempre aggiornati automaticamente.
Sulla pagina html sono presenti JavaScript che consentono l'anteprima di pagine esistenti.
SETTAGGIO
FILES plTutti i files.pl devono essere settati e manipolati solo con editor specifici o con editor di testo puri tipo "blocco note" di windows. Devono essere inviati al server tramite client FTP, assicurandosi che la trasmissione avvenga in modalit? ASCII. Si deve attribuire a tutti chmod 755, tranne che a variabili.pl al quale deve essere attribuito chmod 644.
FILE shtmlSi tratta della pagina di prova che serve a verificare il funzionamento degli script, prima dell'inserimento sulle pagine pubbliche. Le caratteristiche specifiche verranno illustrate di seguito. Le sezioni su cui devi intervenire sono segnalate nel corpo del codice tramite i tag di commento /*....*/ oppure <!--.....-- > . Non deve essere variato il chmod attribuito dal sistema.
FILE txtSi tratta del file di database che consente di memorizzare i vari dati delle news. Inizialmente è vuoto, e così deve essere caricato sul server. Deve essere attribuito chmod 666. Ti consiglio di creare nella directory principale del tuo sito una directory "news_facili" all'interno della quale inserirlo a questa directory devi dare chmod 777.
FILE tplSi tratta del file di template che consente di avere la pagine delle news con grafica assolutamente personalizzata. Ti consiglio di creare nella directory principale del tuo sito una directory "news_facili" all'interno della quale inserirlo.
DIRECTORYSi tratta delle directory al cui interno verranno create le pagine e archiviate quelle vecchie. Le ho inserite nel pacchetto per evitare che vengano dimenticate o venga sbagliato il nome. Ovviamente se sei capace puoi anche reimpostarle. Ti consiglio di creare nella directory principale del tuo sito una directory "news_facili" con chmod 777 all'interno della quale inserirle. Alle stesse deve essere attribuito chmod 777.
Diagramma di esempio per l'istallazione dei file con i chmod:
/directory_home_sito/
|
|_ /news_facili/ chmod 777
| |
| |_ titoli.txt chmd 666
| |_ template.tpl chmod 644
| |_ news.shtml chmod 644
| |_ new.gif chmod 644
| |_ /pages/ chmod 777
| |_ /old_pages/ chmod 777
|
|_ /cgi-bin/
|
|_ /news_facili/ chmod 755
|
|_ news.pl chmod 755
|_ vis_news.pl chmod 755
|_ variabili.pl chmod 644
Configurare e istallare lo script.
variabili.pl
DESCRIZIONE
Questo è il file che contiene tutte le variabili utilizzate dagli scripts.
CONFIGURAZIONE
SEZIONE INDIRIZZI
Fai molta attenzione agli URL e ai path che inserisci. La maggior
parte dei mancati funzionamenti dei CGI sono dovuti a ciò.
path completo del file di database titoli.txt
$titoli_path = '/var/www/html/news_facili/titoli.txt';
URL della directory che contiene le pagine delle news.
$pag_url = 'http://localhost/news_facili/pages';
path della directory che contiene le pagine delle news.
$pag_dir = '/var/www/html/news_facili/pages';
path della directory che contiene le pagine archiviate delle news.
$old_pag_dir = '/var/www/html/news_facili/old_pages';
URL dell'immagine che viene usata per evidenziare le news recenti.
$img_url = 'http://localhost/news_facili/new.gif';
URL della pagina che contiene i titoli delle news
$news_url = 'http://localhost/news_facili/news.shtml';
URL dello script news.pl
$cgi_url = 'http://localhost/cgi-bin/news_facili/news.pl';
Inserisci l'url della directory che contiene la parte html dello
script, NON di quella che contiene i CGI.
$non_cgi_dir_url = 'http://localhost/news_facili';
SEZIONE SICUREZZA
Presta la massima attenzione al settaggio di questa sezione.
Per prima cosa puoi proteggere il pannello di controllo con password. Tieni presente che si tratta di una semplice password in chiaro. Ovviamente se puoi e se vuoi puoi disattivare questa protezione e proteggere la directory dove risiede il pannello di controllo, news.pl, con password di sistema o webserver.
Ti consiglio di filtrare la lunghezza degli input per evitare crash del server, esaurimento dello spazio a tua disposizione, ecc.
Infine ti consiglio di non consentire o di restringere al massimo la possibilità di usare codice html nel testo, a meno che non sia solo tu ad accedere al pannello di controllo.
Se vuoi che le varie attività dello script siano protette da una
password setta la seguente variabile ad 1 altrimenti a 0
$protetta = 1;
se hai scelto 1 nella precedente opzione setta qui la password
$passwd = "ciccio";
Filtraggio Tag html, javascript, ecc, che possono essere inseriti
nel testo della news o nel titolo.
Hai le seguenti scelte:
- per consentire l'inserimento senza selezione dei tag setta la variabile $tag = 0.
- per consentire l'inserimento di alcuni tag "innocui" da me selezionati, e cioè: b,i,u,h,small,big,font,p,br,hr setta la variabile $tag = 1.
- per non consentire alcun inserimento di tag setta la variabile $tag = 2.
- per consentire l'inserimento di una lista di tag da te predisposta setta la variabile $tag = 3. In questo caso dovrai inserire i tag autorizzati come di seguito spiegato.
- per fare trasformare tutti i caratteri < e > in < e > setta la variabile $tag = 4.
Il seguente array ti consente di costruire una tua lista di tag
autorizzati ad essere inseriti nel titolo o nel testo delle news.
Devi usare la seguente forma se fai usare il pannello ad altri.
@tags = ('b','font','br','p');
Di seguito puoi fissare la lunghezza massima del titolo e del testo.
fissare delle dimensioni massime è eccellente norma di sicurezza.
Se non intendi fissare delle dimensioni massime setta le due
variabili successive a 0.
$titolo_length = 30; $testo_length = 2000;
SEZIONE PAGINA TITOLI LINKATI
Regoli l'ora in base al fuso orario del server. Se lo stesso è posto in
un luogo che è 6 ore indietro rispetto al paese da cui provengono i
visitatori allora devi scrivere 6, se è posto 6 ore avanti allora devi
scrivere -6.
$fuso = '0';
Indichi il numero massimo di news da visualizzare.
$num_max = '5';
Se $canc_aut 0 non cancella le pagine obsolete
Se 1 cancella la pagina dopo averla archiviata
Se 2 cancella la pagina definitivamente senza archiviarla
$canc_aut = '1';
Se vuoi che compaia una piccola immagine accanto ad un titolo di una news
recente setta $image ad 1, altrimenti a 0.
$image = '1';
Numero di ore durante le quali deve comparire l'immagine che evidenzia una
nuova news se vuoi che compaia, ad esempio, per 2 giorni scrivi 48.
$num_ore = '12';
Setta $data_ins ad 1 se vuoi che a fianco del titolo compaia la data ed
ora di inserimento, altrimenti 0.
$data_ins = '1';
Se hai scelto di inserire la data, e vuoi che il font della stessa sia più
piccolo di quello del titolo setta $small ad 1, se vuoi che abbia la
stessa dimensione setta a 0.
$small = '1';
width dell'immagine che deve comparire accanto alle new recenti
$img_width = '30';
height dell'immagine che deve comparire accanto alle new recenti
$img_height = '18';
Setta in questa variabile il contenuto dell'alt dell'immagine inserita
$img_alt = "Questa notizia è stata inserita da meno di $num_ore ore";
Se vuoi che il titolo venga formattato tramite css setta $css ad 1,
altrimenti 0
$css = '1';
Colore del titolo quando il mouse è lontano
$col_link_off = "blue";
colore del titolo quando il mouse è sopra
$col_link_on = "gold";
SEZIONE SCELTA TEMPLATE
Qui puoi scegliere se usare un template per costruire la pagina della news
oppure usare quella generata dallo script.
Se setti a 0 la pagina verrà generata automaticamente dallo script e di
seguito potrai regolare alcuni parametri di grafica.
Se setti ad 1 userai un template di cui dopo dovrai indicare il path.
$template = 1;
path del file template, da settare solo se hai posto ad 1 la variabile $template
$path_template = "/var/www/html/news_facili/template.tpl";
SEZIONE GRAFICA PAGINA AUTOMATICA
I settaggi che seguono vanno effettuati solo se hai scelto di usare
per le news la pagina generata dallo script.
colore di sfondo della pagina contenente la nuova news.
$bgcolor = '#80ffff';
url dell'immagine di sfondo della pagina contenente la nuova news.
$background = '';
tramite questa variabile puoi adattare la formattazione del testo della news
se la setti ad 1 verranno inseriti i tag <p align="justify"> testo </p>
per ogni paragrafo
se la setti a 2 verranno inseriti i tag <p> testo </p> per ogni paragrafo
se la setti a 0 verra inserito solo il tag <br->alla fine del paragrafo.
$format = '1';
colore del testo della pagina creata dallo script.
$col_text = '#000000';
colore dei link della pagina creata.
$col_link = '#0000ff';
colore dei link visitati della pagina creata.
$col_vlink = '#800080';
colore dei link attivi della pagina creata.
$col_alink = '#ff0000';
ampiezza in % della porzione di testo nella pagina della news.
$tab_width = '90';
size del font del testo, il titolo sarà automaticamente più grande
$size_text = '4';
font da usare nel testo e nel titolo
$face_text = 'comic sans ms';
larghezza della linea sottostante il titolo
$hr_width = '80';
spessore della linea sottostante il titolo
$hr_size = '2';
colore della linea sottostante il titolo
$hr_color = '#800080';
Non rimuovere in nessun caso questo numero posto alla fine di questo file,
a meno che tu non sia un esperto programmatore in perl e quindi non sappia
cosa significa. :)
1;
ISTALLAZIONE
Il file deve essere caricato sul server nella directory cgi-bin (o equivalente) e nella, eventuale, stessa sottodirectory degli altri script. E' sufficiente che il file sia leggibile a tutti, quindi puoi lasciare il "chmod" standard, in genere 644.
news.pl
DESCRIZIONE
Questo è il file perl principale. Svolge 4 funzioni:
- Generazione del pannello di login
- Generazione del pannello di comando
- Scrittura del titolo della news, crezione della pagina relativa
- Cancellazione del titolo e delle pagine
Questo file genera la pagina che contiene il pannello di controllo e si divide in due sezioni:
SEZIONE SCRITTURA
Selezionando la scelta "scrivi" ti appresti ad inserire nel sito una nuova news.
Devi inserire un titolo e del testo. Sono entrambe obbligatori.
Il titolo è particolarmente importante perchè deve descrivere la news e
va a costituire il link per raggiungere la pagina relativa.
Il testo formattato automaticamente costituirà il corpo della pagina della news.
Tieni presente che quando andrai a capo verrà costituito un nuovo paragrafo.
SEZIONE CANCELLAZIONE
Selezionando la scelta "cancella" ti appresti a cancellare una news.
Se hai settato la variabile $canc_aut=0
(non cancellazione delle pagine) tutte le pagine,
sia quelle attive che quelle scadute si trovano nella directory "pages" per cui avrai
l'elenco dei files contenuti solo in quella directory.
gli elenchi sono generati automaticamente dallo script file_news.pl.
Se hai settato la variabile $canc_aut=1
(archiviazione delle pagine) le pagine scadute
si trovano nella directory "old_pages" per cui ti verranno presentati due elenchi.
Se hai settato la variabile $canc_aut=2
(cancellazione delle pagine) le pagine scadute
saranno state cancellate per cui avrai l'elenco solo di quelle attive.
In generale comunque se decidi di cancellare una pagina attiva verrà cancellato
automaticamente anche il titolo link. Puoi usare questa procedura quando ti accorgi
di avere fatto un errore.
Sono disponibili due pulsanti "Prova" che ti consentono di vedere la pagina che ti
appresti a cancellare, prima di effettuare l'operazione che è irreversibile.
CONFIGURAZIONE
Devi solo inserire nella prima riga l'indirizzo dell'interprete di PERL sul tuo server.
In genere è
#!/usr/bin/perl oppure #!/usr/local/bin/perl
ISTALLAZIONE
Il file deve essere caricato sul server nella directory cgi-bin (o equivalente) e nella, eventuale, stessa sottodirectory degli altri script. Il file deve essere eseguito quindi devi settare chmod 755.
vis_news.pl
DESCRIZIONE
Questo file consente la visualizzazione su una tua pagina delle news, in modo dinamico. Inoltre inserisce o meno la piccola immagine accanto alle news particolarmente recenti.
CONFIGURAZIONE
Devi solo inserire nella prima riga l'indirizzo dell'interprete di PERL sul tuo server.
In genere è
#!/usr/bin/perl oppure #!/usr/local/bin/perl
ISTALLAZIONE
Il file deve essere caricato sul server nella directory cgi-bin (o equivalente) e nella, eventuale, stessa sottodirectory degli altri script. Il file deve essere eseguito quindi devi settare chmod 755.
news.shtml
DESCRIZIONE
Questo è un file di prova. Ti consente di verificare il funzionamento degli
script prima
di pubblicare i titoli delle news in una pagina importante del sito, in genere, la
home page, per cui una volta verificato il corretto funzionamento potrai cancellarlo,
dopo avere copiato
nella pagina su cui dovranno essere i titoli il seguente tag:
<!--#exec cgi="/cgi-bin/news_facili/vis_news.pl"-->che dovrà essere settato in modo da puntare al file vis_news.pl
CONFIGURAZIONE
Come già detto devi indicare esattamente il percorso per raggiungere il file
vis_news.pl
nel tag:
<!--#exec cgi="/cgi-bin/news/vis_news.pl"-->
ATTENZIONE!!!
Potrebbe essere necessario rinominare anche la pagina che ospiterà i titoli da
nome.html
a nome.shtml. Anche se si trattasse della index, questo non dovrebbe costituire
un problema.
ISTALLAZIONE
Il file deve essere caricato sul server nella directory principale e non ha bisogno di modifica di chmod.
titoli.txt
DESCRIZIONE
Si tratta del fondamentale file di database, che deve essere trattato con ogni cura.
CONFIGURAZIONE
Non ha bisogno di alcuna configurazione, anzi ti devi accertare che sia rigorosamente vuoto.
ISTALLAZIONE
Il file deve essere caricato sul server nella directory che preferisci e ha bisogno di chmod 666. Se lo inserisci in una directory diversa da quella principale devi settare i chmod della dir a 777.
new.gif
Si tratta di un regalino che faccio agli utilizzatori del mio script. E' la piccola immagine che compare accanto alle news particolarmente recenti. Ovviamente puoi sostituirla con quella che preferisci. Puoi metterla dove vuoi, ricordati però di settare nel file variabili.pl il path esatto nella variabile $img_url.
template.tpl
DESCRIZIONE
Si tratta del file di esempio del template utilizzabile per personalizzare al massimo le pagine delle news. Puoi modificarlo e sostituirlo come vuoi. Basta che rispetti le poche regole descritte sotto.
CONFIGURAZIONE
E' sufficiente che inserisci nei punti che vuoi i seguenti tag "speciali":
<!-- ##titolo## -->tramite questo tag farai comparire il titolo della news dove vuoi, gli potrai dare la formattazione che vuoi. ATTENZIONE !!! l'unica necessità assoluta è che il tag stia su una sua riga esclusiva senza altro testo.
<!-- ##date## -->tramite questo tag farai comparire la data di inserimento dove vuoi.
<!-- ##news_url## -->tramite questo tag puoi creare un link alla pagina che contiene i titoli delle news.
per inserire il testo hai 3 possibilità:
- inserire il marcatore "testo-paragrafo-giustificato" in questo modo:
<!-- ##testo-paragrafo-giustificato## -- >
otterrai che il testo inserito nel form venga diviso, in base agli a capo che hai dato al momento della digitazione, in paragrafi giustificati. Ad esempio <p align="justify"> testo </p>. - inserire il marcatore "testo-paragrafo" in questo modo:
<!-- ##testo-paragrafo## -->
otterrai che il testo venga diviso in paragrafi normali allineati a sinistra. Ad esempio <p> testo </p>. - inserire il marcatore "testo-a-capo" in questo modo:
<!-- ##testo-a-capo## -->
otterrai che il testo vada semplicemente a capo. Ad esempio testo<br>.
ATTENZIONE !!! Ricordarsi comunque di inserire il marcatore "testo" su una sua propria riga senza altri caratteri o elementi.
Directories pages e old_pages
Le ho inserite per evitare che vengano dimenticate. Il loro uso è necessario perchè molti server non consentono agli script di creare pagine nella directory principale, per ragioni di sicurezza. Setta il chmod a 777.
| Indice del sito |
