巧用arg()
问题是这样的,Drupal有一个用户登录页面,路经为user。这个页面有一个表单,就是登录表单。但是用户还启用了lightbox2模块,对登陆表单使用lightbox2。
项目的需求是,在登录页面登录表单的上面使用一句登录说明性的文字,而在lightbox2弹出的登录表单中,最上方加一个图片。因为这是两个同样的表单。
最初的解决办法是使用jquery,在jquery中使用CSS,动态的切换。就是描述性的文字和图片同时存在,使用jquery来控制相应的显示。这个办法实现了效果。
忽然想到了另外的想法,那就是使用arg()函数进行判断。lightbox2在调用表单的时候,路径中加了lightbox2这个参数。使用arg(2)可以读取这个参数。
有了这个参数,就可以进行判断了。这样问题就解决了。代码大致如下:
modulename_form_alter($form_id, &$form){
if($form_id =="user-login"){
$lightbox2 = arg(2);
if($lightbox2 = "lightbox2"){