gpt4 book ai didi

dry - 如何在 ExpressionEngine 中重用代码块并将参数传递给它们

转载 作者:行者123 更新时间:2023-12-04 09:36:30 24 4
gpt4 key购买 nike

假设我有一个电子商务网站,我想通过大量模板来展示我展示产品网格的方式。使用 DRY 原则,您将如何重用此代码并可能将参数传递到 block 中以在不同区域进行一些自定义? {embed} 是最佳选择吗?我可以看到类似的东西会产生很多不必要的开销。

最佳答案

我在客户网站上做了这件事。我在整个网站上重新使用了相同的产品网格,它是 100% DRY。我使用了 Stash 的 dev 分支并使用了新的嵌入功能。虽然常规嵌入始终是一种可行的选择,但 Stash 嵌入更高效、更强大。

真正的区别在于您如何传递变量以及何时解析嵌入。使用 stash embeds 可以在循环标签内使用,并且只解析一次数据。 (在循环的每次迭代中都会解析常规嵌入。)

这是我不久前在 Twitter 上为另一位用户发布的要点。
https://gist.github.com/2950536

请注意,该示例代表多个文件和代码块,或者我会在这里发布。 IMO,如果我把它贴在这里,它会让这篇文章难以阅读和阅读。本质上,它遵循修改后的模板部分方法。

有关模板部分的更多信息。
http://eeinsider.com/blog/ee-podcast-stash-template-partials/

但更直接地回答“如何用 Stash 替换嵌入变量?”的问题。该解决方案相当简单,并且基于“setter”和“getter”的核心编程概念。理论上,如果设置了一个变量,则可以在模板中的任何稍后位置检索它。诀窍是在解析 getter 之前设置变量。

{exp:stash:set}

{stash:page_content}

{exp:channel:entries channel="your-channel"}

{stash:your_var_1}Some value 1{/stash:your_var_1}
{stash:your_var_2}Some value 2{/stash:your_var_2}
{stash:your_var_3}Some value 3{/stash:your_var_3}
{stash:your_var_4}Some value 4{/stash:your_var_4}

{stash:embed name="your-template" process="start"}

{/exp:channel:entries}

{/stash:page_content}

{/exp:stash:set}

{stash:embed name="header" process="end"}

这就是过程参数发挥作用的地方。这将允许您在条目循环运行之前嵌入模板,并嵌入包含站点包装器的标题并输出页面内容。一旦掌握了窍门,它就会变得非常强大,并使您的网站更加干净。

关于dry - 如何在 ExpressionEngine 中重用代码块并将参数传递给它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13042435/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com