Banner Shishii
Pagina aggiornata il:  13/01/2005 07:12

Pagina Stampabile     Pagina Stampabile

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:

  1. variabili.pl
  2. news.pl
  3. vis_news.pl
  4. titoli.txt
  5. new.gif
  6. news.shtml
  7. template.tpl
  8. pages Directory
  9. old_pages Directory
  10. readme.html

Requisiti Necessari.

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:

Le opzioni possibili:

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 pl

Tutti 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 shtml

Si 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 txt

Si 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 tpl

Si 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.

DIRECTORY

Si 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:

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:

  1. Generazione del pannello di login
  2. Generazione del pannello di comando
  3. Scrittura del titolo della news, crezione della pagina relativa
  4. 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à:

  1. 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>.
  2. 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>.
  3. 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