设置Drupal变量
通过简单的调用variable_set()就可以设置Drupal变量:
variable_set('pubcookie_login_dir', 'login');
创建初始节点类型
如果你需要创建节点类型的话,那么可以使用Drupal内置的内容类型支持,创建一个节点类型定义对象,并调用node_type_save()就可以了。在前面的轮廓例子中,我们最后创建了两个节点类型:page,用于普通的web页面(在我们调用default_profile_tasks()时,由默认轮廓创建);news,用于新闻条目。接着,我们使用variable_set()设置了默认的节点选项,这样当发布新闻条目时,就会自动将其推到首页,然而普通的页面则不可以。
如果你已经启用的模块提供了节点类型,那么通过这些模块中的node_info()钩子,这些节点类型在Drupal中已经可用。
将信息保存到数据库中
安装轮廓可能想调整一些数据库设置。由于数据库连接已经可用,所以可以使用db_query()来修改数据库。在我们的轮廓例子中,我们向Drupal站点添加了一个角色。在你的轮廓中,你可能想添加更多的信息,例如,向permissions表中插入权限。
为了获取正确的查询语句,这里有一个方便的方式,那就是执行一个普通的Drupal安装,然后对其进行配置,直到得到你想要的。这可能包括创建一些节点作为占位符,添加一些URL别名。对于这个大学部门,它可能需要一个“关于”页面,一个“课程教学”页面,等等。在完成了这些配置以后,你可以使用数据库工具从你站点的数据库中导出SQL脚本。然后,你从SQL脚本中选出你想使用的INSERT SQL命令,然后把这些插入命令包含在你的安装轮廓中。
通过程序提交表单
因为Drupal支持程序式表单提交,所以,当你需要与网站进行交互时,你可以使用drupal_execute()提交表单。在前面的例子中,我们就使用了这种方式向站点添加了分类术语。关于drupal_execute()的更多详细,可参看第10章。
在安装期间设置一个主题
Drupal把默认主题的值存储在了名为theme_default的持久化变量中。因此,通过设置这个变量,你就可以为站点选择初始主题了,在安装完成后就显示出来初始主题。在前面的轮廓例子中,我们选择了一个名为university的自定义主题。
// Change to our custom theme.
$themes = system_theme_data();
$theme = 'university';
if (isset($themes[$theme])) {
system_initialize_theme_blocks($theme);
db_query("UPDATE {system} SET status = 1 WHERE type = 'theme' AND
name = '%s'", $theme);
variable_set('theme_default', $theme);
menu_rebuild();
drupal_rebuild_theme_registry();
}
但是还有一些常规事务需要完成。调用system_theme_data(),并检查是否定义了$themes['university'],来确保Drupal发现了我们的自定义主题。需要做的还有,设立新主题中的区块,启用主题本身,接着重构菜单和主题注册表。
这里的方式是,根据你感兴趣的流程(在这种情况下就是启用和设置一个默认主题),为其查找对应的函数,接着要么调用该函数,要么将其代码复制到你的安装轮廓任务重。在前面的例子中,代码是从modules/system/system.admin.inc的system_themes_form_submit()函数中提取出来的。