Я работаю над пользовательским модулем, в котором есть блок.Этот блок имеет форму конфигурации, в которой пользователь вводит относительные данные, пока он работает, сохраняя данные и отображая их, но без шаблона (ветки).
Мне удалось заставить его работать с шаблоном веточки, но он работает, когда файл ветки находится в каталоге шаблонов основной темы.Мне нужно, чтобы он работал, когда шаблон находится в каталоге пользовательских модулей.В конце я покажу файловую структуру модуля.
Я прочитал много документации, но не смог заставить ее работать.Не совсем уверен, в чем проблема или чего мне не хватает.Я пробовал разные возможные решения, но не смог заставить его работать.
Это файл .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