Розвиток KodiCMS

Всім привіт. З моменту написання останньої статті в системі відбулося багато змін, про які хотілося б розповісти.


На жаль, у статті мінімум технічної інформації, але все одно ця стаття важлива для розуміння того, що система не стоїть на місці і можливо допоможе комусь проявити інтерес до неї і бажання взяти участь в розробці.

Робочий стіл (Dashboard)
Одне із значущих змін це відхід на робочому столі від jQuery UI на користь Gridster, який дозволив зробити робочий стіл більш інформативним і компактним. Тепер можна змінити розміри віджетів і розміщувати їх в такому порядку, який зручний саме вам.

Як зазвичай подивитися на новий робочий стіл можна на демо сайті.

Нові віджети
  • Активність користувача
  • Профайлер
  • Погода
  • Yandex metrika (beta, у вигляді окремого плагіна)
Також покращився API по створенню власних віджетів, воно стало простіше і функціональний. Для кожного елемента є можливість вказати обмеження за розміром, розмір за замовчуванням, а також у майбутньому планується авто оновлення даних.
Плагіни скелети для розробки власних модулів
Основна проблема KodiCMS — недолік документації, яка могла б допомогти користувачам створювати власні модулі або розширювати функціональність існуючих модулів, тому в якості першого кроку були створені плагіни — скелети, в яких зібрані основні конфігураційні файли з описом, а також основні класи, які допоможуть в розробці.

  • Skeleton — плагін в якому зібрані необхідні файли, які можуть допомогти в розробці
  • Widget Skeleton — необхідні файли для створення віджета
  • Dashboard widget sekeleton — необхідні файли для створення віджета для робочого столу
В майбутньому я планую розширити цей список, у який увійдуть:
  • скелет для створення власних типів полів для розділу «Гібридні дані»
  • скелет для створення нового розділу (Datasource)
  • скелет для створення типу сторінки (Behavior)
  • скелет для підключення WYSIWYG редактора


Новий WYSIWYG редактор за замовчуванням
Раніше в комплект KodiCMS входив тільки плагін з редактором тексту RedactorJS, тепер у систему доданий ckEditor, який використовується в якості редактора за замовчуванням. В майбутньому планується більш тісна інтеграція з системою, підключення файлового менеджера, завантаження зображень і т. д.


Також додана можливість вибрати колірну схему для редактора коду Ace

У системі є можливість підключення будь-якого стороннього редактора без підняття коду ядра системи.
Розділ «Гібридні дані»
KodiCMS є плагін «Гібридні дані», який дуже схожий на розділ «Ифнормационные блоки» від Бітрікс, але має свої переваги і недоліки.
В даному розділі з'явився пошук за документами, а також додана можливість для кожного розділу у адмін панелі призначати іконку і згрупувати розділи по папках, а також виносити розділ в корінь меню.


Розділ сторінки
При редагуванні meta інформації сторінки сайту тепер можна відразу бачити скомпільовані заголовки

Також по роботі з полями була написана невеличка стаття в розділі Wiki на Github

Для віджету «Меню» додана можливість прив'язки інших віджетів сторінок. Даний функціонал може стати в нагоді, якщо в меню необхідно вивести дані, які не містяться у розділі сторінки.


Модуль «Частині сторінки
У даному модулі був перероблений дизайн блоків, а також додана можливість змінювати порядок їх виводу.


Модуль «Пошук»
Потихеньку в систему вбудовується Sphinx search, для пошуку по розділах сайту, а також в тестовому режимі генерується конфіг для створених розділів «Гібридні дані».

elFinder
Можливість підключення власних каталогів в файловий менеджер системи.
Приклад конфіг файл

Оновлення ядра Kohana і сторонніх бібліотек
Так-так, таке теж можливо, як це не парадоксально, але для Kohana вийшло оновлення версії 3.3.3.1, в якому на жаль мало змін, але все ж я стежу за оновленням модулів і бібліотек використовуваних системою і по можливості оновлюю.

Нові статті в Wiki


Плани на майбутнє
У зв'язку з тим, що фреймворк Kohana припинив свій розвиток і для багатьох це є важливим критерієм, тобто думки про те, щоб мігрувати на інший фреймворк, наприклад, близький по архітектурі — Laravel, але поки це тільки думки, які все частіше відвідують мене. Якщо міграція не відбудеться, то приведення коду, назви файлів і т. д. до стандартів.
Для багатьох головним критерієм у виборі CMS є наявність модуля інтернет-магазину і також є думки про створення такого модуля.

У даній статті я виділив основні зміни, які можна побачити візуально, але крім них є ще безліч поліпшень в коді системи.

Невеликий відступОднією з головних особливостей системи є модульність і розширення за допомогою плагінів. Для мене процес розробки нового сайту починається з створення плагіна, в якому я можу один раз ініціалізувати нові пакети js, css бібліотек і надалі підключати їх за назвою пакету.
//init.php
Assets_Package::add('fancybox')
->css(NULL, ADMIN_RESOURCES . 'libs/fancybox/jquery.fancybox.css', 'jquery')
->js(NULL, ADMIN_RESOURCES . 'libs/fancybox/jquery.fancybox.pack.js', 'jquery');

в віджеті

чи в шаблоні сайту.
...
<head>
<?php echo Meta::factory($page)
->add(array('name' => 'author', 'content' => 'KodiCMS'))
->package(array('jquery', 'fancybox", 'fontawesome')); 
?>
</head>
...


Також в плагіні можна зберігати всі шаблони і фрагменти сайту і вони будуть видні в системі також як і шаблони в корені.

В плагіні можна налаштувати конфіг підключення додаткової папки в файловий менеджер
//elfinder.php
return array(
'volumes' => array(
'skeleton_public' => array(
'driver' => elFinder_Connector::FILE_SYSTEM, // driver for accessing file system (REQUIRED)
'path' => substr(PLUGIN_SKELETON_PATH, 0, -1), // path to files (REQUIRED)
'URL' => PLUGIN_SKELETON_URL, // URL to files (REQUIRED),
'alias' => __('Skeleton public'),
'uploadMaxSize' => '10M',
'mimeDetect' => 'internal',
'imgLib' => 'gd',
)
)
);


або доповнити існуючий тип сторінки новымы роутами, які допоможуть у створенні посилань, наприклад для фільтрації даних.
//behaviors.php
return array(
'hybrid_docs' => array(
'routes' => array(
'/tag/<tag>' => array(
'regex' => array(
'tag' => '.*'
),
'method' => 'stub'
)
)
),
);




І як зазвичай:
Демо сайт:
demo.kodicms.uk
Адмін панель:
demo.kodicms.ua/backend

Спасибі за увагу!

P. S. На жаль, статті даються мені дуже важко знайти людину, який допоміг би з їх написанням дуже важко, тому публікації виходять не так часто, як мені хотілося б, але в групі Вконтакте або Facebook я намагаюся висвітлювати найбільш значущі зміни.

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.