PHP-Code ausführen

Allgemeine Diskussionen zu ConPresso 4. Handhabung, Möglichkeiten, Verständnisfragen.
Achtung: Bitte benutzt wenn möglich die themenspezifischen Foren!
Antworten
fbecker

PHP-Code ausführen

Beitrag von fbecker »

Gibt es möglichkeiten PHP Funktionen im redaktionellen Bereich zu deklarieren oder auszuführen?
Also ohne Local/Global Header/Footer in die Hand zu nehmen.
Ich habe beim erstellen eines Templates einen javascript/Php-Bereich gefunden, doch das witzige ist, dass dieser genau so wie in sämtlichen anderen Textareas bestimmte Zeichen, die zum Programmieren benutzt werden, in Ihren HTML-tauglichen Partner umwandelt.
Gibt es überhaupt eine Möglichkeint Code-Snippets auszuführen?
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7361
Registriert: 01.01.1970 01:00
Hat sich bedankt: 110 Mal
Danksagung erhalten: 933 Mal
Kontaktdaten:

Re: PHP-Code ausführen

Beitrag von MarkusR »

Ohne Eingriff in eine PHP-Datei... NEIN!

Die Felder im Template Bereich sind für die Templates gedacht, die von index_php.php und index_js.php benutzt werden. Diese werden geparst und können daher keinen auszuführenden PHP-Code enthalten.

Wären Redakteure in der Lage PHP, HTML oder Javascript zu schreiben bzw. wollte man ihnen dieses überlassen bräuchte man kein Conpresso!

Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
fbecker

Re: PHP-Code ausführen

Beitrag von fbecker »

Danke für die schnelle Antwort!
Vielleicht gibt es auch Redakteure, die ein technisches Hintergrundwissen haben und nur eine Arbeitserleichterung brauchen.
Aber dann sollte ich wohl ein Beispiel nennen.
Wie mache ich zum Beispiel ein HTML-Kontakt-Formular das an sich selbst geschickt.
Ich könnte mir vorstellen die phpmailer.php in in einer Header-Datei zu includieren
aber der die zeile
<form action ="<? print $_SERVER['PHP_SELF'] ?> ...
das funktioniert nicht...
Es wäre halt nicht schlecht, wenn man die Möglichkeit hätte Funktionen den Redateuren an die Hand geben zu können, um diese dann ausführen zu lassen...
Oder wie kann man sonst ein Kontakt Formular realiesieren?
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7361
Registriert: 01.01.1970 01:00
Hat sich bedankt: 110 Mal
Danksagung erhalten: 933 Mal
Kontaktdaten:

Re: PHP-Code ausführen

Beitrag von MarkusR »

Aber da ist ja nun mal JEDER Editor in Verbindung mit einem FTP-Programm (bei guten integriert) BESSER!
Das Arbeiten in einem einfachen Textfeld/iframe ist da ja wohl Steinzeit dagegen...

Das mit dem Kontaktformular ist kein Problem. Das HTML-Formular läßt sich komfortabel im CP-Editor gestalten. Die Rubrik ist dann ja bekannt, so daß man action ja auch im Klartext angeben kann (der Redakteur hat ja angeblich Ahnung).
In einer der Header-Dateien (ich benutze den global_header) wird das entsprechende Script zur Auswertung und Mailverstand eingebaut und gut ist...

Ein Kontaktformular wäre aber eigentlich Job des Webdesigners...

Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
fbecker

Re: PHP-Code ausführen

Beitrag von fbecker »

Hallo MarkusR...
Danke für den Tipp, aber genau da scheiterts bei mir.
Ob ich der Web-Designer der Redakteur oder ob ich es drauf habe oder nicht lasse ich jetzt mal außen vor denn schließlich habe ich das Problem und bräuchte dazu Deine Hilfe.
ich habe jetzt eine Rubrik erstellt mit dem Namen Kontakt und der ID=10
<form method=post action="./index.php?rubric=10">
<p>Ihr Name:<br><input type="TEXT" name="name" value=""
size="52" style="border: 1px solid blue; font-family: monospace;"></input></p>
<p>Ihre Email-Adresse:<br><input type="TEXT" name="email" value=""
size="52" style="border: 1px solid blue; font-family: monospace;"></p>
<p>Ihre Nachricht:<br>
<textarea name="nachricht" value="" cols="52" rows="10"
style="border: 1px solid blue; font-family: monospace;"></textarea></p>
<p><br><input type="submit" value="Mail absenden" name="send">
<input type="reset" value="Zur&uuml;cksetzen" name="reset"></input></p>
</form>
Das oben ist mein Artikel... nun wenn ich in mein HTML-Fenster per CP-Editor das o.g eingeben will und auf das Speichern-Symbol drücke kommt ein Javascript Laufzeitfehler. Nach meinen Forschungen kann es an dem Form-Tag liegen bin mir aber nicht sicher.
Wie hast Du dein Formular angelegt?
Weiterhin wäre es super, wenn Du mir erklären könntest für was der Javascript/PHP-Bereich ist, den man füllen kann wenn man ein Template erstellen will? Und was man für Anwendungszwecke dafür vorgesehen hat...

Vielen Dank im Voraus ...
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7361
Registriert: 01.01.1970 01:00
Hat sich bedankt: 110 Mal
Danksagung erhalten: 933 Mal
Kontaktdaten:

Re: PHP-Code ausführen

Beitrag von MarkusR »

Also wenn ich den Code in CP4 oder CP3.4 in den Editor setzte erscheint er anstandslos, ist editierbar und wird auch beim erneuten Aufrufen nicht zerstört (IE und FF).
Im global_header habe ich im HTML-Head ein Script, daß für das korrekte Aufüllen sorgt (Kategorie kontakt) das auf meine Kontaktfelder zugeschnitten ist:

