ЧПУ: ulr = id

Тема в разделе "Общие вопросы", создана пользователем aeroseo, 21 дек 2021.

  1. aeroseo

    aeroseo Новичок

    Сообщения:
    20
    Симпатии:
    0
    Приветствую, друзья!
    Решил сделать чтобы в ссылки ЧПУ товара подставлялось id по условию "если поле оставить пустым".
    В файле модели (admin/model/catalog/product.php)

    Перед строкой
    $this->db->query("INSERT INTO " . DB_PREFIX . "url_alias SET query = 'product_id=" . (int)$product_id . "', keyword = '" . $this->db->escape($data['keyword']) . "'");

    Сделал условие проверки "если поле заполнено", заменив: if ($data['keyword'])
    на
    if (isset($data['keyword']) & !(empty(trim($data['keyword']))))

    Далее, альтернативный вывод с присвоением переменной:
    } else {
    $seo_url = $product_id;

    Вопрос: в правильном направлении двигаюсь то хоть? Спасибо)
     
  2. Chukcha

    Chukcha Специалист

    Сообщения:
    3.013
    Симпатии:
    685
    нет и да



    правильно было бы

    сайт//product/NNNN

    затем вы в htaccess старку такого вида, преобразовываета в

    rewriterule product/([\d]+)$ index.php?route=product/product&product_id=$1



    Затем в сеоурл в методе rewrite
    вы вместо запроса в базу подставляет туда переданный product_id

    Что это вам даст?
    Вы избавитесь от массы лишних запросов на получение ЧПУ товаров
     
  3. aeroseo

    aeroseo Новичок

    Сообщения:
    20
    Симпатии:
    0
    Имеется ввиду "домен/категория/NNNN ?
    Просто именно этого и хочу добиться. Где NNNN = id товара.
    Или вас неверно понял?
     
  4. Chukcha

    Chukcha Специалист

    Сообщения:
    3.013
    Симпатии:
    685
    я имею ввиду, что уникальность id даст имено prefix product

    Можно, наверное сделать иначе



    сайт://кетегория1/категория2/NNNN
    но тогда и правило
    rewriterule (.+)/([\d]+)$ $1/?route=product/product&product_id=$2
    rewriterule (.+)/(.+).([\d]+)$ $1/$2/?route=product/product&product_id=$3

    не уверен в правильности - но идея такая
     
  5. aeroseo

    aeroseo Новичок

    Сообщения:
    20
    Симпатии:
    0
    Суть уловил. Для полноты понимания, пойду - подучу регулярку)
    Спасибо!