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

Получение ссылки на статью


fjodor

Recommended Posts

Ребят, всем привет! Есть такой вопросик. Мне необходимо на странице статьи вывести сслыки на следующие 3 статьи. В opencart я профан и написал такие костыли в контроллере article.php:

if (isset($this->request->get['article_id'])) {
            $id_item = $this->request->get['article_id'];

            if ($id_item == 135) {
                $data["first_art"] = $this->model_catalog_article->getArticle(1);
                $data["second_art"] = $this->model_catalog_article->getArticle(2);
                $data["third_art"] = $this->model_catalog_article->getArticle(3);
            } elseif ($id_item == 134) {
                $data["first_art"] = $this->model_catalog_article->getArticle($id_item + 1);
                $data["second_art"] = $this->model_catalog_article->getArticle(1);
                $data["third_art"] = $this->model_catalog_article->getArticle(2);
            } elseif ($id_item == 133) {
                $data["first_art"] = $this->model_catalog_article->getArticle($id_item + 1);
                $data["second_art"] = $this->model_catalog_article->getArticle($id_item + 2);
                $data["third_art"] = $this->model_catalog_article->getArticle(2);
            } else {
                $data["first_art"] = $this->model_catalog_article->getArticle($id_item + 1);
                $data["second_art"] = $this->model_catalog_article->getArticle($id_item + 2);
                $data["third_art"] = $this->model_catalog_article->getArticle($id_item + 3);
            }
        }

С горем пополам получил массивчик:

Array
(
    [article_id] => 3
    [image] => catalog/test/Foto11.jpg
    [date_added] => 2016-05-27
    [date_modified] => 2021-05-18
    [sort_order] => 3
    [status] => 1
    [viewed] => 0
    [language_id] => 2
    [name] => test
    [description] => <p><br></p>
    [meta_title] => test
    [meta_description] => test   

)
						

Всё бы ничего, но чёрт возьми нет ссылки на статью. Подскажите, пожалуйста, как получить seo-ссылку? И можно ли как-то оптимизировать эти костыли?

Змінено користувачем fjodor
Надіслати
Поділитися на інших сайтах


Не совсем понятно откуда у Вас 

$this->model_catalog_article->getArticle()

Я могу путать, но мне казалось, что модель получения статьи находится в блоге:

$this->model_blog_article->getArticle()

Но, на самом деле, раз у Вас работает, значит реализовано либо шаблоном либо дополнением каким-то. Не суть.
По факту ссылку на статью можно вывести напрямую по article_id

/index.php?route=blog/article&article_id=123

В Вашем случае (судя по модели) возможно так:
 

/index.php?route=catalog/article&article_id=123

 

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

5 часов назад, nogocuHoBuk сказал:

/index.php?route=catalog/article&article_id=123

Спасибо за ответ! Я уже рассматривал такой вариант. И он действительно рабочий, но есть один нюанс.  Передо мной стоит задача вывести блок похожих статей на странице самой статьи. Дабы сделать перелинковку на смежные статьи. Естественно понятно, что ветерок дует со стороны сеошников. И их такой варик вряд ли вдохновит, ведь суть именно в том, чтобы вывести чпушные-урлы и скормить их поисковым роботам. Судя по тому, что никто не стремится отвечать из вариантов у меня остаётся только прямой запрос к базе. Жаль... Я думал в 21 веке, есть способы намного проще, а оказывается не во всех движках...

Змінено користувачем fjodor
Надіслати
Поділитися на інших сайтах


23 минуты назад, fjodor сказал:

ветерок дует со стороны сеошников

Дык там же урлреврайт уже работать будет. 
 

 

23 минуты назад, fjodor сказал:

прямой запрос к базе

Так Вы, опять же, если SEOURL не прописан ничего толком то и не получите. А если прописан то, опять же, никак, кроме прямого запроса к БД его не получить.
Так что да. Получаем article_id.
По нему тыкаемся к базе "со словами":
 

SELECT `keyword` FROM `oc_seo_url` WHERE `query` = 'article_id=123' AND `language_id` = '" . (int)$this->config->get('config_language_id') . "'



 

Змінено користувачем nogocuHoBuk
  • +1 1
Надіслати
Поділитися на інших сайтах

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

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

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

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

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

Вхід

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

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

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

×
×
  • Створити...

Important Information

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