Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
fdeadalf

Скрытие категорий в зависимости от выбранного языка

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

12/14/12 20:22 (изменено)

Уважаемые знатоки!

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

<script type='text/javascript'>
(function() {
   var hidden  = [1,2]; // Закрытые по умолчанию категории
   var cookie  = ipb.Cookie.get('toggleCats') || '';
   var cookies = cookie.split(',');

   hidden.each(function(id){
       if (cookies.indexOf(id) == -1) {
           cookie += ',' + id;
       }
   });

   cookie = "," + cookie.split(',').uniq().join(',') + ",";

   ipb.Cookie.set('toggleCats', cookie, 1);
})();
</script>

 

Соответственно что бы при выборе к примеру английского языка он скрывал категории 1,2,3 и открывал категории 4,5,6, а при выбранном Русском языке скрывал 4,5,6 и открывал 1,2,3.

Изменено пользователем fdeadalf

Поделиться сообщением


Ссылка на сообщение

var lang = parseInt({$this->memberData['language']});

а дальше уже дело техники. Используя переменную lang определяете какие категории вам нужно закрыть или открыть.

Поделиться сообщением


Ссылка на сообщение
12/15/12 08:52 (изменено)

Могли бы написать готовый пример?

Изменено пользователем fdeadalf

Поделиться сообщением


Ссылка на сообщение

Какой функцией обновлять Coockies? То есть каким образом обновить/удалить уже существующую куку toggleCats?

Поделиться сообщением


Ссылка на сообщение

Какой функцией обновлять Coockies?

Выше в скрипте можно увидеть, особо даже не разбираясь в js-е. Хотя если вы сами не догадались это сделать, врядли имя функции вам что-то даст - ipb.Cookie.set

Поделиться сообщением


Ссылка на сообщение

Вот что у меня получилось!

 

<script type='text/javascript'>
(function() {
   var hidden_en  = [1]
   var hidden_ru  = [2,3,4]
   var cookie  = ipb.Cookie.get('toggleCats') || '';
   var cookies = cookie.split(',');
   var lang = parseInt({$this->memberData['language']});

   if(lang == 1)
   {
   hidden_en.each(function(id){
       if (cookies.indexOf(id) == -1) {
           cookie += ',' + id;
       }
   });

   cookie = "," + cookie.split(',').uniq().join(',') + ",";
   ipb.Cookie.set('toggleCats', cookie, 1);
   } 
   if(lang == 2)
   {
   hidden_ru.each(function(id){
       if (cookies.indexOf(id) == -1) {
           cookie += ',' + id;
       }
   });

   cookie = "," + cookie.split(',').uniq().join(',') + ",";
   ipb.Cookie.set('toggleCats', cookie, 1);
   } 


})();

</script>

 

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

Поделиться сообщением


Ссылка на сообщение
12/16/12 14:48 (изменено)

После смены 1 раз на язык к примеру Английский появляется кука с категорией 1. При смене на русский, в эту же кук добавляются категории 2,3,4. И по идее категория 1 должна удалятся из куков и оставаться только 2,3,4, но получается, что при дальнейшем использовании любого из языков в куках запись 1,2,3,4, то есть всех категорий которые были записаны в куки при сменах языка. Так вот я не пойму как сделать, так что бы при каждом новом назначении куков, старые значения куков удалялись или заменялись новыми удалив старые!?

 

P.S. Я понял, что ipb.Cookie.set только вот как и где её применить в коде так что бы она заменяла предыдущие значения в куках?

Изменено пользователем fdeadalf

Поделиться сообщением


Ссылка на сообщение
12/16/12 16:14 (изменено)

Все, сделал сам. Спасибо.

Изменено пользователем fdeadalf

Поделиться сообщением


Ссылка на сообщение

Все, сделал сам. Спасибо.

 

Как делал ? может поделитесь ?!) меня тоже нужен точно такое

Поделиться сообщением


Ссылка на сообщение

Выдно форумчани после нового года отдыхают ))

Поделиться сообщением


Ссылка на сообщение

Все, сделал сам. Спасибо.

Вы понимаете что под этим у вас нормально не будет работать свертывание категорий? Если юзер свернет себе категорию, то при обновлении страницы его ид слетят, и в место них запишутся ваши.

Поделиться сообщением


Ссылка на сообщение

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

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...