Hallo Zusammen,
im Shop ist ja ein vorgefertigtest Kontaktformular (Emails) vorhanden.
Ich möchte gerne einen Link im Hauptmenü (neben AGB und Impressum) einfügen.
Wie rufe ich das Kontaktformular als link auf?
Ich habe im CMS eine neue Seite generiert und dann erscheint auch das Wort Kontakt neben AGB und Impressum.
Der Link geht aber dann logischerweise auf die neue CMS-Seite und nicht auf das Kontaktformular.
Kann mir jemand einen Tip geben?
Ok, aber kannst Du mir evtl. noch etwas weiter helfen? Solch einen Link möchte ich ebenfalls setzen, allerdings zu einer Variante des ursprünglichen Kontaktformulars, dieses soll weiter erhalten bleiben. Das Kontakt Template ist ja unter /out/basic/tpl/contact.tpl beheimatet.
Ich dachte man kann dieses im selben Ordner kopieren und umbenennen z.B. als anfrage.tpl. Dieses will ich dann verlinken und zu einem Anfrageformular für individuelle Zuschnitte umbauen.
da musst du die contact.php duplizieren und anfrage.php nennen hier der code für die anfrage.php
Das war die contact.php aus dem views ordner und ist jetzt de anfrage.php im views ordner.
das contact.tpl duplizieren in anfrage.tpl und darin statt contact anfrage als Klasse im Form übergeben. Im oben geposteten Link schreibst du dann cl=anfrage statt contact
<?php
/**
* This Software is the property of OXID eSales and is protected
* by copyright law - it is NOT Freeware.
*
* Any unauthorized use of this software without a valid license key
* is a violation of the license agreement and will be prosecuted by
* civil and criminal law.
*
* @link http://www.oxid-esales.com
* @package views
* @copyright (C) OXID eSales AG 2003-2010
* @version OXID eShop PE
* @version SVN: $Id: contact.php 26581 2010-03-16 15:59:53Z vilma $
*/
/**
* Contact window.
* Arranges "CONTACT" window, by creating form for user opinion (etc.)
* submission. After user correctly
* fulfils all required fields all information is sent to shop owner by
* email. OXID eShop -> CONTACT.
*/
class Anfrage extends oxUBase
{
/**
* Entered user data.
* @var array
*/
protected $_aUserData = null;
/**
* Entered contact subject.
* @var string
*/
protected $_sContactSubject = null;
/**
* Entered conatct message.
* @var string
*/
protected $_sContactMessage = null;
/**
* Class handling CAPTCHA image.
* @var object
*/
protected $_oCaptcha = null;
/**
* Contact email send status.
* @var object
*/
protected $_blContactSendStatus = null;
/**
* Current class template name.
* @var string
*/
protected $_sThisTemplate = 'anfrage.tpl';
/**
* Current view search engine indexing state
*
* @var int
*/
protected $_iViewIndexState = VIEW_INDEXSTATE_NOINDEXNOFOLLOW;
/**
* Executes parent::render(), loads action articles and sets parameters
* (subject, message) used by template engine. Returns name
* of template to render contact::_sThisTemplate
*
* Template variables:
* <b>c_subject</b>, <b>c_message</b>, <b>editval</b>, <b>useantispam</b>
*
* @return string
*/
public function render()
{
parent::render();
$this->_aViewData['editval'] = $this->getUserData();
$this->_aViewData['c_subject'] = $this->getContactSubject();
$this->_aViewData['c_message'] = $this->getContactMessage();
//captcha
$this->_aViewData['oCaptcha'] = $this->getCaptcha();
$this->_aViewData['success'] = $this->getContactSendStatus();
return $this->_sThisTemplate;
}
/**
* Composes and sends user written message, returns false if some parameters
* are missing.
*
* Template variables:
* <b>error</b>, <b>success</b>
*
* @return bool
*/
public function send()
{
// spam spider prevension
$sMac = oxConfig::getParameter( 'c_mac' );
$sMacHash = oxConfig::getParameter( 'c_mach' );
$oCaptcha = oxNew('oxCaptcha');
$aParams = oxConfig::getParameter( 'editval' );
$sSubject = oxConfig::getParameter( 'c_subject' );
$sBody = oxConfig::getParameter( 'c_message' );
// checking email address
if ( !oxUtils::getInstance()->isValidEmail( $aParams['oxuser__oxusername'] ) ) {
oxUtilsView::getInstance()->addErrorToDisplay( 'EXCEPTION_INPUT_NOVALIDEMAIL' );
return false;
}
if ( !$oCaptcha->pass($sMac, $sMacHash ) ) {
// even if there is no exception, use this as a default display method
oxUtilsView::getInstance()->addErrorToDisplay( 'EXCEPTION_INPUT_NOTALLFIELDS' );
return false;
}
if ( !$aParams['oxuser__oxfname'] || !$aParams['oxuser__oxlname'] || !$aParams['oxuser__oxusername'] || !$sSubject ) {
// even if there is no exception, use this as a default display method
oxUtilsView::getInstance()->addErrorToDisplay( 'EXCEPTION_INPUT_NOTALLFIELDS' );
return false;
}
$sMessage = oxLang::getInstance()->translateString( 'CONTACT_FROM' )." ".$aParams['oxuser__oxsal']." ".$aParams['oxuser__oxfname']." ".$aParams['oxuser__oxlname']."(".$aParams['oxuser__oxusername'].")<br /><br />";
$sMessage .= nl2br( $sBody );
$oEmail = oxNew( 'oxemail' );
if ( $oEmail->sendContactMail( $aParams['oxuser__oxusername'], $sSubject, $sMessage ) ) {
$this->_blContactSendStatus = 1;
}
}
/**
* Template variable getter. Returns entered user data
*
* @return object
*/
public function getUserData()
{
if ( $this->_oUserData === null ) {
$this->_oUserData = oxConfig::getParameter( 'editval' );
}
return $this->_oUserData;
}
/**
* Template variable getter. Returns entered contact subject
*
* @return object
*/
public function getContactSubject()
{
if ( $this->_sContactSubject === null ) {
$this->_sContactSubject = oxConfig::getParameter( 'c_subject' );
}
return $this->_sContactSubject;
}
/**
* Template variable getter. Returns entered message
*
* @return object
*/
public function getContactMessage()
{
if ( $this->_sContactMessage === null ) {
$this->_sContactMessage = oxConfig::getParameter( 'c_message' );
}
return $this->_sContactMessage;
}
/**
* Template variable getter. Returns object of handling CAPTCHA image
*
* @return object
*/
public function getCaptcha()
{
if ( $this->_oCaptcha === null ) {
$this->_oCaptcha = oxNew('oxCaptcha');
}
return $this->_oCaptcha;
}
/**
* Template variable getter. Returns status if email was send succesfull
*
* @return object
*/
public function getContactSendStatus()
{
return $this->_blContactSendStatus;
}
}