Joomla! Template Override:

Kontaktformular mit Captcha am Ende


Das ist ein kleiner Override für das Kontaktformulars in Joomla. Der Captcha wird hier an letzte Stelle gesetzt im Formular. Normalerweise befindet sich noch die Datenschutzvereinbarung unten drunter, was ich persönlich von der Abfolge nicht so schön gelöst finde. Jedenfalls ist das hier eine Alternative. Das habe ich für einen Kunden benötigt und Michael Barg hat das ganze für mich geschrieben.

Benötigte Override-Dateien


  • <?php
    /**
     * @package     Joomla.Site
     * @subpackage  com_contact
     *
     * @copyright   Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
     * @license     GNU General Public License version 2 or later; see LICENSE.txt
     */
    
    defined('_JEXEC') or die;
    
    JHtml::_('behavior.keepalive');
    JHtml::_('behavior.formvalidator');
    
    // BARG-IT   catch captcha-fieldset
    $captcha_fields =[];
    
    ?>
    <div class="contact-form">
    	<form id="contact-form" action="<?php echo JRoute::_('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 // BARG-IT   catch captcha-fieldset
    				if ($fieldset->name === 'captcha'  && $this->captchaEnabled): ?>
    				<?php 
    				// $captcha_given=true;
    				$captcha_fieldset = $fieldset;
    				$captcha_fields = $this->form->getFieldset($fieldset->name);
    				continue;
    				?>
    			<?php endif; ?>
    			
    			
    			<?php $fields = $this->form->getFieldset($fieldset->name); ?>
    			<?php if (count($fields)) : ?>
    				<fieldset>
    					<?php if (isset($fieldset->label) && ($legend = trim(JText::_($fieldset->label))) !== '') : ?>
    						<legend class="<?php echo trim(JText::_($fieldset->name)); ?>" ><?php echo $legend; ?></legend>
    					<?php endif; ?>
    					<?php foreach ($fields as $field) : ?>
    						<?php echo $field->renderField(); ?>
    					<?php endforeach; ?>
    				</fieldset>
    			<?php endif; ?>
    		<?php endforeach; ?>
    		
    
    		<?php // BARG-IT   show captcha-fieldset
    			if (count($captcha_fields)) : ?>
    			<fieldset>
    				<?php if (isset($captcha_fieldset->label) && ($legend = trim(JText::_($captcha_fieldset->label))) !== '') : ?>
    					<legend class="captcha"><?php echo $legend; ?></legend>
    				<?php endif; ?>
    				<?php foreach ($captcha_fields as $field) : ?>
    					<?php echo $field->renderField(); ?>
    				<?php endforeach; ?>
    			</fieldset>
    		<?php endif; ?>
    
    
    
    		
    		<div class="control-group">
    			<div class="controls">
    				<button class="btn btn-primary validate" type="submit"><?php echo JText::_('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->contact->slug; ?>" />
    				<?php echo JHtml::_('form.token'); ?>
    			</div>
    		</div>
    	</form>
    </div>
    


Michael Barg




Fehler melden

Bitte beachte unsere Datenschutzerklärung

Alle mit * markierten Felder werden benötigt um eine E-Mail zu senden.