Ana sayfadaki ürünleri göster 1.9


23

Az önce magento 1.9'u yükledim ve ilk engelden düştüm. Bir ürün yarattım ve ürünü ana sayfada görüntülemek için önceki sürümlerden gelen önerileri kullandım ancak aşağıdaki mesajı alıyorum

Önemli hata: 180 satırındaki getSortedChildren()nesnede olmayan bir üye işlevine çağrı yapınapp/design/frontend/rwd/default/template/catalog/product/list.phtml

Minnettar alınan herhangi bir yardım.

Ana sayfanın içerik bölümünde ...

<div class="page-title"> 
    <h2>Our Latest Products</h2> 
</div> 
<p>{{block type="catalog/product_list" category_id="3" template="catalog/product/list.phtml"}}</p>

Lütfen cevabınızı, ürünleri eklemek için kullandığınız kod ile güncelleyebilir misiniz?
Sander Mangel

Merhaba, Sürüm 8 için yaptığımın aynısını kullandım. Ana sayfanın içerik bölümünde elimde ... <div class = "page-title"> <h2> En Son Ürünlerimiz </h2> </div> < p> {{block type = "catalog / product_list" category_id = "3" template = "catalog / ürün / list.phtml"}} </p>
rufus

Yanıtlar:


24

Sorun şu ki, yeni tasarım tasarımı ürün listesi için iki alt bloğa sahip:

<block type="core/text_list" name="product_list.name.after" as="name.after" />
<block type="core/text_list" name="product_list.after" as="after" />

Ve şablonun kendisinde bunların yüklenmeye ve kullanılmaya çalışılmadan önce var olup olmadıklarını kontrol eden kontroller yoktur.

Hızlı bir düzeltme, ana şablonun bir kopyası olan ancak aşağıdaki düzenlemelerle farklı bir şablon kullanmak olacaktır:

<?php
$_nameAfter = $this->getChild('name.after');
// New if here
if($_nameAfter):
    $_nameAfterChildren = $_nameAfter->getSortedChildren();
    foreach($_nameAfterChildren as $_nameAfterChildName):
        $_nameAfterChild = $this->getChild('name.after')->getChild($_nameAfterChildName);
        $_nameAfterChild->setProduct($_product);
        ?>
        <?php echo $_nameAfterChild->toHtml(); ?>
    <?php endforeach; ?>
<?php endif; ?>

<?php
//set product collection on after blocks
$_afterChildren = $this->getChild('after');
if ($_afterChildren):
    $_afterChildren = $this->getChild('after')->getSortedChildren();
    foreach($_afterChildren as $_afterChildName):
        $_afterChild = $this->getChild('after')->getChild($_afterChildName);
        $_afterChild->setProductCollection($_productCollection);
    ?>
    <?php echo $_afterChild->toHtml(); ?>
<?php endforeach; ?>
<?php endif; ?>

name.afterŞablonda iki kez gerçekleşir ama aftersadece bir görünür. Unutulmaması gereken son şey, varsayılan rwd css'nin, cms sayfalarındaki ürün listesinin eylemler bölümünü gizlemesidir.


Lütfen bu kodun hangi dosyaya ikinci temada eklenmesi gerektiğini işaret edebilir misiniz?
Bhargav Mehta

Satırların yanı sıra hangi dosyanın yardımcı olacağını eklemek. Yukarıdakiler list.phtml içindeki kodla eşleşmiyor
Philip Deatherage

Merhaba philip, Magento'nun en son sürümünün bu sorunu çözdüğü olabilir.
David Manners

hangi ana şablonun kopyalanması gerekiyor? list.phtml?
Pixelomo
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.