Colorbox login/register form links

Създаване на блок с два линка - login | register, които след логване се заменят с името на потребителя и logout.

За целта е необходим colorbox с включена подръжка на forms в настройките му.
От следния код се прави/добавя в модул или се добавя в template.php на текущата тема.

Забележка: В случай, че имате в темата вече hook_block_info и/или hook_block_view, добавете съответния код в него.

/**
 * Implements hook_block_info().
 */
function THEME_NAME_login_menu_block_info() {
  $blocks['block_login_menu'] = array(
    'info' => t('Login menu'),
  );
 
  return $blocks;
}
 
/**
 * Implements hook_block_view().
 */
function THEME_NAME_login_menu_block_view($delta = '') {
  $block = array();
 
  switch ($delta) {
    case 'block_login_menu':
      $block['subject'] = t('Login block menu');
      $block['content'] = _my_login_block_content();
      break;
  }
  return $block;
}
 
function _my_login_block_content() {
  global $user;
  $output = '';
  $items = array();
 
  switch ($user -> uid) {
    case 0:
      $items[] = l(t('Sign in'), 'user/login', array('attributes' => array('title' => t('Sign in'))));
      $items[] = l(t('Register'), 'colorbox/form/user_register_form', array('query' => array('width' => '300', 'height' => 'auto'), 'attributes' => array('title' => t('Register own account in site'), 'class' => array('colorbox-load'))));
      break;
    default:
      $items[] = l($user -> name, 'user/' . $user -> uid, array('attributes' => array('title' => t('Personal settings'))));
      $items[] = l(t('Logout'), 'user/logout', array('attributes' => array('title' => t('Logout'))));
  }
  $output = implode(' | ', $items);
 
  return $output;
}
Categories: