Zeichen per Script ersetzen lassen.

Hallo,

ich habe für die Artikelbeschreibung ausschließlich Technische Daten. Diese sind wie folgt als Bespiel aufgebaut:

Typ: Auto; Marke: Audi; usw.
Jetzt möchte ich diesen Text automatisch formatieren lassen.
Ziel ist:
 

			Typ:
		
	        
				Audi
			
	
    
		
			Marke:
		
	        
				A4

Ich habe im Quellcode es per Smarty replace versucht, allerdings bekomme ich es irgendwie nicht hin. Wie kann ich den Doppelpunkt und das Semikolon ersetzen lassen?

{if $sArticle.description_long !=''}{$sArticle.description_long|replace:';':''}{/if}

Hat jemand einen Tipp für mich?

 

Vielen Dank!

 

Radi

Wieso definierst du diese nicht als Eigenschaften?

Dann werden Sie zum einen automatisch tabelarisch dargestellt des weiteren kann man dann auch danach filtern.

 

Hallo,

danke für die schnelle Antwort. Diese Informationen kommen aus der Wawi und werden von dem Produktmanager gepflegt.
Wenn ich das als Eigenschaften anlegen muss, werde ich nie mit der Seite fertig. Es sind ca. 2000 Artikel.

Aus diesem Grund würde ich einfach den Text per Script formatieren lassen.

Radi

Hi Radi,

du kannst mit Explode arbeiten. Beispiel:

{$string = "Typ: Auto; Marke: Audi"}
{$array = ","|explode:$string}

{forearch $array as $item}
 {$item = ":"|explode:$item}
  {$item.0}: {$item.1} 
{/forearch}

Gruß Heiner

Hallo Heiner,

danke für die Antwort.

Jetzt bin ich echt überfragt, ich fang gerade mit Shopware an. Wo trage ich denn die Variable

$sArticle.description_long

ein?

Wenn ich

{$string = "$sArticle.description\_long"} in die "mein_theme/frontend/detali/index.tpl" eintrage kommt ein Fehler.

Radi

@Radi schrieb:

Hallo Heiner,

danke für die Antwort.

Jetzt bin ich echt überfragt, ich fang gerade mit Shopware an. Wo trage ich denn die Variable

$sArticle.description_long

ein?

Wenn ich

{$string = „$sArticle.description_long“} in die „mein_theme/frontend/detali/index.tpl“ eintrage kommt ein Fehler.

Radi

Hallo, 

du kannst es ganz einfach so machen:

{$array = ","|explode:$sArticle.description_long}

{forearch $array as $item}
 {$item = ":"|explode:$item}
   {$item.0}: {$item.1} 
{/forearch}

oder:

{$string = $Article.description_long}

{$array = ","|explode:$string}

{forearch $array as $item}
 {$item = ":"|explode:$item}
   {$item.0}: {$item.1} 
{/forearch}

Beste Grüße

Sebastian

Danke Sebastian,
ich habe jetzt in der index.tpl folgendes stehen, aber der Fehler ist immer noch da. Was mache ich falsch?

	{* Product description *}
	{block name='frontend_detail_description_text'}
        
        	{$array = ","|explode:$sArticle.description_long}
				{forearch $array as $item}
 					{$item = ":"|explode:$item}
 						  {$item.0}: {$item.1} 
				{/forearch}                  
        
	{/block}

DANKE

Radi

Hallo,

 am besten nutzt du nicht bei zweiten Methode den gleichen Namen, also eher:

{* Product description *}
{block name='frontend_detail_description_text'}

     {$array = ","|explode:$sArticle.description_long}
     {forearch $array as $item}
          {$item2 = ":"|explode:$item}
            {$item2.0}: {$item2.1} 
     {/forearch}                  

{/block}

Was kommt denn genau für einen Fehler?

Beste Grüße

Sebastian

1 „Gefällt mir“

Das funktioniert leider auch nicht.

@Radi schrieb:

Das funktioniert leider auch nicht.

Hallo,

am besten du schaltest einmal die „erweiterten Fehlermeldungen“ ein, siehe: http://community.shopware.com/config.php-Tweaks\_detail\_1801.html , also:

'front' => array(
    'throwExceptions' => true,
),

in der config.php - Datei auf dem Server, damit man die „richtige Fehlermeldungen“ erhält.

Beste Grüße

Sebastian

Hallo,
der Provider hat keine Fehler.
In meinem lokalen Demo-Shop wird auch kein Fehler ausgeworfen.

Radi

Ich mach zwar auch so etwas mit explode, gehe aber da vor wie bei Smarty die Beispiele sind.

Nach oben wäre eine Zuweisung:
 

{assign var="array" value=","|@explode:$sArticle.description_long}

Wobei ich eh davon abrate, eine PHP-Typendeklaration wie „array“ als Variablennamen zu nehmen.

Edit: da ist jeweils ein r-zuviel: {forea r ch} wäre wohl eher foreach

1 „Gefällt mir“

@Radi schrieb:

Hallo,
der Provider hat keine Fehler.
In meinem lokalen Demo-Shop wird auch kein Fehler ausgeworfen.

Radi

Hallo,

der Eintrag in die config.php - Datei hat nichts mit dem Provider zu tun, sondern zeigt die „richtige Fehlermeldung“ hinter der für Shopkunden gedachten „Ups! Ein Fehler ist aufgetreten“-Fehlermeldung an. Ohne die entsprechende Fehlermeldung kann man dir auch nur bedingt weiterhelfen - am besten du hinterlegst in der config.php einfach schnell einmal den Eintrag.

Beste Grüße

Sebastian

 

Hi sonic,

schreibt man es richtig - schon klappt es.

Allerdings bricht er nach dem Semikolon nicht um und beginnt neu zu formatieren. Komisch …

 

Radi

Oben steht nichts von Semikolon als Trenner - der für die Schleife ist ein “Komma” und in der Schleife ein “Doppelpunkt”

Danke!
Jetzt ist es super!

Radi