Seite 2 von 2

Re: Modulvariablen werden nicht übernommen

Verfasst: Di 3. Mär 2009, 15:43
von idea-tec
grundsätzlich ja, sollte funktionieren, müsste man mal wieder ausprobieren ;-)
aber wie wir erfahren haben, hat er im input die php-tags auch gesetzt und nur hier nicht gepostet. von daher gehe ich davon aus, dass er das im outputbereich ebenso getan hat.

aber mal ehrlich, da denke ich schon gar nicht mehr drüber nach, php auf, code rein (da ich kaum eine variable ohne prüfung, trimmung oder sonstwas einfach anzeige), php wieder zu.

Re: Modulvariablen werden nicht übernommen

Verfasst: Di 3. Mär 2009, 15:53
von GaMbIt_
jo...

Mein Modulcode einfach übernehmen... keine Gedanken über Variablen machen... und gut... alles andere ist für Wissende :mrgreen: ich muss weg :mrgreen:

Re: Modulvariablen werden nicht übernommen

Verfasst: Di 3. Mär 2009, 16:27
von ThomasEckel
Bei mir funktioniert leider bisher keiner eurer Vorschlage.

Ich habe noch einmal genauer untersucht was passiert. Ich habe die Tabelle im Eingabebereich um zwei Zeilen erweitert:

Code: Alles auswählen

    <tr>
        <td>CMS_VAR[0]</td>
        <td><?php echo "CMS_VAR[0]"; ?></td>
    </tr>
    <tr>
        <td>CMS_VALUE[0]</td>
        <td><?php echo "CMS_VALUE[0]"; ?></td>
    </tr>
Und erhalte daraus folgende Ausgaben:

C30CMS_VAR[0] C30CMS_VAR[0]
Platz für Werbung Platz für Werbung

Wobei ich im Eingabefeld "<i>Platz für Werbung</i>" eingegeben habe. Hier steht in CMS_VALUE[0] offenbar direkt die Eingabe und wird einschließlich <i>-Tag direkt ausgegeben.

Im Ausgabebereich habe ich folgendes im Code stehen:

Code: Alles auswählen

1: CMS_VALUE[0]<br/>
2: <?php echo "CMS_VALUE[0]"; ?><br/> 
3: <?php echo CMS_VALUE[0]; ?><br/> 
4: <?php echo 'CMS_VALUE[0]'; ?><br/>
5: <?php CMS_VALUE[0]?>
Und erhalte folgende Ausgabe:
1: $C30
2:
3:
4: $C30
5:

Offenbar steht dort in CMS_VALUE[0] der Name der Variablen, $C30 (bezogen auf den Container Nummer 30), und diese Variable ist leer.

Übrigens habe ich damit gezeigt, dass <?php echo "CMS_VALUE[0]"; ?> und <?php echo CMS_VALUE[0]; ?> identisch sind, denn daraus werden
<?php echo "$C30"; ?> bzw. <?php echo $C30; ?>. In doppelten Anführungszeichen werden die Variablen ausgewertet und spielen keine Rolle. Es ist also egal, ob man sie dort setzt oder nicht.
Auch ist erkennbar, dass das echo-Statement wichtig ist, da man ansonsten in 1. nur den Variablenamen bzw in 5. mit <?php $C30; ?> keinen sinnvollen PHP-Code erhält.

Re: Modulvariablen werden nicht übernommen

Verfasst: Di 3. Mär 2009, 16:34
von kummer
aus meiner sicht zeigt das lediglich, dass du eben irgendwo ein problem vorliegen hast. weil die ersetzung sollte durch den wert vorgenommen werden und nicht durch die variable. einer der vorherigen posts hat genau dieses verhalten ja aufgezeigt. so sollte es auch sein. und dann funktioniert es auch.

ich vermute, irgendwo hast du ein php-tag geöffnet oder geschlossen, das nicht sein sollte.

Re: Modulvariablen werden nicht übernommen

Verfasst: Di 3. Mär 2009, 16:57
von kummer
so, ich habe das mal nun eingehend untersucht, damit ich auch wirklich nichts falsches sage. für diejenigen, die das reproduzieren möchten:

input:

Code: Alles auswählen

?>
<input type="text" name="CMS_VAR[0]" value="CMS_VALUE[0]" />
<?php
output:

Code: Alles auswählen

<div id="kummerTest">CMS_VALUE[0]</div>
zunächst: das funktioniert so. und muss auch.

nun zur frage, ob contenido an dieser stelle den text oder eine variable einsetzt, muss man nur kurz in den code schauen (con_code), der von contenido zuerst erzeugt und anschliessend mit eval() ausgewert wird. und da steht dann folgendes:

Code: Alles auswählen

<div id=\"kummerTest\">das ist ein test</div>
es handelt sich dabei nicht um die ausgabe, sondern um den code, der ausgewertet wird. wir sehen, da wird keine variable ausgegeben, sondern direkt der inhalt der variablen.

wenn versucht wird, einfach gleich sowas auszugeben:

Code: Alles auswählen

<?php echo CMS_VALUE[0];
dann erhält man folgende Fehlermeldung: Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /home/kummer/www/con488/contenido/includes/include.con_editcontent.php(640) : eval()'d code on line 448

was auch zu erwarten ist. fügt man das CMS_VALUE[0] jedoch in anführungszeichen, also so...

Code: Alles auswählen

<?php echo "CMS_VALUE[0]";
...dann funktioniert es wieder bestens.

und wieder schauen wir in den code, der ausgewertet wird. der sieht dann so aus:

Code: Alles auswählen

<?php
echo \"das ist ein test\";
?>
ich hoffe, damit ist die frage hinreichend geklärt. mindestens was den mechanismus angeht. das ist schon seit ewigen zeiten in contenido so.

Re: Modulvariablen werden nicht übernommen

Verfasst: Di 3. Mär 2009, 16:59
von idea-tec
was einem ein "kummer" macht, muss einem keinen Kummer machen ;-)

Re: Modulvariablen werden nicht übernommen

Verfasst: Di 3. Mär 2009, 17:59
von kummer
ich habe dazu auch gleich mal einen artikel im contenido-wiki verfasst: http://www.contenido-wiki.org/wiki/inde ... itle=Modul

Re: Modulvariablen werden nicht übernommen

Verfasst: Di 3. Mär 2009, 18:50
von kummer
hat sich das problem inzwischen aufgelöst? oder besteht es immer noch?

Re: Modulvariablen werden nicht übernommen

Verfasst: Di 3. Mär 2009, 21:39
von ThomasEckel
Es besteht weiterhin. Ich sehe aber, dass es hier im Forum keine Lösung dafür gibt. Ich werde mich direkt an four for business wenden.

Danke für die Mühe.

Re: Modulvariablen werden nicht übernommen

Verfasst: Di 3. Mär 2009, 23:04
von GaMbIt_
42

Ist auf jeden Fall die Antwort...
zumindest wenn klar ist wie die weltbewegende Frage lautet...

Wie Module konfiguriert werden und wie die Variablen ausgegeben werden wurde hier ja beschrieben.
Zu behaupten dass es hier keine Lösung gibt halte ich für gewagt.
Wenn denn 4fb eine Lösung hat die anders aussieht als das was wir hier beschrieben haben würde mich das auch interessieren.

Auf der anderen Seite kann ich auch anbieten mir das System mal anzusehen.
Weiteres gerne per PN