Include-Modul?

Gesperrt
detlev
Beiträge: 156
Registriert: Mi 18. Sep 2002, 08:05
Wohnort: Bochum
Kontaktdaten:

Include-Modul?

Beitrag von detlev »

Hat jemand eine ungefähre Idee, - Denkanstoss - wie ich ein Modul bauen kann, was php-Dateien includet?

Ich benötige lediglich die Funktion:
include(meine_funktion.php);

Oder geht das nur über Web-Grab?

Danke
Detlev
Björn
Beiträge: 276
Registriert: Di 17. Sep 2002, 18:25
Kontaktdaten:

Beitrag von Björn »

Nein, ist kein Problem, so weit ich weiß gibt es dazu zwei Module, die das erledigen, eins war von Sven und eins nannte sicht Templateiclude und war im alten Forum mal erhältlich. Das von Sven finde ich gerade nicht, aber das Andere war dieses:

Code: Alles auswählen

Hier könnt Ihr Templates in den Upload Bereich einbinden, die Ihr selbst als PHP-Files geschrieben habt oder so im Internet findet. Für mich ist das sehr sinnvoll, da ich immer in "Modulen" entwickelt habe, die ich dann in meinem eigenen CMS einfach als "Block" eingefügt habe und so kann man das ideal ins Contenido einbinden. Vielleicht kann das ja noch jemand anderer als mir benötigen.

Einfach in die inc/config.php unter Eurem Client folgendes einbinden:

### Templates hinzufügen
$cfgClient[1]["path"]["templates"] = $cfgClient[1]["path"]["frontend"]."templates/";
$cfgClient[1]["htmlpath"]["templates" ] = $cfgClient[1]["htmlpath"]["frontend"]."templates/";
$cfgClient[1]["frontendpath"]["templates"] = "templates/";
$cfgClient[1]["actionname"]["templates"] = "Templates";
$cfgClient[1]["text"]["templates"] = "Laden Sie Templates auf den Webserver";
$cfgClient[1]["filetype"]["templates"] = "templates";

Danach habt Ihr den Uploadbereich um den Bereich Templates erweitert. 

Dann könnt Ihr die php Templates uploaden. Nach dem Uploaden Eurer Templates erstellt Ihr einfach das folgende Modul.
Wichtig ist die Endung .php, denn wenn Ihr diese .inc nennt und man direkt auf die Datei zugreift, dann sieht man den Source über den Webbrowser, da dieser das als Textfile erkennt. Am besten das Verzeichnis templates durch eine .htaccess schützen, denn der Webserver greift drauf zu und nicht wie bei den Bildern über den Browser.

Name des Moduls: 
Template (name_des_templates.php) einbinden

Beschreibung:
Individuelles Einbinden von Templates

Input:
$pfad = $cfgClient[$client]["htmlpath"]["templates"];
echo "Welches Template soll included werden?<br>";
echo "<select name=\"CMS_VAR[0]\" size=\"1\">";
if ("CMS_VALUE[0]" != 0) {
echo "<option value=\"0\">".$lngForm["nothing"]."</option>";
} else {
echo "<option value=\"0\" selected>".$lngForm["nothing"]."</option>";
}
$handle=opendir($pfad);
while ($file = readdir ($handle)) {
if ($file != "." && $file != "..") {
if ("CMS_VALUE[0]" != $file) {
echo "<option value=\"$file\">$file</option>";
} else {
echo "<option value=\"$file\" selected>$file</option>";
}
}
}
closedir($handle);
echo "</select>";

Output:
$pfad = $cfgClient[$client]["htmlpath"]["templates"]."CMS_VALUE[0]";
include ("$pfad");
detlev
Beiträge: 156
Registriert: Mi 18. Sep 2002, 08:05
Wohnort: Bochum
Kontaktdaten:

Beitrag von detlev »

Danke und sorry, ich habe beim Suchen zu früh die Nerven verloren!
Um all denen, die per Suchen-Funktion diesen Thread finden -
Das Modul von Sven:

INPUT:
echo "<table align=\"left\" cellpadding=\"0\" cellspacing=\"0\">
<tr valign=\"top\">
<td width=\"202\">Einzufügendes Script:</td>
<td><INPUT TYPE=\"text\" NAME=\"CMS_VAR[0]\" VALUE=\"CMS_VALUE[0]\"></td>
</tr></table>";

OUTPUT:
include("CMS_VALUE[0]");

Gruß
Detlev
detlev
Beiträge: 156
Registriert: Mi 18. Sep 2002, 08:05
Wohnort: Bochum
Kontaktdaten:

Beitrag von detlev »

@ Björn
Danke - mit Hilfe des Moduls kann man in Contenido so relativ komplexe Sachen wie z.B. ein datenbankbasiertes Seminar- oder Kursangebot (z.B.VHS-Kursangebot) einbauen.
Als Beispiel:
http://212.110.96.66/pages/ausbildung/front_content.php
(mit Dummy-Inhalten gefüllt)

Also nochmals Danke

Gruß
Detlev
frank
Beiträge: 5
Registriert: Sa 22. Feb 2003, 08:24
Kontaktdaten:

Beitrag von frank »

Ich habe jetzt mal die beiden Module von Detlef und Björn ausprobiert.
Eigentlich ist mir das simplere Modul von Detlev lieber, weil ich da eine beliebige php-datei includen kann- egal wo sie liegt.
Bei Björns Modul hab ich das Problem, dass ich erst ein "Template" hochladen muss (natürlich keins im sonst verwandten Sinne, sondern eben eine php-Datei). Eine Frage zum Verständnis: Meistens handelt es sich ja nicht nur um eine Datei, sondern um ein ganzes Paket von php-Scripten (z.B. ein Forum), welches zu dieser zu includenden Anwendung gehört.
Ich würde dann also meine ganze Anwendung (z.B.Forum) mit allen datein in das Verzeichnis /templates legen und die index.php "uploaden" und danach includen ?
Oder hab ich da was falsch verstanden ?

Detlefs Modul bringt mir übrigens immer eine Fehlermeldung, obwohl man da doch eigentlich gar nichts falsch machen kann ;-)
so etwa:

Warning: Failed opening 'http://www.meinedomain.de/datei.php' for inclusion (include_path='.;c:\apache\php\pear') in c:\apache\htdocs\contenido\front_single\front_content.php(133) : eval()'d code on line 110
Eppi
Beiträge: 252
Registriert: Di 17. Sep 2002, 16:33
Wohnort: Ilmenau (Thüringen)
Kontaktdaten:

Beitrag von Eppi »

für solche komplexe sachen würde ich das webgrab verwenden.
Ein neues CMS-System:
www.der-dirigent.de
Gesperrt