Вопрос Как получить доступ к кастомным переменным шаблона YooTheme в материале?

Тема в разделе "Программирование", создана пользователем AWKirin, 03.07.2017.

  1. AWKirin
    Offline

    AWKirin Недавно здесь

    Регистрация:
    06.11.2014
    Сообщения:
    9
    Симпатии:
    0
    Пол:
    Мужской
    Сутки лазил в интернете и ничего толком не нашел хотя скорее всего из за того что я просто неправильно запросы делал.

    Задача:

    На сайте 4 адреса клиник и 4 телефона которые располагаются в элементах шаблона, на страницах контактов и в материалах и категориях.
    хотелось бы иметь возможность менять их на 1 странице настроек.

    В коде шаблона я нашел как это сделать

    В корневом файле /config.xml на странице редактора кода шаблона YooTheme Eat добавил следующие поля:
    Код (CODE):
    1. <fields name="Адреса и телефоны" icon="uk-icon-info-sign">
    2.       <field type="text" name="addres-1" label="Адрес 1" description="Адрес 1" />
    3.       <field type="text" name="phone-1" label="Телефон 1" description="Телефон 1" />
    4.       <field type="text" name="addres-2" label="Адрес 2" description="Адрес 2" />
    5.       <field type="text" name="phone-2" label="Телефон 2" description="Телефон 2" />
    6.       <field type="text" name="addres-3" label="Адрес 3" description="Адрес 3" />
    7.       <field type="text" name="phone-3" label="Телефон 3" description="Телефон 3" />
    8.       <field type="text" name="addres-4" label="Адрес 4" description="Адрес 4" />
    9.       <field type="text" name="phone-4" label="Телефон 4" description="Телефон 4" />
    10.     </fields>


    Заполнил их в настройках темы и получилось вывести в теме дизайна вот таким кодом
    Код (CODE):
    1. <?php echo $this['config']->get('phone-1'); ?>


    Так как джумла из коробки в модулях и материалах не хочет работать с кодом PHP пришлось ее научить скормив плагин Sourcerer

    PHP код начал работать к примеру вот это выводит массив текущего документа
    Код (CODE):
    1. {source}<?php
    2.     $document = & JFactory::getDocument();
    3.     echo '<pre>';
    4.     var_dump($document);
    5.     echo '</pre>';
    6. ?>{/source}


    Но нужный мне код не работает
    Код (CODE):
    1. {source}<?php echo $this['config']->get('phone-1'); ?>{/source}

    Выдает ошибку "0 Call to a member function get() on null"

    При попытке var_dump($this) ответ NULL

    Что я делаю не так?

     
  2.  
  3. Лучший ответ:
    Сообщение #4 от 04.07.2017, автор OlegK
  4. OlegK
    Offline

    OlegK Russian Joomla! Team Команда форума ⇒ Профи ⇐

    Регистрация:
    17.01.2011
    Сообщения:
    7 813
    Симпатии:
    771
    Пол:
    Мужской
    Пытаешься получить данные не созданного экземпляра объекта настроек шаблона .
     
  5. AWKirin
    Offline

    AWKirin Недавно здесь

    Регистрация:
    06.11.2014
    Сообщения:
    9
    Симпатии:
    0
    Пол:
    Мужской
    А можно как то по подробнее?
     
  6. OlegK
    Offline

    OlegK Russian Joomla! Team Команда форума ⇒ Профи ⇐

    Регистрация:
    17.01.2011
    Сообщения:
    7 813
    Симпатии:
    771
    Пол:
    Мужской
    Лучший ответ
    Код (PHP):
    1. <?php
    2. $registry = new JRegistry;
    3. $registry->loadFile('templates/name_template/config.json','JSON');
    4.  
    5. echo $registry->get('phone-1'); ?>
     
    AWKirin нравится это.

Поделиться этой страницей

Загрузка...