@Dorofeevdima

Сервис вопрос — ответ в Modx Revo на основе FormIt?

Всем привет,

Подскажите, пожалуйста, на старом сайте был организован сервис по онлайн ответам на вопросы с помощью eform, который в Revo не работает. Организовано было следующим образом:

[!addQuestion!]
[!eForm? &from=`текст` &formid=`ContactForm` &subject=`поле темы` &to=`email` &tpl=`askForm` &report=`askReport` &thankyou=`231` &eFormOnBeforeMailSent=`CreateNewQuestion` &vericode=`1`  !]


Как аналогичное реализовать с помощью FormIt, именно этот плагин был выбран в качестве замены? Или это невозможно? То есть, единственное чего не хватает сейчас это действия аналогичного &eFormOnBeforeMailSent=`CreateNewQuestion`.

Обработчик выгдядит следующим образом:

<?php
function CreateNewQuestion(&$fields){
    // Массив $fields будет содержать данные всех полей формы
    // Создания документа с описанием.

    require_once('assets/libs/docmanager/document.class.inc.php');

    $doc = new Document(); // создаем документ

    $doc->Set('parent',5); // определяем в какую папку положить

    $doc->Set('template','con'); // задаем шаблон

    $doc->Set('pagetitle',"Вопрос специалисту: ".$fields['name']." ".date("d-m-Y")); // краткое название
$doc->Set('published',0);
$doc->Set('hidemenu',0); 
$doc->Set('content',$fields['questions']); 
$doc->Set('createdon',time());
$doc->Set('tvemail',$fields['e-mail']);
$doc->Set('tvautor',$fields['name']);
$wd_=date("w");
switch($wd_){
case '1': $wd='понедельник'; break;
case '2': $wd='вторник'; break;
case '3': $wd='среда'; break;
case '4': $wd='четверг'; break;
case '5': $wd='пятница'; break;
case '6': $wd='суббота'; break;
case '0': $wd='воскресенье'; break;
}
$time=date("d.m.Y").", ".date("H:i").", ".$wd;
$doc->Set('tvtime',$time);
    $doc->Save(); // сохраняем
    return true; // Говорим eForm, что все в порядке.
}


Желательно с примером, так как сейчас обработчик по факту ничего не делает.

В данный момент форма выглядит следующим образом:

[[!addQuestion]]
[[!FormIt?
   &hooks=`spam,email,redirect`
   &emailTpl=`askReport`
   &emailTo=`email`
   &redirectTo=`231`
]]

[[!+fi.validation_error_message:notempty=`<p>[[!+fi.validation_error_message]]</p>`]]
 <form action="[[~[[*id]]]]" method="post" class="form">
<table cellspacing="0" cellpadding="0" >
    <input type="hidden" name="nospam" value="" />
 <tr>
<td>
    <label accesskey="s" for="name">
        Ваше имя:
    </label>
</td>
<td>
    <input type="text" name="name" id="name" value="[[!+fi.name]]" />
</td>
</tr>
<tr>
<td>
    <label for="email">
        Ваш Email:
    </label>    
</td>
<td>
<input type="text" name="email" id="email" value="[[!+fi.email]]" />
</td>
</tr>
<tr>
<td>
    <label for="questions">
        Ваши вопрос:
        <span class="error">[[!+fi.error.text]]</span>
    </label>
</td>
<td>
    <textarea name="questions" id="text" cols="55" rows="7" value="[[!+fi.questions]]">[[!+fi.questions]]</textarea>
</td>
</tr> 
<tr>
<td>
  [[!recaptchav2_render]]
  [[!+fi.error.recaptchav2_error]]
</td>
</tr>
<tr>
<td> 
    <div class="form-buttons">
        <input type="submit" value="Отправить вопрос" />
    </div>
</td>
</tr>
</table>
</form>
  • Вопрос задан
  • 361 просмотр
Решения вопроса 1
Sanes
@Sanes
Поставьте Tickets
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы