Page 1 of 2
Eigene Scripte einbinden?
Posted: Fri Oct 05, 2007 9:24 am
by Elodira
Hallo,
wie kann ich denn z.b. eine eigene PHP-Seite in cmsms einbinden?
Ich habe unter "Inhalte - Seiten" eine "neue Seite" erstellt und dieser den Inhaltstyp "Link" verpasst. Nun öffnet der mir die Datei aber nicht in meinem Template!
Ist dies möglich? Und wenn ja, wie mache ich das am geschicktesten?
Danke
_____
LG Elo
Re: Eigene Scripte einbinden?
Posted: Fri Oct 05, 2007 10:32 am
by babulski
Hallo Elodira.
Versuch's mal mit dem sog. UDT (user defined tag).
Damit kannst du php-scripte einbinden.
Achtung: werden NICHT benötigt; direkt drauf los dengeln
Ein Beispiel:
UDT show_phinfo ->
Inhalt:
Code: Select all
// PHP-Info des Servers anzeigen
phpinfo();
Re: Eigene Scripte einbinden?
Posted: Fri Oct 05, 2007 10:52 am
by Elodira
Hm....um ehrlich zu sein verstehe ich nicht so gaaanz was du meinst.
Allerdings wäre es mir lieber wenn ich irgendwie meine php-Datei in dem Content-Frame von cmsms abbilden könnte.
Evtl. weiss ja wer wie das geht? Oder ob überhaupt?
Re: Eigene Scripte einbinden?
Posted: Fri Oct 05, 2007 10:56 am
by jeff1980
Hi,
genau dafür sind soweit ich weiß die Benutzerdefinierten Tags da.
Schau mal hier:
http://wiki.cmsmadesimple.org/index.php/User_Handbook/Admin_Panel/Extensions/User_Defined_Tags
mfg
Jan
Re: Eigene Scripte einbinden?
Posted: Fri Oct 05, 2007 11:51 am
by babulski
UDT's sind DANN genau richtig, wenn PHP's (bzw.deren output) im Content erscheinen sollen.
Dein Problem ist sicher folgendens: du hast auf ein PHP-script verlinkt. Und das erscheint generell NICHT im template-Layout.
Also: nimm den PHP-Code und mache daraus ein UDT, das du dann im Content-Bereich des WYSIWIG-Editor per {name_des_udt} einbindest. Voliá und schwüppdiwüpp - sollte funzen.
Falls das PHP-script parameter benötigt, musst du sie natürlich übergeben ...
Re: Eigene Scripte einbinden?
Posted: Mon Oct 15, 2007 9:37 am
by Elodira
Also ich habe jetzt versucht nen neuen UDT zu erstellen mit folgendem Code:
Code: Select all
<?php
$code = "12345";
if ((isset($_POST['eingabe'])) && ($_POST['eingabe'] == $code)) {
echo "Richtig!";
} elseif ((isset($_POST['eingabe'])) && ($_POST['eingabe'] != $code) && (!empty($_POST['eingabe']))) {
echo "Falsch!";
} else {
if ((empty($_POST['eingabe'])) && ($_SERVER['REQUEST_METHOD'] == 'POST')) {
echo "Sie haben gar nix eingegeben!";
} elseif ((isset($_POST['eingabe'])) && (!is_numeric($_POST['eingabe']))) {
echo "Sie sollten schon eine Zahlenkombination eingeben!";
}
?>
<__script__ type="text/javascript">
<!--
function keycheck(zeichen) {
var zeichen = document.form1.eingabe.value.substr(document.form1.eingabe.value.length - 1);
if (isNaN(zeichen)) {
alert("Bitte nur Zahlen eingeben");
document.form1.eingabe.value = document.form1.eingabe.value.substr(0, document.form1.eingabe.value.length - 1);
}
}
//-->
</__script>
<form name="form1" action="<?=$PHP_SELF;?>" method="post">
Code: <input type="text" name="eingabe" size="10" maxlength="10" onkeyup="keycheck();" />
<input type="submit" value="Prüfen" />
</form>
<?php
}
?>
Bekomme aber folgende Fehlermeldung, wenn ich auf "Absenden" klicke:
* Es wurde fehlerhafter Code eingegeben.
* Parse error: parse error, unexpected '<' in /srv/www/vhosts/kaps-schatz.de/httpdocs/admin/edituserplugin.php(105) : eval()'d code on line 1
(Fehlerbehebung)
Kann mir da evtl. jemand weiterhelfen???
Re: Eigene Scripte einbinden?
Posted: Mon Oct 15, 2007 9:52 am
by peugeot-304
Versuch mal mit dieser Hilfe:
Short version
User-defined tags are a simple way to insert PHP code into your site. To use them, simply create a new tag and paste your PHP code in (leaving "" out). You can call tags with smarty like this: {tag_name}
Viel Erfolg
Dieter
Re: Eigene Scripte einbinden?
Posted: Mon Oct 15, 2007 10:01 am
by Elodira
Hm...ich hab jetzt das leavin " an den Anfang und das " out ans Ende gesetzt.
Code: Select all
leaving "<?php"
$code = "12345";
if ((isset($_POST['eingabe'])) && ($_POST['eingabe'] == $code)) {
echo "Richtig!";
} elseif ((isset($_POST['eingabe'])) && ($_POST['eingabe'] != $code) && (!empty($_POST['eingabe']))) {
echo "Falsch!";
} else {
if ((empty($_POST['eingabe'])) && ($_SERVER['REQUEST_METHOD'] == 'POST')) {
echo "Sie haben gar nix eingegeben!";
} elseif ((isset($_POST['eingabe'])) && (!is_numeric($_POST['eingabe']))) {
echo "Sie sollten schon eine Zahlenkombination eingeben!";
}
?>
<__script__ type="text/javascript">
<!--
function keycheck(zeichen) {
var zeichen = document.form1.eingabe.value.substr(document.form1.eingabe.value.length - 1);
if (isNaN(zeichen)) {
alert("Bitte nur Zahlen eingeben");
document.form1.eingabe.value = document.form1.eingabe.value.substr(0, document.form1.eingabe.value.length - 1);
}
}
//-->
</__script>
<form name="form1" action="<?=$PHP_SELF;?>" method="post">
Code: <input type="text" name="eingabe" size="10" maxlength="10" onkeyup="keycheck();" />
<input type="submit" value="Prüfen" />
</form>
<?php
}
"?>" out
Fehlermeldung:
* Es wurde fehlerhafter Code eingegeben.
* Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in /srv/www/vhosts/kaps-schatz.de/httpdocs/admin/edituserplugin.php(105) : eval()'d code on line 1
(Fehlerbehebung)
Ich glaub, ich bin einfach zu blöd

