Как правильно использовать {$this->name} ?

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО
#1 22 июня 2015 в 15:20
У меня такой вопрос.

2 ситуации

1

В файле шаблона виджета подтягиваю css, js и др. кодом
  1. $this->addCSS("templates/default/widgets/socialwd/style.css");
Файлы шаблона (css, js и др.) лежат в шаблоне default. При автоматической установке все работает нормально.

Но если покупатель ставит в ручном режиме docs.instantcms.ru/manual/addons и содержимое папки templates/default/ распаковывает в свою папку шаблона, css, js и др. перестают подтягиваться, что логично, их в папке default нет

2

Есть возможность ссылаться на шаблон юзера через {$this->name}. И при ручной установке, описанной выше, все будет ок. НО! При автоматической установке получим нерабочий виджет при условии, что у юзера шаблон не default.

Я же правильно понимаю, что при сборке установочного пакета у нас нет вариантов, кроме как складывать файлы шаблона в папку default?
Как быть с самостоятельными юзерами?
Есть автоматический вариант подгрузки файла templates/default/widgets/socialwd/my.js если templates/{$this->name}/widgets/socialwd/my.js недоступен?
#2 22 июня 2015 в 15:42
Файлы js должны лежать в /templates/шаблон/js/, т.е. не в
templates/default/widgets/socialwd/my.js
а здесь:
templates/default/js/socialwd/my.js
и тогда нужно юзать как то так
  1. $this->addJS($this->getJavascriptFileName('socialwd/my'));
почти тоже самое и с css, см. getStylesFileName, но там привязка к контроллеру, а у вас судя по всему общий виджет. В этом случае проверять самостоятельно наличие файлов в дефолтном или кастомном шаблоне по аналогии.
#3 22 июня 2015 в 15:59
Fuze, спасибо. Нашел описание методов в core/template.php
т.е. такая возможность есть. Но при каждой загрузке виджета будет инициализироваться класс ($config + 2 запроса к жесткому диску)*количество файлов

Наверно лучше объяснить юзеру, что распаковать надо в папку default…
#4 22 июня 2015 в 16:08

Наверно лучше объяснить юзеру, что распаковать надо в папку default...

Zau4man
В любом случае вам надо объяснить юзеру (заказчику), что надо копировать сперва в дефолт, а потом в папку своего шаблона. Я как сторонний разработчик (может ещё кто) ориентируюсь на дефолт и первое, что я спрашиваю, это "А на дефолтном шаблоне у вас работает???", дабы исключить "кривости" стороннего шаблона от "кривостей" своей разработки.
#5 22 июня 2015 в 20:28
Закрываю.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.