【问题标题】:Need Joomla 2.5 Custom Component Router.php Explanation需要Joomla 2.5 自定义组件Router.php 说明
【发布时间】:2014-09-16 09:45:18
【问题描述】:

我完全不知道如何将 Joomla 的路由功能用于自定义组件。 以下是通过表单提交发送到自定义组件的示例链接:

http://superiordash.com/products/dash-kits/index.html?make_id=8&model_id=6&year_id=48&option=com_mmg&view=products&page=list&sel_make_id=-1&sel_model_id=-1&sel_year_id=-1&Itemid=580

我要做的是获取ma​​ke_idmodel_idyear_id,在数据库中找到对应的值并用于网址如下:products/dash-kits/YEAR-MAKE-MODEL.html

所以对于上面的示例链接:

http://superiordash.com/products/dash-kits/2002-acura-rsx.html

大佬们有什么想法吗?

另外,根据我从文档中了解到的情况 - 我是否必须找到一种方法来分解查询的其余部分,或者它将附加在 url 的末尾?如果是这样 - 有没有办法爆炸查询的每个部分,除了年份、品牌和型号,不管它是什么?

任何帮助将不胜感激。我一直在寻找解决方案、半解决方案等,并将继续这样做。

【问题讨论】:

    标签: php joomla routes components joomla2.5


    【解决方案1】:

    其实很简单。您需要在 router.php 中使用 2 个函数:

    ComponentNameBuildRoute
    

    ComponentNameParseRoute
    

    构建路由将返回一个数组,其中包含要在 URL 中显示的元素。例如,对于http://www.test.com/products/category-name/product-name 的链接,构建路由函数将返回 array('category-name', 'product-name'); .该数组会自动传递给 Joomla 函数以生成 SEF URL。

    解析路由函数会将 SEF URL 转换为 GET URL。该函数将接收 $segments 作为参数,并且该段将由 URL 中的部分组成,例如类别名称和产品名称。在该函数中,您需要获取类别和产品的 ID,并返回类似于 array('category_id'=>$category_id, 'product_id'=>$product_id);

    的数组

    您可以检查 router.php 中的横幅组件(这是最简单的组件)并将其用作启动点。

    【讨论】:

    • 如果我错了,请纠正我,但这个解决方案不起作用。这有点复杂。我们的整个产品系统是在典型的 Joomla 结构之外定制构建的。我很难从技术上解释,但我需要将:make_id、model_id 和 year_id 转换为它们对应的 SEO 友好关键字:2002 daewoo leganza。这有意义吗?
    猜你喜欢
    • 1970-01-01
    • 2011-10-19
    • 1970-01-01
    • 1970-01-01
    • 2011-09-23
    • 2011-05-12
    • 2013-01-23
    • 2012-04-04
    • 2013-03-24
    相关资源
    最近更新 更多