Изменить список пользователей для определенной роли

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

Аватар пользователя vic vic 9 сентября 2009 в 15:16

Имеется определенная роль, которой разрешен доступ к администрированию пользователей! Теперь необходимо в разделе УПРАВЛЕНИЕ ПОЛЬЗОВАТЕЛЯМИ выводить только определенных пользователей (например, которые посещали сайт в течение дня). Я уже перелопатил модуль user, нашел где формируется запрос на выдачу пользователей. Но вот как вклиниться в процесс формирования списка пользователей? Подскажите в какую сторону копать!?

Комментарии

Аватар пользователя Дэн Дэн 9 сентября 2009 в 16:37

Не легче через hook_menu создать отдельную страницу где по составному sql запросу формируется список пользователей ввиде таблицы?

Аватар пользователя vic vic 9 сентября 2009 в 17:20

"Дэн" wrote:

Как вариант! Но мне все-таки хотелось бы изменить тот список! Как говорится, проверяю Друпал на гибкость!
Единственный вариант, что я вижу: на той странице есть фильтр пользователей! Можно, наверное его скрыть, а вместо него к SQL-запросу присобачить то что нам нужно. Но до практической реализации у меня не доходило. Еще кто знает какие способы? Предлагайте варианты, очень интересно!

Аватар пользователя Дэн Дэн 9 сентября 2009 в 17:31

Как вариант? Smile Зачем разработчики Друпала ночами не спали чтобы сделать систему хуков... наверно чтобы ими не пользовались Smile

Аватар пользователя vic vic 9 сентября 2009 в 17:38

Задачу можно решить разными путями! Вы предложили один из них! Но меня интересует как именно повлиять на Друпал, вклиниться в его вывод!

Аватар пользователя Дэн Дэн 9 сентября 2009 в 20:09

Да легко, заходим в папку модуля users, открываем файл user.module. Идём на 1989 строку, и вставляем следующее:

  $filters['visited'] = array(
    'title' => t('visited'),
    'where' => 'u.access > %d',
    'join' => '',
    'options' => array(
      mktime(0, 0, 0) => t('today'),
      (mktime(0, 0, 0) - 7 * 24 * 60 * 60) => t('this week'),
      (mktime(0, 0, 0) - 30 * 24 * 60 * 60) => t('this month'),
    ),
  );

Потом идём на http://mysite/admin/user/user и там выбираем параметр фильтрации visited (посещял):
а) today (сегодня)
б) this week (эту неделю)
в) this month (этот месяц)