Кнопка "Заблокировать/Разблокировать" в профиле пользователя социальной сети

Эта статья является небольшим дополнением к посту "Создание социальной сети на Drupal" и позволяет сделать удобным блокирование пользователей, снятие с публикации материалов и комментариев. Сейчас мы получим удобный способ банить пользователя с помощью кнопки "Заблокировать/Разблокировать" прямо в его профиле.

Нам потребуется модуль fasttoggle. Скачиваем, устанавливаем. Настраиваем разрешения на странице пользовательских ролей и по адресу /admin/settings/fasttoggle указываем что хотим администрировать (посты, комментарии и пользователей). Теперь у администратора будут появятся дополнительные ссылки в нодах, комментариях и в админке на странице управления пользователями. Но в админке неудобно искать пользователя, чтобы его потом забанить, поэтому облегчаем администраторам жизнь.

К посту "Создание социальной сети на Drupal" прилагается модуль, внесём следующий код в mymodule.module в функцию mymodule_preprocess_user_profile:

  // Администраторские кнопки
  // "Забанить пользователя"
  if (module_exists('fasttoggle') && (user_access('administer users') || user_access('moderate users'))) {
    $settings = variable_get('fasttoggle_user_settings', array('status' => TRUE));
    if ($settings['status']) {
      $link = array_shift(fasttoggle_link('user', $account, TRUE));
      $variables['banhammer'] = l($link['title'], $link['href'], $link);
    }
  }

Так мы создали новую переменную $banhammer для шаблона профиля. Теперь открываем user-profile.tpl.php в директории с темой и добавляем код:
// после этой строки в самом начале
<div class="profile clear_block">
  // добавляем:
  <?php if($banhammer): ?><div class="banhammer"><?php print $banhammer; ?></div><?php endif; ?>

В файл с темой style.css добавляем:
.banhammer a.fasttoggle {
  padding: .2em .5em;
  background-color: #FFBFBF;
  color: #C00000;
}

Очищаем кэш. Заходим администратором на свой сайт и тестируем на каком-нибудь пользователе.