{favorite-count} без обновления страницы

{favorite-count} без обновления страницы

Хак позволит реализовать добавление в избранное через Ajax, а не перезагрузку страницы. То есть пользователь жмет добавить в избранное и {favorite-count} - количество новостей в избранном, меняется на лету.


Установка:
1. Открыть engine/classes/js/dle_js.js и найти:
function doFavorites(a,c,b){ShowLoading("");$.get(dle_root+"engine/ajax/favorites.php",{fav_id:a,action:c,skin:dle_skin,alert:b,user_hash:dle_login_hash},function(c){HideLoading("");b?DLEalert(c,dle_info):$("#fav-id-"+a).html(c);});return!1}

Заменить на:
function doFavorites(a,c,b){var count=parseInt($("#favorite_count").text()),b=null;ShowLoading("");$.get(dle_root+"engine/ajax/favorites.php",{fav_id:a,action:c,skin:dle_skin,alert:b,user_hash:dle_login_hash},function(d){HideLoading("");b?DLEalert(d,dle_info):$("#fav-id-"+a).html(d);if(c=='plus'){count=$("#favorite_count").text(count+1);}else if(c=='minus'){$("#favorite_count").text(count-1);}});return!1}

2. В нужное место шаблона добавить:
<div id="favorite_count">{favorite-count}</div>

Готово!

У этого способа есть маленький недочет. Если в избранном еще нет вкладок и если добавить первую, то {favorite-count} обновится только после перезагрузки страницы. После того, как в избранное попадает хоть дна новость - все будет нормально и счетчик будет обновляться без перезагрузки.
 
Версия DLE: 12.0
Автор: vitnet
Источник
Информация
Посетители, находящиеся в группе Гость, не могут оставлять комментарии к данной публикации.