[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