Всем привет!
Давно меня тут не было, за это время даже уже успел выйти "долгожданный" S*AED 5 (IMG:
http://antislaed.net/style_emoticons/default/happy.gif) Но речь пойдёт о более интересном, надеюсь (IMG:
http://antislaed.net/style_emoticons/default/wink.gif)
С этого дня хотел бы заявить о создании новой,
другой CMS, которая, надеюсь, в будущем станет использоваться для построения определённого типа сайтов. Назвал я её «Intellect», т.к. мне хотелось чтобы хоть чем-то отвечала этому слову (IMG:
http://antislaed.net/style_emoticons/default/happy.gif)
Небольшая предыстория: я давний (уже примерно лет 5) пользователь «Antislaed», за это время смог оценить как все плюсы, так и множество минусов данной системы (о них чуть ниже с моей точки зрения). И уже как больше половины года я не просто пользователь системы «Bitrix 1C», но и её программист, разработчик сайтов на основе этой системы. За это время (работаю каждый день с ней по 8 часов) тоже успел оценить множество достоинств и, к сожалению, недостатки системы. В итоге, имея не маленький опыт с этими двумя системами и примерно зная работу других CMS представленных на этом форуме, у меня возникло желание создать свою, другую, в которой бы хотелось воплотить в жизнь удобство и простоту антислаеда и отличную универсальность и многофункциональность битрикса. Сразу скажу, что ни с той, ни с другой CMS каких-то функций, классов и определённых областей кода я не брал, не беру и не собираюсь брать. Для меня всегда проще написать самому, нежели скопипастить не разбираясь и довольствоваться результатом, который в итоге может оказаться не совсем положительным именно потому, что я в этом не разбирался. Я хочу воплощать свои идеи, добавлять сторонние, проверенные.
Системой я начал заниматься в середине декабря 2011, уделяя ей по несколько (2-3) часов в день. На данном этапе она ещё не готова к выходу в свет и даже не готова к демонстрации, т.к. сейчас ведётся работа над классами и ядром, определёнными блоками и модулями, но уже существует админка со структурой, и управляющее ядро контентом, с настраиваемым универсальным ЧПУ и его настройками... Сегодня моя цель заявить о том, что работа над CMS идёт почти каждодневно и познакомить Вас с целями, которые я достиг/собираюсь достичь на данном этапе разработки первой beta-версии системы, а так же предложить высказывать свои мнения и пожелания.
Цели, возможности, описание (в [квадртаных] скобочках будут CMS (антислаед или битрикс) в которых есть определённая возможность):
1.
Возможность управлять любыми файлами находящимися в структуре сайта через CMS [bitrix]
Что это значит - если вы когда-нибудь пытались создать простую, обыкновенную страничку в AS которая бы являлась страницей сайта, то знаете, как это муторно и ужасно неудобно. Чаще всего приходилось создавать простейший модуль (!) регистрировать его в админке и тогда получалась страница. Имеющая не совсем красивый вид (без ЧПУ): site/index.php?name=example . В битриксе можно в любой папке создать файл, добавить в него две строчки вверх (хедер) и вниз (футтер) относительно контента и вот вам готовый раздел с полноценным шаблоном сайта. Ну просто ужасно удобно!
Так работает и CMS «Intellect». Данный функционал позволяет не использовать базу данных там, где она не нужна, создавая обыкновенные статические страницы с контентом отображаемым в шаблоне сайта.
2.
Замена физических каталогов и файлов (при их отсутствии) виртуальными. [нет]
Это одна из основных идей, которую я воплотил в новой CMS. Заключается она в том, что если у нас в структуре сайта НЕТ физического каталога например /example/ или файла /example/test.html , то система проверяет есть ли виртуальные каталоги в базе данных (БД) системы. Подобно тому, как в АС существуют модули и категории, а в них уже страницы, в CMS «Intellect» существуют так называемые "
Хранилища" (
deposit), "
Каталоги" (
catalog) и "
Ячейки" (
cell) - т.е., если мы наберём адрес, например,
/forum/category_1/category_2/category_n/test.html , то
forum - это будет хранилище,
category_1,
category_2,
category_n - будут каталоги, а
test.html - ячейка. Так чем-то похожую структуру имеет и битрикс, там есть инфоблоки, каталоги и элементы.
Если же в БД будет отсутствовать хранилище с данными каталогами и ячейками, то тогда, наконец, мы увидим 404. Наверное уже понятно, что для такой работы создано ЧПУ...
3.
Наличие, универсальность и гибкость ЧПУ. [bitrix]
О той гибкости ЧПУ и возможности её настройки, что есть в битриксе, другим системам только мечтать. Имея всего пару каталогов на сайте можно без каких-либо правок в .htaccess создать неограниченное количество виртуальных каталогов, которые всеми будут восприниматься как физические. Эту идею частично воплотила и CMS «Intellect», часть о ней я рассказал во 2 пункте. В АС, для того, чтобы настроить ЧПУ, нужно обязательно вносить правки в файл .htaccess, что совсем не удобно, не автоматически и не универсально. В CMS «Intellect» файл .htaccess настроен так, что если не найдены физические каталоги или файлы, то данные из строки браузера (проще говоря) передаются в специальный файл, где данные обрабатываются и проверяется наличие
хранилища в БД, после чего выводится результат - данные из БД или же 404. В обрабатывающем файле стоит "
блок".
4.
Модульность системы. API. [bitrix]
Ни о какой модульности и речи быть не может, если говорить об AS. Там всё сплошняком. Если вы удалите в одном месте функцию, то вся CMS скорее всего загнётся. Битрикс и CMS «Intellect» построены на модулях (это не те модули что в АС), здесь модулями называются основные функционалы для работы с определенным типом данных в системе, а так же модулем мы можем расширять систему. Чаще всего модуль - это классы, функции и конфигурации для управления какой-то определённой частью системы. Ну например - модуль
base - модуль работы с базой данных, содержащий в себе классы и методы управления данными. Данный класс и другие имеют свой API (Интерфейс программирования приложений), что позволяет управлять базой не на прямую SQL-запросами, а методами классов, которые уже сами "знают" что и куда. Которым можно задавать условия (фильтры), сортировку и т.д. (это сделано для удобства программирования на данной системе и простоты создания "блоков" - универсальных приложений системы).
5.
Создание полноценных "приложений" без навыков программирования. [bitrix, частично AS]
В битриксе есть такое понятие как "компоненты" - это готовые блоки, с настройками, которые можно поставить в любую часть шаблона сайта, в любую страницу.
В АС что-то подобное называется блоками, но гибкость их оставляет желать лучшего, хотя, если нужно их размещать только в шаблоне сайта (слева, справа, внизу, вверху), то управлять ими очень удобно из админки, можно настроить видимость в определённых модулях АС и для определённых групп пользователей. Но все становилось плохо, если нужно было этот блок вставить в другое место.
В CMS «Intellect» тоже есть свои блоки, которые занимаются выводом определённого типа информации (блок авторизации, блок работы с заменой физических каталогов и файлов виртуальными (о нём писал в пункте 2 и 3) и т.д.) Для каждого из них можно задавать область применения/отображения, свои настройки и свои темы. Настройки будут храниться в коде страницы или шаблона, в которой мы разместили блок (как в битриксе).
6.
Возможность авторизовываться и поддерживать сессию с выключенными куками [-]
7.
Расширенные группы пользователей- автогруппы [частично AC]
(автоматически назначаемые группы пользователей по достижению (или наоборот) какого-либо параметра
- группы назначаемые вручную [bitrix, AC]
8.
Возможность управления данными по событиям определённых модулей (программирование) [bitrix]
9.
Возможность расширять данные с помощью свойств [bitrix, частично AS]
В АС это называется "Дополнительные поля", в битриксе это свойства инфоблока. В АС такие поля уж очень какие-то корявые и очень не гибкие, а о том, как они хранятся в БД я вообще промолчу. Напротив, в битриске же свойства очень полезны и являются одним из самых применяемых функционалов для создания с помощью этой CMS сайта, практически любой сложности. Идея данного функционала применена и в CMS «Intellect». Можно добавлять различные свойства разных типов к пользователям,
хранилищам,
каталогам и
ячейкам. Это могут быть привязки к файлам, привязки к пользователям, могут быть списки с выбором нужного варианта, могут быть привязки к другим
хранилищам,
каталогам и
ячейкам и т.д.
10.
Возможность работы с буфером [bitrix]
AS тоже работает с буфером PHP, но об этом мало кто знает, т.к. это "вшито" в код. Но все мы знаем про файл "config_header.php" который выполняет всё, что мы там напишем в шапке сайта. Подобный файл есть и в CMS «Intellect» (и в битриксе) плюс к этому есть методы работы с буфером. Пример:
задача: имеется шаблон, в котором в тайтле прописан заголовок - нужно менять этот заголовок после подключения шаблона ниже по коду на другой.
Для этого в заголовке пишется ShowTitle(), а в любом месте ниже, где мы хотим поменять заголовок - SetTitle("Другой заголовок").
Точно так же можно подключать css, скрипты js и вообще что угодно внедрять уже после формирования страницы.
11.
Функционал выполнения заданий по расписанию [bitrix]
Своеобразный "Cron", но только в системе. Задаётся период выполнения скриптов и PHP код скрипта или инклуд к нужному скрипту.
12.
Простота админки и настройки системы, не загруженность для рядового пользователя. [AC]
13.
Возможность расширять систему без правок в ядре системы [bitrix]
Данный пункт полезен для программистов и тех, кто захочет добавить что-то своё в систему не изменяя её саму.
Помощью в этом является 8, 9, 10, 11 пункты, возможность использовать для каждого блока свои темы и подключать дополнительные файлы перед выводом шаблона, в которые будут приходить все данные из блока в виде массива.
14.
Не перегруженность в коде, не большой размер системы [AC]
Наверное каждый, кто скачивал битрикс ужасался тому, сколько весит дистрибутив системы - 46.8 Мб (минимальная сборка). Даже не все разработчики битрикса знают те функции, что в него забиты с момента его создания. Очень много говна из-за нерационально созданной структуры. От всего этого система становится не просто сложной для восприятия, программирования, но и медленной, тормознутой и пожирающей большое количество ресурсов хостинга. Не каждый хостинг выдержит нагрузку, которую создаёт битрикс. Слабенький хостинг попросит вас покинуть его вместе со своим битриксом )) За частую все возможности битрикса не используются, а лишь только 30-40%. Это самый яркий и огромный минус данной системы.
....
пока я перечислил в общих чертах самое основное, что в себе уже содержит система, не перечисляя какие-то мелочи, которые наверное всё же придётся перечислить во время её выхода.
Что касается о распространении системы - будет ли она платной или бесплатной. Beta-версии скорее всего на первом этапе будут бесплатные, а уже стабильные - платные. Знаю точно, что буду делать разные комплектации.
Beta-версия системы будет либо бесплатной, либо открытой для тестирования в админке и в публичке на специальном сайте, как это практикуется на других CMS. Всё зависит от вас, ну и конечно же от меня (IMG:
http://antislaed.net/style_emoticons/default/smile.gif) В любом случае когда система будет готова к первому beta-выходу, то я дам в полной мере её потестить. Ну и цена не будет конечно же такой ужасной, как у битрикса, что, кстати является ещё одним большущим минусом для него, когда минимальная нормальная версия стоит 4 900 руб, ну а навороченная - 249 900 руб.
Ну а пока ваши комментарии, ради которых я всё это писал.
Домен для новой CMS зареген и ждёт своего часа.
Сообщение отредактировал Mylenovez: Apr 8 2012, 01:50