Развитие 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.ru
    Админ панель:
    demo.kodicms.ru/backend

    Спасибо за внимание!

    P.S. К сожалению, статьи даются мне очень тяжело и найти человека, который помог бы с их написанием очень тяжело, поэтому публикации выходят не так часто, как мне хотелось бы, но в группе Вконтакте или Facebook я стараюсь освещать наиболее значимые изменения.
    KodiCMS
    33,00
    Компания
    Поделиться публикацией

    Похожие публикации

    Комментарии 13

      0
      Скажите, а есть в вашей CMS нечто вроде инфоблоков в битриксе? При всей убогости битрикса, инфоблоки — очень удобны.

      Основной их плюс — не нужно писать админку для каждого модуля. Особенно это полезно для типовых сайтов, где скорость разработки много важнее скорости работы сайта.

      Подобное находил только в друпале и в ModX. Во втором это «Template Variables».
      +1
      В рус ларавел комьюнити очень много бывших кохановцев энтузиастов.
      Если надумаете мигрировать, то обратитесь к ним в гиттер, или в тот же вк — уверен, вас поддержат.
        0
        Меня в этой затее больше волнует вопрос нагрузки на сервер и поддержки хостинг площадок.
          0
          Не смотрели в сторону FuelPHP? Схожесть с коханой проскальзывает, очень мощьный инструмент
        0
        Люблю демки смотреть demo.kodicms.ru/public/.tmb/habr.php
          0
          Демка легко крашится)
            +1
            Для поломки достаточно убрать шаблон для страницы сайта, стараюсь по возможности устранить все места, откуда можно сломать демо сайт:
            • Запрет на смену пароля
            • Запрет на выполнение PHP кода в частях страниц
            • Запрет на создание и редактирование шаблонов и сниппетов
            • Запрет на загрузку файлов через «Файловый менеджер»

            В системе слишком большая свобода действий под администратором, но в тоже время и все функции как на ладони, для обычных пользователей можно ограничить набор функционала и таких проблем не будет.

            UPD. Сайт починить легко, главное что бы сервер не подвел.
              +1
              • путем отключения всех плагинов

            0
            CMS впечатляет. Тем более на Kohana. Правда уже давно не использовал её. Надо попробовать.
            Но, если делать что-то новое, то без файлового менеджера. Лучше assets manager или медиабиблиотека(http://www.1c-bitrix.ru/products/cms/features/filemanager.php#media), или multimedia assets(https://www.drupal.org/project/media).
              0
              С этим bootstrap — ом теперь все на одно лицо
              :)
              opencart 2.0?

              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

              Самое читаемое