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

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

namespace Drupal\shortify\Plugin\Shortcode;

use Drupal;
use Drupal\shortcode\Annotation\Shortcode;
use Drupal\shortify\AdditionalClass\PsShortcodeBase;

/**
 * Provides a basic button shortcode
 *
 * @Shortcode(
 *   id = "ps_breadcrumbs",
 *   title = @Translation("Breadcrumbs"),
 *   description = @Translation("Create a breadcrumbs element"),
 *   group = "0",
 *   settings = {
 *     {
 *         "type" = "file",
 *         "atr_name" = "background_img",
 *         "name" = @Translation("Background image"),
 *         "width" = "50",
 *         "value" = ""
 *      },
 *     {
 *         "type" = "solo",
 *         "value" = "true"
 *      }
 *   }
 * )
 */
class Breadcrumbs extends PsShortcodeBase
{

    public function buildElement(): string
    {
        $routeMatch = Drupal::routeMatch();
        $pageTitle = Drupal::service('title_resolver')
            ->getTitle(Drupal::request(), $routeMatch->getRouteObject());
        $breadcrumb = Drupal::service('breadcrumb')
            ->build($routeMatch)
            ->toRenderable();
        $breadcrumbs = Drupal::service('renderer')->render($breadcrumb);
        $breadcrumbs = str_replace('<nav', '<nav class="ps-breadcrumb-nav"', $breadcrumbs);
        $bgBreadcrumbs = $this->getSettings('background_img');

        if (is_array($pageTitle)) $pageTitle = $pageTitle['#markup'];

        $html = "
                <div id='ps-breadcrumbs' style='background-image: url($bgBreadcrumbs);'>
                    <div class='container'>
                        " . $breadcrumbs . "
                        <div class='ps-page-title'><h1>$pageTitle</h1></div>
                    </div>
                </div>";

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

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

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