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

 
Посетитель
small user social cms
МедальПочетный донор проектаАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2553
У меня такой вопрос.

2 ситуации

1

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

Но если покупатель ставит в ручном режиме http://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 недоступен?
Виджеты, поля и компоненты для instantcms 2 http://www.zau4man.ru/
InstantCMS Team
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 4363
Файлы js должны лежать в /templates/шаблон/js/, т.е. не в
templates/default/widgets/socialwd/my.js
а здесь:
templates/default/js/socialwd/my.js
и тогда нужно юзать как то так
Код PHP:
  1. $this->addJS($this->getJavascriptFileName('socialwd/my'));
почти тоже самое и с css, см. getStylesFileName, но там привязка к контроллеру, а у вас судя по всему общий виджет. В этом случае проверять самостоятельно наличие файлов в дефолтном или кастомном шаблоне по аналогии.
Видео каталог для InstantCMS | Аудио каталог для InstantCMS | Мы Вконтакте | Предложение для спонсоров
Реклама
cms
Посетитель
small user social cms
МедальПочетный донор проектаАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2553
Fuze, спасибо. Нашел описание методов в core/template.php
т.е. такая возможность есть. Но при каждой загрузке виджета будет инициализироваться класс ($config + 2 запроса к жесткому диску)*количество файлов

Наверно лучше объяснить юзеру, что распаковать надо в папку default...
Виджеты, поля и компоненты для instantcms 2 http://www.zau4man.ru/
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3549
Zau4man:
Наверно лучше объяснить юзеру, что распаковать надо в папку default...
В любом случае вам надо объяснить юзеру (заказчику), что надо копировать сперва в дефолт, а потом в папку своего шаблона. Я как сторонний разработчик (может ещё кто) ориентируюсь на дефолт и первое, что я спрашиваю, это "А на дефолтном шаблоне у вас работает???", дабы исключить "кривости" стороннего шаблона от "кривостей" своей разработки.
Редактировалось: 1 раз (Последний: 22 июня 2015 в 16:08)
Посетитель
small user social cms
МедальПочетный донор проектаАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2553
Закрываю.
Виджеты, поля и компоненты для instantcms 2 http://www.zau4man.ru/
В начало страницы
Предыдущая темаСледующая тема Перейти на форум: