Sei in Home page » Prodotti » Commerciali » E-Commerce Plus » History delle versioni

Soluzione integrata di telefonia su internet a banda larga.
Cerca su questo sito:  

Vuoi essere aggiornato in tempo reale su tutto quello che mi succede giorno per giorno?
Visita il mio nuovo blog

Offerta Commerciale - Help on Line - Snapshot

Ver. 1.48 (16/07/2003)
======================
- Creato il modulo ECP::Log
- Aggiunto proprieta' logger su ECP::Import::Table a cui bisogna passare un
  riferimento a ECP::Log. Vanno passati il nome del modulo che genera il debug,
  il testo del debug ed eventualmente fino a due riferimenti ad oggetti
- [JUNGLE] Sebbene remmato, e' stato aggiunto il codice per attivare il debug
  sull'esecuzione delle query di inserimento prodotti su 
  comp/admin/extras/jungle/importArticoliExec.mplcom

Ver. 1.47 (22/02/2003)
======================
- Per cercare di risolvere i problemi di interferenze di cache tra oggetti
  relativi a virtual host differenti, rimosse tutte le sezioni <%once> e
  inglobato il codice in esso contenuto nelle sezioni <%init>

Ver. 1.46 (11/12/2002)
======================
- Rimosso un bug da applyPatch.pl
- Rimosso un bug dalla patch 1.38
- Rimosso un bug dalla patch 1.45
- La libreria ECP::SQL::WhereBuilder supporta ora la gestione delle parentesi.
- Creato il componente comp/html/listaParentesi.mplcom per generale la lista
  delle parentesi aperte e/o chiuse da utilizzare nelle selezioni
- Modificato admin/tabelle/tipoCostiSpe.mpl e 
  tmpl/it/admin/tabelle/tipoCostiSpe.mpl per gestire le parentesi nei criteri
  di validita' degli elementi.
- Modificate in SQL.pm le query che ritornano le liste dei codici delle gestioni 
  dei tipipagamento, tipi spedizione e costi per ritornarle ordinate in base 
  al codice.

Ver. 1.45 (10/12/2002)
======================
- (LIBMIL) Modificato il file importArticoliExec.mplcom per impostare il
  carattere di fine riga a "\n"
- Creata la tabella tipoCostiSpe per la gestione dei costi di spedizione 
  avanzati.
- Aggiunto un parametro a sysConfig per definire se il sito gestisce le vecchie
  spese di spedizione (back-compatibility) o le nuove. Non verra' fatto 
  gestire dal cliente ma direttamente dal DB. Nel momento in cui il cliente
  vuole passare alle nuove spese di spedizione il passaggio verrà impostato
  direttamente dal DB.
- Create le pagine tipoCostiSpe.htm, tipoCostiSpe.mpl per la gestione dei nuovi 
  costi di spedizione e aggiunto il link ad admin/index.htm
- Aggiunte in DBEngine.pm e SQL.pm le funzioni per la gestione di tipoCostiSpe.
- Creato il componente ECP::SpedizioneNew per il calcolo delle spese di
  spedizione
- Per gestire le nuove spese di spedizione modificata la pagina buy.mpl
- La libreria Filter.pm conteneva un piccolo bug nella generazione della query
  SQL generata dal filtro. Corretto.
- Modificato il generatore della lista dei campi di selezione parametri tabella
  comp/html/listaFields.mplcom per filtrare su ulteriori parametri.
- Generata la tabella sysNazioni con l'elenco delle nazioni e dei continenti
- Aggiunte a DBEngine.pm e SQL.pm le query nazione e listaNazioni sulla tabella
  sysNazioni.
- Ora la lista html di generazione degli stati nella registrazione degli utenti
  prende i dati direttamente da sysNazioni.
- Modificata userAnagr.pm per ritornare il continente di provenienza 
  dell'utente.
- Modificata setOrdine.mpl per impostare correttamente le spese di spedizione
  dell'ordine.
- Modificata Ordine.pm per eseguire l'update delle spese di spedizione in 
  automatico selezionando la modalita' configurata (vecchia o nuova).
- Modificato comp/html/ordineMod.mplcom per gestire le nuove spese di spedizione
   
Ver. 1.44 (30/10/2002)
======================
- (LIBMIL) Ancora sull'importazione...siamo ritornati al file ascii delimitato.
- (LIBMIL) Il modulo di importazione si aspetta il file import.txt nella cartella 
  upload presente nella root del sito mentre si e' poi deciso che questa
  cartella debba essere presente nella cartella di ECP 
  ($m->interp->comp_root . cfg('base_path')). Apportata tale modifica a 
  importArticoliExec.mpl di LIBMIL.
- In fase di importazione con cancellazione il modulo productsDel.mplcom 
  delegato a recuperare gli id degli elementi da cancellare dava errore se 
  tutti gli elementi erano da eliminare.
- Error.mpl non funziona bene nei siti senza frame a causa dell'istruzione
  abort. Modificato per funzionare anche nei siti senza frame.
- Lievi modifiche a applyPatch.pl che ora va lanciato come applyPatch.pl xx.xx
  ove xx.xx e' la versione a cui si vuole portare ECP

Ver. 1.43 (28/10/2002)
======================
- (LIBMIL) Modificato comp/admin/extras/libmil/importArticoliExec.mplcom in
  quanto loro non hanno iva.
- Nel modulo di registrazione nuovo utente sono state aggiunte due pagine per
  il consenso al trattamento dei dati e per le condizioni di vendita.
- Il modulo di invio mail comp/mail/userAdd.mplcom usa ancora l'obsoleto modulo
  HTML::TemplateEx. Convertito per usare ECP::Template
- Aggiunta alla libreria ECP::Utils una funzione per il recupero di pagine 
  remote.

Ver. 1.42 (23/10/2002)
======================
- Ora i valori passati a ECP::SQL::WhereBuilder possono contenere anche gli
  apici. Internamente, all'atto della costruzione della stringa SQL la classe
  apporta le opportune modifiche per eseguire una query SQL corretta.
- Aggiunto un motore di ricerca avanzato a campi incrociati.

Ver. 1.41 (21/10/2002)
======================
- Modificata la patch 1.40 che aveva alcuni errori sintattici. Quandomai!!!
- Nella pagina comp/html/login.mpl rimosso l'exit nella sezione cleanup che,
  nel caso di sito senza frame, produceva una pagina bianca nella chiamata alla
  pagina di login. Questo solo nei siti reali. Nell'ambiente di sviluppo questo
  comportamento non avveniva. Forse dovuto al fatto che nell'ambiente di 
  sviluppo c'e' il perl 5.6.1 mentre in quello reale c'e' la 5.6.0.
- (LIBMIL) Ora il modulo di importazione importa anche l'argomento del libro nel
  des_campo_libero5 del prodottoDescr.
- (LIBMIL) Ora la pagina html dei prodotti (products.htm) contiene anche
  l'argomento (des_campo_libero5).

Ver. 1.40 (14/10/2002)
======================
- Modificata la patch 1.39 che aveva alcuni errori sintattici.
- (LIBMIL) Ora il modulo di importazione riporta le eventuali righe non 
  importate a causa della differente lunghezza assieme al numero di riga e alla
  lunghezza errata.
- (LIBMIL) Modulo di importazione modificato ulteriormente.
- Installata la versione 00.15 della libreria HTML::Template che risolve un
  buco che causava la visualizzazione di pagine errate. Infatti alcune variabili 
  passate ai template rimanevano valorizzate se non esplicitamente
  reimpostate. Questo accadeva se esse venivano impostate solo in determinate
  circostanza. Per esempio su left.mpl e top.mpl al logout mostravano ancora lo 
  username e l'albero di quando si era loggati.

Ver. 1.39 (09/10/2002)
======================
- Nella pagine products.mpl il link che deve mostrare l'immagine piccola e'
  errato in quanto va aggiunto nella query_string anche la lingua dell'immagine
  da mostrare.
- Modificata imageGet.mpl per ritornare l'immagine "NoImage" anche nel caso
  in cui si imposti nel db un percorso a file locale e il file non esiste.
- (LIBMIL) Modificato di nuovo lo script di importazione perche' hanno cambiato
  il file di esportazione e aggiunto l'importazione del file dell'immagine del
  libro su filesystem locale che si chiama come il codice del prodotto piu' 
  l'estensione jpg.
- (LIBMIL) Rimossa dall'importazione il secondo livello di indentazione 
  dell'albero dei prodotti altrimenti l'Internet Explorer dava un warning 
  dicendo che lo script JAvascript che mostra l'albero era troppo lento anche se
  poi, se si cliccava "OK" tutto andava bene.
- Il metodo ECP::Template::html passava al padre (HTML::Template::Extension) un
  riferimento ad un file anche se in realta il metodo era stato chiamato senza
  tale parametro ma definendo il file tramite il relativo metodo.

Ver. 1.38 (30/09/2002)
======================
- Nella patch 1.37 c'era un riferimento sbagliato al file 
  admin/sconti/sconti_articoli.mpl e tmpl/it/admin/sconti/sconti_articoli.htm.
- Aggiunto in sconti_articoli.htm e in sconti_utenti.htm il javascript
  per selezionare o deselezionare automaticamente tutti i checkbox a video.
- In ECP::DBEngine il metodo prodottoCommTable_set era ora scritto come
  ProdottocommTable_set. Sconosciuto il motivo del cambio. Questo produceva
  un errore di metodo non trovato in tutte le chiamate soprattutto delle pagine
  di aggiunta e modifica prodotti. Il metodo e' stato riscritto correttamente
  come prodottoCommTable_set
- Nell'albero delle directory di ecp mancava la directory upload che viene usata
  da alcune personalizzazioni quali quelle di jungle e libmil.
- Personalizzazione per il sito libmil di importazione articoli da file ASCII
- La libreria ECP::Import::Table ora verifica che il record sia stato salvato
  correttamente e correttamente sia stato recuperato l'eventuale primary-key.
- Aggiunti tutta una serie di campi liberi alle tabelle descrittive dei 
  prodotti.
- L'albero delle categorie dava errore se nel nome della categoria erano 
  presenti i doppi apici. Risolto sostituendo a questi la loro codifica "&quot;"
- Ora la libreria ECP::Product ritorna a richiesta (enable_opt_fields) i campi
  opzionali delle descrizioni prodotti.
- Rimossi alcuni problemi estetici sulle righe ordini e acquisto.
- Nelle righe del carrellod della spesa l'iva non veniva mostrata senza decimali
  nonostante fosse gestito.

Ver. 1.37 (28/07/2002)
======================
- Nella patch della versione 1.25 c'era un riferimento sbagliato al file
  tmpl/it/buy.htm
- Nella patch della versione 1.36 c'era un riferimento ad un file 
  tmpl/it/ordineNota.html errato. Il valore corretto e' tmpl/it/noteRiga.htm
- Su DBEngine modificate le query SQL delle procedure updateFieldBy3Param e
  updateFieldBy2Param che ora usano la funzione DBI 'quote' per quotare 
  i parametri passati ed evitare cosi' problemi con campi contenenti apici.
- La procedura admin/productMod.mpl utilizzava ancora la vecchia interfaccia di
  ECP::SQL::WhereBuilder e produceva quindi un errore quando si cercava di 
  caricare gli articoli. Aggiornata l'utilizzo dell'interfaccia.
- Autohandler ora usa ECP::Template
- Rimosso l'utilizzo del modulo non standard HTML::TemplateEx. Ora ECP::Template
  estende HTML::Template::Extension
- Filter.pm ora usa HTML::Template::Extension.
- Rimosso un bug in Filter.pm che dava errore se il filtro non era definito.
- Aggiunto in admin/index.htm il link alla pagina della gestione sconti.
- Modificata ECP::DBEngine e ECP::SQL per gestire gli elementi della
  tabella sconto.
- Aggiunta la pagina admin/sconti_main.mpl e relativa pagina html per gestione
  sconti
- Aggiunta la pagina admin/sconti_fasce.mpl e relativa pagina html che funziona
  stand-alone o inglobata in admin/sconti_main.mpl per la gestione delle fascie
  di sconto.
- Aggiunta la pagina admin/sconti_utenti.mpl e relativa pagina html che funziona
  stand-alone o inglobata in admin/sconti_main.mpl per la gestione delle fascie
  di sconto degli utenti.
- Aggiunta la pagina admin/sconti_prodotti.mpl e relativa pagina html che 
  funziona stand-alone o inglobata in admin/sconti_prodotti.mpl per la gestione
  delle fascie di sconto dei prodotti.
- Aggiunto a searchEngineEx un ulteriore parametro ad indicare la lingua 
  utilizzata dal client per eseguire la query sulla corretta tabella delle
  descrizioni articoli.
  
Ver. 1.36 (27/01/2002)
======================
- Nella patch_1.35 era errato il riferimento al file ordini.htm, al file
  /tmpl/it/images/default.gif e alle personalizzazione JUNGLE che puntano
  su una directory jungle e non jungle.it come precedentemente specificato.
- Modificata tipoPagLista.mplcom per gestire le descrizioni dei tipi pagamento
  in lingua. Essa si aspetta ora, come un ulteriore parametro, un istanza 
  di ECP::UserProfile valorizzata con le impostazioni utente da cui recuperare
  la lingua prescelta. Questo parametro è obbligatorio e vanno quindi modificate
  tutte le pagine che chiamano questo componente.
- Modificata la struttura della tabella tipoPag su cui e' stata aggiunta una 
  ulteriore colonna descr_en per le descrizioni dei tipi pagamento in lingua
  inglese.
- Nella lista dei parametri passati ai vari componenti della gestione dei combo
  e' stato aggiunto il parametro uS per la gestione delle descrizioni in lingua.
- Modificato ECP::DBEngine e ECP::SQL per ritornare tutt i campi presenti nella
  tabella tipoPag.
- Modificato admin/tabelle/tipoPag.mpl per renderlo indipendente dai campi
  presenti nella tabella tipoPag. Modificato altresi l'html associato.
- Modificata tipoSpedizione.mplcom per gestire le descrizioni tipi spedizione
  in lingua. Essa si aspetta ora, come un ulteriore parametro, un istanza 
  di ECP::UserProfile valorizzata con le impostazioni utente da cui recuperare
  la lingua prescelta. Questo parametro è obbligatorio e vanno quindi modificate
  tutte le pagine che chiamano questo componente.
- Modificata la struttura della tabella tipoSpedizione su cui e' stata aggiunta
  una ulteriore colonna descr_en per le descrizioni tipi spedizione in lingua
  inglese.
- Modificato ECP::DBEngine e ECP::SQL per ritornare tutt i campi presenti nella
  tabella tipoSped.
- Modificato admin/tabelle/tipoSped.mpl per renderlo indipendente dai campi
  presenti nella tabella tipoSped. Modificato altresi l'html associato.
- Modificato comp/html/ordineMod.mplcom per passare ai componenti delle
  liste spedizioni e pagamento il profilo utente e per ritornare la descrizione
  nella lingua corretta se il campo e' non modificabile ed e' quindi una label
  piuttosto che un combo.
- Descrizioni in lingua anche su comp/html/ordineAccettato.mplcom.
- Cambiato il modo in cui vengono salvate le note amministrative in
  comp/html/ordineMod.mplcom. Mentre prima veniva salvata una descrizione
  in italiano di cio' che era avvenuto ora viene salvata una stringa delimitata
  dal carattere ':' del tipo $cod:$cod1:$cod2 con la seguente codifica:
  $cod =	1	=> 	cambiato l'indirizzo di spedizione
  			2	=> 	cambiato il tipo di spedizione
  			3	=> 	cambiato la localita di spedizione
  			4	=> 	cambiato il tipo di pagamento
  			5	=> 	cambiato lo stato della spedizione
  			6	=> 	cambiato lo stato del pagamento
  Invece $cod1,$cod2 che rappresentano la situazione in cui si trovava l'ordine 
  in precedenza e in cui si viene a trovare ora l'ordine dopo la sua modifica 
  dipendono dal tipo di $cod. 
  Se cod == 1 	=> 	rappresentano la codifica del tipo di anagrafica ossia il 
  					campo userAnagr.cod
  Se cod == 2	=>	rappresentano il codice del tipo di spedizione 
  					(tipoSped.cod)
  Se cod == 3	=>	rappresentano la localita' di spedizione
  Se cod == 4	=> 	rappresentano il codice del tipo di pagamento
  					(tipoPag.cod)
  Se cod == 5	=> 	rappresentano il codice dello stato della spedizione
  						0	=>	NON SPEDITO
  						1	=>	SPEDITO
  Se cod == 6	=>	rappresentano il codice dello stato del pagamento
  						0	=> 	NON PAGATO
  						1	=> 	PAGATO
  						127	=> 	ANNULLATO
- Modificato ordineNote.mplcom che ora passa a ordineNora.mplcom anche un
  collegamento al DB
- Modificato ordineNota.mplcom che ora crea tutta una serie di nuove variabili
  necessarie a mostrare a video le note amministrative in lingua salvate secondo
  la nuova struttura $cod:$cod1:$cod2. 
  Dato che sistono due formati di note amministrative: un vecchio formato in cui
  il testo della modifica dello stato del documento e' gia' composta nel testo 
  ritornato in nota.testo. Esso e' scritto in lingua italiana e non traducibile.
  Esiste un nuovo formato codificato che puo' essere trasformato in strutture 
  in lingua. Viene passata una nuova variabile nota.oldFormat che discrimina 
  tale situazione.
  Nel nuovo formato esiste una variabile booleana che discrimina il tipo di 
  modifica effettuata. Questa variabile si chiama nota.admin.numero dove numero
  indica il tipo di modifica effettuata.
  Solo la variabile corrispondene alla modifica effettuata e' valorizzata a TRUE
  La tabella di decodifica numero => tipo di modifica e' la seguente:
		1	=> 	cambiato l'indirizzo di spedizione
		2	=> 	cambiato il tipo di spedizione
		3	=> 	cambiato la localita di spedizione
		4	=> 	cambiato il tipo di pagamento
		5	=> 	cambiato lo stato della spedizione
		6	=> 	cambiato lo stato del pagamento
  Esistono poi due variabili cod.admin.da e cod.admin.a che rappresentano lo 
  stato prima e dopo la modifica. La valorizzazione di tali parametri e di altri 
  particolari dipende dal tipo di modifica effettuata. 
  Se nota.admin.1 == TRUE
	Le variabili nota.admin.da e nota.admin.da contengono il nome della chiave 
	del tipo di indirizzo prescelto come inserito nel campo userAnagr.cod. 
	Usualmente intraducibile.
  Se nota.admin.2 == TRUE
	Le variabili nota.admin.da e nota.admin.da contengono il codice del tipo 
	di spedizione come inserito in tipoSped.cod. Esistono due ulteriori 
	variabili nota.admin.da.inlang e nota.admin.a.inlang che contengono la 
	descrizione in  lingua del tipo di spedizione come presente nella colonna 
	tipoPag.descr_lang.
	Utilizzare questi campi per le traduzioni
  Se nota.admin.3 == TRUE
	Le variabili nota.admin.da e nota.admin.da contengono il nome della chiave
	della localita' di spedizione. 
  	Usualmente intraducibile.
  Se nota.admin.4 == TRUE
	Le variabili nota.admin.da e nota.admin.da contengono il codice del tipo di 
	pagamento come inserito in tipoPag.cod. Esistono due ulteriori variabili 
	nota.admin.da.inlang e nota.admin.a.inlang che contengono la descrizione in
	lingua del tipo di pagamento come presente nella colonna tipoPag.descr_lang.
	Utilizzare questi campi per le traduzioni
  Se nota.admin.5 == TRUE
	Le variabili nota.admin.da e nota.admin.da contengono il codice dello stato 
	della spedizione secondo la seguente codifica
		0	=>	NON SPEDITO
		1	=>	SPEDITO
	Esiste un'altro tipo di variabile booleana dal nome nota.admin.da.key che 
	e' TRUE se key corrisponde al valore della codifica di cui sopra. 
	Utilizzare tale variabile per le traduzioni
  Se nota.admin.6 == TRUE
	Le variabili nota.admin.da e nota.admin.da contengono il codice dello stato
	del pagamento secondo la seguente codifica
		0	=> 	NON PAGATO
		1	=> 	PAGATO
		127	=> 	ANNULLATO
	Esiste un'altro tipo di variabile booleana dal nome nota.admin.da.key che 
	e' TRUE se key corrisponde al valore della codifica di cui sopra. 
	Utilizzare tale variabile per le traduzioni.
- Modificato tmpl/it/ordineNota.htm per creare una riga di nota di esempio che
  gestisca le modifiche di cui sopra.
- Modificato comp/html/admin/userMod_tabForm.mplcom per passare ai combo 
  delle liste "tipo pagamento" e "tipo spedizione" la variabile di 
  configurazione di sessione $uS in modo da avere le descrizioni dei combo in 
  lingua.

Ver. 1.35 (21/01/2002)
====================== 
- Modificata comp/bsEncodeGp.mplcom in quanto l'importo da passare a banca Sella
  e' sempre in Euro anche in compatibilita' gateway.
- Ci siamo ricascati...durante la fase di debug di setOrdine.mpl si e' lasciato
  remmato il comando di cancellazione del carrello dopo la fase di acquisto.
- La libreria URI::BancaSella e' stata dismessa. Ora si utilizza la libreria
  CPAN Business::BancaSella nella versione 0.11. Per questo modificati i 
  riferimenti in comp/bsEncodeGp.mplcom,bsDecodeGp.mpl,bsS2S.mpl
- Modificata bsSimul/bsSimul.mpl in quanto in modalita' Gateway il parametro
  passato e' in lire, in modalita' GatewayC e' in euro.
- admin/langManager.mpl non impostava la lingua di default. Ora lo fa e la
  mostra a video sulla pagina html.
- creato uno script di amministratore createProdottoDescr.pl da shell per la 
  creazione di tabelle descrittive prodotti ProdottoDescr_* in lingua.
- (JUNGLE.IT) Creata, tramite lo script createProdottoDescr.pl la tabella 
  dei descrittivi in lingua inglese.
- (JUNGLE.IT) Ora la procedura di importazione inserisce i dati anche in lingua
  inglese nella tabella prodottoDescr_en.
- Per quelle query la cui stringa SQL e' dipendente dalla lingua ci sono dei
  problemi riguardo al caching delle query stesse da parte del modulo DBI.
  Aggiunta una funzione che, per quelle determinate query ritorna, come chiave
  della cached-query una concatenazione del nome della query nel modulo SQL 
  concatenato con la lingua. Per tutte le altre query la chiave della 
  cached-query continua ad essere la stessa della query nel modulo ECP::SQL.
- Su ECP::DBEngine ora la query productInfo_get cerca le descrizioni articoli
  nella tabella della lingua richiesta e, se la descrizione non viene trovata,
  loopa su tutte le altre lingue alla ricerca di una eventuale descrizione.
  Questo vale ovviamente se la variabile di configurazione unique_descr_table
  e' impostata a 0.
- La maschera delle informazioni commerciali sul profilo utente dava errore in
  quanto richiamava i combo delle spedizioni e del corriere senza gli opportuni
  parametri. IN realta' era ECP::Filter che non sapeva come gestire il fatto
  di essere chiamato come parametri. Ora se viene chiamato senza paramerti
  ritorna tutti gli elementi della tabella su cui si cerca di applicare il 
  filtro (nullo in questo caso).
- Il componente comp/ordiniRiga.mplcom richiamato dalla pagina ordini.mpl 
  non tiene conto delle impostazioni sulla valuta. Ora si.
- Lo stesso componente comp/ordiniRiga.mplcom ha cablato dentro di se le 
  stringhe sullo stato dell'ordine. PAGATO,NON PAGATO,SOSPESO etc. 
  Questa informazione viene ora invece passata all'HTML tramite un valore 
  booleano TRUE per la variabile "ordine_stato_xxx" dove xxx e' il numero che
  identifica lo stato del pagamento (0 => non pagato, 1 => pagato, 
  127 => annullato). Modificata quindi anche la pagina html associata.
  Rimossa quindi la variabile passata all'html "ordine_stato"
- Anche in comp/html/ordineAccettato.mplcom le stringhe sullo stato dell'ordine
  sono cablate nel codice. Per internazionalizzare le pagine HTML usato lo 
  stesso metodo sopra tramite il passaggio della variabile booleana
  "ordine.pagamento_xxx"
- In comp/html/ordineMod.mplcom nella versione 1.14 era stato corretto un 
  problema nella chiamata al componente mailNuovaNota.mplcom a cui non veniva
  passato il parametro uS. Solo che vi e' un'altro punto in cui viene
  richiamato lo stesso componente in cui non era stato fatto l'aggiornamento.

Ver. 1.34 (06/01/2002)
====================== 
- Durante la fase di debug di setOrdine.mpl si era remmato il comando di 
  cancellazione del carrello dopo la fase di acquisto. Tale comando e' rimasto
  commentato anche nella fase di rilascio del software. Rimosso tale commmento.
- Installata la versione 0.09 della libraria URI::BancaSella.
- Modificato Wizard.pm. Problemi di poca conoscenza del linguaggio da parte di
  Bruni eliminati :) e eliminato il bind_columns nel recupero dei valori
  salvati dal Wizard.
- Ora il parametro bancaSella_tipo puo' assumere anche il valore "GatewayC" ad
  indicare il sistema di pagamento sicuro su Banca Sella compatibile con la 
  vecchia modalita' gateway dismessa il 31/12/2001. Modificata a tal fine
  la pagina tmpl/it/admin/bancaSella/index.htm e lo script 
  admin/bancaSella/index.mpl.
- Modificato setOrdine.mpl per inviare su bsEncodeGp.mplcom sia se modalita'
  di pagamento BS di tipo Gestpay che GatewayC.
- Modificato comp/bsEncodeGp.mplcom per utilizzare anche la modalita'
  GatewayC.
- Modificata bsSimul/bsSimul.mpl per rimandare su bsDecodeGp.mpl se GatewayC
  altrimenti sulla vecchia bsDecode.mpl.
- Modificata bsDecodeGp.mpl per gestire anche la modalita' in compatibilita'
  Gateway. In questo caso viene fatta una chiamata interna a bsS2S.mpl per 
  impostare il pagamento della stessa. Modificata ovviamente anche bsS2S.mpl per
  gestirla.
- Il problema del salvataggio del wizard di registrazione in cui vengono persi
  i dati di user e pw una volta fatto il remove dei dati dalla tabella 
  temporanea sysWizardValue e' un vero mistero. Sembra come, anche se dal log
  del web non si evince, lo script venga chiamato due volte. La seconda volta
  i dati da sysWizardValue sono stati eliminati e quindi non esistono piu'.
  In realta' da un trace dei pacchetti transitati si evince che il browser
  richiama la pagina due volte, la prima volta interrompe subito la 
  connessione e quindi richiama di nuovo la pagina.
  Modificato lo script userAddExec.mpl aggiungendo uno sleep di 1 sec e sembra
  che in locale il problema non appaia piu'. Verificare se cosi si risolve.

  
Ver. 1.33 (27/12/2001)
====================== 
- Aggiunta alla patch 1.32 images/lamp.gif e comp/html/tipoSpedizione.mplcom e
  comp/html/ ordineMod.mplcom.
- Modificate le query di update di sysWizardInfoStep in patch 1.32
- Modificata tmpl/it/admin/tables/tipoPag.htm, tmpl/it/admin/tables/tipoSped.htm
  per richiamare la finestra di lookup con le scrollbar attivate.
- Modificata wizard/userAddExec.mpl per far puntare la finestra di login dopo
  l'ultimo step all'url standard e non a products.mpl.
- Installata libreria URI::BancaSella ver 0.08.
- Creato il componente comp/bsEncodeGp.mplcom che ridirige alla pagina del
  sistema GestPay di Banca Sella per il pagamento dell'ordine online.
- Creato pagina/componente bsS2S.mpl di risposta server/to/server tramite
  la quale Banca Sella notifica la corretta transazione eseguita.
- Creata la pagina bsDecodeGp.mpl su cui Banca Sella rimanda il cliente una
  volta che la transazione sia avvenuta
- Aggiunto il parametro bancaSella_tipo in sysConfig che indica se, come 
  modalita' di pagamento on-line si sta usando la vecchia gateway o la nuova
  gestpay. Default: "Gateway".
- Modificata la pagina tmpl/it/admin/bancaSella/index.htm e lo script
  admin/bancaSella/index.mpl per gestire il parametro sopra e per impostare
  staticamente il parametro bancaSella_link sul link locale alla pagina demo
  o sul link sulla pagina reale su banca Sella.
- Creata pagina bsSimul/gestpay/bsSimul.mpl e bsSimul/gestpay/bsSimulExec.mpl
  che simulano la pagina di richiesta carta di credito per la gestione gestpay.
- Su setOrdine.mpl contemplata la possibilita' che non sia stato possibile
  calcolare le spese di spedizione.
- Su setOrdine.mpl viene impostata la via su bsEncodeGp.mplcom se e' attivata
  la modalita' gestpay di pagamento su banca Sella.
    
Ver. 1.32 (04/12/2001)
====================== 
- Modificata applyPatch.pl per rimuovere un errore nell'inizializzazione della
  DBEngine.
- Modificata la patch 1.31 per rimuovere dei problemi nella query SQL di 
  creazione della tabella sysFilter e nella lista dei file da aggiornare.
- Modificato admin/tabelle/tipoPag.mpl per rendere lo script piu' 
  table-indipendent.
- Modificata la libreria SQL.pm e DBEngine.pm per la gestione add,edit e del
  della tabella tipoSped
- Creati il componente admin/tabelle/tipoSped.mpl e la pagina 
  tmpl/it/admin/tabelle/tipoSped.htm per la gestione della tabella tipi di
  spedizione. 
- (*) Modificata la libreria Filter.pm che ora accetta come parametri i soli
  dati db,tableName e un parametro params che deve risultare un riferimento ad
  un hash contenente le varie informazioni che dovranno essere poi inserite
  nel filtro SQL.
- (*) Modificata comp/html/tipoPagLista.mplcom per adattarsi alla modifica in
  ECP::Filter e modificata per accettare un solo parametro params  che deve 
  risultare un riferimento ad un hash contenente le varie informazioni 
  che dovranno essere poi passate al filtro.
- Modificati buy.mpl e comp/html/ordineMod.mplcom per adattarsi alla modifica
  effettuata su tipoPagLista.mplcom.
- Aggiunti a comp/html/listaFields.mplcom i campi selezionabili quale filtro
  tipoPag e tipoSped che eseguire i filtri in base al tipo di pagamento e/o
  al tipo di spedizione richiesti.
- Modificato tmpl/it/admin/index.htm per aggiungere il link alla gestione delle
  tipologie di spedizione.
- Ora comp/html/tipoSpedizione.mplcom filtra i tipi di spedizione utilizzando
  ECP::Filter.
- Modificati in buy.mpl e comp/html/ordineMod.mplcom la chiamata a 
  tipoSpedizione.mplcom per passare i parametri necessari a utilizzare il 
  filtro.
- Ora comp/html/listaFields.mplcom ha un parametro 'notInList' che ha un
  riferimento un eventuale hash contenente come chiavi eventuali fields
  che si desidera non vengano mostrati nel combo.
- In admin/tabelle/tipoSped.mpl vengono mostrati tutti i campi di filtro
  tranne il campo %% e analogamente in admin/tabelle/tipoPag.mpl
  vengono mostrati tutti i campi tranne %%.
- In Ordine.pm e Cart.pm aggiunte metodi tutti lowercase come alias dei 
  rispettivi metodi per facilitare il compito di chiamata di tali metodi da 
  parte di Filter.pm
- Aggiunto lo script admin/tabelle/lookup.mpl e la relativa pagina html
  tmpl/it/admin/tabelle/lookup.htm per la gestione dei lookup di tabella.
