bendasvadim

Ace для introtext и description

Создаём плагин и вешаем его на событие OnDocFormPrerender:

switch ($modx->event->name) {
    case 'OnDocFormPrerender':
        if (!$modx->controller->resourceArray) {
            return;
        }
        // Указываем поля, для которых будет подключаться Ace
        $fields = array('modx-resource-introtext','modx-resource-description');
        $mimeType = $modx->getObject('modContentType', $modx->controller->resourceArray['content_type'])->get('mime_type');
        if ($mimeType == 'text/html' && $modx->getOption('pdotools_fenom_parser')) {
            $mimeType = 'text/x-smarty';
        }
        $modxTags = 1;
        $script = '';
        foreach($fields as $field) {
          $script .= "MODx.ux.Ace.replaceComponent('$field', '$mimeType', $modxTags);";
        }
        $script .= "MODx.ux.Ace.replaceTextAreas(Ext.query('.modx-richtext'));";
        // Увеличиваем поле introtext
        $script .= "Ext.getCmp('modx-resource-introtext').setHeight(150);";
        $modx->controller->addHtml('<script>Ext.onReady(function() {' . $script . '});</script>');
        break;
    default:
        return;
}

В списке событий найти событие OnDocFormRender и поставить на против него галочку. После сохранения плагина поле introtext будет представлено в виде редактора TinyMCE
18 сентября 2020, 08:51    bendasvadim MODX Revolution 0    631 0

Комментарии ()