Back to top

Autore Topic: Chiarimento su funzione getMailer()  (Letto 266 volte)

Offline otto9due

  • Hero Member
  • *****
  • Post: 687
  • Sesso: Maschio
  • Quello che semini raccogli!!
    • Mostra profilo
Chiarimento su funzione getMailer()
« il: 04 Feb 2014, 19:34:40 »
Vorrei tentare di costruire il mio primo moduletto scrauso..  :P
Ora mi trovo davanti ad un problema.. conosco solamente tre valori della funzione getMailer() come nell'esempio sotto..


Ho commentato il codice nella speranza che qualcuno mi dia qualche delucidazione in più sui punti commentati..


Codice: [Seleziona]
<?php
$telefono 
JRequest::getVar('campo_telefono');
$cognome JRequest::getVar('campo_cognome');
$nome JRequest::getVar('campo_nome');
$email JRequest::getVar('campo_email');
$text JRequest::getVar('campo_text');




$mail =& JFactory::getMailer();
 
$config =& JFactory::getConfig();
// Il destinatario qui sotto viene preso nella mail impostata nel confing giusto?
$mail->addRecipient$config->getValue'config.mailfrom' ) );
$mail->setSubject'Richiesta modulo mio sito' );
// Mettiamo caso che qui volessi aggiungere dei dati tipo che so il cognome... Come si fa?
$mail->setBody$text );
// Ora se non volessi fare questo setBody ma volessi inserire campo per campo quello che vorrei che arrivasse nella mail?? COme aggiungere altri campi?? Devo infilare tutto in setBody?
if ($mail->Send()) {
  echo 
"Mail sent successfully.";
} else {
  echo 
"An error occurred.  Mail was not sent.";
  
}
?>


Grazie in anticipo ovviamente..
Fai agli Altri quello che desidereresti fosse fatto a TE!!

Offline mmleoni

  • Global Moderator
  • Cyborg
  • *****
  • Post: 4212
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
    • marco maria leoni web consulting
Re:Chiarimento su funzione getMailer()
« Risposta #1 il: 04 Feb 2014, 20:44:38 »
fai riferimento a: docs.joomla.org/Sending_email_from_extensions
suggerirei di sostituire i vari =& con =

1. destinatario
giusto

2.altri campi
li combini assieme, ovvero componi e memorizzi il testo della mail in una variabile e usi setBody($testoDellaMail) per inserire tutto in una volta.

ps: $mail è un'istanza della classe Jmail e quelli citati sono metodi. getMailer() è il metodo statico della classe JFactory che restituisce la citata istanza.

ciao


mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline otto9due

  • Hero Member
  • *****
  • Post: 687
  • Sesso: Maschio
  • Quello che semini raccogli!!
    • Mostra profilo
Re:Chiarimento su funzione getMailer()
« Risposta #2 il: 05 Feb 2014, 00:13:37 »
Ggggrrrraaazieee 1000 per l'aiuto.. P.S perdona la mia niubbaggine 😜.. E grazie x il link era proprio quello che cercavoo..
Fai agli Altri quello che desidereresti fosse fatto a TE!!

Offline M_W_C

  • Cyborg
  • ******
  • Post: 13070
  • Web Solutions
    • Mostra profilo
    • Milano Web City
Re:Chiarimento su funzione getMailer()
« Risposta #3 il: 05 Feb 2014, 10:40:36 »
$telefono = JRequest::getVar('campo_telefono');
$cognome = JRequest::getVar('campo_cognome');
$nome = JRequest::getVar('campo_nome');
$email = JRequest::getVar('campo_email');
$text = JRequest::getVar('campo_text');


non fare mai queste cose
...che il cane non stia bene lo dimostra l'abbandono delle zecche.
Angelino metti il collare della bayer!

Offline otto9due

  • Hero Member
  • *****
  • Post: 687
  • Sesso: Maschio
  • Quello che semini raccogli!!
    • Mostra profilo
Re:Chiarimento su funzione getMailer()
« Risposta #4 il: 05 Feb 2014, 13:01:27 »
Sisi in effetti così ho fatto :o .. e poi ho inserito tutto in una variabile che viene spedita come body...


