Database api drupal 7, оновлюємо (редагуємо) дані за допомогою db_update

У статті Database API Drupal 7, вибірка даних і їх видалення. db_select, db_query і db_delete. Частина 3 ми повністю написали сторінку з таблицею, де виводяться дані з нашої таблички і ще зробили функціонал видалення запису з таблиці.
Тут ми напишемо форму для поновлення запису використовуючи db_update.

написання форми

Звичайно ж нам потрібно написати окрему форму яка буде призначена для відновлення наших даних. Але для того що б створити форму, нам необхідно оголосити нову сторінку в hook_menu. Код сторінки буде наступний:

$ Items [ 'my_database /% / update'] = array (

'Title callback' => 'my_database_update_page_title'.

'Title arguments' => array (1).

'Page callback' => 'drupal_get_form'.

'Page arguments' => array ( 'my_database_update_form'. 1).

'Access arguments' => array ( 'administer site configuration').

По суті тут немає нічого складного. Якщо ви не знаєте що означає кожний пункт, тоді обов'язково почитайте про це в попередній статті, про яку ми вже згадували вище.

Наведемо функцію яка вказана в title callback. тому що користувач, який буде користуватися нашим функціоналом повинен розуміти що він редагує, а заголовок якраз дасть відмінну підказку.
Функція 'my_database_update_page_title' матиме такий вигляд:

function my_database_update_page_title ($ id)

$ Placeholders = array ( ': id' => $ id);

$ Number = db_query ( "SELECT` number` FROM WHERE `id` =: id". $ Placeholders) -> fetchField ();

return t ( 'Edit item with number "@num"'. array ( '@num' => $ number));

$ Form [ '#validate'] [] = 'my_database_insert_form_validate';

оновлення даних

За поновлення даних звичайно ж буде відповідати функція по відправці форми, вид її буде наступний:

function my_database_update_form_submit ($ form. $ Form_state)

$ Id = $ form_state [ 'build_info'] [ 'args'] [0];

$ Values ​​= $ form_state [ 'values'];

$ Form_state [ 'redirect'] = 'my_database';

З коду все повинно бути зрозуміло. Ось наприклад в рядках 5-12 відбувається оновлення даних. Ми вказуємо яку таблицю будемо оновлювати, даємо дані в метод fields. обов'язково вказуємо умова (condition) яка саме запис повинна бути оновлена ​​і в кінці виконуємо запит.
Далі відбувається перевірка. Якщо результат поновлення повертає нам значення 1, тоді це означає що запис оновлена ​​і ми виводимо відповідне повідомлення. Якщо виводити 0, тоді це означає що запис була оновлена ​​або в ній не було що оновлювати. Ну і в кінці написаний перехід на сторінку з таблицею.

фінальний штрих

У нашій таблиці залишилося тільки додати посилання на сторінку редагування записи. Рядок буде така:

Упевнений що ви зможете знайти куди і як її вставити, що б вона була в колонці 'Actions'.
Звичайно ж, вихідний код модуля ви можете скачати в кінці статті.

Ось і все, ми закінчили написання модуля, який створює свою таблицю в БД Друпал-а, створили сторінку для вставки даних, виведення їх в таблиці, оновлення та видалення. Ще, ми досить добре познайомилися з hook_menu, можливостями Form API, Database API в Друпал 7.
Дякую всім за увагу і спасибі за те, що користуєтеся сайтом DrupalGuide.ru.

Розповісти друзям:

Схожі статті