platzhalter dynamisch/anzahl anpassbar

Gesperrt
solidb
Beiträge: 2
Registriert: Do 10. Feb 2011, 00:21
Kontaktdaten:

platzhalter dynamisch/anzahl anpassbar

Beitrag von solidb » Do 10. Feb 2011, 00:51

Hallo.

Ich habe folgendes vor
(der einfachheit halber das dynamische erzeugen der Contenido-Platzhalter nur in der theorie, also ohne die funktion aus dem wiki):

Modul-Input:

Code: Alles auswählen

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

Code: Alles auswählen

<?php
if ( ( is_numeric("CMS_VALUE[0]") ) && ( CMS_VALUE[0] > 0 )  ) {
  for ($i = 1; $i <= CMS_VALUE[0]; $i++) {
    echo "CMS_TEXT[$i]";
  }
}
?>
ok, und jetzt meine frage: in der artikelkonfiguration steht jetzt meinetwegen ne 5 im CMS_VALUE[0],
der redakteur füllt die 5 platzhalter im artikel mit inhalten. was passiert, wenn jetzt in der artikelkonfig
CMS_VALUE[0] auf 3 gesetzt wird. bleiben die inhalte für CMS_TEXT[4] und CMS_TEXT[5] im artikel und in der db
und werden nur 'unsichtbar'? kann das so funktionieren, kann das irgendwelche fehlfunktionen auslösen, wie auch immer?

oder anders: gibt es ne andere (vll. einfachere) möglichkeit, die anzahl contenido-platzhalter für einen artikel vom redakteur beeinflussen zu lassen?
sorry, bin totaler contenido-anfänger...

was meint ihr?
vielen dank für die hilfe!

OliverL
Beiträge: 870
Registriert: Do 28. Jun 2007, 09:28
Kontaktdaten:

Re: platzhalter dynamisch/anzahl anpassbar

Beitrag von OliverL » Di 12. Apr 2011, 11:25

Hi und willkommen im Forum,

Der Inhalt bleibt bei der Änderung der ID in der Datenbank.
Fehlfunktionen: Ein "Fehler" kann sein das der alte Text in der Suche gefunden wird.

Der Ablauf ist aber auf CMS_VALUE optimiert und dürfte NICHT mit CMS_TEXT & Co. funktionieren.
Kurze Erklärung:
Bei der Ausgabe der Seite werden die Platzhalter CMS_... ersetzt durch den String der diesem Platzhalter zugeordnet ist.
d.h. der ausgeführte Code für CMS_VALUE nach der Ersetzung ist:

Code: Alles auswählen

<?php
if ( ( is_numeric("3") ) && ( 3 > 0 )  ) {
  for ($i = 1; $i <= 3; $i++) {
    echo "$C1CMS_VALUE[$i]";
  }
}
?>
Ist die CMS_VALUE-ID keine Nummer wird der Platzhalter nicht durch den String ersetzt sondern durch eine Variable

"CMS_VALUE[1]" = "String"
"CMS_VALUE[$i]" = "$C1CMS_VALUE[$i]"
(Cx steht für Layout-Container-X bzw. C1 für Container 1)
"$C1CMS_VALUE[$i]" funktioniert ausschließlich mit ". Bei ' wird der Variablenname ausgegeben.

Ich bin mir jetzt nicht ganz sicher bei der aktuellen Version,
aber CMS_TEXT o. CMS_HTML unterstützt diesen Ablauf nicht,
da z.B. die Variabel $C1CMS_TEXT[x] nicht existiert.
Der Ablauf funktioniert nur mit CMS_VALUE.

Für Content-Elemente (CMS_TEXT, CMS_HTML ...) kannst du aber eine Funktion einbinden
s. http://www.contenido-wiki.org/wiki/inde ... ent.2Cn.29


mfg OliverL

PS: echo "CMS_TEXT[CMS_VALUE[1]]"; funktioniert da VALUE vor TEXT ersetzt wird. 1 kann aber NICHT durch $i ersetzt werden.

Gesperrt