Open Journal Systems  3.3.0
TinyMCEPlugin.inc.php
1 <?php
2 
16 import('lib.pkp.classes.plugins.GenericPlugin');
17 
22  function register($category, $path, $mainContextId = null) {
23  if (parent::register($category, $path, $mainContextId)) {
24  if ($this->getEnabled($mainContextId)) {
25  HookRegistry::register('TemplateManager::display',array(&$this, 'registerJS'));
26  HookRegistry::register('TemplateManager::registerJSLibraryData',array(&$this, 'registerJSData'));
27  }
28  return true;
29  }
30  return false;
31  }
32 
37  return $this->getPluginPath() . '/settings.xml';
38  }
39 
44  return $this->getPluginPath() . '/settings.xml';
45  }
46 
51  function getCanDisable() {
52  return false;
53  }
54 
63  function registerJS($hookName, $args) {
64  $request =& Registry::get('request');
65  $templateManager =& $args[0];
66 
67  // Load the TinyMCE JavaScript file
68  $min = Config::getVar('general', 'enable_minified') ? '.min' : '';
69  $templateManager->addJavaScript(
70  'tinymce',
71  $request->getBaseUrl() . '/lib/pkp/lib/vendor/tinymce/tinymce/tinymce' . $min . '.js',
72  array(
73  'contexts' => 'backend',
74  )
75  );
76 
77  // Load the script data used by the JS library
78  $data = [];
79  $localeKey = substr(AppLocale::getLocale(), 0, 2);
80  $localePath = $request->getBaseUrl() . '/plugins/generic/tinymce/langs/' . $localeKey . '.js';
81  if (file_exists($localePath)) {
82  $data['tinymceParams'] = [
83  'language' => $localeKey,
84  'language_url' => $localePath,
85  ];
86  }
87  $context = $request->getContext();
88  if ($context) {
89  $data['uploadUrl'] = $request->getDispatcher()->url($request, ROUTE_API, $context->getPath(), '_uploadPublicFile');
90  }
91  $templateManager->addJavaScript(
92  'tinymceData',
93  '$.pkp.plugins.generic = $.pkp.plugins.generic || {};' .
94  '$.pkp.plugins.generic.' . strtolower(get_class($this)) . ' = ' . json_encode($data) . ';',
95  [
96  'inline' => true,
97  'contexts' => 'backend',
98  ]
99  );
100 
101 
102  return false;
103  }
104 
108  function getDisplayName() {
109  return __('plugins.generic.tinymce.name');
110  }
111 
115  function getDescription() {
116  return __('plugins.generic.tinymce.description');
117  }
118 }
119 
TinyMCEPlugin\getContextSpecificPluginSettingsFile
getContextSpecificPluginSettingsFile()
Definition: TinyMCEPlugin.inc.php:36
TinyMCEPlugin\getInstallSitePluginSettingsFile
getInstallSitePluginSettingsFile()
Definition: TinyMCEPlugin.inc.php:43
Plugin\getEnabled
getEnabled()
Definition: Plugin.inc.php:868
Registry\get
static & get($key, $createIfEmpty=false, $createWithDefault=null)
Definition: Registry.inc.php:35
Config\getVar
static getVar($section, $key, $default=null)
Definition: Config.inc.php:35
TinyMCEPlugin\getCanDisable
getCanDisable()
Definition: TinyMCEPlugin.inc.php:51
TinyMCEPlugin
TinyMCE WYSIWYG plugin for textareas - to allow cross-browser HTML editing.
Definition: TinyMCEPlugin.inc.php:18
Plugin\getPluginPath
getPluginPath()
Definition: Plugin.inc.php:330
TinyMCEPlugin\registerJS
registerJS($hookName, $args)
Definition: TinyMCEPlugin.inc.php:63
Plugin\$request
$request
Definition: Plugin.inc.php:68
TinyMCEPlugin\getDescription
getDescription()
Definition: TinyMCEPlugin.inc.php:115
HookRegistry\register
static register($hookName, $callback, $hookSequence=HOOK_SEQUENCE_NORMAL)
Definition: HookRegistry.inc.php:70
AppLocale\getLocale
static getLocale()
Definition: env1/MockAppLocale.inc.php:40
TinyMCEPlugin\getDisplayName
getDisplayName()
Definition: TinyMCEPlugin.inc.php:108
GenericPlugin
Abstract class for generic plugins.
Definition: GenericPlugin.inc.php:18