Commit 1d7bcb97 authored by Derek Laventure's avatar Derek Laventure Committed by Derek Laventure
Browse files

Issue #3107197 by spiderman: Add custom block for certificatelogin links

parent 8fd0f898
Loading
Loading
Loading
Loading
+4 −0
Changes for certificatelogin.libraries.yml: 4 added lines, 0 removed lines.
Original line number Diff line number Diff line
certificatelogin:
  css:
    theme:
      css/certificatelogin.css: {}
+3 −0
Changes for certificatelogin.module: 3 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -33,6 +33,9 @@ function certificatelogin_theme() {
    'certificatelogin' => [
      'render element' => 'children',
    ],
    'certificatelogin_block' => [
      'variables' => [ 'links' => NULL ]
    ],
  ];
}

+31 −0
Changes for css/certificatelogin.css: 31 added lines, 0 removed lines.
Original line number Diff line number Diff line
.certificatelogin-links span {
  padding: 1em;
  margin: 1em;
}

.certificatelogin-links span a {
	box-shadow:inset 0px 1px 0px 0px #97c4fe;
	background:linear-gradient(to bottom, #3d94f6 5%, #1e62d0 100%);
	background-color:#3d94f6;
	border-radius:6px;
	border:1px solid #337fed;
	display:inline-block;
	cursor:pointer;
	color:#ffffff;
	font-family:Arial;
	font-size:15px;
	font-weight:bold;
	padding:6px 24px;
	text-decoration:none;
	text-shadow:0px 1px 0px #1570cd;
}

.certificatelogin-links span a:hover {
	background:linear-gradient(to bottom, #1e62d0 5%, #3d94f6 100%);
	background-color:#1e62d0;
}

.certificatelogin-links span a:active {
	position:relative;
	top:1px;
}
+46 −0
Changes for src/Plugin/Block/CertificateLoginBlock.php: 46 added lines, 0 removed lines.
Original line number Diff line number Diff line
<?php

namespace Drupal\certificatelogin\Plugin\Block;

use Drupal\Core\Block\BlockBase;
use Drupal\Core\Url;
use Drupal\Core\Link;

/**
 * Provides main login block.
 *
 * @Block(
 *   id = "certificatelogin_block",
 *   admin_label = @Translation("Certificate Login Block")
 * )
 */
class CertificateLoginBlock extends BlockBase {

  /**
   * {@inheritdoc}
   */
  public function build() {
    # two links: one for UserID login (/certificatelogin) and one for direct login (/certificatelogin/login)
    $options = array('attributes' => ['class' => ['certificatelogin-link']]);
    $links = array(
      'useridlogin' => Link::fromTextAndUrl(t('Login with UserID'), Url::fromRoute('certificatelogin.initial', [], $options)),
      'certificatelogin' => Link::fromTextAndUrl(t('Login with Certificate'), Url::fromRoute('certificatelogin.login', [], $options)),
    );

    $block = array(
      '#links' => $links,
      '#theme' => 'certificatelogin_block',
      '#attributes' => [
        'class' => ['certificatelogin'],
        'id' => 'certificatelogin-block',
      ],
      '#attached' => [
        'library' => [
          'certificatelogin/certificatelogin',
        ],
      ],
    );

    return $block;
  }
}
+5 −0
Changes for templates/certificatelogin-block.html.twig: 5 added lines, 0 removed lines.
Original line number Diff line number Diff line
<div class="certificatelogin-links">
    {% for link in links %}
      <span>{{ link }}</span>
    {% endfor %}
</div>