使用hook_delete()清理数据
老葛的Drupal培训班 Think in Drupal
老葛的Drupal培训班 Think in Drupal
老葛的Drupal培训班 Think in Drupal
当一个新节点被保存时,会调用钩子insert()。在这个钩子中你可以将自定义数据存储到相关的表中。只有对于在节点类型元数据中定义的模块,才为其调用这一钩子。该信息定义在hook_node_info()的“module”键中(参看“提供我们节点类型的相关信息”一节)。例如,如果“module”键的值为joke,那么就会调用joke_insert()。如果你启用了书籍模块,并且新加了一个书籍类型的节点,此时就不会调用joke_insert();这里将调用的是book_insert(),这是因为book.module使用“module”键为book来定义了它的节点类型。
老葛的Drupal培训班 Think in Drupal
由于主体字段是一个textarea,并且对于节点主体字段可以使用过滤器格式,所以上面的表单中包含Drupal的标准内容过滤器,代码如下(过滤转换文本;使用过滤器的更多信息,可参看第11章):
老葛的Drupal培训班 Think in Drupal
你在hook_perm()中定义了权限,但是它们是如何起作用的呢?节点模块可以使用hook_access()来限制对它们定义的节点类型的访问。超级用户(用户ID 1)将绕过所有的访问权限检查,所以对于超级用户则不会调这个钩子函数。如果没有为你的节点类型定义这个钩子函数,那么所有的访问权限检查都会失败,这样就只有超级用户和具有“管理节点”权限的用户,才能够创建、编辑、或删除该类型的内容。
老葛的Drupal培训班 Think in Drupal