digitaladapt/magento-vigilant-form-kit

VigilantForm 的 Magento 模块。

1.0.3 2020-09-14 15:07 UTC

README

VigilantForm 的 Magento 模块。

那么这是什么呢?

一个 Magento 模块,可以轻松将表单提交推送到 VigilantForm 的实例。

那么如何使用它呢?

首先添加库

composer require digitaladapt/magento-vigilant-form-kit

然后在 Magento 安装根目录下设置配置文件 vigilantform.json:网站和表单标题将默认为主机名和 "submit"。

{
  "url":          "<SERVER_URL>",
  "clientId":     "<CLIENT_ID>",
  "secret":       "<CLIENT_SECRET>",
  "prefix":       null,
  "honeypot":     null,
  "sequence":     null,
  "script_src":   null,
  "script_class": null,
  "website":      null,
  "form_title":   null
}

然后使用依赖注入将 \VigilantForm\MagentoKit\VigilantFormMagentoKit 类注入到任何包含您要验证的表单的块或控制器中。

// SomeBlock.php
<?php

namespace SomeVendor\SomeModule\Block;

class SomeBlock extends \Magento\Framework\View\Element\Template
{
    protected $vfmk;

    public function __construct(\VigilantForm\MagentoKit\VigilantFormMagentoKit $vfmk)
    {
        $this->vfmk = $vfmk;
    }

    public function getVFMK()
    {
        return $this->vfmk;
    }
}

在表单模板中,在 html 表单内调用 generateHoneypot()。

// some_block.phtml
<?php /** @var \SomeVendor\SomeModule\Block\SomeBlock $block */ ?>
<form>
<?php echo $block->getVFMK()->generateHoneypot(); ?>
</form>

如果页面中有多个表单,您可以在 html 表单中调用 generateHoneypot('form'),只要您也在最后表单后调用 generateHoneypot('code')(这不是必需的,但可以提高页面加载性能)。

// some_block.phtml
<?php /** @var \SomeVendor\SomeModule\Block\SomeBlock $block */ ?>
<form>
<?php echo $block->getVFMK()->generateHoneypot('form'); ?>
</form>

<form>
<?php echo $block->getVFMK()->generateHoneypot('form'); ?>
</form>

<?php echo $block->getVFMK()->generateHoneypot('code'); ?>

处理表单提交时,您还必须依赖注入 VigilantFormMagentoKit 类,该类具有 submitForm() 函数。如果提交无法存储,它将抛出 UnexpectedValueException。

    $params = $this->getRequest()->getPost();
    try {
        $this->vfmk->submitForm($params);
    } catch (\UnexpectedValueException $exception) {
        /* do something, in the event failed to store form submission */
    }

最后,重新部署您的 Magento 网站,以检测新模块并重新编译依赖注入。