Tabs auf Produkseite

      Tabs auf Produkseite

      Auf der Produktseite gibt es unten eine Reihe von Tabs: Produktbeschreibeung, Zusatzinformationen, Produktschlagworte

      Kann ich irgendwo die Reihenfolge bearbeiten in der diese Angezeigt werden, z.B. Standardmäßig Zusatzinformationen an erster Stelle?

      Kann man auch eigene hinzufügen?
      hier kommt er

      PHP-Quellcode

      1. * Product view template
      2. *
      3. * @see Mage_Catalog_Block_Product_View
      4. */
      5. ?>
      6. <ul class="tabs">
      7. <?php foreach ($this->getTabs() as $_index => $_tab): ?>
      8. <?php if($this->getChildHtml($_tab['alias'])): ?>
      9. <li id="product_tabs_<?php echo $_tab['alias'] ?>" <?php echo !$_index ? 'class="active first"' : '' ?>><a href="#"><?php echo $_tab['title']?></a></li>
      10. <?php endif; ?>
      11. <?php endforeach; ?>
      12. </ul>
      13. <div class="padder">
      14. <?php foreach ($this->getTabs() as $_index => $_tab): ?>
      15. <?php if($this->getChildHtml($_tab['alias'])): ?>
      16. <div id="product_tabs_<?php echo $_tab['alias'] ?>_contents"><?php echo $this->getChildHtml($_tab['alias']) ?></div>
      17. <?php endif; ?>
      18. <?php endforeach; ?>
      19. </div>
      20. <script type="text/javascript">
      21. Varien.Tabs = Class.create();
      22. Varien.Tabs.prototype = {
      23. initialize: function(selector) {
      24. var self=this;
      25. $$(selector+' a').each(this.initTab.bind(this));
      26. },
      27. initTab: function(el) {
      28. el.href = 'javascript:void(0)';
      29. if ($(el.parentNode).hasClassName('active')) {
      30. this.showContent(el);
      31. }
      32. el.observe('click', this.showContent.bind(this, el));
      33. },
      34. showContent: function(a) {
      35. var li = $(a.parentNode), ul = $(li.parentNode);
      36. ul.getElementsBySelector('li', 'ol').each(function(el){
      37. var contents = $(el.id+'_contents');
      38. if (el==li) {
      39. el.addClassName('active');
      40. contents.show();
      41. } else {
      42. el.removeClassName('active');
      43. contents.hide();
      44. }
      45. });
      46. }
      47. }
      48. new Varien.Tabs('.tabs');
      49. </script>
      Bau bitte einmal folgende Zeilen in den Code ein um den Inhalt der Arrays auszugeben. - Nicht erschrecken, die 3 Zeilen werden wahrscheinlich das Design zerlegen... ;)

      PHP-Quellcode

      1. var_dump($this->getTabs());
      2. var_dump($_index);
      3. var_dump($_tab);


      Die Ausgaben bitte einmal hier posten.
      Magento Hosting | Cloud Server | Shopware Hosting | Elasticsearch Hosting
      Unsere Hosting-Lösungen nutzen ultraschnelle SSDs und sind jederzeit skalierbar.
      ich habe die Zeile hier eingebaut:

      PHP-Quellcode

      1. <ul class="tabs">
      2. <?php foreach ($this->getTabs() as $_index => $_tab): ?>
      3. <?php if($this->getChildHtml($_tab['alias'])): ?>
      4. <li id="product_tabs_<?php echo $_tab['alias'] ?>" <?php echo !$_index ? 'class="active first"' : '' ?>><a href="#"><?php echo $_tab['title']?></a></li>
      5. <?php endif; ?>
      6. <?php endforeach; ?>
      7. </ul>
      8. <div class="padder">
      9. <?php foreach ($this->getTabs() as $_index => $_tab): ?>
      10. var_dump($this->getTabs());
      11. var_dump($_index);
      12. var_dump($_tab);
      13. <?php if($this->getChildHtml($_tab['alias'])): ?>
      14. <div id="product_tabs_<?php echo $_tab['alias'] ?>_contents"><?php echo $this->getChildHtml($_tab['alias']) ?></div>
      15. <?php endif; ?>
      16. <?php endforeach; ?>
      17. </div>


      Ergebniss:

      Quellcode

      1. var_dump($this->getTabs()); var_dump($_index); var_dump($_tab); var_dump($this->getTabs()); var_dump($_index); var_dump($_tab); var_dump($this->getTabs()); var_dump($_index); var_dump($_tab);


      Da es das Design nicht zerschossen hat, befürchte ich, dass das nicht das erwartete Ergebniss ist:(
      Bitte wie folgt einmal korrigieren:

      PHP-Quellcode

      1. <div class="padder">
      2. <?php var_dump($this->getTabs()); ?>
      3. <?php foreach ($this->getTabs() as $_index => $_tab): ?>
      4. <?php var_dump($_index);
      5. var_dump($_tab); ?>
      6. <?php if($this->getChildHtml($_tab['alias'])): ?>
      7. <div id="product_tabs_<?php echo $_tab['alias'] ?>_contents"><?php echo $this->getChildHtml($_tab['alias']) ?></div>
      8. <?php endif; ?>
      9. <?php endforeach; ?>
      10. </div>


      Schön ist anders, aber es sollte seinen Zweck erfüllen... ;)
      Magento Hosting | Cloud Server | Shopware Hosting | Elasticsearch Hosting
      Unsere Hosting-Lösungen nutzen ultraschnelle SSDs und sind jederzeit skalierbar.
      jaaa jetzt passiert schon mehr

      Quellcode

      1. array(4) { [0]=> array(2) { ['alias']=> string(11) "description" ['title']=> string(19) "Produktbeschreibung" } [1]=> array(2) { ['alias']=> string(15) "upsell_products" ['title']=> string(18) "Wir empfehlen auch" } [2]=> array(2) { ['alias']=> string(10) "additional" ['title']=> string(17) "Zusatzinformation" } [3]=> array(2) { ['alias']=> string(4) "tags" ['title']=> string(18) "Produktschlagworte" } } int(0) array(2) { ['alias']=> string(11) "description" ['title']=> string(19) "Produktbeschreibung" }


      und nach dem Text der Produktbeschreibung:

      Quellcode

      1. int(1) array(2) { ['alias']=> string(15) "upsell_products" ['title']=> string(18) "Wir empfehlen auch" } int(2) array(2) { ['alias']=> string(10) "additional" ['title']=> string(17) "Zusatzinformation" } int(3) array(2) { ['alias']=> string(4) "tags" ['title']=> string(18) "Produktschlagworte" }