Joomla.it Forum
Non solo Joomla... => Sviluppo => : otto9due 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..
<?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 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
-
Ggggrrrraaazieee 1000 per l'aiuto.. P.S perdona la mia niubbaggine 😜.. E grazie x il link era proprio quello che cercavoo..
-
$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
-
Sisi in effetti così ho fatto :o .. e poi ho inserito tutto in una variabile che viene spedita come body...
$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..
$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ì..
<form action="" method="post" class="formclass" id="benga_contanct_form" name="benga_contanct_form" onsubmit="JFactory::getMailer();">
O così..
<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..
-
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
-
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
-
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]
-
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
-
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?)
-
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ù :
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?
-
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 )..
[allegato eliminato automaticamente dopo un anno]