На данный момент в компоненте интернет-магазина VirtueMart для Joomla 1.5 отсутствует роутер ссылок, который конвертирует ссылки.
Предлагаю Вашему вниманию роутер, который написал именно для последней на сегодня версии VirtueMart 1.1.2 stable.
Основной принцип работы роутера:В Joomla 1.5 все ссылки имеют вид
http://example.com/shop.html?page=shop.browse&category_id=1 (категории), в то время как роутер превращает их в более красивый и короткий вид -
http:// example.com/shop/shop.browse/1.htmlСам роутер превращает 90% ссылок. Ссылка для обработки роутером заказов в интернет-магазине я не делал, чтобы предотвратить какие-либо ошибки и в принципе для этой части магазина нам красивые ссылки не так уж и важны, ведь основная задача у нас короткие ссылки для категорий и товаров, а также для индексации поисковыми машинами.
Замечания:Роутер ссылок корректно работает с включенными расширениями (суффиксами) файлов и с отключенной функцией mod_rewrite в настройках Joomla. Если отключить функцию суффиксов для файлов и оставить включенный функцию mod_rewrite, будут возникать ошибки 404, это связано с тем, что параметрах URL используется точка (например: shop.browse).
Поэтому для корректной работы роутера предлагаю 2 варианта настроек SEF в конфигурации Joomla:
1. включена функция mod_rewrite и расширения (суффиксы) файлов;
2. отключена функция mod_rewrite, а расширение (суффиксы) файлов могут быть включены или отключены.
Применение:1. Распаковать архив;
2. Залить файл router.php в папку components/com_virtuemart/;
3. Включить и настроить SEF в конфигурации Joomla согласно замечаний (см. выше).
Загрузить файл роутера: router.zipОбсуждение роутера на украинском языке на форуме Joomla! Україна:
SEF для VirtueMart (Joomla 1.5)---------------------------------------------------------------------
Поднимаю в шапку:
from
Beagler -
переделанный роутер от E-FusionSoft Technologies скачатьдобавил транслитерацию.
Описание:
1. В плагине ТС обрабатываются только страницы shop.browse и shop.product_details. В этом - также и shop.feed shop.ask checkout.index account.billing account.shipto account.shipping shop.registration shop.recommend shop.tos shop.cart account.index account.order_details shop.waiting_list shop.search store.index - практически все страницы страницы VM
2. Самое главное - в ссылках не shop.browse и shop.product_details
3. Вид ссылки:
карточка товара - /component/virtuemart/details/8/2/elektroinstrumenti/tsirkulyarnaya-pila.html
категория - /component/virtuemart/category/2/elektroinstrumenti.html
слова category и details можно менять (в начале файла), а 8 и 2 - это id категории и товара.
Update from 16.10.2009 - исправил ошибку с русскими названиями.
Для того, чтобы роутер заработал в модулях ссылки должна вызываться через JRoute::_(), а не через sefRelToAbs()
Пример:
было
$sess->purl($router_url);
изменили
$sess->purl( JRoute::_($router_url));
Внимание! Если после установки роутера получаете белый лист - скорее всего у Вас в PHP не включен модуль mbstring (предоставляет функции для обработки строк в мультибайтных кодировках )
from
sova -
Добавил в роутер от beagler украинскую транслитерацию.[вложение удалено Администратором]