Twig Drupal 8-未找到挂钩主题,自定义块的细枝和CSS不起作用
我正在处理一个有块的自定义模块。此块有一个表单配置,用户在其中输入相关数据,到目前为止,它保存数据并显示数据,但没有模板(细枝) 我能够使它与一个细枝模板一起工作,但是当细枝文件位于主主题的templates目录下时,它就工作了。我需要它的工作时,模板位于自定义模块目录。最后,我将展示模块的文件结构 我读了很多文档,但都没能让它工作。我不太确定是什么问题,还是我遗漏了什么。我尝试过各种可能的解决方案,但都没有成功 这是.module文件onyx\u experienceia.moduleTwig Drupal 8-未找到挂钩主题,自定义块的细枝和CSS不起作用,twig,drupal-8,drupal-modules,drupal-themes,drupal-blocks,Twig,Drupal 8,Drupal Modules,Drupal Themes,Drupal Blocks,我正在处理一个有块的自定义模块。此块有一个表单配置,用户在其中输入相关数据,到目前为止,它保存数据并显示数据,但没有模板(细枝) 我能够使它与一个细枝模板一起工作,但是当细枝文件位于主主题的templates目录下时,它就工作了。我需要它的工作时,模板位于自定义模块目录。最后,我将展示模块的文件结构 我读了很多文档,但都没能让它工作。我不太确定是什么问题,还是我遗漏了什么。我尝试过各种可能的解决方案,但都没有成功 这是.module文件onyx\u experienceia.module fun
function onyx_experiencia_theme($existing, $type, $theme, $path) {
return [
'onyxex' => [
'template' => 'onyxex',
'variables' => [
'featured' => [],
'events' => [],
],
],
];
}
这是块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_/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文件中添加“渲染元素”、“模板”和“基本挂钩”。。。但似乎也不起作用。有什么想法吗?我刚刚在一个模块中遇到了一个自定义模板的问题。我通过显式设置一个主题建议挂钩解决了这个问题,尽管我像上面一样有主题函数。例如,我的主题函数返回
menu\u local\u tasks\u entity\u user
,然后我设置了一个匹配的建议挂钩<代码>$suggestions[]=“菜单\本地\任务\实体\用户”解决了这个问题,我的模块模板现在可以正常工作了。@DannyEnglander你把$suggestions[]放在哪里了?你需要一个单独的函数。e、 g.function my_module_theme_suggestions_hook_alter(&$suggestions,array$variables){
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