Re: Eigene Scripte einbinden?
Posted: Mon Oct 15, 2007 10:05 am
by babulski
Achtung: werden NICHT benötigt; direkt drauf los dengeln

Das schrieb ich dir schon vor ein paar Tagen.
Also: diese PHP-Start- und -End-Tags RAUS aus dem script. Dann geht's!
Glaub mir!
EDIT: Es ist blöd einfach ...
Code: Select all
$code = "12345";
if ((isset($_POST['eingabe'])) && ($_POST['eingabe'] == $code)) {
echo "Richtig!";
} elseif ((isset($_POST['eingabe'])) && ($_POST['eingabe'] != $code) && (!empty($_POST['eingabe']))) {
echo "Falsch!";
} else {
if ((empty($_POST['eingabe'])) && ($_SERVER['REQUEST_METHOD'] == 'POST')) {
echo "Sie haben gar nix eingegeben!";
} elseif ((isset($_POST['eingabe'])) && (!is_numeric($_POST['eingabe']))) {
echo "Sie sollten schon eine Zahlenkombination eingeben!";
}
<__script__ type="text/javascript">
<!--
function keycheck(zeichen) {
var zeichen = document.form1.eingabe.value.substr(document.form1.eingabe.value.length - 1);
if (isNaN(zeichen)) {
alert("Bitte nur Zahlen eingeben");
document.form1.eingabe.value = document.form1.eingabe.value.substr(0, document.form1.eingabe.value.length - 1);
}
}
//-->
</__script>
<form name="form1" action="<?=$PHP_SELF;?>" method="post">
Code: <input type="text" name="eingabe" size="10" maxlength="10" onkeyup="keycheck();" />
<input type="submit" value="Prüfen" />
</form>
Re: Eigene Scripte einbinden?
Posted: Mon Oct 15, 2007 10:12 am
by Elodira
Dann kommt diese Meldung beim "Absenden":
* Es wurde fehlerhafter Code eingegeben.
* Parse error: parse error, unexpected '<' in /srv/www/vhosts/kaps-schatz.de/httpdocs/admin/edituserplugin.php(105) : eval()'d code on line 14
(Fehlerbehebung)
Re: Eigene Scripte einbinden?
Posted: Mon Oct 15, 2007 10:21 am
by babulski
warte einen moment ... ich muss mir dein script mal genauer ansehen ...
Re: Eigene Scripte einbinden?
Posted: Mon Oct 15, 2007 10:25 am
by Elodira
Danke, das lieb von dir. Bin ja parallel auch scho am guggen.
Evtl. stört ihn der php-code an dieser stelle noch:
Code: Select all
<form name="form1" action="<?=$PHP_SELF;?>" method="post">
Aber mit einfach <? rausnehmen hat sichs da leider nicht getan -.-
Re: Eigene Scripte einbinden?
Posted: Tue Oct 16, 2007 4:45 pm
by cyberman
Elodira wrote:
Aber mit einfach <? rausnehmen hat sichs da leider nicht getan -.-
Beim UDT bist du komplett in php ... d.h., du müsstest nun natürlich auch das Formular via echo ausgeben

.
Code: Select all
echo '<form name="form1" action="' . $PHP_SELF . '" method="post">';
Re: Eigene Scripte einbinden?
Posted: Tue Oct 16, 2007 4:55 pm
by babulski
Wie gesagt bin ich immer noch kein PHP-Wizard.
Als standalone-funzt das script.
Packt man es in einen UDT (natürlich OHNE start-/end-Tags und MIT echo

) wirft CMS ein 'undefined' aus. Keine Ahnung, wo da der Fehler liegen könnte. Smarty? Einfache Anführungszeichen? Escapen?
Grummel ...
Re: Eigene Scripte einbinden?
Posted: Tue Oct 16, 2007 5:37 pm
by cyberman
Also den Javascript-Teil hab ich im Reiter Optionen in die Metatags gepackt (mit den {literal} Tags maskiert).
Und der UDT sieht bei mir jetzt so aus:
Code: Select all
$code = '12345';
if ((isset($_POST['eingabe'])) && ($_POST['eingabe'] == $code))
{
echo "Richtig!";
}
elseif ((isset($_POST['eingabe'])) && ($_POST['eingabe'] != $code) && (!empty($_POST['eingabe'])))
{
echo "Falsch!";
}
else
{
if ((empty($_POST['eingabe'])) && ($_SERVER['REQUEST_METHOD'] == 'POST'))
{
echo "Sie haben gar nix eingegeben!";
}
elseif ((isset($_POST['eingabe'])) && (!is_numeric($_POST['eingabe'])))
{
echo "Sie sollten schon eine Zahlenkombination eingeben!";
}
}
echo '<form action="' . $_SERVER['REQUEST_URI'] . '" method="post" name="form1">';
echo 'Code: <input maxlength="10" name="eingabe" onkeyup="keycheck();" size="10" type="text" />';
echo '<input type="submit" value="Prüfen" />';
echo '</form>';
... und es funktioniert

. Guckst du hier
http://test.cmsmadesimple.de/index.php?page=elodira