如何以良好的方式从 drupal 模块输出 HTML
这可能是基本的,但我刚刚开始使用 Drupal(顺便说一句 6)。
我正在构建一个模块,并收到一个应该返回一些 html 的回调。我可以这样做:
function myModule_myFunction(){
$r = '';
$r .= '<h1>'.$variable.'</h1>';
return $r;
}
但我宁愿将逻辑和表示分开,并将其放入单独的文件或其他文件中。字符串中的 HTML 很丑陋!
执行此操作的“drupal”方法是什么? 就我而言,它不必使用主题系统。
this may be basic, but i just started using Drupal (6 btw).
I'm building a module, and got a callback that is supposed to return some html. I could just do something like this:
function myModule_myFunction(){
$r = '';
$r .= '<h1>'.$variable.'</h1>';
return $r;
}
But I'd rather seperate logic and presentation, and put this in a seperate file, or something. HTML in strings is ugly!
What's the 'drupal' way to do this? It doesn't have to use the theme system as far as I'm concerned.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
主题系统是 drupal 的方式来做到这一点。
首先检查是否还没有可以使用的主题功能,有很多允许将数据输出为表格、列表、图像等。
如果没有,您需要...
使用 hook_theme()。用您的模块作为前缀,例如
yourmodule_something
。创建主题函数(或模板),主题函数必须以 theme_ 为前缀,例如
function theme_yourmodule_something()
。确保清除所有缓存,以便 Drupal 知道您的主题功能。
使用 theme()< 调用主题函数/a>:
theme('yourmodule_something', $argument1, $argument2)
:更多详细信息可以在链接的文档页面上找到。
The theme system is the drupal way to do that.
First check if there isn't already a theme function that you can use, there are many that allow to output data as table, lists, images and much more.
If there is not, you need to...
Declare a new theme function with hook_theme(). Prefix it with your module, something like
yourmodule_something
.Create a theme function (or a template), a theme function must be prefixed theme_, so something like
function theme_yourmodule_something()
.Make sure to clear all caches so that Drupal knows about your theme function.
Call the theme function with theme():
theme('yourmodule_something', $argument1, $argument2)
:More details can be found on the linked documentation pages.
hook_theme 是第一个用于定义主题输出的模板和函数。
然后,使用这些模板或主题函数输出任何标记,例如,使用几个参数调用
theme_my_content
或 my-content.tpl.php,您可以调用:theme('my_content ', $param1, $param2);
hook_theme is first used to define templates and functions for themed output.
Then, use those templates or theme functions to output any markup, e.g, to call
theme_my_content
or my-content.tpl.php with a couple of parameters, you can call:theme('my_content', $param1, $param2);