Опубликовано: 8 сентября 201411 г Добавил вкладку в верхнее меню стандартным способом.Нужно, чтобы вкладка указывала на страницу /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 или хтакцесса, не прибегая к настройке апача, нгинкса и прочей туманной для меня области?
Опубликовано: 8 сентября 201411 г Вам кажется. Это не вкладка а имя текущего текущее приложение (app=%appname%). Только судя по всему имя у приложения все же secrets. Ну, или редирект где-то прописать, как, например, для ссылки:Добавить после RewriteEngine OnRewriteCond %{QUERY_STRING} =app=secretsRewriteRule ^index\.php$ /index.php/page/котировки.html? [R=301,L] htaccess сохранить в utf-8
Опубликовано: 8 сентября 201411 г Автор Сделал так: 1. Добавил в ACP приложение и указал директорию get_quotations. 2. В index.php прописал: if (strpos($_SERVER['REQUEST_URI'], 'index.php?app=get_quotations') !== false) { header('Location: /index.php/page/котировки.html');exit; } Редиректит, но не удалось сделать для активной вкладки class='left active' Можно как-то назначить класс? Изменено 8 сентября 201411 г пользователем Zero108
Опубликовано: 8 сентября 201411 г Нахрен херней занимаетесь? Выше я написал как сделать условие для текущего приложения: {parse variable="appActive" default="" oncondition="IPS_APP_COMPONENT == 'get_quotations'" value="active"} <li class='left {parse variable="appActive"}'> или <li class='left <if test="IPS_APP_COMPONENT == 'get_quotations'">active</if>'>
Опубликовано: 8 сентября 201411 г Автор И вкладка активной не становится. Активная по прежнему вкладка первой страницы сайта, которой является IP.Content.
Опубликовано: 8 сентября 201411 г Автор Нахрен херней занимаетесь? Выше я написал как сделать условие для текущего приложения: {parse variable="appActive" default="" oncondition="IPS_APP_COMPONENT == 'get_quotations'" value="active"} <li class='left {parse variable="appActive"}'> или <li class='left <if test="IPS_APP_COMPONENT == 'get_quotations'">active</if>'> щас попробую
Опубликовано: 8 сентября 201411 г Автор Эти варианты не работают. Изменено 8 сентября 201411 г пользователем Zero108
Опубликовано: 8 сентября 201411 г Вообще-то это страница ип.контента, а значит текущее приложение ип.контент. Не достаточно будет добавить условие для выделения одной вкладки, надо еще убрать активность с ип.контента. А это целая система костылей. Либо активны обе вкладки, либо никак <li class='left <if test="strpos(urldecode($_SERVER['REQUEST_URI']), '/index.php/page/котировки.html') !== false">active</if>'>
Опубликовано: 8 сентября 201411 г Автор Оставлю пока "обе активны". Спасибо. Изменено 8 сентября 201411 г пользователем Zero108
Опубликовано: 11 сентября 201411 г Оставлю пока "обе активны". Спасибо. Вам Dmitriy427 в 16 посте написал решение. Создаете новую вкладку и заполняете поля
Опубликовано: 11 сентября 201411 г Автор Создаете новую вкладку и заполняете поля Попробовал. Страничка html создана в контенте. Добавил вкладку, как посоветовал Dmitriy427, сделал ссылку на этот html. Метод siv1987 лучше, потому что в этом скине активная вкладка выделяется по-другому (отличается от неактивной, выделяется классом 'left active'), а стандартным способом, предложенным Dmitriy427, не выделяется, хотя, ссылка работает. Спасибо, что подсказали. Изменено 11 сентября 201411 г пользователем Zero108
Опубликовано: 11 сентября 201411 г Попробовал. Страничка html создана в контенте. Добавил вкладку, как посоветовал Dmitriy427, сделал ссылку на этот html. Метод siv1987 лучше, потому что в этом скине активная вкладка выделяется по-другому (отличается от неактивной, выделяется классном 'left active'), а стандартным способом, предложенным Dmitriy427, не выделяется, хотя, ссылка работает. Спасибо, что подсказали.Что бы кастомная вкладка выделялась, как вкладка приложения, нужно указать атрибут для ссылки "app=ccs", например. Можно сделать выделение и по значению переменной $_SERVER['request_uri'], но это тоже будет связано с правкой шаблона.
Опубликовано: 11 сентября 201411 г Автор А чем этот метод тогда проще метода sive1987, раз все равно нужно в шаблон лезть руками? Можно ли будет сделать для страницы html, созданной в ip.content, независимое выделение вкладки? Изменено 11 сентября 201411 г пользователем Zero108
Опубликовано: 11 сентября 201411 г Метод проще тем, что не нужно править шаблоны, если вас устраивает то, что активны две вкладки. Правка для того, чтобы была активна только кастомная вкладка. Шаблон "primary_navigation", группа шаблонов skin_ccs_global, найти: if( substr( $menuItem['menu_position'], 0, strlen($data['app_dir']) ) == $data['app_dir'] AND ( !$menuItem['menu_permissions'] OR !IPSMember::isInGroup( $this->memberData, explode( ',', $menuItem['menu_permissions'] ) ) ) )Заменить на: if( IPSText::UNhtmlspecialchars($menuItem['menu_url']) == 'http://mysite.mu/index.php/page/котировки.html' AND urldecode($_SERVER['REQUEST_URI']) == '/index.php/page/котировки.html' ) { $tabIsActive = true; } elseif( urldecode($_SERVER['REQUEST_URI']) == '/index.php/page/котировки.html' ) { $tabIsActive = false; } elseif( substr( $menuItem['menu_position'], 0, strlen($data['app_dir']) ) == $data['app_dir'] AND ( !$menuItem['menu_permissions'] OR !IPSMember::isInGroup( $this->memberData, explode( ',', $menuItem['menu_permissions'] ) ) ) ) Найти: if( !in_array( $menuItem['menu_id'], $this->menuDrawn ) AND ( !$menuItem['menu_permissions'] OR !IPSMember::isInGroup( $this->memberData, explode( ',', $menuItem['menu_permissions'] ) ) ) )Заменить на: if( IPSText::UNhtmlspecialchars($menuItem['menu_url']) == 'http://mysite.mu/index.php/page/котировки.html' AND urldecode($_SERVER['REQUEST_URI']) == '/index.php/page/котировки.html' ) { $tabIsActive = true; } elseif( urldecode($_SERVER['REQUEST_URI']) == '/index.php/page/котировки.html' ) { $tabIsActive = false; } elseif( !in_array( $menuItem['menu_id'], $this->menuDrawn ) AND ( !$menuItem['menu_permissions'] OR !IPSMember::isInGroup( $this->memberData, explode( ',', $menuItem['menu_permissions'] ) ) ) ) P.S. Код отредактировал, добавил вторую замену. Не знаю, что там с у вас с ЧПУ, поэтому ссылки и uri поправьте сами.
Опубликовано: 12 сентября 201411 г Автор Попробую Изменено 12 сентября 201411 г пользователем Zero108
Добавил вкладку в верхнее меню стандартным способом.
Нужно, чтобы вкладка указывала на страницу
/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 или хтакцесса, не прибегая к настройке апача, нгинкса и прочей туманной для меня области?