我完全迷失了如何将Joomla的路由功能用于自定义组件。 以下是通过表单提交发送到自定义组件的示例链接:
我想要做的是抓住 make_id , model_id 和 year_id ,在数据库中找到相应的值并将其用于这样的网址:产品/仪表板/ 年份模型 .html
所以对于上面的示例链接:
http://superiordash.com/products/dash-kits/2002-acura-rsx.html
那里有伟人的想法吗?
另外,根据我从文档中理解的内容 - 我是否必须找到一种方法来分解查询的其余部分,或者它将附加在url的末尾?如果是这样的话 - 除了年份,品牌和型号之外,有没有办法可以爆炸查询的每个部分,无论它是什么?
任何帮助都会非常感激。我一直在寻找解决方案,半解决方案等,并将继续这样做。
答案 0 :(得分:0)
实际上很容易。您需要在router.php中使用2个函数:
ComponentNameBuildRoute
和
ComponentNameParseRoute
构建路径将返回一个数组,其中包含要在URL中显示的元素。例如,对于http://www.test.com/products/category-name/product-name的链接,构建路由函数将返回数组('category-name','product-name'); 。数组自动传递给Joomla函数以生成SEF URL。
解析路由功能会将SEF URL转换为GET URL。该函数将接收$ segments作为参数,并且该段将包含URL中的部分,例如category-name和product-name。在该函数中,您需要获取类别和产品的ID,并返回类似于数组的数组('category_id'=> $ category_id,'product_id'=> $ product_id);
您可以检查router.php中的banners组件(这是最简单的组件)并将其用作启动点。