User Tools

Site Tools


doc:appunti:linux:lezioni:pmapper

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
doc:appunti:linux:lezioni:pmapper [2010/05/04 12:02] niccolodoc:appunti:linux:lezioni:pmapper [2010/12/20 08:19] – [Impostazioni extra per Apache] niccolo
Line 97: Line 97:
 === Disabilitare i cookie di sessione === === Disabilitare i cookie di sessione ===
  
-In generale **la sessione p.mapper viene salvata tramite un cookie** associato all'indirizzo IP del server. Se lo stesso server ospita diverse installazioni p.mapper può essere un problema, conviene disabilitare l'uso dei cookie di sessione.+In generale **la sessione p.mapper viene salvata tramite un cookie** associato all'indirizzo IP del server. Se lo stesso server ospita diverse installazioni p.mapper può essere un problema, perché istanze diverse di p.mapper useranno le stesse impostazioni sui layer attivi, zoom sulla mappa, ecc.
  
-Aggiungere alla configurazione di Apache (**''/etc/apache2/sites-availabe/default''** in Debian) le seguenti righe:+In tal caso conviene disabilitare l'uso dei cookie di sessione aggiungendo alla configurazione di Apache (**''/etc/apache2/sites-availabe/default''** in Debian) le seguenti righe:
  
 <file> <file>
 <Directory "/var/www/pmapper/"> <Directory "/var/www/pmapper/">
     php_flag session.use_cookies off     php_flag session.use_cookies off
 +    php_flag session.use_only_cookies off
 </Directory> </Directory>
 </file> </file>
Line 109: Line 110:
 Verificare con ''phpinfo()'' eseguito nella directory di p.mapper che **session.use_cookies** sia **Off**. Verificare con ''phpinfo()'' eseguito nella directory di p.mapper che **session.use_cookies** sia **Off**.
  
