Danke für deine Hilfe!
zu a) Das war eigentlich mein Ziel. Ich dachte, wenn ich in der partner.php (weiter unten) die Funktion in eine Variable schreibe und die Variable im Template ausgebe, würde es es so funktionieren.
zu b) Da ich ja noch ein paar Variablen via PHP ins HTML-form gebe, geht das leider nicht - oder ich bekomme es nicht hin
zu c) Es spräche ja eigentlich nichts dagegen, PHP in Templates zu aktivieren. Ich nehme aber mal an, dass es ein (weiteres) Sicherheitsrisiko ist? (Neben meinem 100%-XSS-sicheren Formular

)
Hier nun die beiden relevanten Dateien. Das Template enthält derzeit nur ein wenig Text.
partner.php, die Seite, auf die in der Navigation verlinkt wird:
Code: Alles auswählen
<?php
/**
*
* @author Original Autor Benutzername autor_email@domain.de - http://meine-seite.de
* @author Anderer Autor Benutzername andere_email@domain.de - http://domain.de
*
* @package {PACKAGENAME}
* @version $Id$
* @copyright (c) 2007 Dein Gruppen Name
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/
/**
* @ignore
*/
// Benötigte Dateien und Variablen von phpBB
define('IN_PHPBB', true);
$phpbb_root_path = './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
// Da wir weiter unten noch einen Avatar anzeigen lassen wollen,
// benötigen wir noch die dazu passende Funktion
// die in der Datein includes/functions_display.php vorhanden ist.
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
// Session auslesen und Benutzer-Informationen laden
$user->session_begin(); // Session auslesen
$auth->acl($user->data); // Benutzer-Informationen laden
$user->setup('mods/partner'); // Sprachvariablen aus eigener Sprach Datei laden
require_once('partnerform.php');
$partnerform = partnerform();
page_header($user->lang['MEIN_TITEL']);
// Defniere nun den Dateinamen Deines Templates welches Du benutzen moechtest.
// Dies ist der Name von Deinem Template welches unter /styles/<style>/templates/ zu finden ist.
$template->set_filenames(array(
'body' => 'partner.html',
));
// Script vervollständigen und Seite anzeigen lassen.
page_footer();
?>
Die partnerform.php ist ein normales Kontaktformular, abgekürzt und nur auf das Wichtigste beschränkt:
Code: Alles auswählen
<?php
function partnerform() {
// setze Variablen zum späteren Mailversand (Betreff, E-Mail-Adresse, etc.)
...
// hole POST-Daten und schreibe sie in Variablen
...
// validiere Daten
if(isset($_POST['submit'])) {
if($name == '' || $homepage == '' || $bannerurl == ''){
$errormsg .= $info['empty_fields'];
$error = true;
}
if(!ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$", $email)) {
$errormsg .= $info['invalid_email'];
$error = true;
}
if ($error != true) {
$at_message = "Partneranfrage\n\nName: $name\n
E-Mail: $email\n
Homepage: $homepage\n
URL zum Banner: $bannerurl\n
Nachricht:\n$message\n\n
Gesendet am $datum um $uhrzeit.";
mail($at_mail, $at_subject, $at_message, $from_mail);
echo $info['sent'];
} else{
echo $errormsg;
}
}
}
?>
<form name="partnerform" class="partnerform" action="<? echo $_SERVER['PHP_SELF']; ?>" method="post">
<div>
<label for="name">Name: *</label>
<input name="name" type="text" id="name" value="<? echo $name; ?>" maxlength="30" />
</div>
<div>
<label for="email">E-Mail-Adresse: *</label>
<input name="email" type="text" id="email" value="<? echo $email; ?>" maxlength="30" />
</div>
<div>
<label for="homepage">Homepage *:</label>
<input name="homepage" type="text" id="homepage" value="<? echo $homepage; ?>" maxlength="100" />
</div>
<div>
<label for="bannerurl">URL zum Banner *:</label>
<input name="bannerurl" type="text" id="bannerurl" value="<? echo $bannerurl; ?>" maxlength="100" />
</div>
<div>
<label for="message">Nachricht:</label>
<textarea name="message" id="message"><? echo $message; ?></textarea>
</div>
<div><p>* Pflichtfelder</p></div>
<div>
<input type="hidden" name="honeypot" maxlength="20" />
<input type="submit" value="Abschicken" class="submit button1" name="submit" />
<input type="reset" class="submit button1" value="Zurücksetzen" />
</div>
</form>
<?php
}
?>