################################################### # # # HotelDruid non ha ALCUNA GARANZIA; vedere il # # file COPYING per i dettagli. # # # ################################################### HOTELDRUID versione 3.0.5 Programma per la gestione di camere di hotel o di affitti settimanali e giornalieri di appartamenti. http://www.hoteldruid.com SICUREZZA Se hoteldruid viene utilizzato in un ambiente di rete non sicuro e' consigliabile attivare la password dell'utente amministratore ed eventualmente utilizzare connessioni ssl. Non vi dovrebbero essere problemi se piu' computer accedono contemporaneamente al database e gli utenti normali non dovrebbero poter compiere azioni non consentitegli dai privilegi loro assegnatigli. ATTENZIONE E' consigliabile custodire tutti i dati anche in modi piu' sicuri e fare frequenti backup su file del database utilizzando il sistema di backup di hoteldruid. REQUISITI SOFTWARE -apache (>=1.3.26) o altro web server che supporti php -php (>=4.0.4) con estensione per postgresql, mysql o sqlite3 -postgresql (>=7.4.7) o mysql (>=4.1.11) o sqlite (>=3.7.9) -un browser che supporti html 4.01 con encoding utf-8 Le versioni indicate sono quelle che sono state provate, potrebbe funzionare anche su quelle anteriori. Il programma e' stato provato solo su Linux, in teoria dovrebbe funzionare anche su altri sistemi operativi che supportino i programmi precedenti. CONFIGURAZIONE DI APACHE: Apache deve avere il supporto per php ed eseguire con esso le pagine con estensione .php. Cio' normalmente e' gia' predisposto per php4, mentre per php3 si dovrebbe aggiungere la riga: AddType application/x-httpd-php3 .php nei file di configurazione di Apache (httpd.conf o srm.conf). CONFIGURAZIONE DI MYSQL: Per creare un utente in mysql collegarsi al database mysql come root (comando "mysql --user=root mysql") ed eseguire la query: GRANT ALL PRIVILEGES on nomedatabase.* to utente@localhost IDENTIFIED BY 'pass'; sostituendo rispettivamente nomedatabase, utente e pass con i vostri dati. CONFIGURAZIONE DI POSTGRESQL: assicurarsi che il server postgres sia avviato con l'opzione per permettere collegamenti via TCP/IP (in Debian 9 porre "listen_addresses = 'localhost'" in /etc/postgresql/x.x/main/postgresql.conf, in Red Hat 7.2 porre "tcpip_socket = true" in /var/lib/pgsql/data/postgresql.conf). Inoltre devono essere settati i permessi giusti nel file pg_hba.conf (di solito vanno bene quelli di default). Per creare un utente in postgresql utilizzare il comando "createuser -d -P nome_utente" da utente postgres ("su postgres" da root). CONFIGURAZIONE DI SQLITE: il database sqlite in realtà è un file che risiede nella cartella dati, quindi se si utilizza una versione 5.3 o superiore di php non c'è bisogno di nessuna configurazione speciale. Tra i dati per il collegamento al database non c'è bisogno di inserire nome utente, password ed il nome del server. INSTALLAZIONE Copiare la cartella hoteldruid sotto una directory raggiungibile dal web (DocumentRoot nei file di configurazione di apache), e puntare il browser su http://localhost/hoteldruid/inizio.php (o dove avete posizionato la cartella). La directory dati all'interno di hoteldruid deve essere accessibile in scrittura dall'utente con cui gira il server web (utente www-data in Debian), anche dopo l'installazione. Quindi se si usa un servizio di hosting potrebbe essere necessario cambiarli via ftp: per esempio con cuteftp (win) o gftp (linux) connettersi e cliccare col tasto destro sulla cartella dati sul server (colonna di destra), scegliere l'opzione CHMOD e aggiungere i permessi di scrittura (755 o 777). Dopo la schermata iniziale, dove si potra' scegliere la linga italiana, si dovranno inserire i dati per collegarsi al database, alcuni dei quali sono gia' presenti con valori che dovrebbero andar bene nella maggior parte dei casi. La password e' necessaria solo se abilitata nel server postgres o mysql. In Debian con php3 rispondere si alla domanda riguardante l'estensione "pgsql.so". Dopo aver inserito i dati sugli appartamenti (almeno il numero), si dovra' creare l'anno che si intende gestire (si potranno in seguito aggiungere al periodo scelto dei mesi alla fine ma non toglierne). Se esiste l'anno precedente si possono importare eventuali prezzi e prenotazioni riguardanti mesi in comune. Alla fine si arriva alla facciata principale, che penso sia abbastanza intuitiva. Prima di poter inserire delle prenotazioni si dovranno inserire i prezzi dei relativi periodi. Per la disinstallazione cancellare la directory hoteldruid e distruggere il database creato (destroydb nomedatabase o dropdb nomedatabase a seconda della versione per postgresql). AGGIORNAMETO DA VERSIONI PRECEDENTI Prima di aggiornare e' opportuno fare un backup del database con il sistema di backup di hoteldruid e salvare il file hoteld_backup.php, pena la PERDITA DI TUTTI I DATI! Controllare anche che i nuovi requisiti software siano compatibili con quelli attuali. Lasciare nella cartella dove e' installato hoteldruid o php-residence solo la cartella dati (sempre con i permessi di scrittura per il web server), cacellando tutto il resto. Copiarci poi i files della nuova versione (tranne la cartella dati naturalmente) e PER PRIMA COSA accedere al menu' principale (come utente amministratore se il login e' attivato) e premere il tasto "aggiorna" attendendo che si finisca di caricare la pagina. Se si usano moduli o temi aggiuntivi ricordarsi di copiare anche essi con i files della nuova versione. E' possibile passare dall'utilizzo di un database postgresql a uno mysql o viceversa utilizzando il sistema di backup. Se si utilizza sqlite come database, l'aggiornamento ad una nuova versione non è supportato da versioni precedenti alla 2.0. Per le versioni precedenti alla 2.0 si dovrà prima passare ad un database mysql o postgresql con il sistema di backup. Se si utilizza una versione di mysql inferiore alla 4.1 si raccomanda di creare un file di backup prima di aggiornare mysql ad una versione uguale o superiore alla 4.1 e di ripristinare tale file subito dopo. Per chi aggiorna da una versione precedente alla 1.1 i modelli internet eventualmente presenti nelle loro posizioni predefinite saranno rinominati. Ache file con i vecchi nomi che richiamano i contenuti dei file con i nuovi nomi saranno creati , ma si raccomanda di aggiornare i link nel resto del proprio sito per farli puntare ai nuovi nomi. Per chi aggiorna da una versione precedente alla 0.2 le cartelle da lasciare sono datipermanenti e le cartelle degli anni, poi si deve creare la cartella contr e trasferirvi i contratti rinominandoli da contratto1.php a contr01.php, ecc. CONSIGLI -Utilizzare i tasti del browser per tornare indietro dopo la visualizzazione di un documento. -Inserire sempre numeri con al massimo 2 decimali come soldi. Per separare i decimali si puo' utilizzare la virgola o il punto, ma NON separare le migliaia. -Se non si inserisce nessun metodo per l'assegnazione di un appartamento in una prenotazione il programma assegnera' automaticamente l' appartamento tenendo conto del numero di persone e delle priorita' degli appartamenti (piu' bassa e' e prima viene assegnato). -Le prenotazioni gia' iniziate e quelle con orario di entrata registrato vengono considerate fisse. Per spostare quelle gia' iniziate viene offerta una opzione qunado si tenta di muoverle in appartamenti non vuoti. -La regola di assegnazione 1 puo' essere usata per appartamenti riservati ad agenzie che devono essere informate in caso di prenotazione. -Con la regola di assegnazione 2 si puo' per esempio associare una tariffa soprannominata "4 persone" agli appartamenti che possono ospitare 4 persone. -Se non si vuole che il programma assegni automaticamente gli appartamenti basta assegnare sempre a tutte le prenotazioni un appartamento fisso. -Si puo' assegnare un prezzo diverso per ogni periodo anche se nella pagina di inserimento prezzi ve ne sono solo 8 (se ne inseriscono 8 alla volta). -Se si opera tra 2 anni non creare il nuovo anno fino a quando non inizia, ma continuare ad inserire le prenotazioni dell' anno successivo dal menu' dell'anno corrente, eventualmente si possono aggiungere i periodi necessari. Quando poi arriva il nuovo anno crearlo importando le prenotazioni dall'anno precedente (per fare cio' si devono utilizzare gli stessi tipi di periodi dell'anno precedente e se i periodi sono settimanali anche lo stesso giorno di inizio/fine settimana). Si consiglia di lasciare attivata l'opzione in "configura e personalizza" per creare il nuovo anno in automatico il 10 Gennaio. -Per il nome degli appartamenti usare per esempio 07 o 007 invece di 7 per avere delle tabelle dei mesi ordinate. -Il browser raccomandato per il back-office è mozilla firefox o qualsiasi altro browser basato su mozilla (www.mozilla.org). -Si possono aggiungere nuovi utenti disattivati e cambiare le loro colonne selezionate nella pagina delle personalizzazioni per avere profili diversi nella tabella con tutte le prenotazioni. -Se le stanze di solito vengono pulite il giorno prima dell'arrivo dei clienti nella pagina della personalizzazioni si puo' cambiare il momento in cui le prenotazioni vengono considerate cominciate in modo che non vengano piu' spostate. -Se si usa hoteldruid via internet, si puo' installarne una copia anche sul computer di casa e subordinarla (da configura --> interconnessioni) alla installazione su internet nel caso in cui la connessione sia temporaneamente non disponibile. INSERIMENTO DEI DOCUMENTI Da "configura e personalizza", cliccando sul loro numero, si possono editare i testi dei documenti da stampare, salvare o inviare come email. I testi vanno inseriti in formato HTML, RTF, o in testo semplice per spedire email. Dopo l'installazione di hoteldruid saranno presenti alcuni esempi di documenti già utilizzabili. Per inserire facilmente un documento RTF scrivete prima il testo con il vostro programma preferito (per esempio Word o OpenOffice), salvate il file in formato RTF e riapritelo con un editor di testi, copiate poi tutto il testo ed incollatelo nel documento. Nei documenti si possono utilizzare delle variabili predefinite che se vuote verranno sostituite da spazi da riempire. Le parti di documento all'interno dei tag [r][/r] verranno ripetute per ogni prenotazione (se i tag non sono presenti tutto il documento verrà ripetuto). All'interno di queste parti si possono inserire delle liste con i tag [r2][/r2] (per ospiti) o [r3][/r3] (per costi aggiuntivi). Per esempio per la lista con i dati degli ospiti le variabili finiscono tutte col suffisso "_ospite". Alcune variabili disponibili che si possono inserire sono (la lista completa è nella pagina di modifica dei documenti): Dati del cliente: [cognome] cognome [nome] nome [data_nascita] data di nascita [il] 'il' (maschile) o 'la' (femminile) [Il] 'Il' (maschile) o 'La' (femminile) [al] 'al' (maschile) o 'alla' (femminile) [e] 'e' (maschile) o 'a' (femminile) [o] 'o' (maschile) o 'a' (femminile) [Mr] '' (maschile) o 's' (femminile) [nazione] nazione di provenienza [citta] citta' di residenza [via] via [via2] come $via ma inserisce la parola via davanti agli spazi se non e' definita [numcivico] numero civico [cap] codice di avviamento postale [telefono] numero di telefono [telefono2] secondo telefono [telefono3] terzo telefono [fax] numero di fax Dati della prenotazione: [num_persone] numero di persone [n_letti_agg] letti aggiuntivi dei costi [num_persone_tot] numero di persone + letti aggiuntivi [costo_tot] prezzo totale [caparra] caparra [resto_caparra] prezzo totale - caparra [data_inizio] data di arrivo [data_fine] data di partenza [nome_tariffa] nome della tariffa [costo_tariffa] prezzo senza costi aggiuntivi e sconto [sconto] sconto [commento] commento [unita_occupata] numero della camera o appartamento [unita_assegnabili] lista delle camere o appartamenti assegnabili, separati da virgole [pagato] quanto e' stato pagato finora [nome_costo_agg] nome del costo aggiuntivo, definito solo all'interno delle ripetizioni dei costi [valore_costo_agg] valore del costo aggiuntivo, definito all'interno delle ripetizioni dei costi [moltiplica_max_costo_agg] massimo numero per cui viene moltiplicato un costo, definito solo all'interno delle ripetizioni dei costi. Se anche in ripetizione di un array dei giorni, rappresenta il valore per cui il costo è moltiplicato in quel giorno [valore_giornaliero_max_costo_agg] massimo valore giornaliero (non moltiplicato) di un costo, definito solo all'interno delle ripetizioni dei costi. Se anche in ripetizione di un array dei giorni, rappresenta il valore del costo in quel giorno (già moltiplicato) [tutti_i_costi_agg] lista con tutti i costi aggiuntivi con i rispettivi valori [nome_costo_agg_sel] nome del costo aggiuntivo selezionato prima di vedere il documento [valore_costo_agg_sel] valore del costo aggiuntivo selezionato prima di vedere il documento [oggi] data odierna [costo_tot_p], come i precedenti senza _p finale ma [caparra_p],[pagato_p], formattati con punti e virgole per [resto_caparra_p], decimali e migliaia [costo_tariffa_p], [sconto_p], [tutti_i_costi_agg_p], [valore_costo_agg_sel_p] [errore_ripetizione] quando non nulla la prenotazione corrente non viene aggiunta al documento [email_gia_inviata] 1 se una email con stesso oggetto è già stata inviata al cliente, 0 altrimenti [messaggio_di_errore] quando non nulla il suo contenuto viene mostrato al posto del documento Inoltre si possono creare delle variabili personalizzate del tipo [var] o anche array del tipo [var1(var2)]. Per assegnare ad un array un valore fisso all'interno del documento si può usare la notazione [var1('valore')]. PAGINE PER IL SITO WEB E' possibile creare delle pagine da inserire in un sito internet, per esempio per permettere ai visitatori di controllare la disponibilita' ed eventualmente richiedere di prenotare via email. Si accede alla creazione delle pagine da "Configura e personalizza". I files possono essere creati direttamente nella loro posizione finale impostando la directory dove vengono creati in "configura e personalizza". In questo modo la pagine verranno automaticamente aggiornate quando si crea un nuovo anno o quando si aggiorna il database. Se si sposta la pagina su un altro sito web (sempre con supporto per php), questa dovrà potere accedere comunque al database con i dati forniti al momento della sua creazione. Si puo' inserire l'html all'inizio e alla fine del file, potendo cosi' per esempio racchiudere la form di disponibilita' in una tabella o all'interno della struttura di una pagina del proprio sito. Ricreando il file si possono modificare tutte le opzioni e le frasi della form inserite in precedenza. Le pagine per il sito web possono essere visualizzate in modalità frame aggiungedo ?framed=1 alla loro URL, in questo modo verrà mostrata una versione semplificata della pagina personalizzabile con un file css esterno. Questa modalità può essere utilizzata per esempio per avviare le richieste di disponibilità in un riquadro (iframe) all'interno di altre pagine del sito. Se si aggiunge anche &blank=1 alla URL la form si aprirà in una nuova finestra. GESTIONE UTENTI Si puo' accede alla gestione degli utenti dalla pagina "Configura e personalizza". Nuovi utenti possono essere utilizzati per dare accesso diretto ad agenzie da parte del proprietario, o da una agenzia per dare la possibilita ai proprietari di controllare la disponibilita e bloccare periodi. Si possono limitare gli appartamenti che un utente puo' utilizzare in due modi: o facendo in modo che possa inserire prenotazioni solo nei periodi selezionati della regola di assegnazione 1, oppure facendo in modo che possa utilizzare solo tariffe abbinate a determinati appartamenti tramite la regola di assegnazione 2 e che non possa ne' inserire ne' modificare l'assegnazione degli appartamenti. Se viene dimenticata la password dell'utente amministratore si puo' cancellare il file abilita_login all'interno della directory dati, in questo modo verra' disabilitato il login iniziale e chiunque potra' accedere con i privilegi dell'utente amministratore. RINGRAZIAMENTI Grazie a Stan Khodjaev di icojam.com per aver rilasciato i set di icone "Marmalade", "Blue Bits" e "Blueberry" nel dominio pubblico. LICENZA D'USO Vedere il file COPYING. AUTORE Marco M. F. De Santis Email: marco@digitaldruid.net |