2011-09-22 55 views
4

我正在使用以下代碼在模板中顯示登錄的用戶未讀消息數。Buddypress未讀消息數 - 實時更新?

<?php if (messages_get_unread_count() != 0) { ?> 

<div id="message_count"> 
     <div class="countspan"> 
    <?php echo messages_get_unread_count(); ?> 
     </div> 
    </div> 
    <?php } ?> 

這很好用,但它需要頁面刷新來更新。由於我在整個網站中大量使用ajax驅動的導航以及其中的自定義應用程序,因此這不是一個令人滿意的解決方案。

如何使計數器自動更新?

我玩過'lvive notifications'插件,它每10秒輪詢sver以提供實時通知,但當然這不會與我自定義的未讀消息計數器進行交互。

任何想法傢伙?我真的可以使用幫助。

回答

5

我已經工作了......

原來的BuddyPress已經內置AJAX功能很多這方面的東西...

因此,對於任何人想要做同樣的事情。 ...這是一個簡單的例子,把'count'放在一個帶有以下id的鏈接中。

<a id="user-messages"> 

<span><?php echo messages_get_unread_count(); ?></span> 
</a> 

Buddypress'javascript然後爲你休息。簡單!

法力感謝您的建議。

2

您可以使用setTimeout定期fire a request到調用您的messages_get_unread_count()並返回一個值的服務器。

然後根據返回的值,您可以顯示或隱藏您的<div id="message_count">與更新的計數。

1

你可以用jQuery來調用獨立的php文件。

jQuery.post( 'call.php',{行動: 「得到」},功能(數據){

 jQuery('#content').append(data); 

    }); 

本教程將引導你通過它http://vavumi.com/?p=257