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

用于确定登录页的参数-Magento,magento,magento-1.5,Magento,Magento 1.5,我对Magento很陌生,我正在努力学习我的计划的所有优点和缺点,以及如何实施 我正在与一位拥有完善商店的客户合作。拥有数百个类别和子类别。我想修改这个模板的一小部分(几乎一切都是基于CSS的),为登录页只。例如,访问www.magentosite.com/category.html将显示现在的页面,但访问www.magentosite.com/category.html?type=lp将显示样式稍有修改的相同产品 这将比构建登录页来匹配已经存在的类别更容易。这里面有马根托的犯人吗?如果没有,添

我对Magento很陌生,我正在努力学习我的计划的所有优点和缺点,以及如何实施

我正在与一位拥有完善商店的客户合作。拥有数百个类别和子类别。我想修改这个模板的一小部分(几乎一切都是基于CSS的),为登录页只。例如,访问www.magentosite.com/category.html将显示现在的页面,但访问www.magentosite.com/category.html?type=lp将显示样式稍有修改的相同产品


这将比构建登录页来匹配已经存在的类别更容易。这里面有马根托的犯人吗?如果没有,添加几行php以获取$_get['type']的最佳文件是什么?

一种简单的方法是创建一个cms页面并在其中调用category块。 您可以通过在自定义CMS页面的WYSIWYG编辑器中编写以下代码来调用category块

{{block type="catalog/product_list" category_id="respective-id-here" template="catalog/product/list.phtml"}}
自定义CMS页面的链接将被删除 www.magentosite.com/URL-Key

您可以通过访问Catalog->Manage category区域,从管理面板本身获取类别ID。 然后,您可以仅通过CSS更改设计。

在后台:

  • 转到“目录/类别/管理类别”菜单
  • 选择要自定义的类别
  • 转到“自定义设计”选项卡
在这里,您可以仅更改此特定类别的页面设计。。(例如,创建一个新的特定.phtml模板文件..或保留相同的.phtml文件,但覆盖它的css/js皮肤)

有关更多详细信息,请查看此处:

编辑:

如果需要根据页面级别(或GET参数)自定义页面,可以在之后使用Observer
catalog\u controller\u category\u init\u

在其中,您可以检查其级别(
$category->getLevel()==1
)或检查请求中的参数(
Mage::app()->getRequest()->hasParam('type')
) 有关发送的事件参数的详细信息,请参见Mage_Catalog_CategoryController::_initCatagory()。
如果您从未使用过观察者,请查看:

您可以使用多个存储视图和一些htaccess重写规则来完成所需的工作。我假设您当前有一个“主网站”、“主商店组”和“默认”商店视图

首先,添加一个新的商店视图,您可以随意命名它。记住您使用的“代码”,因为下一步将需要它。让我们假设新的商店代码是“custom”

现在,在main.htaccess文件中添加以下代码,这些代码将基于querystring参数设置一些环境变量:

...
<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>
...
。。。
重新启动发动机
#根据查询字符串var“type”设置一些环境变量
RewriteCond%{QUERY_STRING}^(.*[&?])?type=lp(&.*.|)$
重写规则(.*)$1[E=MAGE\U RUN\U代码:自定义,E=MAGE\U RUN\U类型:存储]
...
注意:上面设置的是MAGE_RUN_代码和MAGE_RUN_类型的环境变量。这些由Magento的index.php文件处理,该文件决定使用哪个Magento存储视图

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


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

这正是我想通过参数来完成的。页面已经正确设置和样式,但我想更改登录页面的布局。因此,我想说的是,如果type==“lp”显示新模板,否则为默认值,而不是仅仅为另一个布局为所有内容创建重复页面。我真的不明白为什么要使用get参数,为什么不使用标准magento函数?请解释清楚,我确实希望使用标准的Magento功能以及参数。这个问题基于一个登录页。例如,用户A访问www.website.com并导航到www.website.com/categorypage。用户B从Google PPC中点击一个特定链接,访问www.website.com/categorypage?type=lp。类别和产品相同,但布局和样式不同。我有大约200个这样的页面,所以与其重建所有页面,还不如为将来扩展这些页面。好的,那么您应该使用类别的LEVEL(system)属性以编程方式执行此操作。我将编辑我的帖子。谢谢你,比西。就像我说的我对magento是新手,所以我真的不知道从哪里开始。我以前没有使用过观察者,但至少现在我有了开始的地方。