Joomla.it Forum

Joomla! 3 => Joomla! 3 => Topic aperto da: synt.net - 12 Apr 2018, 09:24:59

Titolo: [RISOLTO] checkbox per accettare l'informativa sulla Privacy in form contatti
Inserito da: synt.net - 12 Apr 2018, 09:24:59
Buongiorno,
dopo aver seguito passo passo l'articolo "Modulo di contatto con il Check per accettare l'informativa sulla Privacy (http://www.joomla.it/e-ancora/articoli-community-3x/8688-modulo-di-contatto-con-il-check-per-accettare-l-informativa-sulla-privacy.html)" mi trovo ad avere il seguente problema:
nel frontend anzichè comparire il testo della checkbox mi compare il valore, ovvero anzichè comparire "Dichiaro di aver letto e di accettare il testo della Informativa sulla Privacy" mi compare "Si".
Qualcuno ha avuto la stessa problematica e sa aiutarmi?

Grazie per le risposte
Titolo: Re:aggiunta checkbox per accettare l'informativa sulla Privacy in form contatti
Inserito da: giusebos - 12 Apr 2018, 10:49:07
potrebbe dipendere dal template.
Ti conviene mettere un link al sito al fine di analizzare il codice per capire cosa succede.
Titolo: Re:aggiunta checkbox per accettare l'informativa sulla Privacy in form contatti
Inserito da: synt.net - 12 Apr 2018, 11:57:13
Grazie per la risposta Giusebos però preferirei scriverti in privato l'url del sito...posso?
Titolo: Re:aggiunta checkbox per accettare l'informativa sulla Privacy in form contatti
Inserito da: giusebos - 12 Apr 2018, 13:16:46
No, in privato è la negazione del forum, per questo abbiamo una sezione di annunci.
Titolo: Re:aggiunta checkbox per accettare l'informativa sulla Privacy in form contatti
Inserito da: synt.net - 12 Apr 2018, 15:24:23
La richiesta di inviarti l'url del sito era solo per riservatezza nei confronti del mio cliente...
Comunque il bug è visibile nell'immagine allegata.
Il problema inoltre si presenta anche con altre installazioni di Joomla 3.8.6 che utilizzano template diversi rispetto a quello utilizzato nel sito dell'immagine in allegato.
Titolo: Re:aggiunta checkbox per accettare l'informativa sulla Privacy in form contatti
Inserito da: synt.net - 13 Apr 2018, 09:55:02
Se può essere d'aiuto il codice del file dell'override del form dei contatti per i campi aggiuntivi è il seguente:

Codice: [Seleziona]
                        <?php //Dynamically load any additional fields from plugins. ?>
                        <?php foreach ($this->form->getFieldsets() as $fieldset) : ?>
                                <?php if ($fieldset->name != 'contact'):?>
                                        <?php $fields $this->form->getFieldset($fieldset->name);?>
                                        <?php foreach ($fields as $field) : ?>
                                                <div class="control-group">
                                                        <?php if ($field->hidden) : ?>
                                                                <div class="controls">
                                                                        <?php echo $field->input;?>
                                                                </div>
                                                        <?php else:?>
                                                                <div class="control-label">
                                                                        <?php echo $field->label?>
                                                                        <?php if (!$field->required && $field->type != "Spacer") : ?>
                                                                                <span class="optional"><?php echo JText::_('COM_CONTACT_OPTIONAL');?></span>
                                                                        <?php endif; ?>
                                                                </div>
                                                                <div class="controls"><?php echo $field->input;?></div>
                                                        <?php endif;?>
                                                </div>
                                        <?php endforeach;?>
                                <?php endif ?>
                        <?php endforeach;?>

Titolo: Re:aggiunta checkbox per accettare l'informativa sulla Privacy in form contatti
Inserito da: synt.net - 17 Apr 2018, 09:39:05
Qualcuno ha riscontrato questo comportamento anomalo?
Titolo: Re:aggiunta checkbox per accettare l'informativa sulla Privacy in form contatti
Inserito da: synt.net - 17 Apr 2018, 10:51:55
Dopo parecchie ricerche ho scoperto che modificando questo file del core di joomla "administrator/components/com_fields/libraries/fieldslistplugin.php" nel seguente modo:

Codice: [Seleziona]
public function onCustomFieldsPrepareDom($field, DOMElement $parent, JForm $form)
        {
                $fieldNode = parent::onCustomFieldsPrepareDom($field, $parent, $form);

                if (!$fieldNode)
                {
                        return $fieldNode;
                }

                $fieldNode->setAttribute('validate', 'options');

                foreach ($this->getOptionsFromField($field) as $value => $name)
                {


                        $option = new DOMElement('option', htmlspecialchars($value, ENT_COMPAT, 'UTF-8'));
-                        $option->textContent = htmlspecialchars(JText::_($name), ENT_COMPAT, 'UTF-8');
+                        $option->nodeValue = htmlspecialchars(JText::_($name), ENT_COMPAT, 'UTF-8');


                        $element = $fieldNode->appendChild($option);
                        $element->setAttribute('value', $value);
                }

                return $fieldNode;
        }

ho risolto il mio problema.
Vi chiedo se questa modifica può dare qualche problema al cms.

Grazie per le risposte...
Titolo: Re:aggiunta checkbox per accettare l'informativa sulla Privacy in form contatti
Inserito da: tomtomeight - 17 Apr 2018, 11:55:49
E' sempre sconsigliabile modificare il core, al primo aggiornamento perdi tutte le modifiche.
Ci sono molti moduli contatti che hanno di base il check, perché non provarli?
Titolo: Re:aggiunta checkbox per accettare l'informativa sulla Privacy in form contatti
Inserito da: synt.net - 17 Apr 2018, 12:12:10
Grazie per la risposta tomtomeight,
lo so che è sconsigliato modificare il core, e solitamente non lo faccio mai.
Visto che esistono i campi aggiuntivi volevo utilizzare la funziona integrata di Joomla.
Credo che se esiste una funzione del core di Joomla che non funziona correttamente sia preferibile cercare di sistemarla, anzichè ricorrere all'installazione di moduli esterni...
Titolo: Re:aggiunta checkbox per accettare l'informativa sulla Privacy in form contatti
Inserito da: synt.net - 18 Apr 2018, 10:56:30
Ho scoperto che il problema risiedeva nella versione di php utilizzata nell'hosting.
Infatti $option->textContent funziona con php >= 5.6.1
Invece per una retrocompatibilità bisogna utilizzare $option->nodeValue.

Ho risolto aggiornando la versione di php dell'hosting.
Titolo: Re:aggiunta checkbox per accettare l'informativa sulla Privacy in form contatti
Inserito da: marine - 18 Apr 2018, 11:20:40
Cortesemente ti chiedo di inserire [RISOLTO] all'inizio del titolo del tuo primo post in modo da facilitare la navigazione del forum da parte degli utenti, grazie della comprensione.