2012-02-19 62 views
0

我想创建对于每个已成功注册了新成员弹出欢迎信息。PHPBB新的成功的会员注册弹出窗口

但我有问题找到我应该把代码放在哪里,我检查了ucp_register.html,但我不认为这是会员成功注册后的显示内容,任何人都可以帮助我吗?感谢

+0

当用户注册时,iirc会查看trigger_error()的输出。由该函数输出的模板文件是message_body.html iirc,但由于它在其他地方使用,因此您需要在显示弹出窗口之前检查它们是否在注册模块中。如果您想在启动帐户后显示某些内容,情况也会如此。 – imkingdavid 2012-02-19 21:09:50

+0

为什么不使用jQuery UI对话框来完成此操作。您可以随时换脚本标签trigger_error()内如'$消息=''; trigger_error($ message);'和overall_header.html中有'​​' – 2012-02-23 16:07:09

回答

0

这将可能是一个更可靠的解决方案,以显示在用户第一次被记录在作为一个激活的用户的弹出 - 登记后它们可能不被激活,或者它们可以后立即关闭浏览器窗口注册。

这样做将是user_JBL_seen_message INT添加一列(比如说,到phpbb_users数据库中的表,然后修改的functions.php检查该列的方式:

在functions.php中,发现:

// The following assigns all _common_ variables that may be used at any point in a template. 

之前,添加:

if($user->data['is_registered'] && $user->data['is_active'] && !$user->data['is_bot']) 
{ 
    if(isset($user->data['user_JBL_seen_message']) && !$user->data['user_JBL_seen_message'])) 
    { 
     $showPopup = true; 
     $sql = 'UPDATE ' . USERS_TABLE . ' SET user_JBL_seen_message = 1 
      WHERE user_id = ' . (int)$user->data['user_id']; 
     if (!$result = $db->sql_query($sql)) 
     { 
      return false; 
     } 
    } 
} 

然后,找到:

$template->assign_vars(array(

后,加入:

'JBL_POPUP'  => $showPopup, 

然后,您可以在弹出的HTML代码添加到您的overall_header.html模板文件,在适当情况下...

<!-- IF JBL_POPUP --> 
    .... your HTML popup code here..... 

<!-- END IF --> 

如果你不想现有用户查看弹出窗口,然后用1填充新列。

我也同意达米安的建议使用jQuery UI的对话,而不是一个弹出式 - 大多数用户的浏览器会阻止弹出窗口。但是,在noconflict模式下使用jQuery可以避免与其他mod的冲突。