Da steh ich auch gerade auf dem Holzweg.
Folgendes ich habe eine Rückruf-Modul Programmiert. Welches mit jQuery.post eine Datei aufruf welches eine Mail abschickt. Das ganze Modul kann auf http://www.tierfotograf-nordheide.de begutachtet werden.
So folgendes Problem was ich habe. Bei Komponente kann ich ja mit index2.php?option=com_xxx?task=xxx über den Controller und den entsprechenden Task der view.html.php oder der modul.php parameter übergeben die ich in dem Controller über das Joomla-Framework ausgelesen habe übergeben.
Bei den Modulen geht das ja nicht.
So meine default.php die für das aussehen zuständig ist vom Modul sieht abgespeckt so aus:
PHP-Code:
<?php // no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
$document =& JFactory::getDocument();
$document->addScript(JURI::base().'modules/mod_callback/include/jquery.js');
$document->addScriptDeclaration("
jQuery(document).ready(function(){
jQuery(\"button[type='submit']\").click(function(){
if(jQuery(\"#Name\").val() == \"".$params->get('name')."\" || jQuery(\"#Name\").val() == \"\" ){
alert('Bitte Tragen Sie ihren Namen ein.');
jQuery(\"#Name\").focus();
}
else if(jQuery(\"#Nummer\").val() == \"".$params->get('nummer')."\" || jQuery(\"#Nummer\").val() == \"\" ){
alert('Bitte Tragen Sie eine Telefonummer ein.');
jQuery(\"#Nummer\").focus();
}
else if(jQuery(\"#Wann\").val() == \"".$params->get('wann')."\" || jQuery(\"#Wann\").val() == \"\" ){
alert('Bitte geben Sie an wann wir Sie am besten erreichen.');
jQuery(\"#Wann\").focus();
}
else{
var name = new Array();
var nummer = new Array();
var wann = new Array();
name.push(jQuery(\"input[name='Name']\").val());
nummer.push(jQuery(\"input[name='Nummer']\").val());
wann.push(jQuery(\"input[name='Wann']\").val());
jQuery.post(\"modules/mod_callback/mod_mail.php\", {name: \"\"+name+\"\", nummer: \"\"+nummer+\"\", wann: \"\"+wann+\"\"}, function(data){
jQuery('#frei').html(data);
jQuery('div.callback').css('display','none');
});
}
});
jQuery(\"#Name\").focus(function() {
if(jQuery(this).val() == \"".$params->get('name')."\")
jQuery(this).val('');
});
jQuery(\"#Name\").blur(function() {
if(jQuery(this).val() == \"\")
jQuery(this).val('".$params->get('name')."');
});
jQuery(\"#Nummer\").focus(function() {
if(jQuery(this).val() == \"".$params->get('nummer')."\")
jQuery(this).val('');
});
jQuery(\"#Nummer\").blur(function() {
if(jQuery(this).val() == \"\")
jQuery(this).val('".$params->get('nummer')."');
});
jQuery(\"#Wann\").focus(function() {
if(jQuery(this).val() == \"".$params->get('wann')."\")
jQuery(this).val('');
});
jQuery(\"#Wann\").blur(function() {
if(jQuery(this).val() == \"\")
jQuery(this).val('".$params->get('wann')."');
});
});");
echo '<div class="callback">
<input name="Name" id="Name" type="text" value="'.$params->get('name').'" size="'.$params->get('inputsize').'" maxlength="255" />
<input name="Nummer" id="Nummer" type="text" value="'.$params->get('nummer').'" size="'.$params->get('inputsize').'" maxlength="255" />
<input name="Wann" id="Wann" type="text" value="'.$params->get('wann').'" size="'.$params->get('inputsize').'" maxlength="255" />
<div class="button-box"><button type="submit" class="button validate">'.$params->get('button').'</button><span> </span></div><div style="clear:both;"></div></div>
<div id="frei"></div>';
Ich würde gerne irgendwie der Datei modules/mod_callback/mod_mail.php oder in ihr die Parameter des Moduls auslesen.
Im Backend will ich nämlich die E-Mail-adressen festlegen an die es gesendet werden soll. Ich könnte natürlich meine e-mail-adresse in der default.php mit params->get('mail') auslesen und an mod_mail.php mit jquery post übergeben so ist aber die E-Mail adresse im HTML-Code lesbar.
meine mod_mail.php sieht so aus:
PHP-Code:
<?php
if(send()) echo "<h4>Ich melde mich, wenn möglich zur gewünschten Zeit<br />
".$_POST['wann']."<br />
bei Ihnen unter der angebenen Nummer<br />
".$_POST['nummer']."</h4>";
else echo "<span style=\"color:red;\">Service konnte nicht aktiviert werden</span>";
function send() {
//################## Kontakt abteil
// mehrere Empfänger
// hier muss ich alles Händisch eintragen, was ich gerne über die parametersteuern will
$mail = "absender-mail";
$name = "Name des Absenders";
$empfaenger = 'empfaengermail';
//$empfaenger = $_POST[empfaenger];
// Betreff
$betreff = 'Rrückruf-Service';
// Nachricht
$nachricht = '
<html>
<head>
<title>'.$betreff.'</title>
</head>
<body>
<table border=0 cellspacing="0" cellpadding="0">
<tr>
<td><strong>Name: </strong></td><td>'.$_POST['name'].'</td>
</tr>
<tr>
<td><strong>Nummer: </strong></td><td>'.$_POST['nummer'].'</td>
</tr>
<tr>
<td><strong>Wann: </strong></td><td>'.$_POST['wann'].'</td>
</tr>
</table>
</body>
</html>
';
// zusätzliche Header
$header = 'From: =?utf-8?b?'.base64_encode($name).'?= <'.trim($mail).'>' . "\n";
$header .= 'Subject: '.trim($mail). "\n";
$header .= 'Return-Path: '.trim($mail). "\n";
$header .= 'X-Priority: 3' . "\n";
$header .= 'Content-Transfer-Encoding: 8bit' . "\n";
$header .= 'Content-type: text/html; charset=utf-8' . "\n";
$header .= 'MIME-Version: 1.0' . "\n";
if(mail($empfaenger, $betreff, $nachricht, $header)){
return true;
}
return $false;
}
?>
Lesezeichen