【问题标题】:how to generate a link to a module controller in prestashop?如何在 prestashop 中生成到模块控制器的链接?
【发布时间】:2014-09-24 22:32:39
【问题描述】:

在 prestashop 中生成模块控制器链接的确切方法是什么?另外,应该如何真正命名控制器的类以及 url 参数应该如何反映?

【问题讨论】:

    标签: hyperlink module controller prestashop


    【解决方案1】:

    您将使用 Link 类的实例。通常您不必创建一个,只需使用context->link(例如,形成一个控制器$this->context-link)。方法是getModuleLink(),所以:

    $this->context->link->getModuleLink('module_folder_name','controller_name',array_of_params);
    

    注意命名:

    • 模块文件夹名就是这个..

    • 控制器必须在正确的路径中,例如module/controllers/front/controller.php

    • 文件名是动作,小写。类名是ModuleFolder+Action+"ModuleFrontController"

    所以,例如:

    模块目录: orderattachment

    控制器: orderattachment/controllers/front/pdf.php

    控制器类

    class OrderAttachmentPdfModuleFrontController extends ModuleFrontController
    

    链接

    $this->context->link->getModuleLink('orderattachments', 'pdf', [params..]);
    

    【讨论】:

    • 如果没有控制器,如何指定控制器名称?我有这个:'$this->context->link->getModuleLink('wul4pay', 'payment', [], true) ' 但我没有控制器
    • 嗨,'payment' 应该是一个模块控制器:你确定不是吗?你检查过模块的文件夹吗?此外,通常说“链接到控制器”与“链接到页面”完全相同。我的意思是,一个页面存在一个控制器。换句话说,如果您没有控制器,那么您就没有专用页面,所以问题是:那么您要链接什么?
    • 对于管理员链接:$this->context->link->getAdminLink(ControllerName)
    • 老实说,我不知道,我还没有测试 1.7。但我想您可以通过查看Link 课程轻松找到答案。只需查看Link::getModuleLink() 是否存在,如果存在,请查看代码。和/或最终只是尝试一下。
    • 我尝试使用 1.7.5,这就是我卡住的地方:github.com/PrestaShop/PrestaShop/issues/12301
    【解决方案2】:

    另一种创建链接的方法是在视图(模板文件)中使用超链接,如下所示:

     index.php?fc=module&module=MODULE_NAME&controller=CONTROLLER_NAME
    

    例如,在汽车维修店的电子商务中,客户必须设置他/她在下次约会期间将拥有的汽车(模块挂在右栏中)。

    如果他/她的车辆不存在,他/她需要创建一个新的(我们要调用的前端控制器页面)。

    在我的示例中,在视图中,链接是:

    <a href="index.php?fc=module&module=vehiclefile&controller=newvehicle">{l s='Create a new vehicle' mod='vehicleFile'}</a>
    

    注意:正如 Stratboy 在他的回答中提到的,命名约定非常重要,否则 Prestashop 将无法找到该页面。例如,

    class VehicleFileNewVehicleModuleFrontControlle extends ModuleFrontController
    

    在类名中缺少“controller”的“r”并产生以下错误:

    注意 2:我使用这个最优秀的教程(带有完整的具体示例)开始我自己的项目:http://nemops.com/creating-new-pages-in-prestashop/#.VjpH2LerRhF

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-28
      • 2013-05-18
      • 1970-01-01
      相关资源
      最近更新 更多