예제 #1
0
 public function put_widget()
 {
     $widget_type = $this->param('widget_type', NULL, TRUE);
     $widget = Dashboard::add_widget($widget_type);
     if (!empty($widget->media_packages)) {
         $this->json['media'] = Assets_Package::get_scripts($widget->media_packages);
     }
     $this->json['size'] = $widget->size();
     $this->json['id'] = $widget->id;
     $this->response((string) $widget->run());
 }
예제 #2
0
 /**
  * 
  * @param string|array $name
  * @return array
  */
 public static function get_scripts($names)
 {
     if (!is_array($names)) {
         $names = array($names);
     }
     $scripts = array();
     foreach ($names as $name) {
         $package = Assets_Package::load($name);
         if ($package === NULL) {
             continue;
         }
         foreach ($package as $item) {
             switch ($item['type']) {
                 case 'js':
                     $scripts[] = $item['src'];
                     break;
             }
         }
     }
     return $scripts;
 }
예제 #3
0
파일: core.php 프로젝트: ZerGabriel/cms-1
 /**
  * 
  * @param string|array $names
  * @param boolean $footer
  * @return boolean
  */
 public static function package($names, $footer = FALSE)
 {
     if (!is_array($names)) {
         $names = array($names);
     }
     foreach ($names as $name) {
         $package = Assets_Package::load($name);
         if ($package === NULL) {
             continue;
         }
         foreach ($package as $item) {
             switch ($item['type']) {
                 case 'css':
                     Assets::$css[$item['handle']] = $item;
                     break;
                 case 'js':
                     $item['footer'] = (bool) $footer;
                     Assets::$js[$item['handle']] = $item;
                     break;
             }
         }
     }
     return TRUE;
 }
예제 #4
0
파일: init.php 프로젝트: ZerGabriel/cms-1
<?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');
});
예제 #5
0
파일: fields.php 프로젝트: ZerGabriel/cms-1
<?php

echo Assets_Package::load('editable');
?>
<script type="text/javascript">
$(function() {
	var $fields = $('#section-fields input'),
		$checked_fields = $fields.filter(':checked');
	
	$fields.change(function(){
		if($fields.filter(':checked').size() == 0) {
			$('#remove-fields').attr('disabled', 'disabled');
		} else {
			$('#remove-fields').removeAttr('disabled');
		}
		
		$checked_fields = $fields.filter(':checked');
	}).change();
	
	$('#remove-fields').on('click', function() {
		if($checked_fields.length < 1) return false;
		
		if( ! confirm(__('Are you sure?')))
			return;
		
		Api.delete('/datasource/hybrid-field', $checked_fields.serialize(), function(response) {
			for(i in response.response) {
				$('#field-' + response.response[i]).remove();
			}
		});
		
예제 #6
0
<?php

echo Assets_Package::load('colorpicker');
?>
<script type="text/javascript">
$(function() {
	$('.colorSelector').ColorPicker({
		onChange: function (hsb, hex, rgb) {
			$('.colorPreview').css('background-color', '#' + hex);
			$('input[name="default"]').val('#' + hex);
		}
	});
});
</script>
<div class="form-group form-inline">
	<label class="control-label col-md-3" for="primitive_default"><?php 
echo __('Default value');
?>
</label>
	<div class="col-md-9">
		<div class="input-group">
			<?php 
echo Form::input('default', $field->default, array('class' => 'form-control colorSelector', 'id' => 'primitive_default', 'size' => 7, 'maxlength' => 7, 'autocomplete' => 'off'));
?>
			<div class="input-group-addon colorSelector colorPreview" style="background-color: <?php 
echo $field->default;
?>
;">&nbsp;</div>
		</div>
	</div>
</div>
예제 #7
0
파일: init.php 프로젝트: ZerGabriel/cms-1
<?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');
예제 #8
0
파일: edit.php 프로젝트: ZerGabriel/cms-1
    ?>
</h4>
	</div>
	<div class="panel-body panel-spoiler media-spoiler">		
		<?php 
    echo View::factory('helper/rows_only_value', array('field' => 'media', 'data' => $widget->media));
    ?>
		<hr />
		<div class="form-group">
			<div class="col-xs-12">
				<label class="control-label"><?php 
    echo __('Media packages');
    ?>
</label>
				<?php 
    echo Form::select('media_packages[]', Assets_Package::select_choises(), (array) $widget->media_packages, array('class' => 'form-control'));
    ?>
			</div>
		</div>
	</div>
	<?php 
}
?>
	
	<div class="panel-heading">
		<span class="panel-title" data-icon="cogs"><?php 
echo __('Widget parameters');
?>
</span>
	</div>
	<?php 
예제 #9
0
파일: init.php 프로젝트: ZerGabriel/cms-1
<?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');
});
예제 #10
0
파일: init.php 프로젝트: ZerGabriel/cms-1
<?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(....);
 * 
예제 #11
0
파일: init.php 프로젝트: ZerGabriel/cms-1
<?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');
});
예제 #12
0
파일: init.php 프로젝트: ZerGabriel/cms-1
<?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) {
예제 #13
0
파일: init.php 프로젝트: ZerGabriel/cms-1
<?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');
});