string wanted editor
* @param context string page context (post,page,comment,event,...)
* @param tags array array of elt ids (textarea) where inject editor
* @param syntax string wanted syntax (xhtml)
*/
public static function adminPostEditor($editor = '', $context = '', array $tags = [], $syntax = 'xhtml')
{
if (empty($editor) || $editor != 'dcCKEditor' || $syntax != 'xhtml') {return;}
$config_js = self::$config_url;
if (!empty($context)) {
$config_js .= '&context=' . $context;
}
$res =
dcPage::jsJson('ck_editor_ctx', [
'ckeditor_context' => $context,
'ckeditor_tags_context' => [$context => $tags],
'admin_base_url' => DC_ADMIN_URL,
'base_url' => $GLOBALS['core']->blog->host,
'dcckeditor_plugin_url' => DC_ADMIN_URL . self::$p_url,
'user_language' => $GLOBALS['core']->auth->getInfo('user_lang')
]) .
dcPage::jsJson('ck_editor_var', [
'CKEDITOR_BASEPATH' => DC_ADMIN_URL . self::$p_url . '/js/ckeditor/'
]) .
dcPage::jsJson('ck_editor_msg', [
'img_select_title' => __('Media chooser'),
'img_select_accesskey' => __('m'),
'post_link_title' => __('Link to an entry'),
'link_title' => __('Link'),
'link_accesskey' => __('l'),
'img_title' => __('External image'),
'url_cannot_be_empty' => __('URL field cannot be empty.')
]) .
dcPage::jsLoad(self::$p_url . '/js/_post_editor.js') .
dcPage::jsLoad(self::$p_url . '/js/ckeditor/ckeditor.js') .
dcPage::jsLoad(self::$p_url . '/js/ckeditor/adapters/jquery.js') .
dcPage::jsLoad($config_js);
return $res;
}
public static function adminPopupMedia($editor = '')
{
if (empty($editor) || $editor != 'dcCKEditor') {return;}
return dcPage::jsLoad(self::$p_url . '/js/popup_media.js');
}
public static function adminPopupLink($editor = '')
{
if (empty($editor) || $editor != 'dcCKEditor') {return;}
return dcPage::jsLoad(self::$p_url . '/js/popup_link.js');
}
public static function adminPopupPosts($editor = '')
{
if (empty($editor) || $editor != 'dcCKEditor') {return;}
return dcPage::jsLoad(self::$p_url . '/js/popup_posts.js');
}
public static function adminMediaURLParams($p)
{
if (!empty($_GET['editor'])) {
$p['editor'] = html::sanitizeURL($_GET['editor']);
}
}
public static function getTagsContext()
{
return self::$tagsContext;
}
public static function adminPageHTTPHeaderCSP($csp)
{
// add 'unsafe-inline' for CSS, add 'unsafe-eval' for scripts as far as CKEditor 4.x is used
$csp['style-src'] .= " 'unsafe-inline'";
$csp['script-src'] .= " 'unsafe-inline' 'unsafe-eval'";
}
}