Welkom bij Joomla!NL

Om alle mogelijkheden van dit forum te kunnen gebruiken, moet je je eerst registreren.

Vermeld in iedere vraag duidelijk:
  1. De versie van Joomla! 4.X die je gebruikt
  2. De volledige url van je website indien mogelijk.
  3. De versie van de extensie waar de vraag over gaat.

Volgorde velden standaard contactformulier

Volgorde velden standaard contactformulier

26 sep 2022 19:10
#1
Goeiemiddag,

Met behulp van een custom field is een extra veld aangemaakt in het standaard Joomla contactformulier, voor het laten invullen van een telefoonnummer.
Nu komt deze helaas onderaan te staan, net boven de verzendknop, maar de bedoeling is deze net onder "email" te plaatsen.

Op internet kwam ik wel deze uitleg tegen, maar helaas is dit voor Joomla 3 en werkt dit voor Joomla 4 blijkbaar niet. Na pagina verversen is de aanpassing weer verdwenen.

is er een andere manier om de volgorde van de velden in het contactformulier aan te passen? Of (hoe) kan het in de link genoemde default_form.php aangepast worden voor Joomla 4?

Alvast bedankt.

(Joomla 4.2.2)
  • Lockerbie
  • Lockerbie's berichtenfoto Heeft onderwerp gestart
  • Bekend met Joomla!NL
  • Bekend met Joomla!NL
  • Berichten: 112

Volgorde velden standaard contactformulier

26 sep 2022 19:18
#2
Met vriendelijke groet,
Wouter Compactweb.nl
Voordat je een vraag post, gebruik eerst de zoekfunctie van ons forum.
Wil je Joomla!NL steunen? Dat kan met een donatie.

  • WoodyF4u
  • WoodyF4u's Profielfoto
  • Moderator + Nieuwsteam
  • Moderator + Nieuwsteam
  • Berichten: 11170

Volgorde velden standaard contactformulier

26 sep 2022 19:51
#3
Helaas: dat is dezelfde link en dat betreft dus Joomla 3.
  • Lockerbie
  • Lockerbie's berichtenfoto Heeft onderwerp gestart
  • Bekend met Joomla!NL
  • Bekend met Joomla!NL
  • Berichten: 112

Volgorde velden standaard contactformulier

27 sep 2022 14:20
#4
Via een ouder bericht op een Joomla 3-forum weet ik dat de velden apart aangeroepen en gerenderd moeten worden in de gewenste volgorde.
Dus dit stukje (regel 23 t/m 38 van default_form.php?):
Code:
<?php foreach ($this->form->getFieldsets() as $fieldset) : ?> ... <?php endforeach; ?>

zou dan aangepast moeten worden naar iets als:
Code:
<?php echo $this->form->renderField('contact_name'); ?> <?php echo $this->form->renderField('contact_email'); ?> ....

Maar nogmaals: dit is voor Joomla 3. Blijkbaar werkt dit voor Joomla 4 net weer iets anders?
  • Lockerbie
  • Lockerbie's berichtenfoto Heeft onderwerp gestart
  • Bekend met Joomla!NL
  • Bekend met Joomla!NL
  • Berichten: 112

Volgorde velden standaard contactformulier

27 sep 2022 14:37
#5
Die override werkt ook voor Joomla 4. Let er wel op dat je veldnamen overeenkomen (mobile en phone) of verander deze in je override.
Groetjes, Astrid
Gebruik de zoekfunctie van dit forum voordat je een nieuwe vraag plaatst.
Vragen uitsluitend via dit forum.
yndi.nl - kvk 17157725
Is je vraag beantwoord? Dan kan je het draadje zelf sluiten .
Wil je Joomla!NL steunen? Dat kan met een donatie.

  • Astrid
  • Astrid's Profielfoto
  • Moderator + Technisch team
  • Moderator + Technisch team
  • Berichten: 37114

Volgorde velden standaard contactformulier

27 sep 2022 16:05
#6
Zelfs al verwijder/comment out ik alleen maar bijvoorbeeld de
Code:
<legend>
na 1e keer pagina verversen: wijzigingen zichtbaar,
na 2e keer pagina verversen: wijzigingen verdwenen, override-bestanden verdwenen en layout terug naar situatie voor de override.
(Zowel via template-override geprobeerd als rechtstreeks via ftp.)
  • Lockerbie
  • Lockerbie's berichtenfoto Heeft onderwerp gestart
  • Bekend met Joomla!NL
  • Bekend met Joomla!NL
  • Berichten: 112

Volgorde velden standaard contactformulier

27 sep 2022 16:36
#7
Dan doe je toch iets niet goed. Overridebestanden kunnen niet verdwijnen.
Groetjes, Astrid
Gebruik de zoekfunctie van dit forum voordat je een nieuwe vraag plaatst.
Vragen uitsluitend via dit forum.
yndi.nl - kvk 17157725
Is je vraag beantwoord? Dan kan je het draadje zelf sluiten .
Wil je Joomla!NL steunen? Dat kan met een donatie.

  • Astrid
  • Astrid's Profielfoto
  • Moderator + Technisch team
  • Moderator + Technisch team
  • Berichten: 37114

