Рейтинг:0

Изменение user_admin_account и user_register_form

флаг ro

Я новичок в 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, но я не могу ничего найти в Интернете.

В дополнение к этому я использовал «имя» из таблицы «пользователи» в качестве первичного ключа в своей пользовательской таблице. Я хочу, чтобы моя таблица обновлялась при удалении пользователя, поэтому имя и фамилия в моей таблице также удалялись. Я не слишком уверен, как это сделать. У кого-нибудь есть какие-либо идеи?

Если бы кто-нибудь мог помочь мне с любым из этих вопросов, это было бы здорово. Заранее спасибо.

Jaypan avatar
флаг de
"Я почти уверен, что делаю что-то не так, когда дело доходит до $query"
berliner avatar
флаг bd
Добро пожаловать в Drupal Ответы! Я немного смущен вашим вопросом. Если вы добавили поля в сущность пользователя, зачем вам хранить введенные данные для этих полей? Drupal позаботится об этом. Если я неправильно понял это, рассмотрите возможность обновить свой вопрос, чтобы уточнить. Вы видели модуль [realname](https://www.drupal.org/project/realname)? Я думаю, что ваш вариант использования достаточно распространен, и уже есть решение, которое не требует пользовательского кода.

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

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.