Перейти к публикации
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.

Редирект на страницу 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. Кроме этого, там вложенные меню можно делать, правда только одноуровневые. Это на случай, если не знаете.

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

Сейчас на странице 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.