Hallo zusammen,
ich hänge hier gerade bei einem Override der Kontakt-Komponente.
Ich habe die default.php folgendermaßen geändert:
PHP
<?php
/**
* @package Joomla.Site
* @subpackage com_contact
*
* @copyright Copyright (C) 2005 - 2017 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
defined('_JEXEC') or die;
$tparams = $this->item->params;
// Normally set in the *_forms.php
JHtml::_('behavior.keepalive');
JHtml::_('behavior.formvalidator');
*/ $this->form->setFieldAttribute('contact_subject', 'default', ' ');
$this->form->setFieldAttribute('contact_subject', 'type', 'hidden'); <--- Das half auch nicht! */
?>
<div class="contact<?php echo $this->pageclass_sfx; ?>" itemscope itemtype="https://schema.org/Person">
<?php if ($tparams->get('show_page_heading')) : ?>
<h1>
<?php echo $this->escape($tparams->get('page_heading')); ?>
</h1>
<?php endif; ?>
<?php // If the form is enabled for the user and either a e-mail or a user is set we display a form ?>
<?php if ($tparams->get('show_email_form') && ($this->contact->email_to || $this->contact->user_id)) : ?>
<div class="contact-form">
<form id="contact-form" action="<?php echo JRoute::_('index.php'); ?>" method="post" class="form-validate form-horizontal kws-contact-form">
<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>
<div id="telefon" class="control-group" >
<div class="control-label">
<?php echo $this->form->getLabel('telefon','com_fields'); ?>
</div>
<div class="controls">
<?php echo $this->form->getInput('telefon','com_fields'); ?>
</div>
</div>
</fieldset>
<div class="datenschutz"><input type="checkbox" id="datenschutz" class="required" name="datenschutz" required="required" data-original-title="Datenschutzerklärung"><label for="kwsprivacy">Datenschutzerklärung</label>
Mit dem Absenden des Formulares stimme ich der Nutzung der von mir übermittelten Daten zur weiteren Kommunikation zu. Die Daten dürfen bis zum Abschluss des Vorgangs oder entsprechend gesetzlicher Fristen gespeichert werden. Darüber hinaus wurde mir mitgeteilt, dass meine aktuelle IP-Adresse, der verwendete Internetbrowser und das verwendete Betriebssystem übertragen werden. Dies geschieht aus Sicherheitsgründen und erfolgt gleichermaßen bei einer Kommunikation mittels Emailprogrammen im sog. Email-Header. </div>
<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>
<?php endif; ?>
</div>
Alles anzeigen
So weit, so gut. das Formular wird mir angezeigt wie ich es brauche.
ABER, nach dem Absenden erhalte ich die Fehlermeldung dass der Betreff und die Nachricht benötigt werden, da es Pflichtfelder sind. Die beiden Felder sind aber nicht in meinem Override enthalten. Wo holt er sich das her und vor allem wie kann ich das unterbinden?
In der Komponente im Backend selbst kann ich die Felder ja nicht bearbeiten/sehen.
Auch der Tipp aus einem anderen Beitrag, folgenden Code einzufügen half nicht.
Code
$this->form->setFieldAttribute('contact_subject', 'default', ' ');
$this->form->setFieldAttribute('contact_subject', 'type', 'hidden');
Danke schon einmal für eure Unterstützung!