Joomla.it Forum
Componenti per Joomla! => Gestione Form => : giusebos 09 May 2014, 12:42:56
-
ho seguito questa discussione
http://forum.joomla.it/index.php?topic=82368.0 (http://forum.joomla.it/index.php?topic=82368.0)
per far si che dentro la mail ci sia il titolo dell'articolo dove si trova il form.
Uso joomla 3.3 e chronoform V5.
In questa versione di chronoform però non funziona; è cambiato qualcosa?
-
se sei in un articolo, ovvero nella view article di com_content, allora hai sicuramente la variabile di query string 'id' con l'identificativo dell'articolo.
io userei questo per leggere da db il titolo dell'articolo dalla relativa tabella e pre-popolare le variabili della form, tramite custom code, prima del render della stessa. il titolo lo metti poi in un campo hidden
ciao
-
si sono nella view article di com_content....
lo stesso procedimento con chronoform v4 in altro sito funziona, con chonoform v5, che uso da poco, ho notato dei piccoli cambiamenti (sopratutto a livello nomi) anche per la realizzazione di form. Il form naturalmente funziona, mi manca solo l'informazione del titolo dell'articolo.
-
secondo me è sbagliato il metodo indicato nel vecchio post, anche per CF4.
inserisci un campo hidden ( o text, come preferisci) nella form con name titoloArticolo.
usa un custom code nell'onload della form per recuperare, con il metodo che preferisci, il titolo dell'articolo, poi inserisci
$form->data['titoloArticolo'] = $titoloArticolo;
a questo punto quando CF disegna la form avrai il campo hidden popolato con il valore contenuto in $titoloArticolo
ciao,
marco
-
domani o più tardi provo e ti faccio sapere.
Grazie :)
-
Dopo moltissime prove sono finalmente riuscito ad avere quello che volevo, grazie anche al suggerimento di mmleoni e di belinbelan.
questa la soluzione valida per joomla 3.3 e chronoform V5
Come punto di partenza ho utilizzato uno dei form che vengono installati cliccando in "Demos"
quindi aprendo il form per editarlo ho aggiunto in designer un campo custom con questo codice:
<?php
$database =& JFactory::getDBO();
$query = "SELECT * FROM #__content WHERE id='".JRequest::getVar('id')."'";
$database->setQuery( $query );
$articolo = $database->loadObject();
$form->data['titolo_articolo'] =& $articolo->title;
?>
e sempre in design un ulteriore campo text con field name e fiel ID contente questo nome "titolo_articolo"
questo campo text è impostato nel load state in "Parent Hidden"
-
meglio così:
<?php
$database = JFactory::getDBO();
$query = "SELECT title FROM #__content WHERE id='" . JFactory::getApplication()->input->getInt('id', 0) . "'";
$database->setQuery( $query );
$articolo = $database->loadResult();
$form->data['titolo_articolo'] = $articolo;
?>
ma verifica che ho fatto ad occhio...
(=& in questa accezione è deprecato in php 5.3+, JRequest è deprecato in J3+, getVar è sql injection garantita, loadResult() per il valore singolo, l'ultimo =& è sintatticamente corretto ma non ha senso: stai comunque passando un piccolo scalare e non un vettore)... pensa a quei poveracci che mi hanno avuto come insegnante o direttore ;D ;D
ciao,
marco
-
ho sostituito il codice e funziona perfettamente.
Grazie :)
-
ahhh, è da qui che si vede che sono arruginitissimo!!! ;D ;D ;D