使用下面两个选项输出链接HTML有什么不同?
theme('links', $primary_links, array('class' => 'links primary-links'))
theme_links($primary_links, $attributes = array('class' => 'links primary-links'))非常感谢
发布于 2010-04-15 00:52:04
在没有任何模板定制的默认Drupal安装上,它们将输出相同的内容。
但是,theme()函数本质上是Drupal中的主题系统的包装器。通过传递' links‘作为第一个参数,您告诉Drupal查找链接主题,无论这是一个函数还是模板。在本例中,主题是一个被调用的函数(theme_links())。
如果您想要对主题进行更改,可以通过覆盖它来实现。例如,您可以创建函数myTheme_links()并让它覆盖默认的theme_links()。如果直接调用函数theme_links(),则必须将此代码更改为适当的主题函数。但是,如果您使用theme()函数,则不会有任何额外的更改,因为此函数知道主题何时被覆盖并采取适当的操作。简而言之,对于将来的代码校对来说,使用theme()函数是更灵活的解决方案,并且可以考虑使用Drupal的方式。
有关主题的更多信息,请查看Drupal's theme documentation。
发布于 2010-04-15 02:29:45
简短的版本是:
如果使用theme_links(),则不能使用my_theme_links命名约定覆盖主题中主题函数,因为需要直接调用它。
如果您改用theme('links'),drupal将根据优先级确定使用哪个可能的主题函数。这就是为什么Drupal及其主题化系统如此灵活的原因之一。一切都可以被覆盖。
https://stackoverflow.com/questions/2639082
复制相似问题