Новое в версии 1.0. Структура папок и статические файлы

Этой статьей я хотел бы начать серию публикаций о том, что нового вас ожидает в версии 1.0 Alto CMS. Долго думал, как бы выстроить изложение так, чтоб эти статьи были полезны разработчикам и понятны всем прочим. Но особо ничего не придумал, поэтому если кому-то что-то неясно будет – спрашивайте в комментариях, я постараюсь объяснить более доходчиво.

Структура папок
Я уже писал про то, что в новой версии Альто используется новая структура папок, но немного повторюсь.

После установки движка у вас будут следующие папки (каталоги):
  • /engine — это ядро движка
  • /common — это различные дополнительные компоненты и расширения, включая плагины и шаблоны, которые могут использоваться на сайтах, в т.ч. и от сторонних разработчиков
  • /app — это папка для разного рода настроек и надстроек для конкретного сайта
  • /upload – папка для загружаемых файлов
  • /_tmp – для всевозможных временных файлов
  • /_run – для runtime-файлов (как правило, это файлы, которые включаются HTML-страницы, подробне об этом ниже).
Несколько слов про папку /app. Все изменяемые файлы конфигурации теперь следует хранить здесь, и риск затереть их случайно при обновлении падает до нуля, потому что какие бы обновления вы не выполняли, обновляться могут только папки /engine и /common.

Локальную конфигурацию сайта движок будет брать из файла /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. Собственные типы блогов без программирования
    Одним из ключевых изменений в новой версии движка я считаю возможность создавать и всячески жонглировать типами блогов. Те, кто знаком с ЛС знают, что там были блоги персональные, коллективные и закрытые. И все. И...
  • Новое в версии 1.0. Работа с изображениями (Часть 2)
    Я уже писал о том, что нового вас ждет в версии 1.0 в области работы с изображениями. Но это еще не все! Мы постарались в новой версии решить еще ряд наболевших проблем, связанных с загрузкой изображений. Известно,...
  • Новое в версии 1.0. Работа с изображениями
    Прежние механизмы работы с изображениями движка вызывали много нареканий, и от разработчиков, и от сайтостроителей. Поэтому данный функционал был переписан более, чем полностью. Во-первых, обеспечена поддержка всех...
  • Alto CMS — финальный релиз версии 1.1
    Вот и дождались — версия 1.1.0 вышла в релиз. Кратенько о нововведениях в этой версии: Меню сайта вынесены в отдельные сущности и теперь вы можете настраивать их из админкиЕще нововведение: сниппеты (в некоторых...

11 комментариев

0
Не планируете отделить back-end от front-end?

Ну или менее радикальное разделение сделать чтобы в корне веб-сайта лежали только только папки со статикой и папка содержащая залитые пользователями фотки и аватарки, а сам движок находился за пределами корневой папки веб-сайта.
0
Вообще-то back-end и front-end в Альто уже разведены довольно четко. Или я Вас не понял и Вы что-то другое имеете ввиду?

Времени на эксперименты нет, но, по-моему, если использовать скины и плагины, где статика подключается правильно, то в версии 1.0 уже можно попробовать вынести весь движок за пределы корневой веб-папки. Т.е. оставить, как есть папки /_run/ и /upload/ и «точку единого входа» index.php, а остальные папки можно выносить, куда угодно.

Правда, делать это все нужно руками, нет смысла включать такую опцию в установщик.
0
Да хоть руками лишь бы возможность такая была. Попробую.
0
отлично, с нетерпением жду релиза версии 1.0!
0
Вот
/app
— это действительно крутая штука.
Молодцы. Жду следующею статью.
0
Есть проблема следующего толка, а именно: версия master с GitHub отказывается инсталлироваться поверх существующей базы данных от 0.9.7. Мастер установки не даёт продолжить её после ввода данных о БД. Пожалуйста, посоветуйте решение проблемы.
0
На сегодня решение одно — выполнять обновление вручную, хорошо понимая, что вы делаете
0
Следовательно — замещение файлов 0.9.7 вручную, файлами 1.0a с подключением к новой конфигурации текущей БД?
0
Если несложно поясните, как обновить версию 0.9.7 до 1.0. Будет ли как в WordPress возможность обновить версию из админпанели нажатием одной кнопки?
0
Поддерживаю вопрос. Было бы не плохо обновляться без рукопашки.
Также хорошо бы в будущем увидеть в админке различные графики, как например в новой админке лс.
И еще, кажется где-то промелькнуло, но не могу найти. Помимо бутстрап шаблона обычный шаблон будет?
+1
В текущей версии обновления одной кнопкой не будет. Будет инструкция, как нужно обновляться. Но над обновлением «в один клик» работаем.

Помимо бутстрап шаблона обычный шаблон будет?
Не очень понимаю, что значит «обычный» шаблон. Если речь о ЛС-шаблонах, то они будут работать на новой версии Альто, если включен плагин совместимости Ls.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.