sfc-8.x-1.3/modules/sfc_dev/src/Plugin/SingleFileComponent/ComponentTemplate.php

modules/sfc_dev/src/Plugin/SingleFileComponent/ComponentTemplate.php
<?php

namespace Drupal\sfc_dev\Plugin\SingleFileComponent;

use Drupal\sfc\ComponentBase;

/**
 * Renders the template for a component, for use in the library.
 *
 * @SingleFileComponent(
 *   id = "sfc_dev_component_template",
 * )
 */
class ComponentTemplate extends ComponentBase {

  const TEMPLATE = <<<TWIG
<div class="component-template">
  <div class="component-template__code">{{ code }}</div>
  <div class="component-template__filename">
      {% trans %}Located at {{ filename }}{% endtrans %}
  </div>
</div>
TWIG;

  const CSS = <<<CSS
.component-template {
    font-size: 12px;
    line-height: 1.5;
}
.component-template__code {
    overflow: scroll;
    font-family: monospace, monospace;
    white-space: pre;
    padding: 10px;
    background: #f9f9f9;
    color: black;
    margin-bottom: 15px;
    border-bottom: 2px solid gray;
}
CSS;

  /**
   * {@inheritdoc}
   */
  public function prepareContext(array &$context) {
    if (isset($context['component'])) {
      $obj = new \ReflectionClass($context['component']);
      $context['filename'] = ltrim(str_replace(DRUPAL_ROOT, '', $obj->getFileName()), '/');
      $context['code'] = preg_replace('/({# End - ComponentBase additions #})/', "$1\n", $context['component']->getTemplate());
    } else {
      $context['filename'] = '';
    }
  }

}

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

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