SEF для Virtuemart (Joomla 1.5)

Розробка інтерент-магазину на рбазі Virtuemart

SEF для Virtuemart (Joomla 1.5)

Повідомлення Dutch » 20 грудня 2008, 04:23

На даний момент у компоненті інтеренет-магазину VirtualMart для 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
(748 байт) Завантажено 8420 разів
Аватар користувача
Dutch
Адміністратор
Адміністратор
 
Повідомлення: 971
З нами з: 28 жовтня 2006, 18:49
Звідки: Київ

google adsense
 

Re: SEF для Virtuemart (Joomla 1.5)

Повідомлення gruz » 22 грудня 2008, 22:12

Маю посилання виду
ukrstyle.com/index.php?page=shop.product_details&flypage=flypage-ask.tpl&product_id=3&category_id=4&option=com_virtuemart&Itemid=17

Роутер перетворює на
ukrstyle.com/itopmenu-17/shop.product_details/4/flypage-ask.tpl/3.html

Але за цим посиланням бачу сторінку з без товару. Хоча шлях до товару вказується в breadcrumbs самого магазина відображаєтсья правильно.

Шаблон ВМ не стандартний, а зі стандартного перероблений. Але попробував на стандартном. Те саме.

Може тут проблема? В налаштуваннях категорії:
Сторінка перегляду категорій: managed
Подання (flypage) категорії: flypage-ask.tpl
Аватар користувача
gruz
Користувач
Користувач
 
Повідомлення: 475
З нами з: 19 червня 2008, 18:09
Звідки: Прип'ять

Re: SEF для Virtuemart (Joomla 1.5)

Повідомлення Dutch » 22 грудня 2008, 23:42

а звідки у тебе itopmenu-17?
Аватар користувача
Dutch
Адміністратор
Адміністратор
 
Повідомлення: 971
З нами з: 28 жовтня 2006, 18:49
Звідки: Київ

Re: SEF для Virtuemart (Joomla 1.5)

Повідомлення gruz » 23 грудня 2008, 00:00

Ну я звідки знаю. То ввімкнів
1. включена функція mod_rewrite і розширення (суфікси) файлів;

Воно такі лінки зробило. Зараз заллю це на локал, може щось награюсь та вийде.
Аватар користувача
gruz
Користувач
Користувач
 
Повідомлення: 475
З нами з: 19 червня 2008, 18:09
Звідки: Прип'ять

Re: SEF для Virtuemart (Joomla 1.5)

Повідомлення Dutch » 23 грудня 2008, 00:08

а який алиас стоїть у посиланні на магазин?
Аватар користувача
Dutch
Адміністратор
Адміністратор
 
Повідомлення: 971
З нами з: 28 жовтня 2006, 18:49
Звідки: Київ

Re: SEF для Virtuemart (Joomla 1.5)

Повідомлення gruz » 23 грудня 2008, 00:20

Угу, він і стоїть.
Магазин є першою сторінкою сайту.

Вже змінив на інший, якщо ти на сайт заглядаєш.
Аватар користувача
gruz
Користувач
Користувач
 
Повідомлення: 475
З нами з: 19 червня 2008, 18:09
Звідки: Прип'ять

Re: SEF для Virtuemart (Joomla 1.5)

Повідомлення t43d3n » 12 лютого 2009, 12:51

Добрый день!
Вы не подскажете как решить такую проблему - иногда при заходе на сайт у меня к ссылкам добавляется ненужный хвост, вида:
40c491cf5f64423e4c593d8153b8516c=fccfa89cbb78d85c0594b17b07c90d80

Т.е. вместо нормальной ссылки
http://shop.artmanager.ru/shop/shop.product_details/25/flypage.tpl/44.html

Получается такая:
http://shop.artmanager.ru/shop/shop.product_details/25/flypage.tpl/44.html?40c491cf5f64423e4c593d8153b8516c=fccfa89cbb78d85c0594b17b07c90d80

Естественно, после нажатия переход осуществляется не туда куда надо...

