//请问大家有熟悉drupal的吗?我想在user.module中的user_authenticate函数中插入一段script,请问如何做?
function user_authenticate($name, $pass) {
  global $user;
  // Try to log in the user locally. Don't set $user unless successful.
  if ($account = user_load(array('name' => $name, 'pass' => $pass, 'status' => 1))) {
    // Check if the e-mail is denied by an access rule.
    // Doing this check here saves us a user_load() in user_login_validate()
    // and introduces less code change for a security fix.
    if (drupal_is_denied('mail', $account->mail)) {
      form_set_error('name', t('The name %name is registered using a reserved e-mail address and therefore could not be logged in.', array('%name' => $account->name)));
      return;
    }
    else {
//我想在登陆成功后在这里插入一段script,请问如何插入,试了一个晚上,用drupal_add_js总是不行      $user = $account;
 
      return $user;
    }
  }

解决方案 »

  1.   

    楼主真逗!~PHP是服务器语言 JS是客户端语言 怎可同日而语?
    除非你将JS设置成Server 或者 在PHP中用上echo('<script type=javascript></script>');输出到客户端运行
      

  2.   

    你要插入什么JS?
    echo '<script type=javascript> alert("插入东西拉!");</script>';
      

  3.   

    我以前就是这么写的,但在user.module中使用echo是不行的,所以才来问的
      

  4.   

    在user.module中使用Echo script后,在用户登陆后,则变成第一屏是白屏,再刷一次,才能到正常页面
      

  5.   

    那考虑用层来做提示吧!
    <div id=""> echo "这里插入提示之类语言!";</div>
      

  6.   

    那这样呢
    else {
    ?>
     <script type='javascript'> alert("要显示的js!"); </script>
    <?
     $user = $account;
      

  7.   


    你用echo有输出,而且输出为空,当然就为空了。drupal有专门的调用js的函数drupal_add_js, 你为何不用呢?
      

  8.   

    drupal在国内的普及度本来就不高,何不到drupal.org的论坛去问问呢?
      

  9.   


    return 的是 $user 和 之前 用一句 echo '  <script type=javascript> alert("插入东西拉!");  </script>'; 应该没有什么关系或者是 return 后,进行 判断if (user_authenticate($name, $pass)) {
        //...
        cho '  <script type=javascript> alert("插入东西拉!");  </script>'; 
    } else {
        //..
    }
      

  10.   

    drupal_add_js(drupal_get_path('theme','XXX')."/js/XXX.js");