Zero108 Posted September 8, 2014 Share Posted September 8, 2014 Добавил вкладку в верхнее меню стандартным способом.Нужно, чтобы вкладка указывала на страницу /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 или хтакцесса, не прибегая к настройке апача, нгинкса и прочей туманной для меня области? Link to comment Share on other sites More sharing options...
Zero108 Posted September 8, 2014 Author Share Posted September 8, 2014 Что-нибудь типа такого для хтакцесс: 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/ Link to comment Share on other sites More sharing options...
Zero108 Posted September 8, 2014 Author Share Posted September 8, 2014 Попробовал в 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 не хочу, так как хочу оставить дефолтную вкладку. Неужели придется руками прописывать в шаблоне код кнопки с правильной ссылкой?! Link to comment Share on other sites More sharing options...
Zero108 Posted September 8, 2014 Author Share Posted September 8, 2014 Вот это не вариант, так как хочется оставить скрытие вкладки и страницы для определенных групп (стандартный функционал). Link to comment Share on other sites More sharing options...
siv1987 Posted September 8, 2014 Share Posted September 8, 2014 Добавил вкладку в верхнее меню стандартным способом.Каким стандартным? Что мешает тем же стандартным способом прописать ей адрес? Link to comment Share on other sites More sharing options...
Zero108 Posted September 8, 2014 Author Share Posted September 8, 2014 (edited) Иммется в виду, что сейчас добавил кнопку через ACP без правки шаблонов, в меню Управление приложениями и модулями. Также кнопку можно добавить в IP.Content. При таком стандартном добавлении есть очень полезные опции скрытия или показа вкладки определенным группам, но, к сожалению, нельзя прописать абсолютный url. Как прописать абсолютный url или сделать редирект? Вот так в IP.Content можно добавить кнопку, но поля для вставки абсолютного url нет. Возможности сильно ограничены: Edited September 8, 2014 by Zero108 Link to comment Share on other sites More sharing options...
siv1987 Posted September 8, 2014 Share Posted September 8, 2014 Тогда через шаблон с добавлением условия. Link to comment Share on other sites More sharing options...
Zero108 Posted September 8, 2014 Author Share Posted September 8, 2014 Напомните условие, если не сложно. Link to comment Share on other sites More sharing options...
siv1987 Posted September 8, 2014 Share Posted September 8, 2014 <if test="IPSMember::isInGroup($this->memberData, array(1,2))"> Блок для группы 1 или 2 </if> 1 Link to comment Share on other sites More sharing options...
Zero108 Posted September 8, 2014 Author Share Posted September 8, 2014 Еще нужно придумать, как класс прописывать "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> Link to comment Share on other sites More sharing options...
Dmitriy427 Posted September 8, 2014 Share Posted September 8, 2014 Я что-то не понимаю, почему вы не используете встроенный в IP.Content менеджер главного меню, а выдумываете какие-то костыли? Link to comment Share on other sites More sharing options...
Zero108 Posted September 8, 2014 Author Share Posted September 8, 2014 (edited) Потому что ссылку надо повесить на вкладку не такую, какую можно в этом менеджере задать. В менеджере ссылки на аддоны идут, а нужно сделать ссылку на страницу *.html в IP.Content, сделанную мной. Edited September 8, 2014 by Zero108 Link to comment Share on other sites More sharing options...
siv1987 Posted September 8, 2014 Share Posted September 8, 2014 $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> Код должен быть после цикла Если же в цикле, то перечитываем свой третий пост с рецептом. Link to comment Share on other sites More sharing options...
Zero108 Posted September 8, 2014 Author Share Posted September 8, 2014 Ну, или редирект где-то прописать, как, например, для ссылки: http://www.a108.net/index.php?app=secrets Link to comment Share on other sites More sharing options...
Zero108 Posted September 8, 2014 Author Share Posted September 8, 2014 (edited) $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'" - работать не будет. Edited September 8, 2014 by Zero108 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now