Архитектура InstantCMS

Обсуждение, предложения - тема для программистов

#1 22 ноября 2014 в 22:03
Предлагаю здесь обсудить архитектуру CMS. Некоторые вопросы уже наверняка поднимались в сообществе, но тем не менее… Так же предлагаю принять участие в теме только тем, кто хоть немного пониает в PHP, дабы обсуждение было максимально конструктивным. Сам лично готов не только обсуждать, но и к кодингу, нужно только влиться в тему.

Первый вопрос, который меня волнует — директория темы. Сейчас просматриваю и понимаю, что там много лишнего. Мне и то не так легко разобраться, а нашему верстальщику файлы темы iCMS, вовсе оказались "китайским алфавитом".

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

Предложение 2: В файлах темы много лишнего PHP. Стоит добавить какой-то pretemplate, где будут формироваться конечные перменные или функции вывода для шаблона. Например, условная конструкция добавление или редактрование может больше не смущать верстальщиков, а выводить короткую и единую для всех страниц перменную $page_title, которая устанавливается в pretamplate.

Предложение 3: В каждом компоненте иметь директорию template с дефолтным оформлением, которое будет подтягиваться в случае если соответствующий файл не определен в текущей теме.
#2 22 ноября 2014 в 22:32
По поводу 3 — дельная мысль
#3 22 ноября 2014 в 23:02
Если что я с вами, пока нечего сказать. Кстати тоже не понял почему файлы админки в самом шаблоне сайта
#4 22 ноября 2014 в 23:42

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

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

Например, условная конструкция добавление или редактрование может больше не смущать верстальщиков, а выводить короткую и единую для всех страниц перменную $page_title, которая устанавливается в pretamplate.

Иван Шкута
Заголовок страницы в идеологии MVC относится к представлению, то есть внешнему виду, то есть к шаблонам. Каким должен быть заголовок — определяет только шаблон. Контроллер должен отвечать только за бизнес-логику (получить запрос, извлечь данные, передать на вывод).

В каждом компоненте иметь директорию template с дефолтным оформлением

Иван Шкута
"Оформление" может включать в себя CSS, JS, изображения. То есть статические файлы, которые должны лежать отдельно от исполняемых. Это одно из базовых правил безопасности. В InstantCMS 2 папка system (где лежит код компонентов) не может содержать файлы, доступные по прямому URL. В идеале, эту папку вообще надо выносить из document root сервера туда, где она будет недоступна через web. Поэтому все статические файлы вынесены в отдельные папки — cache, templates, wysiwyg, upload. Для шаблонов это папка templates, что логично.
#5 23 ноября 2014 в 00:00

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

r2
Ok. А какие файлы являются обязательными?
#6 23 ноября 2014 в 00:37
Методом исключения пришел к тому что обязательными являются:
css/colorpicker.css
css/datatree.css
css/jquery-ui.css
images/?
js/?
admin.tpl.php
main.tpl.php
options.css.php
options.form.php
scheme.html
Правильно понял?
#7 23 ноября 2014 в 11:46

какие файлы являются обязательными?

Иван Шкута
main.tpl.php
scheme.html
#8 23 ноября 2014 в 12:02

main.tpl.php
scheme.html

r2
При таком наборе в админке белый экран.
#9 23 ноября 2014 в 12:34
r2, Если можно, расскажите пожалуйста про cmsCache
В моделях часто встречаю $this->useCache() и $this->clean(); но не знаю как ими пользоваться
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.