Подскажите кто нибудь как можно в URL убрать лишние http://sait.ru/component/virtuemart/manufacturer/1/tovar.html заранее благодарен
Приветствую. Подскажите, пожалуйста, как допилить router.php так, чтоб можно было явно руками указывать нужную транслитерацию для некоторых слов? Например, сейчас категорию аксессуары меняет на aksessuari. А мне нужно, чтоб было accessories.
Где-то в соседних темах был другой роутер - там на страницу категории добавлялось поле для псевдонима
Скажите, пожалуйста, кто-нибудь наблюдал за индексом Google после установки этого роутера, у меня 1500 страниц примерно вылетело, осталось 434 страницы и все не сгенерированные этим роутером а со старыми ссылками, которые попали в индекс до его установки. Как быть, может быть кто-нибудь сталкивался? Заранее Благодарен!
Вопрос: нафига ставить роутер, если в индексе 2000 страниц? И он никак не может повлиятьна то, что уже в индексе.
У меня до установки данного роутера в индексе google было более 10000 страниц после установки снизилось до 300 но думаю стоит подождать пару недель прежде чем делать вывод.
У меня на странице просмотра всех продуктов выдается вот такое: 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= Исправляется патчем:
Заметил что как то хитро некоторые категории обрабатывает, меняет местами родительскую категорию с дочерней: 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
я не могу понять логику этого косяка, уже названия категорий и подкатегорий менял на английские, на цифры, проверял таблицу транслитерации... все равно логики не нашел.. (( vmSEF у меня не работает изза установленного SEF патча для joomla, просто подвисает страница магазина и все
Что-то я невнимательно прочитал описание проблемы. Я лишь замечал, что категории всегда в обратном порядке выводятся. В любом случае виноват SQL Я не спец в таких запросах, так что вряд ли помогу, во всяком случае в ближайшее время.
Запрос, который виноват в путанице категорий: 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
Сделал топором нормальный вывод без перестановки категорий и подкатегорий в адресной строке с router.php заменяем запрос Код (PHP): $query = "SELECT GROUP_CONCAT( category_name SEPARATOR '/' ) FROM #__vm_category WHERE category_id IN (" . $catIdsStr . ")"; на следующий Код (PHP): if ($catIdsArr[0] < $catIdsArr[1] ) { $query = "SELECT GROUP_CONCAT( category_name ORDER BY category_id ASC SEPARATOR '/' ) FROM #__vm_category WHERE category_id IN (" . $catIdsStr . ")"; } else { $query = "SELECT GROUP_CONCAT( category_name ORDER BY category_id DESC SEPARATOR '/' ) FROM #__vm_category WHERE category_id IN (" . $catIdsStr . ")"; }
HUNTER, когда у тебя всего 2 уровня категорий, то всё ок. А если иерархия категорий будет такой: 17/5/9/ ? Всё, приплыли? Уже в $catIdsStr должны быть категории в правильном порядке и незачем их сортировать запросом.
Черт, тут ты прав, просто у меня в 1С пока что иерархия совпадает с топорным методом сортировки категории.... над третим уровнем буду думать!
В общем, пока встретил 2 реализации построения пути: 1 Код (PHP): $sql = "SELECT category_parent_id FROM #__vm_category_xref WHERE category_child_id =".$cat." LIMIT 1"; $database->setQuery($sql); $parent_cat_id = $database->loadResult(); if ($parent_cat_id != 0) { $sql = "SELECT category_name FROM #__vm_category WHERE category_id=".$parent_cat_id." LIMIT 1"; $database->setQuery($sql); $parent_name = $database->loadResult(); $this->build_cats($parent_cat_id); $title[] = trim($parent_name); } else return; и 2 Код (PHP): $vm_db_prefix = "vm"; $vmsefpath = ""; do { $q = "SELECT category_id, category_name,category_parent_id FROM #__".$vm_db_prefix."_category, #__".$vm_db_prefix."_category_xref WHERE "; $q .= "#__".$vm_db_prefix."_category_xref.category_child_id='$category_id' "; $q .= "AND #__".$vm_db_prefix."_category.category_id='$category_id'"; $database->setQuery($q); $database->loadObject($row); if ($row->category_parent_id) { $link = vm_sefencode($row->category_name); $vmsefpath = "/". $link. $vmsefpath; } else { $link = vm_sefencode($row->category_name); $vmsefpath = $link. $vmsefpath; } $category_id = $row->category_parent_id; } while($row->category_parent_id<>0); Вопрос: который вариант будет быстрее?