Esempio n. 1
0
 public function action_settings()
 {
     $this->set_title(__('Settings'));
     Assets::package('ace');
     $site_pages = array();
     foreach (Model_Navigation::get()->sections() as $section) {
         foreach ($section->get_pages() as $item) {
             $url = trim(str_replace(ADMIN_DIR_NAME, '', $item->url()), '/');
             $site_pages[$section->name()][$url] = $item->name();
         }
     }
     $this->template->content = View::factory('system/settings', array('filters' => Arr::merge(array('--none--'), WYSIWYG::findAll()), 'dates' => Date::formats(), 'site_pages' => $site_pages, 'default_status_id' => array(Model_Page::STATUS_DRAFT => __('Draft'), Model_Page::STATUS_PUBLISHED => __('Published'))));
 }
Esempio n. 2
0
 public function action_edit()
 {
     $id = $this->request->param('id');
     $template = ORM::factory('email_template', $id);
     if (!$template->loaded()) {
         Messages::errors(__('Email template not found!'));
         $this->go(Route::get('email_controllers')->uri(array('controller' => 'templates')));
     }
     // check if trying to save
     if (Request::current()->method() == Request::POST) {
         return $this->_edit($template);
     }
     WYSIWYG::load_filters();
     $this->set_title(__('Edit email template'));
     $this->template_js_params['EMAIL_TEMPLATE_ID'] = $template->id;
     $this->template->content = View::factory('email/templates/edit', array('action' => 'edit', 'template' => $template));
 }
Esempio n. 3
0
 public function action_view()
 {
     Assets::package('backbone');
     $id = (int) $this->request->query('id');
     $doc = $this->_get_document($id);
     WYSIWYG::load_filters();
     $this->_load_session_data($doc);
     $doc->onControllerLoad();
     $this->breadcrumbs->add($this->section()->name, Route::get('datasources')->uri(array('directory' => 'datasources', 'controller' => 'data')) . URL::query(array('ds_id' => $this->section()->id()), FALSE));
     $this->template_js_params['API_FORM_ACTION'] = '/datasource-document.' . ($doc->loaded() ? 'update' : 'create');
     $this->template_js_params['SECTION_ID'] = (int) $this->section()->id();
     $this->template_js_params['DOCUMENT_ID'] = $id;
     if (!$doc->loaded()) {
         $this->set_title(__('New document'));
     } else {
         $this->set_title($doc->header);
     }
     $this->_load_template($doc);
 }
Esempio n. 4
0
 public function action_edit()
 {
     $snippet_name = $this->request->param('id');
     $snippet = new Model_File_Snippet($snippet_name);
     if (!$snippet->is_exists()) {
         if (($found_file = $snippet->find_file()) !== FALSE) {
             $snippet = new Model_File_Snippet($found_file);
         } else {
             Messages::errors(__('Snippet not found!'));
             $this->go();
         }
     }
     $this->template->title = __('Edit snippet');
     $this->breadcrumbs->add($snippet_name);
     // check if trying to save
     if (Request::current()->method() == Request::POST and ACL::check('snippet.edit')) {
         return $this->_edit($snippet_name);
     }
     Assets::package('ace');
     $this->template->content = View::factory('snippet/edit', array('action' => 'edit', 'filters' => WYSIWYG::findAll(), 'snippet' => $snippet));
 }
Esempio n. 5
0
 public function before_save()
 {
     if ($this->filter_id === NULL) {
         $this->filter_id = Config::get('site', 'default_filter_id');
     }
     if ($this->is_protected === NULL) {
         $this->is_protected = self::PART_NOT_PROTECTED;
     }
     if ($this->name === NULL) {
         $this->name = 'part';
     }
     $filter = FALSE;
     if ($this->filter_id !== NULL) {
         $filter = WYSIWYG::get($this->filter_id);
     }
     if ($filter === FALSE or !$filter instanceof Filter_Decorator) {
         $filter = new Filter_Default();
     }
     $this->content_html = $filter->apply($this->content);
     Observer::notify('part_before_save', $this);
     return TRUE;
 }
Esempio n. 6
0
 public function action_edit()
 {
     WYSIWYG::load_filters();
     Assets::package('backbone');
     $page_id = (int) $this->request->param('id');
     $page = ORM::factory('page', $page_id);
     if (!$page->loaded()) {
         Messages::errors(__('Page not found!'));
         $this->go();
     }
     // Проверка пользователя на доступ к редактированию текущей страницы
     if (!Auth::has_permissions($page->get_permissions())) {
         Messages::errors(__('You do not have permission to access the requested page!'));
         $this->go();
     }
     // check if trying to save
     if ($this->request->method() == Request::POST) {
         return $this->_edit($page);
     }
     $this->set_page_js_params($page);
     $this->set_title($page->title);
     $this->template->content = View::factory('page/edit', array('action' => 'edit', 'page' => $page, 'permissions' => ORM::factory('role')->find_all()->as_array('id', 'name'), 'page_permissions' => $page->get_permissions()));
 }
 /**
  * @param string $attribute
  * @param mixed $value
  */
 protected function setValue($attribute, $value)
 {
     if ($this->isFilterHtml()) {
         // TODO: add filter html tags
     }
     parent::setValue($attribute, WYSIWYGHelper::applyFilter($this->getEditor(), $value));
 }