С чем это может быть связано и как от этого избавиться? :unknown:
t43d3n
Користувач
Користувач
 
Повідомлення: 1
З нами з: 12 лютого 2009, 12:46

Re: SEF для Virtuemart (Joomla 1.5)

Повідомлення Dutch » 12 лютого 2009, 14:06

это сессия
Аватар користувача
Dutch
Адміністратор
Адміністратор
 
Повідомлення: 971
З нами з: 28 жовтня 2006, 18:49
Звідки: Київ

Re: SEF для Virtuemart (Joomla 1.5)

Повідомлення gruz » 16 лютого 2009, 11:07

Якщо я заходжу з фронта під юзером в здійснені замовлення, клікаю переглянути замовлення і в самому замовленні клікаю на товар, лінк має вигляд:
http://ukrstyle.com/index/shop.product_details/117.html
Воно перекидає на сторінку
http://ukrstyle.com/index/shop.browse/?keyword=&limitstart=
і каже:

Повідомлення
Повідомлення
Вибачте, але запитуваний товар не знайдено!


Хто винен і що робити?
Аватар користувача
gruz
Користувач
Користувач
 
Повідомлення: 475
З нами з: 19 червня 2008, 18:09
Звідки: Прип'ять

Re: SEF для Virtuemart (Joomla 1.5)

Повідомлення gruz » 11 березня 2009, 23:25

VM 1.1.3, Joomla 1.5.9, SEF on, mod_rewrite on, suffix on

Ще один баг, вже критичний. Попередній і наступний товари - лінки не працюють!

Лінк виглядає:
http://ukrstyle.com/shop/shop.product_details/flypage.tpl/2.html?pop=0
а має
http://ukrstyle.com/shop/shop.product_details/4/flypage.tpl/2.html

Пропущено очевидно ID категорії /4/

P.S.
Я погемороївся трохи, але роутер поправити не зміг.
Тому прийшлось виправити Рядки:
170 було
Код: Виділити все

$url_parameters = 'page=shop.product_details&product_id='.$next_product['product_id'].'&flypage='.$ps_product->get_flypage($next_product['product_id']).'&pop='.$pop;

стало
Код: Виділити все

$url_parameters = 'page=shop.product_details&product_id='.$next_product['product_id'].'&flypage='.$ps_product->get_flypage($next_product['product_id']).'&pop='.$pop.'&category_id='.$category_id;;//##my200903120132 Виправляю, щоби router.php від Носова коректно опрацьовува попередні-наступні товари Було: $url_parameters = 'page=shop.product_details&product_id='.$next_product['product_id'].'&flypage='.$ps_product->get_flypage($next_product['product_id']).'&pop='.$pop;


і рядок 184
Було:
Код: Виділити все
$url_parameters = 'page=shop.product_details&product_id='.$previous_product['product_id'].'&flypage='.$ps_product->get_flypage($previous_product['product_id']).'&pop='.$pop;

Стало:
Код: Виділити все
$url_parameters = 'page=shop.product_details&product_id='.$previous_product['product_id'].'&flypage='.$ps_product->get_flypage($previous_product['product_id']).'&pop='.$pop.'&category_id='.$category_id;//##my200903120132 Виправляю, щоби router.php від Носова коректно опрацьовува попередні-наступні товари Було: $url_parameters = 'page=shop.product_details&product_id='.$previous_product['product_id'].'&flypage='.$ps_product->get_flypage($previous_product['product_id']).'&pop='.$pop;


Правлене філе додаю
Приєднані файли
shop.product_details.zip
Виправлення для попередніх-наступних товарів при доданому SEF router.php
(5.76 Кб) Завантажено 280 разів
Аватар користувача
gruz
Користувач
Користувач
 
Повідомлення: 475
З нами з: 19 червня 2008, 18:09
Звідки: Прип'ять

Re: SEF для Virtuemart (Joomla 1.5)

Повідомлення bardus » 19 березня 2009, 01:04

Встановив цей скрипт на сайті. Але нажаль виникли труднощі при роботі з корзиною.

Коли відпрацьовує скрипт shop.cart.php