-In queste condizioni la sessione viene mantenuta grazie ad una variabile passata via POST ed è differente per ogni finestra aperta su un applicativo p.mapper. Questo vuol dire che chiudendo la finestra del browser senza chiudere il browser stessola sessione viene annullata e si perdono tutte le impostazioni (stato dei layer, zoom, ecc.).+In queste condizioni la sessione viene mantenuta grazie ad una variabile passata via POST ed è differente per ogni finestra aperta su un applicativo p.mapper. Questo vuol dire che chiudendo la finestra del browser (senza chiudere il browser stessola sessione viene annullata e si perdono tutte le impostazioni (stato dei layer, zoom, ecc.).
  
 Questa impostazione a livello dell'intero server web potrebbe **creare dei problemi** con altri applicativi PHP, ad esempio con Dokuwiki non funziona più correttamente l'autenticazione degli utenti. Questa impostazione a livello dell'intero server web potrebbe **creare dei problemi** con altri applicativi PHP, ad esempio con Dokuwiki non funziona più correttamente l'autenticazione degli utenti.
  
 +=== PHP error_reporting ===
 +
 +Con alcune versioni di PHP (es. 5.3.3) potrebbero essere generati dei warning che - se inclusi nell'output - possono corrompere le pagine web oppure il risultato di alcune chiamate AJAX (ad esempio il risultato di una query).
 +
 +Per evitare il problema conviene sopprimere i messaggi ''DEPRECATED'' e ''NOTICE'', mettendo in ''/etc/php5/apache2/php.ini'':
 +
 +<file>
 +error_reporting = E_ALL & ~E_DEPRECATED & ~E_NOTICE
 +</file>
 +
 +Ancora più drastico è sopprimere la stampa degli errori:
 +
 +<file>
 +display_errors = Off
 +</file>
 ==== Note su config_default.xml ==== ==== Note su config_default.xml ====
  
Line 282: Line 298:
  
 Per le geometrie **non puntuali** si può impostare nello stesso file di configurazione il parametro **shapeQueryBuffer**: se è maggiore di zero indica la frazione della bounding box da utilizzare come buffer. Ad esempio con un valore di 0.50 si ottiene un buffer attorno alla geometria di circa la metà delle dimensioni della bounding box stessa. Per le geometrie **non puntuali** si può impostare nello stesso file di configurazione il parametro **shapeQueryBuffer**: se è maggiore di zero indica la frazione della bounding box da utilizzare come buffer. Ad esempio con un valore di 0.50 si ottiene un buffer attorno alla geometria di circa la metà delle dimensioni della bounding box stessa.
 +
 +Lo **shapeQueryBuffer** non ha effetto sullo zoom effettuato con lo strumento //Cerca per...//, cioè con i criteri di ricerca definiti tramite **''<searchitem>''** in ''config_default.xml''.
  
 ==== Rotellina del mouse ==== ==== Rotellina del mouse ====
Line 353: Line 371:
 $_SESSION['pmHeading'  = "Rigacci.Org - <i>Webmapping</i>"; $_SESSION['pmHeading'  = "Rigacci.Org - <i>Webmapping</i>";
 </code> </code>
 +
 +In **''config/default/js_config.php''** si può scegliere il tema per la **toolbar** (vedere varie immagini contenute nelle directory **''images/buttons/''**):
 +
 +<code javascript>
 +PM.buttonsDefault = {
 +    toolbarid:'toolBar',
 +    options: {orientation:'v',
 +              css:{height:'440px'},
 +              theme:'theme2',
 +              imagetype:'gif'
 +             },
 +</code>
 +
 +===== Personalizzazione =====
 +
 +In generale le personalizzazioni vanno nella directory **''config/common/''**, i file **%%*.js%%** e **%%*.css%%** in questa directory vengono automaticamente inclusi dal principale **''map_default.phtml''**. Se le personalizzazioni non riguardano l'intero applicativo p.mapper, ma solo una determinata configurazione, i file vanno salvati in **''config/<config_name>/''**.
 +
 +==== PHP ====
 +
 +  * **''config/common/custom.php''**
 +  * **''%%incphp/<filename>.php%%''**
 +
 +Per definire nuove funzioni PHP da utilizzare nell'interfaccia web, la via più semplice è creare un file in **''config/common/custom.php''**. Questo file viene automaticamente incluso da ''map_default.phtml'' via ''incphp/init/init.php'', dopo l'inclusione di ''incphp/globals.php''.
 +
 +Attenzione: questo file non viene eseguito in occasione delle chiamate AJAX, quindi - ad esempio - non è il posto adatto per modificare l'oggetto **''$map''**.
 +
 +Se si ha bisogno di definire funzioni che verranno usate anche in altre circostanze (ad esempio da blocchi di codice eseguiti da chiamate AJAX) è più adeguato creare un file apposito in **''incphp/''**. Sarà necessario includere esplicitamente tale file in tutti i sorgenti che ne fanno uso.
 +
 +==== JavaScript ====
 +
 +  * **''config/common/custom.js''**
 +
 +==== CSS ====
 +
 + * **''config/common/custom.css''**
 +
 +In generale vengono inclusi tutti i file *.css che si trovano nella directory. L'inclusione avviene in ''map_default.phtml'', dopo tutti gli altri fogli di stile.
 +
 +==== AJAX ====
  
 ===== Dubbi da risolvere ===== ===== Dubbi da risolvere =====
Line 361: Line 418:
  
 ==== p.mapper ==== ==== p.mapper ====
-  * Come usare **PHPSESSID** differenti per **p.mapper diversi installati sullo stesso host**. Con l'installazione predefinita è necessario eliminare il cookie per passare da un p.mapper ad un altro. 
-  * Pannello layer/legenda con tab: come si fa? 
-  * Come modificare addPOI in modo che salvi sul server (PostgGIS?). 
  
 +  * Pannello layer/legenda con tab: come si fa?
doc/appunti/linux/lezioni/pmapper.txt · Last modified: 2011/05/31 16:08 by niccolo