- PVSM.RU - https://www.pvsm.ru -

Развитие KodiCMS

Всем привет. С момента написания последней статьи в системе произошло много изменений, о которых хотелось бы рассказать.
Развитие KodiCMS - 1

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

Рабочий стол (Dashboard)

Одно из значимых изменений это уход на рабочем столе от jQuery UI в пользу Gridster [1], который позволил сделать рабочий стол более информативным и компактным. Теперь можно изменять размеры виджетов и размещать их в таком порядке, который удобен именно вам.
Развитие KodiCMS - 2 [2]
Как обычно посмотреть на новый рабочий стол можно на демо сайте [3].

Новые виджеты

  • Активность пользователя
  • Профайлер
  • Погода
  • Yandex metrika (beta, в виде отдельного плагина)

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

Плагины скелеты для разработки собственных модулей

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

  • Skeleton [4] — плагин в котором собранны необходимые файлы, которые могут помочь в разработке
  • Widget Skeleton [5] — необходимые файлы для создания виджета
  • Dashboard widget sekeleton [6] — необходимые файлы для создания виджета для рабочего стола

В будущем я планирую расширить данный список, в который войдут:

  • скелет для создания собственных типов полей для раздела «Гибридные данные»
  • скелет для создания нового раздела (Datasource)
  • скелет для создания типа страницы (Behavior)
  • скелет для подключения WYSIWYG редактора
Новый WYSIWYG редактор по умолчанию

Ранее в комплект KodiCMS входил только плагин с редактором текста RedactorJS, теперь в систему добавлен ckEditor [7], который используется в качестве редактора по умолчанию. В будущем планируется более тесная интеграция с системой, подключение файлового менеджера, загрузка картинок и т.д.
Развитие KodiCMS - 3

Также добавлена возможность выбрать цветовую схему для редактора кода Ace
Развитие KodiCMS - 4

В системе есть возможность подключения любого стороннего редактора без затрагивания кода ядра системы.

Раздел «Гибридные данные»

В KodiCMS есть плагин «Гибридные данные», который очень похож на раздел «Ифнормационные блоки» от Битрикс, но имеет свои преимущества и недостатки.

В данном разделе появился поиск по документам, а также добавлена возможность для каждого раздела в админ панели назначать иконку и группировать разделы по папкам, а также выносить раздел в корень меню.
Развитие KodiCMS - 5 [8]

Раздел страницы

При редактировании meta информации страницы сайта теперь можно сразу видеть скомпилированные заголовки
Развитие KodiCMS - 6
Также по работе с полями страницы была написана небольшая статья в разделе Wiki на Github [9]

Для виджета «Меню» добавлена возможность привязки других виджетов к страницам. Данный функционал может пригодиться, если в меню необходимо вывести данные, которые не содержаться в разделе страницы.
Развитие KodiCMS - 7

Модуль «Части страницы»

В данном модуле был переработан дизайн блоков, а также добавлена возможность изменять порядок их вывода.
Развитие KodiCMS - 8

Модуль «Поиск»

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

elFinder

Возможность подключения собственных каталогов в файловый менеджер системы.
Пример конфиг файла [10]

Обновления ядра 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');

в виджете
Развитие KodiCMS - 9
или в шаблоне сайта.

...
<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'
			)
		)
	),
);

Развитие KodiCMS - 10 [13] Развитие KodiCMS - 11

И как обычно:

Демо сайт:

demo.kodicms.ru [14]

Админ панель:

demo.kodicms.ru/backend [3]

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

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

Автор: ButscH

Источник [17]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/cms/80828

Ссылки в тексте:

[1] Gridster: http://gridster.net/

[2] Image: http://habrastorage.org/files/8eb/975/222/8eb97522249b4d45b9ffa709050e79e0.png

[3] демо сайте: http://demo.kodicms.ru/backend

[4] Skeleton: https://github.com/butschster/kodicms/tree/dev/cms/plugins/skeleton

[5] Widget Skeleton: https://github.com/butschster/kodicms/tree/dev/cms/plugins/skeleton_widget

[6] Dashboard widget sekeleton: https://github.com/butschster/kodicms/tree/dev/cms/plugins/skeleton_dashboard_widget

[7] ckEditor: http://ckeditor.com/

[8] Image: http://habrastorage.org/files/619/a88/953/619a889533b1429baebc91a850927b0f.png

[9] разделе Wiki на Github: https://github.com/butschster/kodicms/wiki/%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0-%D1%81-%D0%BC%D0%B5%D1%82%D0%B0-%D1%82%D0%B5%D0%B3%D0%B0%D0%BC%D0%B8-%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86

[10] Пример конфиг файла: https://github.com/butschster/kodicms/blob/dev/cms/plugins/skeleton/config/elfinder.php

[11] Referral links: https://github.com/butschster/kodicms/wiki/Referral-links

[12] Создание виджета: https://github.com/butschster/kodicms/wiki/Widget

[13] Image: http://habrastorage.org/files/7b8/6a1/c42/7b86a1c4278945b3b665de525ee1ee73.png

[14] demo.kodicms.ru: http://demo.kodicms.ru

[15] Вконтакте: http://vk.com/kodicms

[16] Facebook: https://www.facebook.com/kodicms

[17] Источник: http://habrahabr.ru/post/248937/