【发布时间】:2022-01-30 06:27:03
【问题描述】:
我用 createIndexData 函数创建了一个插件:
public static function createIndexData($file): bool
{
$pages = self::getPages();
$grav = Grav::instance();
if($pages !== null){
$locator = $grav['locator'];
$grav['twig']->twig_paths[]= array_merge(Grav::instance()['twig']->twig_paths, $locator->findResources('theme://templates'));
$grav->fireEvent('onTwigTemplatePaths');
$page = $pages->find('/austria/_price-list');
/*dump($page);*/
dump($page->content());
exit();
}
return false;
}
插件在 onPagesInitialized 中被调用。我只需要从模块化页面获取处理后的内容。在模块化页面中,我包含来自另一个页面的内容:(/pages/austria/_price-list)
{% set moduleName= 'price-list' %}
{% set pageUrl = page.find(uri.path).rawRoute[1:] %}
{% set pageUrl = '/global-variables-and-templates/price-list/data/_austria' %}
{% set page = page.find(pageUrl) %}
{% if not page %}
PAGE NOT EXIST!!!!<br />url: {{pageUrl}}<br />modul-name: {{moduleName}}
{% else %}
{% include page.template~'.html.twig' with {'content' : page.content} %}
{% endif %}
插件返回错误:未定义模板“modular/price-list-global.html.twig”。怎么了?或者自定义插件中如何从grav中的模块化页面获取处理后的内容?
【问题讨论】:
-
我不清楚您想要实现的目标,您可能会走错方向。您可能需要考虑编辑您的问题以增加清晰度。
-
我需要获取模块化页面的内容。我需要获取已处理的模块化页面的内容(树枝)。当我调用 $page->content() 时,在处理“包含页面”期间显示错误:未定义模板“xyz”
-
一句话重复问题并没有说得更清楚... 1)你在哪里需要模块的内容?在 PHP 或 Twig 中?关于 PHP sn-p: 2) 你想用函数'createIndexData($file)'来实现什么? 3)代码看起来很乱,请只显示正确的代码。 4) 在哪里创建所需的模板?在主题或当前插件中? 5)为什么会触发事件?关于 Twig sn-p: 6)您正在遮蔽变量“页面”,这被认为未完成.. 7)您为什么要包含要包含的页面的模板? 8) ...