Форма обратной связи для NetCat с расширенным функционалом

В этом рецепте мы будем делать чуть более продвинутую обратную связь. Вот такую:

  1. пользователь задает вопрос
  2. администратор получает на почту уведомление со ссылкой на вопрос и возможностью сразу написать ответ
  3. если, задавая вопрос, пользователь поставил галку "отправить мне оповещения об ответе", после ответа администратора он получит письмо.

Итак, поехали!

Поля компонента:

  1. Question (Тип поля: Текстовый блок)
  2. Answer (Тип поля: Текстовый блок)
  3. Email (Тип поля: Строка, Формат: Email)
  4. CheckSendMail (Тип поля: Логическая переменная, обязательно для заполнения)
  5. CheckAdmin (Тип поля: Логическая переменная, обязательно для заполнения)

Установка:

  • В альтернативной форме добавления объекта убираем поле CheckAdmin
  • В альтернативной форме изменения объекта убираем поле CheckSendMail
  • В действие после добавления объекта добавляем код:
";
echo "
<H1>Ваш вопрос получен.<br />Мы ответим на него в самое ближайшее время</H1>";

$subj = "
Сообщение с вашего сайта";
$body = "
Новый вопрос на вашем сайте<br /><br />
".($f_Question)."<br />
";
$mailer = new CMIMEMail();
$mailer->mailbody(strip_tags($body), $body);
$mailer->send($cc_settings[Sendto], $f_Email, $f_Email, $subj , $system_env['SpamFromName']);
echo "

Замечание: $cc_settings[Sendto] - вместо этого нужно вставить Email владельца сайта, на который будут приходить письма. Также, можно добавить ссылку, которая будет вести прямо на редактирование добавленного объекта.

Делается это так:
<a href='http://".$_SERVER['HTTP_HOST']."/netcat/message.php?catalogue=$catalogue&sub=$sub&cc=$cc&message=$message'

Итак, сразу после добавления вопроса посылается уведомление на почту владельца сайта.
В действие после изменения объекта добавляем код:

";
if($f_CheckSendMail && $f_CheckAdmin){
    $subj = "
Сообщение с сайта";
    $body = "
На ваш вопрос ответили
    ";
    $mailer = new CMIMEMail();
    $mailer->mailbody(strip_tags($body), $body);
    $mailer->send($f_Email, $f_Email, $f_Email, $subj , $system_env['SpamFromName']);
}

if($inside_admin) {
    ob_end_clean();
    header("
Location: ".$goBackLink."&inside_admin=1");
    exit;
}
else {
    echo NETCAT_MODERATION_MSG_OBJCHANGED;
    echo "
<br /><br />".$goBack;
}
echo "

Замечание: если человек, задающий вопрос не изъявил желания уведомлять его об ответе, то ни при каких условиях уведомление не придет к нему на почту. Но если все-таки пользователь захотел получить уведомление, то оно придет только тогда, когда администратор заполнит поле CheckAdmin утвердительно.

Вот и все! Используйте на здоровье :)

Алекс — 2012-05-17, 12:58

Удалите комментарий выше работает

Удалил :)

Finar.

Блог

Как расставить запятые между тегами на CSS?

Иногда проще что-то сделать на чистом CSS, чем на серверной стороне. Например, расставить запятые между тегами. Попробуем разделить подчеркнутые теги-ссылки на чистом CSS.

далее

Как отресайзить картинки батчем?

Все фотографии, которые вы собираетесь отресайзить, должны быть в одной директории, скажем «uploads». Внутри нее можно сохранить любую структуру директорий. Мы научимся создавать копию этой директории, внутри которой все картинки будут отресайзены, причем только в сторону уменьшения разрешения.

далее

Tilda Module: интеграция NetCat с Tilda.cc

Представляем нашу новую разработку, модуль интеграции CMS NetCat с платформой Tilda.cc. Модуль дает возможностью полуавтоматически размещать классные лендинги прямо в структуре вашего сайта!

далее

Как оптимально заархивировать файлы, чтобы распаковать их средствами ISPmanager?

В определенных случаях файлы выгоднее заливать на веб-сервер в виде архива. Во-первых, если данные хорошо сжимаются, или же просто файлов очень много, это сократит время заливки. Во-вторых, в любом случае это обезопасит данные от случайного повреждения, так как при распаковке архива происходит проверка его целостности с помощью контрольной суммы (CRC). Однако, не вполне понятно, какой формат архива и тип сжатия выбирать? Мы провели небольшое экспериментальное исследование на эту тему.

далее

Весь блог тут