Перейти к публикации
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[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>

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

Сейчас на странице 0

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.