用于确定登录页面的参数 - Magento

时间:2012-11-12 03:18:46

标签: magento magento-1.5

我对Magento很新,并试图了解我的计划的所有优点和缺点,以及如何实施。

我正在与一家拥有精心打造的商店的客户合作。拥有数百个类别和子类别。我想修改这个模板少量(几乎所有东西都是基于CSS),仅用于登陆页面。例如,访问www.magentosite.com/category.html将显示现在的页面,但访问www.magentosite.com/category.html?type=lp将显示相同的产品,并略微修改样式。

这样可以更轻松地构建目标网页以匹配已经存在的类别。这有没有magento的缺点?如果不是,最好添加几行php来获取$ _GET ['type']?

3 个答案:

答案 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主题的方法时,我会大量使用这种策略。