Kleinschreibung und Leerzeichen entfernen


#1

Hallo zusammen,

gibt es einen Möglichkeit die Ausgabe von Textelementen klein zu schreiben und vorhandene Leerzeichen zu entfernen.
Ich würde gern zwei Menüpunkte im Adminbereich besonders hervorheben.
Hab mir ein Modul geschrieben dass den Block des home.tpl überschreibt und die Titel als CSS Klasse ausgibt. Also so:

<li class="[{oxmultilang ident=$submenuitem->getAttribute('name')|default:$submenuitem->getAttribute('id')}]">

Bei Smarty funktioniert Kleinschreibung normal mit lower. Aber wie muss ich dass in dem Fall verwenden und in Kombination mit dem entfernen von Leerzeichen?

Vielen Dank schon mal für jede Hilfe.


#2

Ich würde es mit |replace modifier machen
|replace:' ':''


#3

Wenn es nur Leerzeichen am Ende sein sollen geht auch
|trim


#4

Hallo ihr zwei,

vielen Dank für die Anregungen.
Das mit replace und trim ist mir bekannt.
Was mir nicht bewusst ist, wo muss dass in die Zeile rein?

… oxmultilang ident=$menuitem->getAttribute(‘name’)|default|lower|replace:’ ‘:’’:$menuitem->getAttribute(‘id’) …

Dieses Beispiel funktioniert schon mal nicht.


#5

ist auch falsch, Modifier müssen ans Ende und nicht mitten rein
getAttribute(‘id’)|modifier


#6

Leider funktioniert das auch nicht bei mir. Hatte schon alles mögliche ausprobiert.

Edit: Hab eben herausgefunden, dass wenn ich den modifier am Ende platziere, werden die language Identifier in Kleinbuchstaben umgewandelt. Was dann zu Übersetzungsfehlern führt:
ERROR: Translation for dd_media_dialog not found!


#7

probier mal so, ganz ohne oxmultilang ident="...":
[{ $submenuitem->..->getAttribute(‘id’)|oxmultilangassign|lower|replace:' ':'' }]


#8

Perfekt, so funktioniert es!
Danke dir!
Gibt es eigentlich nirgends eine Doku über solche Themen?

Hier noch die Lösungen für Haupt- und Submenüpunkte falls dass mal jemand braucht:
[{$menuitem->getAttribute(‘name’)|default:$menuitem->getAttribute(‘id’)|oxmultilangassign|lower|replace:’ ‘:’’|replace:“ä”:“ae”|replace:“ü”:“ue”|replace:“ö”:“oe”}]

[{$submenuitem->getAttribute(‘name’)|default:$submenuitem->getAttribute(‘id’)|oxmultilangassign|lower|replace:’ ‘:’’|replace:“ä”:“ae”|replace:“ü”:“ue”|replace:“ö”:“oe”}]


#9

Smarty ist ja keine geheime Eigenentwicklung von OXID, es hat eigene Dokumentation + Forum + Stack Overflow etc.


#10

Ich wäre nur nie auf die Idee gekommen es ohne den lang ident zu probieren :wink: