Joomla 1.5 router.php для SEF-ссылок в Virtuemart 1.1

Тема в разделе "VirtueMart", создана пользователем OlegM, 06.01.2010.

  1. OlegM
    Offline

    OlegM Russian Joomla! Team Команда форума

    Регистрация:
    12.04.2007
    Сообщения:
    4 311
    Симпатии:
    375
    Пол:
    Мужской
    Вестимо откуда - сам виртуй неплохо генерирует дубли :)
     
  2. Offline

    bboroda Недавно здесь

    Регистрация:
    11.04.2010
    Сообщения:
    3
    Симпатии:
    0
    Пол:
    Мужской
    Подскажите кто нибудь как можно в URL убрать лишние http://sait.ru/component/virtuemart/manufacturer/1/tovar.html заранее благодарен
     
    Последнее редактирование: 13.04.2010
  3. Offline

    skuzmenk Недавно здесь

    Регистрация:
    16.03.2010
    Сообщения:
    2
    Симпатии:
    0
    Пол:
    Мужской
    Приветствую.

    Подскажите, пожалуйста, как допилить router.php так, чтоб можно было явно руками указывать нужную транслитерацию для некоторых слов? Например, сейчас категорию аксессуары меняет на aksessuari. А мне нужно, чтоб было accessories.
     
  4. OlegM
    Offline

    OlegM Russian Joomla! Team Команда форума

    Регистрация:
    12.04.2007
    Сообщения:
    4 311
    Симпатии:
    375
    Пол:
    Мужской
    Где-то в соседних темах был другой роутер - там на страницу категории добавлялось поле для псевдонима
     
  5. andreymil
    Offline

    andreymil Недавно здесь

    Регистрация:
    23.01.2010
    Сообщения:
    20
    Симпатии:
    1
    Пол:
    Мужской
    Скажите, пожалуйста, кто-нибудь наблюдал за индексом Google после установки этого роутера, у меня 1500 страниц примерно вылетело:'(, осталось 434 страницы и все не сгенерированные этим роутером а со старыми ссылками, которые попали в индекс до его установки. Как быть, может быть кто-нибудь сталкивался? Заранее Благодарен!
     
  6. OlegM
    Offline

    OlegM Russian Joomla! Team Команда форума

    Регистрация:
    12.04.2007
    Сообщения:
    4 311
    Симпатии:
    375
    Пол:
    Мужской
    Вопрос: нафига ставить роутер, если в индексе 2000 страниц? И он никак не может повлиятьна то, что уже в индексе.
     
  7. Offline

    bboroda Недавно здесь

    Регистрация:
    11.04.2010
    Сообщения:
    3
    Симпатии:
    0
    Пол:
    Мужской
    У меня до установки данного роутера в индексе google было более 10000 страниц после установки снизилось до 300 но думаю стоит подождать пару недель прежде чем делать вывод.
     
  8. Offline

    nettroll Недавно здесь

    Регистрация:
    26.04.2010
    Сообщения:
    1
    Симпатии:
    0
    Пол:
    Мужской
    У меня на странице просмотра всех продуктов выдается вот такое:

    Display # No valid database connection You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 5 SQL=SELECT t1.category_child_id AS lev1, t2.category_child_id as lev2, t3.category_child_id as lev3 FROM cdv_vm_category_xref AS t1 LEFT JOIN cdv_vm_category_xref AS t2 ON t2.category_child_id = t1.category_parent_id LEFT JOIN cdv_vm_category_xref AS t3 ON t3.category_child_id = t2.category_parent_id WHERE t1.category_child_id=

    Исправляется патчем:
     

    Вложения:

  9. Offline

    HUNTER Недавно здесь

    Регистрация:
    30.08.2007
    Сообщения:
    10
    Симпатии:
    0
    Пол:
    Мужской
    Заметил что как то хитро некоторые категории обрабатывает, меняет местами родительскую категорию с дочерней:

    http://****.ru/products/category/12784/kompyuteri/mish-opticheskaya.html
    http://****.ru/products/category/12500/mish-lazernaya/kompyuteri.html
    http://****.ru/products/category/13590/kompyuteri/monitor-lcd-21i.html
    http://****.ru/products/category/12768/kompyuteri/kabel-kompyuterniy.html
    http://****.ru/products/category/12546/monitor-lcd-15i/kompyuteri.html

    а должно быть так

    http://****.ru/products/category/12784/kompyuteri/mish-opticheskaya.html
    http://****.ru/products/category/12500/kompyuteri/mish-lazernaya.html
    http://****.ru/products/category/13590/kompyuteri/monitor-lcd-21i.html
    http://****.ru/products/category/12768/kompyuteri/kabel-kompyuterniy.html
    http://****.ru/products/category/12546/kompyuteri/monitor-lcd-15i.html
     
  10. OlegM
    Offline

    OlegM Russian Joomla! Team Команда форума

    Регистрация:
    12.04.2007
    Сообщения:
    4 311
    Симпатии:
    375
    Пол:
    Мужской
    Да, есть такой косяк
     
  11. OlegM
    Offline

    OlegM Russian Joomla! Team Команда форума

    Регистрация:
    12.04.2007
    Сообщения:
    4 311
    Симпатии:
    375
    Пол:
    Мужской
    Лучше использовать vmSEF
     
  12. Offline

    HUNTER Недавно здесь

    Регистрация:
    30.08.2007
    Сообщения:
    10
    Симпатии:
    0
    Пол:
    Мужской
    я не могу понять логику этого косяка, уже названия категорий и подкатегорий менял на английские, на цифры, проверял таблицу транслитерации... все равно логики не нашел.. ((

    vmSEF у меня не работает изза установленного SEF патча для joomla, просто подвисает страница магазина и все
     
    Последнее редактирование модератором: 05.04.2014
  13. OlegM
    Offline

    OlegM Russian Joomla! Team Команда форума

    Регистрация:
    12.04.2007
    Сообщения:
    4 311
    Симпатии:
    375
    Пол:
    Мужской
    логика в SQL-запросе, а не в названиях категорий
     
  14. Offline

    HUNTER Недавно здесь

    Регистрация:
    30.08.2007
    Сообщения:
    10
    Симпатии:
    0
    Пол:
    Мужской
    Там же по другом не сделать запрос, или вывел категории или не вывел...
     
    Последнее редактирование модератором: 05.04.2014
  15. OlegM
    Offline

    OlegM Russian Joomla! Team Команда форума

    Регистрация:
    12.04.2007
    Сообщения:
    4 311
    Симпатии:
    375
    Пол:
    Мужской
    Что-то я невнимательно прочитал описание проблемы. Я лишь замечал, что категории всегда в обратном порядке выводятся.

    В любом случае виноват SQL :) Я не спец в таких запросах, так что вряд ли помогу, во всяком случае в ближайшее время.
     
  16. Offline

    HUNTER Недавно здесь

    Регистрация:
    30.08.2007
    Сообщения:
    10
    Симпатии:
    0
    Пол:
    Мужской
    Запрос, который виноват в путанице категорий:

    SELECT GROUP_CONCAT( category_name SEPARATOR '/' )
    FROM jos_vm_category
    WHERE category_id IN (12729,12500)

    Если родительский ID категории больше чем ID дочерней, то получаем:
    Мышь лазерная/Компьютеры
    http://****.ru/products/category/12500/mish-lazernaya/kompyuteri.html

    Если родительский ID категории меньше чем ID дочерней то получаем
    Компьютеры/Колонки компьютерные
    http://****.ru/products/category/12779/kompyuteri/kolonki-kompyuternie.html

    В моем случае ID категории Компьютеры равен 12729, а подкатегории Колонки компьютерные = 12779, Мышь лазерная = 12500
     
    Последнее редактирование модератором: 05.04.2014
  17. Offline

    HUNTER Недавно здесь

    Регистрация:
    30.08.2007
    Сообщения:
    10
    Симпатии:
    0
    Пол:
    Мужской
    Сделал топором нормальный вывод без перестановки категорий и подкатегорий в адресной строке с router.php

    заменяем запрос

    Код (PHP):
    1. $query = "SELECT GROUP_CONCAT( category_name
    2.             SEPARATOR  '/' )
    3.             FROM #__vm_category
    4.             WHERE category_id IN (" . $catIdsStr . ")";


    на следующий

    Код (PHP):
    1. if ($catIdsArr[0] < $catIdsArr[1] ) {
    2. $query = "SELECT GROUP_CONCAT( category_name
    3.             ORDER BY category_id ASC SEPARATOR  '/' )
    4.             FROM #__vm_category
    5.             WHERE category_id IN (" . $catIdsStr . ")";
    6. } else {
    7.    
    8.     $query = "SELECT GROUP_CONCAT( category_name ORDER BY category_id DESC SEPARATOR  '/' ) FROM #__vm_category
    9.     WHERE category_id IN (" . $catIdsStr . ")";
    10. }
     
  18. OlegM
    Offline

    OlegM Russian Joomla! Team Команда форума

    Регистрация:
    12.04.2007
    Сообщения:
    4 311
    Симпатии:
    375
    Пол:
    Мужской
    HUNTER, когда у тебя всего 2 уровня категорий, то всё ок. А если иерархия категорий будет такой: 17/5/9/ ? Всё, приплыли?
    Уже в $catIdsStr должны быть категории в правильном порядке и незачем их сортировать запросом.
     
  19. Offline

    HUNTER Недавно здесь

    Регистрация:
    30.08.2007
    Сообщения:
    10
    Симпатии:
    0
    Пол:
    Мужской
    Черт, тут ты прав, просто у меня в 1С пока что иерархия совпадает с топорным методом сортировки категории.... над третим уровнем буду думать!
     
    Последнее редактирование модератором: 05.04.2014
  20. OlegM
    Offline

    OlegM Russian Joomla! Team Команда форума

    Регистрация:
    12.04.2007
    Сообщения:
    4 311
    Симпатии:
    375
    Пол:
    Мужской
    В общем, пока встретил 2 реализации построения пути:
    1
    Код (PHP):
    1. $sql = "SELECT category_parent_id FROM #__vm_category_xref WHERE category_child_id =".$cat." LIMIT 1";
    2.             $database->setQuery($sql);
    3.             $parent_cat_id = $database->loadResult();
    4.             if ($parent_cat_id != 0) {
    5.                 $sql = "SELECT category_name FROM #__vm_category WHERE category_id=".$parent_cat_id." LIMIT 1";
    6.                 $database->setQuery($sql);
    7.                 $parent_name = $database->loadResult();
    8.                 $this->build_cats($parent_cat_id);
    9.                 $title[] = trim($parent_name);
    10.             } else return;


    и 2
    Код (PHP):
    1. $vm_db_prefix = "vm";
    2.  
    3.   $vmsefpath = "";
    4.   do {
    5.         $q = "SELECT category_id, category_name,category_parent_id FROM #__".$vm_db_prefix."_category, #__".$vm_db_prefix."_category_xref WHERE ";
    6.         $q .= "#__".$vm_db_prefix."_category_xref.category_child_id='$category_id' ";
    7.         $q .= "AND #__".$vm_db_prefix."_category.category_id='$category_id'";
    8.         $database->setQuery($q);
    9.         $database->loadObject($row);
    10.         if ($row->category_parent_id) {
    11.             $link = vm_sefencode($row->category_name);
    12.             $vmsefpath = "/". $link. $vmsefpath;
    13.         }
    14.         else {
    15.             $link = vm_sefencode($row->category_name);
    16.             $vmsefpath = $link. $vmsefpath;
    17.         }
    18.         $category_id = $row->category_parent_id;
    19.   } while($row->category_parent_id<>0);


    Вопрос: который вариант будет быстрее?
     

Поделиться этой страницей

Загрузка...