Multiselct Ausgabe im Profil mit Komma getrennt, statt untereinander ?

  • Hi zusammen,

    ich möchste gerne die Multiselect Ausgabe mit Komma getrennt haben, statt untereinander.

    woltlab.com/attachment/36669/

    PHP
    <div class="fieldValue">
    Nummer1<br />
    Nummer2<br />
    Nummer4																		
    </div>

    Ich hab jetzt schon versucht im userprofile.tpl

    folgendes anzuwenden,

    Code
    {$option.optionValue|replace:"<br />":", "}

    aber "replace" kennt das Smarty von WBB nicht.

    In der class.php finde ich nichts wo \n zu <br /> umgewandelt wird ... in der Datenbank steht auf jeden Fall das <br /> noch nicht drin.

    Ergebnis soll sein: Nummer1, Nummer2, Nummer 4

    Wie kann ich das Problem lösen ?

    Viele Grüße
    Christoph

  • änder mal folgendes in deiner tpl datei


    Code
    <div class="fieldValue">
    {implode from=$datenList item=item}<a href="www.evt.link.de{@SID_ARG_2ND}">{@$item.itemName}</a>{/implode}
    </div>


    Hier mal der Text aus dem WCFDOC die man in der DB downloaden kann..

    Quote

    6.4.8. implode
    Mit {implode} kö̈nnen Sie den Inhalt von Arrays ausgeben lassen, so ä̈hnlich wie Sie das bereits von {foreach} kennen.
    Der Unterschied ist hier lediglich der, dass die Elemente automatisch durch einen String verbunden werden.
    Dazu gibt es den Parameter glue, fü̈r den Sie einen beliebiger String angegeben kö̈nnen.
    Standardmäßig wird “, ” angenommen.

    Wenn Sie beispielsweise eine Auflistung von Namen realisieren wollen und diese durch ein Komma trennen wollen, so ist {implode} die beste Wahl.
    Bei {foreach} mü̈ssten Sie hierfü̈r einen extra Zä̈hler anlegen, um das Problem zu umgehen, dass vor jedem Element das Trennzeichen steht (denn vor dem ersten Element soll kein Trennzeichen stehen).


    Beispiele:

    Code
    {*Mögliches Verwendung von implode*}
    {implode from=$names key=key item=name}{$key}: {$name}{/implode}<br />
    {implode from=$names item=name glue=";"}{$name}{/implode} <br />
    
    
    
    
    {*Mögliche Ausgabe*}
    0: Name a, 1: Name b, 2: Name c
    Name a;Name b;Name c

    MfG Marco

  • Hi Marco,

    vielen Dank für deine Antwort, habe es probiert, leider ist die Aufzählung kein Array mehr, kann somit nicht mit implode und glue bearbeitet werden.

    Wenn der Wert im Template ankommt ist er "Nummer1<br />Nummer2<br />Nummer4", auch wenn man alles als Implode statt foreach laufen lassen würde.

    Gibt es wirklich keine Möglichkeit einen Stringreplace im Template zu machen ?
    Irgendwo muss doch dieses <br /> herkommen auf dem Weg von der Datenbank zum Template.

    Gruß
    Christoph

  • wie holst du die daten aus der datenbank
    bzw. wie werden die daten weitergegeben !?
    post mal den code etwas..
    damit man es besser verstehen kann wie du die daten übergibst

    MfG Marco

  • woltlab.com/attachment/36807/
    woltlab.com/attachment/36808/
    woltlab.com/attachment/36809/

    Ausgabe der Aufzählung in HTML
    http://www.webseite.de/index.php?page=User&userID=2

    Code
    <div class="fieldValue">
    Nummer1<br />
    Nummer2<br />
    Nummer4
    </div>

    Datenbank:
    wcf1_user_option_value
    woltlab.com/attachment/36810/

    Und ich hätte jetzt gerne, dass die Ausgabe so aussieht:
    Mehrere Sachen: Nummer1, Nummer2, Nummer4

    Die Variable im Template ist die {@$option.optionValue}, welche die Aufzählung ausgibt.

    Jetzt ist die Frage welche class.php diese {@$option.optionValue} bei Multiselect so generiert, dass die Zeilenumbrüche zu <br />´s werden.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!