Array in smarty zerlegen

Hallo,
ich möchte die Werte eines Datenbankfeldes zerlegen.
Mit PHP habe ich das hinbekommen.
Ich möchte das aber gerne mit Smarty lösen. Klappt aber leider nie, mach wohl immer wieder Fehler bei der Syntax.


    [{assign var=title value=$product->oxarticles__oxtitle->value}]
    [{php}]
    
    $title = explode(",", $this->get_template_vars('title'));
    foreach($title as $value)
    $value = implode(',<br/>', $title);
    echo $value;
  
    [{/php}]



Kann mir jemand helfen?
Danke,
Norbert

$title = explode(",", $this->get_template_vars('title'));
    foreach($title as $value) {
    $value = implode(',<br/>', $title);
    echo $value;
  	}

Ich glaube, so wird mehr draus.

[QUOTE=rubbercut;61839]

$title = explode(",", $this->get_template_vars('title'));
    foreach($title as $value) {
    $value = implode(',<br/>', $title);
    echo $value;
  	}

Ich glaube, so wird mehr draus.[/QUOTE]

Hallo,
danke für die Antwort.
Habe jetzt noch eine ganze weile probiert aber das Ergebnis ist nicht so, wie ich mir das vorstelle.

Bei meinem geposteten Versuch mit PHP werden die Titel wie folgt ausgelesen:

Titel 1,
Titel 2,
Titel 3,
etc
Ich kann hier auch jederzeit nur Titel 3 oder Titel 1 einzeln abgreifen, wenn ich den Code entsprechend verändere.

Wenn ich das im template wie von dir vorgeschlagen umsezte, habe ich aber den gesamten String da stehen.

Im Grunde reicht hier schon:



$title = explode(",", $this->get_template_vars('title'));

Das einzelne auslesen oder abgreifen der Variablen funktioniert so nicht im template?

Gruß,
Norbert

Hallo,
habe einen Teil erledigt, mach das jetzt mit einem Modul.
Kann mir hier jemand noch einen Ansatz liefern, wie ich die Sortielung richtig hinbekomme,
so dass die Umlaute also Ö mit Oe einsortiert wird.
Bin mit string replace nicht klargekommen.
Habe dann auch wieder gelesen, dass dies mit UTF-8 problematisch ist?


class title extends title_parent
{
  public function getTitle()
  {
   
    $title = explode(",", $this->oxarticles__oxtitle->value);
    
    sort ($title);
    
    $value = implode(',<br/>', $title);
    echo '<br />';
    
    return $value;
  }    
}



Danke für die Hilfe,
Norbert

Mit oxSeoEncoder - dieser weiß wie man sucht und ersetzt, auch kyrillisch, wenn definiert.


public function getTitle(){
    $oS=oxNew('oxSeoEncoder');
    $aPlainTitles = explode(",", $this->oxarticles__oxtitle->value);
    $aTitles=array();
    foreach($aPlainTitles as $sValue){
        $aTitles[$oS->encodeString($sValue)]=$sValue;
    }
    ksort ($aTitles);
    $sOut= implode(',<br/>', $aTitles);
    return $sOut;
}

Danke!!!
Funktioniert hervorragend.
Gruß,
Norbert

Hallo,
mir ist jetzt doch noch eine Kleinigkeit aufgefallen, die nicht stimmig ist.

Die Umlaute werden jetzt zwar zwischen A-Z einsortiert und nicht wie vorher hinter Z aufgelistet, aber es ist leider so, dass die Sortierung z.B. so aussieht:

Äther
Aahus
Keine Ahnung
Öel
Özil
Oberamergau
Ohne Worte
Übel
Überzahl
Uaaaaa

Nur so als Beispiele.

Wie kann man das lösen?

Danke und Gruß,
Norbert

admin->stammdaten->grundeinstellungen->seo->Zeichen, die in SEO URLs ersetzt werden

dort ist zB:
Ä=>AE
ä=>ae

Laut ASCII und was darauf basiert sind Großbuchstaben [B]vor[/B] Kleinbuchstaben.

Entweder die SEO-Daten ändern oder.

$aTitles[$oS->encodeString($sValue)]=$sValue;
mit
$aTitles[strtolower($oS->encodeString($sValue))]=$sValue;
ersetzen.