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

Редирект на страницу 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 не хочу, так как хочу оставить дефолтную вкладку. Неужели придется руками прописывать в шаблоне код кнопки с правильной ссылкой?!

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


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

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

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


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

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

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

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


Ссылка на сообщение
09/08/14 14:54 (изменено)

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

 

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

 

ykSgP.jpg

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

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


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

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

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


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

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

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


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

  • Upvote 1

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


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

Еще нужно придумать, как класс прописывать "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

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


Ссылка на сообщение
09/08/14 20:37 (изменено)

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

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


Ссылка на сообщение
09/08/14 20:42 (изменено)

$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

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

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

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