Esempio n. 8
0
<?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');
});
Esempio n. 9
0
 /**
  * 
  * @return array
  */
 public static function html_select()
 {
     $filters = array('' => __('none'));
     foreach (WYSIWYG::findAll() as $filter) {
         $filters[$filter] = Inflector::humanize($filter);
     }
     return $filters;
 }
Esempio n. 10
0
<?php

$locale = Lang::getLocale();
PackageManager::add('libraries')->js(null, resources_url('/js/libraries.js'))->js("moment-{$locale}", resources_url("/libs/moment/js/{$locale}.js"), 'libraries');
PackageManager::add('core')->css('global', resources_url('/css/app.css'))->js(null, resources_url('/js/backend.js'), 'libraries');
PackageManager::add('jquery')->js(null, resources_url('/libs/jquery/js/jquery.min.js'));
PackageManager::add('bootstrap')->css(null, resources_url('/libs/bootstrap/css/bootstrap.min.css'))->js(null, resources_url('/libs/bootstrap/js/bootstrap.min.js'), 'jquery');
PackageManager::add('bootstrap-theme')->css(null, resources_url('/libs/bootstrap/css/bootstrap-theme.min.css'), 'bootstrap');
PackageManager::add('underscore')->js(null, resources_url('/libs/underscore/js/underscore-min.js'), 'jquery');
PackageManager::add('backbone')->js(null, resources_url('/libs/backbone/js/backbone-min.js'), 'underscore');
PackageManager::add('jquery-ui')->js(null, resources_url('/libs/jquery-ui/js/jquery-ui.min.js'), 'jquery')->css(null, resources_url('/css/jquery-ui.css'));
PackageManager::add('fontawesome')->css(null, resources_url('/libs/font-awesome/css/font-awesome.min.css'));
PackageManager::add('jquery-tagsinput')->js(null, resources_url('/libs/jquery.tagsinput/js/jquery.tagsinput.js'), ['jquery', 'jquery-ui'])->css(null, resources_url('/libs/jquery.tagsinput//css/jquery.tagsinput.css'));
PackageManager::add('dropzone')->js(null, resources_url('/libs/dropzone/js/dropzone.min.js'), ['jquery', 'libraries'])->css('dropzone-basic', resources_url('/libs/dropzone/css/basic.min.css'))->css(null, resources_url('/libs/dropzone/css/dropzone.min.css'));
PackageManager::add('datepicker')->js(null, resources_url('/libs/datetimepicker/js/jquery.datetimepicker.min.js'), ['jquery', 'libraries'])->css(null, resources_url('/libs/datetimepicker/css/jquery.datetimepicker.css'));
PackageManager::add('bootstrap-multiselect')->js(null, resources_url('/libs/bootstrap-multiselect/js/bootstrap-multiselect.js'), ['jquery', 'libraries'])->css(null, resources_url('/libs/bootstrap-multiselect/css/bootstrap-multiselect.css'));
PackageManager::add('editable')->js(null, resources_url('/libs/x-editable/js/bootstrap-editable.min.js'), ['jquery', 'bootstrap'])->css(null, resources_url('/libs/x-editable/css/bootstrap-editable.css'));
PackageManager::add('nestable')->js(null, resources_url('/libs/nestable/js/jquery.nestable.js'), ['jquery', 'libraries']);
PackageManager::add('steps')->js(null, resources_url('/libs/jquery.steps/js/jquery.steps.min.js'), ['jquery', 'libraries']);
PackageManager::add('noty')->js(null, resources_url('/libs/noty/js/jquery.noty.packaged.min.js'), ['jquery', 'libraries']);
PackageManager::add('select2')->js(null, resources_url('/libs/select2/js/select2.min.js'), ['jquery', 'libraries'])->js("select2-{$locale}", resources_url("/libs/select2/js/i18n/{$locale}.js"), 'select2')->css(null, resources_url('/libs/select2/css/select2.min.css'));
PackageManager::add('sortable')->js(null, resources_url('/libs/Sortable/js/Sortable.min.js'), ['jquery', 'libraries'])->js('sortable-binding', resources_url('/libs/Sortable/js/jquery.binding.js'), ['jquery', 'libraries']);
PackageManager::add('validate')->js(null, resources_url('/libs/jquery-validation/js/jquery.validate.min.js'), ['jquery', 'libraries'])->js("validate-{$locale}", resources_url("/libs/jquery-validation/js/messages_{$locale}.js"), 'validate');
PackageManager::add('moment')->js(null, resources_url('/libs/moment/js/moment.min.js'), ['jquery', 'libraries'])->js("moment-{$locale}", resources_url("/libs/moment/js/{$locale}.js"), 'moment');
PackageManager::add('ckeditor')->js('ckeditor-library', resources_url('/libs/ckeditor/ckeditor.js'), ['jquery', 'libraries'])->js(null, resources_url('/js/wysiwyg/ckeditor.js'), 'ckeditor-library')->js("ckeditor-{$locale}", resources_url("/libs/ckeditor/lang/{$locale}.js"), 'ckeditor-library');
PackageManager::add('ace')->js('ace-library', resources_url('/libs/ace/src-min/ace.js'), ['jquery', 'libraries'])->js(null, resources_url('/js/wysiwyg/ace.js'), 'ace-library');
PackageManager::add('diff')->js(null, resources_url('/libs/jsdiff/js/diff.js'));
PackageManager::add('datatables')->js(null, resources_url('/libs/datatables/js/jquery.dataTables.min.js'), ['jquery', 'libraries'])->js('datatables.bootstrap', resources_url('/libs/datatables/js/datatables.bootstrap.js'), 'datatables')->css(null, resources_url('/libs/datatables/css/datatables.bootstrap.css'));
WYSIWYG::add('ace', 'Ace', null, null, WYSIWYG::code());
WYSIWYG::add('ckeditor', 'CKEditor');
Esempio n. 11
0
<div class="form-group">
	<label class="control-label col-md-3"><?php 
