shortify-1.0.9/src/Plugin/Shortcode/BlockRender.php

src/Plugin/Shortcode/BlockRender.php
<?php

namespace Drupal\shortify\Plugin\Shortcode;

use Drupal;
use Drupal\block\Entity\Block;
use Drupal\shortcode\Annotation\Shortcode;
use Drupal\shortify\AdditionalClass\Helpers\AttributeHelper;
use Drupal\shortify\AdditionalClass\PsShortcodeBase;

/**
 * Provides a basic button shortcode
 *
 * @Shortcode(
 *   id = "ps_blockrender",
 *   title = @Translation("Block"),
 *   description = @Translation("Render selected block"),
 *   group = "2",
 *   settings = {
 *      {
 *         "type" = "select",
 *         "atr_name" = "block_name",
 *         "name" = @Translation("Blok"),
 *         "width" = "50",
 *         "select_type" = "server",
 *         "select_server" = "block",
 *         "value" = "default"
 *      },
 *      {
 *         "type" = "solo",
 *         "value" = "true"
 *      }
 *   }
 * )
 */
class BlockRender extends PsShortcodeBase
{

    public function buildElement(): string
    {
        $blockName = $this->getSettings('block_name');
        $renderBlock = "";

        if (AttributeHelper::stringNotNull($blockName)) {
            $block = Block::load($blockName);
            $block_content = Drupal::entityTypeManager()->getViewBuilder('block')->view($block);
            $renderBlock = Drupal::service('renderer')->renderRoot($block_content);
        }

        return $this->renderShortcode($renderBlock);
    }
}

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

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