- Modificato tmpl/it/admin/tabelle/tipoPag.htm in quanto aveva un action
  di un form impostato con metodo GET invece che POST
- Modificato il flusso del wizard per saltare il penultimo step, quello della
  configurazione del tipo di pagamento e del tipo di corriere di default che
  tanto non veniva usato e ora, con la nuova gestione di tali tabelle, dava
  qui dei problemi.
- L'ultimo step di userAddExec.mpl ha in modo random dei problemi. L'ho 
  modificato ma va verificato se il problema e' risolto o meno.
- Su wizard/userAddExec.mpl remmato la parte di codice riguardante lo step 4
  che e' stato rimosso e spostata l'unica informazione utile, lo sconto, sullo
  step 5.
- In comp/mail/userAdd.mplcom ho messo una pezza. Nel caso il modulo abbia 
  ancora dei problemi nel ricavare i dati dell'utente viene inviato un mail
  agli amministratori pregandoli di contattarmi. Inoltre cosi' il modulo
  di registrazione non va in errore.
- Alterata la tabella userComm che conteneva un valore errato di default per 
  la colonna spedizione.
- Modificati i file tmpl/it/admin/tabelle/tipoPag.htm e 
  tmpl/it/admin/tabelle/tipoSped.htm con del codice javascript e con un 
  immagine linkata a questo nuovo codice js per aprire la finestra di lookup
  e ritornare il valore selezionato.
- Il componente ECP::Filter aveva ancora dei problemi nell'esecuzione del filtro
  nel caso in cui non venivano passati i parametri di filtro. Invece di 
  ritornare tutti gli elementi duplicava gli elementi inseriti in un qualche 
  filtro.
  
 
Ver. 1.31 (15/11/2001)
====================== 
- Modificata applyPatch.pl per linkare la DBEngine come root del database
  per avere i permessi di ADD, DROP e ALTER delle tabelle.
- Su tutte le patch >= 1.24 rimosse le routine fuse e getFiles.
- Modificata la patch 1.25 per inserire correttamente i punti e virgola nella
  query SQL e modificata applyPatch.pl per adattarsi a questo cambiamento.
- Modificata la patch 1.29 per inserire correttamente il testo del mail.
- NOTA INST.: e' necessario installare il modulo CPAN Crypt::SSLeavy che
  richiede OpenSSL se bisogna recuperare url di tipo https tramite LWP (per
  esempio il template di mail iscrizione nuovo utente).
- Per l'orario di inserimento nuovo utente da mostrare nel mail di registrazione
  si sceglie in comp/mail/userAdd.mplcom di prelevare l'ora dalla funzione
  localtime piuttosto che dal campo user.ts del database.
- Installata la versione 0.07 della libreria HTML::TemplateEx.
- Modificata la pagina html tmpl/it/products.htm per passare i soli parametri
  indispensabili allo script setCart.mpl nel caso di aggiunta di un nuovo 
  prodotto al carrello.
- Modificato un ciclo in setCart.mpl da for a foreach.
- Rimossi alcuni errori in admin/userMod_Delete.mpl
- Completamente reingegnerizzata la barra di navigazione che implementa ora
  i salti in avanti e indietro di dieci in dieci.
- Creata la tabella sysFilter per gestire filtri personalizzati sulle tabelle
  di sistema.
- Aggiunta la classe astratta ECP::Serializable che tutti gli oggetti che 
  vogliono essere serializzabili devono implementare.
- Modificata ECP::SQL::WhereBuilder e ECP::UserSession che ora estendono la
  classe ECP::Serializable.
- (*) Rinominato la proprieta ops di ECP::SQL::WhereBuilder in bools;
- Modificata products.mpl, listEl.mplcom per rispecchiare la modifica in
  ECP::SQL::WhereBuilder.
- Necessario rigenerare albero degli articolo.
- Rimosso l'operatore exacts da ECP::SQL::WhereBuilder e sostituito con 
  l'operatore ops.
- Ora, listEl.mplcom, products.mpl e searchEngine.mpl usano la nuova sintassi
  di ECP::SQL::WhereBuilder "ops" al posto di "exacts".
- Aggiunta libreria Filters per gestire le tabelle con aggiunta di elementi
  della tabella sysFilter.
- Aggiunto in SQL.pm e DBEngine.pm le query sysFilter_get,sysFilter_del,
  sysFilter_edit per, rispettivamente, ritornare un filtro, cancellarlo e
  aggiungerlo e modificarlo.
- Create cartelle tmpl/it/admin/tabelle e admin/tabelle.
- Creata pagina tmpl/it/admin/tabelle/tipoPag.htm e script 
  admin/tabelle/tipoPag.mpl per la gestione dei tipi di pagamento.
- Varie aggiunte a DBEngine.pm e SQL.pm per gestire la tabella tipoPag.
- Creato componente comp/html/listaBools.mplcom che ritorna la sezione
  <options>...</option> per il query builder per quanto riguarda il combo
  bools (and e or)
- Creato componente comp/html/listaOps.mplcom che ritorna la sezione
  <options>...</option> per il query builder per quanto riguarda il combo
  ops (=, <>, like,...)
- Creato componente comp/html/listaFields.mplcom che ritorna la sezione
  <options>...</option> per il query builder per quanto riguarda il combo
  campi su cui è attivo il filtro
- Installata la release 0.08 della libreria HTML::TemplateEx.
- Modificata ECP::SQL::WhereBuilder che ora, in mancanza di un'informazione
  specifica da parte del metodo isString sul tipo di campo cerca di 
  ricavare tale informazione dall'item di ricerca associato. Se esso contiene
  una stringa allora l'isString per quell'item e' vero.
- Modificata ECP::SQL::WhereBuilder per utilizzare la sintassi , %like e
  like%
- Modificata comp/html/tipoPagLista.mplcom che ora utilizza la libreria 
  ECP::Filter per ricavare i tipi di pagamento accettabili
- Modificato buy.mpl per passare a tipoPag.mplcom i vari campi utente e ordine
  necessari a eseguire eventuali filtri. Inoltre chiamato UserComm e userAnagr
  passando gia la connessione al DB.
- Stessa modifica eseguita su buy.mpl viene eseguita anche su 
  comp/html/ordineMod.mplcom.
- Corretto un bug su comp/html/ordineMod.mplcom che non faceva passare il 
  parametro uS a mailNuovaNota.mplcom.
  
Ver. 1.30 (06/11/2001)
====================== 
- Modificata applyPatch.pl per creare nuove directory e per rimuovere alcuni 
  bugs.
- Spostate le routine fuse e getFile da patch_1.30 a applyPatch.pl. Se funziona
  ricordarsi di cancellarle da tutte le patch.
- Modificata la patch della versione 1.29 per creare le nuove directory 
  necessarie a tale versione e per fare l'insert corretto del testo del mail.
- (JUNGLE.IT) Modificata comp/admin/extras/jungle/importArticoliExec.mplcom per 
  correggere un errore di grammatica italiana.
- Corretto errore di grammatica italiana in comp/html/ordineMod.mplcom.
- Modificato SQL/WhereBuilder.pm per rimuovere il problema degli apici singoli
  nelle stringhe SQL.

Ver. 1.29 (28/10/2001)
====================== 
- Aggiunta alla patch 1.28 la query SQL per l'aggiunta nel nuovo campo 
  unique_descr_table in sysConfig e corretto un errore nel nome del file
  wizardStep.mplcom.
- Modificata applyPatch.pl per rendere la configurazione degli aggiornamenti
  piu' semplice.
- Creata la pagina tmpl/it/admin/mail/userAdd.htm e il componente 
  admin/mail/userAdd.mpl per impostare e far inviare al sistema un mail ad
  ogni registrazione di un nuovo utente.
- Modificata la pagina tmpl/it/admin/index.htm per aggiungere il link alla nuova
  gestione ora introdotta.
- Aggiunti i seguenti campi in sysCOnfig che si configurano da 
  admin/mail/userAdd.mpl:
  	mail_uA_toAdmins 	=> flag che attiva l'invio del mail
  							alla registrazione nuovo utente
  	mail_uA_subject		=> oggetto del mail
  	mail_uA_html_flag	=> flag di prelievo mail da web
	mail_uA_html_url	=> url pagina del mail
	mail_uA_text_flag 	=> flag di prelievo mail testo
	mail_uA_text_text	=> testo del mail (salvata su tabella sysCache)
- Per creare i mail da pagine HTML, installate le librerie CPAN: MIME-Lite e
  MIME-Lite-HTML. 
  INFORMAZIONE CHE SEGUE NON NECESSARIA IN QUANTO PATCH E' PARTE INTEGRANTE
  DELLA VERSIONE 1.8 DELLA DISTRIBUZIONE UFFICIALE DEL MIME-LITE-HTML.
  La libreria MIME-Lite-HTML va patchata per far scaricare 
  il css corretto e per inviare mail di tipo solo testo in questo modo
	7a8,12
	> # Revision 1.8  2001/10/28 21:52:29  bruni
	> # - Modify css link search for match file with no .css extension
	> # - Now $html in parse may be empty. It will be sent a simple message 
	> #   containing just text
	> # Fix bug in relative url replace that lost space between "a" and "href"
	196c201
	<      return if (!$gabarit);
	---
	>      #return if (!$gabarit);
	222c227
	<                         /href="$urlAbs"/gimx;
	---
	>                         / href="$urlAbs"/gimx;
	371a377,387
	>     # Only text. No Html
	>     if ($txt and !$html) {
	>       # create simple e-mail.
	>       my $ref=$self->{_param};
	>       $mail = new MIME::Lite (%$ref);
	>       $mail->data($txt);
	>       # Remove some header for Eudora client
	>         $mail->replace("MIME-Version" => "");
	>         $mail->replace("X-Mailer" => "");
	>         $mail->replace("Content-Disposition" => "");
	>     }
	373c389
	<     if (!$txt and !@mail)
	---
	>     elsif (!$txt and !@mail)
	443c459
	<     $gabarit=~s/<link([^<>]*?)href="?([^\" ]*css)"?([^>]*)>
	---
	>     $gabarit=~s/<link([^<>]*?)href="?([^\" ]*)"?([^>]*)>
- Creato il componente comp/mail/userAdd.mplcom per inviare agli amministratori
  un mail che li informa della registrazione di un nuovo utente.
- Installata la versione 0.06 della libreria HTML::TemplateEx che aggiunge il
  recupero del template da url e la sintassi %%.
- Modificati UserAnagr.pm,UserInfo.pm,UserComm.pm che ora possono ricevere
  un collegamento al db dall'esterno. Se non viene passato creano loro un nuovo
  link al database per compatibilita' all'indietro.
- Modificata la DBEngine per rimuovere un bug nell'operazione di DESTROY.
- La libreria User.pm ora ritorna anche il ts della ultima modifica del record.
- Modificata wizard/userAddExec.mpl per richiamare, se richiesto, il componente
  per l'invio del mail di nuova registrazione agli amministratori.
- Creata la pagina html/mail/userAdd.htm quale esempio di pagina html per
  invio del mail all'atto della registrazione di un nuovo utente.

Ver. 1.28 (23/10/2001)
====================== 
- Modificata patch 1.26 per un errore di riferimento al file ListEl.pm.
- Modificata patch 1.27 per errori di riferimento ai file ordineAccettato.mplcom
  userMod_notifyIfChanged.mpl, langManager.mpl e addins.mpl
- comp/wizard/wizardSeto.mplcom ha ancora un riferimento a template.mplcom. 
  Modificato per utilizzare ECP::Template
- dopo la registrazione, nel login successivo non appariva gia' impostato lo
  username. Questo a causa dell'assenza in comp/html/login.mpl del passaggio
  di tale informazione alla pagina html.
- La libreria Product.pm non passava il corretto valore della lingua alle query
  di recupero descrittive messaggi.
- Non esiste piu' la lingua di default del profilo, ma solo la lingua di 
  default del sito. Eliminato quindi da sysLayoutProfiles il fileName = 'lang'.
- Modificata la comp/userSession.mplcom per prelevare la lingua di default da
  sysConfig.
- Creata la libreria Lang.pm per avere un accesso object-orientated alle 
  informazioni sulla lingua.
- Sempre in comp/userSession.mplcom le valute di default vanno ora prelevate
  dalla lingua e non da sysConfig da cui vengono eliminate.
- Aggiunta in tmpl/it/admin/langManager.htm gli help sui combo delle valute.
- Rimosso da admin/configChange.mpl e dall'html l'impostazione delle valute 
  di default
- In admin/langManager.mpl si era dimenticato di settare il flag delle pagine
  in cache.
- Modificata comp/userSession.mplcom per impostare, in un colpo solo, piu'
  parametri di sessione passando ai valori di field_name e di field_value
  un array di campi=>valori invece di scalari.
- In controlPanel/userSessionExec.mpl se si modifica la lingua, ora vengono 
  automaticamente modificate le impostazioni della valuta prendendole, di 
  default dalla lingua stessa.
- Su controlPanel/userMod.mpl e controlPanel/userModExec.mpl rimossi riferimenti
  assoluti a componenti su /ecp/
- Risolto degli errori di sintassi introdotti nella 1.27 in 
  admin/userMod_notifyIfChanged.mpl.
- Il componente comp/html/no_frame.mplcom contiene dei riferimenti assoluti
  alla directory /ecp/. Rimossi.
- Aggiunta alla tabella sysConfig il parametro booleano unique_descr_table che
  indica se si desidera gestire le descrizioni dei prodotti in piu' lingue
  o nella sola lingua standard del sistema
- Modificata la configChange.mpl e la configChange.htm per gestire questo 
  parametro.
- Rimosso il file comp/html/product.mplcom e modificato il file product.mpl che
  unisce ora le funzionalita' dei due file.
- Modificata la DBEngine.pm per puntare alla tabella di descrizione dei prodotti
  nella lingua di default del sistema se e' impostato il flag di 
  configurazione unique_descr_table.
- Creato lo script setSession.mpl per poter impostare, da url, parametri della
  sessione quale per esempio la lingua.
- Modificata la pagina center.htm per far scegliere il tipo di lingua con cui
  visualizzare il sito.

Ver. 1.27 (19/10/2001)
======================
- Modificato userSessionExec.mpl per mostrare la list delle lingue disponibili
  prelevandole dal DB. Modificata conseguentemente userSessionExec.htm per
  ricevere tale lista dinamica. Creato a tal fine il componente 
  listaLingua.mplcom.
- Modificati i seguenti script per usare ECP::Template invece che 
  template.mplcom in quanto quelli con template.mplcom non funzionano piu'
  sulla gestione multilingua del sito:
  controlPanel.mpl,comp/html/login.mpl,index.mpl, viewCart.mpl,
  comp/html/productRow.mplcom,buy.mpl,comp/html/admin/userMod_tabForm.mplcom,
  comp/html/admin/userMod.mplcom,admin/index.mpl,admin/productAdd.mpl,
  admin/productMod.mpl,admin/productQuery.mpl,admin/usersGestione.mpl,
  addins.mpl,admin/bancaSella/index.mpl,admin/bancaSella/codiciAdd.mpl,
  comp/html/ordineMod.mplcom,comp/html/ordineAccettato.mpl,error.mpl,
  comp/html/ordineNota.mplcom,ordineMod.mpl,comp/html/ordineMod.mplcom,
  comp/html/ordineNote.mplcom,ordineNotaAdd.mpl,comp/mailNuovaNota.mplcom,
  admin/notify_IfChanged.mpl,admin/userMod_Delete.mpl,admin/previewPic.mpl
- Rimosso template.mplcom.
- Dopo l'aggiunta della gestione della cache delle pagine la gestione della 
  lingua da parte del visitatore non funziona piu'. Modificata ECP::Template 
  per aggiornare il percorso del file del template se  la lingua e' cambiata 
  anche se la cache e' attivata. 
- Se non specificato, login.mpl ora punta a viewCart.mpl.
- Per aggiungere alla pagina della conferma d'ordine, che poi e' anche quella
  che viene inviata via e-mail, le informazioni generiche dell'utente (e-mail,
  num. tel. etc.) modificata comp/html/ordineAccettato.mplcom e la pagina
  html ordineAccettato.htm
