[TYPO3-UG Italy] powermail con receiver condizionale

Alessandro Tuveri alessandro.tuveri at uniud.it
Mon Aug 31 15:16:28 CEST 2015


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




More information about the TYPO3-UG-Italy mailing list