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')))); }
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)); }
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); }
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)); }
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; }
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)); }
<?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'); });
/** * * @return array */ public static function html_select() { $filters = array('' => __('none')); foreach (WYSIWYG::findAll() as $filter) { $filters[$filter] = Inflector::humanize($filter); } return $filters; }
<?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');
<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
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; } }
<?php defined('SYSPATH') or die('No direct script access.'); Observer::observe('modules::after_load', function () { WYSIWYG::add('redactor'); });
<% } %> <?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="">– <?php echo __('--- none ---'); ?> –</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 } ?>