Skip to topic | Skip to bottom
Home
Search:

Local
Local.ImcCalabriaDocumentazioneTecnicar1.3 - 19 Sep 2008 - 14:47 - PsyloCibetopic end
You are here: Local > ImcCalabria > ImcCalabria > ImcCalabriaTech > ImcCalabriaDocumentazioneTecnica

Start of topic | Skip to actions

ImcCalabriaDocumentazioneTecnica

Indy Calabria - Tech Info

Questa pagina raccoglie alcuni appunti tecnici riguardanti l'installazione di Oscailt con lo scopo di:
  1. ricordarmi quali passi ho fatto esattamente, dato che dovrò ripetere la procedura sul server definitivo;
  2. fare in modo che chiunque, purché dotato di sufficienti conoscenze tecniche, possa saper mettere le mani sul software in caso di necessità.

Cos'è Oscailt

Oscailt (pronuncia approssimativa: askilt) è un software sviluppato per le esigenze di Indymedia Ireland.

E' programmato in PHP e si appoggia a un database MySQL. Ulteriori informazioni sull'apposita pagina su SourceForge.net.

Log dell'installazione di prova di Oscailt sul sito di prova

Requisiti

  • Oscailt funziona con Apache, PHP e MySQL
  • E' necessario assicurarsi che:
    • Sia attivo mod_rewrite
    • Apache sia configurato per eseguire le direttive nel file .htaccess e in particolare quelle riguardanti mod_rewrite

Download e set-up iniziale

  • Scaricato il software da questa pagina su SourceForge.net
  • Scompattato l'archivio .zip e caricato sul server tutto l'albero di files nella directory html
  • A questo punto NON ho installato direttamente il software come prevederebbe la procedura standard, ma ho seguito le istruzioni per la localizzazione che hanno scritto gli amici toscani a questa pagina

Localizzazione

  • Mail di riferimento
  • Una normale installazione prevederebbe di caricare i file sullo spazio web, configurare i parametri del database (in config/dbconfig.php) e fare partire lo script install.php che si trova nella web root.
  • PRIMA di far partire lo script install.php è necessario installare i files della localizzazione in lingua italiana fatta parzialmente dai techies di Indymedia Toscana. Maggiori informazioni qui. Seguire tutte le istruzioni riportate a questa pagina fino alla sezione "Dopo", esclusa.
  • Ho scaricato questo archivio .zip e me lo sono scompattato in locale. Contiene la traduzione di Oscailt, amministrazione esclusa. Contiene un file (italiano_toscana.xml) e una directory, che vanno caricati via FTP in /xmldata/imports.
  • Ho editato a dovere il file config/dbconfig.php e l'ho caricato in FTP.
  • Ho settato i permessi:
   chmod 0777 attachments
   chmod 0777 cache
   chmod 0777 logs
   chmod 0777 xmldata/templates
   chmod 0777 xmldata/exports
  • Ho fatto partire lo script install.php
  • Durante l'installazione ho importato la traduzione in italiano che avevo precedentemente caricato.
  • Alla fine dell'installazione, per ovvi motivi di sicurezza:
    • ho cancellato il file install.php.
    • ho immediatamente cambiato le mie credenziali di accesso.
  • in amministrazione, ho modificato la configurazione generale del sito, e in particolare:
    • URL corretto del sito
    • ho disattivato temporaneamente qualsiasi roba riguardante il caching, per lavorare più velocemente
    • modificato il formato standard della data da %A %B %d, %Y %H:%M a %A %d %B %Y %H:%M
    • cambiata la timezone

