Simba 系统管理联系页面,多语言支持

安装: 132

依赖: 0

建议者: 0

安全: 0

星星: 0

关注者: 2

分支: 0

开放问题: 0

类型:服务

1.2.4 2023-01-08 07:47 UTC

This package is auto-updated.

Last update: 2024-09-08 12:03:36 UTC


README

输出联系人页面和反馈表单。使用 statpage 服务,其中应包含名为 KONTAKT 的页面,并具有“内部用途”状态。反馈表单直接发送到经理的邮箱。经理的邮箱地址在 config 中以 admin_emails 键指定,形式为数组。回复地址存储在通用配置的 email_robot 键中。

提供额外选项,包括弹出窗口进行回电和订阅等操作

安装 composer require masterflash-ru/kontakt

用于发送消息的是 masterflash-ru/emailer 包 - 如果它在更新后安装,请勿忘记将数据库转储加载到数据库中。

字段配置存储在 config/forma.ХХХХ.config.php 中,如有必要,您可以添加新字段,指定新的配置文件。请注意!不要更改 captcha、submit、security 的名称。所有字段都直接发送到邮箱,字段签名取自标签。ХХХХ - 元素名称:kontakt、call、subs

模块具有生成 sitemap.xml 网站地图的调用,为 masterflash-ru/sitemap 模块生成索引文件和地图提供信息,目前只支持 ru_RU。搜索路由的原则是根据路由名称中的 kontakt 开头词进行搜索。

对于多语言网站,所有功能都已准备就绪,通常不需要修改(尚未测试):1 - 添加与默认路由类似的路由,例如,

            'kontakt_en_US' => [
                'type' => Segment::class,
                'options' => [
                    'route'    => '/en/kontakt',
                    'defaults' => [
                        'controller' => Controller\IndexController::class,
                        'action'    => 'index',
                        'locale'    => 'en_US'
                    ],
                ],
            ],

2 - 在应用程序配置中添加翻译器部分,例如,

  'translator' => [
    'locale' => 'en_US',
    'translation_file_patterns' => [
        [
            'type'     => 'phparray',
            'base_dir' => __DIR__ .  '/../locale',
            'pattern'  => '%s.php',
        ],
    ],
  ],

3 - 在文件中添加语言翻译,例如,en_US.php,例如,

return [
  "Ваш email адрес"=>"Your email address",
  
];

模块设置(默认如下),在您的应用程序中定义新的选项。除 'captcha'、'security'、"submit" 之外的所有字段都发送到邮箱。字段名称取自配置表单的 label 选项

  "kontakt"=>[
        /*конфиг элементов ленты*/
        "categories"=>[
            'kontakt_page' =>[
                'description'=>'Страница контактов + форма',
                'tpl' => [
                    'index' => 'kontakt/index/index',     //шаблон вывода страницы
                    'ok' => 'kontakt/index/ok',           //шаблон вывода страницы после отправки формы
                ],
                'layout' => null,                       //макет вывода, по умолчанию текущий
                /*конфигурация формы*/
                "forma"=>__DIR__."/forma.kontakt.config.php",
            ],
            'subs' =>[
                'description'=>'Всплывающее окно для подписок',
                'tpl' => [
                    'index' => 'kontakt/subs/index',     //шаблон вывода страницы
                    'ok' => 'kontakt/subs/ok',           //шаблон вывода страницы после отправки формы
                ],
                /*конфигурация формы*/
                "forma"=>__DIR__."/forma.subs.config.php",
            ],
            'call' =>[
                'description'=>'Всплывающее окно для обратного звонка',
                'tpl' => [
                    'index' => 'kontakt/call/index',     //шаблон вывода страницы
                    'ok' => 'kontakt/call/ok',           //шаблон вывода страницы после отправки формы
                ],
                /*конфигурация формы*/
                "forma"=>__DIR__."/forma.call.config.php",
            ],
        ],
      /*какие элементы разрешено использовать, укажите в конфиге своего приложения */
      "enables"=>[ 
          "kontakt_page"=>true,
          "subs"        =>false,
          "call"        =>false
      ],
  ],

表单输出脚本使用 bootstrap4,如有需要,请使用自己的脚本,并在脚本中指定格式为 Laminas 的名称以处理弹出窗口

1 - 在布局中连接文件 jquery.form.min.js 以处理异步请求

2 - 使用 bootstrap4 对话框

<button class="btn btn-primary subs mt-2 btn-sm" data-toggle="modal" data-target="#subsModal">Подписаться на рассылку</button>



<div class="modal fade" id="subsModal" tabindex="-1" role="dialog" aria-labelledby="SModalLabel" aria-hidden="true">
  <div class="modal-dialog modal-lg" role="dialog">
    <div class="modal-content">
      <div class="modal-header">
          <p class="modal-title h5 text-primary" id="exampleModalCenterTitle">Подписаться на рассылку</p>
        <button type="button" class="close bg-danger" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <div class="modal-body">
        </div>
    </div>
  </div>
</div>


<script>
/*диалог подписаться, в момент открытия загружается форма*/
$('#subsModal').on('show.bs.modal', function (event) {
  $(this).find('.modal-body').load("/subs");
})
</script>

3 - 当然,所有 bootstrap4 库都应该被连接