Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Zusätzliches Artikel Tab in der modified 2.0

    Gerd1712

    • Neu im Forum
    • Beiträge: 40
    Re: Zusätzliches Artikel Tab in der modified 2.0
    Antwort #30 am: 08. Oktober 2019, 15:33:14
    wird nicht besser dadurch

    kann dir auch gern mal die daten und so weiter zuschicken wenn du magst - dann kannste mal direkt gucken...
    Shop Hosting

    hpzeller

    • Experte
    • Beiträge: 4.130
    • Geschlecht:
    Re: Zusätzliches Artikel Tab in der modified 2.0
    Antwort #31 am: 08. Oktober 2019, 22:52:46
    Hallo Gerd,

    ersetze in includes/extra/modules/product_info_end/tabs.php den gesamten Code mit folgendem Code.

    Code: PHP  [Auswählen]
    <?php
      $description = stripslashes($product->data['products_description']);
        // Get all tab contents.
      // $tab_content = preg_split('/\[TAB\:.*\]/', $description, -1, PREG_SPLIT_NO_EMPTY);
        $tab_content = preg_split('/\[TAB\:[^\]]*\]/', $description, -1, PREG_SPLIT_NO_EMPTY);
      // $tab_content = preg_split('/\[TAB\:.*?\]/', $description, -1, PREG_SPLIT_NO_EMPTY);
       
        // Get tab title
        $tab_title = array();
      // preg_match_all('/\[TAB\:.*\]/', $description, $tab_title);
        preg_match_all('/\[TAB\:[^\]]*\]/', $description, $tab_title);
      // preg_match_all('/\[TAB\:.*?\]/', $description, $tab_title);
       
        // Check if tabs exist
        if(count($tab_content) > 1) {
            $description = array_shift($tab_content);

            $tabs_data = array();    
            for($i=0; $i<count($tab_content); $i++)
            {
                $_tmpTitle = substr($tab_title[0][$i], 5, -1);
                $title = !empty($_tmpTitle) ? $_tmpTitle : '-undefined-';
                $tabs_data[] = array('ID' => $i, 'TITLE' => $title, 'CONTENT' => $tab_content[$i]);
            }
        }
      $info_smarty->assign('PRODUCTS_DESCRIPTION', $description);
      $info_smarty->assign('tabs', $tabs_data);
     

    Finde in templates/bootstrap4/module\product_info/product_info_tabs_v1.html folgenden Code (ca. Zeile 212)

    Code: XML  [Auswählen]
          {if $PRODUCTS_DESCRIPTION != ''}<li class="nav-item"><a class="nav-link" href="#prod_desc" role="tab" data-toggle="tab">{#description#}</a></li>{/if}
     

    und ersetze ihn mit diesem,

    Code: XML  [Auswählen]
          {if $PRODUCTS_DESCRIPTION != ''}<li class="nav-item"><a class="nav-link" href="#prod_desc" role="tab" data-toggle="tab">{#description#}</a></li>
          {foreach name=tabs_title item=tabs_data from=$tabs}
            <li class="nav-item"><a class="nav-link" href="#prod_tags_{$smarty.foreach.tabs_title.iteration}" role="tab" data-toggle="tab">{$tabs_data.TITLE}</a></li>
          {/foreach}            
          {/if}
     

    dann finde folgenden Code (ca. Zeile 222)

    Code: XML  [Auswählen]
          {if $PRODUCTS_DESCRIPTION != ''}<div role="tabpanel" class="tab-pane active" id="prod_desc"><h4 class="detailbox">{#products_desc#}</h4><div itemprop="description">{$PRODUCTS_DESCRIPTION}</div></div>{/if}
     

    und ersetze ihn mit diesem.

    Code: XML  [Auswählen]
          {if $PRODUCTS_DESCRIPTION != ''}<div role="tabpanel" class="tab-pane active" id="prod_desc"><h4 class="detailbox">{#products_desc#}</h4><div itemprop="description">{$PRODUCTS_DESCRIPTION}</div></div>
          {foreach name=tabs_desc item=tabs_data from=$tabs}
            <div role="tabpanel" class="tab-pane active" id="prod_tags_{$smarty.foreach.tabs_desc.iteration}"><h4 class="detailbox">{#products_desc#}</h4><div itemprop="description">{$tabs_data.CONTENT}</div></div>
          {/foreach}      
          {/if}
     

    Gruss
    Hanspeter

    Gerd1712

    • Neu im Forum
    • Beiträge: 40
    Re: Zusätzliches Artikel Tab in der modified 2.0
    Antwort #32 am: 09. Oktober 2019, 18:04:07
    Tooop da hat funktioniert.... Super lieben Dank!

    Baschtl

    • Mitglied
    • Beiträge: 160
    Re: Zusätzliches Artikel Tab in der modified 2.0
    Antwort #33 am: 17. August 2020, 12:38:10
    Hallo,

    ich verwende ein Template für einen Modified2.0.5.1, bei dem in der product_info_tabs_v1.html eine product_info.html includiert wird:
    Code: PHP  [Auswählen]
    {include file="`$smarty.const.CURRENT_TEMPLATE`/module/includes/product_info.html"}

    Wenn ich in dieser /includes/product_info.html die Code Schnipsel hinzufüge
    Code: PHP  [Auswählen]
    <ul class="nav nav-tabs" id="myTab" role="tablist">
      {if $PRODUCTS_DESCRIPTION != ''}
      <li class="nav-item">
        <a class="nav-link active" id="tab1-tab" data-toggle="tab" href="#tab1" role="tab" aria-controls="tab1" aria-selected="true">{#products_desc#}</a>
     </li>
      {/if}
      {foreach item=tabs_data from=$tabs}
        <li>{$tabs_data.TITLE}</li>
      {/foreach}   
    ...
     

    bzw.

    Code: PHP  [Auswählen]
     <div class="tab-content" id="myTabContent">
      {if $PRODUCTS_DESCRIPTION != ''}
      <div class="tab-pane fade show active" id="tab1" role="tabpanel" aria-labelledby="tab1-tab">{$PRODUCTS_DESCRIPTION}   </div>
      {/if}
      {foreach item=tabs_data from=$tabs}
      <div>{$tabs_data.CONTENT}</div>
      {/foreach}
    ...
     

    scheint das nicht auszureichen, weil ich dann zwar einen neuen Tab angezeigt bekomme, aber der ist nicht anklickbar und die darin eingefügten Inhalte werden in allen anderen Tabs mit angezeigt.

    Was muss ich noch anpassen, damit es in dieser Variante auch funktioniert (in einem Standard-Template hat es problemlos geklappt).

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.707
    • Geschlecht:
    Re: Zusätzliches Artikel Tab in der modified 2.0
    Antwort #34 am: 17. August 2020, 13:07:25
    Wie du am ursprünglichen Code sehen kannst, gibt es ein href welches auf eine ID zielt, also
    href="#tab1" (= der Reiter)
    zielt auf
    id="tab1" (= der Inhalt des Tabs)
    in deinem zweiten geposteten Code.

    Du benötigst also einen Counter, den du, wenn du z.B. hpzellers Code benutzt, auch hast, nämlich die ID im u.g. Array.
    Code: PHP  [Auswählen]
    $tabs_data[] = array('ID' => $i, 'TITLE' => $title, 'CONTENT' => $tab_content[$i]);

    Im Template kannst du das dann so verwenden:
    Code: PHP  [Auswählen]
    <ul class="nav nav-tabs" id="myTab" role="tablist">
      {if $PRODUCTS_DESCRIPTION != ''}
      <li class="nav-item">
        <a class="nav-link active" id="tab1-tab" data-toggle="tab" href="#tab1" role="tab" aria-controls="tab1" aria-selected="true">{#products_desc#}</a>
     </li>
      {/if}
      {foreach item=tabs_data from=$tabs}
        <li class="nav-item">
           <a class="nav-link" id="tabE{$tabs_data.ID}-tab" data-toggle="tab" href="#tabE{$tabs_data.ID}" role="tab" aria-controls="tabE{$tabs_data.ID}" aria-selected="false">{$tabs_data.TITLE}</a>
       </li>
      {/foreach}    
    ...

    und
    Code: PHP  [Auswählen]
     <div class="tab-content" id="myTabContent">
      {if $PRODUCTS_DESCRIPTION != ''}
      <div class="tab-pane fade show active" id="tab1" role="tabpanel" aria-labelledby="tab1-tab">{$PRODUCTS_DESCRIPTION}   </div>
      {/if}
      {foreach item=tabs_data from=$tabs}
      <div class="tab-pane fade show" id="tabE{$tabs_data.ID}" role="tabpanel" aria-labelledby="tabE{$tabs_data.ID}-tab">{$tabs_data.CONTENT}</div>
      {/foreach}
    ...

    Das E steht quasi für Extra. Kannst auch ein anderes oder mehrere Zeichen nehmen.
    Es geht lediglich darum zu verhindern, daß IDs mehrfach vorkommen, denn der Shop hat ja auch weitere originäre Tabs, wie z.B. für Rezensionen, Bilder, Cross-Selling usw..

    Da ich die Tab-Implementation nicht kenne, kann ich nur versuchen zu interpretieren wie die ganzen classes und aria-Attribute gesteuert und verwendet werden. Teste mal so.

    Gruß,
    noRiddle

    Baschtl

    • Mitglied
    • Beiträge: 160
    Re: Zusätzliches Artikel Tab in der modified 2.0
    Antwort #35 am: 17. August 2020, 14:30:14
    @noRiddle: Hat funktioniert :-) 1000 Dank!
    3 Antworten
    4359 Aufrufe
    30. Januar 2011, 18:46:20 von jakko
    2 Antworten
    1040 Aufrufe
    22. Oktober 2018, 15:17:39 von dertobinator
    1 Antworten
    2508 Aufrufe
    12. April 2011, 19:54:53 von Tomcraft
    3 Antworten
    2527 Aufrufe
    07. August 2013, 17:20:15 von sunfreak