Первая статья из серии советов.

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

Стили

Для стилей нужно использовать предназначенный для этого функционал системы.

Из плюсов - система научилась обрабатывать и кэшировать стили, тоесть никакой разницы использовать обычный файл или функционал системы - сейчас нет. Более того, когда в шаблоне используется несколько стилей - они автоматом собираются в один.

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

У меня в практике был случай, когда часть меню формировалась через стили (тоесть в стилях для каждого пункта меню была прописана своя картинка и цвет). Для добавления нового пункта нужно было лезть в стили и добавлять новый, что было не удобно с точки зрения пользователя. Удобство системы состоит в том, что даже в стилях можно вызывать модули смарти. Тоесть я внутри стиля сделал вызов модуля менеджера меню, в котором формировалась часть css из данных пунктов меню. Но тут нужно помнить, что в стилях для использования тегов смарти используются двойные квадратные скобки [ [smarty_tag ... ] ], тоесть даже в шаблоне модуля меню нужно использовать именно квадратные скобки, а не фигурные.

Из минусов - первый - если есть готовая верстка, и в стилях используются пути к картинкам или другим ресурсам - их нужно менять с учетом того, что конецный стиль будет находиться в папке /tmp/cache. Например, в верстке, в стиле для бэкграунда задано background: #000 url(../images/header.gif) no-repeat; То когда мы запустим сайт, данное правило картинку не найдет. Тоесть нужно будет прописать абсолютные пути к картинкам.

Второй минус - нужно следить за кэшем. Тоесть если используется динамически формируемый стиль, как в моем примере, то после изменения в структуре страниц (добавление новой страницы или удалении старой, а так-же смене картинки или цвета, если они задаются в свойствах страницы) - кэш нужно чистить.

Остальные ресурсы

Для остальных ресурсов шаблона я использую папку /uploads/template, которую создаю через менеджер файлов. Внутри папки создаю несколько подпапок в зависимости от типов ресурсов (соответственно images, fonts, js и другие, если нужно). В эти папки я помещаю соответствующие ресурсы. Чем это удобно: первое - если нужно заменить какой-либо скрипт или картинку - это можно сделать средствами системы. Второе - отдельная папка для ресурсов шаблона - тоесть можно быстро определить, где нужно править, при необходимости. Третье - в случае смены дизайна - можно создать еще одну папку с ресурсами, новый набор шаблонов, а затем - быстро переключить, и при необходимости удалить старую папку. Четвертое - не нужно включать доступ к корню системы в менеджере файлов. Из минусов - доступ к данным файлам пользователями системы.

Картинки

Следует разделить несколько видов картинок.

Первый вид - картинки шаблона, как я писал выше, удобнее всего складывать в папку /uploads/template/images.

Второй вид - картинки, которые прикрепляются к странице при помощи тега content_image. Для таких картинок лучше всего создавать отдельные папки - во первых это проще найти, во вторых - удобно группировать. Например, у страницы есть 2 вида картинок - превью и, например, тип статьи. Соответственно нужно создать 2 папки - одна будет содержать картинки превью, вторая - картинки типов статьи. Все эти папки желательно создавать в папке /uploads/images - в этом случае к данным папкам вместе с менеджером файлов будет доступ из менеджера картинок.

Третий вид - картинки, которые создаются модулями (например, своими). Для них лучше всего использовать папку /uploads/[modulename]/. Тоесть этим отделяем их от остальных картинок. Исключением могут служить модули галерей (например, Album). Для них лучше всего создавать одну корневую папку внутри папки /uploads/images, затем для каждой галереи создавать свою папку.

Четвертый вид - картинки для контента (обычных страниц). Тут единственный совет - группировать в папках, при необходимости. Ведь при редактировании страницы - неудобно выбирать одну картинку из десятка а то и сотни.

Скрипты и шрифты

Ну с ними проще всего - просто размещаем в папке /uploads/template/js и /uploads/template/fonts соответственно. При необходимости можем заменить, обновить через систему, не заходя по ftp или другие доступные средства.

Другие файлы для скачивания

Здесь так-же совет только один - систематизировать. В папке /uploads/ создать папку files, например, а внутри по папкам соответственно распологать файлы.

Краткое заключение

Первое - для стилей использовать стандартный функционал.

Второе - ресурсы шаблона размещать в папке /uploads/template. В принципе - можно внутри папки templates создать несколько папок для разных шаблонов.

Третье - стараться систематизировать файлы.

Четвертое - данная структура позволит создавать и редактировать сайт не используя дополнительных подключений к серверу, тоесть прямо из админки.

Последнее замечание

Для того, чтобы не было проблем с отображением названия файлов с названиями содержащими буквы и символы, отличные от латинского (английского) - нужно помнить, что система работает с кодировкой utf-8. Соответственно хостинг или платформа, на которой располагается сайт, были настроены для использования данной кодировки.