Fi1osof 12 сентября 2016 3 4
Материал для тех, что внимательно читал вот эту статью и для тех, кто освоил переопределяющие шаблоны.

В настройках modxSmarty имеется две переменных — modxSmarty.template и modxSmarty.pre_template, что позволяет иметь основной шаблон и переопределяющий его. А что делать, если нужно добавить еще один или более шаблонов? Это может быть, к примеру, персональное оформление для авторизованного пользователя, или мобильная версия сайта, или очередная версия скина (v1, v2, v3..., чтобы в новой версии только измененные файлы дописывать, а не вообще все копировать). Лично у меня здесь задача другая — добавить подключаемый скин элемента в новом компоненте, чтобы сразу шаблоны компонента подключались в систему, но чтобы эти шаблоны можно было переопределять в своем боевом шаблоне сайта.

Вот такой вот плагин у меня получился:
print_r($modx->smarty->template_dir);

switch($modx->event->name){
    
    case "OnHandleRequest":
        
        if(!empty($modx->smarty)){
            $dirs = $modx->smarty->getTemplateDir();
    
            $dirs = array_merge(array(
                "crosslinks"    => MODX_CORE_PATH . "components/crosslinks/templates/default",
            ), $dirs);
            
            $modx->smarty->setTemplateDir($dirs);
        }
        
        break;
}

В таком случае очередность будет другая.
{extends "[crosslinks]inc/editor/crosslinks/element.tpl"}
4 комментария
stager1
stager 12 сентября 2016г в 20:39 #
Хотя у меня и есть версии скинов, до необходимости искать решение для их быстрого переопределения начал доходить только сейчас :)
Поэтому данное решение однозначно беру на заметку
Fi1osof1
Fi1osof 12 сентября 2016г в 20:42 #
Я давно подобное реализовывал на одном проекте, но вот сейчас опять коснулось, и пришлось ресерчинг с нуля опять делать. Решил сразу заметку зафиксировать)
g
gvozdika_z 14 сентября 2016г в 08:06 #
Николай, я жду от вас обратной связи. Уже не знаю, куда писать.
А
Александр Здоров 15 сентября 2016г в 12:35 #
аналогичным образом жду обратной связи по моему проекту, сроки просрочены, есть проблемы и большие!
Авторизуйтесь или зарегистрируйтесь (можно через соцсети ), чтобы оставлять комментарии.