我对Magento很新,并试图了解我的计划的所有优点和缺点,以及如何实施。
我正在与一家拥有精心打造的商店的客户合作。拥有数百个类别和子类别。我想修改这个模板少量(几乎所有东西都是基于CSS),仅用于登陆页面。例如,访问www.magentosite.com/category.html将显示现在的页面,但访问www.magentosite.com/category.html?type=lp将显示相同的产品,并略微修改样式。
这样可以更轻松地构建目标网页以匹配已经存在的类别。这有没有magento的缺点?如果不是,最好添加几行php来获取$ _GET ['type']?
答案 0 :(得分:1)
在后台:
在这里,您可以仅针对此特定类别更改页面的设计..(例如,创建新的特定.phtml模板文件..或保留相同的.phtml文件,但覆盖它的css / js皮肤)
有关详细信息,请查看此处:
修改强>
如果您需要根据其级别(或GET参数)自定义页面,则可以使用Observer catalog_controller_category_init_after
。
在其中,您可以检查其级别($category->getLevel() == 1
)或检查请求中的参数(Mage::app()->getRequest()->hasParam('type')
)以影响新设计
有关所发送事件参数的详细信息,请参阅Mage_Catalog_CategoryController :: _ initCatagory()。
如果您从未使用过观察者,请查看:http://codemagento.com/2011/04/observers-and-dispatching-events/
答案 1 :(得分:0)
一种简单的方法是创建一个cms页面并调用其中的类别块。 您可以通过在自定义CMS页面的WYSIWYG编辑器中编写以下代码来调用类别块。
{{block type="catalog/product_list" category_id="respective-id-here" template="catalog/product/list.phtml"}}
自定义CMS页面的链接将是 www.magentosite.com/URL-Key。
您可以访问“目录” - >“管理类别”区域,从管理面板本身获取类别ID。 然后,您只能通过CSS更改设计。
答案 2 :(得分:0)
您可以通过使用多个商店视图和一些htaccess重写规则来实现您所需要的一种方式。我假设您目前有“主要网站”,“主要商店组”和“默认”商店视图。
首先,添加一个新的商店视图,您可以根据需要为其命名。请记住您使用的“代码”,因为下一步将需要此代码。我们假设新商店代码是“自定义”。
现在,在主.htaccess文件中添加以下代码,根据查询字符串参数设置一些环境变量:
...
<IfModule mod_rewrite.c>
RewriteEngine on
# Set some environment variables based on the query string var "type"
RewriteCond %{QUERY_STRING} ^(.*[&?])?type=lp(&.*|)$
RewriteRule (.*) $1 [E=MAGE_RUN_CODE:custom,E=MAGE_RUN_TYPE:store]
</IfModule>
...
注意: MAGE_RUN_CODE和MAGE_RUN_TYPE环境变量是上面设置的。这些由Magento的index.php文件处理,该文件确定要使用的Magento商店视图。
您需要做的最后一件事是配置“自定义”商店视图以使用其他主题。你可以在System&gt;中做到这一点。配置&gt;设计,只需确保将配置范围更改为新的自定义视图(系统&gt;配置页面左上角的下拉菜单)。
这可能会因你当前的需求而过度杀戮,但是当我想通过查询字符串添加一种快速改变我的Magento主题的方法时,我会大量使用这种策略。