Перейти к содержимому
Русский язык для Invision Community 5

Изменить фильтр форумов

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

 

post-32932-0-79993400-1426167766_thumb.png

 

Пункт "Фильтровать по форуму" неудобен, так как чтобы исключить один форум, нужно поочередно выделять или не выделять форумы в списке.

 

Проанализировал POST запрос, отправляемый с формы "Фильтровать по форуму". Запрос отправляется на url:

 

_http://сайт.ru/forum/index.php?app=core&module=ajax&section=search&do=saveForumsVncFilter

 

Отправляются следующие параметры:

secure_key:e5004514a3c2dd44df05aded5b02e5b2

saveVncFilters:14,25,26,13,21,22,8,20,19,16,18,

 

Что мне дальше делать с этим? Как всё это дело вставить в шаблон?

Рекомендованные сообщения

Там аякс запрос, просто впихнуть ссылку не достаточно. Нужно аналогично через аякс отправить запрос с предопределенными параметрами и после получения ответа обновить текущую страницу.

<a href="#" id="vncFilters">Исключить форумы</a>

<script>
$('vncFilters').observe('click', function(e){
Event.stop(e);
var _url = ipb.vars['base_url'] + 'app=core&module=ajax&section=search&do=saveForumsVncFilter&saveVncFilters=14,25,26,13,21,22,8,20,19,16,18' + '&secure_key='+ipb.vars['secure_hash'];
new Ajax.Request(_url, {
	method: 'get',
	onSuccess: function(t)
	{
		window.location = window.location;
		window.location.reload(true);
	}
});
});
</script>

  • Автор

siv1987, спасибо! Работает.

 

А как сделать чтобы при повторном нажатии действие отменялось (возвращалось)? И как сделать чтобы ссылка отображалась, что она активна (подсвечивалась).

А как сделать чтобы при повторном нажатии действие отменялось (возвращалось)?

В качестве метке можно использовать vncPrefs из кеша пользователя. $vncPrefs['forums']['vnc_forum_filter'] не объявлен или имеет пустое значение когда выбраны все форумы.

 

<php>
$vncPrefs = IPSMember::getFromMemberCache( $this->memberData, 'vncPrefs' );
$vncPrefs = (! empty($vncPrefs['forums']['vnc_forum_filter'])) ? $vncPrefs['forums']['vnc_forum_filter'] : '';
</php>

 

var vncPrefs   = '{$vncPrefs}';
var vncFilters = vncPrefs ? 'all' : '14,25,26,13,21,22,8,20,19,16,18';
var _url = ipb.vars['base_url'] + 'app=core&module=ajax&section=search&do=saveForumsVncFilter&saveVncFilters=' + vncFilters + '&secure_key='+ipb.vars['secure_hash'];

  • 1 год спустя...

У меня что-то не работает этот метод... Или я не очень понял, как он работает :)

 

Это улучшение пункта "Фильтровать по форуму" что-ли?

Стартпост читали?

 

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

Создайте аккаунт или войдите в него для комментирования

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.