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

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


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
Надіслати
Поділитися на інших сайтах


  В 17.10.2021 в 03:51, Blade сказав:

а почему просто не вставить ссылку в статью при редактировании ?

Expand  

Это динамически генерируемый блок, а не статика. 

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


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

$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
Надіслати
Поділитися на інших сайтах

  В 18.10.2021 в 12:31, nogocuHoBuk сказав:

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

Expand  

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

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


  В 18.10.2021 в 18:18, fjodor сказав:

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

Expand  

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

 

  В 18.10.2021 в 18:18, fjodor сказав:

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

Expand  

Так Вы, опять же, если 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 і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.