如何从html表单调用overrider控制器

时间:2017-08-02 17:37:54

标签: php model-view-controller override prestashop prestashop-1.6

喜欢主题。如何从html表单调用overrider控制器,如下所示:

<form method="post" action="index.php?controller=CmsController">
    <input name="test" type="text" />
    <input name="action" value="getStatus" type="hidden" />
    <input value="test" type="submit" />
</form>

上面的代码我在我的tpl文件中。

文件:/override/controllers/front/CmsController.php

---修改

{$link->getModuleLink('blockcms', 'CmsController')|escape:'html'}

不起作用。

---修改

public function initContent() {
    parent::initContent();

    if (Tools::getValue('action') && Tools::getValue('action') == 'getStatus') {
        $id = $this->getIdByCode(Tools::getValue('voucher'));
        $obj = new CartRuleCore($id);
        $context = Context::getContext();
        $response = $obj->checkValidity($context);
        if ($response == NULL or $response == 'Koszyk jest pusty'){
            $response = 'Kod ';                
        }
    }

if (isset($this->cms)) {
            $this->cms->content = str_replace("<!--response-->", $response, "{$this->cms->content}");
        }
        $this->setTemplate(_PS_THEME_DIR_ . 'cms.tpl');

这是\ override \ controllers \ front \ CmsController.php中initContent函数的一部分。在我的文件tpl中我有

<form method="post" action="index.php?controller=CmsController">
<input name="test" type="text" />
<input name="action" value="getStatus" type="hidden" />
<input value="test" type="submit" />

0 个答案:

没有答案