Несколько одинаковых флагов на странице. Одновременное обновление. Как сделать?

Главные вкладки

Аватар пользователя Koreychenko Koreychenko 3 июня 2013 в 7:11

Я могу вывести в разных местах страницы одинаковые флаги, например "Добавить в избранное". Пусть у меня будет несколько вьюх, в которых материалы будут частично дублироваться.

Если в одном из блоков кликнуть на флаг "Добавить в избранное", то он отработает и изменится на "Удалить из избранного", но только в одном блоке.

Как сделать, чтобы одинаковые флаги у одинаковых материалов обновлялись во всех местах на странице, где они есть?

Есть простой вариант - перезагружать через AJAX блоки целиком, но этот вариант мне не нравится в силу большого расхода трафика. Что посоветуете?

Комментарии

Аватар пользователя serega111 serega111 3 июня 2013 в 7:56

Я так понимаю, надпись в блоке меняется через ajax. Тогда может повесить свой ajax callback на форму и возвращать commands так, чтобы заменились все флаги во всех боках?

Аватар пользователя CSoft CSoft 3 июня 2013 в 15:31

Как вариант - делать замену через JQuery, ибо у флага есть такое вот событие:

$(document).bind('flagGlobalAfterLinkUpdate', function (event, data) {
  // Ваш код
});

Возможно, не самое лучшее решение, но просто оставлю его тут до кучи.

Аватар пользователя Koreychenko Koreychenko 3 июня 2013 в 19:13

"CSoft" wrote:
Как вариант - делать замену через JQuery, ибо у флага есть такое вот событие:

Да, тоже вдруг полез в инструкцию к модулю flag Smile

https://drupal.org/node/336122

Тогда стоит делать по нормальному, с использованием Drupal AJAX Framework.

А вообще, оттуда же есть ссылка на вот этот модуль.

Views Flag Refresh