Перейти к содержанию
Официальный форум поддержки Simpla

question

Пользователь
  • Публикаций

    275
  • Зарегистрирован

  • Посещение

Весь контент question

  1. После экспериментов правки в htaccess получились такими RewriteRule ^([0-9]+)/(.*).html$ index.php?module=ProductView&cid=$1&product_url=$2 [L,QSA] RewriteRule ^([0-9]+)/?$ index.php?module=ProductsView&id=$1 [L,QSA] RewriteRule ^([0-9]+)/([^/]+)/?$ index.php?module=ProductsView&id=$1&brand=$2 [L,QSA] RewriteRule ^catalog/([0-9]+)$ /$1 [R=301,L] Последняя строчка необязательна - чисто чтобы мои старые ссылки работали. Логика такая: если человек заходит на страницу типа site.ru/оплата_и_доставка , то попадает на нужную страницу, если на site.ru/88/ , то попадае
  2. Спасибо, вроде, работает ЧЁТКО api/products.php в районе 130 строки b.url as brand_url, (SELECT category_id FROM __products_categories WHERE product_id = p.id ORDER BY position ASC LIMIT 1) as category_id FROM __products p $category_id_filter Ссылка в tpl-файлах на товар должна быть в виде <a href="catalog/{$product->category_id}/{$product->url}"> Смотрю, вроде, работает. Дальше тестировать буду уже завтра. http://forum.simplacms.ru/topic/13973-му-мур-гав-хрю/ Эта страница существует? И ещё правка. В ht
  3. Именно ID первой категории я и хочу получить (как, пока не знаю, если знаете вы, напишите), чтобы передавать в шаблон products.tpl Если значение неправильное, стоит ли выдавать 404? В принципе, сеошники говорят, что всё равно - 404, редирект, каноникал (а может врут?).
  4. Я до этого ещё не дошёл. Буду искать, как получить id категории товара. И если категорий несколько, выводить id первой категории, в которой есть товар. Можно сделать через foreach categories, но это (возможно сильно) увеличит нагрузку на БД.
  5. Я делаю - пишу. С подключением meta canonical товар будет, например, по адресам 1. site.ru/catalog/123/telefon (верный) 2. site.ru/catalog/456/telefon (неверный) Но если телефон находится в категории 123, второй приведённый мною url яндекс не будет индексировать - раз. При http-редиректе если вы зайдёте по неверному адресу (второму), то попадёте на первый. То есть, я сделал то же самое, что и в этой ветке на форуме. Вот у нас 2 разных адреса 1. http://forum.simplacms.ru/topic/13973-открытие-категории-по-id/ 2. http://forum.simplacms.ru/topic/13973-открытие-категории-по-id000/ Верный и невер
  6. Предыдущая строчка для вывода <link rel="canonical"> Дальше в index.tpl {if ($product) && ($category->id != $cid)} <meta http-equiv="refresh" content="0; url=/catalog/{$category->id}/{$product->url}"> {/if}
  7. Поправлюсь. .htaccess RewriteRule ^catalog/([0-9]+)/(.*)$ index.php?module=ProductView&cid=$1&product_url=$2 [L,QSA] ProductView.php $cid = $this->request->get('cid', 'string'); $this->design->assign('cid', $cid); product.tpl {$canonical="/catalog/{$category->id}/{$product->url}" scope=parent}
  8. Прописал в htaccess (чуть раньше упоминания catalog) строку: RewriteRule ^catalog/([0-9]+)/(.*)$ index.php?module=ProductView&product_url=$2 [L,QSA] Теперь по адресу site.ru/catalog/123/telefon1 отображает товар telefon1 Теперь надо придумать, что делать дальше. Либо 1. выводить 404 ошибку, если id не совпадает с id категории, в которая содержит товар (кажется, $product->category->id) , 2. либо прописать единственно верный url в canonical. 3. либо делать html-редирект в мета-тегах. Первый вариант непрост в реализации, ведь Smarty не позволяет передавать header А что вы, уважа
  9. Видите ли, прописать в .htaccess вместо product регулярное выражение, которое означает "только цифры", кажется (поправьте, если ошибаюсь), это ^[0-9]+$ - минута делов, таким образом товар с url telefon1 будет открываться по адресам: site.ru/1/telefon1 site.ru/2/telefon1 site.ru/29649/telefon1 site.ru/2/telefon1
  10. Буду благодарен, если подскажете, как выводить товар по адресу site.ru/category/id/name, где name - имя товара, id - id категории, в которой этот товар содержится (во всех остальных случаях выводить 404 ошибку).
  11. В моём случае в tpl файлах шаблона все вхождения $c->url надо было заменить на $c->id, но это мой (частный) случай. Теперь можно открывать разделы по адресу site.ru/category/1/ Ещё бы товары открывать по адресу site.ru/category/1/telefon, причём если товара в категории нет, выводить 404, было бы вообще офигенно.
  12. Огромное спасибо. Решение очень простое: 1. Добавляем в файл ProductsView.php строки $category_id = $this->request->get('id', 'string'); и далее if (!empty($category_id)) { $category = $this->categories->get_category((int)$category_id); if (empty($category) || (!$category->visible && empty($_SESSION['admin']))) return false; $this->design->assign('category', $category); $filter['category_id'] = $category->children; } Теперь раздел сайта доступен по адресу типа sit
  13. Для вывода изображения вам надо будет редактировать api/Comments.php, конкретно это обращение к базе if($filter['type'] == 'product') { $products_fields = ', p.url, p.name product'; $products_join = 'INNER JOIN __products p ON c.object_id=p.id'; } В таблице s_products нет изображений, нужно запросить из s_images, где тот же idБез этого вам доступен {$comment->url} вместо вашего {$comment->purl}, непонятно откуда взявшегося.
  14. Когда писал первое сообщение, думал, автор все пути и всю логику поменял. Сейчас глянул код, понял, что шило на мыло.
  15. Интересная вещь. Сделаю-ка я пожалуй и себе отдельную страницу с отзывами. Страницу добавлю в закладки, завтра посмотрю, как вывести к нужному товару его картинку, и хватит ли моих знаний. А пока я занят, попробуйте куда-нибудь вставить такой код {foreach $last_comments as $comment} {$comment->name|escape} {$comment->url} {$comment->product} {$comment->product->image} {/foreach} Должен вывести url адрес товара, его имя и изображение (изображение вряд ли, но попробуйте).
  16. Предвидя вопрос "зачем", отвечу. Я хочу провести seo-эксперимент, для начала мне нужно три примерно одинаковых магазина с url категории товаров вида site.ru/category/telefony site.ru/category/1 site.ru/telefony и так далее. Предвижу, что кто-то из вас наверняка знает, как отнесутся поисковики к почти одинаковым магазинам с разными url, но я хочу поставить эксперимент самостоятельно.
  17. Сейчас (без применения редиректов) категории открываются по такому url site.ru/index.php?module=ProductsView&category=telefony Мне же нужно, чтобы категория была доступна по адресу site.ru/index.php?module=ProductsView&id=1 то есть, по его id. Как? Полагаю, в ProductsView.php нужно получить id категории из url адреса $category_id = $this->request->get('id', 'string'); Смотрю далее, примерно 45 строчка $category = $this->categories->get_category((string)$category_url); То есть, как я понимаю, функция get_category, описанная в Categories.php, получает категорию по $
  18. Покажите демо, как оно всё работает.
  19. Для упорядочивания хлебных крошек и приведения их к единому стандарту, было решено сделать следующее: Для начала увеличиваем позицию всех категорий на 1. UPDATE `s_products_categories` SET `position` = `position` +1; Затем либо выписываем вручную категории, которые должны быть "основными" в хлебных крошках, либо (в моём случае) выбираем дочерние категории из той категории, которая у нас основная (в моём случае "элементы мебели") SELECT `id` FROM `s_categories` WHERE `parent_id` like '%149%' Далее полученным id категорий присваиваем позицию равную 0 для того, чтобы эти категории были "основ
  20. Пока думал и гадал, залез в БД и в голову пришло вот такое решение. Позиция находится в столбце position таблицы s_products_categories. Нужно просто определённым категориям назначить position минимальное значение
  21. У товаров, добавленных в разное время, разная "первая категория". В итоге сейчас у двух разных столов в хлебных крошках отображается Детская мебель -> малютка -> Стол1 Элементы мебели ->Столы -> Стол2 Хочу, чтобы у всех столов хлебные крошки были одинаковыми: Элементы мебели ->Столы -> Стол1 Элементы мебели ->Столы -> Стол2 Элементы мебели ->Столы -> Стол3
  22. А вы думаете, разработчик должен написать что-то вроде "Я тут в одиночку наваял код, он работает почти как интернет-магазин, только допиливать надо, прошу за это 400 баксов, налетайте"?
  23. Здравствуйте. Столкнулся со следующей проблемой: каждый товар (например, возьмём абстрактный, "стол малютка") размещён одновременно в трёх категориях: Модульная мебель -> малютка Детская мебель -> малютка Элементы мебели ->Столы Товаров очень много, и хлебные крошки в них выводятся как им вздумается. У стола первой категорией будет Модульная мебель -> малютка, а у комода - Детская мебель -> малютка Пройтись по всем товарам и привести их к единому виду не представляется возможным. Как это сделать программно? Мне не нужно готовое решение, просто подскажите алгоритм или в как
×
×
  • Создать...