mirror of
https://github.com/e107inc/e107.git
synced 2025-01-17 20:58:30 +01:00
Fixes #4747 - wysiwyg editor value retention.
This commit is contained in:
parent
248a98fffc
commit
45372f285c
@ -4505,6 +4505,8 @@ class e107
|
|||||||
static $availEditors;
|
static $availEditors;
|
||||||
$fallbackEditor = 'bbcode';
|
$fallbackEditor = 'bbcode';
|
||||||
|
|
||||||
|
global $_E107;
|
||||||
|
|
||||||
if (self::getPref('wysiwyg',false) != true)
|
if (self::getPref('wysiwyg',false) != true)
|
||||||
{
|
{
|
||||||
// wysiwyg disabled by global pref
|
// wysiwyg disabled by global pref
|
||||||
@ -4512,12 +4514,11 @@ class e107
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if(!isset($availEditors))
|
if(!isset($availEditors) || !empty($_E107['phpunit']))
|
||||||
{
|
{
|
||||||
// init list of installed wysiwyg editors
|
// init list of installed wysiwyg editors
|
||||||
$default = self::isInstalled('tinymce4') ? array('tinymce4'=>'TinyMce4') : array(); // if missing pref fallback.
|
$default = self::isInstalled('tinymce4') ? array('tinymce4'=>'TinyMce4') : array(); // if missing pref fallback.
|
||||||
$availEditors = self::getPref('wysiwyg_list', $default);
|
$availEditors = self::getPref('wysiwyg_list', $default);
|
||||||
|
|
||||||
// $availEditors = array_keys(e107::getPlug()->getInstalledWysiwygEditors()); // very slow.
|
// $availEditors = array_keys(e107::getPlug()->getInstalledWysiwygEditors()); // very slow.
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4531,7 +4532,7 @@ class e107
|
|||||||
// check if choosen editor is installed,
|
// check if choosen editor is installed,
|
||||||
// if not, but a different editor is available use that one (e.g. tinymce4 choosen, but only simplemde available available, use simplemde)
|
// if not, but a different editor is available use that one (e.g. tinymce4 choosen, but only simplemde available available, use simplemde)
|
||||||
// if no wysiwyg editor available, use fallback editor (bbcode)
|
// if no wysiwyg editor available, use fallback editor (bbcode)
|
||||||
if(is_bool($editor) || ($editor !== $fallbackEditor && !in_array($editor, $availEditors)))
|
if(is_bool($editor) || ($editor !== $fallbackEditor && empty($availEditors[$editor])))
|
||||||
{
|
{
|
||||||
$names = array_keys($availEditors);
|
$names = array_keys($availEditors);
|
||||||
// $editor = count($availEditors) > 0 ? $availEditors[0] : $fallbackEditor;
|
// $editor = count($availEditors) > 0 ? $availEditors[0] : $fallbackEditor;
|
||||||
@ -4539,6 +4540,7 @@ class e107
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// $returnEditor => false:
|
// $returnEditor => false:
|
||||||
// false => fallback editor (bbcode)
|
// false => fallback editor (bbcode)
|
||||||
// true => default wysiwyg editor
|
// true => default wysiwyg editor
|
||||||
|
@ -239,18 +239,9 @@ class e_jsmanager
|
|||||||
}
|
}
|
||||||
else // Front-End.
|
else // Front-End.
|
||||||
{
|
{
|
||||||
if(defset('e_DEBUG_JQUERY') === 2)
|
$jqueryLib = (defset('e_DEBUG_JQUERY') === 2) ? 'jquery' : 'jquery3';
|
||||||
{
|
e107::library('load',$jqueryLib);
|
||||||
e107::library('load', 'jquery');
|
e107::library('load', 'jquery.once'); // jQuery Once is used in e107.behaviors.
|
||||||
// jQuery Once is used in e107.behaviors.
|
|
||||||
e107::library('load', 'jquery.once');
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
e107::library('load', 'jquery3');
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO
|
// TODO
|
||||||
|
@ -1808,15 +1808,28 @@ class e107Test extends \Codeception\Test\Unit
|
|||||||
|
|
||||||
public function testWysiwyg()
|
public function testWysiwyg()
|
||||||
{
|
{
|
||||||
|
// Simulate editors being installed.
|
||||||
|
$editors = array (
|
||||||
|
'tinymce4' => 'TinyMce4',
|
||||||
|
'simplemde' => 'SimpleMDE',
|
||||||
|
);
|
||||||
|
|
||||||
e107::getConfig()->setPref('wysiwyg', true)->save();
|
e107::getConfig()
|
||||||
$tinyMceInstalled = e107::isInstalled('tinymce4');
|
->setPref('wysiwyg', true)
|
||||||
|
->setPref('wysiwyg_list', $editors)
|
||||||
|
->save();
|
||||||
|
|
||||||
|
global $_E107;
|
||||||
|
$_E107['phpunit'] = true; // make sure pref is re-loaded.
|
||||||
|
// $tinyMceInstalled = e107::isInstalled('tinymce4');
|
||||||
|
|
||||||
$tests = array(
|
$tests = array(
|
||||||
//input => expected
|
//input => expected
|
||||||
'default' => ($tinyMceInstalled) ? 'tinymce4' : 'bbcode',
|
'default' => 'tinymce4',
|
||||||
'bbcode' => 'bbcode',
|
'bbcode' => 'bbcode',
|
||||||
'tinymce4' => ($tinyMceInstalled) ? 'tinymce4' : 'bbcode',
|
'tinymce4' => 'tinymce4',
|
||||||
|
'simplemde' => 'simplemde',
|
||||||
|
'nonexist' => 'tinymce4',
|
||||||
);
|
);
|
||||||
|
|
||||||
foreach($tests as $input => $expected)
|
foreach($tests as $input => $expected)
|
||||||
@ -1835,6 +1848,7 @@ class e107Test extends \Codeception\Test\Unit
|
|||||||
$this->assertSame($expected, $result);
|
$this->assertSame($expected, $result);
|
||||||
|
|
||||||
|
|
||||||
|
e107::getConfig()->setPref('wysiwyg', false)->save(); // wysiwyg is disabled.
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user