You are here

public function LoginShadowboxController::login in Shadowbox 8

Displays user profile if user is logged in, or login shadowbox form for anonymous users.

1 string reference to 'LoginShadowboxController::login'
login_shadowbox.routing.yml in login_shadowbox/login_shadowbox.routing.yml
login_shadowbox/login_shadowbox.routing.yml

File

login_shadowbox/lib/Drupal/login_shadowbox/Controller/LoginShadowboxController.php, line 61
Contains \Drupal\login_shadowbox\Controller\LoginShadowboxController.

Class

LoginShadowboxController
Controller routines for login_shadowbox routes.

Namespace

Drupal\login_shadowbox\Controller

Code

public function login() {
  $user = $this
    ->currentUser();
  if ($user
    ->id()) {
    $response = $this
      ->redirect('user.view', array(
      'user' => $user
        ->id(),
    ));
  }
  else {
    $path = drupal_get_path('module', 'login_shadowbox');
    $css_path = $this
      ->config('login_shadowbox.settings')
      ->get('login_shadowbox_css');

    // Login form begin.
    $login_form = '<div id="shadowbox_login" class="shadowbox_login_wrapper">';
    $login_form .= '<button class="shadowbox_login_close_button">x</button>';

    // Add login form.
    $form_builder = $this
      ->formBuilder();
    $form = $form_builder
      ->getForm('Drupal\\user\\Form\\UserLoginForm');
    $form['#attached'] = array(
      'css' => array(
        $css_path,
        array(
          'group' => 'CSS_DEFAULT',
        ),
      ),
      'js' => array(
        $path . '/scripts/login_shadowbox_messages.js',
      ),
    );
    $login_form .= drupal_render($form);
    if ($this
      ->config('user.settings')
      ->get('register')) {
      $items[] = l(t('Create new account'), 'user/register', array(
        'attributes' => array(
          'title' => t('Create a new user account.'),
        ),
      ));
    }
    $items[] = l(t('Request new password'), 'user/password', array(
      'attributes' => array(
        'title' => t('Request new password via e-mail.'),
      ),
    ));
    $links = array(
      '#theme' => 'item_list',
      '#items' => $items,
    );
    $login_form .= drupal_render($links);
    $login_form .= '</div>';
    $login = array(
      '#theme' => 'login_shadowbox_page',
      '#title' => t('Login'),
      '#content' => $login_form,
      '#css' => drupal_get_css(),
      '#js' => drupal_get_js(),
    );
    exit(drupal_render($login));
  }
  return NULL;
}