Новости Joomla

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

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
Господа,
Доброй ночи :)

Допиливаю компонент - написал router.php, но как только ставлю на "живой" сайт, то в URL упорно добавляется слово component и получается вот так:
http://www.mysite.lv/component/mycomponent/myview.html

В инете пишут, что для решения проблемы необходимо создать пункт меню компонента и все будет пучком, но не помогло :( Все равно слово component подставляется в URL. Самое интересное, что на локальной тестовой среде все пашет нормально - в URL слово component отсутствует! Выходит, с router.php все ок. С не-моими компонентами такой проблемы нет.

Вот сижу и думаю - откуда оно берется и как его убрать?
*

era

  • Администратор
  • 1587
  • 391 / 5
  • В туалете лучше быть пользователем, чем админом.
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
да, странно, проверь что-бы все выдаваемые им ссылки проходили через JRoute
JRoute есть - уже по 100 раз проверил... Чую, мелочь какая-то, но никак обаружить не могу. И еще неясно - почему на тестовой среде все ок, а на живом сайте лажа...

UPDATE:
Вообще весело - если не залогинен, то ссылки без слова component. А вот если залогинен - слово component появляется  :dry: :dry: :dry: На тестовой среде по прежнему все ок.
*

era

  • Администратор
  • 1587
  • 391 / 5
  • В туалете лучше быть пользователем, чем админом.
думаю потому что у тебя на живом сайте в меню два пункта меню с твоим компонентом, а на тестовом - только один. В ссылку ты добавляешь Itemid ?
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
думаю потому что у тебя на живом сайте в меню два пункта меню с твоим компонентом, а на тестовом - только один. В ссылку ты добавляешь Itemid ?
Не, пункт меню один.
Почему же при если не залогинен, то ссылки без слова component, а вот если залогинен - слово component появляется?

Имеешь ввиду Itemid в ссылках внутри компонента?
*

era

  • Администратор
  • 1587
  • 391 / 5
  • В туалете лучше быть пользователем, чем админом.
ну да, т.е. вместо "option=com_moicomponent&view=show" попробуй сделать "option=com_moicomponent&view=show&Itemid=45"
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
ну да, т.е. вместо "option=com_moicomponent&view=show" попробуй сделать "option=com_moicomponent&view=show&Itemid=45"
Уху, сработало. Но блин, почему на тестовом этого не нужно делать, все само схватывается без Itemid? ^^ Писать надстройку для JRoute теперь чтоли? :)
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Стандартный SEF если нет пункта меню, формирует ссылку с /component, так как ему неоткуда взять алиас. Как только появляется пункт меню, ссылающийся на компонент, ссылки будут формироваться с учетом алиаса этого пункта меню, и /component не будет фигурировать в ссылке. Но для этого, стандартный SEF должен знать, о каком пункте меню сейчас идет речь, а за это отвечает параметр Itemid. С другой стороны, можно сделать роутер, который будет формировать правильные ссылки даже если в ссылке нет Itemid - можно искать подходящий пункт меню по компонентам ссылки (ну грубо говоря если Itemid не задан, искать пункт меню, ссылающийся на этот компонент и имеющий такое же значение поля view). В общем стоит внимательно посмотреть существующие роутеры и их хелперные классы стандартных компонентов Joomla (например, /components/com_content/helpers/route.php).
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
Спасибо за ответы. Я просто никак не могу понять - я вроде создал пункт меню как полагается и на тестовом (локальном) сайте и на живом. Никаких изменений в саму Joomla! на живом сайте не вносил, но URL различаются. И еще этот странный глюк, что для залогиненого пользователя слово component отображается, а незалогиненого нет. Смущает меня это...
*

ELesnikov

  • Захожу иногда
  • 119
  • 8 / 0
Господа,
Доброй ночи :)

Допиливаю компонент - написал router.php, но как только ставлю на "живой" сайт, то в URL упорно добавляется слово component и получается вот так:
http://www.mysite.lv/component/mycomponent/myview.html

В инете пишут, что для решения проблемы необходимо создать пункт меню компонента и все будет пучком, но не помогло :( Все равно слово component подставляется в URL. Самое интересное, что на локальной тестовой среде все пашет нормально - в URL слово component отсутствует! Выходит, с router.php все ок. С не-моими компонентами такой проблемы нет.

Вот сижу и думаю - откуда оно берется и как его убрать?
Доброго времени суток! Подскажите лит-ру по созданию routera. пожалуйста (в иделе русскоязычную)
« Последнее редактирование: 28.02.2010, 18:54:51 от ELesnikov »
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
*

era

  • Администратор
  • 1587
  • 391 / 5
  • В туалете лучше быть пользователем, чем админом.
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
Вот эту:
Стандартный SEF если нет пункта меню, формирует ссылку с /component, так как ему неоткуда взять алиас. Как только появляется пункт меню, ссылающийся на компонент, ссылки будут формироваться с учетом алиаса этого пункта меню, и /component не будет фигурировать в ссылке. Но для этого, стандартный SEF должен знать, о каком пункте меню сейчас идет речь, а за это отвечает параметр Itemid. С другой стороны, можно сделать роутер, который будет формировать правильные ссылки даже если в ссылке нет Itemid - можно искать подходящий пункт меню по компонентам ссылки (ну грубо говоря если Itemid не задан, искать пункт меню, ссылающийся на этот компонент и имеющий такое же значение поля view). В общем стоит внимательно посмотреть существующие роутеры и их хелперные классы стандартных компонентов Joomla (например, /components/com_content/helpers/route.php).
*

era

  • Администратор
  • 1587
  • 391 / 5
  • В туалете лучше быть пользователем, чем админом.
bzzik, подскажу выход (на мой взгляд) такой - в твоём router.php пропиши код для получения идентификатора меню:
Код
	$menu 		= &JSite::getMenu();
$itemscat= $menu->getItems('link', 'index.php?option=com_mycomponent&view=my_view');
if(isset($itemscat[0])) {
$link_itemid = '&Itemid='.$itemscat[0]->id;
}
$link_itemid - это ссылка твоя, сформированная, без Itemid - К ней дописывается Itemid.

"index.php?option=com_mycomponent&view=my_view" - это поле посмотри в базе, поле link. Посмотри какая ссылка у тебя формируется при привязки к меню. В массив $itemscat загрузятся все пункты меню с заданной ссылкой.
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
era спасибо, буду разбираться. Обязательно отпишусь о результатах.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

как правильно убрать /component/... из SEF?

Автор kontrast

Ответов: 0
Просмотров: 1165
Последний ответ 28.01.2016, 23:09:58
от kontrast
Как из ссылки убрать component/content/article/

Автор caitleen

Ответов: 11
Просмотров: 17392
Последний ответ 18.02.2015, 23:03:19
от Tim_Livingbook
SEF Joomla или как удалить component из url

Автор GooG2e

Ответов: 0
Просмотров: 943
Последний ответ 14.09.2013, 13:47:56
от GooG2e
Приведение ссылок вида сайт/component/content/article/2-uncategorised/статья к виду сайт/статья

Автор Almiol

Ответов: 6
Просмотров: 3923
Последний ответ 21.06.2012, 11:35:08
от Almiol
Никак не получается подружить sh404SEF и adsmanadger 2.6.5

Автор sattan

Ответов: 2
Просмотров: 1420
Последний ответ 20.06.2012, 19:09:10
от sattan