Patches e correzioni varie

  • Il file .htaccess sembra dover essere modificato per funzionare correttamente. Su suggerimento di case ho aggiunto questa linea subito dopo la direttiva RewriteEngine on (comunque, sembra che altre direttive di mod_rewrite possano essere necessarie in base alla configurazione del web server definitivo):
   RewriteBase /
  • Ho inserito delle linee all'inizio di admin.php per forzare il login in https in amministrazione:
   if(!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] != "on") {
           ob_start();
           ?>
           <html>
                   <body>
                           <p>Questa connessione non &egrave; sicura.</p>
                           <p>Dovresti collegarti all'interfaccia di amministrazione usando il protocollo <strong>https<strong>.</p>
                           <p>Il server dovrebbe starti redirezionando automaticamente su un canale sicuro. Se questo non dovesse avvenire entro qualche secondo, <a href="https://indycalabria.indivia.net/admin.php">fai click qui</a>.</p>
                   </body>
           </html>
           <?
           header("Location: https://" . $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"]);
           exit();
   }
  • Ho modificato l'immagine dell'intestazione del sito, personalizzandola per IndyCalabria. Il file in questione è graphics/banner.gif.
  • Scaricati questi due file: uno e due. Si chiamano editoroptions.xml e universal_config_options.xml e contengono una parziale traduzione dell'interfaccia di amministrazione. Vanno messi in xmldata/, sovrascrivendo i files esistenti.
  • Sostituito il file objects/indyruntime/publishdisplay.inc= con quello fornito qui da chekov.
  • Sostituito il file objects/storyquery.sql= con quello disponibile nel CVS.
  • Sostituito il file objects/indyruntime/feedexportdisplay.inc con quello disponibile nel CVS.
  • Nel file objects/indyruntime/articledisplay.inc, vicino alla linea 320, ho aggiunto alla fine della funzione writeStoryFooter una chiamata a $this->writeDisplayFooter();; questo risolve un problema con il footer degli articoli.
  • Per non visualizzare il box in basso a destra per scegliere la lingua dell'articolo, dentro il file config/systemconfig.php mettere $oscailt_basic_config['show_page_translations_box'] = false;

Personalizzazione grafica

  • Il foglio di stile è attachments/sites/default/style.css. Viene creato a run-time, quindi bisogna scaricarlo, modificarlo e poi ricaricarlo.

Altri lavori di traduzione

  • Ho tradotto manualmente nei punti opportuni i file objects/calendar.inc e objects/indyruntime/eventdisplay.inc.

Post nascosti

  • Di default oscailt non permette di visualizzare i post nascosti. Per sistemare questo problema, ho seguito le istruzioni indicate nel workaround di Indy Toscana a questa pagina.

Anti spam per modulo contatti

  • Ho implementato un semplice antispam javascript "trasparente" per l'utente. Vantaggi: nessun noioso captcha. Svantaggi: impossibile inviare informazioni attraverso il modulo contatti se il browser non ha javascript abilitato.
  • Premetto che non sono sicuro di ricordare esattamente tutto quello che ho fatto, quindi in questa spiegazione potrebbe mancare qualcosa, però riassumendo:
  • il file da modificare è objects/indyruntime/contactdisplay.inc
  • nella funzione processRequest() sostituire questa linea:
$success = $this->sendContactMessage($_REQUEST['name'],$_REQUEST['email'],$subject,$_REQUEST['message']);
con queste linee:
if(isset($_REQUEST['antispam']) && $_REQUEST['antispam'] == "jf7bd8'") {
    $success = $this->sendContactMessage($_REQUEST['name'],$_REQUEST['email'],$subject,$_REQUEST['message']);
} else {
    $success = false;
}
  • nella funzione writeContactForm() modificare in questo modo l'apertura del tag
    :
 <form action="<?=$OSCAILT_SCRIPT?>" method="post" onSubmit="this.antispam.value = 'jf7' + 'bd8' + '\''; return true;">
  • inserire poi dentro il form un campo nascosto (hidden) con questo codice:
<input type="hidden" name="antispam" value="" id="antispam">
  • Infine ho modificato il messaggio di errore che appare nel caso in cui l'invio del messaggio fallisca, per avvisare l'utente che se Javascript non è attivo sul suo browser, il modulo di contatto non funziona.

Argomenti e regioni ordinabili a piacere

Oscailt non da la possibilità di scegliere un ordine per le regioni e per gli argomenti e questo può creare confusione nell'utente al momento della pubblicazione. Per implementare un ordinamento, ho fatto in questo modo:
  • Da phpmyadmin ho creato un campo cardinality alla fine della tabelle regions e topics di tipo SMALLINT. Ho valorizzato questi campi con dei numeri, in modo da riflettere l'ordine desiderato.
  • Ho creato un indice di tipo UNIQUE per ognuno dei due campi, in modo che nessun record possa avere lo stesso valore per il campo cardinality.
  • In objects/topic.inc, nella classe TopicList, metodo load() ho aggiunto ORDER BY cardinality alla fine della query che si trova all'inizio della funzione.
  • In objects/region.inc, nella classe RegionList, metodo load() ho aggiunto ORDER BY cardinality alla fine della query che si trova all'inizio della funzione.

to top

You are here: Local > ImcCalabria > ImcCalabria > ImcCalabriaTech > ImcCalabriaDocumentazioneTecnica

to top

Copyright © 1999-2008 by the contributing authors.
All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding this tool? Send feedback (in English, Francais, Deutsch or Dutch).