Там з'являється перелік товарів де є дві функціі оновити та видалити.
Коли натискаю на одну із цих кнопок виникає помилка "Сторінка не знайдена 404".

Причину знайшов
в basket.php
змінив
Код: Виділити все
 basename($_SERVER['PHP_SELF']);  
на index.php

Код: Виділити все
    
131             
/* UPDATE CART / DELETE FROM CART */
132        //Bardus correct 18.03.2009
133           $action_url = $mm_action_url.'index.php'; 
        $product_rows
[$i]['update_form'] = '<form action="'. $action_url ." method="post" style="display: inline;">
        <input type="
hidden" name="option" value="com_virtuemart" /> 

в shop.cart.tpl.php
Код: Виділити все

if (!defined('_MIN_POV_REACHED')) { ?>

       <span style="font-weight:bold;"><?php echo $VM_LANG->_('PHPSHOP_CHECKOUT_ERR_MIN_POV2') . " ".$CURRENCY_DISPLAY->getFullValue($_SESSION['minimum_pov']) ?></span>
       <?php
   
}
   else {
       //Bardus correct 18.03.09
           $href = $sess->url('index.php?page=checkout.index&ssl_redirect=1', true);
           $href2 = $sess->url( $mm_action_url . "/index2.php?page=checkout.index&ssl_redirect=1", true);
           $class_att = 'class="checkout_link"';
           $text = $VM_LANG->_('PHPSHOP_CHECKOUT_TITLE'); 

Якщо хочу завершити покупку то теж пришлось виправити код
в chekout.index.php

Код: Виділити все

                
// We have something in the Card so move on
                if ($perm->is_registered_customer($auth['user_id'])) { // user is logged in and a registered customer
        $basket_html .= '<form action="'. SECUREURL.index.php" method="post" name="adminForm">
 


причина в тому що PHP_SELF повертає не 'ім'я_скрипта.html' а просто 'ім'я_скрипта'
Така проблема спостерігається на мої Ubuntu interpid, PHP 5.2.6 Apache 'ім'я_скрипта'
Робочий сервер теж має таку ж проблему
під Win на Denwer повертає 'ім'я_скрипта.html'

Питання чому різні значення повертає PHP_SELF ?
bardus
Користувач
Користувач
 
Повідомлення: 4
З нами з: 14 серпня 2007, 02:00

Re: SEF для Virtuemart (Joomla 1.5)

Повідомлення Vladlen » 21 квітня 2009, 09:14

я вот что еще заметил.... после оформления заказа, показывается информация в которой указано что заказано и на какую сумму.... так вот, при при нажатии на товар, он перекидывает не в описание товара, а вообще не понятно куда....
Vladlen
Користувач
Користувач
 
Повідомлення: 1
З нами з: 20 квітня 2009, 14:35

Re: SEF для Virtuemart (Joomla 1.5)

Повідомлення jpn » 15 травня 2009, 22:40

Hi, this is jörg from germany. First, greet file for vm sef! Thanks!
Can anybody tell me, how to modify the router.php(SEF for Virtuemart) for replace german letters ä,ü,ö,ß with ae,ue,oe,ss in category and productnames for url?
See www.mbai.de for example category "Flöte" to "Floete"

Thanks!
jpn
Користувач
Користувач
 
Повідомлення: 4
З нами з: 15 травня 2009, 22:35

Re: SEF для Virtuemart (Joomla 1.5)

Повідомлення gruz » 16 травня 2009, 11:46

Hi, jörg.

This router works without using titles of categories or products in URLs.

e.g.
In Joomla 1.5 links look like http://example.com/shop.html?page=shop.browse&category_id=1 (for a category), and when using the router it looks like http://example.com/shop/shop.browse/1.html

Besides, VM doesn't have something like title alias for products and categories (hm, maybe use SKU in product links...). It's a huge work to make translit automatically for at least Slavic languages. Well, for Slavic languages translit is not so needful for SEF.

I have some thoughts how to apply titles translit, but I don't think I'll improve them in live soon. :-(


You may search here, if you want to improve it yourself:
http://www.google.com.ua/search?hl=uk&client=firefox-a&rlz=1R1GGGL_uk&hs=P9u&q=joomla+router.php&btnG=%D0%9F%D0%BE%D1%88%D1%83%D0%BA&meta=

Or I can send you a PDF-book, where is present an exlanation ho to create the file router.php for any component.
Аватар користувача
gruz
Користувач
Користувач
 
Повідомлення: 475
З нами з: 19 червня 2008, 18:09
Звідки: Прип'ять

Re: SEF для Virtuemart (Joomla 1.5)

Повідомлення jpn » 18 травня 2009, 09:39

Thank's for the awnser! I wonder what happens with my virtuemart?
Take a look at this with router.php in folder com_virtuemart:
https://www.mbai.de/musikalien-finden/details/2182402/96/groups/personalities/abba/25-great-hits.html
U can see there are categories and full produktnames in the url!
And now without router.php :
https://www.mbai.de/musikalien-finden.html?page=shop.product_details&flypage=flypage.tpl&product_id=2182402&category_id=96
The same product ABBA 25 great hits.

Please send me the pdf-book, so I can understand what happens :Search:
jpn
Користувач
Користувач
 
Повідомлення: 4
З нами з: 15 травня 2009, 22:35

Re: SEF для Virtuemart (Joomla 1.5)

Повідомлення jpn » 18 травня 2009, 11:14

Me again! Uuuups, I think I don't use the router.php we write about here. I use it from http://www.e-fusionsoft.com/
jpn
Користувач
Користувач
 
Повідомлення: 4
З нами з: 15 травня 2009, 22:35

Re: SEF для Virtuemart (Joomla 1.5)

Повідомлення gruz » 19 травня 2009, 01:41

Jorg, I've had a look at the router you use.

Try to make some modifications in it.

Find line ~38
Код: Виділити все
            $category_alias = getCategoryTitle($query['category_id']);

and replace if with a set of lines like this
Код: Виділити все
            $category_alias = str_replace("a","ae",getCategoryTitle($query['category_id']));
            $category_alias = str_replace("ö","oe",getCategoryTitle($query['category_id']));
...


Modify using the same logic other places when needed

P.S. Or you should write a function for the replacement and use it, not a set of lines each time.
Аватар користувача
gruz
Користувач
Користувач
 
Повідомлення: 475
З нами з: 19 червня 2008, 18:09
Звідки: Прип'ять

Re: SEF для Virtuemart (Joomla 1.5)

Повідомлення jpn » 20 травня 2009, 16:55

Thanks I found out it by myself at the same time. Its done :ROFL:
jpn
Користувач
Користувач
 
Повідомлення: 4
З нами з: 15 травня 2009, 22:35

Re: SEF для Virtuemart (Joomla 1.5)

Повідомлення vomchik » 06 вересня 2009, 18:27

а в мене чомусь не працює, хоча зробив все по інструкції

лінк став таким:


http://proek-1/ru/katalog.html?page=shop.product_details&flypage=flypage.tpl&product_id=41&category_id=10

тобто працює на половину
vomchik
Користувач
Користувач
 
Повідомлення: 1
З нами з: 06 вересня 2009, 18:24

Re: SEF для Virtuemart (Joomla 1.5)

Повідомлення rainford2009 » 21 червня 2010, 21:38

Скажіть будь-ласка, чому після задання типу валюти для товару, на сайті всеодно відображається ціна в доларах? Можливо потрібно десь у файлі конфігурації php зробити зміни?
rainford2009
Користувач
Користувач
 
Повідомлення: 1
З нами з: 21 червня 2010, 21:31

Далі

Повернутись в Virtuemart

Хто зараз онлайн

Зараз переглядають цей форум: Немає зареєстрованих користувачів і 0 гостей

Вегетарианцы научат жизни в сериале Семейка Гудов ЗАО Упаковочные системы распродает паллетоупаковщики со склада в Москве LCD телевизоры panasonic смотреть кино онлайн

cron