1

我正在尝试修改 Magento 的 mi CMS/home_page。我想查看特定类别的一些产品,例如:

{{block type="catalog/product_list" category_id="35" column_count="4" template="catalog/product/list.phtml" }}

它显示类别产品,但现在,我想更进一步,我想删除一些元素,因为它是主页。我附上一张图片来澄清:

移除元素

1 和 2 位于pager元素处。当我们有多个产品页面时,我们还可以看到页面(元素 4),也位于此处。在这种情况下,我们只有 4 个产品,所以我们看不到页面。元素 3 位于排序器元素处。

如果它是主页,我想删除元素 1、2 和 3,但保留元素 4(页面)。

关于如何在 Magento 上做到这一点的任何想法?

4

3 回答 3

1

您将不得不复制类别产品列表显示模块,这意味着创建您自己的模块、XML、PHTML 等......我个人会使用z-blocks来自Aheadworks的模块。这将使您能够在主页上显示“特色产品”等内容,而无需编辑 Magento 块代码。..考虑到您将花费大量时间开发自己想做的事情,这并不是那么昂贵。

于 2012-12-17T17:04:40.207 回答
1

您可能已经知道这些元素是通过 pager.phtml 呈现的。
要删除的元素可以通过检查条件来消失,即
if(!(Mage::getSingleton('cms/page')->getIdentifier()=='home'))
{传递你不想出现在首页}

于 2012-12-19T18:38:24.327 回答
0

我可以解决它。对于任何需要它的人,无需付费扩展,我在这里写下我所做的:

第一的:

我在我的主题文件夹中复制了这个 phtml:

catalog/product/list/toolbar.phtml
catalog/product/list.phtml

我将它们粘贴到我的模板文件夹中。我更改名称是为了不覆盖不是主页的其他页面的元素。

catalog/product/list/toolbar_home.phtml
catalog/product/list_home.phtml

有了这个,我有 2 个仅适用于我的主页的 phtml。我怎么称呼他们?

第二:

我在我的主页上添加了特定的块:

{{block type="catalog/product_list" category_id="35" column_count="4" template="catalog/product/list_home.phtml" }}

注意:我将模板更改为指向我的模板。

第三:

在我的 list_home.phtml 中,您可以找到以下代码:

<?php echo $this->getToolbarHtml() ?>

我是这样改的:

<?php echo $this->getToolbarHtmlHome() ?>

这个函数不存在,所以我们需要创建它。这个函数将调用我们的toolbar_home.phtml

第四:

转到code/core/Mage/Catalog/Block/Product/List.php,找到函数getToolbarHtml。复制并粘贴在它下面。并将其更改为如下所示:

public function getToolbarHtmlHome()
{
    return $this->getChildHtml('toolbar_home');
}

现在我们已经创建了所有代码,您可以转到template/catalog/product/list/toolbar_home.phtml并修改您想要的任何内容。它只适用于您的主页!:)

于 2012-12-17T17:21:54.280 回答