Codice: [Seleziona]
$bodytotal = $contact_name.' '.JText::_( 'BENGA_CONTACT_INTRO_RICHIESTA' ).' : '.$tipostanza.', '.JText::_( 'BENGA_CONTACT_ELENCO_DATI' ). "\r\n"
             .$nome.''.$cognome."\r\n" .JText::_( 'BENGA_CONTACT_EMAIL' ).' : '.$email."\r\n" .JText::_( 'BENGA_CONTACT_TELEFONO' ).' : '.$email."\r\n"
             .JText::_( 'BENGA_CONTACT_TIPO_STANZA' ).' : '.$tipostanza."\r\n" .JText::_( 'BENGA_CONTACT_TIPO_N_ADULTI' ).' : '.$nadulti."\r\n"
             .JText::_( 'BENGA_CONTACT_TIPO_N_BAMBINI' ).' : '.$nbambini."\r\n" .JText::_( 'BENGA_CONTACT_TIPO_ELENCO_DATE' ).' : '.JText::_( 'BENGA_CONTACT_FROM' ).''
             . ''.$data_da.','.JText::_( 'BENGA_CONTACT_TO' ).''.$data_a. "\r\n" ;


Ora mi rimane un dubbio..  :P
Avendo inserito questo per l'invio della mail..
Codice: [Seleziona]
$mail = JFactory::getMailer();
 
$config = JFactory::getConfig();
$mail->addRecipient( $config->getValue( 'config.mailfrom' ) );
$mail->setSubject( 'Richiesta modulo mio sito' );
$mail->setBody( $bodytotal );
if($spambot != "") {
    echo('<p>Hello spambot</p>');
} else {
  $mail->Send();
  echo JText::_( 'BENGA_CONTACT_TO' ); 
}


Quando vado a richiamare il metodo statico(giusto?) dovrei fare così..
Codice: [Seleziona]
<form action="" method="post" class="formclass" id="benga_contanct_form" name="benga_contanct_form" onsubmit="JFactory::getMailer();">

O così..


Codice: [Seleziona]
<form action="" method="post" class="formclass" id="benga_contanct_form" name="benga_contanct_form" onsubmit="$mail;">
O devo mettere qualcosa in action ed utilizzare il onsubmit per fare un controllo generico sui campi?
Grazie ancora per il supporto..
« Ultima modifica: 05 Feb 2014, 13:25:57 da otto9due »
Fai agli Altri quello che desidereresti fosse fatto a TE!!

Offline M_W_C

  • Cyborg
  • ******
  • Post: 13070
  • Web Solutions
    • Mostra profilo
    • Milano Web City
Re:Chiarimento su funzione getMailer()
« Risposta #5 il: 05 Feb 2014, 15:46:41 »
cmq a logica è l'uso di un modulo e non di un componente che non va bene ... imho

o meglio un componente con un modulo
« Ultima modifica: 05 Feb 2014, 15:49:12 da M_W_C »
...che il cane non stia bene lo dimostra l'abbandono delle zecche.
Angelino metti il collare della bayer!

Offline mmleoni

  • Global Moderator
  • Cyborg
  • *****
  • Post: 4212
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
    • marco maria leoni web consulting
Re:Chiarimento su funzione getMailer()
« Risposta #6 il: 05 Feb 2014, 19:07:03 »
Quando vado a richiamare il metodo statico(giusto?) dovrei fare così..

nessuno dei due. non puoi richiamare del codice php con onsubmit!
php è eseguito server side, onsubit serve per codice client side quale il javascript.
fai riferimento alla documentazione di docs.joomla.org per i dettagli sullo sviluppo di codice per joomla, ma mi sa che dovresti partire dal capire come funziona l'html.

ciao
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline otto9due

  • Hero Member
  • *****
  • Post: 687
  • Sesso: Maschio
  • Quello che semini raccogli!!
    • Mostra profilo
