Content Management System "Ёжик"

Version 2.26.1402

Admin Panel

A fully functional admin panel for managing any website content and settings. It displays view statistics, visitor logs, allows you to create backups, manage users, and more.

Pages

Each website page is a separate file. The system will understand PHP, Markdown, HTML, JSON, or plain text. All page settings are stored within the page, in regular PHP comments.

Files

"Ёжик" - is a flat-file system. Everything is stored in files. Any data can be edited in a standard Notepad (or through the Admin Panel). The admin panel also allows you to edit images a little.

Multilingualism

Just like the Admin Panel, pages support multiple language output options. Modules and templates contain "language constants" files. You can create and share your own translations.

Comments

Full commenting with "likes" and moderation is available. The comment module understands Markdown markup. Each comment is stored in a separate file.

Users

The system allows new users to register independently. Roles and permissions are provided for them. Activity is tracked, and the ability to ban unwanted users is also available.

Backups

Create a ZIP archive of your website with one click. All pages deleted through the Admin Panel are automatically saved in a backup for later restoration. This is another advantage of the flat-file system.

Tags

Tags can be added to any page to link content beyond categories. Tags can be grouped. Just like pages, different languages are supported.

Modules

You can define a module output anywhere (either on a page or in a template). The most popular ones have already been created: "Menu," various "Galleries," "Tags" and "Comments" output, and a "Likes" module.

Security

The only "door" into the system. Requests are verified, and if invalid, access is denied. The system doesn't store user passwords. Only hashes are stored, which change with each request.

Self-sufficiency

PHP is a language with great potential. The system doesn't require learning third-party templating engines or frameworks. The only addition is native JavaScript, as it's indispensable.

Customization

You have the right to modify any file in the system to suit your needs. Look for flaws. Share your developments with everyone. The only limitation is not to require payment. You can only politely ask ☺.

"Ёжик" is built on the Albireo Framework.

Slightly customized and heavily redesigned, even before the Albireo CMS appeared.

The main difference from Albireo CMS - "Ёжик" is free., as permitted by the MIT license for the Albireo Framework

MAX doesn't even allow you to fully try out or evaluate the system before purchasing. Just promises that it will be "this way and that way". ☺

Carefully !

On the website of Ukrainian nationalist, all articles (in Russian ☺), since 2014, contain hidden text insulting the Russian nation or the Russian president.


Not a stupid person. I hope he doesn't mean any harm ...

The following features are inherited:

Dream Routing

Any page can have any URL. That is, what is specified in the page file will work that way. There's no need to tweak anything or edit other files: just specify the URL in the page file, and it works right away. Move the file to any folder—it doesn't matter—the page URL won't change until you change it. If a hardcoded page URL isn't enough, use the additional slug-pattern field, which allows you to use regular expressions. Just like in the "large" frameworks.

REST

When routing, you should consider not only the address, but also the HTTP sending method. Browsers only use the POST and GET methods, which means that to edit, for example, using AJAX, you need to use a regular POST request, but place a field with the method name inside it. This is a modern, practically standard, way of working with REST.
"Ёжик" also supports this. For example, there is a page with a form. It sends a regular POST request to this is the same address (URL). The request handler is placed in a file with the same address (URL), we only specify the method.
It doesn't matter which method is used; you can come up with any name ☺.

Smart Cache

Typically a cache has a lifetime. Say, 15 minutes. After this time, the cache becomes outdated and needs to be rebuilt. But in reality, the data in the cache may be perfectly valid, and its lifetime has nothing to do with data expiration. This method of working with cache is used universally, that is, everywhere—evaluation based on its lifetime.
In "Ёжик," everything is different. There is a directory pages, and the system looks at the last change in this directory, and if the requested cache is older, it marks it as invalid.
This means a very simple thing - you don't have to think about the cache as such at all. Change the page content—the cache will automatically rebuild itself. If there are no changes for three years, the cache will work perfectly all this time without updating.

Демонстрационные данные для CMS "Ёжик"

Что бы понять, насколько "Ёжик" хорош (или неприемлим) - подглядите, как устроены демо-данные. Там же есть и документация.