- (JUNGLE.IT) Modificato importArticoliExec.mpl,importArticoli.mpl per
  l'eliminazione del riferimento al template.mplcom
- (JUNGLE.IT) Modifcato importArticoliExec.mplcom che possedeva un errore
  nell'importazione del prezzo troncandolo a 5 cifre e aggiunta l'informazione
  del mese di pubblicazione del disco.
- Aggiunta il pannelo di gestione delle lingue lato amministrazione e modifica
  la pagina principale del pannello di amministrazione con il link a questa
  nuova gestione.
- Modificato defStyle.css per impostare il font anche sul controllo textarea.
- Modificata dbEngine.pm e SQL.pm per implementare le funzioni sysTableLang_set
  e sysTableLang_del che aggiungono e cancellano una lingua

Ver. 1.26 (13/08/2001)
======================
- Nella generazione delle variabili utilizzate per la creazione dell'albero
  delle categorie nel frame di sinistra capitava, con molte categorie, che 
  i nomi di tali variabili potessero entrare in conflitto con nomi riservati
  al linguaggio javascript (p.e. la variabile 'do'). Eliminato il problema
  modificando listEl.mplcom appendendo come prima lettera della variabile 
  dell'albero il carattere di underscore "_". En-passant, modificato anche 
  listEl.pm.
  
Ver. 1.25 (30/08/2001)
======================
- Installato il perl 5.6.1 e ricompilato il mod_perl aggiornandolo alla 1.25.
- A causa della trasformazione in ordini.mpl del TMPL_VAR in TMPL_LOOP accade
  che se l'utente non aveva ordini la variabile associata al valore del loop
  rimaneva uno scalare invece che un ref ad un array e quindi produceva un 
  errore nel modulo HTML::Template. Risolto valorizzando inizialmente la 
  variabile come un ref ad un array vuoto. Analogo problema in products.mpl 
  nel caso di lista di prodotti nulla (per esempio a causa di una query del
  motore di ricerca con nessun risultato).
- Modificato il file buy.htm che puntava ad un immagine (1x1.gif) su di un path
  errato.
- Aggiunti due record currency_default1 e currency_default2 a sysConfig che 
  indicano la valuta principale di default con cui vengono mostrati i prezzi
  e l'eventuale valuta secondaria di default. 
  Modificati configChange.mpl e configChange.htm per impostare tale parametro
  dal web e creato il componente comp/html/valutaLista.mplcom per ottenere
  un combo con la lista delle valute.
- Modificato userSession.mplcom per propagare le informazioni della valuta 
  ora create e per controllare e reimpostare a default i valori obbligatori
  presenti nel cookie di sessione qualora, per qualche motivo, benche' il 
  cookie sia presente, alcuni di questi valori dovessero venire meno.
- Modificata la libreria ECP::UserSession per aggiungere le proprieta' 
  relative alle due nuove variabili aggiunte.
- Modificato userSessionExec.mpl e htm per permettere al visitatore del sito di
  cambiare la valuta con cui visualizzare i prezzi.
- Modificate,  per tenere conto delle valute, products.mpl, 
  productSection.mplcom, top.mpl, comp/html/productRow.mplcom, viewCart.mpl,
  buy.mpl, comp/html/ordineAccettato.mplcom, comp/html/ordineMod.mplcom
- Nella tabella sysValuta alterata la colonna cambio per contenere sei cifre
  decimali invece delle attuali quattro.
- Aggiornata la tabella sysValuta con piu' valute.

Ver. 1.24 (08/08/2001)
======================
- Installata la libreria HTML::TemplateEx nella versione 0.05.
- Modificata la libreria ECP::Template per utilizzare la nuova proprieta'
  della versione 0.05 di HTML::TemplateEx.
- Aggiunta in sysConfig il parametro html_file_cached che identifica se le 
  pagine del sito sono cachate o se ogni volta vengono aperte e lette. Di
  default questa proprieta' e impostata a 1 ma puo' essere messa a zero in fase
  di modifica del sito con frontpage o altro editor.
  	INSERT INTO sysConfig VALUES( 'html_file_cached', '1');
- Modificata configChange.mpl e configChange.htm per impostare tale parametro
  dal web.
- Lieve modifica al file css/overlib_pers.js per allargare un po' la finestra
  dei tooltip.
- Ora imageGet.mpl usa la variabile html_file_cached per decidere se 
  ricaricare ogni volta l'immagine 'no-image' o se prendere quella in cache.
  Analogamente productSection.mplcom, ordiniRiga.mplcom, products.mpl per 
  quanto riguarda la lettura del file html.
- Ora left.mpl,top.mpl,center.mpl e index.mpl usano tutti ECP::Template con
  gestione della cache.
- Nella gestione ordini.mpl il loop sulle righe ordine viene ora gestito in
  modo differente utilizzando il tag TMPL_LOOP. Il file ordiniRiga.htm e il
  relativo componente comp/html/ordiniRiga.mplcom sono inutili e VANNO 
  ELIMINATI. Il modello della riga ordine e' ora contenuto direttamente 
  dentro a ordini.htm ed e' stato creato un nuovo componente 
  comp/ordiniRiga.mplcom che ritorna un riferimento ad un hash con le 
  informazioni del ordine. Tale riferimento viene inserito all'interno di un
  riferimento ad un array e passato al template che lo trasforma in un loop sul
  TMPL_LOOP.
- Anche productSection.htm e' inutile ed e' stato inglobato dentro a
  products.htm come TMPL_LOOP. Rimosso comp/html/productSection.mplcom e
  aggiunto comp/productSection.mplcom
- Senza dirlo...
	UPDATE sysConfig set value='1.24' where fieldName='version'
	

Ver. 1.23 (23/07/2001)
======================
- Modificata la libreria ECP::Spedizione che non calcolava correttamente le
  spese di spedizione se esisteva il corriere senza il tipoPag ma esisteva 
  l'elemento in SpeDistLoc.
- Aggiunto in sysConfig il parametro image_basepath che identifica l'eventuale
  direcorty da cui cercare immagini per gli articoli se il percorso 
  dell'immagine inserito nei campi che verranno creati sotto sia un path 
  relativo.
	INSERT INTO sysConfig VALUES( 'image_basepath', '/tmp/basedir_image');
- Modificata configChange.mpl e configChange.htm per impostare tale parametro
  dal web.
- Aggiunti alla tabella prodottoDescr_it due campi pic_path e picLarge_path che
  se valorizzati, prevalgono su pic e picLarge e contengono il percorso 
  all'immagine del prodotto. Il percorso puo' essere un path assoluto, relativo
  alla directory inserita nel campo image_basepath di sysConfig o un URL.
  	ALTER TABLE prodottoDescr_it ADD pic_path VARCHAR (255) , 
  	ADD picLarge_path VARCHAR (255)  
- Modificata ECP::SQL::imageGet per ritornare anche l'eventuale percorso della
  immagine
- Modificata imageGet.mpl che ora recupera l'immagine o dallo stream del campo
  pic, o utilizzando il percorso pic_path come file locale assoluto o relativo
  alla directory image_basepath o come url.
- Modificata pagine productAdd.htm e aggiunta immagine question.gif per 
  gestire il path delle immagini. Aggiunto inoltre lo script javascript 
  overlib.js e overlib_pers.js per l'help del campo. Questi script sono
  stati messi in css.
- Modificati DBEngine.pm e SQL.pm nelle query prodottoDescrTable_set e
  prodottoDescrTable_insert per inserire gli eventuali path delle immagini
- Chissa perche in productAdd.htm il codice articolo era obbligatorio. Messo
  come opzionale.
- Rimosso un piccolo errore in top.htm che produceva un errore javascript 
  quando si tentava di eseguire una ricerca.
- productAddExec.mpl non salvava il nuovo articolo come attivo (enabled=1) ma
  come disattivo. Modificata SQL.pm  nella query prodottoTable_set per salvare 
  tale valore.
- Modificato ECP::Product e ECP::SQL nella query productInfo_get per ritornare
  le path delle immagini.
- Modificato productMod.htm, productMod.mpl e productModExec.mpl per mostrare
  e rendere modificabile i path delle immagini dei prodotti.

Ver. 1.22 (21/06/2001)
======================
- Ora anche productSection.mplcom e ordiniRiga.mplcom
  sono gestito tramite ECP::Template e questo
  ottimizza il caricamento della pagina in quanto la stessa istanza di 
  ECP::Template viene tenuta attiva all'interno del componente e quindi il
  template html viene letto una volta sola e viene poi sempre prelevato dalla
  memoria.
- La modifica effettuata alla barra di navigazione nella versione precedente
  non va ancora bene se vi sono presenti piu' barre di navigazione sulla
  stessa pagina. Si decide di spostare il form in products.htm e di 
  richiamare questo form dalla barra di navigazione.
- Creato componente barNavForm.mplcom che inserisce nella pagina l'UNICO
  form per la gestione delle barre di navigazione.
- Installato modulo CPAN Params-Validate-0.04.
- Installato HTML-Mason-1.03 e modificata la linea
	chown (scalar(getpwnam "www"), scalar(getgrnam "daemon"),
    	$interp{$site}->files_written);
  nell'handler.pl con la riga
	chown (Apache->server->uid, Apache->server->gid, 
		$interp{$site}->files_written);
- Modificato ECP::Template per convertire il path in .htm anche se il file
  ha invece estensione .mplcom.
- Aggiunto link sulla pagina di amministrazione per rigenerazione menu' 
  laterale.
- Modificata lievemente il componente listEl.mplcom.
- Creata tabella sysCache per eseguire il caching di robe.
	CREATE TABLE sysCache (uniqueKey VARCHAR (50) not null , 
	value MEDIUMTEXT not null , PRIMARY KEY (uniqueKey), 
	INDEX (uniqueKey), UNIQUE (uniqueKey)) 
- Modificati ECP::DBEngine e ECP::SQL per aggiungere query sysCache_get e
  sysCache_set di lettura e scrittura sulla tabella sysCache
- Creato il componente refreshTreeview.mpl che chiama listEl.mplcom e salva
  la pagina statica in sysCache. Creata la pagina  refreshTreeview.htm
- Modificato left.mpl per leggere la treeview da sysCache.
- Quindi da questo momento in poi l'albero delle categorie non si aggiorna
  automaticamente ma va' rigenerato a richiesta lanciando il componente
  refreshTreeview.mpl presente nelle pagine di amministrazione.
- Aggiunto parametro frameMode in sysConfig per la gestione della 
  visualizzazione del sito in modalita' con o senza frame. Di default viene
  installato in modalita' con frame.
  	INSERT INTO sysConfig VALUES( 'frameMode', '1');
- Modificato il componente configChange.mpl e la pagina configChange.htm per
  la gestione di questo parametro. Inoltre configChange e' stato ottimizzato
  per usare ECP::Template.
- Ottimizzato autohandler e modificato per gestire l'utilizzo del sito senza 
  frame
- Creato componente no_frame.mpl e pagina di template index_no_frame.htm per
  la gestione del sito in modalita' senza frame.
- Modificata la pagina left.mpl per rimuovere tutti i target dai link ad 
  esclusione (per ora???) del link di logout e messi i riferimenti assoluti
  in tutti i link.
- Modificara la funzione getLink in listEl.mplcom per settare i link assoluti
  alle categorie. Rigenerare il menu'.
- Modificato l'autohandler che NON DEVE CONTENERE RIGHE VUOTE altrimenti 
  quelle righe vuote vengono mandate come $m->out(' ') impostando il tipo
  del documento a text/html e quindi, per esempio getImage.mpl non funziona.
- Nel caso di noimage.gif il componente getImage.mpl non espicitata il 
  content-type. Ora si. Inoltre, prima no_image.gif veniva letto ogni volta, 
  ora e' in memoria.
- Su handler.pl esplicitato l'output mode a 'stream'
	$interp{$site} = new HTML::Mason::Interp (parser=>$parser,
                 	comp_root=>"/usr/local/apache/virtual/$site/www",
                 	data_dir=>"/usr/local/mason/$site",
                	out_mode=>'stream');
- Rimosso il <DIV style="margin-left: -6"> dalla pagina left.htm
- Rimosso l'attributo TARGET="main"  dal tag <FORM> nella pagine top.htm
  tanto c'e' il tag <base target="main"> nell'header della pagina che fa 
  funzionare il tutto nella versione a frame. Rinominato il nome del frame
  da tF a frmSearch per problemi di incompatibilita' con eventuali
  altri form sulle altre pagine.
  Sostituiti inoltre tutti link a riferimenti assoluti
- Anche productRow.mplcom utilizza ECP::Template anche se qui non si puo' 
  parlare di cache della pagina in quanto il templateFile e' dinamico a 
  seconda se chiamato dal carrello della spesa o dall'elenco prodotti 
  acquistati.
- Aggiornata la libreria HTML::TemplateEx alla versione 0.04
- Creato il file applyPatch.pl per applicare le patch alle installazioni.
- File modificati:
	tmpl/it/products.htm,products.mpl,Template.pm,
	comp/html/productSection.mplcom,comp/html/barNav.mplcom,
	tmpl/it/admin/index.htm,comp/html/listEl.mplcom,
	left.mpl,admin/refreshTreeview.mpl,tmpl/it/admin/refreshTreeview.htm
	DBEngine.pm,SQL.pm,autohandler,comp/html/no_frame.mplcom,
	tmpl/it/pages/index_no_frame.htm,admin/configChange.mpl,
	tmpl/it/admin/configChange.htm,tmpl/it/pages/left.htm,
	imageGet.mpl,tmpl/it/pages/top.htm,
	comp/html/ordiniRiga.mplcom
- Ovviamente: 
	UPDATE sysConfig set value='1.22' where fieldName='version';

Ver. 1.21 (20/06/2001)
======================
- In barNav.mplcom ora il nome del form che produce la navigazione tra le pagine
  e' dinamicamente assegnato in modo da poter avere piu' copie della barra di
  navigazione nella stessa pagina senza che i nomi dei form vadano in conflitto
  tra di loro.
- Se si seleziona la lista degli articoli dalla treeview laterale, ora appare
  come titolo della pagina dei prodotti la struttura della categoria e della
  subcategoria richiesta.
- Installato il modulo HTML::TemplateEx.
- Aggiunta la classe ECP::Template per la gestione dei template HTML al posto
  del componente template.mplcom. Questa classe incapsula la classe 
  HTML::TemplateEx modificando il comportamento del campo file per utilizzare 
  path relativi alla directory dei template.
- Ora template.mplcom e' un alias per l'utilizzo di ECP::Template. 
  Lentamente va rimosso e sostituito con la chiamata al modulo ECP::Template;
- Il modulo HTML::TemplateEx va precaricato nel handler.pl del Mason affinche'
  il sistema funzioni correttamente
- products.mpl utilizza ora direttamente ECP::Template. Per utilizzarlo anche
  in altre pagine:
	<%once>
	....
	use ECP::Template;
	my $htmpl	= new ECP::Template();
	....
	</%once>
	....
	<% $htmpl->html(\%args,$m->current_comp->path) %>
- Rimosso un warning presente nella libreria ECP::SQL::WhereBuilder
- File modificati:
	comp/html/barNav.mplcom, products.mpl, tmpl/it/products.htm,
	Template.pm, comp/html/template.mplcom, SQL/WhereBuilder.pm
- Ovviamente: 
	UPDATE sysConfig set value='1.21' where fieldName='version';


