Zeichensalat bei neuem Produktblock

      Zeichensalat bei neuem Produktblock

      Hallo,

      habe einen neuen Block gefunden, der Produkte mit einem bestimmten Attribut auf der Startseite anzeigt. Anstelle einer Liste erhalte ich aber komischen Zeichensalat, der nicht so recht nach dem üblichen Mage-Fehlermeldungen aussieht (s. Anhang). Was könnte das sein?

      Gruß,
      cooee
      Bilder
      • screener_featured_product_m.jpg

        122,16 kB, 583×361, 149 mal angesehen
      Hallo cooee,

      ein ähnliches Problem hatte ich bei der Erstellung meines ersten Moduls auch. Mein Problem bestand darin, dass ich die Funktion nicht richtig überschrieben habe...

      Kannst du den Code aus dem Block einmal hier posten, so dass wir das Ganze kurz im Testshop ausprobieren können?

      Gruß
      Magento Hosting | Cloud Server | Shopware Hosting | Elasticsearch Hosting
      Unsere Hosting-Lösungen nutzen ultraschnelle SSDs und sind jederzeit skalierbar.
      Aber gerne :) Das Dingen steht als Homepage.php in /app/code/local:

      PHP-Quellcode

      1. <?php
      2. class Cooee_Catalog_Block_Product_Homepage extends Mage_Catalog_Block_Product_Abstract
      3. {
      4. public function __construct()
      5. {
      6. parent::__construct();
      7. $storeId = Mage::app()->getStore()->getId();
      8. $product = Mage::getModel('catalog/product');
      9. /* @var $product Mage_Catalog_Model_Product */
      10. $todayDate = $product->getResource()->formatDate(time());
      11. $products = $product->setStoreId($storeId)->getCollection()
      12. ->addAttributeToFilter('home_page_featured', array('yes'=>true))
      13. ->addAttributeToSelect(array('name', 'price', 'small_image'), 'inner')
      14. ->addAttributeToSelect(array('special_price', 'special_from_date', 'special_to_date'), 'left')
      15. ;
      16. /* @var $products Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection */
      17. Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($products);
      18. Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($products);
      19. $products->setOrder('hot_deals')->setPageSize(5)->setCurPage(1);
      20. $this->setProductCollection($products);
      21. }
      22. }
      23. ?>
      Die zugehörige homepage.phtml:

      PHP-Quellcode

      1. <?php if (($_products = $this->getProductCollection()) && $_products->getSize()): ?>
      2. <div class="home-page-cntr">
      3. <?php $i=0; foreach ($_products->getItems() as $_product): ?>
      4. <?php if ($i>5): continue; endif; ?>
      5. <div class="home-page-item">
      6. <div class="home-page-img">
      7. <a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->htmlEscape($_product->getName()) ?>">
      8. <img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(65,65); ?>" alt="<?php echo $this->htmlEscape($_product->getName()) ?>"/>
      9. </a>
      10. </div>
      11. <div class="home-page-txt">
      12. <p><a class="product-name" href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->htmlEscape($_product->getName()) ?>)"><?php echo $_product->getName() ?></a></p>
      13. <?php echo $this->helper('review/product')->getSummaryHtml($_product, 'short') ?>
      14. <?php echo $this->helper('catalog/product')->getPriceHtml($_product) ?>
      15. </div>
      16. </div>
      17. <?php $i++; endforeach; ?>
      18. <?php for($i;$i%5!=0;$i++): ?>
      19. <?php endfor ?>
      20. </div>
      21. <?php endif; ?>

      Der Aufruf:

      Quellcode

      1. {{block type="catalog/product_homepage" name="home.catalog.product.homepage" alias="product_homepage" template="catalog/product/homepage.phtml"}}
      Schade, durch reines überfliegen werden wir da nicht weiterkommen... ;)

      Ich baue den Code morgen Vormittag in einen Testshop ein und werde dir meine Erkenntnisse hier posten.

      Was mir auf den ersten Blick auffällt ist das "extends Mage_Catalog_Block_Product_Abstract". - Bei meinem ersten Modul-Versuch habe ich (gleich) versucht eine Abstract-Klasse zu überschreiben, was aber nicht so einfach möglich ist. Ob das hier auch zutrifft weiß ich noch nicht, aber mein Zeichensalat sah ähnlich aus...
      Magento Hosting | Cloud Server | Shopware Hosting | Elasticsearch Hosting
      Unsere Hosting-Lösungen nutzen ultraschnelle SSDs und sind jederzeit skalierbar.
      Ich habe das Problem lösen können. Da allerdings einiges verändert werden muss, werde ich den Code erst morgen in einer sauberen Form posten können. - Das Ganze funktioniert zwar schon, aber es gibt noch 1-2 Punkte die nicht ganz sauber sind...
      Magento Hosting | Cloud Server | Shopware Hosting | Elasticsearch Hosting
      Unsere Hosting-Lösungen nutzen ultraschnelle SSDs und sind jederzeit skalierbar.

      TOP Produkte auf der Startseite anzeigen (Featured products)

      Wie versprochen das fertige Modul.

      Vorbereitungen
      Als erstes wird ein neues Attribut (Ja / Nein Optionsschalter) "home_page_featured" angelegt und zum aktuellen Attributset hinzugefügt. Sobald das Set gespeichert wurde können wir den Schalter für unsere TOP-Produkte auf "ja" setzen.

      Als nächstes wird über

      Quellcode

      1. CMS => SEITEN VERWALTEN => Home Page
      auf der Startseite folgendes Snippet eingefügt:

      Quellcode

      1. {{block type="catalog/product_homepage" template="catalog/product/homepage.phtml"}}
      Das Ganze sollte am besten über folgendem Tag stehen:

      Quellcode

      1. <div class="box best-selling">
      Cache leeren nicht vergessen!

      Dateien kopieren
      Abschließend werden alle Dateien aus dem Anhang auf den Server geladen.

      Fertig
      Die Produkte mit der Option "Ja" sollten jetzt auf der Startseite angezeigt werden.

      EDIT: Neue Version: rackspeed.de/forum/magento-fra…em-produktblock-32#post64
      Dateien
      • featured.zip

        (6,11 kB, 109 mal heruntergeladen, zuletzt: )
      Magento Hosting | Cloud Server | Shopware Hosting | Elasticsearch Hosting
      Unsere Hosting-Lösungen nutzen ultraschnelle SSDs und sind jederzeit skalierbar.
      Okay, dankeschön, werde das gleich mal ausprobieren. Das mit dem Zeichensalat scheint jedoch noch eine Sache zu sein, die auch auf anderem Wege ausgelöst werden könnte. Ich wollte gerade einfach mal in der Navigation (left.phtml) die aktuelle Kategorie via

      Quellcode

      1. echo $this->getCurrentChildCategories()
      ausgeben lassen, mit dem selben Resultat. Woran könnte es denn noch liegen?

      Gruß, cooee
      Leider kenne ich mich mit dem Zend-Framework noch nicht so gut aus, daher habe ich deinen Code wahrscheinlich auch erst gar nicht zum laufen bekommen. - In meinem Modul liegen die Dateien auch an ganz anderen Stellen... :(

      Was mir gerade erst aufgefallen ist:

      PHP-Quellcode

      1. <?php $i=0; foreach ($_products->getItems() as $_product): ?>


      heißt bei mir:

      PHP-Quellcode

      1. <?php $i=0; foreach ($_products as $_product): ?>


      Auf Wunsch von Ingo habe ich das Ausgabetemplate noch einmal überarbeitet, die neuen Dateien befinden sich im Anhang.
      Dateien
      • featured_1_1.zip

        (6,45 kB, 106 mal heruntergeladen, zuletzt: )
      Magento Hosting | Cloud Server | Shopware Hosting | Elasticsearch Hosting
      Unsere Hosting-Lösungen nutzen ultraschnelle SSDs und sind jederzeit skalierbar.
      Hallo Maik,

      super Arbeit! Jetzt habe ich nur noch ein klitzekleines Problem: Die Links in den Boxen sind leider englisch (auch der Button "Add to Cart"). Gibts da eine Möglichkeit, dass die auch noch eingedeutscht werden können?

      Ansonsten nochmals ein großes DANKE für dieses Modul.