Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
Seiten: 1
#1 22. November 2014 13:11
- jeff1980
- Server-Pate
- Ort: Dortmund
- Registriert: 26. November 2010
- Beiträge: 630
[GELÖST] Semikolon im value bei assign
Hallo,
bin gerade dabei, eine Seite von 1.10.3 auf 1.11.11 zu aktualisieren. Wenn mich nicht alles täuscht, wurde ja hier von Smarty 2 auf Smarty 3 aktualisiert - das führt allerdings wohl bei einigen Tags zu Problemen.
In erster Linie geht es um folgendes Konstrukt - das Semikolon wird schlicht nicht akzeptiert:
[== Smarty ==]
{assign var=name value=$value1;$value2;$value3}
Da ich die Seite übernommen habe, musste ich erst mal herausfinden, was das überhaupt bedeutet. Offensichtlich werden die Inhalte der jeweiligen values durch ";" getrennt ausgegeben.
Was wäre da die aktuelle Entsprechung? Wenn ich die Werte mit |cat: aneinander reihe, kommt nicht 100% das selbe Ergebnis raus und in den Smarty-Hilfen konnte ich auch nichts wirklich passendes finden.
Offline
#2 23. November 2014 07:16
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.017
- Webseite
Re: [GELÖST] Semikolon im value bei assign
Wenn ich die Werte mit |cat: aneinander reihe, kommt nicht 100% das selbe Ergebnis raus und in den Smarty-Hilfen konnte ich auch nichts wirklich passendes finden.
Bißl mystisch - was sind denn die value... Werte und was soll als name dabei heraus kommen?
Offline
#3 23. November 2014 09:14
- nockenfell
- Moderator
- Ort: Lenzburg, Schweiz
- Registriert: 09. November 2010
- Beiträge: 2.927
- Webseite
Re: [GELÖST] Semikolon im value bei assign
Was sollen die Semicolons bewirken? Soll da ein Array draus entstehen?
{$array = [$value1,$value2,$value3]}
oder sollen die Werte mit Semicolon getrennt aneinander gereiht werden?
[== Smarty ==]
{assign var=name value="`$value1`;`$value2`;`$value3`"}
(Beide Codes ungetestet)
[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog / Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox
Offline
#4 23. November 2014 09:49
- jeff1980
- Server-Pate
- Ort: Dortmund
- Registriert: 26. November 2010
- Beiträge: 630
Re: [GELÖST] Semikolon im value bei assign
Hi,
wenn ich mir den Inhalt von "name" anschaue, werden die "values", die jeweils normale Inhaltsblöcke enthalten, einfach nacheinander ausgegeben. Es ist also eher die zweite Variante. Komisch ist nur, warum es mit "cat" nicht funktioniert, da dies ja im Prinzip auch nur aneinander reiht.
Ich werd da morgen noch mal schauen und die andere Schreibweise von nockenfell testen. Es gibt auch noch ein paar andere Spezialitäten, die ich noch nicht ganz geblickt habe ... Ist immer blöd ohne Kontakt zum "Vorgänger" ...
Aber der Ansatz hilft auf jeden Fall schon mal weiter, da mir die Semikolons gar nichts sagten.
Offline
#5 23. November 2014 21:15
- nockenfell
- Moderator
- Ort: Lenzburg, Schweiz
- Registriert: 09. November 2010
- Beiträge: 2.927
- Webseite
Re: [GELÖST] Semikolon im value bei assign
Was wird denn mit der Variable $name gemacht?
[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog / Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox
Offline
#6 24. November 2014 08:45
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.435
Re: [GELÖST] Semikolon im value bei assign
Komisch ist nur, warum es mit "cat" nicht funktioniert
Wie sah denn Dein "cat-code" aus?
Meiner würde so aussehen (ungetestet):
{$name=$value1|cat:";"|cat:$value2|cat:";"|cat:$value3}
Aber wie nockenfell schon fragte: Wichtig ist, was mit der Variable am Ende gemacht werden soll.
Vielleicht gehts ja auch einfacher, wenn man die vor- bzw. nachgelagerten Prozesse mit einbezieht.
Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)
Offline
#7 24. November 2014 09:20
- jeff1980
- Server-Pate
- Ort: Dortmund
- Registriert: 26. November 2010
- Beiträge: 630
Re: [GELÖST] Semikolon im value bei assign
@NaN: Genau so sah es bei mir auch aus.
So langsam lichtet es sich bei mir aber auch. Die Variable $name wird nämlich noch mal durch einen benutzerdefinierten Tag geschickt - das habe ich heute erst gesehen, da es im jeweiligen Inhalt passiert und aus dem Template nicht ersichtlich ist.
Und genau da liegt das Problem - der UDT "bearbeitet" den Inhalt der Variablen noch mal und entfernt bestimmten Code bzw. fügt welchen hinzu - konkret werden aus den einzelnen Inhaltsblöcken, die in $name stecken, mehrere Boxen (divs) generiert. Die Übergabe scheint durch die Schreibweise mit cat nicht mehr richtig zu klappen, weshalb die Ausgabe im Frontend falsch ist.
Aber hier funktioniert nun der Code von nockenfell:
[== Smarty ==]
{assign var=name value="`$value1`;`$value2`;`$value3`"}
Liegt wahrscheinlich an einer Änderung von Smarty 2 zu 3, oder?
Der Weg ist also folgender:
$name wird im Template mit dem Inhalt von Content-Blöcken gefüllt. Danach wird auf Seiten, in denen die Content-Blöcke gefüllt sind, $name manuell an einen UDT übergeben, der sich um die Ausgabe kümmert (unerwünschten Code entfernt, Neuen hinzufügt).
Letztendlich klappt mit der o.g. Schreibweise wieder alles, wie es soll :-).
Bin gespannt, was mich als nächstes erwartet ...
Offline
Seiten: 1