Magento 1.4 - 在特定类别下显示一些产品
你好 我已将 20 个产品分配给名为“电话”的类别,我想创建一个模块来检索这些产品并以列表格式显示。有人可以告诉我该怎么做吗?
谢谢
Hi
I have assigned 20 products to a category called Phone, I would like to create a module to retrieve these products and displayed as a list format. Could someone tell me how to do this?
thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
要创建使用类别执行某些操作的小部件(您可以通过 cms 插入),请首先使用以下命令创建标准模块结构:
/堵塞
/ETC
/帮手
/Model
请注意,在下面的代码示例和文件名中,您需要将 [Namespace]、[Module] 和 [module] 替换为您想要使用的适当的命名空间和模块。案例很重要!
首先创建 app/code/local/[Namespace]/[Module]/etc/config.xml
然后创建 app/code/local/[Namespace]/[Module]/etc/widget.xml 该小部件包含一个名为“selected_category”
然后是 app/code/local/[Namespace]/[Module]/Helper/Data.php 中的必需 Helper 文件
然后是一个允许用户在小部件对话框中选择类别的模型。这位于 app/code/local/[Namespace]/[Module]/Model/Catopt.php
最后,在模块方面,一个块位于 app/code/local/[Namespace]/[Module]/Block/ 中Category.php 此块使用自定义 .phtml 文件进行显示,但您可以通过更改块的类型和 setTemplate 的输入来更改它以使用您可能需要显示的任何其他内容。
不要忘记在 /app/etc/modules/[Namespace]_[Module].xml 下添加模块安装文件,如下所示
最后,您需要创建一个模板文件来显示块内容。这将位于 /app/design/frontend/default/default/template/[module]/[module].phtml 下。
这个 .phtml 文件可以使用 $this->getCategory() 获取类别并从那里开始。您可以轻松自定义这些示例中包含的块以显示默认的 magento 产品列表网格,而不是使用自定义 .phtml 文件。
To create a widget (which you can insert via the cms) that uses a category to do something, begin by creating a standard module structure with:
/Block
/etc
/Helper
/Model
Note that in my code samples and filenames below you will need to replace [Namespace], [Module], and [module] with the appropriate namespace and module that you want to use. Case is important!
Begin by creating app/code/local/[Namespace]/[Module]/etc/config.xml
Then create a app/code/local/[Namespace]/[Module]/etc/widget.xml This widget includes a setting called "selected_category"
Then the obligatory Helper file in app/code/local/[Namespace]/[Module]/Helper/Data.php
Then a model to allow the user to select the category in the widget dialog box. This goes in app/code/local/[Namespace]/[Module]/Model/Catopt.php
Finally on the module side of things a block which goes in app/code/local/[Namespace]/[Module]/Block/Category.php This block is using a custom .phtml file for it's display but you can change that to use anything else you might need to show by changing the type of block and input to setTemplate.
Don't forget to add a module install file under /app/etc/modules/[Namespace]_[Module].xml like this
Lastly you need to create a template file to display the block content. This will go under /app/design/frontend/default/default/template/[module]/[module].phtml
This .phtml file can use $this->getCategory() to get the category and go from there. You can easily customize the block included in these samples to display the default magento product list grids instead of using a custom .phtml file.
无需创建模块。只需将其放在布局中的一个块中即可:它将显示链接到指定类别 (id=
XXX
) 的所有产品。更新:
您可以创建一个覆盖“Mage_Catalog_Block_Product_List”的模块,并添加一个方法来限制一定数量的产品。
1- 创建“app/code/local/[Namespace]/Catalog/etc/config.xml”并将其放入其中:
2- 通过创建类覆盖块:“app/code/local/[Namespace]/Catalog /Block/Product/List.php"
3-覆盖您的主题以添加产品限制功能:
将“app/design/frontend/default/default/template/catalog/product/list.phtml”复制到“app/design/frontend” /default/[your_theme]/template/catalog/product/list.phtml"
4- 在主页内容选项卡中,在您想要的位置添加此行:
希望这对某人有帮助。
No need to create a module. just place this in a block in your layout: It will show all the products linked to the specified category (id=
XXX
).Update:
You can create a module that overide the "Mage_Catalog_Block_Product_List", and add a method to limit a certain number of products.
1- Create "app/code/local/[Namespace]/Catalog/etc/config.xml" and put this in it:
2- Override the Block by creating the class: "app/code/local/[Namespace]/Catalog/Block/Product/List.php"
3- Overide your theme to add the product limit feature:
copy "app/design/frontend/default/default/template/catalog/product/list.phtml" to "app/design/frontend/default/[your_theme]/template/catalog/product/list.phtml"
4- In the home page content tab, add this line where you want it:
Hope this help someone.
感谢您提供信息丰富的帖子。对于那些不太精通 PHP 但由于正在寻找显示给定类别的产品名称列表的解决方案而登陆此页面的人,我通过简单地修改其他人的模板文件就找到了解决方案。对于这个解决方案,我发现最适合的扩展是:
http://www.cubewebsites.com/blog/magento/extensions/freebie-magento-featured-products-widget-version-2/
(在 github 上查找最新版本:https://github.com/cubewebsites/Cube-Category-Featured-Products/tags) 。
登录和注销并清除缓存后,我能够将小部件插入静态块并修改用于生成我想要的自定义视图的 .phtml 文件。
插入时,小部件看起来像这样:
我只需打开
app/design/frontend/base/default/template/categoryfeatured/block.phtml
复制其内容并创建一个名为 Category_product_listing.phtml 的新 .phtml 文件
,然后将小部件实例指向新的 .phtml 文件如下:
然后,我根据对 PHP 的基本了解浏览了这个 .phtml 文件,并删除了所有项目,如图像、添加到购物车按钮、评论等,直到只剩下基本的链接产品标题因为类别标题保持不变。
我希望这对某人有帮助,因为我花了几个小时试图解决这个问题。
Thanks for the informative post. For those of you who are not so fluent in PHP but landed on this page because you were looking for a solution to display a product name list from a given category I managed to find a solution by simply modifying someone else's template file. For this solution I found the best suited extension was:
http://www.cubewebsites.com/blog/magento/extensions/freebie-magento-featured-products-widget-version-2/
(find the latest version on github: https://github.com/cubewebsites/Cube-Category-Featured-Products/tags).
After logging in and out and clearing the cache I was able to insert the widget into a static block and modify the .phtml file used to produce the custom view that I wanted.
The widget looked like this when inserted:
I simply opened
app/design/frontend/base/default/template/categoryfeatured/block.phtml
copied it's contents and created a new .phtml file called category_product_listing.phtml
and then pointed the widget instance to the new .phtml file as follows:
I then went through this .phtml file with my basic understanding of PHP and removed all items like images, add to cart buttons, reviews, etc. until I was left with just the basic linked product title as well as the category title left intact.
I hope this helps someone as I spent hours trying to figure this out.