2012-02-19 53 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的衝突。