Buddypress Непрочитанное количество сообщений - живое обновление? - PullRequest
4 голосов
/ 23 сентября 2011

Я использую следующий код для отображения количества непрочитанных сообщений вошедших в систему пользователей в шаблоне.

  <?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 секунд, чтобы предоставить живые уведомления, но, конечно, это не взаимодействует с моим пользовательским счетчиком непрочитанных сообщений.

Есть идеи, ребята? Я мог бы действительно использовать помощь.

Ответы [ 3 ]

5 голосов
/ 23 сентября 2011

Я разобрался ...

Оказывается, что buddypress имеет встроенные функции ajax для многих этих вещей ...

Так что для всех, кто хочет сделать то же самое ... Это простой случай, когда 'count' помещается внутри ссылки со следующим идентификатором.

  <a id="user-messages">

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

Затем Buddypress 'сделает все остальное за вас. Простой!

Мана, спасибо за ваше предложение.

2 голосов
/ 23 сентября 2011

Вы можете использовать setTimeout для периодического запуска запроса на сервер, который вызывает ваш messages_get_unread_count() и возвращает значение.

Затем, основываясь на возвращенном значении, вы можете показать или скрыть свой <div id="message_count"> с обновленным счетчиком.

1 голос
/ 22 февраля 2012

Вы можете сделать это с помощью jQuery, который вызывает отдельный php-файл следующим образом.

jQuery.post ('call.php', {action: "get"}, функция (data) {

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

    });

Из этого туториала Вы узнаете, как это сделать http://vavumi.com/?p=257

...