E5 - Framework & CMS. Cms e5
PHP Framework E5
Простая система для разработки сложных сайтов
Для разработчика
Создание модуля выглядит как конструктор, в котором разработчик соединяет и настраивает заготовки.
Для работы с моделью данных присутствуют шаблоны моделей (нужно просто подобрать шаблон таблицы, а если в ней чего-то не хватает - дополнить её с помощью шаблонов полей).
Для работы с логикой используются компоненты. Если какой-то компонент пришлось создавать, его всегда можно использовать в других проектах.
Отображение регулируется шаблонами, в создании которых также участвуют компоненты. Универсальные шаблоны (навигации, сетки, пагинаторы) в два клика помогут отобразить любые данные из вашего модуля.
Однажды созданные, эти элементы можно использовать в дальнейшем. Забудьте о CopyPaste.
Надоело писать миграции? Встроенный менеджер зависимостей автоматически подтянет нужное при обновлении или экспорте ваших решений в другие копии системы.
Надоело учить скучный API? Предлагаем встроенный редактор шаблонов, тесно связанный с данными и логикой именно вашего разрабатываемого модуля.
Замучил роутинг? Система из коробки предоставляет инструменты для генерации и разбора URL (даже очень-очень сложных, многоуровневых URL).
Надоело организовывать backend? В системе он организовывается в момент создания модели. Вам остаётся только разделить права пользователей и настроить формы редактирования.
Концепция системы заключается в следующей идее: если вы способны изложить свои требования на бумаге, вы можете с такой же лёгкостью (и за такое же время) осуществить их в системе.
Если логика вашего модуля когда-нибудь выйдет за рамки имеющихся компонентов, то вам пригодится понимание циклов и условий из программирования.
Вам не понадобятся никакие дополнительные инструменты, кроме браузера. Весь цикл разработки протекает в веб-интерфейсе административного кабинета. Все экраны системы подробно описаны в справочнике.
Дополнительные видеоматериалы демонстрируют процесс разработки типовых решений. После просмотра любого из этих материалов (~30мин) вы станете разработчиком.
Благодаря встроенному интерактивному редактору шаблонов отпадает необходимость изучения API и запоминания созданных структур данных.
Система устанавливается из одного файла (php-gzip архив весом от 2 до 12мб, в зависимости от комплектации), после чего её можно обновлять с сервера обновлений, а также загружать новые модули и компоненты.
Для работы рекомендуется поднять основную копию системы на своём сервере и настроить на ней свой сервер обновлений (достаточно просто активировать уже имеющийся).
После этого, для установки системы новому клиенту, просто клонируете имеющуюся систему из настроек. В этом случае вы получаете установочный файл, содержащий ваш набор модулей и компонентов. Но что важнее - система, которая из него установится, будет обновляться не с центрального сервера, а с вашего.
Таким образом вы сможете одномоментно публиковать свои правки или нововведения для всех клиентов.
Для совсем ленивых есть режим, позволяющий произвести установку системы на другой сервер из административного кабинета. Для этого нужно ввести реквизиты FTP и MySQL, после чего произойдёт переброска и установка ядра системы. Вам останется только перейти по ссылке в административный кабинет реципиента.
Ковыряться в давно забытом коде или переписать всё с чистого листа? Кто имел дело с длительной поддержкой сложных проектов тяжело вздохнут на этом месте.
Концепция системы предполагает безболезненное расширение модели и логики проекта на любом этапе его существования. Прозрачность и концепция “конечного автомата” в большинстве случаев убирает необходимость тестирования и позволяет осуществлять модернизацию на живом проекте, без его остановки.
Для пользователя
Система предоставляет набор инструментов, позволяющих ускорить и упростить работу с контентом сайта.
Навигация позволяет в несколько кликов получить доступ к необходимому материалу (даже если работа проводится с множеством сайтов).
Данные можно редактировать напрямую из списка материалов (массовое редактирование).
Меню групповых операций позволяет совершить нужные действия с множеством материалов.
Фильтр позволяет искать материалы по множеству критериев (в настройках каждого модуля можно редактировать критерии поиска).
Буфер обмена позволяет переносить материалы из одного места в другое (в т.ч. с сайта на сайт).
Гибкая настройка прав доступа позволяет видеть пользователю только то, что действительно нужно.
Для владельца сайта
Архивация данных
Система позволяет настроить архивацию базы данных и файлов пользователя (1 раз в сутки). Архивацию можно запускать вручную, а также создать установочную копию системы со всеми данными для быстрого переноса на другой сервер.
Контроль нагрузки
Из панели администратора можно увидеть нагрузку сервера и количество свободного ОЗУ (в некоторых конфигурациях возможно также выводить общее кол-во ОЗУ).
Система оповестит вас в том случае, если нагрузка превысит максимально допустимую. Кроме этого, в случаях перегрузки можно отправлять пользователям 503 ошибку.
Для защиты от DDoS атак в систему встроена возможность просмотра активности IP-адресов и их блокировки.
В систему встроено "жёсткое" кеширование, позволяющее отдавать контент пользователю со скоростью статики.
В таком режиме обычный хостинг может выдержать до миллиона посетителей каждый день (в обычном режиме без кеша - до ста тысяч).
Мультисайтовость
Система позволяет работать с неограниченным числом сайтов и доменов одновременно.
Контент можно переносить между сайтами, или же содержать один и тот же контент на нескольких сайтах одновременно.
Хотите попробовать?
PHP-архив (12.3 Мбайт)
rucms.org
Сегодня в мире появилась масса самых разнообразных CMS - открытых и проприетарных. Открытые разрабатываются целыми сообществами программистов, однако их чрезвычайно сложно внедрять в серьёзные проекты, а проприетарные привязывают вас к компании-разработчику, что всегда выливается в кругленькую сумму. По этому очень важно выбрать систему, которая потянет на себе функционал серьёзного проекта и при этом будет достаточно мобильна, чтобы можно было в любой момент доверить доработку ресурса стороннему разработчику. Наша студия одна из первых внедряет в свои продукты разработку отечественных программистов - систему управления содержанием Е5 (CMS E5). Мы внедряем эту разработку в каждый наш проект, начиная от простого сайта-визитки, заканчивая сложными порталами и интранет-приложениями. И если вы закажите сайт у нас, то в скором времени обнаружите, что и он работает на E5. читать бриф полностью Сама по себе система бесплатна, но наша студия берёт 5т.р. за установку системы. Это вовсе не означает, что установка Е5 хлопотное дело. Благодаря встроенному FTP-инсталлятору и технологии PHP-Extractor, установку сможет провести даже школьник. Клиенты, установившие систему у нас получают доступ к серверу обновлений и многочисленным модулям. Кроме этого, мы обеспечиваем полную поддержку системы. Мы не бросим вас, если у вас не получится что-то сделать или будут какие-то вопросы. А теперь мы покажем те отличительные особенности, из-за которых наша студия использует CMS E5:
Следите за новостями системы на нашем сайтеРабота со строками Для фильтрации строк использовался оператор [filter], который выполнял операции [if] над всеми входящими строками,...
До открытия тестирования системы осталось завершить несколько финальных штрихов. Но ведь это самое сложное - подвести черту, после... |
|
ant-design.ru
FAQ - Framework & CMS E5
Исходя из ответа на предыдущий вопрос можно заключить, что конечного пользователя (разработчика) на Framework E5 не должен заботить код самого фреймворка, т.к. вся работа (разработка приложений) осуществляется исключительно через веб-интерфейс. При этом важно подчеркнуть, что работа в фреймворке не подразумевает редактирование или добавление PHP файлов. Все связи с ядром осуществляются при помощи специального мета-языка, который встраивается через специальный редактор. Разработчик на Framework E5 может быть абсолютно спокоен в том, что ему не придётся разбираться в ядре или сопряжённых с ним файлах.Код под капотом преимущественно не использует ООП. Вместо этого часть ядра состоит из библиотек функций (которые нет смысла выносить в синглтон или в статические методы класса), а другая часть из массива функций-замыканий, оснащённых мета-информацией (команды шаблонизатора).
Установщик системы является PHP файлом, состоящим из исполнительной части и упакованных данных. Не смущайтесь его содержимому, оно необходимо для распаковки всех файлов ядра и сопряжённых с ним изображений, скриптов и стилей. Установщик не поставляется в формате PHAR архива по причине поддержки принципа универсальности системы. Мы хотим, чтобы система могла быть установлена самым простым из всех возможных способом. В данном случае установка заключается в копировании одного единственного файла и его запуска, что в случае с PHAR архивом было бы невозможно. Система в любой момент способна собрать из самой себя установщик нужного типа - PHP-файл, либо TAR-архив. Таким образом можно осуществить быстрый перенос системы и данных с сервера на сервер.
По поводу современных технологий. Большинство из них направлены на оптимизацию традиционного стиля разработки. E5 Framework предлагает принципально другой подход к разработке и по этой причине не нуждается в интеграции с многимии современными инструментами и технологиями.
rucms.org
Установка на Apache - Framework & CMS E5
Установка на Apache
Установка
Если вы опытный пользователь - просто закачайте и запустите из браузера. Если нет - следуйте инструкции.
- Переименуйте загруженный файл в index.php
- Поместите загруженный файл в папку веб-сервера, связанную с доменом
- Установите права на каталог 755, либо 777, если PHP-пользователь отличается от пользователя, загрузившего скрипт
- Установите права на скрипт 644, либо 666
- Откройте сайт в браузере, после этого произойдёт распаковка системы
- Если распаковка прошла успешно - нажмите на ссылку "Продолжить" и перейдите к конфигуратору
- Используйте реквизиты базы данных MySQL - адрес сервера (как правило это localhost), логин и пароль пользователя и имя базы данных
- Убедитесь, что база данных не содержит таблиц и настроена на работу в кодировке UTF-8
- Нажмите "Продолжить установку"
- Если установка завершилась успешно, вы увидите форму входа в кабинет администратора
- Для входа используйте временные реквизиты - admin, admin
Возможные проблемы
Установка в папку
Для установки системы в папку, в пункте 5 укажите в адресной строке браузера адрес папки, после адреса сайта. Например: www.youdomain.ru/folder
Не все модули и шаблоны системы адаптированы для работы в данном режиме
Проблема распаковки - ошибка 404
Скорее всего ваша система не настроена на автоматическую попытку запуска файла index.php из указанной директории.
Для решения проблемы введите /index.php после адреса сайта. Например: www.youdomain.ru/index.php
Проблема распаковки - ошибка прав доступа
Убедитесь, что вы выполнили пункты 3 и 4, после этого повторите установку.
Ошибка после ввода реквизитов базы данных
Если система не может получить доступ к базе данных, убедитесь, что пользователю не требуется привелегия "Удалённый доступ". Если требуется - установите соответствующее значение.
Ошибки в процессе установки
Если в процессе установки появилось много строчек, среди которых есть "Invalid default value", то в файле конфигурации MySQL необходимо добавить срочку
sql-mode=0
Если данная секция присутствует и заполнена, установите значение в 0
Кроме этого, если пользователь базы данных, указанный при установке Е5, является суперпользователем MySQL, можете указать настройку $correct_sql_mode=1; в файле index.php
Если после установки возник белый экран, то попробуйте сделать следующее:
- Удалите секцию "Настройки PHP" из файла index.php
- Удалите секцию "Использование opcache" из файла index.php
- Поставьте знак # перед Options -Indexes в файле .htaccess
- Напишите сообщение разработчикам через раздел FAQ или группу Вконтакте
Ошибки вверху сайта
Система использует ленивое создание массивов и объектов, по этому в случае, если на вашем хостинге запрещено изменение конфига PHP через ini_set, возможна такая ошибка
В этом случае необходимо самостоятельно установить значение в конфигураторе PHP error_reportiong=E_ERROR | E_PARSE | E_NOTICE
Если у вас нет доступа для редактирования конфигурации PHP, запросите у вашего хостера информацию о перекрытии значений конфигурации PHP. Как правило об этом написано в справочном разделе хостинга. Иногда для этого нужно разместить в корневом каталоге вашего ftp-акаунта файл php.ini с необходимыми значениями.
Читать далее про "Установка на NGINX"
rucms.org
Делаем простую CMS - Framework & CMS E5
Делаем простую CMS
Для этого примера мы берём "пустой" вариант системы без предустановленных модулей, но с компонентами.
В примере у нас имеются две зоны - backend (админка) и frontend (сам сайт).
На Frontend мы повесим наш новый модуль, но для начала необходимо перейти в раздел модулей и создать его.
Так выглядит наш новый модуль.
Вначале давайте добавим пробную часть, которая будет выводить приветствие на главной странице.
Присоединяем модуль нашему Frontend-у
Проверяем работу в браузере
Вернёмся к нашему модулю и добавим таблицу "Страницы". Для этого используем соответствующий шаблон.
Теперь зайдём в новую таблицу и создадим пару страниц
Возвращаемся обратно к модулю, удаляем пробную часть "Главная страница" и добавляем вместо неё часть, связанную с таблицей страницы
Пишем в ней простую разметку (заголовок и текст) и открываем вставку значения. Выбираем текущий объект и жмём "Далее".
Выбираем нужное поле текущего объекта (вначале нам нужен заголовок) и вставляем его
Таким же образом вставляем содержимое страницы и обрамляем квадратными скобками (лучше вставлять обрамление перед вставкой). Вот что у нас получилось.
Проверяем обе страницы. Работают.
Добавляем шаблоны дизайна
Добавим поддержку шаблонов дизайна. Для этого добавим типовую таблицу "Шаблоны".
Добавим в первый шаблон содержимое части "Страницы".
Затем добавим переменную модуля "Шаблон" для определения основного шаблона, свяжем её с нашей таблицей шаблонов.
В настройках раздела укажем наш пробный шаблон
Теперь вернёмся в нашу часть "Страницы", удалим всё содержимое, и в диалоге вставки значения поочерёдно выберем следующие команды:
- Текущий экземпляр модуля
- Переменные
- Шаблон
- Поле "Шаблон"
- Работа с шаблонами
- Исполнить как шаблон
Вот что у нас выйдет
Нашу простенькую CMS можно считать завершённой. У нас есть backend, позволяющий работать с материалами (страницами и шаблонами) и frontend выводящий страницы пользователю по нужному URL (с учётом вложенности).
На получившейся системе можно сделать несколько сайтов (каждый сайт - экземпляр данного модуля) у которых будут разные страницы, но общие шаблоны.
О том, как с помощью плагинов системы можно быстро сделать шаблон, смотрите здесь.
Что ещё можно сделать
Можно добавить поле "Шаблон" для каждой отдельной страницы. Соответственно в части "Страница" мы напишем:
[if cow.tpl] [cow.tpl.body.shell] [else] [cex.param.tpl.shell] [/if]
Т.е. если у страницы указан свой шаблон - выполнять его, иначе - выполнять общий шаблон сайта
Читать далее про "Делаем прайс-лист"
rucms.org
Работа с сайтами - Framework & CMS E5
Работа с сайтами
Если вы не планируете размещать в системе более одного сайта, можете игнорировать данный раздел.
Для работы с сайтами нажмите на эту кнопку
Вы увидете следующую таблицу и форму добавления нового сайта
Таблица сайтов
В ней перечислены все имеющиеся сайты и самостоятельные разделы.
Таблица состоит из следующих колонок: имя, модуль, домен, папка и действия.
Имя сайта
Имя сайта это произвольное название, которое вы указали при добавлении нового сайта.
Если у сайта есть псевдонимы - название принимает вид ссылки. Нажмите на него или на иконку "потомки" для отображения всех псевдонимов сайта.
Модуль сайта
Показывает модуль, который открывается при загрузке данного сайта. Кроме модулей, установленных в систему, может также указывать на кабинет администратора и сервер обновлений. При нажатии на ссылке модуля можно перейти к его содержимому.
Можно выбрать только те модули, у которых отмечен флаг "Можно использовать как главный модуль для сайта".
Кроме самого модуля также выбирается его экземпляр. Подробнее смотрите в разделе справки "Архитектура".
Можно указывать один и тот же экземпляр модуля на нескольких сайтах, но лучше вместо этого использовать псевдонимы (см. далее).
Домен сайта
Показывает домен сайта. Некоторые разделы могут быть привязаны к всем подключённым доменам. В этом случае вместо домена будет отображаться звёздочка. Для этого при добавлении сайта следует оставить поле "домен" пустым, но указать папку.
Например, кабинет администратора будет открываться на всех подключённых доменах при вызове /admin
Вы можете вынести кабинет администратора на отдельный домен, о существовании которого будете знать только вы.
Кроме этого вы можете сделать разные кабинеты администраторов для разных групп пользователей: /admin для администратора и /manager для контент-менеджеров.
Вы можете указывать обычные кириллические домены так, как они читаются (например "мой-сайт.рф"). Система сама приведёт их к виду Punycode.
Папка сайта
Если вы хотите сделать несколько сайтов на одном домене в разных разделах, то можете использовать папку.
Например, основной сайт будет вызываться по URL www.yourdomain.com, а его копия на английском языке www.yourdomain.com/eng.
Папку сайта удобно использовать при обновлении сайта. Для этого достаточно старую копию убрать в папку /old, новую в /new, а на главной странице повесить заглушку о проведении технических работ.
Если разместить * в начале папки, то данный сайт будет открываться в том случае, если URL будет заканчиваться на значение этого поля. Например, *admin будет открывать админстративный кабинет при URL /admin, а также при /some_folder/admin
Действия над сайтами
Кроме обычных кнопок удаления и редактирования есть кнопка-лампочка. Она позволяет определить и изменить состояние сайта. Горящая лампочка означает, что сайт работает. Если нажать по этой лампочке произойдёт деактивация сайта. Для активации, соответственно, необходимо нажать по потухшей лампочке .
Форма добавления / изменения сайта
Описание полей "имя, домен, модуль и папка" смотрите выше.
Быстрое создание экземпляра модуля
Если вы создаёте сайт, но ещё не существует экземпляра модуля, который будет на нём запускаться, то вы можете его создать "на лету" (подробнее про модули и их архитектуру читайте в справке).
Для этого в поле "Базовый модуль" укажите "создать новый" напротив нужного модуля. Например "Содержание (создать новый)".
После этого вы увидите форму настройки нового экземпляра/раздела модуля.
Таким образом, из этого раздела можно осуществить добавление сайта в один этап вместе с его шаблонами (которые также можно добавить "на лету"), настройками и т.д.
Редирект / Псевдоним сайта
Позволяет создать копию сайта на другом домене или папке ("зеркало"). Копия может быть двух видов - клон и 301ый редирект
Клон позволяет открывать точную копию сайта на другом домене. Редирект перебрасывает пользователя с открытого псевдонима на основной домен сайта (для этого используется серверный редирект через заголовок 301).
При добавлении сайта вам предлагается создать псевдоним "www". Для этого отметьте галочку "Добавить поддомен WWW".
Для псевдонимов срабатывают поля "Robots.txt" и "Запустить шаблон".
Для того, чтобы из псевдонима получить URL главного зеркала, следует использовать команду host_major (домен и папка основной зоны).
IP-конфигурация
Эта заметка также актуальна для настройки пользователей
Данное окно содержит настройки показа сайта для опреедлённых пользователей.
Пользователей можно фильтровать по диапазону IP, городам, странам, браузерам и сайтам, с которых пользователи пришли на ваш ресурс.
Для одного и того же домена можно создать две разные записи, одну будут видеть одни пользователи, а другую - другие.
Таким образом можно выдавать разные сайты для жителей разных городов и стран. Пользователям разных браузеров.
Данное решение можно использовать для создания посадочных страниц. Для этого можно сделать запись, в которой указать, чтобы она отображалась только в том случае, если пользователь перешёл с поисковой системы по определённому запросу. Сам запрос (или агент браузера) будет доступен в переменной zone_specify ("Специфическая переменная зоны"). Стоит также обратить внимание на то, что современные поисковые системы, в ряде случаев, перестали передавать запрос пользователя.
Правила составления IP-конфигурации
Запишите IP-адрес, группу IP-адресов, страну или город из которой пользователи будут или не будут иметь доступ
Несколько условий складываются по принципу И и ИЛИ. Для обозначения И используется ",", для обозначения ИЛИ - "+".
Если перед условием поставить знак "!", оно будет иметь обратное действие.
Что может находиться в условии?
- IP адрес (ipv4)
- знак * (все пользователи)
- диапозон адресов (например "192.168.1.1-192.169.50.12")
- город или страна (на английском, должна соответствовать базе WHOIS)
- название браузера, заключённое в двойные кавычки (user agent или его часть, без учёта регистра)
- часть адреса, с которого был осуществлён переход, заключённый в одиночные кавычки (без учёта регистра, адрес предварительно проходит процедуру URL-декодирования)
Примеры:
!rostov будет блокировать всех посетителей из Ростова
russia,!rostov+62.189.203.0-70.189.205.0 - доступ будет дан для всех жителей России, кроме жителей Ростова + тех, кто попадёт в указанный диапазон адресов
*,!56.43.23.1+!russia+moscow,!56.43.23.1 - доступ будет дан всем странам, кроме жителей России (за исключением Москвы), а также будет заблокирован пользователь с указанным IP
!"opera" - данный сайт не будет доступна для браузеров OPERA
Если вы хотите сделать специальную презентационную страничку, доступную только посетителям, которые пришли к вам с Яндекса, то у основной записи стоит задать параметр !'yandex.ru', а у презентационной записи 'yandex.ru' соответственно.
Если вы хотите, чтобы пользователь попадая с поисковиков по запросу 'Сапоги' попадал на совсем отдельную страничку, стоит указать во всех записях !'сапоги' а в этой 'сапоги'
Также данную опцию можно использовать для показа мобильной и полной версии сайта.
Файл robots.txt
Позволяет определить данный файл для псевдонимов / зеркал сайта (т.к. это может быть важно для SEO). Если поле заполнено, то при запросе www.yourdomain.ru/robots.txt будет отображено его содержимое, вне зависимости от последующих обработчиков модулей.
Запустить шаблон
Содержимое этого поля исполняется на языке шаблонов Е5 до вызова базового модуля сайта.
E-mail администратора
Переопределяет e-mail администратора для текущего сайта. Для использования данного e-mail в вашем модуле, используйте команду zone_email
Работа с поддоменами
Возможны два вида обработки поддоменов:
- Превращать поддомены в постфиксы URL - в этом случае система будет видеть адрес вида realty.yoursite.com как yoursite.com/realty
- Превращать поддомены в переменную subdomain - в этом случае в системе будет доступна переменная subdomain, в которую будет помещено имя поддомена
Настроить связь с модулями
Из данного меню можно связать сайт со всеми нужными разделами модулей, которые имеют к нему отношение. Если на момент создания сайта не все нужные разделы созданы, то эту операцию можно совершить в дальнейшем из страницы модуля.
Связанные разделы присутствуют в быстром меню сайта (левая панель административного кабинета и стартовая страница). А также участвуют в определении URL объектов этих модулей.
Читать далее про "Работа с пользователями"
rucms.org
Главный экран - Framework & CMS E5
Главный экран
Примерный вид
- Кнопка для сворачивания левой панели
- Логотип системы - ссылка на главную страницу
- Доступ к файловому редактору
- Переход к почтовому ящику, счётчик новых сообщений
- Навигационная панель "Хлебные крошки". Нажмите на её элементы, чтобы увидеть дополнительные возможности быстрого перехода
- Основные разделы системы - Сайты, Статистика, Безопасность, Модули, Обновления, Настройки (отображаются в зависимости от прав доступа пользователя)
- Содержимое раздела - список сайтов, управление модулем, таблица данных и т.д. (подробнее обзор содержимого смотрите в следующих главах)
- Выход из кабинета
- Меню быстрого переключения между сайтами и разделами. Кнопка с шестерёнкой позволяет перейти к настройкам выбранного модуля. Под разделами находится ссылка на выбранный сайт
- Блок уведомлений
- Переход к системному терминалу
- Нагрузка вашего сервера (load average), если значение превышает кол-во ядер сервера - идёт превышение допустимой нагрузки
- Количество оперативной памяти, задействованного для генерации текущей страницы (плюс количество свободной оперативной памяти, если ваш сервер может выдать эту информацию)
- Количество SQL запросов, сгенерированных при генерации текущей страницы
- Время, затраченное на генерацию текущей страницы. Для более детальной информации можно включить режим отладки и просматривать листинг запросов и время выполнения функций
Читать далее про "Работа с данными"
rucms.org