echo __('Default filter');
?>
</label>
	<div class="col-md-4">
		<?php 
echo Form::select('filter', WYSIWYG::html_select(), $field->filter);
?>
	</div>
</div>

<div class="form-group">
	<div class="col-md-offset-3 col-md-9">
		<div class="checkbox">
			<label>
				<?php 
echo Form::checkbox('remove_empty_tags', 1, $field->remove_empty_tags == 1, array('id' => 'remove_empty_tags'));
?>
 <?php 
echo __('Remove empty tags');
?>
			</label>
		</div>
		
		<div class="checkbox">
			<label>
				<?php 
echo Form::checkbox('filter_html', 1, $field->filter_html == 1, array('id' => 'html_filter_html'));
?>
 <?php 
Esempio n. 12
0
 public function init_media()
 {
     $this->template_js_params = array('CURRENT_URL' => Request::current()->url(TRUE) . URL::query(), 'BASE_URL' => URL::backend(ADMIN_DIR_NAME, TRUE), 'SITE_URL' => URL::base(TRUE), 'ADMIN_DIR_NAME' => ADMIN_DIR_NAME, 'ADMIN_RESOURCES' => ADMIN_RESOURCES, 'PUBLIC_URL' => PUBLIC_URL, 'LOCALE' => I18n::lang(), 'CONTROLLER' => strtolower(Request::current()->controller()), 'ACTION' => Request::current()->action(), 'USER_ID' => Auth::get_id(), 'FILTERS' => WYSIWYG::findAll(), 'DATE_FORMAT' => Config::get('site', 'date_format'), 'IS_BACKEND' => IS_BACKEND);
     foreach (Messages::get() as $type => $messages) {
         $this->template_js_params['MESSAGE_' . strtoupper($type)] = $messages;
     }
 }
Esempio n. 13
0
<?php

defined('SYSPATH') or die('No direct script access.');
Observer::observe('modules::after_load', function () {
    WYSIWYG::add('redactor');
});
Esempio n. 14
0
						<% } %>
						<?php 
    echo UI::button(__('Remove part :part_name', array(':part_name' => '<%= name %>')), array('class' => 'item-remove btn-xs btn-danger', 'icon' => UI::icon('trash-o')));
    ?>
					</div>
				</div>
				<?php 
} else {
    ?>
				<select class="item-filter" name="part_filter">
					<option value="">&ndash; <?php 
    echo __('--- none ---');
    ?>
 &ndash;</option>
					<?php 
    foreach (WYSIWYG::findAll() as $filter) {
        ?>
 
						<option value="<?php 
        echo $filter;
        ?>
" <% if (filter_id == "<?php 
        echo $filter;
        ?>
") { print('selected="selected"')} %> ><?php 
        echo Inflector::humanize($filter);
        ?>
</option>
					<?php 
    }
    ?>