Я новичок в Drupal и пытаюсь создать собственный модуль Drupal 7 для изменения таблицы списков пользователей в admin/people. Я хотел бы отображать имена и фамилии пользователей.
Я уже добавил текстовые поля в форму регистрации пользователя в admin/config/people/account-settings/manage-fields, и мне удалось сохранить пользовательский ввод в моей таблице базы данных. Я добавил дополнительные поля в таблицу списков пользователей, но не могу понять, как получить значения из моей таблицы базы данных и вывести их.
Вот что у меня есть в моем файле .module:
<?php
/**
* Реализует hook_form_FORMID_alter()
* @параметр $форма
* @параметр $form_state
* @параметр $form_id
* @возврат $форма
*/
функция wdt_user_fields_form_user_admin_account_alter(&$form, $form_state, $form_id) {
//Добавление поля «Имя пользователя» в форму «user_admin_account»
$name_header = массив(
'f_name' => array('data' => t('First Name'), 'field' => 'wdt.first_name'),
'l_name' => array('data' => t('Last Name'), 'field' => 'wdt.last_name'),
);
// Разместить поле
array_splice($form['accounts']['#header'], 1, 0, $name_header);
foreach($form['accounts']['#options'] as $key => $value) {
$query = db_select('wdt_user_fields', 'wdt')
->fields('wdt', array('first_name', 'last_name'))
->условие('wdt.wdt_username', $key)
->выполнить()
->fetchAssoc();
}
$form['пейджер'] = массив('#разметка' => тема('пейджер'));
вернуть $ форму;
}
/**
* Реализует hook_user_insert()
* @параметр $изменить
* @param $аккаунт
* @параметр $категория
*/
функция wdt_user_fields_user_insert(&$edit, $account, $category) {
db_insert('wdt_user_fields')
->поля(массив(
'wdt_username' => $account->имя,
'first_name' => $edit['field_first_name']['und'][0]['value'],
'last_name' => $edit['field_last_name']['und'][0]['value'],
))->выполнить();
}
Я почти уверен, что делаю что-то не так, когда дело доходит до части $query, но я не могу ничего найти в Интернете.
В дополнение к этому я использовал «имя» из таблицы «пользователи» в качестве первичного ключа в своей пользовательской таблице. Я хочу, чтобы моя таблица обновлялась при удалении пользователя, поэтому имя и фамилия в моей таблице также удалялись. Я не слишком уверен, как это сделать. У кого-нибудь есть какие-либо идеи?
Если бы кто-нибудь мог помочь мне с любым из этих вопросов, это было бы здорово. Заранее спасибо.