Re:Chiarimento su funzione getMailer()
« Risposta #7 il: 05 Feb 2014, 20:35:44 »
Ho fatto un pò di confusione vero.. on submit richiama una fun javascript al verificarsi di un evento..
Solo che a questo punto ( essendo sempre abituato a dare a action la pagina di riferimento"  es: engine.php" che si occupava di spedire la mail ) non capisco come questo meccanismo possa funzionare .. Se non metto nulla ad action, ma inserisco il metod in post.. parte lo stesso?


P.s. non sono assolutamente un progrmmatore, solo un amatore, leggo e cerco di imparare qualcosa in giro e su qualche libro, perdonatemi se qualche volta faccio qualche errore, ( magari anche grossolano o stupido ) , a me questo serve per imparare  ;D [size=78%].. [/size]
« Ultima modifica: 05 Feb 2014, 20:57:16 da otto9due »
Fai agli Altri quello che desidereresti fosse fatto a TE!!

Offline M_W_C

  • Cyborg
  • ******
  • Post: 13070
  • Web Solutions
    • Mostra profilo
    • Milano Web City
Re:Chiarimento su funzione getMailer()
« Risposta #8 il: 05 Feb 2014, 20:54:38 »
un modulo non è fatto per ciò che vuoi fare.. i moduli che vedi su joomla hanno dietro un componente oppure devi inventarti una chiamata in background per la spedizione del modulo
...che il cane non stia bene lo dimostra l'abbandono delle zecche.
Angelino metti il collare della bayer!

Offline otto9due

  • Hero Member
  • *****
  • Post: 687
  • Sesso: Maschio
  • Quello che semini raccogli!!
    • Mostra profilo
Re:Chiarimento su funzione getMailer()
« Risposta #9 il: 05 Feb 2014, 21:02:32 »
un modulo non è fatto per ciò che vuoi fare.. i moduli che vedi su joomla hanno dietro un componente oppure devi inventarti una chiamata in background per la spedizione del modulo


Ho provato a fare questa cosa, perchè con joomla 1.5 avevo un moduletto del genere ( solo modulo ).. che faceva la stessa identica cosa.. Poi non è stato più aggiornato per le versioni successive, quindi ho pensato di "tentare" di crearne uno io, per mettermi alla prova.. tutto qui.. ( cos'è questa chiamata in background? ed a cosa servirebbe?)
Fai agli Altri quello che desidereresti fosse fatto a TE!!

Offline otto9due

  • Hero Member
  • *****
  • Post: 687
  • Sesso: Maschio
  • Quello che semini raccogli!!
    • Mostra profilo
Re:Chiarimento su funzione getMailer()
« Risposta #10 il: 06 Feb 2014, 10:06:59 »
Forse ho capito il funzionamento.. Chiedo conferma..
Nel defoult contenuto in tmpl gli piazzo solo il codice php frontend;
nell'helper piazzo la classe con relativo metodo ( con parametri) contenente il getMailer();
nel mod_mionome.php ci piazzo i richiami all'helper e alla classe definita nello stesso più :
Codice: [Seleziona]
require( JModuleHelper::getLayoutPath( 'mod_benga_contact' ) );
Che ha il compito di verificare se esistono override file; altrimenti restituisce la cartella del layout file originale? E' tutto corretto, o devo capire ancora qualcosa?
Fai agli Altri quello che desidereresti fosse fatto a TE!!

Offline otto9due

  • Hero Member
  • *****
  • Post: 687
  • Sesso: Maschio
  • Quello che semini raccogli!!
    • Mostra profilo
Re:Chiarimento su funzione getMailer()
« Risposta #11 il: 08 Feb 2014, 16:04:12 »
Okkkkk sviluppato il mio primo modulo.... ;D
Ora vorrei chiedervi un'ultima cosetta.. Mettiamo caso che volessi attivargli degli effetti toggle jquery per rendere i legend slidedown & up .. dite che potrebbe creare interferenze/conflitti con alcuni template?


Allego imm di come sta uscendo il modulo ( ovviamente ancora è una bozza )..
Fai agli Altri quello che desidereresti fosse fatto a TE!!

 



Web Design Bolzano Kreatif