作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
$base_path: Drupal安装的基路径。通常情况下,默认为/。它的值由base_path()生成。
$directory: 模板文件所在的目录,比如modules/system或者themes/bartik。它的值由path_to_theme()生成。通常把这个变量和$base_path一起使用,来构建模板所在的绝对路径:
<?php print $base_path . $directory ?>
这段代码等价于:
<?php print base_path() . path_to_theme() ?>
$is_front: 如果当前页面为首页,返回TRUE。
$logged_in: 当前用户是注册用户并且已经登录,返回TRUE;否则,返回FALSE。
$is_admin:如果用户有权访问管理界面,返回TRUE;否则,返回FALSE。
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
$front_page:首页的URL,它包含了语言前缀/域名。它的值由不带参数的url()生成。当链接指向首页时,可以使用这个变量,来替代$base_path。
$logo: 指向logo图片的路径,定义在主题的配置中。
$site_name: 站点的名称。当管理员在主题配置中禁止显示时,$site_name为空。
$site_slogan: 站点的口号。当管理员在主题配置中禁止显示时,$site_slogan为空。
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
$main_menu: 站点主导航菜单链接的数组,如果没有配置,则为空。它在模板文件中这样输出,如下所示:
<?php print theme('links__system_main_menu', array('links' => $main_menu, 'attributes' => array('id' => 'main-menu', 'class' => array('links', 'inline', 'clearfix')), 'heading' => t('Main menu'))); ?>
通过修改上面的代码,我们可以修改主菜单的ID,Class,从而能够更好的控制它的样式输出。
$secondary_menu: 站点二级导航菜单链接的数组,如果没有配置,则为空。
$breadcrumb: 当前页面的面包屑。
$title_prefix (array):在模板的主标题标签前面显示的内容,注意它是数组结构,在模板中输出时,使用render()输出。
<?php print render($title_prefix); ?>
$title:页面的标题,可用在实际的HTML内容中。它在模板中这样输出:
<?php if ($title): ?><h1 class="title" id="page-title"><?php print $title; ?></h1><?php endif; ?>
注意,这里面$title已经是现成的html内容了,而$title_prefix此时还是一个数组,它们的输出方式有所不同。在Drupal7的模板中,使用render(),是很普遍的。
$title_suffix (array): 在模板的主标题标签后面显示的内容,注意它是数组结构。
$messages: 状态消息和错误消息对应的HTML,应该突出显示。
$tabs (array): 当前页面对应的子页面的Tabs链接,例如当显示一个节点时,对应的查看/编辑标签。
$action_links (array): 作用于当前页面的动作,比如菜单管理界面的“添加菜单”链接。
$feed_icons: 当前页面的所有种子图标。
$node: 如果当前页面是一个节点页面,比如node/123,或者是节点的子页面node/123/revisions,这个变量就是对应的自动加载的节点对象。
$page['help'] : 动态的帮助文本,主要用于管理界面。
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
很多人,特别是初学Drupal的人,经常会问,模板里面的变量是从哪里蹦出来的。肯定是在别的地方定义了这些变量,所以我们才能在这里引用。这些变量是在下面的函数中定义的:
template_preprocess()
template_process()
template_preprocess_page()
template_process_page()
有兴趣的可以在api.drupal.org查一下这些函数。我们也会在后面的内容中,对这些函数做进一步的介绍。