Drupal 8 - тема хука не найдена, ветка и CSS для пользовательского блока не работают - PullRequest
2 голосов
/ 29 апреля 2019

Я работаю над пользовательским модулем, в котором есть блок.Этот блок имеет форму конфигурации, в которой пользователь вводит относительные данные, пока он работает, сохраняя данные и отображая их, но без шаблона (ветки).

Мне удалось заставить его работать с шаблоном веточки, но он работает, когда файл ветки находится в каталоге шаблонов основной темы.Мне нужно, чтобы он работал, когда шаблон находится в каталоге пользовательских модулей.В конце я покажу файловую структуру модуля.

Я прочитал много документации, но не смог заставить ее работать.Не совсем уверен, в чем проблема или чего мне не хватает.Я пробовал разные возможные решения, но не смог заставить его работать.

Это файл .module onyx_experienicia.module

function onyx_experiencia_theme($existing, $type, $theme, $path) {
  return [
    'onyxex' => [
      'template' => 'onyxex',
      'variables' => [
        'featured' => [],
        'events' => [],
      ],
    ],
  ];
}

Этоblock onyx_experiencia.php

namespace Drupal\onyx_experiencia\Plugin\Block;

use Drupal\Core\Block\BlockBase;
use Drupal\Core\Block\BlockPluginInterface;
use Drupal\Core\Form\FormStateInterface;
use Drupal\file\Entity\File;
use Druap\image\Entity\ImageStyle;
class onyx_experiencia extends BlockBase implements BlockPluginInterface {

 /**
   * {@inheritdoc}
   */  
  public function build() {
      return [
            '#theme' => 'onyxex',
            '#events' => ['event1', 'event2'],
            '#featured' => ['featured1', 'featured2'],
        ];

  }

Это файл html.twig onyxex.html.twig Как я уже говорил, этот файл находится в modules / custom/ onyx_experiencia / templates

{#
/**
 * @file
 * Profile for onyx_experiencia block.
 */
#}
<h3>Featured Events</h3>
<ul>
    {% for featured_event in featured %}
    <li>{{ featured_event }}</li>
    {% endfor %}
</ul>

<h3>Events</h3>
<ul>
    {% for event in events %}
    <li>{{ event }}</li>
    {% endfor %}
</ul>

И это файловая структура модуля

   module
    ------custom
    ------------onyx_experiencia
    ----------------------------onyx_experiencia.info.yml
    ----------------------------onyx_experiencia.libraries.yml
    ----------------------------onyx_experiencia.module
    ----------------------------css
    -------------------------------onyx_serv_css.css
    ----------------------------templates
    -------------------------------------onyx-experiencia.html.twig
    ----------------------------src
    -------------------------------Plugin
    -------------------------------------Block
    ------------------------------------------onyx_experiencia.php
...