Ho scritto una nota tecnica che spiega come si comporta Sar-At quando si cerca di inserire una andata a capo in un testo lungo. Ci sarà infatti un cambiamento nella prossima versione, credo per il meglio, e voglio che tutti ci arrivino preparati. La nota tecnica spiega anche come simulare con la versione corrente il comportamento della prossima versione.
http://www.sar-at.it/showPage.php?template=faq&id=133
L.A.
--
Accomazzi.net di Luca Accomazzi
Via Antonio Gramsci, 40
20017 Rho (Mi)
Tel. 02.00615556
Fax 02.700537345
Cell. 349.7680116
sip:5342716@sip.messagenet.it
Skype misterakko
http://www.accomazzi.net
P. IVA 04850210966 - CF CCMLST64H08F952C
La nuova versione è immediatamente disponibile.
La maggior parte del lavoro svolto riguarda velocizzazioni e irrobustimenti del codice. La versione 8.5.1 contiene però una importante nuova funzionalità. L'invio delle newsletter può venire concesso ai sub-amministratori, caso per caso e gruppo per gruppo.L'invio delle newsletter può venire concesso ai sub-amministratori, caso per caso e gruppo per gruppo.
Per esempio, se avete una tabella di iscritti alla newsletter e create i sottogruppi dinamici "italiani", "stranieri, "maschi" e "femmine" potete assegnare al collaboratore pippo il potere di inviare comunicazioni agli italiani, a pluto concedere l'invio sia agli stranieri che alle femmine, eccetera.
Lo username di un visitatore, con il quale l'utente fa login) ora può contenere il carattere apostrofo. Quando si inserisce un nuovo utente/edita un utente esistente. Sar-At verifica che la data di scadenza sia esistente e valida. In passato veniva inserito un utente con accesso immediatamente scaduto.
Completamente riscritta la componente del codice che gestisce le scorte di magazzino nel commercio elettronico, ora è molto più sofisticata e affidabile. Il log del commercio elettronico è un po' più verboso e molto più ricco di dettagli.
Il plugin vat_by_country_and_rate, che permette di gestire un catalogo prodotti con aliquote iva distinte e che si applicano solo ad alcune nazioni (per esempio, una azienda italiana che vende in Svizzera non applica l'IVA, ma se vende in Francia sì) ora è più flessibile e robusto. Continua però a non supportare le promozioni: se compro un prodotto da 10 euro con IVA 20% e un prodotto da 5 euro in esenzione IVA, cosa vuol dire "sconto 5 euro"?
L.A.
--
Accomazzi.net di Luca Accomazzi
Via Antonio Gramsci, 40
20017 Rho (Mi)
Tel. 02.00615556
Fax 02.700537345
Cell. 349.7680116
sip:5342716@sip.messagenet.it
Skype misterakko
http://www.accomazzi.net
P. IVA 04850210966 - CF CCMLST64H08F952C
In Sar-At 8.5.1 aggiungiamo la possibilità di accoppiare i sotto-amministratori ai gruppi dinamici.
Per esempio, in una grande organizzazione possiamo avere un gruppo di vistatori registrati "clienti" con 10.000 membri. Vogliamo definire 20 sotto-amministratori, uno per ogni regione d'italia, Ciascuno potrà mandare una newsletter ai soli visitatori che risiedono nella loro regione.
Già ora è possibile definire con facilità i clienti valdostani, quelli calabresi eccetera.
Sar-At 8.5.1 nell'interfaccia di definizione dell'amministratore permetterà di limitare l'amministratore a un sottogruppo di clienti.
Questa nuova funzionalità comporta modifiche all'interfaccia ma anche "sotto al cofano". Nell'interfaccia: i subamministratori che inviano una newsletter oggi vedono tutti i gruppi e i sottogruppi esistenti e possono spuntare solo quelli di loro competenza. Dalla v8.5.1 in su vedranno solo i gruppi e sottogruppi di loro competenza.
Le modifiche sotto al cofano riguardano solo coloro i quali scrivono plugin per Sar-At (e tutti gli altri possono smettere di leggere qui).
Sar-At 8.5.1 introduce una nuova funzione chiamata ListGroupsSubgroups
ListGroupsSubgroups ($callbackPerGroup, $callbackPerSubgroup, &$instance) {}
// Rimpiazza completamente la vecchia ListGroups di Sar-El
//
// Le callback sono funzioni.
// La prima viene chiamata con parametri(nomegruppo, idgruppo, is_detailed)
// nomegruppo: string
// idgruppo: int
// is_detailer: boolean
// La seconda viene chiamata con parametri (nomegruppo, idgruppo)
Immaginiamo che in un plugin voi vogliate stampare in rosso i nomi dei gruppi a cui l'amministratore ha accesso, e in blu i nomi dei sottogruppi dinamici a cui l'amministratore ha accesso. Avremo:
PerGruppi ($nomegruppo, $idgruppo, $is_detailed) {
echo "<span style='color:red'>$nomegruppo</span>";
}
PerSottogruppi ($nomegruppo, $idgruppo) {
echo "<span style='color:blue'>$nomegruppo</span>";
}
ListGroupsSubgroups ('PerGruppi', 'PerSottogruppi', $instance);
L.A.
--
Accomazzi.net di Luca Accomazzi
Via Antonio Gramsci, 40
20017 Rho (Mi)
Tel. 02.00615556
Fax 02.700537345
Cell. 349.7680116
sip:5342716@sip.messagenet.it:5061
Skype misterakko
http://www.accomazzi.net
P. IVA 04850210966 - CF CCMLST64H08F952C
Un po' grezza forse, ma completa, eccovi la prima presentazione delle
novità che vi aspettano in Sar-At versione 8.5
http://www.sar-at.it/TmovieI8.html
L.A.
--
Accomazzi.net di Luca Accomazzi
Via Antonio Gramsci, 40
20017 Rho (Mi)
Tel. 02.00615556
Fax 02.700537345
Cell. 349.7680116
Skype misterakko
http://www.accomazzi.net
P. IVA 04850210966
Mi rendo conto che manda un pezzetto di spiegazione nel manuale
"Creare il sito". Non c'è scritto come aggiungere campi di tipo file
nelle sezioni modulo, ovvero come consentire al visitatore del sito di
caricare un documento sul server. Ecco qui i testo che finirà nella
prossima edizione di "Creare un sito", nel capitolo suile sezioni modulo
L.A.
Upload
Con la stessa semplicità con cui voi potete usare Sar-At per caricare
un documento sul server, è possibile consentire ai vostri visitatori
di fare lo stesso. Il visitatore registrato del sito può caricare una
foto nel proprio profilo (e realizziamo una community), o il
partecipante a un concorso può mandare il suo elaborato, o chi scrive
al modulo “contattaci” del sito può allegare il suo curriculum vitae. ”,
Nelle sezioni modulo ordinarie
La vostra sezione modulo deve contenere un capo di tipo file,
naturalmente. Questo permette a Sar-At di sapere in quale posizione
sul disco rigido vadano registrati i documenti dei visitatori.
Immaginiamo di aver creato una sezione modulo chiamata
“autoregistrazione” e dentro di essa abbiamo messo un campo di nome
“autoscatto” per consentire ai visitatori di pubblicare il proprio
primo piano.
Nel vostro HTML dovrete aggiungere questa riga di codice:
<input type=’file’ name=’image_autoscatto’ />
In altre parole, dovete usare come name dell’input la parola image_
seguita dal nome del campo.
Nelle sezioni modulo aggiornabili
Immaginiamo adesso che sia necessario per un vistatore di sostituire
la sua foto con una versione più recente. Se volete consentirgli
questa manovra, la vostra sezione modulo deve essere dichiarata
aggiornabile, come è spiegato in questo stesso capitolo poche pagine
indietro.
Lo HTML dovrà contenere due righe, così:
<input type=’file’ name=’image_autoscatto’ />
<input type=’hidden’ name=’autoscatto’ value=’{autoscatto}’ />
La prima riga consente al visitatore di caricare una nuova foto. La
seconda riga memorizza il nome della foto precedente in modo che venga
conservato se il visitatore cambia altre informazioni (per esempio, il
suo indirizzo email) ma non questa.
Consultare il materiale dei visitatori
Abbiamo spiegato come il Sar-At possa spedire al vostro indirizzo di
posta elettronica tutto il contenuto di tutti moduli compilati dai
visitatori.
Se il visitatore carica documenti nel compilare il modulo, il
messaggio email che vi raggiunge contiene un link seguendo il quale
potrete scaricare i documenti.
Mantenere riservato il materiale dei visitatori
Anche il materiale caricato dai visitatori può venire registrato da
Sar-At in una zona del disco rigido del server inaccessibile via web.
Si usa il meccanismo di showFile.php, che è spiegato nel capitolo sei
di questo libro.
Buondì. Abbiamo trovato un bug nel Sar-At che riguarda solo coloro i
quali lo stanno eseguendo su Windows Server. Tale buffa razza di
personaggi mi risulta non rappresentata nel presente augusto consesso,
ma se qualcuno di voi ha necessità di usare Sar-At 8.3 in Windows mi
faccia un fischio e gli mando i due documenti modificati.
L.A.
--
Accomazzi.net di Luca Accomazzi
Via Antonio Gramsci, 40
20017 Rho (Mi)
Tel. 02.00615556
Fax 02.700537345
Cell. 349.7680116
Skype misterakko
http://www.accomazzi.net
P. IVA 04850210966
Un suggerimento.
SE nel vostro database c'è una tabella originariamente proveniente da
un altro database.
SE avete aggiornato alla versione 8.3.2 o superiore
SE nell'editare una pagina (record) vedete questo messaggio di errore
Database error: Invalid SQL: SELECT COUNT(*) AS numRighe FROM
`nometabella` WHERE sarelAutoOnline<'2999-12-31'
MySQL Error: 1054 (Unknown column 'sarelAutoOnline' in 'where clause')
Invoked from: /usr/local/apache/htdocs/sarat833/editAddPage.php at
line 767
ALLORA vuol dire che la vostra tabella era stata convertita con una
vecchia versione del nostro convertitore, il quale sbagliata e non
inserita un campo Sar-At la cui assenza non dava problemi nelle
versioni sino alla 8.2, ma che è diventato obbligatorio nella 8.3
In questo caso, la soluzione vi costa due clic. Cliccate la linguetta
INFORMAZIONI e nella pagina che appare cliccate il pulsante VERIFICA ORA
Sar-At riconosce il problema e aggiunge il capo mancante.
L.A.
"There's alwaqys one more bug"
MIGLIORAMENTI
* Le schermate conseguenti alla modifica di una pagina (hai cancellato
una pagina con successo, hai aggiunto una pagina con successo, hai
editato una pagina con successo) ora mostrano tutte le linguette per
la sezione corrente (dati, viste... informazioni), velocizzando la
navigazione.
* L'esportazione in formato UTF-16 ora è consistentemente più veloce
* Quando siete collegati come root, il menu Server mostra i numeri di
versione di Sar-At per ogni sito. Nella 8.3.3 vengono mostrati anche
le versioni più vecchie, e questo numero è recuperato dalla copia
installata, non dal database del sito come avveniva sino alla 8.3.2.
Quindi root con un colpo d'occhio vede tute le versioni di tutti i
siti installati.
BUG FIX (showstopper)
* showerr non eseguiva correttamente alcune viste.
* un aggiornamento minore poteva scombiccherare i gruppi dinamici --
in questo caso il tentativo di spedire una newsletter ad essi
produceva un elenco di zero destinatari. La versione 8.3.3 risolve il
problema e ricostruisce il database alla situazione corretta se per
caso il bug aveva fatto danni
* Una Vista avanzata nella 8.3.1 poteva perdere il criterio di
ordinamento e il limite sul numero di record recuperati. Nella 8.3.2,
poteva perdere il criterio di ordinamento. Nella 8.3.3, nessuna delle
due cose
BUG FIX (minori)
* Nell'e-commerce non è più consentito di aggiungere molte volte al
carrello un oggetto in copia unica
* la verifica delle pagine mastro che contengono viste ad hoc e
mailmerge ora funziona anche se la vista ad hoc usa un JOIN
* La cancellazione di una Vista il cui nome contiene lettere accentate
non ha più errori di visualizzazione
* L'apertura di un record correlato in un portale non dà problemi
estetici neppure se il record correlato viene compilato in modo
incompleto più e più volte
C'è una nuova faq sul sito Sar-At. È un sunto di tutto quel che serve
per creare un riquadro di login al sito, passo passo, con tutti i
possibili errori in bella evidenza.
http://www.sar-at.it/showPage.php?template=faq&id=131
Abbiamo preparato un miniaggiornamento per Sar-At 8.3.2 che stiamo
applicando come silent update a tutti i clienti. Ha rilevanza solo per
chi si collega come root. Nel menu Server, Sar-At 8.3 mostra il numero
di versione in uso sui siti, ma il numero non veniva aggiornato dal
momento della prima installazione. Ora viene aggiornato quando si
passa da masterSites.php
L.A.
--
Accomazzi.net di Luca Accomazzi
Via Antonio Gramsci, 40
20017 Rho (Mi)
Tel. 02.00615556
Fax 02.700537345
Cell. 349.7680116
Skype misterakko
http://www.accomazzi.net
P. IVA 04850210966
La perfezione non è di questo mondo. Però lavoriamo in quella
direzione. E pertanto:
NUOVA FUNZIONALITÀ
Ho riscritto interamente checkMasterPage, il componente di Sar-At che
esamina le vostre pagine mastro, le convalida, le "compila" e consente
di usarle nel sistema di gestione contenuti.
Per capire i motivi che mi hanno portato a questo duro lavoro e per
intuire il miglioramento di cui ora godete, immaginate un sito web con
un commercio elettronico che contiene queste due pagine mastro:
1. Pagina prodotto: sulla destra contiene la scheda di un prodotto:
foto, prezzo, pulsante per aggiungerlo nel carrello. A sinistra
contiene una Vista che mostra tutti i prodotti che sono già nel
carrello attraverso la vista ad hoc sarelShowCart, e c'è scritto
quanto costa l'intero carrello -- viene usato il plugin standard
sarelcart_expense.
2. Pagina newsletter. Viene spedita periodicamente ai clienti.
Contiene una vista standard, treProdottiRecenti, che pesca i tre vini
aggiunti in vendita per ultimi. Contiene anche un mailmerge, cioè c'è
scritto Caro {nome} noi della ditta Acme abbiamo tre nuovi vini da
proporti: {BEGIN treProdottiRecenti} {nomeVino} {END
treProdottiRecenti} {testoNewsletter}. Quando genera questa pagina,
Sar-At deve prendere le informazioni sui clienti ({nome}) dalla
tabella con le loro anagrafiche, le informazioni sulla newsletter
({testoNewsletter}) dalla apposita tabella e le info sui prodotti
({nomeVino}) attraverso la Vista treProdottiRecenti
In Sar-At 8.3.1 avreste incontrato alcuni problemi.
Nella pagina 1, la validazione effettuata da checkMasterPage ignorava
la vista ad hoc. Tutto quello che si trova tra {BEGIN
sarelShowCart} ... {END sarelShowCart} veniva lasciato passare sulla
fiducia. Una vista ad hoc può contenere dati tratti da più tabelle del
database (nel nostro caso, il numero di bottiglie di vino arriva dalla
sezione carrello, ma il costo di una singola bottiglia di grignolino
attiva dalla sezione prodotti) e anche campi sintetici ottenuti con
funzioni del linguaggio SQL come IF (vini.stock < 10, 'in
esaurimento', 'ampiamente disponibile') AS quantiPezziRimasti.
Nella pagina 2, la validazione di checkMasterPage non funzionava sotto
8.3.1 e precedenti. checkMasterPage non riusciva a capire che la
pagina mastro faceva affidamento su due differenti tabelle. Nel
validare la vista standard, cjeckMasterPage 8.3.1 controllava quali
campi venivano usati, ma non mostrava questa informazione.
checkMasterPage 8.3.2 risolve tutte queste limitazioni.
C'è una conseguenza di cui dovreste tenere conto. Se avete commesso un
errore in una pagina mastro, dentro una vista ad hoc, può darsi che
non ve ne siate mai resi conto e che il passaggio alla v8.3.2 faccia
emergere il problema. Il sito funzionerà perfettamente, ma se provate
a validare la pagina mastro l'errore verrà segnalato.
Se avete scritto dei plug-in di showPage ad hoc per il vostro sito, e
se essi definiscono più di un tag, dovete aggiornarli perché siano
compatibili con checkMasterPage 8.3.2
Se non li aggiornate allora il vostro sito continua a funzionare
perfettamente anche dopo l'aggiornamento, ma le pagine mastro che
contengono questi plug-in non vengono validate.
L'aggiornamento può venire eseguito in un battito di ciglia attraverso
una espressione regolare. Cercate:
\$segnapostiDefiniti\["(.*)"\](.*)\);
E rimpiazzate con:
$segnapostiDefiniti["..\1"]\2, '\1');
BUG FIX
* Internet Explorer 7 ha un brutto bug per cui la presenza di commenti
nello HTML blocca l'esecuzione degli script e di conseguenza impedisce
la corretta apparizione dei menu a discesa di Sar-At.La versione 8.3.2
aggira il bug.
* La prima pagina di Sar-At (subito dopo il login) tradizionalmente
mostra un elenco delle pagine invisibili. L'idea è di consentire a un
gruppo di redattori di interagire: se un autore scrive un pezzo e lo
carica, il suo caposervizio lo vede non appena si collega e può
controllarne le bozze e approvarne la pubblicazione. Nella v8.3.2 i
sub-amministratori che hanno visibilità solo su alcune sezioni non
trovano più listate nella prima pagina le pagine di sezioni su cui non
hanno autorità (il caposervizio della cronaca nera non vede listate le
pagine invisibili della cornaca rosa).
* Migliorata la sicurezza di loginBuyer. L'aggiornamento 8.3.2 è
fortemente consigliato a chi eroga contenuti riservati ad abbonati,
clienti o dipendenti attraverso il sito web.
* Incollare testi che contengono caratteri malformati era possibile
con alcuni browser e provocava errore se poi quei testi venivano usati
in contesti delicati come il feed RSS. Ora Sar-At pulisce i testi
prima di inserirli nel database.
* Rivista la schermata di inserimento utenti registrati, ora più
leggibile. È possibile usare caratteri di alfabeti non latini per lo
username.
* Nelle Viste in modalità completa, l'opzione "limita a non più di X
record" ora funziona correttamente
* Il pulsante Clona lavora correttamente anche sulle Viste di modalità
Completa
* L'importazione di pagine ora permette anche di importare lo speciale
campo masterId, che indica le traduzioni di una pagina. Attenzione: se
avevate personalizzato l'ordine dei campi che importate da file, la
vostra importazione viene conservata nella v8.3.2, ma se cliccate il
pulsante "ripristina l'ordine di importazione" allora il campo
masterId appare (al primo posto) come importabile.
* L'importazione di pagine ora riconosce correttamente il formato del
file (andate a capo in stile Windows, Unix o Macintosh) anche quando
state importando esattamente due righe
* L'esportazione in formato Unicode UTF-16 ora usa il subformato
"little endian", per maggiore compatibilità con Excel
* Le sezioni in cui il Localization Manager è attivo e che sono state
create sotto 8.3.0 o 8.3.1 non rispettavano il canone di unicità della
traduzione (potevano esistere due traduzioni in georgiano della
medesima pagina). La 8.3.2 corregge il difetto anche retroattivamente.
* Il proprietario del sito che sbagliava la password nella v8.3.1
vedeva un messaggio di errore MySQL. Nella 8.3.2 è ripristinata la
consueta amichevole messaggistica
* Alcuni cambiamenti minori per migliorare la compatibilità con server
basati su sistema operativo Windows
* Il sistema di sincronizzazione (staging) restituisce messaggi di
errore più significativi in caso di problemi
* Un componente mancava e rendeva impossibile l'accodamento degli
invii periodici, funzionalità introdotta con la v8.3.1