Volgorde velden standaard contactformulier

27 sep 2022 19:42
#8
Origineel bestand (via template-override): components/com_contact/tmpl/contact/default_form.php
Code:
<?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright (C) 2006 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\Router\Route; HTMLHelper::_('behavior.keepalive'); HTMLHelper::_('behavior.formvalidator'); ?> <div class="com-contact__form contact-form"> <form id="contact-form" action="<?php echo Route::_('index.php'); ?>" method="post" class="form-validate form-horizontal well"> <?php foreach ($this->form->getFieldsets() as $fieldset) : ?> <?php if ($fieldset->name === 'captcha' && !$this->captchaEnabled) : ?> <?php continue; ?> <?php endif; ?> <?php $fields = $this->form->getFieldset($fieldset->name); ?> <?php if (count($fields)) : ?> <fieldset class="m-0"> <?php if (isset($fieldset->label) && ($legend = trim(Text::_($fieldset->label))) !== '') : ?> <legend><?php echo $legend; ?></legend> <?php endif; ?> <?php foreach ($fields as $field) : ?> <?php echo $field->renderField(); ?> <?php endforeach; ?> </fieldset> <?php endif; ?> <?php endforeach; ?> <div class="control-group"> <div class="controls"> <button class="btn btn-primary validate" type="submit"><?php echo Text::_('COM_CONTACT_CONTACT_SEND'); ?></button> <input type="hidden" name="option" value="com_contact"> <input type="hidden" name="task" value="contact.submit"> <input type="hidden" name="return" value="<?php echo $this->return_page; ?>"> <input type="hidden" name="id" value="<?php echo $this->item->slug; ?>"> <?php echo HTMLHelper::_('form.token'); ?> </div> </div> </form> </div>

Aangepast bestand: templates/e4jplaza/html/com_contact/contact/default_form.php

Poging 1 - nav. override in Joomla 3/4.
Code:
<?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright (C) 2006 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\Router\Route; HTMLHelper::_('behavior.keepalive'); HTMLHelper::_('behavior.formvalidator'); ?> <div class="com-contact__form contact-form"> <form id="contact-form" action="<?php echo Route::_('index.php'); ?>" method="post" class="form-validate form-horizontal well"> <?php echo $this->form->renderField('contact_name'); ?> <?php echo $this->form->renderField('contact_email'); ?> <?php echo $this->form->renderField('phone'); ?> <?php echo $this->form->renderField('contact_subject'); ?> <?php echo $this->form->renderField('contact_message'); ?> <div class="control-group"> <div class="controls"> <button class="btn btn-primary validate" type="submit"><?php echo Text::_('COM_CONTACT_CONTACT_SEND'); ?></button> <input type="hidden" name="option" value="com_contact"> <input type="hidden" name="task" value="contact.submit"> <input type="hidden" name="return" value="<?php echo $this->return_page; ?>"> <input type="hidden" name="id" value="<?php echo $this->item->slug; ?>"> <?php echo HTMLHelper::_('form.token'); ?> </div> </div> </form> </div>

Poging 2 - aangepast default_form.php uit de link in mijn 1e bericht. (Ook alle "JText", "JHtml" en "JRoute" aangepast.)
Code:
<?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright (C) 2006 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\Router\Route; HTMLHelper::_('behavior.keepalive'); HTMLHelper::_('behavior.formvalidator'); ?> <div class="com-contact__form contact-form"> <form id="contact-form" action="<?php echo Route::_('index.php'); ?>" method="post" class="form-validate form-horizontal well"> <?php foreach ($this->form->getFieldsets() as $fieldset) : ?> <?php if ($fieldset->name === 'captcha' && !$this->captchaEnabled) : ?> <?php continue; ?> <?php endif; ?> <?php $fields = $this->form->getFieldset($fieldset->name); ?> <?php if (count($fields)) : ?> <?php endif; ?> <?php endforeach; ?> <fieldset> <?php if (isset($fieldset->label) && ($legend = trim(Text::_($fieldset->label))) !== '') : ?> <legend><?php echo Text::_('COM_CONTACT_CONTACT_DEFAULT_LABEL'); ?></legend> <?php endif; ?> <div class="control-group"> <div class="control-label"><?php echo $this->form->getLabel('contact_name'); ?></div> <div class="controls"><?php echo $this->form->getInput('contact_name'); ?></div> </div> <div class="control-group"> <div class="control-label"><?php echo $this->form->getLabel('contact_email'); ?></div> <div class="controls"><?php echo $this->form->getInput('contact_email'); ?></div> </div> <?php if($this->form->getInput('mobile','com_fields') != ''): ?> <div class="control-group"> <div class="control-label"><?php echo $this->form->getLabel('mobile', 'com_fields'); ?></div> <div class="controls"><?php echo $this->form->getInput('mobile', 'com_fields'); ?></div> </div> <?php endif; ?> <?php if($this->form->getInput('phone','com_fields') != ''): ?> <div class="control-group"> <div class="control-label"><?php echo $this->form->getLabel('phone', 'com_fields'); ?></div> <div class="controls"><?php echo $this->form->getInput('phone', 'com_fields'); ?></div> </div> <?php endif; ?> <div class="control-group"> <div class="control-label"><?php echo $this->form->getLabel('contact_subject'); ?></div> <div class="controls"><?php echo $this->form->getInput('contact_subject'); ?></div> </div> <div class="control-group"> <div class="control-label"><?php echo $this->form->getLabel('contact_message'); ?></div> <div class="controls"><?php echo $this->form->getInput('contact_message'); ?></div> <br /> <?php if ($this->params->get('show_email_copy')) : ?> <div class="control-group"> <div class="control-label"><?php echo $this->form->getInput('contact_email_copy'); ?> <?php echo $this->form->getLabel('contact_email_copy'); ?></div> </div><br /> <?php endif; ?> </div> </fieldset> <fieldset> <div class="control-group"> <div class="control-label"><?php echo $this->form->getLabel('captcha'); ?></div> <div class="controls"><?php echo $this->form->getInput('captcha'); ?></div> </div> </fieldset> <div class="control-group"> <div class="controls"> <button class="btn btn-primary validate" type="submit"><?php echo Text::_('COM_CONTACT_CONTACT_SEND'); ?></button> <input type="hidden" name="option" value="com_contact"> <input type="hidden" name="task" value="contact.submit"> <input type="hidden" name="return" value="<?php echo $this->return_page; ?>"> <input type="hidden" name="id" value="<?php echo $this->item->slug; ?>"> <?php echo HTMLHelper::_('form.token'); ?> </div> </div> </form> </div>
  • Lockerbie
  • Lockerbie's berichtenfoto Heeft onderwerp gestart
  • Bekend met Joomla!NL
  • Bekend met Joomla!NL
  • Berichten: 112