Ver. 1.20 (06/06/2001)
======================
- Si e' scoperto che le query eseguite dal MySql sono case-insensitive. Per
  questo, un utente registrato puo' loggarsi con qualsiasi combinazione di
  lettere maiuscole o minuscole. Il problema e' che lo userid risulta essere
  quello con cui si e' loggato e non quello registrato nel db e quindi,
  per esempio, l'associazione dell'ordine allo user avviene con lo userid
  inserito all'atto del login e non con quello presente nella tabella user.
  Cio' comporta che quando i componenti confrontano poi questi dati (in modo
  case-sensitive) puo' succedere che un ordine non venga riconosciuto come 
  appartenente all'utente. Per evitare questo side-effect e altri che possono
  accadere da questa incongruenza si decide di porre, accettare e salvare
  solo username in minuscolo. Per fare cio' verranno modificate le pagine di
  registrazione e quelle di login per salvare e recuperare solo username in
  lower-case. Modificato userAddExec.mpl per convertire nel primo step lo
  username in minuscolo. Modificato checkLogin.mplcom per convertire lo 
  username passato dal login in minuscolo. Eseguite inoltre le seguenti 
  query di sincronizzazione dati:
  	UPDATE user SET name=LCASE(name);
  	UPDATE userAnagr SET name=LCASE(name);
  	UPDATE userComm SET name=LCASE(name);
  	UPDATE userInfo SET name=LCASE(name);
  	UPDATE userProfile SET name=LCASE(name);
  	UPDATE userSer SET name=LCASE(name);
  	UPDATE userSession SET name=LCASE(name);
  	UPDATE cart SET name=LCASE(name);
  	UPDATE ordine SET user=LCASE(user);
  	UPDATE ordineNote SET user=LCASE(user);
- Modificata la filosofia dei form nel products.mpl che chiamano setCart.mpl. 
  Prima ogni productSection aveva un proprio form. Ora c'e' un unico form
  su tutta products.mpl e ogni productSection provede via javascript a 
  modificare i campi hidden del form per impostare il prodotto prescelto e la
  quantita' e lanciare poi setCart.mpl. Questo ha permesso molto semplicemente
  di propagare i parametri di query a setCart.mpl per gestire il pulsante di
  back. Inoltre setCart.mpl e' stata modificata per propagare i parametri
  di query a viewCart.mpl.
- Modificata products.mpl per propagare alla pagina products.htm la query di
  ricerca che ha generato la pagina stessa.
- Modificata viewCart.mpl e viewCart.htm per gestire l'eventuale ritorno
  alla pagina dei prodotti.
- (JUNGLE.IT) Sincronizzata la pagina personalizzata productSection.htm con 
  le modifiche effettuate in quella di base.
- File modificati:
	wizard/userAddExec.mpl,comp/checkLogin.mplcom,setCart.mpl
	comp/html/productSection.mplcom,tmpl/it/products.htm,
	tmpl/it/productSection.htm, products.mpl,viewCart.mpl
	tmpl/it/viewCart.htm	
- Ovviamente: 
	UPDATE sysConfig set value='1.20' where fieldName='version';


Ver. 1.19 (05/06/2001)
======================
- Modificato userAdd_Step3.htm per caricare dinamicamente la lista degli stati.
- Creato componente CountryLista.mplcom che ritorna la sezione <option></option>
  con la lista degli stati.
- Modificato userAdd.mpl per passare al wizard (step 3) la lista degli stati.
- Modificato userMod_tabForm.mplcom e userMod_tabForm2.htm per mostrare la
  lista degli stati e lo stato selezionato in modifica anagrafica 
  amministrazione.
- Modificato products.mpl in quanto se la ricerca che produce la pagina e'
  di tipo esteso (inner join) questa info non viene propagata alle eventuali
  pagine successive cosi che il tentativo di vedere queste pagine produce
  un errore nella query sql. Modificati products.mpl per propagare questa info
  e modificati barNav.mplcom per utilizzare questa informazione 
- Per sincronizzare i valori salvati in userAnagr.stato (it) con la nuova 
  versione (che prevede il valore italia = IT) eseguita la seguente query
  	UPDATE userAnagr set stato='IT' where stato='it'
- File modificati:
	tmpl/it/wizard/userAdd_Step3.htm,comp/html/CountryLista.mplcom,
	wizard/userAdd.mpl,comp/html/admin/userMod_tabForm.mplcom,
	tmpl/it/admin/userMod_tabForm2.htm, products.mpl,
	comp/html/barNav.mplcom
- Ovviamente: 
	UPDATE sysConfig set value='1.19' where fieldName='version';

Ver. 1.18 (30/05/2001)
======================
- (JUNGLE.IT) Aggiornate le spese di spedizione e i tipi di pagamento.
- Ovviamente: 
	UPDATE sysConfig set value='1.18' where fieldName='version';

Ver. 1.17 (21/05/2001)
======================
- Installata libreria CPAN Class::MethodMaker versione 1.02.
- Rimossa libreria ECP::MethodMaker.
- Modifiati ECP::SQL::SQLBuilder e ECP::SQL::WhereBuilder per utilizzare
  Class::MethodMaker. (*)
- Modificati searchEngine.mpl, searchEngine.pm, listEl.mplcom,products.mpl
  per adattarsi al nuovo modo di passare i parametri di Class::MethodMaker in
  presenza di array. (Bisogna sempre passare un arrayref).
- Creato script applyPatch.pl in admin per aggiornare automaticamente i siti.
- Ovviamente: 
	UPDATE sysConfig set value='1.17' where fieldName='version';

Ver. 1.16 (05/05/2001)
======================
- Modificata la funzione search di SearchEngine.pm che produceva un errore sul
  sito jungle.it che, avendo molti articoli, faceva esplodere la tabella 
  temporanea creata in memoria per gestire la join. Impostato il parametro
  SQL_BIG_TABLES=1 di modo che il mysql gestisca la tabella temporanea su file
  invece che in memoria.
- Aggiunto nuovo parametro priceWithVat nella tabella delle configurazioni 
  sysConfig che può valere 0 se si vuole che, a video, i prezzi vengano gestiti
  iva esclusa, o uno se si vuole invece che i prezzi a video vengano gestiti
  iva inclusa.
- Modificata la pagina configChange.htm e configChange.mpl per gestire il
  nuovo parametro dell'IVA
- Modificati productSection.mplcom, productRow.mplcom, viewCart.mpl per gestire
  la visualizzazione dei prezzi con o senza iva. Modificata viewCart.htm e 
  products.htm per visualizzaze la scritta dei prezzi iva esclusa o inclusi.
- Modificata buy.mpl per far mostrare SEMPRE i prezzi iva esclusa quando
  viene chiamato il componente productRow.mplcom.
- Modificato productAdd.mpl per propagare l'info dell'IVA e modificata 
  productAdd.htm per visualizzare tale info. ProductAddExecute.mpl ora salva il 
  prezzo togliendo l'iva se e' attivata la gestione dell'iva inclusa.
- Modificato productMod.mpl per propagare l'info dell'IVA e modificata 
  productMod.htm per visualizzare tale info. ProductModExec.mpl ora salva il 
  prezzo togliendo l'iva se e' attivata la gestione dell'iva inclusa.
- Ora anche productQuery.mpl mostra i prezzi iva inclusa o esclusa a seconda 
  di quale delle due modalita e' impostata per il sito.
- Modificati top.mpl e top.htm per propagare e mostrare il prezzo in funzione
  della gestione IVA.
- (JUNGLE.IT) Modificato importArticoliExec.mplcom per epurare il prezzo 
  dall'iva se e' applicata la gestione iva inclusa.
- (JUNGLE.IT) Creato script dividiPrezzoPerIva.pl per convertire i prezzi 
  attualmente presenti nella tabella protoddoComm su jungle.it da iva inclusa a 
  iva esclusa.
- (JUNGLE.IT) Sincronizzato top.mpl personalizzato jungle.it.
- Aggiunto il campo enabled nella tabella dei prodotti che servira' per 
  "cancellare" un prodotto tra quelli acquistabili, nel caso non sia possibile
  cancellarlo fisicamente in quanto e' gia' referenziato ad un ordine assunto.
  	ALTER TABLE prodotto ADD enabled TINYINT (1) DEFAULT '1' not null 
- Modificato products.mpl per mostare i soli prodotti che hanno il campo
  enabled uguale a 1.
- Modificata query productInfo_get in ECP::SQL per ritornare anche il valore 
  del campo enabled.
- Aggiunta la proprieta' enabled alla classe ECP::Product.
- Modificata productMod.mpl, productMod.htm per mostrare questo valore come
  un checkbox nella pagina html.
- Modificata la query prodottoTable_set in ECP::DBEngine e ECP::SQL per 
  permettere il salvataggio della proprieta' enabled del prodotto. 
  Modificata productModExec.mpl per salvare tale proprieta'.
- Aggiunto un checkbox in productMod.htm che indica se si vuole mostrare, nella
  lista degli articoli modificabili i soli articoli vendibili (enabled = 1) o
  anche quelli non vendibili.
- Aggiunta libreria ECP::SQL::WhereBuilder.
- Modificata ECP::MethodMaker per implementare proprieta' scalari e riferimenti
  ad ARRAY.
- Aggiunta libreria ECP::SQL::SQLBuilder.
- Scombussolata l'interfaccia di SearchEngine.pm. Ora non ha piu' proprieta' ma
  tre parametri di inizializzazione, lang,sqlBuilder e searchType.
- listEl.mplcom ora genera i link di ricerca utilizzando ECP::SQL::WhereBuilder.
- Modificato products.mpl per accettare a propagare il campo $qs quale 
  serializzazione di ECP::SQL::WhereBuilder e non di ECP::SearchEngine;
- Modificato il motore di ricerca searchEngine.mpl che ora utilizza 
  ECP::SQL::WhereBuilder invece che ECP::SearchEngine.
- Modificata productMod.mpl per ritornare a scelta i prodotti e le categorie 
  solo in vendita o anche quelle disabilitate. 
- Modificata quindi la query catList in ECP::DBEngine e EXP::SQL per ritornare 
  tutte le categorie associate ai soli prodotti in vendita (default) o tutte le 
  categorie relative a prodotti caricati nella tabella prodotti sia che essi 
  siano attivi o no. Questa modifica si ripercuote quindi sulla treeview del
  frame di sinistra che, utilizzando tale query, mostra la lista di tutti
  le categorie associate ad articoli attivi e solo attivi.
- Modificata productModExec.mpl e productMod.htm per propagare l'info se 
  mostrare o meno i prodotti non attivi oltre a quelli attivi.
- Aggiunto componente productsDel.mplcom che riceve un array 
  di productId e li cancella dal sistema. La cancellazione avviene tramite 
  questo algoritmo:
  	esiste un qualsiasi riferimento al prodotto nella tabella ordineRiga?
		se si => impostazione del prodotto a non attivo (enabled = 0)
		se no => cancellazione del prodotto.
	in ogni caso, cancello i riferimenti al prodotto in tutti i carrelli
	della spesa.
- Aggiunte le query countOrdineRigaForProductId,productsEnabled_set, 
  productsDel,productsCommDel,productsDescr,Delcarts_delete_by_productid in
  ECP::SQL e le funzioni productsEnabled_set e existsOrdineRigaForProductId,
  productsEnabled_set,productsDel,
  che fanno proprio quello che uno si aspetta che facciano ;)
- (JUNGLE.IT) Modificato la logica di cancellazione dei prodotti che ora
  utilizza il componente productsDel.mplcom in importArticoliExec.mplcom.
- Modificata la pagina importArticoli.htm per riattivare la modalita' di
  cancellazione.
- Modificato indice su prodotto:
	ALTER TABLE prodotto DROP INDEX nome;
	ALTER TABLE prodotto ADD INDEX(nome);
- Anche il componente productModExec.mpl utilizza il componente 
  productsMod.mplcom per eseguire la cancellazione degli articoli.


Ver. 1.15 (05/04/2001)
======================
- In userMod_notifyIfChanged.mpl si era dimenticato di includere la libreria
  HTML::Entities che veniva invece utilizzata dal codice del componente.
- Modificato userMod.mplcom per propagare alla pagina userMod.htm l'informazione
  se l'utente sia o meno amministratore di sistema.
- Rimossa la visualizzazione del pulsante "Rimuovi utente" nel file userMod.htm
  se l'utente non e' un amministratore di sistema.
- Modificato userModExec.mpl per implementare la funziona di rimozione 
  dell'utente.
- Aggiunta pagina userMod_Delete.mpl che chiede se si ha veramente intenzione
  di cancellare l'utente selezionato e relativa pagina html userMod_Delete.htm.
- Aggiunto componente userMod_DeleteExec.mpl che esegue fisicamente la 
  cancellazione dell'utente.
- Aggiunta la colonna enabled alla tabella user che indica se l'utente e' attivo
  o e' stato fisicamente cancellato. Si tiene solo per la contabilita'
	ALTER TABLE user ADD enabled TINYINT (1) DEFAULT '1' not null 
- Modificata la libreria ECP::User per ritornare la nuova proprieta' enabled.
  Tale proprieta' e' read e write e le modifiche possono essere rese effettive
  usando il metodo update.
- Modificata in ECP::DBEngine e ECP::SQL la funzione tableUser_get per ritornare
  anche il valore della colonna enabled;
- Modificata in ECP::SQL la query usersList per ritornare i soli utenti attivi
  nel sistema (enabled = 1)
- Rimossa la funzione existsUser in ECP::DBEngine. 
  Modificata la checkLogin.mplcom per utilizare la ECP::DBEngine::tableUser_get
  e controllare oltre che la congruenza della password inserita, anche lo stato
  di utente attivo. Modificata conseguentemente la libreria ECP::Login.
- N.B. La pagina di ritorno di banca Sella e' http(s)://sito/ecp/bsDecode.mpl
- Modificata pagina tmpl/admin/index.htm per aggiungere il link a pagine di
  amministrazione servizi di Banca Sella.
- Creata pagine admin/bancaSella/index.mpl e relativo template 
  tmpl/admin/bancaSella/index.htm
- Modificata admin/index.mpl per eliminare il cleanup.
- Aggiunta in ECP::DBEngine e ECP::DBEngine le funzioni bsRic_count e 
  bsRis_count che ritornano il numero di elementi nelle rispettive tabelle.
  La funzione bsRis_add e bsRic_add in ECP::SQL e la funzione in bsCodiciAdd
  in ECP::DBEngine per l'aggiunta di un nuovo codice di banca sella.
  Aggiunta la funzione tableSysConfig_get e tableSysConfig_set in DBEngine e
  SQL per la gestione della configurazione su db invece che su ECP::Config.
- Modificata /css/defStyle.mpl. Rimossi i font statici da i vari H*. Ora prende
  il font del body.
- Creata tabella sysConfig
	CREATE TABLE sysConfig (fieldName VARCHAR (20) not null , 
	value VARCHAR (255) not null , PRIMARY KEY (fieldName)) 
  e aggiunti i seguenti campi
  	insert into sysConfig (fieldName,value) VALUES 
  		('version','1.15'); 
	insert into sysConfig (fieldName,value) VALUES 
		('server_name',',ecp.it,ecp,ecp.micso.it,'); 
	insert into sysConfig (fieldName,value) VALUES 
		('azienda_nome','Ragione Sociale S.p.A.'); 
	insert into sysConfig (fieldName,value) VALUES 
		('root_dir','/www/ecp.it/'); 
	insert into sysConfig (fieldName,value) VALUES 
		('base_path','/ecp/'); 
	insert into sysConfig (fieldName,value) VALUES 
		('comp_path', '/ecp/comp/'); 
	insert into sysConfig (fieldName,value) VALUES 
		('default_profile', 'default'); 
	insert into sysConfig (fieldName,value) VALUES 
		('cookie_Name', 'ECP_SessionId'); 
	insert into sysConfig (fieldName,value) VALUES 
		('cookie_Domain', ''); 
	insert into sysConfig (fieldName,value) VALUES 
		('cookie_Auth_Name','ECP_AuthId'); 
	insert into sysConfig (fieldName,value) VALUES 
		('cookie_Auth_Domain','ecp'); 
	insert into sysConfig (fieldName,value) VALUES 
		('cookie_Session_Name','ECP_UserSession'); 
	insert into sysConfig (fieldName,value) VALUES 
		('cookie_userAddWiz','userAdd_wizard'); 
	insert into sysConfig (fieldName,value) VALUES 
		('mail_server','localhost'); 
	insert into sysConfig (fieldName,value) VALUES 
		('mail_from','ecp@ecp.it'); 
	insert into sysConfig (fieldName,value) VALUES 
		('language_default','it'); 
	insert into sysConfig (fieldName,value) VALUES 
		('template_basedir','/www/ecp.it/www/ecp/tmpl/'); 
	insert into sysConfig (fieldName,value) VALUES 
		('products_per_page','2'); 
	insert into sysConfig (fieldName,value) VALUES 
		('bancaSella_link','/ecp/bsSimul/bsSimul.mpl'); 
