Редактирование сообщений в панели администрирования
Просмотров: 5161Для начала я напомню, что идентификатор сообщения у нас передается в
массив $cid. Да, да именно в массив (ведь пользователь может выбрать и
несколько сообщений). Так как отредактировать физически мы можем только
одно сообщения (ну по крайней мере одновременно 2 и больше я не умею
редактировать), то передавать в функцию будем не весь массив а только
первый его элемент ($cid[0]).
Сначала напишем пустую функцию и вставим ее вызов (edit_mess($cid[0]);) в место строчки:
echo 'Редактирование сообщения';
Функция:
function edit_mess($id_mess){}
Начнем:
1.Не забываем описать глобальную переменную $database
global $database;
2.Далее нужно запросить данные из базы данных. Нужно взять значение поля message той записи у которой значение поля id_message равно $id_mess. Следующие инструкции выполнят поставленную задачу:
//Пишем запрос
$query =
"SELECT message FROM mdo_message WHERE id_message=".$id_mess;
//Устанавливаем значение свойства query объекта $database
$database->setQuery($query);
//Выполняем запрос и помещаем результат в переменную
$message = $database->loadResult();
3.Показываем поле <textarea>, с текстом $message:
Объявление<br>
<textarea cols="50" rows="6" name="message" style="width:
500px"><?php echo($message); ?></textarea>
4.Для того, чтобы после нажатия на кнопку Сохранить скрипт передал дальше значение $id_mess нужно вставить поле скрытого типа (hidden):
<input type="hidden" name="id_mess" value="<?php echo($id_mess); ?>">}
В результате получается:
function edit_mess($id_mess)
{
global $database;
$query = "SELECT message FROM mdo_message WHERE id_message=".$id_mess;
$database->setQuery($query);
$message = $database->loadResult();
?>
Объявление<br>
<textarea cols="50" rows="6" name="message" style="width:
500px"><?php echo($message); ?></textarea>
<input
type="hidden" name="id_mess" value="<?php echo($id_mess); ?>">
<?php
}
После того как пользователь отредактировал объявление нужно его сохранить, для этого напишем соответствующую функцию (save_mess();). Данная функция не будет иметь параметров, потому что единственный параметр который мы передаем это id_mess. Мы его можем с помощью функции mosGetParam
взять прямо в теле функции. Хотя конечно на вкус и цвет…. Можно в
начале файла получить значение id_mess и использовать функцию с
параметром:
function save_mess()
{
global $database;
$id_mess =
intval( mosGetParam( $_REQUEST, 'id_mess', 0 ) );
$message = mosGetParam( $_REQUEST, 'message', '' );
if (($id_mess<>0) and ($message<>''))
{
$query = "UPDATE mdo_message SET
message='".$message."' WHERE id_message=".$id_mess;
$database->setQuery($query);
if ($database->query())
{
echo("<br>Обновление записи успешно<br>");
}
else
{
echo("<br>Ошибка баз данных!<br>");
}
}
else
{
echo("<br>Ошибка! Попробуйте еще раз!<br>");
}
}
Вызов функции вставляем вместо строчки:
echo 'Сохраниение сообщения';
В итоге мы закончили с панелью администратора, в следующем шаге начнем реализовывать лицевую часть компонента.

Оставьте комментарий!