We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 16097
    • 15 Posts
    Здравствуйте.

    На странице вызываю сниппет Eform. После заполнения пользователем полей формы, нужно отправлять на email разные отчеты, в зависимости от того, какие данные ввел пользователь.

    Например, есть чекбокс с подписью "Заказчик является получателем"; если выбираем этот пункт, то тогда некоторые данные в отчете нужно скрывать.
    Есть шаблон для отчета(&report="reportTpl")... но вот редактировать его не получается. Вызовы сниппетов/чанков внутри игнорируются.

    Подскажите, пожалуйста, как отредактировать этот чанк отчета перед отправкой?
      • 16278
      • 928 Posts
      Можно использовать Eform событие eformOnBeforeMailSent. Этот параметр должен указать на фунцию, определяемую в сниппете, который вызывается до вызова Eform. Функция получает массив &fields с значением всех полей, которые можно изменять до отправки отчета.

      Эксемпляры найдете в папке eform/docs.

      :) KP
        • 16097
        • 15 Posts
        Спасибо. Но, с самого начала слабо описал задачу. Этим способом не получится(
        Я смогу редактировать данные введенные пользователем, но вот сам чанк отчета останется прежним. В отчете не только данные введенные пользователем. Есть еще тексты к этим данным. Вот нужна возможность скрыть/вырезать "кусок" чанка отчета.

        [ed. note: knushh last edited this post 15 years, 1 month ago.]
          • 16097
          • 15 Posts
          Не нашел "красивого" решения. С помощью событий не вышло(
          Может, кому-то будет нужно.
          Залез в файл eform.inc.php и чуток его модифицировал:
          if($efPostBack){
              if($_POST['formid'] != "shopOrderForm") {
                  $report = (($tmp=efLoadTemplate($report))!==false)?$tmp:$_lang['ef_no_doc'] . " '$report'";
              } else {
                  $report .= "Name: [+name+]\n";
                  if($_POST['dataForm']  == "x") {
                      $report .= "1\n";             
                  } else {
                      $report .= "2\n";             
                  }
          }
          
          [ed. note: knushh last edited this post 15 years, 1 month ago.]