- Modificata ECP::Config. Ora la funzione cfg prende i dati dalla tabella 
  sysConfig. Gli unici dati presenti nel file ECP::Config sono i dati di accesso
  al database che vengono recuperati tramite la funzione globale cfgLocal.
- Modificata la ECP::DBEngine per prendere la configurazione di accesso al
  database tramite la funzione cfgLocal;
- Aggiungo i seguenti campi a sysConfig
	insert into sysConfig (fieldName,value) VALUES 
		('bancaSella_codEser','9000011');
	insert into sysConfig (fieldName,value) VALUES 
		('bancaSella_tid','09358458');
  e rimuovo la tabella bs in quanto i valori sono ora salvati in sysConfig.
	DROP TABLE bs;
- Installato moduli CPAN Storable e IPC::Shareable.
- Aggiunto tra i campi di configurazione locali di ECP::Config il campo ipc_id
  che indica l'identificativo univoco della zone di memoria IPC condivisa tra
  i vari processi http che contiene una variabile globale $gRefreshConfId che
  determina se e' necessario aggiornare le variabili di configurazione dal db
  o i parametri in cache sono ancora attuali.
- Aggiunta la gestione del refresh da db nel caso sia impostato il flag di 
  reload da DB settato sulla variabile $gRefreshConfId condivisa tra i processi
  tramite IPC. Introdotta la funzione globale di ECP::Config incConfId che 
  incrementa la quantita' condivisa impostando cosi' il reload del dati di
  configurazione dal db al successivo accesso ad essi da parte dei processi.
- Aggiunta la pagina admin/configChange.mpl e relativa pagina html 
  tmpl/it/admin/configChange.htm per modificare i parametri generali del sistema
  di commercio elettronico.
- Aggiunto MethodMaker.pm per la gestione delle proprieta' delle librerie di
  default
- Aggiunto skel.pm come libreria di skel per le altre librerie.
- Aggiunta libreria  FileCacher.pm  per avere in cache le pagine caricate
  dal template.
- Modificato in template.mplcom la modalita' di caricamento pagine per 
  utilizzare ECP::FileCacher.
- Remmato nella add-ins per jungle.it la possibilita' di fare un caricamento
  articoli con cancellazione a causa del problema del rimescolamento degli 
  indici nelle tabelle articoli.
- Implementato in defStyle.mpl la gestione dei colori di scrollbar. Per 
  impostarli e' ora necessario esplicitarli nella tabella sysLayoutProfiles.
- Modificata nella personalizzazione jungle.it il componente 
  importArticoliExec.mplcom.

Ver. 1.14 (22/03/2001)
======================
- Il componente ordineMod.mplcom non supporta ancora le modifiche eseguite 
  per specificare un tipo di spedizione. Modificato la richiesta a
  tipoSpedizione.mplcom per aggiungere l'informazione del tipo di pagamento in
  ordineMod.mplcom
- Modificata la chiamata alla classe ECP::Spedizione nella funzione 
  ECP::Ordine::spedizioneSpeseUpdate che non implementava la propagazione 
  dell'informazione del tipo di pagamento a ECP::Spedizione.

Ver. 1.13 (20/03/2001)
======================
- Aggiunta cartella controlPanel, aggiunto modulo controlPanel.mpl e htm e 
  fatto puntare il link di impostazioni in left.htm su questo nuovo file.
  Spostato inoltre userSessionExec.mpl e htm su questa nuova cartella. 
  Modificato userSessionExec.mpl per rispecchiare lo spostamento della pagina
  html relativa.
- Aggiunto /ecp/controlPanel/userMod.mpl che chiama il componente 
  /ecp/admin/userMod.mpl
- Modificato /ecp/admin/userMod.mpl in quanto eseguiva un tentativo di 
  setSubUser anche se lo user non aveva gid = 1
- Modificato /etc/comp/html/userLists.mplcom che non caricava la lista nel caso
  l'utente non e' un amministratore.
- Modificato checkLogin.mplcom che ora prende il nome del url del redirect
  dalla variabile di ambiente SCRIPT_NAME invece che dall'albero dei 
  componenti chiamati.
- Modificata la pagina login.htm per chiamare come action del form il componente
  /ecp/login.mpl
- Modificato userMod_tabForm.mplcom per passare alle pagine html 
  userMod_tabForm*.htm l'informazione se l'utente loggato e' un amministratore.
  Per recuperare tale informazione viene passato a userMod_tabForm.mplcom 
  l'oggetto ECP::User. Modificato userMod.mplcom per passare tale oggetto.
  Modificate altresi le pagine userMod_tabForm0.htm e userMod_tabForm1.htm 
  per mostrare in readOnly il gid e lo sconto nel caso l'utente non sia un 
  amministratore del sistema.
- Aggiunta quindi la pagina di impostazione dei dati dell'utente modificabile
  dal singolo utente.
- Comportamento strano...il tag 
  <link rel ="StyleSheet" href="/css/defStyle.mpl"> non veniva aggiornato in
  fase di modifica profilo e necessitava un reload della pagina. E' bastato
  spostare il tag quale ultimo tag prima del </head> per far funzionare il
  tutto. Per ora spostato solo nelle pagine left.htm,userSession.htm etop.htm
  in quanto le altre pagine vengono comunque chiamate successivamente e quindi 
  aggiornate.
- Aggiunto il profilo "window" e impostato il profilo "beos". Rimosso il
  profilo "emi".

Ver. 1.12 (16/03/2001)
======================
- Nel modulo di registrazione, a causa delle modifiche introdotte nella versione
  precedente, va in errore nel tentativo di recuperare il valore del tipo di
  spedizione e pagamento prescelti in quanto tale valore non e' ancora 
  valorizzato nell'istanza di ECP::Wizard. Modificata ECP::Wizard::item per 
  ritornare un value undef ma non un item undef nel caso l'item non esista.
  Modificato quindi anche ECP::WizardValue per accettare un'inizializzazione
  con tutti valori undef.
- A causa di tale modifica, modificata l'inizializzazione del parametro 
  mailOnBuy nell' userAddExec.mpl che viene valorizzato se il value e' undef 
  e non se l'elemeno e' undef.

Ver. 1.11 (15/03/2001)
======================
- Rimosso un bug nella procedura di modifica profili utente introdotto nella
  versione precedente avendo aggiunto il campo tipoPagamento come campo di
  ricerca per ottenere la lista dei tipi di spedizione. Modificate a tal fine
  le pagine userMod.htm e userMod_tabForm1.htm. Modificate altresi i componenti
  userMod_tabForm.mplcom e userModExec.mpl.
- Rimosso un bug nella procedura di registrazione nuovo utente introdotto nella
  versione precedente avendo aggiunto il campo tipoPagamento come campo di
  ricerca per ottenere la lista dei tipi di spedizione. Modificate a tal fine
  la pagina userAdd_Step4.htm e i componenti userAdd.mpl e userAddExec.mpl.

Ver. 1.10 (26/02/2001)
======================
- Creato personalizzazioni 
	+ personalizzazioni/jungle.it/www/ecp/top.mpl 
	+ personalizzazioni/jungle.it/www/ecp/tmpl/it/productSection.htm 
  per il sito jungle.it.
- Migliorate ulteriormente le performance di importazione articoli nell'add-in
  per il sito jungle.it tramite la modifica del componente 
  importArticoliExec.mplcom e la classe ECP::Import::Table.
- Aggiunta la variabile root_dir nel file ECP::Config che indica la root path
  del dominio su cui si sta lavorando. (Utile per ricavare, per esempio la
  path del percorso di upload del file FTP nell'add-in di jungle.it).
  Modificata la variabile template_basedir che ora utilizza il valore della
  variabile root_dir.
- Aggiunta in speDiSpe la colonna tipoPag per incrociare costo di spedizione
  tra il tipo di corriere e l'eventuale tipo di pagamento
  	ALTER TABLE speDiSpe ADD tipoPag VARCHAR (15) 
- Aggiunta in ECP::SQL le query tableSpeDiSpeNoLocPiuTipoPag_get,
  tableSpeDiSpePiuTipoPag_get,existAndLocalitaAndTipopag e le analoghe
  in ECP::DBEngine.
- Modificata ECP::Spedizione per incrociare il tipo di corriere con l'eventuale
  tipo di pagamento. Modificato buy.mpl e setOrdine.mpl per rispecchiare le 
  modifiche in ECP::Spedizione.
- Visto che ora, la scelta del tipo di spedizione modifica le possibilita' di
  scelta del tipo di pagamento modificata tipoSpedizione.mplcom e la sua 
  chiamata in buy.mpl per mostrare tutti i tipi di spedizione che matchano 
  il tipo di pagamento o per cui il tipo di pagamento non e' impostato. 
  Modificata a tal fine la query tableTipoSped_get. Modificata la pagina 
  buy.htm per rieseguire se stessa nel caso di cambiamento nella scelta del 
  tipo di pagamento.

Ver. 1.09 (23/02/2001)
======================
- Ingegnerizzato ex-novo il modulo di ricerca. Modificato ECP::SearchEngine che
  ora contiene tutta la logica di costruzione della query sql di ricerca in base
  ai paramametri di ricerca selezionati e alla pagina richiesta. 
  Ritorna tramite il metodo execute  un'array con gli id di tutti i prodotti 
  che verificano la condizione richesta.
  E' serializabile via Data::Dumper per essere propagato tra le pagine HTML 
  tramite i metodi serialize e serializeHtml ed e' creabile tramite il metodo
  globale deserialize.
  Rimossa da ECP::Products la logica di selezione della singola pagina prodotti
  in quanto questa logica e' ora spostata su ECP::SearchEngine. ECP::Products
  quindi non contiene piu' la logica di ricerca ma ritorna i prodotti richiesti
  in base ad un array di id passati all'istanza, array che puo' provenire dal
  metodo execute di ECP::SearchEngine.
  Rimossa la proprieta' totalProductCount da ECP::Products in quanto ora 
  ECP::Products non sa niente della query, del numero di pagina e di 
  quant'altro.
  La chiamata a ECP::SearchEngine::execute e': 
  	ECP::SearchEngine::execute(ECP::DBEngine);
  La chiamata a ECP::Products::fill e': 
  	ECP::Products::fill(ECP::DBEngine,@ids);
- Modificata products.mpl per rispecchiare le modifiche a ECP::SearchEngine e
  ECP::Products. Il parametro $qs deve ora contenere una serializzazione di 
  ECP::SearchEngine.
- Modificata la listEl.mplcom per rispecchiare le modifiche fatte a products.mpl
  riguardo il parametro $qs.
- Modificata la SearchEngine.mplcom per rispecchiare le modifiche fatte a 
  products.mpl riguardo il parametro $qs.
- Modificato top.mpl aggiungendo il nome articolo come campo di ricerca.
- Rimosso un problema nell'importazione dei file sulla procedura personalizzata
  di jungle.it che non riconosceva bene i record di importazione a causa dei
  caratteri di carriage-return e line-feed dei file dos.
- Rimossa apertura db da importArticoliExec.mpl e spostata in 
  ECP::Table;
- Rimossi i campi indicizzati cat0,cat1,cat2,cat3,cat4 su tabella prodotto
  per velocizzare l'import di una grande mole di dati. Il campo nome modificato
  da index a unique.
  
Ver. 1.08 (21/02/2001)
======================
- Modificato ftisns4.js per centrare le icone.
- Per avere la lista degli articoli ordinata per nome dell'articolo si e'
  impostato l'ordinamento di ricerca sul nome dell'articolo. Inoltre per 
  velocizzare la cosa, indicizzato il campo prodotto.nome
  	ALTER TABLE prodotto ADD INDEX(nome) 
- Aggiunto script logout.mpl per fare eseguire il logout dal sistema. Modificati
  left.mpl e left.htm per implementare il pulsante di logout ed il refresh dei
  frame.
- Impostato ad OFF l'autocomplete sul form di login per eliminare la memoria
  di username e password.
- Modificata la tabella cart per implementare il recupero del carrello della 
  spesa caricato in differenti sessioni sugli utenti registrati.
  	ALTER TABLE cart ADD name VARCHAR (15) not null 
	ALTER TABLE cart ADD INDEX (name) 
  Modificata altresi la funzione init del modulo ECP::Cart per recuperare i dati
  di vecchi carrelli della spesa e inglobarli nel nuovo carrello della spesa.
  Aggiunte in ECP::DBEngine e ECP::SQL due funzioni, 
  la cartElementsNotInCurrentSession per il recupero dei vecchi carrelli e
  la assignCartToUser per assegnare il carrello corrente all'utente.
- Ridotte le icone delle cartelle della treeview del profilo "default" in modo
  da mangiare meno spazio verticale.

Ver. 1.07 (16/02/2001)
======================
- Corretti due link al file 1x1.gif nel file userSessionExec.htm 
  (da ../../images/1x1.gif a images/1x1.gif).
- Rimosso dal file left.htm un riferimento ad un file gif nel background del
  tag <BODY> che tra parentesi neanche esisteva. Analoga cosa con un file
  Nuvole.gif presente nel file wizard/userAdd.htm
- Risolto un bug degli apici nelle chiamate SQL generato da listEl.mplcom che
  creava una query string errata se il nome della categoria conteneva apici.
  Risolto aggiungendo il doppio apice alla query string generata da 
  listEl.mplcom.
- Aggiunto il componente comp/html/barNav.mplcom per separare il layout della
  barra di navigazione della pagine dei prodotti dalla pagina dei prodotti.
  Inoltre per gestire il caso in cui ci siano un numero considerevole di 
  prodotti e quindi molte pagine, si e' configurata la barra di navigazione
  per mostrare solo 10 pagine inserendo dei pulsanti di scorrimento avanti
  e indietro di una pagina e pulsanti per andare direttamente alla prima e 
  all'ultima pagina.
  Modificata la pagina products.htm per evitare un problema di disallineamento
  causato dalla barra di navigazione (tag <FORM>).
  
Ver. 1.06 (12/02/2001)
======================
- Se la lista dei prodotti e' molto lunga, benche' vengano visualizzati solo
  m prodotti sugli n disponibili con m molto minore di n il tempo di attesa 
  per la visualizzazione dei prodotti e' elevato in quanto la pagina carica
  comunque tutti gli n prodotti e poi ne visualizza solo m.
  Per risolvere cio' si e' modificata la classe Products.pm che ora puo' 
  ricevere altri due paramentri: pageNumber e productPerPage con l'ovvio
  significato. Inoltre, visto che ora la proprieta' count ritorna, nel caso
  productPerPage non nullo, un valore uguale a productPerPage, viene aggiunta
  una proprieta' totalProductCount che ritorna il numero totale di articoli che
  verificano la condizione di ricerca. 
  In definitiva:
  	se productPerPage is defined 	=> count 	== productPerPage
  	se productPerPage is not defined=> count	== totalProductCount
  per compatibilita' con le versioni precedenti.
  Modificato quindi: Products.pm,products.mpl,SearchEngine.pm
  In DBEngine: aggiunta funzione productsCount
- Era vengono gestite due lettere per definire ogni ramo della lista di 
  categorie in modo da eliminare un problema nella visualizzazione del
  javascript che gestisce la lista delle categorie nel frame sinistro quando
  il numero di categorie in un livello della struttura superava il numero di 
  lettere dell'alfabeto.

Ver. 1.05 (08/02/2001)
======================
- Implementata la gestione delle cancellazioni nella libreria ECP::Table. 
  Passando ora un file di importazione e impostando il flag di cancellazione
  il sistema aggiornera' tutti i campi presenti nel file importato cancellando
  tutti quelli presenti nel database ma non nel file di importazione. Per
  evitare cancellazioni totali non volute nel caso il file passato non sia 
  conforme alle specifiche di formattazione NON e' possibile cancellare tutti
  i record del database passando un file di importazione vuoto.
  Si dovra passare almeno un record che rimarra', dopo la procedura di
  importazione, l'unico record del database e cancellare poi tale record a 
  mano tramite la relativa gestione nella sezione amministrativa del sito.
- Modificato il file js che gestisce le cartelle dei prodotti per eliminare
  un eccessivo spazio presente tra le cartelle nella versione precedente.

Ver. 1.04 (02/02/2001)
======================
- Aggiunta la gestione di UserSession in:
  admin/index.mpl,admin/productAdd.mpl,admin/productMod.mpl,
  admin/usersGestione.mpl,comp/html/admin/userMod.mplcom,
  comp/html/ordineMod.mplcom.
- Creata pagina addins.mpl,addins.htm,addins_riga.htm e agginto metodo
  getSysAddins_get in ECP::DBEngine e ECP::SQL per gestire la pagina con 
  l'elenco delle verticalizzazioni relative al singolo sito.
- Creata tabella sysAddins per gestire le verticalizzazioni relative ad un 
  singolo sito. Questa dabella verra' letta dalla pagina admin/addins.mpl
  collegata alla pagina di amministrazione tramite il link della nota sotto.
  	CREATE TABLE sysAddins (link VARCHAR (255) not null , 
  	descr VARCHAR (255) not null , PRIMARY KEY (link)) 
- Aggiunta nella home page di amministrazione un link alla pagina degli 
  eventuali "Moduli di gestione personalizzati"
- Aggiunta la pagina admin/extras/jungle/importArticoli.mpl e
  admin/extras/jungle/importArticoliExec.mpl per gestire le importazioni 
  articoli nel sito jungle.it 
- Creato componente comp/extras/jungle/importArticoliExec.mplcom per gestire
  l'inserimento nel database degli articoli da un file di esportazione in ascii
  a larghezza fissa.
- Rimosso un buco causato dal fatto che userAdd.mpl passava a wizardStep.mplcom 
  un riferimento a un handle di database mentre all'interno di del componente
  e' necessario avere anche un riferimento ad un istanza di ECP::DBEngine.
  Modificato il passaggio della struttura in modo da passare l'intero 
  riferimento al DBEngine invece che al solo handle di database.

Ver. 1.03 (18/01/2001)
======================
- IMPORTANTE. Visto che esiste un bug nell'implementazione del mason che 
  confonde librerie installate in due punti differendi di spazio disco che 
  hanno lo stesso nome (due siti con ECP package su due dir differenti con 
  @INC differenti) si decide di installare il packages cambiando nome al 
  packages e chiamandolo come il dominio senza estensione. Per fare cio' e' 
  stata creata uno script su admin "renamePackage.pl" che modifica tutti gli 
  script mpl,mplcom,pm per adattarli alla nuova denominazione di packages.
  Si utilizza cosi:
  	renamePackage.pl percorso_di_base_del_dominio dominio_senza_estenzione
  	renamePackage.pl /home/ecp ecp  (non fa nessuna modifica cosi:)
  Il package di sviluppo rimane comunque ECP e a tale nome si fara' sempre 
  riferimento nella documentazione del sistema.
- Su altri file e' stata implementata la gestione dei profili tipo login,
  viewCart,products,center,ordini
- Nei moduli productAddExecute.mpl e productModExec.mpl non funzionava piu'
  l'inserimento e l'aggiornamento delle immagini dei prodotti. Probabilmente
  cio' e' stato causato dall'aggiornamento del Mason alla 0.85. 
  Modificata la routine di upload file collegandosi direttamente all'oggetto
  Apache::Upload.

Ver. 1.02 (16/01/2001)
======================
- Aggiunta pagina di pannello di controllo del sito per gli utenti in
  modo che possano personalizzarsi il sito in base alla lingua, ai
  layout grafici disponibili, etc.
- Aggiunta la gestione di UserSession in left.mpl,top.mpl,center.mpl
- Aggiunto a checkLogin.mplcom all'atto del loginOk l'invio del cookie 
  ECP_UserSession personalizzato per l'utente utilizzando il componente
  userSession.mplcom.
- Implementato un nuovo listEl.mplcom e una nuova treeview.
- Eliminati tutti i <%CLEANUP>$user->terminate if (defined $user);</%CLEANUP>
  aggiunti nella ver 1.01 per eliminare le sessioni Mysql che restavano 
  aperte grazie alla modifica di ECP::User di cui sotto.
- Modificato checkLogin.mplcom per aderire alla modifica di ECP::DBEngine sotto.
- Per eliminare (spero tutte) le connessioni aperte da mysql causate da
  ECP::User che manteneva all'interno un riferimento a ECP::DBEngine del 
  parent e che impediva la distruzione dell'oggetto stesso ora la connessione
  passata all'atto della inizializzazione dell'istanza di ECP::DBEngine viene
  distrutta immediatamente. Ove si debba utilizzare le funzioni update,
  setSubUser, serialize e deserialize e' necessario eseguire prima di tale 
  chiamata un connect($db) e poi un disconnect per ricollegate il db.
- Aggiunto ECP::Config::cfgExSet per recuperare configurazioni dalla tabella
  sysLayoutProfiles
- aggiunto userSession.mplcom e classe ECP::UserSession per gestire i 
  profili utente. Creata a tal fine la tabella userSession per salvare i 
  profili degli utenti registrati e la tabella sysLayoutProfiles che contiene
  le info dei profili presenti sul sistema.
	CREATE TABLE sysLayoutProfiles (
		profileName varchar(50) NOT NULL,
		fieldName varchar(50) NOT NULL,
		value varchar(255) NOT NULL,
		PRIMARY KEY (profileName, fieldName)
	);	
	CREATE TABLE userSession (
		name varchar(50) NOT NULL,
		fieldName varchar(50) NOT NULL,
		value varchar(255) NOT NULL,
		PRIMARY KEY (name, fieldName)
	);
- Eliminato un buco negli elenchi di ricerca categoria presenti in
  productQuery.htm e productMod.htm che non mostravano le liste delle 
  categorie di livello superiore al terzo (base 0).
- Eliminato un buco in productQuery.mpl e in productMod.mpl che non impostava
  il campo "Ininfluente" come selected nelle select di ricerca se, per quella
  categoria, non esisteva alcun elemento inserito.

Ver. 1.01 (12/01/2001)
======================
- Rimosso un buco nella procedura di registrazione nuovo utente che non salvava
  il nome e il cognome dell'utente nel caso di tipologia "privata".
- Alla funzione minLen di checkForm.js e' ora possibile passare un terzo 
  parametro opzionale per indicare la descrizione del campo. Utilizzata tale
  funziona per la maschera di ricerca in top.htm.
- Eliminata tabella superflua rigaOrdine.
	DROP TABLE rigaOrdine 
- Aggiunti tre layout grafici (parzialmente): "default","beos","emi"
- Le icone della treeview nel frame sinistro sono ora impostate dinamicamente
  in base al layout grafico selezionato.
- Aggiunto il metodo globale cfgEx alla libreria ECP::Config. Tale metodo si
  aspetta, come parametri:
  	1) => un istanza di ECP::DBEngine
  	2) => un nome di profilo grafico
  	3) => il nome del campo da recuperare
  e ritorna, prelevandolo (solo alla prima chiamata) dal database il valore
  testuale relativo all'elemento grafico in questione.
  Si sceglie, come logica di posizionamento degli elementi grafici, una
  struttura del tipo profiles/nomeDelProfilo/{img,css,...}/nomeFile.ext 
  partendo ovviamente dalla basedir.
