jitsi-8.x-1.0-beta1/src/Plugin/Block/JitsiButtonBlock.php

src/Plugin/Block/JitsiButtonBlock.php
<?php

namespace Drupal\ek_jitsi\Plugin\Block;

use Drupal\Core\Session\AccountInterface;
use Drupal\Core\Block\BlockBase;
use Drupal\Core\Access\AccessResult;

/**
 * Provides a 'video room button for Jitsi service' .
 *
 * @Block(
 *   id = "jitsi_button_block",
 *   admin_label = @Translation("Jitsi video button"),
 *   category = @Translation("Ek jitsi block")
 * )
 */
class JitsiButtonBlock extends BlockBase {

  /**
   * {@inheritdoc}
   */
  public function build() {
    $items = [];
    $items['title'] = '';
    $items['id'] = 'jitsi_buttons';

    $items['button'] = "<div id='tour-jitsi'><a id='jitsi_new_meeting' class='button'  "
      . "href='#'><span class='jitsi_start_button'></span> " . $this->t('Start New Meeting') . "</a></div>";

    $items['form'] = \Drupal::formBuilder()->getForm('Drupal\ek_jitsi\Form\Join');
    $width = \Drupal::config('ek_jitsi.settings')->get('ek_jitsi_window_width') ?
      \Drupal::config('ek_jitsi.settings')->get('ek_jitsi_window_width') : 800;

    return [
      '#items' => $items,
      '#theme' => 'jitsi_video',
      '#attached' => [
        'drupalSettings' => [
          'ek_jitsi_block' => [
            'width' => $width,
          ],
        ],
        'library' => 'ek_jitsi/block',
      ],
      '#cache' => [
        'tags' => ['jitsi_button_block'],
        'contexts' => [],
      ],
    ];
  }

  /**
   * Function blockAccess.
   *
   * @param \Drupal\Core\Session\AccountInterface $account
   *   Object AccountInterface.
   *
   * @return \Drupal\Core\Access\AccessResult|\Drupal\Core\Access\AccessResultAllowed|\Drupal\Core\Access\AccessResultForbidden
   *   Return the AccessResult.
   */
  protected function blockAccess(AccountInterface $account) {
    if ($account->hasPermission('jitsi video')) {
      return AccessResult::allowed();
    }
    return AccessResult::forbidden();
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc