Joostina CMS / CMF v2.* API
  • Docs
  • Package
  • Class
  • Tree
  • Todo
Overview

Packages

  • Components
    • Acls
      • Models
        • Admin
        • Site
    • BlogCategory
      • Models
        • Admin
        • Site
    • Blogs
      • Controllers
        • Admin
        • Site
      • Helpers
      • Models
        • Admin
        • Site
    • Coder
      • Controllers
        • Admin
      • Models
        • Admin
    • Comments
      • Controllers
        • Admin
        • Site
      • Helpers
      • Models
        • Admin
        • Site
    • CommentsCounter
      • Models
        • Admin
        • Site
    • Mainpage
      • Controllers
        • Site
    • News
      • Controllers
        • Admin
        • Site
      • Helpers
      • Models
        • Admin
        • Site
    • Pages
      • Controllers
        • Admin
        • Site
      • Models
        • Site
    • Search
      • Controllers
        • Site
    • Site
      • Controllers
        • Admin
        • Site
    • Sitemap
      • Controllers
        • Admin
        • Site
      • Models
        • Admin
        • Site
    • Test
      • Controllers
        • Site
    • Torrents
      • Controllers
        • Site
    • Users
      • Controllers
        • Admin
        • Site
      • Models
        • Admin
        • Site
  • Compression
  • Core
    • Libraries
      • Arhive
      • Array
      • Attached
      • Autoadmin
      • Autoloader
      • Benchmark
      • Breadcrumbs
      • Cache
      • Config
      • Cookie
      • Csrf
      • Database
        • Drivers
          • Interfaces
      • Datetime
      • Debug
      • Editor
      • Events
      • File
      • Filter
      • Flashmessage
      • Folder
      • Hit
      • Html
      • Image
      • Inflector
      • Inputfilter
      • Libraries
      • Mail
      • Module
      • Nestedset
      • Pager
      • Pages
      • Params
      • Randomizer
      • Request
      • RobotLoader
      • Route
      • Security
      • Session
      • Static
      • String
      • Text
      • Trash
      • Validate
  • Email
  • Extra
    • Libraries
      • Basket
  • Joostina
    • Controller
    • Core
    • Document
  • JSMin
  • Libraries
    • Extra
      • Basket
        • Models
          • Site
  • None
  • Plugins
    • Autoadmin
    • Editor
    • Sitemap
  • SimpleMail
  • Vendors
    • Libraries
      • Email

Classes

  • joosEditor
  1: <?php defined('_JOOS_CORE') or exit();
  2: 
  3: /**
  4:  * Работа с визуальными редакторами
  5:  *
  6:  * @version    1.0
  7:  * @package    Core\Libraries
  8:  * @subpackage Editor
  9:  * @category   Libraries
 10:  * @author     Joostina Team <info@joostina.ru>
 11:  * @copyright  (C) 2007-2012 Joostina Team
 12:  * @license    MIT License http://www.opensource.org/licenses/mit-license.php
 13:  * Информация об авторах и лицензиях стороннего кода в составе Joostina CMS: docs/copyrights
 14:  *
 15:  * */
 16: class joosEditor
 17: {
 18:     /**
 19:      * Название редактора
 20:      * Должно совпадать с каталогом plugins/editors/$editor/$editor.php
 21:      *
 22:      * @var string
 23:      */
 24:     private static $editor = 'none';
 25: 
 26:     /**
 27:      * Массив данных о проинициализированных редакторах
 28:      * Исключает повторную инициализацию скриптов и подключения файлов
 29:      *
 30:      * @var array
 31:      */
 32:     private static $init = array();
 33: 
 34:     /**
 35:      * Инициализация визуального редактора
 36:      * В классе могут быть объявлены подключения JS и CSS файлов, инициализация переменных
 37:      */
 38:     public static function init()
 39:     {
 40:     }
 41: 
 42:     /**
 43:      * Инициализация редактора
 44:      *
 45:      * @param string $field_name название поля с текстом, на котором должен быть инициализирован редактоор
 46:      * @param string $content    текст содержимого редактора
 47:      * @param array  $params     массив настроек редактора
 48:      *
 49:      * @return mixed возвращает код инициализации редактора, либо полный код инициализации и комплекта необходимого HTML кода
 50:      */
 51:     public static function display($field_name, $content, array $params = array())
 52:     {
 53:         $hiddenField = isset($params['hiddenField']) ? $params['hiddenField'] : $field_name;
 54:         $width = isset($params['width']) ? $params['width'] : '100%';
 55:         $height = isset($params['height']) ? $params['height'] : 300;
 56:         $col = isset($params['col']) ? $params['col'] : 10;
 57:         $row = isset($params['row']) ? $params['row'] : 5;
 58: 
 59:         // попытаемся переопределить редактор если это указано в параметрах
 60:         self::$editor = isset($params['editor']) ? $params['editor'] : self::$editor;
 61: 
 62:         // файл используемого визуального редактора
 63:         $editor_file = JPATH_BASE . DS . 'app' . DS . 'plugins' . DS . 'editors' . DS . self::$editor . DS . self::$editor . '.php';
 64: 
 65:         if (joosFile::exists($editor_file)) {
 66:             require_once $editor_file;
 67:         } else {
 68:             return sprintf('<!-- %s jooEditor::' . self::$editor . ' -->', 'Не найден редактор:');
 69:         }
 70: 
 71:         $editor_class = 'pluginEditor' . joosInflector::camelize(self::$editor);
 72: 
 73:         // инициализация редактора
 74:         (!isset(self::$init[self::$editor])) ? call_user_func_array("$editor_class::init", array($params)) : null;
 75: 
 76:         self::$init[self::$editor] = true;
 77: 
 78:         // непосредственно область редактора
 79:         return call_user_func_array("$editor_class::display", array($field_name, $content, $hiddenField, $width, $height, $col, $row, $params));
 80:     }
 81: 
 82:     /**
 83:      * Получение содержимого редактора
 84:      *
 85:      * @param string $field_name название поля редактора
 86:      * @param array  $params     массив дополнительных параметров получения содержимого
 87:      *
 88:      * @return mixed js код получения содержмиого, либо js код и комплект необходимого HTML кода
 89:      */
 90:     public static function get_content($field_name, array $params = array())
 91:     {
 92:         $editor_class = 'pluginEditor' . joosInflector::camelize(self::$editor);
 93: 
 94:         return call_user_func_array("$editor_class::get_content", array($field_name, $params));
 95:     }
 96: 
 97:     /**
 98:      * Установка полного содержимого редактора через JS.
 99:      * Необходимо для полнойенной работы Ajax функций
100:      *
101:      * @param string $field_name название поля на котором инициализирован редактор
102:      * @param string $content    текст, устанавливаемый в редактор
103:      *
104:      * @return mixed js код получения содержмиого, либо js код и комплект необходимого HTML кода
105:      */
106:     public static function set_content($field_name, $content)
107:     {
108:         $editor_class = 'pluginEditor' . joosInflector::camelize(self::$editor);
109: 
110:         return call_user_func_array("$editor_class::set_content", array($field_name, $content));
111:     }
112: 
113:     /**
114:      * Установка содержимого редактора в определённое место (выделеноое или под курсором)
115:      *
116:      * @param string $field_name название поля на котором инициализирован редактор
117:      * @param string $content    текст, устанавливаемый в редактор
118:      *
119:      * @return mixed js код получения содержмиого, либо js код и комплект необходимого HTML кода
120:      */
121:     public static function insert_content($field_name, $content)
122:     {
123:         $editor_class = 'pluginEditor' . joosInflector::camelize(self::$editor);
124: 
125:         return call_user_func_array("$editor_class::set_content", array($field_name, $content));
126:     }
127: 
128: }
129: 
Joostina CMS / CMF v2.* API API documentation generated by ApiGen 2.6.1 – Template adapted by @olvlv and Joostina Team