- Creata la tabella sysLayoutProfiles atta a contenere i profili grafici del 
  sito e le impostazioni dei colori, font, immagini, etc...
	CREATE TABLE sysLayoutProfiles (profileName VARCHAR (50) not null , 
	fieldName VARCHAR (50) not null , value VARCHAR (255) not null , 
	PRIMARY KEY (profileName, fieldName)) 
- Aggiunta la variabile azienda_nome su ECP::Config. Tale valore viene poi 
  inserito nel titolo della home page del sito.
- Rimossa la variabile Schema_user su ECP::Config.

Ver. 1.00 (10/01/2001)
======================	
- Aggiunti su tutti le pagine con autentica la chiamata a checkLogin passando 
  un'istanza di ECP::DBEngine. 
- Rimossa la proprieta serialId dalla classe ECP::User;
- Campo userSer.checked trasformato in un tinyInt(1).
	ALTER TABLE userSer CHANGE checked checked TINYINT (1) DEFAULT '0' not null; 
- Aggiunto indice unique al campo uuid della tabella userSer e impostati 
  i campi name,gid,remoteIp,lastAccessTime,uuid,checked come NOTNULL.
  	ALTER TABLE userSer CHANGE checked checked INT (11) not null;
  	ALTER TABLE userSer CHANGE lastAccessTime lastAccessTime INT (11) not null; 
  	ALTER TABLE userSer CHANGE remoteIp remoteIp VARCHAR (255) not null;  
	ALTER TABLE userSer CHANGE gid gid VARCHAR (255) not null;
	ALTER TABLE userSer CHANGE name name VARCHAR (255) not null;
	ALTER TABLE userSer CHANGE uuid uuid VARCHAR (255) not null;
- La chiave primaria di userSer e' ora uuid.
	ALTER TABLE userSer DROP PRIMARY KEY, ADD PRIMARY KEY(uuid);
- Rimosso il campo id e il campo classId dalla tabella userSer (*).
	ALTER TABLE userSer DROP classId;  
	ALTER TABLE userSer DROP classId;
- Rimossa la tabella OpalClass;
- ECP non ha piu' bisogno del modulo TANGRAM e SET::OBJECT.
- Rimosso il modulo CPAN Tangram dal modulo ECP::User che utilizza ora per
  la serializzazione di un accesso diretto al DB. 
- ECP::User ora deve ricevere un'istanza valida di ECP::DBEngine.
- ECP::Login ora deve ricevere un'istanza valida di ECP::DBEngine.
- Installato il pacchetto CPAN libapreq ver 0.31 che contiene il
  modulo Apache::Request.
- Aggiunto $VAR1 nei punti in cui viene fatto l'eval di un Data::Dumper::Dump
  a causa dello use strict sotto cui gira Mason.
- Aggiornato Set-Object alla versione 1.02.
- Aggiornato Tangram alla versione 1.18.
- Aggiornato HTML::Mason alla versione 0.895.
- Installato libapreq (CPAN library che contiene Apache::Request).
- Aggiunto use HTML::Mason::ApacheHandler(args_method=>'mod_perl') per 
  utilizzare l'ApacheHandler (da questa versione di Mason va specificato
  esplicitamente) e impostato l'utilizzao dell'Apache::Request per 
  aumentare l'efficienza e la velocita' rispetto al CGI.
- Modificato userMod.html,userMod_tabForm2.html,userModExec.mpl per eliminare 
  un buco che non permetteva il corretto inserimento di nuove anagrafiche
  sotto Netscape.
- Nella gestione profili utente ora non e' piu' possibile cancellare
  l'anagrafica fiscale,non si puo' aggiungere un nuovo codice anagrafico di soli
  spazi.
- Nella routine tableUserAnagr_add di DBEngine messo un "eval" nell'esecuzione
  della query di modo che non dia errore se l'anagrafica che si cerca di 
  aggiungere esiste gia'.
  
Ver. 0.11 (21/12/2000)
======================
- Aggiornato HTML::Mason alla versione 0.89
- Installata la libreria CPAN XML::Parser e Data::DumpXml
- Se viene eseguita una modifica dello stato dell'ordine da parte dell'utente
  gli amministratori di sistema ricevono una notifica di modifica ordine.
  Vicecersa se la modifica viene fatta da uno degli amministratori di sistema
  allora e' l'utente a ricevere il mail di notifica.
- All'atto dell'acquisto viene mandato un mail di ordine di acquisto oltre che
  all'utente se ne fa richiesta, anche a tutti gli amministratori del sito.
- Modificato lo script mailAcquisto.mpl per implementare la nuova interfaccia
  di ECP::Sendmail::Sendmail. rimosso anche un buco che mostrava un carattere
  ">" all'inizio del mail di ordine Accettato
- Modificata l'interfaccia di ECP::Sendmail::Sendmail per gestire all'interno
  i mail multiparte (*)
- Aggiunto modulo ECP::Sendmail::MultiPartItem per gestire i mail multiparte
- Il modulo ECP::Sendmail e' stato rinominato come ECP::Sendmail::Sendmail.
- Nel modulo di generazione lista listEl.mplcom rimosso il parametro di
  width e height nell'imagine tri??.gif in modo che l'immagine venga 
  correttamente visualizzata anche se si cambia gif e se ne inserisce uno
  di differente dimensione.
- Nel modulo di generazione lista listEl.mplcom rimosso rimosso un parametro
  che indentava l'intera lista di un valore negativo per attaccare tale lista 
  al bordo sinistro del browser. Inserito tale valore nella pagina HTML 
  left.htm di modo che, in fase di personalizzazione, si può spostare questa 
  lista modificando il solo HTML.
- Modificato modulo userAddExec.mpl per rimuovere un buco che non faceva
  funzionare il pulsante "indietro" del wizard di creazione nuovo utente. 
  Inoltre e' stato rimosso un buco nell wizard di tipo aziendale che perdeva
  le informazioni del nome e del cognome del referente aziendale nel caso si 
  tornava indietro allo step di inserimento dati anagrafici dell'azienda.
- Modificato il modulo di login login.mpl. Ora la pagina di default che appare
  non appena loggati, se non viene specificato niente nel paramentro url
  passato nel link e' la prima pagina dei prodotti.
- Modificato ordineAccettato.mpl e ordineAccettato.htm per gestire i nuovi 
  campi.
- Modificato bsEncode.mplcom per inviare a banca Sella il costo reale da pagare
  che e' uguale al prezzo totale comprensivo di iva+ spese di spedizione quindi
  a pagare = $ordine->totalPriceIva+$ordine->spedizioneSpese
- Per tener traccia delle informazioni su spedizione, costi di spedizione
  e peso del pacco, aggiunto nella tabella ordine il campo spedizioneSpese
  (default = -1 => non calcolabili/non calcolate) e spedizioneLocalita. 
  Aggiunto in ordineRiga il campo peso indicante il peso unitario del prodotto
  (default = -1 => non gestito).
     ALTER TABLE ordine ADD spedizioneLocalita VARCHAR(255) NULL;
     ALTER TABLE ordine ADD spedizioneSpese FLOAT(14,4)  
     NOT NULL DEFAULT -1;
     ALTER TABLE ordineRiga ADD peso FLOAT(14,4) NOT NULL DEFAULT -1;
- Aggiunto campo peso in CartRiga.pm e OrdineRiga.pm e il campo pesoTotale 
  in Cart.pm e Ordine.pm
- Modificata la pagina buy.htm e il componente buy.mpl per visualizzare e 
  propagare le informazioni del tipo e della localita' di spedizione.
- Modificate le pagine productAdd.htm,productMod.htm,productQuery.htm e i
  moduli productMod.mpl,productModExec.mpl,productAddExec.mpl,productQuery.mpl
  oltre alle query in SQL.pm e DBEngine.pm per gestire il peso dell'articolo.
- Aggiunta una funzione decimalNumber(number,decimalDigits) in ECP::Utils che 
  converte dei numeri in formato decimane con decimalDigits dopo la virgola.
- Aggiunto nella tabella prodottoComm il campo peso ad indicare il peso 
  unitario in grammi del prodotto. Se il peso non viene gestito per questo 
  prodotto allora si inserisce il valore, che e' poi quello di default, di 
  0 (zero).
     ALTER TABLE prodottoComm ADD peso FLOAT(14,4)  NOT NULL DEFAULT -1;
