Форум русской поддержки Joomla!® CMS
09.12.2016, 02:05:40 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Как вырезать часть url?

 (Прочитано 600 раз)
0 Пользователей и 1 Гость смотрят эту тему.
alexshab
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 53


« : 29.06.2015, 13:49:33 »

Доброго времени суток?

Есть проблема с одним расширением - JA K2 Filter.
Заметил, что если из url, который он генерирует, убрать "&tmpl=component", то страница отображается корректно.
т.е
/jak2filter?category_id=1&lang=ru&limit=4&ordering=alpha&tmpl=component&xf_4=1&start=8
- не работает
/jak2filter?category_id=1&lang=ru&limit=4&ordering=alpha&xf_4=1&start=8
- работает
Вот и появилась задача вырезать эту часть из url.

Если решать через php, то как вырезать я представляю
Код:
$url = JFactory::getURI();
$url = rtrim( $url , '&tmpl=component');
но, как записать $url в думлу не знаю.


Пробовал решить через .htaccess, но что-то делаю не так.
Вот правило, которое я добавил после RewriteEngine On:

Код:
RewriteRule ^jak2filter(.*)&tmpl=component(.*)$ jak2filter$1$2 [R=301,L]
но, оно почему-то не работает, &tmpl=component остается в строке.

Пробовал найти в компоненте, место где вставляется это выражение - "&tmpl=component", не нашел. Возможно оно добавляется не в нем.

Может кто-то может помочь решить эту задачу?
Записан
robert
Профи
********

Репутация: +344/-11
Offline Offline

Пол: Мужской
Сообщений: 3591


« Ответ #1 : 29.06.2015, 18:19:19 »

url, наверное, для вывода в модальном окне. C помощью файлового менеджера ищите "tmpl=component", скорее всего, в папке views (компонент) или tpl (модуль).
Записан
alexshab
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 53


« Ответ #2 : 29.06.2015, 19:24:02 »

Я искал с помощью тоталкоммандера "tmpl=component" во всех папках фильтра: компонете, модуле и плагие. И кое-что находил, в т.ч. в его скрипте. Пробовал комментировать те строки. Но "tmpl=component" все равно где-то добавляется.
В скрипте, этот фрагмент упоминается единственный раз, и то, насколько я понимаю вырезается.
Код:
params = params.replace('&tmpl=component', '');
Еще было в папке модуля фильтра - файле helper.php, там я удалил доклеивание.
Код:
//$url = 'index.php?option=com_jak2filter&view=suggestions&m_id='.$this->module->id.'&xf_id='.$field->id.'&tmpl=component';
$url = 'index.php?option=com_jak2filter&view=suggestions&m_id='.$this->module->id.'&xf_id='.$field->id;
Были еще в компоненте в файлах view.html.php и view.raw.php, но, думаю, они из другой области, но и там, на всякий случай убрал.
Код:
/*$addLink = JRoute::_('index.php?option=com_k2&view=item&task=add&tmpl=component');*/
$addLink = JRoute::_('index.php?option=com_k2&view=item&task=add');

Кроме файлов фильтра, код "tmpl=component" много раз встречается и в других компонентах.

P.S.
Перерыл все папки. Не трогал только VirtueMart и sh404. Везде поудалял или покометрировал. Все равно где-то добавляется в URL.
Я еще подумал, что удалять в других компонентах рискованно. Что лучше всего аккуратно вырезать через .htaccess только в тех урлах, которые начинаются фильтром.

Не могу понять, почему не работает правило. Уже упростил по максимуму, что бы вырезало хотябы слово "component"
RewriteRule ^(.*)component(.*)$ $1$2 [R=301,L]
Не вырезает.
Либо в правиле ошибка. Либо ему мешают другие правила из .htaccess
Я в этом не силен. Может есть специалисты?
« Последнее редактирование: 30.06.2015, 10:13:22 от alexshab » Записан
alexshab
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 53


« Ответ #3 : 30.06.2015, 16:25:02 »

В целом проблему решил.
Но мне самому решение не очень нравится.
В шаблоне, в файле pagination.php, при генерации ссылок поставил условие и вырезал не нужный код из URL.

И еще нашел, как делается редирект в php:
Код:
header('Location: '.$url);

Записан
Paha_web
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Пол: Мужской
Сообщений: 141


Еще правок хотите?


« Ответ #4 : 15.07.2015, 22:12:24 »

Там в папке с компонентом есть файлик router.php в нем смотрели? И sh404 отключали?
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet