Скелет шаблона icms2

#1 22 ноября 2015 в 23:53
Реально ли такое сделать? или может кто уже сделал?
ща немного подробнее о чем речь:

Интересует метод создания шаблона с ноля (абсолютно пустого и чистого шаблона).
Как создаются шаблоны я представляю, но есть ли возможность чистого создания.
По чистым созданием имею ввиду:

1. Создаем новый шаблон (создаем папку newtpl в папке с шаблонами), отключаем вывод всего на главной странице, т.к. шаблоны вывода еще отсутсвуют
2. Создаем в нем main.tpl.php (не подключаем в нем ничего. у нас чистый шаблон, еще не успели дальше сделать) в <body> выводим просто например "Привет я шаблон"
3. Переключаем шаблон в админке на пустой новенький.
4. Открываем главную страницу — видим "Привет, я шаблон"

переходим в админку ...

… и понеслась ...

5. оказывается админка то у нас в шаблоне а файлов ее в новом шаблоне нет… картинки из нее и т.д.

вот и приходится чтобы создать новый шаблон, копировать дефолт переименовывать и переделывать.

p.s. просто мне нужно сделать крайне чистый шаблон без любых имеющихся примочек, картинок стилей скриптов и т.д.

хочу, чтобы в новом шаблоне не было ничего напоминающего о старом шаблоне (админку оставляем как есть)
#2 23 ноября 2015 в 00:07
kreator, а вы при создании нового шаблона дефолтный переименовываете? Я не разу не сталкивался с такими проблемами. Делаю так:
1. Создаю папку нового шаблона (не трогая дефолт)
2. Создаю файл main.tpl.php
3. Включаю новый шаблон в админке.

И проблем никаких нет, за исключением отсутствия языковых констант. Поэтому нужно еще файлик шаблона в языки добавить, с содержанием из дефолтного.
Может конечно в 2.3.0 что изменилось...

P.S. или я уже не понмю, давно последний раз шаблоны делал))
#3 23 ноября 2015 в 00:10
1. Создаю папку для нового шаблона (дефолтный не трогаю)
2. Создаю main.tpl.php в нем пишу "привет ворлд"
3. Меняю шаблон в админке
4. Открываю главную, а там "привет ворлд" (вроде все ок)
4. Открываю админку а там ошибка о том что шаблон не найден
4. Админку открываю там все страницы пустые, скрипты не подключены и т.д.

Может конечно в 2.3.0 что изменилось...

да и до этого так было
#4 23 ноября 2015 в 00:19
А если добавить туда еще файл admin.tpl.php и папку js?
Вроде все пашет. И в 2.3.0 на отсутствие языковых констант не ругается
#5 23 ноября 2015 в 00:24

А если добавить туда еще файл admin.tpl.php и папку js?
Вроде все пашет. И в 2.3.0 на отсутствие языковых констант не ругается

Rossoman
вот примерно об этом и вопрос

? что нужно взять в свой пустой шаблон, чтоб система была работоспособной. какой минимальный набор файлов папок и скриптов должен быть в новом шаблоне ?

если так то какой смысл создавать в каждом новом шаблоне одни и те же файлы использующиеся в одной админке

а если 50 шаблонов на сайте… мусор однако
#6 23 ноября 2015 в 00:28
Так по большому счету там и ничего создавать и не нужно. Только главный файл админки, и необходимые js скрипты, чтобы всякие табы там работали. А больше вроде ничего.
Хотя по js и css было бы прикольно, если бы система проверяла наличие файлов и в текущем шаблоне, и в случае отсутствия в дефолтном.
#7 23 ноября 2015 в 00:35

чтобы всякие табы там

Rossoman
думаю надо определить абсолютный минимум и от него уже "плясать" для новых шаблонов

надо ли иметь в своем шаблоне js комментарием или какого другого компонента если в своем шаблоне не предусмотрено их использование
#8 23 ноября 2015 в 00:43

надо ли иметь в своем шаблоне js комментарием или какого другого компонента если в своем шаблоне не предусмотрено их использование

kreator
Я думаю что нет.Хотя не известно как прописан путь подключения скриптов и css (на дефолт или нет). А все скрипты админки начинаются на admin-, ну плюс к этому jquery
#9 23 ноября 2015 в 01:36

Я думаю что нет.Хотя не известно как прописан путь подключения скриптов и css (на дефолт или нет). А все скрипты админки начинаются на admin-, ну плюс к этому jquery

Rossoman
Все равно надо что то еще выщипывать. Открыл админку, посмотрел какие js цепляет из шаблона, золил их и все равно не выводит данные на странице админки.
На вскидку вот что пишет консоль на первой же странице админки. Это при всех скопированных в свой шаблон файлах js
  1. Uncaught TypeError: Cannot read property 'length' of undefinedicms.datagrid.$.rowsLoaded @ datagrid.js:265(anonymous function) @ datagrid.js:246x.Callbacks.c @ jquery.js:3x.Callbacks.p.fireWith @ jquery.js:3k @ jquery.js:5x.ajaxTransport.n.send.r @ jquery.js:5
  2. datatree.js:7 1:36:50.758 - bind(x.Event): dtnode: Class.create, error: TypeError: Cannot read property 'msie' of undefined()
  3. datagrid.js:265 Uncaught TypeError: Cannot read property 'length' of undefined
а лог сервера свое пишет
  1. client denied by server configuration: /var/www/***/data/www/***.ru/templates/clear/js, referer: http://***.ru/admin/content
а на других еще сколько всего может быть?

Это при всех скопированных в свой шаблон файлах js

А может среди них есть и те что не используются в админке?
#10 23 ноября 2015 в 01:44
С одной стороны конечно можно плюнуть на все это дело.
Копировать всю папку, переделывать, переверстывать, добавлять свои стили.
А то что не используется уже в новом шаблоне почему то и будет всегда мертвым грузом лежать.

А папка дефолта не много не мало два с хвостом мегабайта весит. Прибавляем сюда своих 5-10 нового шаблона. Потом удивляемся куда место на диске давается.

Да и при обновлении icms думаю легче обновить только свои файлы и не трогать дефолтные. (тут думаю найдутся несколько человек, которые предложат записывать на бумашку названия файлов которые меняли в своем шаблоне)
#11 23 ноября 2015 в 08:00
kreator, а в своём шаблоне не пробовали подключать яваскрипты так:
  1. $this->addJS($this->getJavascriptFileName('jquery'));
#12 23 ноября 2015 в 10:48
я кстати при разработке шаблона bootstrap.bergorod.ru/ так и пробовал сделать.
Сейчас уже точно не помню, но нужны были main.tpl.php и admin.tpl.php

Папку с js пришлось скопировать. Шаблон вывода виджета. Картинки тоже — иначе в админке было пустовато. Кстати последнее не обязательно, но если переделывать иконки на свои, будет очень много работы. В админке многое привязано к классам ссылок, типа add. Там с помощью Js меняются параметры ссылок.

У меня переделанное ui/menu. Так меню над списком в админке стало работать некорректно. Оказывается, в admin.js есть много чего, что обращается к классам.

Но по сути, все правильно сказано выше.
Достаточно скопировать в свой шаблон несколько базовых файлов, js скрипты, пару иконок (для области виджетов в админке). Инстант будет тянуть остальное из дефолта, по возможности.
#13 23 ноября 2015 в 12:47
Обратите внимание на путь к скриптам и стилям в нескольких файлах что лежат в шаблон/controllers/admin (там их несколько).
Пример:
  1. $this->addJS('templates/default/js/jquery-ui.js');
Лучше б вместо default было {$this->name}. Думаю, тогда б можно было обойтись без папки с дефолтным шаблоном вообще.
В идеале, не помешает проверка на наличие файла в своём шаблоне.
#14 23 ноября 2015 в 12:51

В идеале, не помешает проверка на наличие файла в своём шаблоне.

Олег Васильевич я
В идеале, я уже написал, как надо подключать файлы js с проверкой наличия файла в своём шаблоне и при отсутствии онного, брать в дефолте.
#15 23 ноября 2015 в 12:55

Лучше б вместо default было {$this->name}. Думаю, тогда б можно было обойтись без папки с дефолтным шаблоном вообще.
В идеале, ещё и с проверкой на наличие файла в своём шаблоне.

Олег Васильевич я
Это да. Но при установке новых дополнений все устанавливается в default. Нужно тогда сам процесс инсталяции новых дополнений дорабатывать, чтобы все файлы шаблона копировались в установленный по умолчанию шаблон. Но опять же, решил пользователь сменить шаблон и все полетело). Придется вручную все недостающие файлы переносить в новый шаблон.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.