31
十二/08
0

从drupal的path模块看到的



很多的CMS和blog系统都有自定义文章URL功能,drupal也不例外,内置的就有path模块,可以对每个节点进行快捷链接设置,应用比较多。比如将公司联系方式的链接由’node/23′, 设置链接为’contact’,这样访问www.target.com/contact,更为友好。

看下path模块,觉得写得不错的2个地方就是nodeapi这个hook和表单处理流程。首先表单的添加和编辑整合到同一个表单函数中,通过传递表单中的值来判断要进行的操作,是添加还是编辑,而中间多了一个函数的封装。作者很细心的加上了对当前节点地址的判断,如果设置的地址和当前地址一样(无用功),就不做任何处理了。

如果想要对nodeapi这个钩子了解得多一点,看看path模块的代码是个好的选择,首先这个钩子涉及到了很多op选项,’validate’, ‘update’, ‘insert’, ‘delete’, ‘load’,对照里面的注释,很容易体会这个钩子的强大和各个op的用途。此用途对操纵别的内容类型或者别的模块涉及到的内容类型颇为有用。

最后,使用了form_alter钩子修改了node的编辑和创建表单,判断条件是:

if (isset($form['type']) && $form['type']['#value'] .’_node_form’ == $form_id)

这样就不会对“无辜”的表单起作用了,并且效率上也会好一些。配合nodeapi,即可完成对这个表单的所有处理流程。


相关文章

关键字: ,
评论 (0) Trackbacks (0)

没有评论

发表评论

No trackbacks yet.