Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

[Решено] Вывод seo-url в списке товаров в админке


Recommended Posts

Пришла в голову идея реализовать отображение ЧПУ (seo-url, keyword, url_alias) в списке товаров в админке, а то открывать каждый товар чтобы посмотреть его ЧПУ - это просто каменный век какой-то.

 

В файле admin/view/template/catalog/product_list.tpl добавил в ячейку с названием товара код

<br />
<span style="font-size:11px;color:#777;">
    <?php echo $product['keyword']; ?>
</span>

В файле admin/controller/catalog/product.php после

$this->data['products'][] = array(
    'product_id' => $result['product_id'],
    'name'       => $result['name'],

добавил

    'keyword'    => $result['url_alias'],

В файле admin/model/catalog/product.php после

$sql = "SELECT p.*, pd.*,  m.name as 'm_name' FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id)";

добавил

$sql .= " LEFT JOIN " . DB_PREFIX . "url_alias ua ON (query = CONCAT('product_id=', p.product_id))";

Но ничего не получилось. В Opencart привязка ЧПУ к товарам выполняется через сопоставление поля product_id из таблицы product с полем query из таблицы url_alias, в котором данные хранятся не в виде цифры, а в виде строки вида "product_id=XX", а канкотенация в моем запросе, по всей видимости, не работает. Пол дня и почти всю ночь на это убил :ugeek:

Люди добрые, помогите написать правильный запрос, думаю, реализация ЧПУ в списке товаров ни для кого не будет лишней.

post-681976-0-64630500-1452909429_thumb.png

Надіслати
Поділитися на інших сайтах


Спасибо за пинок и за исправление! Так сложилось, что пришлось воспользоваться еще и чужим  ;)

 

Итак, готовое решение.

В файле admin/view/template/catalog/product_list.tpl добавляем в ячейку с названием товара (или любую другую) код

<br />
<span style="font-size:11px;color:#777;">
    <?php echo $product['keyword']; ?>
</span>
В файле admin/controller/catalog/product.php после

$this->data['products'][] = array(
    'product_id' => $result['product_id'],
    'name'       => $result['name'],
добавляем

    'keyword'    => $result['keyword'],
В файле admin/model/catalog/product.php вместо

$sql = "SELECT p.*, pd.*,  m.name as 'm_name' FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id)";
вставляем

$sql = "SELECT p.*, pd.*,  m.name as 'm_name', ua.keyword FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id)";
$sql .= " LEFT JOIN " . DB_PREFIX . "url_alias ua ON (query = CONCAT('product_id=', p.product_id))";
Результат - очень удобно и можно визуально определять "шероховатые" ссылки наподобие трех последних :-)

2016-01-16_111921.png

Надіслати
Поділитися на інших сайтах


Увы, здесь не нужны никакие SQL запросы

Нужен некий api для получения ЧПУ

 

можно на каждую ссылку делать запрос к api (очень затягивает по времени)

 

можно отсылать запрос на получение ЧПУ списка (один внешний запрос)

 

Можно сделать копию seo_url, seo_pro и внедрить их в админку.

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.