Разработка mini-cms для MFA сайтов.
Soooo, mini-cms for mfa sites – на жанге! Джанго отличный фреймворк (говорят даже что это один из лучших продуктов что сейчас вообще есть), там предусмотрено все что нужно для быстрой разарботки веб-сайтов, каждая мелоч, а философия фрэймворка предполагает многократно использовать приложения (apps почти как плагины в вордпрессе) которых наваяли уже тысячи и почти все что может понадобится можно найти на гитхабе и без проблем подключить на свой сайт.
Вообщем какие требования для начала к mini cms?
- Желательно иметь возможность менять themes. Ок, не вопрос.
- Урлы вида http://site.com/article-name или http://site.com/category/article-name
- сайтмап
- рсс фид
Предлагайте в комментах, что еще можно добавить.
Чтобы быстро начать я воспользовался уже готовым шаблоном для проектов который я составил для себя и любезно выложил на гитхб – базовый шаблон для django сайта.
Можно скопировать себе, поставить джангу и поиграться, на линуксе все просто, поставил git и…
git clone https://github.com/istinspring/mini-cms-for-mfa.git mini-cms-for-mfa
Как там в виндовс, хз, win как платформа не предназначена для вебразработки, линукс гораздо удобнее и все к чему вы привыкли на винде, кроме игр, есть и на линуксе.
Описание, фичи, процесс разработки
Ситуацию с земами (themes) разруливал впервые, поэтому пришлось поэкспериментировать. Хотел сначала написать themes engine который отдавал файлы в соответствии с текущей активной темой, типа как в вордпрессе, но это долго, мутно и генерирует лишние запросы к базе данных, что как бы не очень круто. Поэтому решил сделать по другому, оптимальным решением, как мне кажется будет загружать зип архив с темой, файлы из которого при активации будут копироваться в соответствующие папки django, таким образом cms лишний раз не будет обстукивать sqlite базу данных, но при этом можно легко поменять текущий зем и загрузить новый.
Сам движок cms на джанге писать одно удовольствие. Я уже кучу раз делал подобное в своих проектах и теперь просто модифицировал/доработал/улучшил код который у меня был. Тут все просто – нужно создавать страницы которые будут отображаться в соответствии с заданными категориями, или без них (подумал что сайт вполне может разрастись до 50 страниц, а как бы 50 страниц уже нуждаются в сортировке по каким-то признакам).
Для создания RSS и Sitemap фрэймворк django любезно предоставляет удобные инструменты которыми я воспользовался. Ммм… что еще? Написал контекст процессор который передаёт данные по сайту и категориям при рендере каждой страниц, это позволяет достаточно просто создавать новые земы на основе произвольного html кода, прописывая логику отображения элементов сайта.
Почти готово…
Стал писать с момента публикации прошлого поста, с перерывами, естественно на сон, покушать и бытовые нужды, сегодня с утра пушнул проект в репозиторий на гитхабе, поднял демо сайт на сервер и написал пост. Вроде получилось неплохо, а главное быстро на пределе возможностей, что всегда означает массу опыта и дальнейшее развитие навыков.
Вообщем вот демо – mini-cms-for-mfa demo site
Вот код – Mini CMS for MFA
Логин/Пасс – test/test вход в админку через http://wtfisgoingon.co.cc/admin
Уже есть идеи по поводу улучшений :
- сделать менеджер рекламы (чтобы рулить размещением из админки)
- добавить темлейт тэги чтобы можно было очень просто обозначить рекламные блоки и какие-либо элементы интерфейса внутри шаблона
- статистику
- апи интерфейс
- рендер в статику, чтобы эту статику потом размещать где угодно
- интерфейс для добавления ссылок в сайдбар
- кэширование
Если у кого-то есть пожелания, то пишите в комменты или на мыло, как будет время доработаю.



