You are here

class userloginbar in UserLoginBar 8

Provides a simple block.

Plugin annotation


@Plugin(
  id = "userloginbar_block",
  admin_label = @Translation("User Login Bar Block"),
  module = "userloginbar"
)

Hierarchy

Expanded class hierarchy of userloginbar

1 string reference to 'userloginbar'
theme_userloginbar in ./userloginbar.module
Theming function for messages.

File

lib/Drupal/userloginbar/Plugin/Block/userloginbar.php, line 28
Contains \Drupal\userloginbar\Plugin\Block\userloginbar.

Namespace

Drupal\userloginbar\Plugin\Block
View source
class userloginbar extends BlockBase implements ContainerFactoryPluginInterface {

  /**
   * The DI Container.
   *
   * @var \Symfony\Component\DependencyInjection\ContainerInterface
   */
  protected $container;

  /**
   * The request object.
   *
   * @var \Symfony\Component\HttpFoundation\Request
   */
  protected $request;

  /**
   * Constructs a new UserLoginBlock.
   *
   * @param array $configuration
   *   A configuration array containing information about the plugin instance.
   * @param string $plugin_id
   *   The plugin ID for the plugin instance.
   * @param array $plugin_definition
   *   The plugin implementation definition.
   * @param \Symfony\Component\DependencyInjection\ContainerInterface $container
   *   The DI Container.
   * @param \Symfony\Component\HttpFoundation\Request $request
   *   The request object.
   */
  public function __construct(array $configuration, $plugin_id, array $plugin_definition, ContainerInterface $container, Request $request) {
    parent::__construct($configuration, $plugin_id, $plugin_definition);
    $this->container = $container;
    $this->request = $request;
  }

  /**
   * {@inheritdoc}
   */
  public static function create(ContainerInterface $container, array $configuration, $plugin_id, array $plugin_definition) {
    return new static($configuration, $plugin_id, $plugin_definition, $container, $container
      ->get('request'));
  }
  public function access() {
    if (!$GLOBALS['user']
      ->id() && !(arg(0) == 'user' && !is_numeric(arg(1)))) {
      return !$GLOBALS['user']
        ->id() && !(arg(0) == 'user' && !is_numeric(arg(1)));
    }
    else {
      return $GLOBALS['user']
        ->id();
    }
  }

  /**
   * Implements \Drupal\block\BlockBase::blockBuild().
   */
  public function build() {
    $config = \Drupal::config('user.settings');
    global $user;
    if (!$user
      ->id()) {
      $form = drupal_get_form(UserLoginForm::create($this->container), $this->request);
      unset($form['name']['#attributes']['autofocus']);
      unset($form['name']['#description']);
      unset($form['pass']['#description']);
      $form['name']['#size'] = 15;
      $form['pass']['#size'] = 15;
      $form['#action'] = url(current_path(), array(
        'query' => drupal_get_destination(),
        'external' => FALSE,
      ));

      // Build action links.
      $items = array();
      if ($config
        ->get('register')) {
        $items[] = l(t('Register'), 'user/register', array(
          'attributes' => array(
            'title' => t('Create a new user account.'),
          ),
        )) . ' |  ';
      }
      $items[] = l(t('Forgot Password?'), 'user/password', array(
        'attributes' => array(
          'title' => t('Request new password via e-mail.'),
        ),
      ));
      $form['actions']['links'] = array(
        '#markup' => theme('item_list', array(
          'items' => $items,
        )),
        '#weight' => 100,
      );
      $block['user_login_form'] = $form;
      $block['content'] = array(
        '#theme' => 'userloginbar',
        '#items' => $items,
      );
    }
    else {
      $block['content'] = array(
        '#theme' => 'userloginbar',
      );
    }
    return $block;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
userloginbar::$container protected property The DI Container.
userloginbar::$request protected property The request object.
userloginbar::access public function
userloginbar::build public function Implements \Drupal\block\BlockBase::blockBuild().
userloginbar::create public static function Creates an instance of the plugin. Overrides ContainerFactoryPluginInterface::create
userloginbar::__construct public function Constructs a new UserLoginBlock.