Php 模板块继承Contao
我是康托发展的新手。我试图做的是扩展模板中的自定义块。因此,我的问题是: 是否可以在模板中创建自定义块 在文档中,有一节写了模板继承,并说明我们可以继承自定义块,例如:Php 模板块继承Contao,php,inheritance,contao,Php,Inheritance,Contao,我是康托发展的新手。我试图做的是扩展模板中的自定义块。因此,我的问题是: 是否可以在模板中创建自定义块 在文档中,有一节写了模板继承,并说明我们可以继承自定义块,例如: <?php $this->block('name_of_the_block'); ?> // Block content <?php $this->endblock(); ?> 如果这里有contao开发者的话。请帮帮我。我会非常感激的。塔克斯。如果你能列出其他重要的观点,那将是很有
<?php $this->block('name_of_the_block'); ?>
// Block content
<?php $this->endblock(); ?>
如果这里有contao开发者的话。请帮帮我。我会非常感激的。塔克斯。如果你能列出其他重要的观点,那将是很有帮助的。谢谢。请记住,由于历史原因,Contao 3中的模板继承非常简单,不能与我们在Contao 4中移动到的另一个引擎(即细枝)相比 回答你的问题: 您可以在模板中定义自己的块,然后可以在子模板中覆盖这些块。 事实上,每个块都是在其名称的根模板中创建的,然后被覆盖,要查看此操作,请参阅表单元素模板,例如,请参阅以下代码: 这些块在此处介绍,并在中覆盖: 如您所见,块字段正在被覆盖,而标签未被覆盖。 现在,我们可以在另一个模板中再次覆盖此块,或者在另一个扩展表单_radio.html5的模板中覆盖标签 如上所述,有一些限制需要注意: 不允许在使用$this->extend的子模板中引入新块。这样做将导致抛出异常。 不能在子模板的块之外引入代码。
如果还有问题,,请更新您的问题,因为猜测您到底想知道什么有点模糊。请记住,由于历史原因,Contao 3中的模板继承非常简单,不能与另一个引擎(即我们在Contao 4中移动到的树枝)的灵活性相比较 回答你的问题: 您可以在模板中定义自己的块,然后可以在子模板中覆盖这些块。 事实上,每个块都是在其名称的根模板中创建的,然后被覆盖,要查看此操作,请参阅表单元素模板,例如,请参阅以下代码: 这些块在此处介绍,并在中覆盖: 如您所见,块字段正在被覆盖,而标签未被覆盖。 现在,我们可以在另一个模板中再次覆盖此块,或者在另一个扩展表单_radio.html5的模板中覆盖标签 如上所述,有一些限制需要注意: 不允许在使用$this->extend的子模板中引入新块。这样做将导致抛出异常。 不能在子模板的块之外引入代码。
如果还有其他问题,请更新您的问题,因为猜测您到底想知道什么有点模糊。谢谢您的解释。我想我已经有了一部分,但还需要学习。所以,您的解释意味着我们不能创建自己的块,而只能扩展父模板中已经存在的块,对吗?因此,当扩展表单行时,我们发布到的任何内容都将显示在前面元素的上方?正确,您可以在扩展时覆盖块放置新内容或从父级包装内容,或者在不扩展时定义可用块,而不是在同一模板中。感谢您的解释。我想我已经有了一部分,但还需要学习。所以,您的解释意味着我们不能创建自己的块,而只能扩展父模板中已经存在的块,对吗?因此,当扩展form_行时,我们发布到其中的任何内容都将显示在前面元素的上方?正确,您可以在扩展时覆盖块放置新内容或从父级包装内容,或者在不扩展时定义可用块,而不是在同一模板中。
// ... code omitted, refer to linked file.
<div class="<?= $this->prefix ?><?php if ($this->class) echo ' ' . $this->class; ?>">
<?php $this->block('label'); ?>
<?php $this->endblock(); ?>
<?php $this->block('field'); ?>
<?php $this->endblock(); ?>
</div>
// ... code omitted, refer to linked file.
<?php $this->extend('form_row'); ?>
<?php $this->block('field'); ?>
// ... code omitted, refer to linked file.
<?php $this->endblock(); ?>