Механизм наследования шаблонов

Должно быть курто, но на самом деле ничего не наследуется.

#1 24 февраля 2017 в 16:43
Всем привет!

Расписано тут всё очень красиво:
docs.instantcms.ru/dev/templates/inherits

Делаем. Создаём в templates новую пустую папку, в админке переключаемся на одноимённую с папкой темой и… и ничего не унаследовалось, так как все css и скрипты должны подгружаться из соответствующих под папок, а их просто нет. А где же наследование? Почему не унаследовалось из default?
#2 24 февраля 2017 в 16:46

Для включения механизма наследования необходимо в корневой директории темы создать файл inherit.php в котором должен вернуться массив цепочки шаблонов, исключая основной шаблон (new_my_best_template) и шаблон default.

И это сделали?
#3 24 февраля 2017 в 16:50


Для включения механизма наследования необходимо в корневой директории темы создать файл inherit.php в котором должен вернуться массив цепочки шаблонов, исключая основной шаблон (new_my_best_template) и шаблон default.

И это сделали?

Jestik

Сделал. И разницы никакой. Не работает эта бодяга… да и не нужен там никакой inherit.php, так как наследоваться должно от default, а он входит в исключение. Так что тогда сделать?
Не хочу обидеть разработчика, но получается херня полная, а не наследование.
#4 24 февраля 2017 в 17:50
Всё работает, сам тестировал.
Допустим у нас есть 3 шаблона. default, compact и boxed
Основной шаблон это boxed, но мы хотим, что бы на странице Посты, был такой же вывод как у шаблона Compact ( demo5.my-instant.ru/posts )
Для этого мы создаем файл inherit.php в шаблоне boxed и указываем там имя шаблона, от которого хотим наследовать файл /templates/compact/content/posts_list.tpl.php
Тогда на странице посты будет отображаться такой же вид как у Компакт.

Но минус наследования в том, что наследуется все файлы, которые есть в другом шаблоне, т.е. от шаблона Компакт наследуется не только вид Постов, но и Новости, объявления и т.д.

Думаю в будущем наследование доработают и можно будет задать массив типа
  1. return array(
  2. 'my_best_template' = array(
  3. 'posts_list',
  4. 'board_item'
  5. )
  6. );
Тогда получиться, что мы наследуем только файлы posts_list и board_item а остальные берется из текущего шаблона, если их нет из default
#5 24 февраля 2017 в 17:59

бодяга

Игорь

херня полная

Игорь
Пожалуйста, оставьте колхоз при себе.
instantcms.ru/rules.html

А если нужна помощь, то обычно как-то без ненужных эпитетов спрашивают. А если нашли баг или недоработку, то спокойно об этом сообщают.
#6 24 февраля 2017 в 18:01


Всё работает, сам тестировал.

Evanescence
С вашим-то вариантом всё понятно. Но почему моя версия не сработала? Есть шаблон default. Я хочу создать свою тему, в которой например изменю только одни файл из css, который закину в свою папку. А всё остальное должно браться всё из того же default. Если это так не работает, то наследованием это пока можно назвать с большой натяжкой.
#7 24 февраля 2017 в 18:07


Пожалуйста, оставьте колхоз при себе.

Fuze
Какой же это колхоз? Это суровая правда жизни stuk
Мы вот, например, не первый год ждём вменяемого описания функционала и не жужжим. zst
#8 24 февраля 2017 в 20:27

Я хочу создать свою тему, в которой например изменю только одни файл из css, который закину в свою папку

Игорь
Можно обойтись без наслодования, создаете свой шаблон, но там обязательно должны быть файлы
admin.tpl.php
main.tpl.php
scheme.html

В main.tpl.php везде меняете $this->name на default что бы файлы грузились с дефолт
#9 25 февраля 2017 в 01:47
Игорь, вас просто попросили без смешков и приколов высказываться
Evanescence Вам помог и разложил все по полочкам как надо сделать.
Что за это ему Большое спасибо, я попробовал тоже.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.