Buddypress未读邮件计数 - 实时更新?

时间:2011-09-22 23:28:36

标签: ajax 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秒轮询一次srver以提供实时通知,但当然这不会与我的自定义未读消息计数器进行交互。

任何想法的家伙?我真的可以使用帮助。

3 个答案:

答案 0 :(得分:5)

我已经解决了......

事实证明,buddypress已经为很多这些东西构建了ajax函数......

所以对于其他想要做同样事情的人......这是一个简单的例子,将'count'放在一个带有以下id的链接中。

  <a id="user-messages">

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

Buddypress'javascript然后为你做其余的事。简单!

Mana感谢您的建议。

答案 1 :(得分:2)

您可以setTimeout定期fire a request使用调用您messages_get_unread_count()的服务器并返回一个值。

然后根据返回的值,您可以使用更新的计数显示或隐藏<div id="message_count">

答案 2 :(得分:1)

你可以使用jQuery来调用一个单独的php文件。

jQuery.post('call.php',{action:“get”},function(data){

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

    });

本教程将引导您完成http://vavumi.com/?p=257