<?php defined('SYSPATH') or die('No direct script access.'); define('INSTALL_DATA', MODPATH . 'installer' . DIRECTORY_SEPARATOR . 'install' . DIRECTORY_SEPARATOR); if (array_key_exists(Arr::get($_GET, 'lang'), I18n::available_langs())) { I18n::lang(Arr::get($_GET, 'lang')); } else { I18n::lang(I18n::detect_lang()); } try { date_default_timezone_get(); } catch (Exception $e) { date_default_timezone_set('UTC'); } Database::$default = 'install'; Route::set('install', 'install(/<action>(/<id>))')->defaults(array('controller' => 'install', 'action' => 'error')); Assets_Package::add('install')->js(NULL, ADMIN_RESOURCES . 'js/install.js', 'global')->css(NULL, ADMIN_RESOURCES . 'css/install.css', 'global');
<?php defined('SYSPATH') or die('No direct access allowed.'); Assets_Package::add('core')->css('global', ADMIN_RESOURCES . 'css/common.css')->js(NULL, ADMIN_RESOURCES . 'js/core.min.js', 'backbone')->js('global', ADMIN_RESOURCES . 'js/backend.min.js', 'core'); Assets_Package::add('jquery')->js(NULL, ADMIN_RESOURCES . 'libs/jquery.min.js'); Assets_Package::add('bootstrap')->js(NULL, ADMIN_RESOURCES . 'libs/bootstrap-3.3.1/dist/js/bootstrap.min.js', 'jquery'); Assets_Package::add('underscore')->js(NULL, ADMIN_RESOURCES . 'libs/underscore-min.js', 'jquery'); Assets_Package::add('backbone')->js(NULL, ADMIN_RESOURCES . 'libs/backbone-min.js', 'underscore'); Assets_Package::add('jquery-ui')->js(NULL, ADMIN_RESOURCES . 'libs/jquery-ui/js/jquery-ui.min.js', 'jquery')->css(NULL, ADMIN_RESOURCES . 'libs/jquery-ui/css/jquery-ui.min.css', 'jquery'); Assets_Package::add('notify')->js(NULL, ADMIN_RESOURCES . 'libs/pnotify/jquery.pnotify.min.js', 'jquery')->css(NULL, ADMIN_RESOURCES . 'libs/pnotify/jquery.pnotify.default.css', 'jquery'); Assets_Package::add('dropzone')->css(NULL, ADMIN_RESOURCES . 'libs/dropzone/css/basic.css', 'jquery')->js(NULL, ADMIN_RESOURCES . 'libs/dropzone/dropzone.min.js', 'jquery'); 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'); Assets_Package::add('datepicker')->css(NULL, ADMIN_RESOURCES . 'libs/datepicker/jquery.datetimepicker.css', 'jquery')->js(NULL, ADMIN_RESOURCES . 'libs/datepicker/jquery.datetimepicker.min.js', 'jquery'); Assets_Package::add('prism')->css(NULL, ADMIN_RESOURCES . 'libs/prismjs/prism.css', 'jquery')->js(NULL, ADMIN_RESOURCES . 'libs/prismjs/prism.js', 'jquery'); Assets_Package::add('colorpicker')->css(NULL, ADMIN_RESOURCES . 'libs/colorpicker/css/colorpicker.css', 'jquery')->js(NULL, ADMIN_RESOURCES . 'libs/colorpicker/js/colorpicker.js', 'jquery'); Assets_Package::add('editable')->js(NULL, ADMIN_RESOURCES . 'libs/bootstrap-editable-1.5.1/js/bootstrap-editable.min.js', 'bootstrap'); Assets_Package::add('nestable')->js(NULL, ADMIN_RESOURCES . 'libs/nestable/jquery.nestable.min.js', 'bootstrap'); Assets_Package::add('ace')->js('ace-library', ADMIN_RESOURCES . 'libs/ace/src-min/ace.js', 'global')->js(NULL, ADMIN_RESOURCES . 'js/ace.js', 'global'); Assets_Package::add('steps')->js(NULL, ADMIN_RESOURCES . 'libs/steps/jquery.steps.min.js', 'jquery'); Assets_Package::add('chart')->js(NULL, ADMIN_RESOURCES . 'libs/highcharts/highcharts.js', 'jquery'); Assets_Package::add('ckeditor')->js('ckeditor-library', ADMIN_RESOURCES . 'libs/ckeditor/ckeditor.js', 'jquery')->js(NULL, ADMIN_RESOURCES . 'js/ckeditor.js', 'global'); WYSIWYG::add('ace'); WYSIWYG::add('ckeditor'); // Подключение пакета после загрузки модулей, чтобы определить текущий язык Observer::observe('modules::after_load', function () { Assets_Package::add('select2')->js(NULL, ADMIN_RESOURCES . 'libs/select2/select2.min.js', 'jquery')->js(NULL . I18n::lang_short(), ADMIN_RESOURCES . 'libs/select2/select2_locale_' . I18n::lang_short() . '.js', 'select2'); Assets_Package::add('validate')->js(NULL, ADMIN_RESOURCES . 'libs/validation/jquery.validate.min.js', 'jquery')->js(NULL . I18n::lang_short(), ADMIN_RESOURCES . 'libs/validation/localization/messages_' . I18n::lang_short() . '.min.js', 'validate'); }); Observer::observe('view_setting_plugins', function () { echo View::factory('ace/settings'); });
<?php defined('SYSPATH') or die('No direct script access.'); Observer::observe('modules::after_load', function () { Assets_Package::add('elfinder')->js('elfinder.lib', ADMIN_RESOURCES . 'libs/elfinder/js/elfinder.min.js', 'global')->js('elfinder.' . I18n::lang_short(), ADMIN_RESOURCES . 'libs/elfinder/js/i18n/elfinder.' . I18n::lang_short() . '.js', 'elfinder.lib')->css('elfinder.lib', ADMIN_RESOURCES . 'libs/elfinder/css/elfinder.min.css')->css('elfinder', ADMIN_RESOURCES . 'css/elfinder.css', 'elfinder.lib'); });
<?php defined('SYSPATH') or die('No direct script access.'); define('PLUGIN_SKELETON_PATH', PLUGPATH . 'skeleton' . DIRECTORY_SEPARATOR . 'public' . DIRECTORY_SEPARATOR); define('PLUGIN_SKELETON_URL', PLUGINS_URL . 'skeleton/public/'); // Этот файл подключается всегда после активации плагина и на странице списка плагинов // даже если плагин не активирован $plugin = Plugin::factory('skeleton', array('title' => 'Skeleton', 'version' => '1.0.0', 'description' => 'Заготовка для создания плагина. Не советуется активировать', 'author' => 'KodiCMS', 'required_cms_version' => '100.0.0'))->register(); // if($plugin->is_activated()) // { // ... // } Assets_Package::add('skeleton'); /** * Создание media пакета, для быстрого подключения через виджет * или через класс Meta * * Assets_Package::add('skeleton') * ->css(NULL, PLUGINS_URL . 'skeleton/media/css/skeleton.css') * ->js(NULL, PLUGINS_URL . 'skeleton/media/js/skeleton.js', 'jquery'); * * ИЛИ * Assets_Package::add('skeleton') * ->css(NULL, ADMIN_RESOURCES . 'css/skeleton.css') * ->js(NULL, ADMIN_RESOURCES . 'js/skeleton.js', 'jquery'); * * ИЛИ дополнить существующий * * Assets_Package::load('jquery') * ->js(....); *
<?php defined('SYSPATH') or die('No direct script access.'); Plugin::factory('redactor', array('title' => 'Redactor', 'description' => 'Create word-processed text on the web using a reliable, fast and unbelievably beautiful editor.', 'author' => 'ButscH'))->register(); Observer::observe('modules::after_load', function () { Assets_Package::add('redactor')->js('redactor.' . I18n::lang(), ADMIN_RESOURCES . 'vendors/redactor/' . I18n::lang() . '.js', 'jquery')->js('redactor.min', ADMIN_RESOURCES . 'vendors/redactor/redactor.min.js', 'jquery')->js('redactor', ADMIN_RESOURCES . 'js/redactor.js', 'global')->css('redator', ADMIN_RESOURCES . 'vendors/redactor/redactor.css'); });
<?php defined('SYSPATH') or die('No direct access allowed.'); Assets_Package::add('parts')->css(NULL, ADMIN_RESOURCES . 'css/parts.css'); Observer::observe('view_page_edit_plugins_top', function ($page) { if ($page->loaded()) { echo View::factory('part/items'); } }); Observer::observe('controller_before_page_edit', function () { Assets::package(array('jquery-ui', 'parts')); }); // Если страницы загружена, загружаем части страниц в качестве виджетов и помещаем // в блоки с названием частей страниц Observer::observe('frontpage_found', function ($page) { $layout = $page->get_layout_object(); $widgets = array(); foreach ($layout->blocks() as $block) { if (!Part::exists($page, $block)) { continue; } $widgets['part_' . $block] = new Model_Widget_Part($block, Part::get($page, $block)); } Context::instance()->register_widgets($widgets); }); // Загрузка JS кода на страницы редактирования Observer::observe(array('controller_before_page_edit', 'controller_before_page_add'), function () { Assets::js('controller.parts', ADMIN_RESOURCES . 'js/controller/parts.js', 'global'); }); // Сохранение контента частей страниц Observer::observe('page_edit_after_save', function ($page) {
<?php defined('SYSPATH') or die('No direct access allowed.'); Assets_Package::add('weather')->js(NULL, ADMIN_RESOURCES . 'libs/weather/weather.js'); Assets_Package::add('gridster')->js(NULL, ADMIN_RESOURCES . 'libs/gridster/jquery.gridster.js', 'jquery')->css(NULL, ADMIN_RESOURCES . 'libs/gridster/jquery.gridster.css'); Observer::observe('view_setting_plugins', function () { echo View::factory('dashboard/settings'); });