Структура папок
Я уже писал про то, что в новой версии Альто используется новая структура папок, но немного повторюсь.После установки движка у вас будут следующие папки (каталоги):
- /engine — это ядро движка
- /common — это различные дополнительные компоненты и расширения, включая плагины и шаблоны, которые могут использоваться на сайтах, в т.ч. и от сторонних разработчиков
- /app — это папка для разного рода настроек и надстроек для конкретного сайта
- /upload – папка для загружаемых файлов
- /_tmp – для всевозможных временных файлов
- /_run – для runtime-файлов (как правило, это файлы, которые включаются HTML-страницы, подробне об этом ниже).
Локальную конфигурацию сайта движок будет брать из файла /app/config/config.local.php. Если там же лежат файлы wigets.php и jevix.php, то оттуда будут браться настройки виджетов и класса Jevix соответственно.
Также с папкой /app гораздо проще и разноязычными текстовками оперировать. Например, если вы хотите добавить свой язык (скажем, немецкий), то можете положить файл de.php в папку /app/templates/language/.
Вы можете также, при желании, частично изменить текстовки для русского языка. Например, если вы решили заменить в текстах термин “блог” на термин “раздел” — положите в папку /app/templates/language/ файл ru.php, где будут только измененные тексты — и все! И не нужно бояться, что обновления движка у вас что-то затрут или поломают.
Наиболее наблюдательные, думаю, заметили так же, что файл plugins.dat так же перекочевал в папку /app/plugins/. Кстати, собственные измененные файлы конфигурации плагинов вы также можете размещать там же. Например, если у вас есть плагин abc и вы для своего сайта хотите изменить его конфигурацию, то сохраните файл config.php в папке /app/plugins/abc/config/, и вам не нужно будет волноваться, что вы случайно затрете свою конфигурацию при обновлении плагина.
Статические файлы
Отдельная тема – это статические файлы. Я имею ввиду изображения, файлы стилей (css), джаваскрипты (js) и т.д. Я считаю ненормальным, когда в HTML-страницу эти файлы могут быть добавлены откуда угодно, как это всегда было в ЛС – из папок шаблона, из папок плагинов, из библиотек и пр. В целях безопасности и управляемости веб-приложения перечень папок-источников таких файлов должен быть четко ограничен. В Alto CMS для этого служат две папки — /upload/ и /_run/.Ну, с /upload/ все ясно – это файлы, которые загружаются пользователями. А для чего /_run/?
А это папка служит для того, чтобы туда складывались все статические файлы, которые включаются в HTML-страницу – css- и js-файлы, файлы изображений, на которые есть ссылки из css, а также swf-файлы, которые служат для мультизагрузки изображений.
Все эти файлы автоматически копируются в папку /_run/assets/ и уже оттуда подключаются в HTML.
Вообще сам механизм работы с js- и css-файлами был полностью переработан, и про него будет рассказано в отдельной статье. А пока лишь замечу, что такие файлы движка, которые используются практических во всех сайтах, независимо от шаблонов, собраны в папке /common/templates/frontend/. Старый набор таких файлов, которые использовались в ЛС и в прежних версиях Альто, собран в подпапке /ls/. Для новых версий Альто используется набор стилей и скриптов из подпапки /libs/.
Что это все дает
1. Более четкая и логичная структура расположения файлов2. Гибкость настройки и легкость переноса сайтов
3. Более простое и безопасное обновление движка и плагинов
4. Повышенная безопасность работы вашего сайта
5. В перспективе – возможность использовать один движок для нескольких сайтов
Ну или менее радикальное разделение сделать чтобы в корне веб-сайта лежали только только папки со статикой и папка содержащая залитые пользователями фотки и аватарки, а сам движок находился за пределами корневой папки веб-сайта.
Времени на эксперименты нет, но, по-моему, если использовать скины и плагины, где статика подключается правильно, то в версии 1.0 уже можно попробовать вынести весь движок за пределы корневой веб-папки. Т.е. оставить, как есть папки /_run/ и /upload/ и «точку единого входа» index.php, а остальные папки можно выносить, куда угодно.
Правда, делать это все нужно руками, нет смысла включать такую опцию в установщик.