ЧПУ для Virteumart а

Отже, багато Joomla води знають, що таке virtuemart. І багатьом, хто знайомий зі створенням сайтів та інтернет-магазинів, доводилося мати справу з цим скриптом. Його слабким місцем є повна відсутність SEO ЧПУ. Ось немає ЧПУ, та й усе тут.
Отже, рішення для ЧПУ для Virtuemart 1.1 та Joomla 1.5 на підставіrouter.php (написано та перевірено наvirtuemart 1.1.9, але має працювати і на більш ранніх версіях) без впровадження сторонніх компонентів, лише додаванням одного файлуrouter.php в директорію/components/com_virtuemart/.
Які переваги router ЧПУ Virtuemart?
Отже, що робити? Запитаєте Ви? Варіантів, на жаль, небагато. Першим є спосіб «використання» стороннього розширення, і тут нам можуть допомогти компоненти: sh404SEF, artio joomSef тощо.
Але, скільки ж невиправданої мороки з цими компонентами, та й розширення для ЧПУ у VM коштують грошей (основна морока з глючними, непрацюючими сторінками, і відсутністю redirect а для сторінок без ЧПУ, в результаті з величезною базою посилань, по п'ять-шість посилань на один і той же товар, а далі проблеми з: vmchk = 1 і т.п.
Ще очевидною перевагою є те, що завдякиrouter.php абсолютно всі посилання в практично будь-якому компоненті/модулі, що відображає товари для Virtuemart, навіть сторонніх розробників, перетворюються на SEO ЧПУ посилання (там, де використовується ст. функція JRoute::_())
Але ось диво! З початку версіїvirtuemart 1.1.9 запропонувалиrouter.php (який входить у постачання стандартного пакета). Заглянув я в цей роутер, і (пробачте), цур мене! ЧПУ посилання там формуються перерахуванням параметрів, наприклад /page/shop.browse/ та купа сміття.
Які ЧПУ посилання на Virtuemart Ви отримаєте, використовуючи моє рішення?
Вище перераховані налаштування Ви можете змінити за допомогою констант, вказавши будь-який інший префікс, що складається з літер англійського алфавіту нижнього регістру (маленьких літер), цифр, тире та підкреслення уrouter.php :
Перенаправлення з посилань без ЧПУ на посилання з ЧПУ для Virtuemart
Для цього я написав кілька рядків, які спрацьовують при підключенніrouter.php і роблятьредирект 301 на ЧПУ перетворену сторінку Virtuemat, якщо відвідувач/пошуковий робот прийшли за посиланням без ЧПУ.
Для цього необхідно включити:
Як встановити router.php SEF ЧПУ для Virtuemart?
Тепер префікс таблиць vm обчислюється автоматично на основі конфігураційного файлу virtuemart, але якщо виникнуть помилки бази даних, тоді перевизначте вручну. Якщо префікс таблиць баз даних для Virtuemart відрізняється від vm: перевизначте змінну спочаткуroute.php
Як дізнатися префікс таблиці Virtuemart?
Відкрийте файл/administrator/components/com_virtuemart/virtuemart.cfg.php і знайдіть значення константиVM_TABLEPREFIX
Отже, де ж тестувалося ЧПУ для Virtuemart (router.php)?
З якими мовами працюватимеrouter.php :українська, українська, англійська, білоукраїнська(добрий трансліт чпу)
Знижуємо навантаження для router.php при генерації ЧПУ
Для уникнення дублювання запитів, пов'язаних з формуванням ЧПК товарів після запиту про конкретний товар, дані про ім'я товару вивантажуються в масив, після чого масив перевіряється на присутність ідентифікатора товару, в цьому випадку дані беруться з масиву без повторного запиту до Б.Д., що також допомагає намзаощадити кілька запитів при повторенні товарів на одній сторінці.
Помилки та баги router.php для Virtuemart:
Плагін vm_seo, налаштовуємо router virtuemart
Скачайте та встановіть плагін seo, для цього зайдіть у панель адміністрування, перейдіть вРозширення — Встановити/Видалити — натисніть кнопку Огляд, вкажіть шлях до архіву vm_seo.zip, встановіть, після встановлення перейдіть в панелі адміністрування в Розширення – Плагіни, знайдіть vm_seo (за назвою), клацніть на посилання в стовпці Назва Плагіна, і збережіть
Крім налаштувань, плагін vm_seo вирішує такі проблеми (вони не пов'язані з роутером, це баги virtuemart, але вдалося їх виправити засобами плагіна): редагування товарів з лицьової частини магазину, вікна друку та інші вікна virtuemart, що відкриваються через index2.php
Які установки router винесені в плагін vm_seo?
На посилання також буде включено домен Вашого сайту. Перевірка поточного url включається за подієюonAfterRoute до виведення основного вмісту, тому ні користувач, ні пошуковик тепер нічого зайвого не побачать.
Масив для перекодування : тепер ми даємо Вам повністю можливість керувати транслітерацією на Ваш смак та уможливлюємо підтримку будь-яких мов у транслітерації. Для цього Вам достатньо скласти пари значення виду символ-для-транслітераціїзаміни-англійською (розділені , наприклад: бb), і розділити ці пари значень комою. Щоб побачити за замовчуванням масив, достатньо один раз зберегти плагін.
За умовчанням масив транслітерації для української, англійської, української мов:
– якщо залишити поле порожнім, буде відновлено значення за промовчанням.
Префікс посилання сторінки виробника: manufacturer — префікс url для виробників(за замовчуванням: manufacturer).
Префікс посилання сторінки RSS стрічки: feed — префікс url для стрічок новин (за замовчуванням: feed).
Префікс посилання сторінки продукту: product-details — префікс url для сторінки детальної інформації про продукт (за замовчуванням: product-details).
Префікс посилання на сторінку запиту наявності товару: enquiry — префікс url для сторінки запиту наявності товару (за замовчуванням: enquiry).
Префікс посилання на сторінку оформлення замовлення: checkout — префікс url для сторінки оформлення замовлення (за замовчуванням: checkout).
Префікс посилання на сторінку пошуку (за параметрами): search — префікс url для пошуку за параметрами (за замовчуванням: search).
Налаштування плагіна для router а virutemart: