Разбираюсь с наследуемым шаблоном

InstantCMS 2.X

Подключение CSS и JavaScript файлов с default шаба

#1 7 июня 2017 в 23:27
Всем почтение, разбираюсь с шаблонами, все тки хочется по уму хотя б один сделать — чуть чуть измененный дефолт, чтоб каждый раз при обновлении не мержить, вот решил попробовать новые фишки, но что то как то пока не выходит..
Добавил файл inherit.php с содержимым
  1.  
  2. <?php
  3. return array(
  4. 'default',
  5. 'my_temp',
  6. );
  7. ?>
  8.  
Добавляю в майн.тпл своего шаба
  1.  
  2. <?php $this->addMainCSS ($this->getStylesFileName('css/theme-text.css')); ?>
  3. <?php $this->addMainCSS ($this->getStylesFileName('css/theme-layout.css')); ?>
  4. <?php $this->addMainCSS ($this->getStylesFileName('css/theme-gui.css')); ?>
  5. <?php $this->addMainCSS ($this->getStylesFileName('css/theme-widgets.css')); ?>
  6. <?php $this->addMainCSS ($this->getStylesFileName('css/theme-content.css')); ?>
  7. <?php $this->addMainCSS ($this->getStylesFileName('css/theme-modal.css')); ?>
  8.  
Ну и с js тоже только соответственно через $this→getJavascriptFileName().
Но вот не хочет он выводить стили и скрипты..
Сейчас у меня 5 файлов в моем шабе: inherit.php, main.tpl.php, options.css.php, options.form.php, scheme.html
Подскажите что я делаю не так, или в чем может быть проблема…
#2 7 июня 2017 в 23:40
Используйте
  1. $this->addCSS($this->getTplFilePath('ПУТЬ_ДО_ФАЙЛА.css', false));
Только не понял, если на вашем шаблоне только эти файлы inherit.php, main.tpl.php, options.css.php, options.form.php, scheme.html
Зачем искать их в наследуемых шаблонах? почему бы сразу не подключить с default?
#3 7 июня 2017 в 23:56
Evanescence, ну во первых хочется попробовать как это работает, и интересно попробовать не на двух, а на более шаблонах… Пока с двумя пробую…
#4 8 июня 2017 в 00:10
Наследование тестировал давно и уже многое не помню, но вот что я понял:
Допустим у нас есть 4 шаблона: default, boxed, testo, ktpl
Основной шаблон это boxed, но нам нравиться стиль списка новостей от шаблона testo и стиль списка блогов от ktpl.
С помощью наследование, мы может вывести в шаблоне boxed, стили из других шаблонов, например /templates/testo/content/news_list.tpl.php

Для этого в boxed создаем файл inherit.php и укажем список шаблонов, тогда система будет искать tpl файлы по указанным шаблонам и выводить.

(i) могу возникать проблемы с подключением скриптов, по этому разработчикам шаблонов пора переходить на getTplFilePath()
#5 8 июня 2017 в 00:31
Evanescence, запутанно, спасибо, пока потренируюсь попробую понять принцип сам
#6 8 июня 2017 в 10:21
jorgovich, раньше было так, если в установленном шаблоне чего то не хватает, то это искалось сразу в дефолтном шаблоне, а сейчас можно указать по каким шаблонам в начале поискать. С tpl ничего делать не надо они автоматом ищутся а вот скрипты и стили нужно подключать по другому. чем это сделано в дефолтном файле.
#7 8 июня 2017 в 11:26

раньше было так, если в установленном шаблоне чего то не хватает, то это искалось сразу в дефолтном шаблоне

Atid — Gorec
И сейчас так, если не прописать последовательность шаблонов в inherit.php. Кстати, в этом файле default можно не указывать.
Как уже сказали, во всех промежуточных шаблонах подключение файлов стилей и скриптов, должно производится через getTplFilePath()
  1. <?php $this->addMainCSS($this->getTemplateStylesFileName('example.min')); ?>
  2. <?php $this->addMainJS($this->getJavascriptFileName('jquery')); ?>
  3. <?php $this->addMainCSS($this->getTplFilePath('css/bootstrap/bootstrap.min.css', false)); ?>
  4. <?php $this->addMainJS($this->getTplFilePath('js/bootstrap/bootstrap.min.js', false)); ?>
  5.  
как видно в примерах, прописывание расширения файла зависит от способа подключения.
#8 8 июня 2017 в 12:35

а сейчас можно указать по каким шаблонам в начале поискать.

Atid — Gorec
Подразумевалась запись в inherit.php
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.