Гостевая книга eForm, simpleCatalog, smartData

Кратко

Для создания гостевой книги нам понадобится: eForm, SimpleCatalog, smartData, а также сниппет для добавления сообщения в гостевую книгу.

Сниппет eform для modx служит для вывода формы принятия сообщения от пользователя, валидации введённых им данных, а также занесения сообщения пользователя в базу данных и отправки письма с уведомлением о поступление нового сообщения в гостевую книгу. Сниппет SimpleCatalog служит для вывода гостевой книги на сайте. Modx модуль smartData отвечает за администрирование гостевой книги.

На заметку : Если вы не хотите мучатся с вводом параметров для сниппетов руками, а также легко конфигурировать свой сайт желательно установить modx модуль smartConfig

eForm

Параметры вызова

Шаблоны

guestBook_addForm

<style type="text/css">
.feedBackForm input.button { width: auto;}
</style>

<form method="post" action="/programmer/example/guestbook.html" id="feedbackForm">
<table cellspacing="10" class="feedBackForm">
<tr>
<td style="width: 140px;" >От кого :</td>
<td><input type="text" name="name" /></td>
</tr>
<tr>
<td>Сообщение :</td>
<td><textarea name="message" cols="40" rows="8" ></textarea></td>
</tr>
<tr>
<td>Пожалуйства введите<br /> защитный код</td>
<td> <img src="" alt="verification code" border="1" class="img_left"/></td>
</tr>
<tr>
<td>Код :</td>
<td><input type="text" name="vericode"/></td>
</tr>
<tr>
<td colspan="2" align="center">
<p><input type="submit" name="submit" value="Отправить сообщение" class="button"></p>
</td>
</tr>
</table>
</form>

guestBook_Report

<p>Сообщение от пользователя сайта</p>
<table cellspacing="5">
<tr>
<th align="left">От кого :</th>
<td></td>
</tr>
<tr>
<th align="left">Сообщение :</th>
<td></td>
</tr>
</table>
<p>Дата : </p>

guestBook_Thank

<p>Уважаемый <b></b>,  ваше сообщение размещено в Гостевой книге.</p.
<p><a href="/">Гостевая книга</a></p>

Код сниппета для добавления сообщения в базу

 <?php
function eform_guestBookAddMessage(&$fields) {
global $modx;
$query="INSERT INTO `sd_guestbook`
SET `text`='".mysql_escape_string($fields['text'])."',
`date`='".date("Y-m-d")."',
`name`='".mysql_escape_string($fields['name'])."';";
$res = $modx->db->query($query);
return TRUE;
}
?>