Zusätzlicher Tab in Details nur, wenn Inhalt gefüllt

Hallo,

ich habe einn zusätzlichen Tab zwischen Beschreibung und Bewertungen hinzugefügt und mit IF-Abfragen umschlossen, damit er nur angezeigt wird, wenn das Feld gefüllt ist.

Soweit funktioniert auch alles. Lediglich in der Responsive-Variante am Smartphone wird der Tab immer angezeigt. Klickt man dort dann drauf, bleibt die Seite weiß und man kommt nicht mehr zurück.

Ich bin dabei wie folgt vorgegangen. Neue Datei für den Tab angelegt …

{namespace name="frontend/detail/tabs/usage"}

{if {$sArticle.plenty_connector_technical_description}}
	
		
			
			Zurück
		
	
	
		{* Product description *}
		{block name='frontend_detail_description_text'}
			
				{$sArticle.plenty_connector_technical_description}
			
		{/block}
	
{/if}

tabs.tpl erweitert …

{extends file="parent:frontend/detail/tabs.tpl"}

{* Usage Tab *}
{if {$sArticle.plenty_connector_technical_description}}
	{block name="frontend_detail_tabs_description" append}
		{s namespace="frontend/detail/tabs" name='DetailTabsUsage'}{/s}
	{/block}
{/if}


{* Usage container *}
{if {$sArticle.plenty_connector_technical_description}}
	{block name="frontend_detail_tabs_content_description" append}
			
				{s namespace="frontend/detail/tabs" name='DetailTabsUsage'}{/s}
				{$sArticle.plenty_connector_technical_description|strip_tags|truncate:100: '...'}{s name="PreviewTextMore"}{/s}
				{include file="frontend/detail/tabs/usage.tpl"}
			
	{/block}
{/if}

Wie gesagt, überall eine IF umschlossen. Falls es jemand testen möchte:

Bei dem Artikel ist ein Text unter “Anwendung” hinterlegt:
https://koerperpflege.com/funktionelle-kosmetik/haarpflege/shampoo/1/organicum-shampoo-fuer-alle-haartypen-350-ml

Bei dem hier kein Text:
https://koerperpflege.com/problembereiche/gegen-unreine-haut/21/bli-des-clarte-reine-haut-reinigt-und-desinfiziert-gegen-pickel-akne-talg?number=clarte-50

Wenn die Links nicht erwünscht sind, können sie gerne auch entfernt werden. 

Das Problem besteht tatsächlich nur am Smartphone in der Responsive-Ansicht.

Viele Grüße
Roman

Bei mir funzt da aber alles einwandfrei auf dem Handy!

So wäre es richtig:

{extends file="parent:frontend/detail/tabs.tpl"}

{* Usage Tab *}
{block name="frontend_detail_tabs_description"}
    {$smarty.block.parent}
    {if $sArticle.plenty_connector_technical_description}
        {s namespace="frontend/detail/tabs" name='DetailTabsUsage'}{/s}
    {/if}
{/block}

Viele Grüße
https://www.digitvision.de

So ist dann allerdings auch der Tab für die Bewertungen weg, wenn noch keine Bewertung vorhanden ist. Der sollte aber stehen bleiben, damit die Leute Bewertungen abgeben können.

 

Woran liegt das?

Jemand eine Idee?

So müsste es funktionieren, ist eigentlich wie Eike Warneke das geschrieben hat.

{extends file="parent:frontend/detail/tabs.tpl"}

{* Usage Tab *}
{block name="frontend_detail_tabs_description"}	
	{$smarty.block.parent}
		{if {$sArticle.plenty_connector_technical_description}}
			{s namespace="frontend/detail/tabs" name='DetailTabsUsage'}{/s}
		{/if}
{/block}


{* Usage container *}
{block name="frontend_detail_tabs_content_description"}
	{if {$sArticle.plenty_connector_technical_description}}
		{$smarty.block.parent}
			
				{s namespace="frontend/detail/tabs" name='DetailTabsUsage'}{/s}
				{$sArticle.plenty_connector_technical_description|strip_tags|truncate:100: '...'}{s name="PreviewTextMore"}{/s}
				{include file="frontend/detail/tabs/usage.tpl"}
			
	{/if}
{/block}

und das für den Tab

{namespace name="frontend/detail/tabs/usage"}

{* Offcanvas buttons *}
{block name='frontend_detail_plenty_connector_technical_description_buttons_offcanvas'}
    
        {block name='frontend_detail_properties_buttons_offcanvas_inner'}
            
                 
                {s name="OffcanvasCloseMenu"}{/s}
            
        {/block}
    
{/block}

{block name='frontend_detail_plenty_connector_technical_description'}
	{if {$sArticle.plenty_connector_technical_description}}
		
			
				
				Zurück
			
		
		
			{* Product description *}
			{block name='frontend_detail_description_text'}
				
					{$sArticle.plenty_connector_technical_description}
				
			{/block}
		
	{/if}
{/block}

block name kannst du kürzer gestallten, hab das nur auf die schnelle eingefügt

Das funktioniert leider auch nicht. Wenn kein Text in der technical description steht, erscheint nur der Tab für Beschreibung, dann aber mit dem Inhalt für Bewertungen.

 

Nach deiner Idee sollte der Quellcode für den Tab ja gar nicht ausgegeben werden, das funktioniert aber auch in der Desktop-Ansicht schon nicht, 

Anwendung

Das wird trotzdem ausgegeben, lediglich dem Javascript ist es zu verdanken, dass der Link keine has–content-Klasse bekommt und sichtbar werden würde. Spontan sieht 

{if {$sArticle.plenty_connector_technical_description}}

falsch aus. Das müsste 

{if $sArticle.plenty_connector_technical_description}

heißen. Habs nicht getestet, wird durch die Klammern aber evtl. immer true. Wenn es das nicht ist den Inhalt von $sArticle.plenty_connector_technical_description am besten mal mit |trim trimmen, zumindest im Quelltext sieht es so aus als würde er auch im Falle von leer einen Zeilenumbruch enthalten. Und dann wird die if-Bedingung true.

Gruß

Matt

Sorry für die späte Rückmeldung. Leider bin ich in Sachen Template nicht so versiert. Würde es dir viel ausmachen, den Code einmal kurz von oben abzuändern? Ich blicke da irgendwie nicht durch :confused:

 

Sorry für die Umstände.

Bitte verwechsel die Mitglieder des Forums nicht mit kostenlosen Dienstleistern :)

Viele Grüße

Verstehe ich. Ich weiß es auch schon sehr zu schätzen, wieviel Unterstützung ich hier kostenlos erhalten habe.

 

Trotzdem danke :slight_smile:

Was ich nicht verstehe ist, warum die IF scheinbar überhaupt nicht greift. Ich habe es nun auch mal mit 

{if $sArticle.plenty_connector_technical_description|count_characters:true > 0}

getestet. Falls hier diese gt angezeigt wird, das ist im Quellcode bei mir ein größer als-Zeichen. Bei der Ausgabe der Zeichenlänge wird mir „0“ Zeichen für die Variable ausgegeben. Die Ausgabe des IF-Blocks erfolgt aber trotzdem, obwohl nur bei mehr als 0 Zeichen ausgegeben werden sollte. Ich mache doch hier schon was grundlegendes falsch, oder?

Versuch mal

{if $sArticle.plenty_connector_technical_description|trim}
[...]
{/if}

Ansonsten hab ich spontan auch keine Idee…

Gruß

Matt

Geht auch nicht…sehr seltsam.

Danke trotzdem für eure Hilfe!