 
Публичные записи (редактирование сайта неавторизованными пользователями)
Механизм хранения и обновления данных, поступающих от посетителей, такой же, как и для данных, редактируемых пользователями с допуском. Отличие заключается, во-первых, в способе ввода данных. Если для изменения записи или создания новой записи пользователю предоставляется специальная форма (окно редактирования), то для посетителя код формы нужно писать в шаблоне блока. Особенности написания кода формы рассмотрим на примере гостевой книги.
Шаблон блока строится по такому же принципу, что и шаблон обычного блока. Добавляется только форма для ввода данных посетителями.
guestbook.tpl
<?php
foreach ($tab as $dat)
echo "
{$dat['edit']}
$dat[1]
$dat[2]<br>
";
echo "
<form action='?update&block=$block&rec=new' method='post'>
Ваше имя: <input type='text' name='dat[1]'>
Комментарий: <input type='text' name='dat[2]'>
<input type='submit'>
</form>
";
?>
guestbook.tdd
<?php
$types[1] = 'varchar(50)';
$types[2] = 'varchar(50)';
$params['isMultiRec'] = true;
$params['public'] = array();
?>
Правила написания форм для публичных записей
-
Атрибут action формы должен иметь один из следующих видов:
action="?update&block=$block&rec=new" (для создания новой записи, как в примере гостевой книги) или
action="?update&block=$block&rec={$dat['rec']}" (для обновления текущей записи),
где update это имя скрипта.
-
В качестве переменных формы необходимо применять массив dat, например:
<input type='text' name='dat[2]'> .
Естественно, дескриптор шаблона должен иметь структуру, соответствующую структуре данных формы.
-
В дескрипторе шаблона должен быть объявлен массив
$params['public'] = array() . Без него данные посетителя в базу данных записаны не будут.
См. также
|