昊天SEO

Drupal的主题钩子

drupal_hook_theme

drupal_hook_theme

Drupal主题钩子的基本形式及其特点

Drupal的主题钩子分为两种形式:主题函数和模板。它们的特点是:

  • 主题函数用于输出小片数据,模板用于输出大块数据。
  • 主题函数速度较快,模板速度较慢。
  • 主题函数调用次数较多,模板调用次数较少。
  • 可以使用预处理函数和处理函数。
  • 可以被覆写(override)。
  • 可以通过hook_theme()钩子函数自定义。
  • 可以通过hook_theme_registry_alter()钩子函数替换。

自定义Drupal主题钩子的要点

Drupal的hook_theme()钩子函数的返回值中,每一个关联数组定义一个主题钩子,其中关联数组的键定义了主题钩子的名字,值定义了主题钩子的信息,且每个主题钩子必须只包含一个“variables”或“render element”。如果通过直接调用theme()函数主题化数据,并拥有多个参数,那么使用“variables”。如果主题化的对象是一个元素或由元素组成的元素树(如:表单数组,页面数组或校验框元素),那么使用“render element”。

“variables”是一个关联数组。对于主题函数来说:该数组的键定义了变量的名字,值定义了变量的默认值,并将其放入了$variables参数中;对于模板文件来说:获取该数组的键作为模板中的变量。

“render elment”指定了要呈现的元素或元素树的名字,并抓住了它们的数据。可以在主题函数,预处理函数和处理函数中使用它。

此外要特别注意的是“template”和“function”。前者指定了主题钩子的实现是一个模板,其值是不含扩展名的模板文件名。后者指定了主题钩子的实现是一个函数,其值是函数名。如果两者都不指定,那么Drupal将把主题钩子的名字作为主题函数的名字。例如:我们定义的主题钩子的名字为“mythemehook”,如果我们不指定“template”和“function”,那么Drupal将指定这个主题钩子的实现为主题函数,并指定主题函数的名字为theme_mythemehook()。

本文地址官网    新乡网站建设,seo

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址