Skip to content

Instantly share code, notes, and snippets.

@ExileofAranei
Last active June 9, 2021 09:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ExileofAranei/d62292ddd3c4a5558fe2141de48a5ac3 to your computer and use it in GitHub Desktop.
Save ExileofAranei/d62292ddd3c4a5558fe2141de48a5ac3 to your computer and use it in GitHub Desktop.
<?php
switch ($modx->event->name) {
case 'OnDocFormPrerender':
if (!$modx->controller->resourceArray) {
return;
}
// Array of TV ids to replace
$tvIDs = [108];
$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;
$aceHeight = $modx->getOption('ace.height');
$script = '';
foreach($tvIDs as $tvId) {
$extQuery = '#tv' . $tvId;
// Set default Ace height
$script .= "var tmpQueryAceReplace = Ext.query('$extQuery'); if (tmpQueryAceReplace.length > 0) { tmpQueryAceReplace[0].style.height = '" . $aceHeight . 'px' . "'; }";
// Apply Ace to field
$script .= "MODx.ux.Ace.replaceTextAreas(Ext.query('$extQuery'), '$mimeType', $modxTags);";
}
$modx->controller->addHtml('<script>Ext.onReady(function() {' . $script . '});</script>');
break;
default:
return;
}
@ExileofAranei
Copy link
Author

ExileofAranei commented Jun 9, 2021

Инициализация текстового редактора для ТВ-полей при выключенной настройке "Использовать текстовый редактор"

<?php
switch ($modx->event->name) {
  case 'OnDocFormPrerender':
    if (!$modx->controller->resourceArray) { return; }
    
    if (!$modx->controller->resourceArray['richtext']) {
      $corePath = $modx->getOption('tinymcerte.core_path', null, $modx->getOption('core_path', null, MODX_CORE_PATH) . 'components/tinymcerte/');
      /** @var TinyMCERTE $tinymcerte */
      $tinymcerte = $modx->getService('tinymcerte', 'TinyMCERTE', $corePath . 'model/tinymcerte/', array('core_path' => $corePath));
      
      $className = 'TinyMCERTE' . 'OnRichTextEditorInit';
      $modx->loadClass('TinyMCERTEPlugin', $tinymcerte->getOption('modelPath') . 'tinymcerte/events/', true, true);
      $modx->loadClass($className, $tinymcerte->getOption('modelPath') . 'tinymcerte/events/', true, true);
      if (class_exists($className)) {
          /** @var TinyMCERTEPlugin $handler */
          $handler = new $className($modx, $scriptProperties);
          $handler->run();
      }
    }
    break;
  default:
    return;
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment