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

[3.4.x] Селектор секции быстрого поиска

Вроде все есть в описании... Но суть такова. Как скрыть от определенных групп некоторые приложения в селекторе быстрого поиска?

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

skin_global - quickSearch

 

Найти

<li class='app'><label for='s_{$app}' title='{IPSLib::getAppTitle( $app )}'>

Заменить на

<li class='app <if test="IPSMember::isInGroup($this->memberData, array(1,2,4)) AND in_array( $app, array( 'app1','app2','app3' ) )">hide</if>'><label for='s_{$app}' title='{IPSLib::getAppTitle( $app )}'>

array(1,2,4) - группы указать свои нужные.

array( 'app1','app2','app3' ) - приложения

Изменено пользователем newbie
Указал шаблон

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

Спустя два года пришлось вернуться к вопросу :)

Версия 3.4.6, такой строки нету.

 <li class='app'><label for='s_{$app}' title='{IPSLib::getAppTitle( $app )}'>

 

Будьте добры, подскажите, где её искать? (и на что теперь заменить?)

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

Версия 3.4.6, такой строки нету.

Есть такая строка. Выглядит немного иначе (написана в 2 строки)
							<li class='app'>
							<label for='s_{$app}' title='{IPSLib::getAppTitle( $app )}'>

(и на что теперь заменить?)
На то, что указано во 2-ом сообщении темы.
  • Автор

Так же забыл об этом нужном хуке. Простите за нубство, но как узнать ID ('app1','app2','app3') своих приложений? :unsure:

Так же забыл об этом нужном хуке. Простите за нубство, но как узнать ID ('app1','app2','app3') своих приложений?

Это названия директорий (папок), в которых расположены приложения. Можете в АЦ посмотреть, кликнув на карандаш напротив нужного приложения. Можете с публичной стороны взять директорию из адресной строки.
  • Автор

Найти не удалось :mellow:

В адресной строке так же /index.php/files/ , /index.php/members/ и т.п.

 

И в системе, и в IP.Content отключать Use .htaccess mod_rewrite пробовал - не помогло.

Найти не удалось

Значение поля Application Directory

 

В адресной строке так же /index.php/files/ , /index.php/members/ и т.п.

files, members

  • Автор

Всего то :) Я подумал, что у них так же, как и у групп есть свой порядковый номер. Спасибо!

  • Автор

Не работает :(

 

<li class='app'>
							<label for='s_{$app}' title='{IPSLib::getAppTitle( $app )}'>

заменил на

<li class='app <if test="IPSMember::isInGroup($this->memberData, array(3,4)) AND in_array( $app, array( 'ccs','forums','gallery','blogs','files' ) )">hide</if>'><label for='s_{$app}' title='{IPSLib::getAppTitle( $app )}'>

и для гостей, и для администратора - так же отображается, как и было. т.е. никаких изменений не произошло. Скины перекешировал.

и для гостей, и для администратора - так же отображается, как и было. т.е. никаких изменений не произошло. Скины перекешировал.

IPSMember::isInGroup($this->memberData, array(3,4))

Здесь нет группы "Гости"

in_array( $app, array( 'ccs','forums','gallery','blogs','files' ) )

1. Для Форумов нужно править код выше

2. files - это что за приложение? Должно быть 'downloads'. А это я немного обманул. Все-таки лучше смотреть приложение по "Значение поля Application Directory".

 

Еще, как вариант реализации, в конец шаблона добавить

<if test="IPSMember::isInGroup($this->memberData, array(1,2,3))">
<script type='text/javascript'>
 var apps = ['forums', 'members', 'downloads']; // Перечисляем директории приложений, которые будут удалены
 apps.forEach(function(app) {
   if ($('s_' + app)) {
     $('s_' + app).up('li').remove();
   }
 });
</script>
</if>

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

Аккаунт

Навигация

Поиск

Поиск

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

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