Перейти к содержимому


Нужна консультация по чпу. Интернет-магазин


В теме одно сообщение

#1 Татьяна

    Пользователь

  • Клиенты WebForMySelf
  • PipPip
  • 29 сообщений
  • ГородЧелябинск
Репутация: 0

Отправлено 12 Декабрь 2017 - 09:32

Покупала курс "Интернет-магазин". Давно. Все сделала, все устраивало.
Но у меня ссылки вида site.ru/product/128, site.ru/category/2
А хотелось бы site.ru/igrushki;; site.ru/lol-surprise

Я в базе данных в таблице goods добавила строку prod_title, где вручную прописала английскими буквами все названия
в Brands тоже добавила строку category_title, где вручную прописала английскими буквами все названия

а также в файле .htaccess строчку
RewriteRule ^product/(\d+)/?$ index.php?view=product&goods_id=$1
заменила на
RewriteRule ^product/(\d+)/?$ index.php?view=product&prod_title=$1

И теперь у меня ссылки выводятся по-старому site.ru/product/128, только написано, что такой продукт отсутствует
Что не так?

Кто-нибудь может мне помочь? За деньги

#2 matroskin8

    Администратор

  • Администраторы
  • 12 334 сообщений
Репутация: 2 111

Отправлено 12 Декабрь 2017 - 10:11

Татьяна, давайте попробуем решить без денег пока, думаю, у Вас получится.
Смотрите, правило должно быть примерно таким:
RewriteRule ^product/([a-z0-9-]+)/?$ index.php?view=product&prod_title=$1
В этом случае будут пропускаться не только цифры, но еще и буквы, а также дефис. Если нужны дополнительные символы, тогда добавьте и их. Также в кейсе product нужно внести некоторые правки. Эту строку:
$goods_id = abs( (int)$_GET['goods_id'] );
заменить этой:
$goods_id = $_GET['goods_id'];
Поскольку это уже не ID продукта, а его алиас. В функции get_goods модели вносим изменения в запрос, он должен быть таким:
$goods_id = mysql_real_escape_string($goods_id);
$query = "SELECT * FROM goods WHERE prod_title = $goods_id AND visible = '1'";

Это все, чтобы получить данные по продукту. Теперь чтобы выводить ссылки на продукты. Например, в категории. Для начала в функции products модели добавьте искомое поле в список других полей запроса. Ну а в представлениях найдите все ссылки на товар и замените их на нужный вид. Например, такую ссылку:
<h2><a href="<?=PATH?>product/<?=$product['goods_id']?>"><?=$product['name']?></a></h2>
нужно заменить такой:
<h2><a href="<?=PATH?>product/<?=$product['prod_title']?>"><?=$product['name']?></a></h2>

Как-то так, попробуйте для начала сами, возможно получится. Если не получится, тогда пишите в личку.





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных