CMS_IMG[$var] mit Variable ersetzen
CMS_IMG[$var] mit Variable ersetzen
Hallo,
ich bin kein PHP Programmierer und kann mir selbst nicht den Unterschied erklären:
Ich habe CMS_IMG[1], ...[2]...[3] usw. für mehrere Bilder auf einer Seite vorgesehen. Das alles habe ich in einer SWITCH eingepackt, was nicht effizient ist.
if (isset($modul_nr)) $modul_nr++;
else $modul_nr = 1;
if (....//Bedingung) {
switch($modul_nr){
case 1:
echo "CMS_IMG[1]";
break;
case 2:
echo "CMS_IMG[2]";
break; ......
Ich weiss am Anfang nicht, wieviel Bilder zukünftig auf einer Seite vorkommen werden. Jetzt füge ich 10 cases ein. Meine Frage, wieso kann ich nicht den Index als Variable erhöhen, z.B. $modul_nr++ und CMS_IMG[$modul_nr] schreiben? Wieso wird nicht der Inhalt von CMS_IMG[$modul_nr] verstanden sondern selber String "CMS_IMG[1]", obwohl die Variable $modul_nr richtig ersetzt wird?
Danke für Aufklärung
Gruß Ginche
Wo ist hier meiner Denkfehler?
ich bin kein PHP Programmierer und kann mir selbst nicht den Unterschied erklären:
Ich habe CMS_IMG[1], ...[2]...[3] usw. für mehrere Bilder auf einer Seite vorgesehen. Das alles habe ich in einer SWITCH eingepackt, was nicht effizient ist.
if (isset($modul_nr)) $modul_nr++;
else $modul_nr = 1;
if (....//Bedingung) {
switch($modul_nr){
case 1:
echo "CMS_IMG[1]";
break;
case 2:
echo "CMS_IMG[2]";
break; ......
Ich weiss am Anfang nicht, wieviel Bilder zukünftig auf einer Seite vorkommen werden. Jetzt füge ich 10 cases ein. Meine Frage, wieso kann ich nicht den Index als Variable erhöhen, z.B. $modul_nr++ und CMS_IMG[$modul_nr] schreiben? Wieso wird nicht der Inhalt von CMS_IMG[$modul_nr] verstanden sondern selber String "CMS_IMG[1]", obwohl die Variable $modul_nr richtig ersetzt wird?
Danke für Aufklärung
Gruß Ginche
Wo ist hier meiner Denkfehler?
Re: CMS_IMG[$var] mit Variable ersetzen
Die CMS_IRGENDWAS Platzhalter sind keine Variablen sondern Texte die im Quelltext ersetzt werden bevor der Modulcode selbst ausgeführt wird.
Re: CMS_IMG[$var] mit Variable ersetzen
Danke. Und wie kann ich dann diese Platzhalte automatisch durchnummerieren, je nach dem wie oft ich das Modul aufrufe?
Re: CMS_IMG[$var] mit Variable ersetzen
Richtig schön nicht, vielleicht eine Spur eleganter:
Code: Alles auswählen
$imgs = array( "CMS_IMG[1]", ""CMS_IMG[2]", "CMS_IMG[3]", "CMS_IMG[4]", "CMS_IMG[5]", "CMS_IMG[6]", "CMS_IMG[7]", ... );
$modul_nr = isset($modul_nr) ? $modul_nr + 1: 0;
echo $imgs[$modul_nr];
Re: CMS_IMG[$var] mit Variable ersetzen
Vielen Dank! also so ist es natürlich kürzer als meine Lösung
nur dass ich trotzdem die feste Angabe der Platzhalte definieren muss 


-
- Beiträge: 4316
- Registriert: Do 30. Jun 2005, 22:56
- Wohnort: Eltmann, Unterfranken, Bayern
- Hat sich bedankt: 6 Mal
- Danksagung erhalten: 4 Mal
- Kontaktdaten:
Re: CMS_IMG[$var] mit Variable ersetzen
Hallo Ginche,
das hier
http://forum.contenido.org/viewtopic.ph ... 36#p130136
und das hier
http://www.contenido-wiki.org/wiki/inde ... atzhaltern
hast du sicher bereits gelesen.
Gruß aus Franken
Ortwin
das hier

und das hier

hast du sicher bereits gelesen.
Gruß aus Franken
Ortwin
ConLite 3.0.0-dev, alternatives und stabiles Update von Contenido 4.8.x unter PHP 8.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
Re: CMS_IMG[$var] mit Variable ersetzen
So...ich habe mir die Links angeschaut und versucht diese Funktion einzusetzen aber... ich verstehe nicht, wo ich diese Fubnktion einfüge? Zu jedem Modul, wie Picture, Text, Headline usw. oder kann man einmal sie in externe Datei auslagern und von jedem beliebigen Modul diese Funktion aufrufen? Kann mir jemand das genau erklären, bitte? und mit dem Aufruf...soll make_cms_type("CMS_HTML","1"); Index dynamisch erhöht werden also make_cms_type("CMS_HTML",$modul_nr);.....ich verstehe den Zusammenhang wirklich nicht, von PHP hab leider auch keine Ahnung
Ich wäre sehr dankbar für die Hilfe

Ich wäre sehr dankbar für die Hilfe

Re: CMS_IMG[$var] mit Variable ersetzen
Am besten legst Du sie eine neue Datei in contenido/includes an, z.B. contenido/includes/functions.eigene.php, in die Du den Code einfügst (die üblichen Dinge wie keine Zeichen nach dem schließenden php-Tag beachten) und fügst dann in der config.local.php eine Include-Zeile dafür ein (falls diese noch nicht existiert, auch neu anlegen):
Dann brauchst du zur Ausgabe nur noch
im Modul-Output aufrufen.
Code: Alles auswählen
cInclude('includes', 'functions.eigene.php');
Code: Alles auswählen
make_cms_type("CMS_HTML", $modul_nr);
Re: CMS_IMG[$var] mit Variable ersetzen
Ich habe wie beschrieben die Dateien eingehängt, aber in meinem Contenido 4.8 läuft es nicht. Im editiermodus werden die Variablen nicht gesetzt...