Volgorde velden standaard contactformulier

28 sep 2022 08:54
#9
Wat gaat er dan niet goed? Die laatste zou moeten werken.
Groetjes, Astrid
Gebruik de zoekfunctie van dit forum voordat je een nieuwe vraag plaatst.
Vragen uitsluitend via dit forum.
yndi.nl - kvk 17157725
Is je vraag beantwoord? Dan kan je het draadje zelf sluiten .
Wil je Joomla!NL steunen? Dat kan met een donatie.

  • Astrid
  • Astrid's Profielfoto
  • Moderator + Technisch team
  • Moderator + Technisch team
  • Berichten: 37114

Volgorde velden standaard contactformulier

28 sep 2022 09:32
#10
Ze werken allebei. Dat wil zeggen: de eerste keer dat je de pagina bekijkt. Na pagina verversen is de override verdwenen uit de layout en uit de bestanden.
  • Lockerbie
  • Lockerbie's berichtenfoto Heeft onderwerp gestart
  • Bekend met Joomla!NL
  • Bekend met Joomla!NL
  • Berichten: 112

Volgorde velden standaard contactformulier

28 sep 2022 11:12
#11
Hoe plaats je dat override-bestand dan in de html-map?
Als je dat middels FTP doet dan kan zo'n bestand niet verdwijnen met een browser-refresh.
Met vriendelijke groet,
Wouter Compactweb.nl
Voordat je een vraag post, gebruik eerst de zoekfunctie van ons forum.
Wil je Joomla!NL steunen? Dat kan met een donatie.

  • WoodyF4u
  • WoodyF4u's Profielfoto
  • Moderator + Nieuwsteam
  • Moderator + Nieuwsteam
  • Berichten: 11170

Volgorde velden standaard contactformulier

28 sep 2022 11:35
#12
1. Geprobeerd via template-override:
Netjes override aangeklikt, bestand aangepast en opgeslagen. Na 1e keer verversen zichtbaar, na 2e keer terug naar situatie ervoor.

2. Geprobeerd via ftp:
Mappen aangemaakt (/templates/e4jplaza/html/com_contact/contact) en bestand (default_form.php) daarin geplaatst. Met hetzelfde resultaat als hierboven.

Vreemd. Ik heb al vaker overrides gemaakt, maar dit heb ik nog nooit meegemaakt.
Zou dit (ook) met het template te maken kunnen hebben? Ik gebruik template "Plaza" van VikBooking (ExtensionsForJoomla/e4j).
Het standaard contactformulier bij dat template "wil" niet verzenden; daar zijn al talloze mails naar hoster en e4j over verstuurd.
Het contactformulier van Joomla kan gelukkig wel verzonden worden, dus die wil ik ervoor in de plaats gaan zetten, na de gewenste aanpassingen dan.
  • Lockerbie
  • Lockerbie's berichtenfoto Heeft onderwerp gestart
  • Bekend met Joomla!NL
  • Bekend met Joomla!NL
  • Berichten: 112
Tijd voor maken pagina: 1.018 seconden

Wil je Joomla!NL steunen?

Steun Joomla!NLAlle teamleden werken enthousiast, op vrijwillige basis, mee aan Joomla!NL. Maar een website met forum kost nu eenmaal geld. Dus als je Joomla!NL wilt steunen, dan kan dat, graag zelfs!

Lees hier meer informatie