Перейти к содержимому
Открыть в приложении

Удобный способ просмотра. Узнать больше.

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

Полноэкранное приложение на главном экране с push-уведомлениями, медалями и многим другим.

Чтобы установить это приложение на iOS и iPadOS
  1. Нажмите иконку «Поделиться» в Safari
  2. Прокрутите меню и нажмите На экран «Домой».
  3. Нажмите Добавить в правом верхнем углу.
Чтобы установить это приложение на Android
  1. Нажмите меню из трёх точек (⋮) в правом верхнем углу браузера.
  2. Нажмите Добавить на главный экран или Установить приложение.
  3. Подтвердите, нажав Установить.
Русский язык для Invision Community 5

Редирект на страницу IP.Content со вкладки главного меню

Добавил вкладку в верхнее меню стандартным способом.

Нужно, чтобы вкладка указывала на страницу

/index.php/page/%D0%BA%D0%BE%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B8.html

 

По умолчанию, вкладка указывает на страницу:

/index.php?app=quotations

 

Сайт в облаке IPS, есть доспут к хтакцесс. Прописал в хтакцесс

redirect /index.php?app=quotations /index.php/page/%D0%BA%D0%BE%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B8.html

 

- не помогло.

 

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

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

  • Автор

Что-нибудь типа такого для хтакцесс:

 

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.c\.a108\.net
RewriteRule ^(.*)$ http://c.a108.net/$1 [R=301,L]
RedirectPermanent / http://www.a108.net/index.php/calendar/3-%D0%B2%D0%B0%D0%B9%D1%88%D0%BD%D0%B0%D0%B2%D1%81%D0%BA%D0%B8%D0%B9-%D0%BA%D0%B0%D0%BB%D0%B5%D0%BD%D0%B4%D0%B0%D1%80%D1%8C/

  • Автор

Попробовал в globalTemplate заменить согласно рецепту:

 

<a href='{parse url="{$data['app_link']}" seotitle="{$data['app_seotitle']}" template="{$data['app_template']}" base="{$data['app_base']}"}' title='{parse expression="sprintf( $this->lang->words['go_to_prefix'], IPSLib::getAppTitle($data['app_dir']) )"}'>{IPSLib::getAppTitle($data['app_dir'])}</a>

на

 

<if test="$data[app_dir]=='quotations'"><a href='http://www.site.ru/index.php/page/%D0%BA%D0%BE%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B8.html' title='{$this->lang->words['blog_display_title']}'>{$this->lang->words['blog_display_title']}</a><else />
<a href='{parse url="{$data['app_link']}" seotitle="{$data['app_seotitle']}" template="{$data['app_template']}" base="{$data['app_base']}"}' title='{parse expression="sprintf( $this->lang->words['go_to_prefix'], IPSLib::getAppTitle($data['app_dir']) )"}'>{IPSLib::getAppTitle($data['app_dir'])}</a></if>	

- не помогло

 

Что еще можно сделать? Просто прописывать код ссылки в globaltemplate не хочу, так как хочу оставить дефолтную вкладку. Неужели придется руками прописывать в шаблоне код кнопки с правильной ссылкой?!

  • Автор

Вот это не вариант, так как хочется оставить скрытие вкладки и страницы для определенных групп (стандартный функционал).

Добавил вкладку в верхнее меню стандартным способом.

Каким стандартным? Что мешает тем же стандартным способом прописать ей адрес?

  • Автор

Иммется в виду, что сейчас добавил кнопку через ACP без правки шаблонов, в меню Управление приложениями и модулями. Также кнопку можно добавить в IP.Content. При таком стандартном добавлении есть очень полезные опции скрытия или показа вкладки определенным группам, но, к сожалению, нельзя прописать абсолютный url. Как прописать абсолютный url или сделать редирект?

 

Вот так в IP.Content можно добавить кнопку, но поля для вставки абсолютного url нет. Возможности сильно ограничены:

 

ykSgP.jpg

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

Тогда через шаблон с добавлением условия.

  • Автор

Напомните условие, если не сложно.

<if test="IPSMember::isInGroup($this->memberData, array(1,2))">
   Блок для группы 1 или 2
</if>

  • Автор

Еще нужно придумать, как класс прописывать "left active", если вкладка выбрана. Вот так не получается.

 

						<if test="showingapp:|:$data['app_show']">
									{parse variable="appActive" default="" oncondition="$data['app_active']" value="active"}
									<li class='left {parse variable="appActive"}'><a href='/index.php/page/котировки.html' title="Перейти в раздел 'Котировки'">Котировки</a></li>
					</if>

Я что-то не понимаю, почему вы не используете встроенный в IP.Content менеджер главного меню, а выдумываете какие-то костыли?

Ha2NTYnH.jpg

  • Автор

Потому что ссылку надо повесить на вкладку не такую, какую можно в этом менеджере задать. В менеджере ссылки на аддоны идут, а нужно сделать ссылку на страницу *.html в IP.Content, сделанную мной.

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

$data - переменная цикла. Пользовательской вкладке нечего делать в цикле, значит и $data там будет не доступна (разве что вкладка находится в цикле под условием, что она относится к конкретному приложению).

 

<if test="IPSMember::isInGroup($this->memberData, array(1,2))">
   {parse variable="appActive" default="" oncondition="IPS_APP_COMPONENT == 'quotations'" value="active"}
   <li class='left {parse variable="appActive"}'><a href='/index.php/page/котировки.html' title="Перейти в раздел 'Котировки'">Котировки</a></li>
</if>

Код должен быть после цикла

Если же в цикле, то перечитываем свой третий пост с рецептом.

  • Автор

Ну, или редирект где-то прописать, как, например, для ссылки: http://www.a108.net/index.php?app=secrets

  • Автор

$data - переменная цикла. Пользовательской вкладке нечего делать в цикле, значит и $data там будет не доступна (разве что вкладка находится в цикле под условием, что она относится к конкретному приложению).

 

{parse variable="appActive" default="" oncondition="IPS_APP_COMPONENT == 'quotations'" value="active"}
<li class='left {parse variable="appActive"}'><a href='/index.php/page/котировки.html' title="Перейти в раздел 'Котировки'">Котировки</a></li>

 

Я удалил вкладку quotations из меню создания вкладок в ACP и вставляю код ссылки непосредственно в global template.

 

Мне кажется, что вот это getCurrentApplication() == 'quotations'" - работать не будет.

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

Потому что ссылку надо повесить на вкладку не такую, какую можно в этом менеджере задать. В менеджере ссылки на аддоны идут, а нужно сделать ссылку на страницу *.html в IP.Content, сделанную мной.

В менеджере на кастомную вкладку вешается любая ссылка, никаких ограничений нет.

Ha2NTYnJ.jpg

 

P.S. Ваш "стандартный" способ создания вкладки, с помощью меню "Приложения", это и есть костыль, при наличии контента.

 

P.P.S. Кроме этого, там вложенные меню можно делать, правда только одноуровневые. Это на случай, если не знаете.

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

Аккаунт

Навигация

Поиск

Поиск

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

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