Какую функцию можно использовать в модуле для активации аккаунта пользователя?

Главные вкладки

Аватар пользователя ERET1K ERET1K 5 сентября 2013 в 21:58

В прошлой своей теме Я с помощью форумчанина graker слепил модуль который проверяет наличие в базе данных, имени пользователя, вписанного в поле user name
После нажатия кнопки check на страницу либо выводиться ошибка если имя неверное, либо нечего в случае если данное имя существует.
Теперь нужна функция которая активирует пользователя чье имя было записано в поле.

[img]http://www.drupal.ru/files/7834638734.png[/img]

модуль прилагаеться.

ВложениеРазмер
Иконка изображения 7834638734.png77.44 КБ
Иконка пакета pay_activation.zip3.08 КБ

Комментарии

Аватар пользователя alex_shut alex_shut 5 сентября 2013 в 23:48

"grob.82" wrote:

да ладно, че ты? Человек вон стараетсо, модули свои пишет...
не то что некоторые не_понимать_как_тема_ваять_куда_модуль_пихать_не_вижу_админку_почему_низзя_ядро_хакать

Аватар пользователя ERET1K ERET1K 6 сентября 2013 в 0:28

Эх, А по теме у когото есть что посоветовать?
Всеравно что: статью, пример кода, ... ?

P.S.
grob.82 сомневаюсь что для того чтоб обатиться к базе, таблице users и столбцу status по средством php нужен программист!
Быстрее нужно чтоб программист ответил как туда обратиться. Или какой хук использует стандартный модуль user.

Аватар пользователя ERET1K ERET1K 6 сентября 2013 в 0:45

Кое что нашел. Может кто что скажет? то ли это?
функция из стандартного модуля user:
<?php
/**
* Callback function for admin mass unblocking users.
*/
function user_user_operations_unblock($accounts) {
$accounts = user_load_multiple($accounts);
foreach ($accounts as $account) {
// Skip unblocking user if they are already unblocked.
if ($account !== FALSE && $account->status == 0) {
user_save($account, array('status' => 1));
}
}
}
?>
P.S. это похоже не на тему форума, а на блог моих размышлений...

Аватар пользователя ERET1K ERET1K 10 ноября 2015 в 11:49

Читая все что попадется в гугле нашел как получить объект по его id примерно прикинул что к чему написал исключительно методом тыка такой код:
<?php
/**
* Function for unblocking users.
*/
function pay_activation_user_operations_unblock($form_state)
{
$account = db_query("SELECT * FROM {users} WHERE name = :name", array(':name' => $form_state['values']['name']))->fetchObject();

// Skip unblocking user if they are already unblocked.
if ($account !== FALSE && $account->status == 0)
{
user_save($account, array('status' => 1));
}
else
{
form_set_error('name', t('operation is not end successful'));
}

}
?>

Жаль что только он не работает( правда и не эррорит что странно.
(прикрепляю текущий модуль со всеми изменениями)

Кто нибудь может сказать, Я вообще то что надо делаю, касательно кода выше? То есть хочу получить аккаунт того чье имя вписано в поле и изменить его статус.

Аватар пользователя Chyvakoff Chyvakoff 6 сентября 2013 в 14:28

"ERET1K" wrote:
либо выводиться

"ERET1K" wrote:
модуль прилагаеться

Вот правда тебя самого не коробит от такой писанины?

Аватар пользователя ERET1K ERET1K 6 сентября 2013 в 21:41

Chyvakoff Я не хочу разводить в теме холиваров.
Но вам отвечу, дабы некого не вводить в заблуждение. Я не программист php и не дурачек который сам не знает что делает, Я просто Человек который хочет научиться, а вам бы стоило указать что нужная мне функция лежит у меня под носом под названием user_save(), Хорошо что есть нормальные форумчане которые готовы помочь. Им Я беспредельно благодарен.