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

Не могу найти, где присваивается значение links объекта document


Recommended Posts

Здравствуйте!

У меня на сайте в header на все страницы выводятся теги <meta> кодом из catalog\view\theme\sport\template\common\header.tpl, из переменной $links.

<?php foreach ($links as $link) { ?>
<link href="<?php echo $link['href']; ?>" rel="<?php echo $link['rel']; ?>" />

Она инициализируется в catalog\controller\common\header.php  как

 $this->data['links'] = $this->document->getLinks();

Я хочу их поменять, но не могу найти, где происходит присвоение значения document->links

Искал в system\library\document.php, но там только описание класса. В index.php тоже не нашел.

Откуда берется значение в переменной document->links?

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


Как пример

$this->document->addLink($this->url->link('product/product', 'product_id=' . $this->request->get['product_id']), 'canonical');

 

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

Только что, denrr сказал:

Да, я понимаю как добавить, но хотелось бы понять откуда там берутся те ссылки которые уже есть?

Они добавлены таким же способом

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

    private $links = array();

    public function addLink($href, $rel) {
        $this->links[md5($href)] = array(
            'href' => $href,
            'rel'  => $rel
        );    

Это только инициализация пустого массива и методы get/set для $links.

в файле system/library/document.php ничего кроме описания нет.

header.tpl мне выводит из переменной links некоторые значения

 

 

Но я нашел этот файл, который в эту переменную забивает информацию, может кому понадобится

\catalog\controller\product\product.php

 

 

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


9 минут назад, denrr сказал:

Но я нашел этот файл, который в эту переменную забивает информацию, может кому понадобится

в эту переменную, как вы говорите, может добавить любой контроллер

11 минут назад, denrr сказал:

Это только инициализация пустого массива и методы get/set для $links.

а addStyle() и addScript()  это что по вашему?

в контроллере(любом) добавляются скрипты и стили в свойства links и styles  класса  document

$this->document->addLink(....);
$this->document->addScript(....);

в header.php  достаются данные из   document->links и document->scripts  и записываются в переменные для передачи в шаблон

$data['links'] = $this->document->getLinks();
$data['styles'] = $this->document->getStyles();

и в шаблоне выводятся

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

  • 2 years later...

Я правильно понимаю что в зависимости от установленных модулей на странице подгружаются ссылки на стили и скрипты, а сами ссылки я могу найти в контроллерах этих модулей. Допустим если на главной странице вставлен модуль Slideshow то ссылки для стилей нужно искать в  catalog/controller/extension/module/slideshow.php ?

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


так ответили же уже в той теме, что вы дублируете.
Да, обычно стили, скрипты подгружаются из контроллеров. будь то хедера, категории ,товара или каких-то модулей.
Но не всегда - иногда прописывают загрузку в tpl-twig напрямую.

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

Извините, просто по ошибке написал сюда. Но у меня так ничего и не вышло. Я нашёл файлы но изменяя значения ничего не происходит. Просто зашёл в тупик. Спасибо за помощь.

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


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

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

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

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

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

Вхід

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

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

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

Important Information

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