Skip to content

Commit

Permalink
Visual editor bugfixes
Browse files Browse the repository at this point in the history
  • Loading branch information
niksamokhvalov committed Dec 14, 2015
1 parent 072122c commit 8fc8912
Showing 1 changed file with 37 additions and 36 deletions.
73 changes: 37 additions & 36 deletions lib/widget/VisualEditorWidget.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@
namespace DigitalWand\AdminHelper\Widget;

/**
* Визуальный редактор
* Визуальный редактор.
*
* В отличии от виджета TextAreaWidget, кроме поля указанного в интерфейсе раздела (AdminInterface::fields()),
* обязательно поле {НАЗВАНИЕ ПОЛЯ}_TEXT_TYPE, в котором будет хранится тип контента (text/html)
* обязательно поле {НАЗВАНИЕ ПОЛЯ}_TEXT_TYPE, в котором будет хранится тип контента (text/html).
*/
class VisualEditorWidget extends TextAreaWidget
{
Expand Down Expand Up @@ -36,7 +36,7 @@ class VisualEditorWidget extends TextAreaWidget
*/
protected function getEditHtml()
{
if (\CModule::IncludeModule("fileman")) {
if (\CModule::IncludeModule('fileman')) {
ob_start();
$codeType = $this->getContentTypeCode();
/** @var string $className Имя класса без неймспейса */
Expand Down Expand Up @@ -83,11 +83,11 @@ protected function getEditHtml()
);

if ($this->getSettings('LIGHT_EDITOR_MODE') == 'Y') {
/**
* Облегченная версия редактора
*/
// Облегченная версия редактора
global $APPLICATION;

$editorToolbarConfig = $this->getSettings('EDITOR_TOOLBAR_CONFIG');

if (!is_array($editorToolbarConfig)) {
$editorToolbarSet = $this->getSettings('EDITOR_TOOLBAR_CONFIG_SET');
if (isset($editorToolbarSets[$editorToolbarSet])) {
Expand All @@ -96,32 +96,31 @@ protected function getEditHtml()
$editorToolbarConfig = $editorToolbarSets['FULL'];
}
}
$APPLICATION->IncludeComponent("bitrix:fileman.light_editor", "", array(
"CONTENT" => $this->data[$this->code],
"INPUT_NAME" => $bxCode,
"INPUT_ID" => $bxCode,
"WIDTH" => $this->getSettings('WIDTH'),
"HEIGHT" => $this->getSettings('HEIGHT'),
"RESIZABLE" => "N",
"AUTO_RESIZE" => "N",
"VIDEO_ALLOW_VIDEO" => "Y",
"VIDEO_MAX_WIDTH" => $this->getSettings('WIDTH'),
"VIDEO_MAX_HEIGHT" => $this->getSettings('HEIGHT'),
"VIDEO_BUFFER" => "20",
"VIDEO_LOGO" => "",
"VIDEO_WMODE" => "transparent",
"VIDEO_WINDOWLESS" => "Y",
"VIDEO_SKIN" => "/bitrix/components/bitrix/player/mediaplayer/skins/bitrix.swf",
"USE_FILE_DIALOGS" => "Y",
"ID" => 'LIGHT_EDITOR_' . $bxCode,
"JS_OBJ_NAME" => $bxCode,

$APPLICATION->IncludeComponent('bitrix:fileman.light_editor', '', array(
'CONTENT' => $this->data[$this->code],
'INPUT_NAME' => $bxCode,
'INPUT_ID' => $bxCode,
'WIDTH' => $this->getSettings('WIDTH'),
'HEIGHT' => $this->getSettings('HEIGHT'),
'RESIZABLE' => 'N',
'AUTO_RESIZE' => 'N',
'VIDEO_ALLOW_VIDEO' => 'Y',
'VIDEO_MAX_WIDTH' => $this->getSettings('WIDTH'),
'VIDEO_MAX_HEIGHT' => $this->getSettings('HEIGHT'),
'VIDEO_BUFFER' => '20',
'VIDEO_LOGO' => '',
'VIDEO_WMODE' => 'transparent',
'VIDEO_WINDOWLESS' => 'Y',
'VIDEO_SKIN' => '/bitrix/components/bitrix/player/mediaplayer/skins/bitrix.swf',
'USE_FILE_DIALOGS' => 'Y',
'ID' => 'LIGHT_EDITOR_' . $bxCode,
'JS_OBJ_NAME' => $bxCode,
'TOOLBAR_CONFIG' => $editorToolbarConfig
)
);
} else {
/**
* Полная версия редактора
*/
// Полная версия редактора
\CFileMan::AddHTMLEditorFrame(
$bxCode,
$this->data[$this->code],
Expand All @@ -132,13 +131,11 @@ protected function getEditHtml()
'height' => $this->getSettings('HEIGHT'),
)
);
// TRICKY Не ясно где хранится название редактора и где название типа контента, поэтому и ключ, и значение
// обернуты в константу CONTENT_TYPE_...
// Следовательно если значение констант будет изменено, могут быть проблемы с выбором редактора в админ интерфейсе

$defaultEditors = array(
static::CONTENT_TYPE_TEXT => static::CONTENT_TYPE_TEXT,
static::CONTENT_TYPE_HTML => static::CONTENT_TYPE_HTML,
"editor" => "editor"
'editor' => 'editor'
);
$editors = $this->getSettings('EDITORS');
$defaultEditor = strtolower($this->getSettings('DEFAULT_EDITOR'));
Expand Down Expand Up @@ -182,7 +179,7 @@ protected function getEditHtml()
*/
public function showBasicEditField($isPKField)
{
if (!\CModule::IncludeModule("fileman")) {
if (!\CModule::IncludeModule('fileman')) {
parent::showBasicEditField($isPKField);
} else {
$title = $this->getSettings('TITLE');
Expand Down Expand Up @@ -217,13 +214,16 @@ public function processEditAction()
$codeType = $this->getContentTypeCode();
$bxCode = $this->getCode() . '_' . $className;
$bxCodeType = $codeType . '_' . $className;

if ($this->forceMultiple AND $id) {
$bxCode .= '_' . $id;
$bxCodeType .= '_' . $id;
}

if (!$_REQUEST[$bxCode] && $this->getSettings('REQUIRED') == true) {
$this->addError('REQUIRED_FIELD_ERROR');
}

$this->data[$this->code] = $_REQUEST[$bxCode];
$this->data[$codeType] = $_REQUEST[$bxCodeType];
break;
Expand Down Expand Up @@ -263,8 +263,8 @@ public function generateRow(&$row, $data)
}

/**
* Тип текста (text/html)
* По умолчанию html
* Тип текста (text/html). По умолчанию html.
*
* @return string
*/
public function getContentType()
Expand All @@ -275,7 +275,8 @@ public function getContentType()
}

/**
* Поле, в котором хранится тип текста
* Поле, в котором хранится тип текста.
*
* @return string
*/
public function getContentTypeCode()
Expand Down

0 comments on commit 8fc8912

Please sign in to comment.