31-07-2012, 18:33 Посмотрели: 2704 Добавил: bebeka

Подтверждение удаления материала Drupal


В каждом модуле Drupal, в котором содержаться ноды, есть обязательные операции, это - редактирование и удаление. Например, если зайти в раздел: Содержимое, можно увидеть список материалов которые есть на сайте, и справа возле каждого материала ссылки на редактирование и удаление.

Перед удалением любого материала например Программы для домашнего ПК, Drupal спрашивает: Вы действительно хотите удалить данный материал ? Такое подтверждение удаления является обязательным, и должно присутствовать при каждом удалении любого материала, т.к. иногда можно ошибиться и случайно нажать на кнопку удалить, и тогда восстановить удаленный материал невозможно.

В данной статье мы рассмотрим, как же реализовать удаление материала с подтверждением. Для начала в хуке hook_menu() нужно создать путь для удаления:

function mymodule_menu() {
    $items['admin/config/mymodule/delete/%'] = array(

       'title' => 'Delete item',

       'page callback' => 'drupal_get_form',

       'page arguments' => array('mymodule_admin_delete_item_confirm', 4),

       'access arguments' => array('administer'),

   );

return $items;
}

function mymodule_admin_delete_item_confirm($form, &$form_state, $id) {
    // В параметре $id будет содержаться последний параметр в URL
    // который указывает на ID удаляемого материала
   
    // Необходимо создать параметр ID в $form_state
    // для того чтобы его можно было обработать в _submit
    $form_state['id'] = $id;
       
    // Теперь выводим на экран форму подтверждения
       return confirm_form(
           $form,
           t('Are you sure you want to delete item #%id?', array(‘%id’ => $id)),
           'admin/config/mymodule’,'
       );
}

function mymodule_admin_delete_item_confirm_submit($form, &$form_state) {
    // Проверка подтвердил ли пользователь удаление

    if ($form_state['values']['confirm']) {
        $id = $form_state[‘id’];

        // ID материала передан в параметре $id
        // далее мы можем выполнить необходимые для удаления действия
    }
}

Рубрика записи: Разработка модулей

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

Юзер панель
Я тебя не знаю!
Зарегистрируйся, либо

войди под своим логином!

Fuck, я забыл свой пароль!

Восстановить данные =0
Новое на сайте
Известная социальная сеть Instagram приступила к тестированию новой...
Недавно, в приложения для Android и iOS социальной сети Twitter была...
Недавно, в Google "Мой бизнес" разработчики добавили новейший способ, как...
Недавно стало известно о том, что соцсеть Facebook по упоминанию в русских...
Недавно, представитель корпорации Google, Джон Мюллер (John Mueller)...
Голосуем

Ваша любимая CMS?


DataLife Engine
WordPress
Joomla
Drupal
LiveStreet
UCOZ
Самопис
Php+Includ
Статика