Создаем компонент — пятница, 29 октября 2010-го

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

Просмотров: 5161

Настроение: Норма  

В колонках звучит: Suite, Op.8 'Star-Crossed'_ I. In

Для начала я напомню, что идентификатор сообщения у нас передается в

массив $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 'Сохраниение сообщения';


 

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

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

Не регистрировать/аноним

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email.

(При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д.)



(обязательно)