SatCMS 0.0.2 - Bootstrap3, jQuery, RequireJS, AngularJS, PHP, mySQL|SQLite

Категория: / DEV Блог / PHP (LAMP)
Решил на досуге переписать свою старую мультисайтовую cms (SatCMS).

Раньше интерфейс выглядел примерно так:



Сейчас:



Что получилось:

- php >=5.3, mysql/sqlite
- зависимости обрабатываются менеджерами пакетов: php - composer, js - bower
- мультисайтовость (возможность вести несколько сайтов/поддоменов) на одном движке
- морда/админка - шаблоны smarty, bootstrap 3
- админ-бэкенд на requirejs/angularjs/bootstrap/jquery.
Angular-way не блюдется, так как много легаси кода, и выпиливать jquery-подход совсем не хочется, простите за dom в контроллере :)
- правка элементов сайта прямо с морды (пользуется inline tinymce)

Посмотреть:

Демо http://satcms.ru/

Гитхаб https://github.com/rustyJ4ck/SatCMS

Дистрибутив с зависимостями (0.0.2) https://github.com/rustyJ4ck/SatCMS/releases/download/0.0.2/satcms-0.0.2.zip



Установка

1. Скачать последний релиз, распаковать файлы на сервере.
2. Настроить папку `public` корнем веб сервера (пока только apache)
3. Убедиться что mod_rewrite включен и обрабатывает файлы .htaccess

Зависимости

Для установки/обновления зависимостей используется bower для клиентских скриптов и composer для серверных.

composer install


Композер создаст папку /vendor, загрузит все php-зависимости и обновит автозагрузчик.

bower install


Бовер создаст папку /public/vendor

Для обновления install заменить на update.

Для `живого` редактирования и в качестве wysiwyg редактора используется tinymce.
Бовер-пакет его скачивается не собранным. Чтобы редактор заработал, нужно его `скомпилировать`.

Идем в папку /public/vendor/tinymce

И выполняем команды

npm i -g jake //если не установлен jake
jake



(unix) Установка прав на папки

На следующие директории должны быть установлены права, позволяющие веб серверу запись в них

config/localhost/database.db (sqlite database)
public/uploads/*
public/assets/*
cache/*
tmp/*



(unix) sqlite

Убедитесь что все папки в пути до файла базы данных имею writable+executable бит для пользователя веб сервера.
иначе получите ошибку "get unable to open database file".


Сборка скриптов для админ панели (необязательно)

С помощью r.js можно собрать все клиентские скрипты панели редактора в один минифицированный.

r.js -o build.js


Чтобы использовать полученный бандл, нужно доабавить в config/engine.cfg

render_config_vars = "..., lib_editor"
 
[lib_editor]
optimized = yes