0

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

我正在与一个拥有完善商店的客户合作。拥有数百个类别和子类别。我想对这个模板进行少量修改(几乎所有内容都是基于 CSS 的),仅用于登录页面。因此,例如访问 www.magentosite.com/category.html 将显示现在的页面,但访问 www.magentosite.com/category.html?type=lp 将显示相同的产品,但样式略有修改。

这将比构建登录页面以匹配已经存在的类别更容易。这有什么magento缺点吗?如果没有,添加几行 php 以获得 $_GET['type'] 的最佳文件是什么?

4

3 回答 3

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/

于 2012-11-12T10:37:14.027 回答
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 更改设计。

于 2012-11-12T10:21:31.000 回答
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 存储视图。

您需要做的最后一件事是配置您的“自定义”商店视图以使用不同的主题。您可以在系统 > 配置 > 设计中执行此操作,只需确保将配置范围更改为新的自定义视图(系统 > 配置页面左上角的下拉菜单)。

这对于您当前的需求可能有点过头了,但是当我想添加一种通过查询字符串更改我的 Magento 主题的快速方法时,我经常使用这种策略。

于 2012-11-13T14:06:18.433 回答