Falls Tab leer, dann nicht anzeigen

Diskussionen rund um die Templates (incl. Smarty)
Antworten
Kopernikus
Beiträge: 390
Registriert: Fr 19. Okt 2012, 12:15

Falls Tab leer, dann nicht anzeigen

Beitrag von Kopernikus »

Ich habe kurz eine Frage zum Produkte-Tab. In meinem Shop gibt es Lebensmittel und andere Produkte. Bei den Lebensmitteln würde ich gerne ein Tab mit den Inhaltstoffen einblenden. Dieses Tab soll bei anderen Produkten bzw. wenn es leer ist ausgeblendet sein.

Wie müsste die IF Bedingung genau lauten, damit dies z.B. bei den "details" klappt?

Code: Alles auswählen

<div id="product_tabs" class="grid_12 alpha omega">
		<div id="tabs">
			<ul>
				<li><a href="#tabs-1">{#description#}</a></li>
				<li><a href="#tabs-2">{#details#}</a></li>
				<li><a href="#tabs-3">{#reviews#}{review_stars width=79 avg=$PRODUCTS_REVIEWS_AVG}</a></li>
                <li><a href="#tabs-4">{#media#}</a></li>
                 
			</ul>

			<div id="tabs-1" class="tab">
            {$PRODUCTS_DESCRIPTION}
				
Herzlichen Dank im Voraus
yogi
Administrator
Beiträge: 292
Registriert: Do 6. Mai 2010, 14:16
Shop Version: die aktuelle
Wohnort: Köln
Kontaktdaten:

Re: Falls Tab leer, dann nicht anzeigen

Beitrag von yogi »

Hallo Kopernikus,

der Tab wird ja weiter unten im code aufgebaut:

Code: Alles auswählen

                        <div id="tabs-2" class="tab">
                                {foreach from=$ADDITIONAL_INFO item=inf name=info}
                                        <p class="key">{$inf.info_key}:</p>
                                        <p class="value">{$inf.info_value}</p>
                                {/foreach}
                        </div>
wenn Du nun oben beim Link vorab prüfst ob es $ADDITIONAL_INFO gibt sollte der Tab nur dann erscheinen:

Code: Alles auswählen

            <li><a href="#tabs-1">{#description#}</a></li>
{if $ADDITIONAL_INFO}
            <li><a href="#tabs-2">{#details#}</a></li>
{/if}
            <li><a href="#tabs-3">{#reviews#}{review_stars width=79 avg=$PRODUCTS_REVIEWS_AVG}</a></li>
             <li><a href="#tabs-4">{#media#}</a></li>
Kopernikus
Beiträge: 390
Registriert: Fr 19. Okt 2012, 12:15

Re: Falls Tab leer, dann nicht anzeigen

Beitrag von Kopernikus »

Perfekt :D

Ich danke Dir herzlich!
Kopernikus
Beiträge: 390
Registriert: Fr 19. Okt 2012, 12:15

Re: Falls Tab leer, dann nicht anzeigen

Beitrag von Kopernikus »

Nun habe ich doch noch ein Problem festgestellt. Fügt man den code wie von Dir beschrieben ein, wird zwar das leere Tab ausgeblendet, doch die dynamische Textanpassung funktioniert nicht mehr. D.h. die Tab-Grösse wird nicht mehr dem Text angepasst und nachfolgende Tabs welche dann z.B. nur die Bewertung enthalten, übernehmen automatisch die Grösse des ersten Tabs.

Hast Du da möglicherweise auch eine Lösung bereit?`
yogi
Administrator
Beiträge: 292
Registriert: Do 6. Mai 2010, 14:16
Shop Version: die aktuelle
Wohnort: Köln
Kontaktdaten:

Re: Falls Tab leer, dann nicht anzeigen

Beitrag von yogi »

Blende mal den eigentlichen Textinhalt - der ja leer ist - auch aus wenns leer ist:

Code: Alles auswählen

                            <div id="tabs-2" class="tab">
                                    {foreach from=$ADDITIONAL_INFO item=inf name=info}
                                            <p class="key">{$inf.info_key}:</p>
                                            <p class="value">{$inf.info_value}</p>
                                    {/foreach}
                            </div>
wird zu

Code: Alles auswählen

{if $ADDITIONAL_INFO}
                            <div id="tabs-2" class="tab">
                                    {foreach from=$ADDITIONAL_INFO item=inf name=info}
                                            <p class="key">{$inf.info_key}:</p>
                                            <p class="value">{$inf.info_value}</p>
                                    {/foreach}
                            </div>
{/if}
außerdem gibt es eh schon einen CSS-Style in der css/product_tabs.css

Code: Alles auswählen

.ui-tabs .tab {
  ...
  min-height: 350px;
  ...
}
das den Container auf mindestens 350 Pixel aufzieht.
Kopernikus
Beiträge: 390
Registriert: Fr 19. Okt 2012, 12:15

Re: Falls Tab leer, dann nicht anzeigen

Beitrag von Kopernikus »

Genau das wars :)

Die "min-height:" steht bei mir schon auf 150px, aber nun klappt alles wie es sollte. Nochmals vielen Dank
Kopernikus
Beiträge: 390
Registriert: Fr 19. Okt 2012, 12:15

Re: Falls Tab leer, dann nicht anzeigen

Beitrag von Kopernikus »

Sorry, noch eine lezte Frage zu diesem Thema.

Angenommen ich möchte nebst der Beschreibung, welche ja mit {$PRODUCTS_DESCRIPTION} aufgerufen wird, auch die {$PRODUCTS_SHORT_DESCRIPTION} einbinden. Hast Du eine ahnung, wieso das mit diesem Aufruf nicht funktioniert?
Kopernikus
Beiträge: 390
Registriert: Fr 19. Okt 2012, 12:15

Re: Falls Tab leer, dann nicht anzeigen

Beitrag von Kopernikus »

Habs selber rausgefunden :)

In die includes/modules/product_info.php

die fettgedruckte Zeile einfügen:
EDIT: Fettdruck ist im code Tag offenbar nicht möglich. Einfach die zweite Zeile anfügen ;-)

Code: Alles auswählen

$info_smarty->assign('PRODUCTS_DESCRIPTION', stripslashes($product->data['products_description']));
$info_smarty->assign('PRODUCTS_SHORT_DESCRIPTION', stripslashes($product->data['products_short_description']));
und in der \templates\webs\module\product_info

folgendes einfügen.

Code: Alles auswählen

      <div id="tabs-3" class="tab">
            {$PRODUCTS_SHORT_DESCRIPTION}
            </div>
Antworten