Мне нужно было создать пользовательский список выбора для страницы регистрации пользователя, которая вытаскивает SQL-запрос из узлов, которые мне нужно связать с пользователями. Я успешно выполнил эту задачу. :)Drupal: Изменение пользователя при регистрации
Однако, когда я отправляю значение, я не могу контролировать, где хранится значение. Фактически, я не могу хранить значение вообще. Я создал настраиваемое поле для моего значения, но только новое имя поля сохраняется, и оно сериализуется и хранится в столбце данных таблицы пользователя.
Ниже мой код, я прокомментировал свои проблемы в нем. Любая помощь будет оценена!
<?php
// $Id$
//create the additional user form field, a select list named "account_name"
//then calls the next function to populate it.
function accountselect_user($op, &$edit, &$account, $category = NULL) {
if ($op == 'register' || 'edit')
$fields['Information']['account_name'] = array(
'#type' => 'select',
'#title' => 'Account',
'#description' => t('Select the account to which the contact belongs'),
'#options' => accountselect_getclubs() ,
);
return $fields;
}
//contains query to pull results to select list...this part is working
function accountselect_getclubs() {
$return = array();
$sql = 'SELECT DISTINCT `title` FROM node WHERE type = \'accounts\' ';
$result = db_query($sql);
while ($row = db_fetch_array($result)) {
$return[] = $row['title'];
}
return $return;
}
//CAN'T GET THIS PART TO WORK - query to update the row - the uid = 29 is for
//testing puposes. Once I get the test value to work
//the test value I will worry about updating the correct user.
function accountselect_submitaccount() {
$sql = "UPDATE users SET account = \'value\' WHERE uid = \'29\'";
db_query($sql);
drupal_set_message(t('The field has been updated.'));
}
//I SUSPECT THE PROBLEM IS HERE...call the submitaccount function.
//I have tried hook_form_alter as well...
function accountselect_submit(&$form, &$form_state) {
if($form_id == 'user-register')
drupal_execute('accountselect_submitaccount');
}
Я ничего не вижу в журналах. Я изменил запрос, но те же результаты. Я не уверен, что даже доходит до запроса. Что-то не так с функцией, которая вызывает запрос? – tpow
Вы правы. Теперь он передает выбранный индекс (достаточно хорошо!) Списка выбора. Извините, я новичок в drupal, и он мощный, но меня немного смущает ... – tpow