CMS_IMG[$var] mit Variable ersetzen

Gesperrt
Ginche
Beiträge: 24
Registriert: Mi 20. Mai 2009, 07:31
Kontaktdaten:

CMS_IMG[$var] mit Variable ersetzen

Beitrag von Ginche »

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?
thepoet
Beiträge: 55
Registriert: Mo 7. Jul 2003, 11:39
Wohnort: Vilsbiburg
Kontaktdaten:

Re: CMS_IMG[$var] mit Variable ersetzen

Beitrag von thepoet »

Die CMS_IRGENDWAS Platzhalter sind keine Variablen sondern Texte die im Quelltext ersetzt werden bevor der Modulcode selbst ausgeführt wird.
Ginche
Beiträge: 24
Registriert: Mi 20. Mai 2009, 07:31
Kontaktdaten:

Re: CMS_IMG[$var] mit Variable ersetzen

Beitrag von Ginche »

Danke. Und wie kann ich dann diese Platzhalte automatisch durchnummerieren, je nach dem wie oft ich das Modul aufrufe?
thepoet
Beiträge: 55
Registriert: Mo 7. Jul 2003, 11:39
Wohnort: Vilsbiburg
Kontaktdaten:

Re: CMS_IMG[$var] mit Variable ersetzen

Beitrag von thepoet »

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];
Ginche
Beiträge: 24
Registriert: Mi 20. Mai 2009, 07:31
Kontaktdaten:

Re: CMS_IMG[$var] mit Variable ersetzen

Beitrag von Ginche »

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 :(
Oldperl
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

Beitrag von Oldperl »

Hallo Ginche,

das hier :arrow: http://forum.contenido.org/viewtopic.ph ... 36#p130136
und das hier :arrow: http://www.contenido-wiki.org/wiki/inde ... atzhaltern
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
Ginche
Beiträge: 24
Registriert: Mi 20. Mai 2009, 07:31
Kontaktdaten:

Re: CMS_IMG[$var] mit Variable ersetzen

Beitrag von Ginche »

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 :cry:
thepoet
Beiträge: 55
Registriert: Mo 7. Jul 2003, 11:39
Wohnort: Vilsbiburg
Kontaktdaten:

Re: CMS_IMG[$var] mit Variable ersetzen

Beitrag von thepoet »

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):

Code: Alles auswählen

cInclude('includes', 'functions.eigene.php');
Dann brauchst du zur Ausgabe nur noch

Code: Alles auswählen

make_cms_type("CMS_HTML", $modul_nr);
im Modul-Output aufrufen.
almighty7
Beiträge: 12
Registriert: So 1. Nov 2009, 23:51
Kontaktdaten:

Re: CMS_IMG[$var] mit Variable ersetzen

Beitrag von almighty7 »

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...
Gesperrt