0 Пользователей и 1 Гость просматривают эту тему.
  • 9 Ответов
  • 9282 Просмотров
*

snikolai

  • Захожу иногда
  • 221
  • 20 / 0
JRoute::_
« : 08.11.2008, 16:09:19 »
Если "Включить SEO" выключено
JRoute::_('index.php?option=com_comp&cid=');
выдает index.php?option=com_comp&cid=

& заменяет на &
зачем?

получается чтобы ей пользоваться нужно еще как-то определять включено SEO или нет
*

Physicist

  • Глобальный модератор
  • 984
  • 194 / 0
  • Рябов Денис
Re: JRoute::_
« Ответ #1 : 08.11.2008, 17:17:41 »
Таков стандарт html. Так как знак амперсанда является служебным символом (служит для записи так называемых html-сущностей типа <,  , ×, и т.д.), то он сам в html-коде должен записываться как &.
*

snikolai

  • Захожу иногда
  • 221
  • 20 / 0
Re: JRoute::_
« Ответ #2 : 08.11.2008, 17:28:44 »
но ведь предполагается, что будет вывод в url браузера, а там нужно чтобы параметры get передавались через &

как тогда быть, чтобы выводилось ?option=com_comp&cid= , а не index.php?option=com_comp&cid=  ?

мы же заранее не знаем что будет установлено во "Включить SEO"
-------
т.е. Jroute использовать в setRedirect не нужно
$msg = JText::_( 'Operation Cancelled' );
$this->setRedirect( 'index.php?option=com_hello', $msg );

тогда как в случае setRedirect привести ссылку к SEO виду?
« Последнее редактирование: 08.11.2008, 17:41:01 от snikolai »
*

Physicist

  • Глобальный модератор
  • 984
  • 194 / 0
  • Рябов Денис
Re: JRoute::_
« Ответ #3 : 08.11.2008, 17:54:08 »
В коде страницы нужно выводить &, а при передаче запроса на сервер они автоматически заменятся на &.
*

snikolai

  • Захожу иногда
  • 221
  • 20 / 0
Re: JRoute::_
« Ответ #4 : 08.11.2008, 18:04:49 »
если использовать setRedirect, то & автоматически не заменяются на &
$msg = JText::_( 'Operation cancelled' );
$this->setRedirect( JRoute::_( 'index.php?option=com_comp&cid=&current=' ), $msg );

будет: http://site.ru/index.php/component/comp/?cid=&current=
-----

если модуль выводится не со всеми пунктами меню, а по выбору, то при
http://site.ru/index.php?option=com_comp&cid=
он не выводится
при http://site.ru/index.php/comp?cid=
выводится

а если в setRedirect использовать ссылку без JRoute
то редирект идет по index.php?option=com_comp&cid=

если использовать  JRoute, появляется &
« Последнее редактирование: 08.11.2008, 18:18:15 от snikolai »
*

Greck

  • Новичок
  • 7
  • 2 / 0
Re: JRoute::_
« Ответ #5 : 08.11.2008, 18:55:55 »
под SEO имеется в виду SEF? человеко-понятные ссылки?
*

snikolai

  • Захожу иногда
  • 221
  • 20 / 0
Re: JRoute::_
« Ответ #6 : 08.11.2008, 19:30:33 »
под SEO имеется в виду SEF? человеко-понятные ссылки?
да
в настройках сайта "Включить SEO"
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: JRoute::_
« Ответ #7 : 08.11.2008, 20:33:20 »
Для того, чтобы метод JRoute::_ не заменял & на & необходимо вторым параметром передать false:

Код: php
JRoute::_('index.php?option=com_comp&cid=1', false);

Данный параметр отвечает за совместимость ссылки с стандартом XHTML и по умолчанию выставлен в true. Детальнее можно посмотреть в /libraries/joomla/methods.php

Вот документация к этому методу:

Код: php
	/**
* Translates an internal Joomla URL to a humanly readible URL.
*
* @access public
* @param string $url Absolute or Relative URI to Joomla resource
* @param boolean  $xhtml Replace & by & for xml compilance
* @param int $ssl Secure state for the resolved URI
* 1: Make URI secure using global secure site URI
* 0: Leave URI in the same secure state as it was passed to the function
* -1: Make URI unsecure using the global unsecure site URI
* @return The translated humanly readible URL
*/
*

snikolai

  • Захожу иногда
  • 221
  • 20 / 0
Re: JRoute::_
« Ответ #8 : 08.11.2008, 22:47:46 »
ясно, спасибо
*

Aventurier

  • Захожу иногда
  • 129
  • 16 / 0
Re: JRoute::_
« Ответ #9 : 26.08.2011, 09:58:58 »
Для того, чтобы метод JRoute::_ не заменял & на & необходимо вторым параметром передать false:

Код: php
JRoute::_('index.php?option=com_comp&cid=1', false);

Данный параметр отвечает за совместимость ссылки с стандартом XHTML и по умолчанию выставлен в true. Детальнее можно посмотреть в /libraries/joomla/methods.php

Вот документация к этому методу:

Код: php
	/**
* Translates an internal Joomla URL to a humanly readible URL.
*
* @access public
* @param string $url Absolute or Relative URI to Joomla resource
* @param boolean  $xhtml Replace & by & for XML compilance
* @param int $ssl Secure state for the resolved URI
* 1: Make URI secure using global secure site URI
* 0: Leave URI in the same secure state as it was passed to the function
* -1: Make URI unsecure using the global unsecure site URI
* @return The translated humanly readible URL
*/


Спасибо, вы очень помогли.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Проблема с JRoute а имено с ParseRoute

Автор savenko

Ответов: 8
Просмотров: 3422
Последний ответ 15.09.2014, 14:23:57
от kolio
Как правильно прописать JRoute

Автор voland

Ответов: 9
Просмотров: 7692
Последний ответ 24.03.2012, 00:17:27
от chikvito