Установка на локальный сервер - обычная разархивация. Когда попробуете, и станет всё понятно, и захочется пользовать "Ёжика" - просто скопируйте всё на хостинг.

Здесь не рассматриваю вопросы "КАК правильно ?" или "ЧЕМ лучше ?". Себя считаю делитантом по многим вопросам. Интернет огромен, а Мир удивителен - ищу информацию, пробую, делюсь.
"Ежли чё - заходи, подмогну."

P.S.

Пользую "Linux Mint" уже более 15 лет. Значения слов, типа "виндаус", "бесплатная-прога", "есть-кряк" - не понимаю. Чего и всем желаю ☺.

В примерах используется:

Мощный, расширяемый и многофункциональный набор инструментов для фронтенд-разработки.

CSS немного кастомизированный, или сильно урезанный.

О демо-данных (что есть)

  • Четыре раздела сайта с разными цветовыми стилями оформления.
  • Скрытый (корпоративный) раздел, с под-разделами (департаментами).
  • Сайт мультиязычный - "RU" и немного "EN" ☺.
  • Разные разметки шаблонов - шапки, подвалы, боковые меню или без них.
  • Страницы с тремя типами содержимого - "Обычный", "Markdown" или "Данные (по шаблону)".
  • Модули "Меню", "Хлебные крошки", "Комментарии", "Теги (метки)", "Галлереи" и пр.
  • Варианты страниц с модулями в разной комбинации.
  • Парсером Markdown выбран "PHP CommonMark".
  • Несколько пользователей с различными привилегиями (разрешениями).
  • "Парочка" шаблонов для страниц с содержимым "Данные (по шаблону)".
  • Служебные страницы (не попадающие в "карту сайта") - 404, с методами POST, AJAX и пр.
  • Редактором страниц в Админ-панели, оставлен умолчальный - CodeMirror v.5
  • Куча изображений в каталоге загрузок.
  • Возможность быстро создать 1000 (тысячу) страниц - для теста производительности.

  • Во всех шаблонах подключен JavaScript bs5_lightbox.js для создания лайтбоксов, который использует плагины Modal и Carousel от Bootstrap v.5. Таблица стилей небольшая - в файле custom.css. В разделе Записная книжка есть небольшой документ с пояснениями и примерами.
  • Почти во всех шаблонах подключены JavaScript и CSS-таблица от PrismJS v1.29.0 для красивого оформления кода в тэге <pre>...</pre>
  • Применены вариативные шрифты с урезанным набором символов (для уменьшения размера файла). В коллекции около пятнадцати шрифтов.
  • Небольшая объясняловка, как кастомизировал CSS Botstrap. Внедрил загрузку шрифтов, обрезал сетку до шести, изменил цветовую карту и пр.
  • Модуль Меню - по сути сборщик "ссылок_на_страницы" с выбранными параметрами. Можно использовать как "меню", или "самое популярное", или "ещё в рубрике", или "новые записи", или ... и т.д. и т.п

Замер производительности

На кажой странице, в левом нижнем углу, небольшая плашка выводит три параметра
 0.00682 s • 993.28 K • XXL 

  1. время, которое потратил PHP для обработки данных
  2. память, которую затратил PHP для обработки данных
  3. метка контрольной точки сетки Bootstrap

Замер памяти производится так же, как и в PHP Debug Bar и отличается от метода, предложенного MAXом в Albireo Framework и Albireo CMS

Если производить замер методом Albireo CMS, то получится примерно следующее:
 0.00682 s • 662.28 K • XXL 
Если производить замер методом Albireo Framework, то получится примерно следующее:
 0.00682 s • 331.28 K • XXL 

Учитывайте это при прочтении статей на сайте MAXа ☺
и не забудьте отключить "режим отладки" - в Админ-панели во вкладке "Конфигурация сайта".

Заинтересованным

Сайтостроительством занимаюсь переодически. Это хобби. Потому, для развития проекта, есть сильная необходимость в заинтересованных и увлечённых специалистах (особенно по JavaScript).

Призываю всех желающих присоединяться steller21@yandex.ru

You still have our cookies (because you can’t live without them).More info…
0.05446 s • 
729.76 К • 
XXL XL LG MD SM XS