Code: Alles auswählen

<?php
	if ($directory=="kontakt")  {
?>
	<SCRIPT language="JavaScript">
	function check(theForm)
	{
	if(theForm.Anrede.value.length==0)
	{
	alert("Bitte geben Sie eine Anrede ein");
	theForm.Anrede.focus();
	return (false);
	}
	if(theForm.Nachname.value.length==0)
	{
	alert("Bitte geben Sie Ihren Nachnamen ein");
	theForm.Nachname.focus();
	return (false);
	}
	if(theForm.Vorname.value.length==0)
	{
	alert("Bitte geben Sie Ihren Vornamen ein");
	theForm.Vorname.focus();
	return (false);
	}
	if(theForm.eMail.value.length==0)
	{
	alert("Bitte geben Sie Ihre eMail-Adresse ein");
	theForm.eMail.focus();
	return (false);
	}
	if(theForm.Tel.value.length==0)
	{
	alert("Bitte geben Sie Ihre Telefonnummer ein");
	theForm.Tel.focus();
	return (false);
	}
	//Inhalt der eMail-Adresse prüfen
	//Leerzeichen in Adresse ??
	if(theForm.eMail.value.search(/ /) != "-1")
	{
	alert("Die eMail-Adresse darf keine Leerzeichen enthalten");
	theForm.eMail.focus();
	return (false);
	}
	if(theForm.eMail.value.search(/@/) == "-1")
	{
	alert("Die eMail-Adresse sollte ein @ enthalten");
	theForm.eMail.focus();
	return (false);
	}
	//Formatprüfung name@domain
	//eMailAdresse in zwei Teile nach dem @ aufteilen
	s=theForm.eMail.value.split(/@/);
	var d=s[1].split(".");
	if((d.length != 2) || d[0] == "" || d[1] == "")
	{
	alert("eMail-Adressen haben das Format name@Domain.tld, z.B. Peter.Mustermann@Muster.de");
	theForm.eMail.focus();
	return (false);
	}
	// return (false);
	}

	function raeumen()
	{
	document.Eingaben.Anrede.value='';
	document.Eingaben.Vorname.value='';
	document.Eingaben.Nachname.value='';
	document.Eingaben.Tel.value='';
	document.Eingaben.eMail.value='';
	}
	</SCRIPT>
<?php
	}
?>
Damit das Script weiß, worum es geht, muß das Formular mittels
<FORM name=Eingaben onsubmit="return check(this)" action=index.php method=post>
benannt werden.

Das Body_Tag habe ich um ein
<?php if($directory=="kontakt") echo ' onload="raeumen()"'; ?>
ergänzt, weil der CP3.4-Editor in inputs automatisch einen Blank setzt.
Im PHP-Teil nach if (!defined('CPO')) exit;
habe ich noch den Aufruf des Mail-Scripts gesetzt
if ($meldung=="kontakt") {
include("../_include/kontaktmail.php");
}
das auf eine hidden-Field im Formular reagiert
<INPUT type=hidden value=kontakt name=meldung>

Im _include-Verzeichnis liegt demzufolge ein Script namens kontaktmail.php mit folgendem Inhalt

Code: Alles auswählen

<?php
// Kontaktmail
	$empfaenger = "mail@XXXXXXXX";
	$sender = $eMail;
	$subject = "XXXXX - Kontaktformular";
	$add = "From: ".$sender;

	$content = "Ja, ich interessiere mich für Ihr Angebot!\n\n";
	$content .= "Bitte nehmen Sie mit mir Kontakt auf, zwecks:\n\n";

	for ($i=0;$i<count($Beratung);$i++)  {
		$content .= $Beratung[$i]."\n";
	}

	if (isset($Geschenkgutschein))  $content .= $Geschenkgutschein."\n";

	for ($i=0;$i<count($Beratungsform);$i++)  {
		$content .= $Beratungsform[$i]."\n";
	}

	$content .= "\n";
	$content .= "Meine Kontaktdaten\n";
	$content .= "Anrede:  ".$Anrede."\n";
	$content .= "Vorname:  ".$Vorname."\n";
	$content .= "Nachname:  ".$Nachname."\n";
	$content .= "Firma:  ".$Firma."\n";
	$content .= "Strasse:  ".$Strasse."\n";
	$content .= "PLZ / Ort:  ".$PLZ_Ort."\n";
	$content .= "Tel.:  ".$Tel."\n";
	$content .= "Email:  ".$eMail."\n";
	$content .= "Anmerkungen:\n".$Anmerkungen."\n";

	if (mail($empfaenger, $subject, $content, $add))  {
	$message = "Ihre Anfrage wurde an <B>XXXXX</B> versendet!<BR>
	Your request is sent to <B>XXXXX</B>!";
	} else {
	$message = "Ihre Anfrage an <B>XXXXXX</B> konnte nicht versendet werden!!!<BR>
	Bitte nehmen Sie telefonischen Kontakt auf!<BR>Error sending Mail!";
	}
?>
Das ganze läuft unter CP3.4 im produktiven Betrieb... unter CP4 mußt Du es selbst testen



"Weiterhin wäre es super, wenn Du mir erklären könntest für was der Javascript/PHP-Bereich ist, den man füllen kann wenn man ein Template erstellen will? Und was man für Anwendungszwecke dafür vorgesehen hat..."

Lese doch bitte mal nach, wofür die Dateien index_php.php und index_js.php gut sind. Und eben diese benutzen diesen Teil des Templates statt des normalen Templates.



Beitrag bearbeitet (28.03.05 22:59)
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Antworten