Eigene Scripte einbinden?

Für Fragen und Diskussionen zum Layout und Design, Templates und Stylesheets sowie Themes
Elodira

Eigene Scripte einbinden?

Post 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
babulski

Re: Eigene Scripte einbinden?

Post 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();
Elodira

Re: Eigene Scripte einbinden?

Post 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?
jeff1980
Forum Members
Forum Members
Posts: 210
Joined: Mon Apr 30, 2007 1:46 pm

Re: Eigene Scripte einbinden?

Post 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
babulski

Re: Eigene Scripte einbinden?

Post 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 ...
Elodira

Re: Eigene Scripte einbinden?

Post 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???
peugeot-304

Re: Eigene Scripte einbinden?

Post 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
Elodira

Re: Eigene Scripte einbinden?

Post 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  :'(
babulski

Re: Eigene Scripte einbinden?

Post 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>
Last edited by babulski on Mon Oct 15, 2007 10:09 am, edited 1 time in total.
Elodira

Re: Eigene Scripte einbinden?

Post 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)
babulski

Re: Eigene Scripte einbinden?

Post by babulski »

warte einen moment ... ich muss mir dein script mal genauer ansehen ...
Elodira

Re: Eigene Scripte einbinden?

Post 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 -.-
cyberman

Re: Eigene Scripte einbinden?

Post 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">';
Last edited by cyberman on Tue Oct 16, 2007 4:58 pm, edited 1 time in total.
babulski

Re: Eigene Scripte einbinden?

Post 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 ...
cyberman

Re: Eigene Scripte einbinden?

Post 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 :D. Guckst du hier

http://test.cmsmadesimple.de/index.php?page=elodira
Post Reply

Return to “Layout und Design”