Вы здесь: Статьи Статьи по Joomla! Создаем компонент «Моя доска объявлений» - II - Редактирование сообщений

Создаем компонент «Моя доска объявлений» - II - Редактирование сообщений

Индекс материала
Создаем компонент «Моя доска объявлений» - II
Учимся делать запросы в БД
Реакция на нажатие кнопок
Оптимизация кода
Редактирование сообщений
Все страницы

Шаг десятый. Редактирование сообщений в панели администратора.

Для того чтобы реализовать редактирование сообщения нам нужно написать функцию, которая получив в качестве параметра идентификатор сообщения отобразит форму с полем: объявление. В форме уже присутствует текст сообщения. Пользователю остается ввести другой текст или отредактировать существующий и сохранить сообщение.

Для начала я напомню, что идентификатор сообщения у нас передается в массив $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 'Сохраниение сообщения';
 

В итоге мы закончили с панелью администратора, в следующем шаге начнем реализовывать лицевую часть компонента.

Оригинал статьи - Создай компонент Joomla свлими руками
© 2008 Created by Dapmoed

 

 

 



Комментарии  

Коммент от
Июл 11, 2009
Комментатор
Alika
0 ???? Не работают ссылки на следующие части статьи:
- Создание пустых файлов
- Редактирование файла myboard.xml
- Панель управления компонентом
- Все страницы

Не, ну я так не играю :sad:
система ругается и говорит, что нету-ть продолжения у статей. Может лучшн не разбивать их на страницы, а выложить просто разными частями?
Коммент от
Июл 12, 2009
Комментатор
Aleks_El_Dia
0 Починил ссылки. Дело было в одном непроверенном плагине (каюсь, не протестировал перед установкой). Продолжения работают, читайте на здоровье :-)
Коммент от
Июл 12, 2009
Комментатор
Alika
0 Спасибо! Сейчас же все и прочту :-)

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

Защитный код
Обновить

Популярные файлы

1.
Компонент Миграции с Joomla! 1.0.x на Joomla! 1.5.x
2108
2.
Хак постраничной навигации сайта на CMS Joomla!
883
3.
Дополнительное изменяемое поле "Телефон"
514

Последние комментарии

  • повторюсь - очень очень надо для 1.5 )) Ну и спаси... Подробнее..
    От Илюха
  • Так введите это имя и пароль/мыло админа и заканч... Подробнее..
    От Aleks_El_Dia
  • делал, делал, миграция прошла успешно, жму далее -... Подробнее..
    От Вася