- Create le librerie Spedizione.pm,LocalitaInfo.pm e FiltroDisugualianza.pm
  per estrarre il costo di una spedizione per un corriere in base alla 
  localita'.
- Creata tabella speDistLoc che gestiste per una tipologia di localita' (reale,
  generale o fittizia, la sua distanza.
     CREATE TABLE speDistLoc ( cod varchar(15) NOT NULL, corriere varchar(15),
     descr varchar(255) NOT NULL,km float(7,2) DEFAULT '0.00' NOT NULL,
     PRIMARY KEY (cod));
- Creata tabella speDiSpe che contiene per ogni corriere i costi di spedizione
  in base a distanza, peso del pacco e/o localita' di spedizione.
     CREATE TABLE speDiSpe ( corriere varchar(15) NOT NULL, daKm float(7,2) 
     DEFAULT '-1.00',aKm float(7,2) DEFAULT '-1.00',daKg float(7,2) 
     DEFAULT '-1.00', aKg float(7,2) DEFAULT '-1.00',localita varchar(255),
     costo float(14,4) DEFAULT '0.0000' NOT NULL,KEY corriere (corriere));
- Se un ordine contiene un articolo che e' stato ,successivamente all'ordine, 
  cancellato, allora la richiesta di info su quell'articolo produce un errore
  in quanto il caricamento dell'istanza OrdineRiga prevede l'inizializzazione
  di TUTTI i parametri dell'istanza compresa la descrizione dell'articolo 
  acquistato. Tale informazione pero', non essendo piu' disponibile, fa 
  fallire l'inizializzazione dell'istanza. Per ora risolta la cosa rendendo
  il campo di inizializzazione nomeprod di OrdineRiga.pm non obbligatorio e,
  quale segnaposto per ricordarci che questa e' solo una pezza, inseriamo
  in tal caso il valore "No more available". 
  La soluzione sara' forse non cancellare piu' fisicamente l'articolo ma gestire
  un flag di prodotto non piu' gestito. Questo comportera la modifica di alcune
  procedure soprattutto nella parte amministrativa di gestione articoli.
Ver. 0.10 (11/08/2000)
======================
- Aggiunto campo "prenotabile" nella tabella prodottoComm per identificare se
  il prodotto gestisce le prenotazioni e dunque il valore di disponibilita'
  puo' raggiungere valori negativi o se il prodotto non e' prenotabile e quindi
  se non c'e' disponibilita' del prodotto esso non deve essere ordinabile. (*)
     ALTER TABLE prodottoComm ADD prenotabile TINYINT(1) UNSIGNED NOT NULL
     DEFAULT 1;
- Per gestire visivamente il fatto che se un oggetto non e' prenotabile non
  posso acquistarlo, modificati i seguenti file SQL.pm,Product.pm,
  productSection.mplcom,productSection.htm,productAdd.htm,ProductMod.htm,
  productAdd.htm,productAddExec.mpl.
- Se il prodotto gestisce il magazzino e non e' prenotabile, se l'utente 
  tenta di acquistare una numero di pezzi superiore a quelli presenti nel
  magazzino il programma non lo fa andare avanti avvertendolo del numero
  massimo di pezzi ordinabili per quel prodotto.
- Modificata la dimensione del campo UserProfile.cod per avere delle chiavi
  di registry fino a 30 caratteri:
	 ALTER TABLE userProfile MODIFY cod VARCHAR(30) NOT NULL;
- Al salvataggio di un nuovo prodotto il sistema salva nel registry le 
  preferenze riguardo la gestione del magazzino e la prenotabilita' del 
  prodotto di modo che nei successivi salvataggi di nuovi prodotti l'utente
  ritrova gia' preimpostati i checkbox della gestione del magazzino e della
  prenotabilita' del prodotto. Modificate a tal scopo le procedure 
  productAddExecute.mpl, productAdd.mpl e productAdd.htm.
- Installata la libreria CPAN Mail::Sendmail
- Aggiunta libreria ECP::Sendmail per invio mail ad utente e, a tale scopo, 
  aggiunte due chiavi (mail_server e mail_from) nella libreria ECP::Config.pm
  per impostare il server SMTP di uscita dei mail e l'indirizzo e-mail con cui
  inviare i mail.
- Cambiata il flusso di esecuzione della creazione di un nuovo ordine. Prima
  la pagina setOrdine.mpl redirigeva su ordineAccettato.mpl se il pagamento
  non era via carta di credito o su bsEncode.mpl se era tramite Banca Sella.
  Cio' aveva introdotto un buco dovuto al fatto che l'impostazione dell'ordine
  era fatta in due punti differenti che dovevano fare le stesse cose ma, per
  esempio, via carta di credito il magazzino veniva scaricato dei prodotti 
  acquistati mentre pagando con altra tipologia cio' non accadeva.
  Ora sia che si passi via carta di credito che no si giunge alla fine al 
  componente setOrdineExec.mpl (o direttamente chiamato da setOrdine.mpl o
  da bsDecode.mpl dopo essere ritornati da banca sella). Tale componente si
  preoccupa di impostare l'ordine, mandare eventuali mail e redirigere infine
  sul ordineAccettato.mpl per la visualizzazione dell'ordine.
- Aggiunto un flag all'atto del pagamento del materiale presente nel carrello
  della spesa per ottenere un mail di confrma ordine. Se tale flag e' impostato
  all'atto dell'accettazione dell'ordine viene inviato all'utente al suo 
  indirizzo di posta elettronica la pagine ordineAccettato.htm con i dati
  dell'ordine.
- Nella tabella ordine e' stato aggiunto un campo "emailNotify" che, se 
  impostato, indica che ad una modifica amministrativa dello stato dell'ordine
  va inviato un mail all'utente per informarlo della notizia.
  	 ALTER TABLE ordine ADD emailNotify TINYINT(1) UNSIGNED NOT NULL
  	 DEFAULT 0;
- Modificato il componente setOrdine.mpl per impostare il flag di cui sopra se
  richiesto dall'utente e modificata la libreria ECP::Ordine per leggere tale
  flag.
- Modificato il componente ordineNotaAdd.mpl per inviare, se richiesto, un
  mail all'utente proprietario dell'ordine nel caso di aggiunta di una nota
  amministrativa. Il mail non viene inviato se chi ha generato la modifica
  e' l'utente stesso.
- Installata la libreria CPAN MIME::Base64 

Ver. 0.9  (08/08/2000)
======================
- Aggiunta tabella UserProfile per salvare i dati permanenti di configurazione
  degli utenti.
- Aggiunta pagina di amministrazione per ottenere un elenco dei prodotti 
  caricati nel sistema filtrabile per categoria. E' possibile selezionare le
  informazioni ottenibili sui prodotti
- Modificata lievemente la logica della procedura di login. Cosa succedeva
  prima: login.mpl aveva il POST su comp/html/login.mpl riconosceva di essere
  stato chiamato direttamente e non tramite una chiamata di componente e usava
  comp/chechLogin.mpl per ottenere l'autentica e poi eventualmente ridirigeva
  sull'url richiesto. Solo che se l'autentica falliva la pagina seguente 
  era posizionata su comp/html/login.mpl e quindi il link a "registrati ora"
  falliva. Ora invece login.mpl ha un POST su se stesso. Esso richiama 
  comunque comp/checkLogin.mpl che controlla l'autentica e se viene confermata
  e se esiste un parametro "url" fa il redirect sulla pagina richiesta 
  altrimenti richiama si' comp/html/login.mpl ma come componente e quindi 
  il link rimane comunque su login.mpl e quindi e' corretto.
- Visto che la modifica precedente ha eliminato l'unica chiamata diretta ad un
  file dentro a comp/html inserita una nuova regola di Location dentro a 
  httpd.conf per impedire l'accesso diretto a file dentro a comp. Riassumendo
  le regole di Location fin ora impostate risultano essere:

		# nego la visualizzazione dei componenti
		<Files *.mplcom>
			deny from all
		</Files>
		# nego la chiamata diretta ai componenti dentro a comp e comp/html
		<Location /ecp/comp/>
			deny from all
		</Location>

		# Nego la visualizzazione dei template
		<Location /ecp/tmpl/>
			deny from all
		</Location>
		# Ma permetto la visualizzazione delle imaggini
		<Location /ecp/tmpl/it/images/>
			allow from all
		</Location>

- Nella pagina del motore di ricerca era rimasto un campo statico del template
  fuori dal tag di sostituzione dinamica e quindi veniva visualizzato nel 
  combobox di selezione tipologia di ricerca un valore inesistente.
- Rimosso un buco nella visualizzazione delle categorie di articoli che 
  impediva la visualizzazione di categorie di II livello differenti nel caso
  che di un III livello uguale. 
- Nel database modificata la descrizione della categoria cat2 della tabella 
  sysCat in "Produttore"
- Modificata pesantemente la pagina left.htm, lo script lists.js, il componente
  listEl.mplcom per far funzionare la compressione e l'espansione della lista
  anche in Netscape. Aggiunto per questo motivo anche lo script resize.js.
- Molte pagine sono state modificate per rendere la visualizzazione tra 
  netscape e explorer simile.
- Rimosso il componente get2post.mplcom e reipostate le pagine che lo 
  utilizzavano per utilizzare il redirect con il metodo get.
- Ora, nella pagina di modifica delle informazioni sul prodotto, cambiando
  valuta automaticamente viene cambiato il prezzo adeguandosi alla valuta
  selezionata. Unica avvertenza, l'eventuale problema sul troncamento dei 
  decimali quando si passa tra una valuta e l'altra.

Ver. 0.8  (06/07/2000)
======================
- Modificato il logo del sistema.
- Modificato il codice per il controllo della licenza sul sito per avere piu'
  nomi di siti accettabili quale licenza di una singola installazione.
- Modificata la sintassi della variabile di configurazione server_name.

Ver. 0.7  (19/06/2000)
======================
- Motore di ricerca funzionante sui campi chiave delle categorie degli articoli,
  sul codice articolo e sulla descrizione breve ed estesa.
- Modificata la pagina top.htm e relativa pagina script per attivare il motore
  di ricerca.

Ver. 0.6  (13/06/2000)
======================
- Eliminato dalla pagina ordineAccettato.htm la variabile
  booleana stato che indicava se l'ordine era stato pagato (TRUE) o non 
  pagato (FALSE). Sostituita con la variabile ordine.pagamento che e' di tipo
  stringa ed e' impostata com 'NON PAGATO','PAGATO','ANNULLATO' a seconda
  dello stato dell'ordine. (*)
- Aggiunta la pagina di amministrazione delle proprieta' degli account 
  registrati nel sistema. Per ora e' possibile modificare, per ogni utente,
  gli ordini da esso eseguiti.
- Completato il modulo di modifica ordine lato utente che può ora modificare,
  se possibile, l'indirizzo e/o il tipo di spedizione e il tipo di pagamento.
- Modificata la classe ECP::User. Ora ammette un metodo setSubUser che permette
  di impostare la nuova proprieta' subUser su un istanza di ECP::User collegata
  ad un utente differente da quello iniziale. Ovviamente cio' e' possibile solo
  se l'istanza di ECP::User che tenta di utilizzare il metodo setSubUser e'
  collegata ad un utente che hai i diritti di amministrazione (gid==1). 
  Attualmente il valore della proprieta' subUser non risente della 
  serializzazione e quindi il valore impostato viene perso tra una 
  serializzazione e una deserializzazione e viene reimpostato al valore di
  default.
- Eliminato un errore nella procedura di aggiunta nuovo utente che, nel caso
  di utente privato, non salvava i dati relativi al nome e cognome inseriti.

Ver. 0.5  (05/06/2000)
======================

- Creato un link tra la cartella ecp/images e la cartella ecp/tmpl/it/images 
  di modo da poter vedere le immagini anche durante la modifica dei template.
- Creata una nuova regola di "Location" nel file httpd.conf per permettere
  l'accesso al link creato sopra continuando a non permettere l'accesso ai
  template (vedere se si riesce a renderlo indipendente dalla cartella della
  lingua).
- Aggiunta la variabile server_name in Config.pm che indica il server www su cui
  dovrebbe essere stato installato il sistema. Questa variabile server per 
  controllare dalle pagine html se il server su cui è installato il sistema 
  corrisponde a quello per cui e' stato licenziato il prodotto e mostrare 
  altrimenti una pagina di errore. Questa variabile non e' pero' usata nel 
  sistema di controllo della licenza quindi anche cambiando questa variabile
  il sistema non funziona lo stesso se installato su un sistema differente da
  quello per cui è stato licenziato.
- Aggiunti i moduli per la decriptazione delle librerie criptate decryptECP.pm
  e decryptECP.so.
- Incompatibilita' rispetto alla base dati precedente per implementare lo stato
  della spedizione modificando inoltre il nome dello stato del pagamento per 
  renderlo pie' comprensibile. Modificato in tal senso le query SQL.
  Modifica Base Dati:
  	* Il campo ordine.stato e' stato rinominato come ordine.pagamento (*)
  	* Il campo ordine.pagamento e' stato modificato da SMALLINT(6) a TINYINT(4)
  	* Aggiunto il campo ordine.tracking
- Aggiunto modulo per aggiunta di note ad un ordine effettuato. Questo modulo
  contiene anche i campi per la modifica dei dati dell'ordine effettuato che 
  pero' nella versione attuale e' ancora non funzionante.
- Rimosso un buco che non mostrava il frame sinistro della home page nel caso
  nel database non fosse stato caricato ancora alcun prodotto. Problema nel
  file listEl.mplcom.
  
  
Ver. 0.4  (15/05/2000)
======================

- E' ora possibile gestire o meno le scorte di magazzino per un dato prodotto.
  Se questa cosa viene gestita per il prodotto, al pagamento di un ordine che
  contiene detto prodotto, il sistema sottrae i pezzi acquistati alla 
  disponibilita' attuale. La disponibilita' può anche andare in negativo se 
  l'acquisto e' superiore alla disponibilita'.
  Modifica Base Dati:
  	* Campo prodottoComm.dispo può essere NULL;
  	* Campo prodottoComm.dispo non e' piu' UNSIGNED.
- Aggiunto codice articolo associato al prodotto
  Modifica Base Dati:
  	* Aggiunto campo prodottoComm.cod 
  	  ALTER TABLE prodottoComm ADD cod VARCHAR (50) not null;
  	  ALTER TABLE prodottoComm ADD INDEX (cod);
- Aggiunta scheletro iniziale gestione ordini con la sola lista degli ordini
  efettuati.

  
Ver. 0.3  (09/05/2000)
======================

- Risolto un problema alla fine della procedura di creazione nuovo utente che
  impediva il redirect sulla pagina di login (errata procedura di uri_escape);
- Aggiunta variabile 'base_dir' in ECP::Config che riporta la path relativa al 
  server www ove sono installati i file web
- Aggiunto Cognome e Nome del referente per tipo utente "azienda"
- Inseriti i setFocus nel modulo di registrazione utente
- Creato campo mailOnBuy su tabella userInfo e inserito settaggio sul wizard di 
  creazione utente per gestire, in futuro, l'invio di mail di ricevuta ordine.
- Eliminato un bug nelle librerie ECP::Cart, ECP::Ordine e nella query 
  ECP::DBEngine::productSearch che non chiudevano la connessione al MySQL 
  tenendo tale connessione aperta in zombie. 
- Nel modulo di conferma d'ordine ora appaiono correttamente il nome dell'utente
  e i dati anagrafici.

 (*) Indica una incompatibilita' con la versione precedente.

Offerta Commerciale - Help on Line - Snapshot

JavaScript Menu Courtesy of Milonic.com





Commenti
Lascia un commento

Nome e Email sono obbligatori (l'email non verrą mostrato). L'URL č opzionale. I commenti non appariranno subito in quanto sono sottoposti a moderazione.

Sono accettati questi TAG: <A>, <STRONG>, <B>, <EM>

ome
Nessun commento č stato ancora inserito. Che ne diresti di essere tu il primo?

 Copyright© 1997-2006 Emiliano Bruni Online dal 16/08/1998 con visitatori Scrivimi all'indirizzo: