[TYPO3-UG Italy] powermail con receiver condizionale
Alessandro Tuveri
alessandro.tuveri at uniud.it
Tue Sep 1 10:25:53 CEST 2015
Aggiusto il tiro:
se usata la sintassi:
lib.receiver {
3 = TEXT
3.value (
email at domain.tld
emal1 at domain.tld
)
}
dalle prove fatte riceve solo email1
invece con
lib.receiver {
3 = TEXT
3.value= email at domain.tld, emal1 at domain.tld
}
gli email vengono spediti correttamente ai due codici.
Un piccolo appunto: circa il sistema suggerito nel precedente email (il primo che si vede nella pagina) questo usa direttamente nel menu a tendina i codici degli utenti. Non piace perche' oltre l'uso di una query penso sia soggetto a probemi di spam. Un malintenzionato, se il modulo e' pubblico, potrebbe modificare i codici e inviare messaggi di posta ad altri utenti
saluti
ALEX
________________________________________
Da: typo3-ug-italy-bounces at lists.typo3.org <typo3-ug-italy-bounces at lists.typo3.org> per conto di Alessandro Tuveri <alessandro.tuveri at uniud.it>
Inviato: lunedì 31 agosto 2015 15:16
A: TYPO3 Usergroup Italy
Oggetto: Re: [TYPO3-UG Italy] powermail con receiver condizionale
Risolto e se puo' servire ad altri allego il codice TS per la versione powermail 2.x.
La pagina segnalata da Torresani:
http://www.typo3.net/forum/thematik/zeige/thema/112554/
contiene un primo TS che in pratica fa questo:
viene inserito un uid utente nel campo di un menu a tendina (selectorbox) es:
amministrazione|100
ufficio vendite |210
altro|194
dove 100, 210,. 194 sono le uid degli utenti di FE supponiamo memorizzate nella cartella degli utenti di FRONTEND che ha per pid=20 (come nell'esempio).
Il TS non fa altro che leggere il campo riempito (supponiamo con nome "ufficio" nell'esempio ' "receiver") tramite la scelta (select), quindi se viene scelto "amministrazione" fa una query nel db cercando l'utente che ha per uid 100. OK; legge il campo (field) email e lo renderizza nel BACKEND dinamicamente dove nel plugin, al campo receiver e' stato inserita (come nell'esempio della pagina) la stringa:
{f:cObject(typoscriptObjectPath:'lib.receiver')}
Questo metodo presenta un limite, ovvero spreca una query ed inoltre richiede:
1. di creare un utente di frontend per lo scopo
2. non puo' spedire a piu' persone
qualcun altro ha proposto un codice piu' complesso che ho escluso.
Ho invece risolto seguendo un terzo codice TS piu' semplice che prevede l'output di due oggetti, rispettivamente nel campo: receive e subject.
1. creare un menu a tendina e chiamarlo tipologia (o altro nome, sostituire la riga qui sotto key.data)
2. il campo avra' ad esempio tre selezioni effettuali dal visitatore:
amministrazione|1
ufficio commerciale|2
altro|3
Questo e' il codice per il campo receiver:
lib.receiver = CASE
lib.receiver {
#
key.data = GP:tx_powermail_pi1|field|tipologia
key.intval = 1
# Res 1
1 = TEXT
1.value = email.amministrazione at domain.tld, altro.email at domain.tld
# Res 2
2 = TEXT
2.value = email.commerciale at domain.tld
# Res 3
3 = TEXT
3.value = email.altro at domain.tld
// e cosi' via, potete aggingerne quanti ne volete
default = TEXT
default.value = email.altro at domain.tld
}
bene se ora voltete un subject personalizzato, basta creare un secondo oggetto da inserire nel subject, qui lo chiameremo lib.subject
lib.subject = CASE
lib.subject {
#
key.data = GP:tx_powermail_pi1|field|tipologia
key.intval = 1
# Res 1
1 = TEXT
1.value = contatto dal sito per l'ufficio amministrazione
# Res 2
2 = TEXT
2.value = contatto dal sito per l'ufficio commerciale
# Res 3
3 = TEXT
3.value= contatto generico dal sito
default = TEXT
default.value = contatto generico dal sito
}
riassumendo, con questo ts:
*non serve creare utenti di FE
* basta inserire gli oggetti sopra nella pagina (web > template) interessata
* personalizzare gli oggetti TS ed eventualmente inserire delle costanti in luogo degli email
* editare il plugin di pagina e inserire:
nel campo "Mail receiver": {f:cObject(typoscriptObjectPath:'lib.receiver')}
nel campo "Subject": {f:cObject(typoscriptObjectPath:'lib.receiver')}
nota bene che sopra ho inserito (ma non provato):
in lib.receiver.1.value
email.amministrazione at domain.tld, altro.email at domain.tld
unico dubbio: non so se funziona per piu' email, eventualmente mi direte (suppongo vada messo un cr di separazione tra un nome e l'altro oppure dovrebbe/potrebbe andare il seguente:
value (
email.amministrazione at domain.tld
altro.email at domain.tld
)
e fare un test di invio.
Many thanks al Torresani!
ALEX
_______________________________________________
TYPO3-UG-Italy mailing list
TYPO3-UG-Italy at lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-ug-italy
More information about the TYPO3-UG-Italy
mailing list