RTE для introtext: помогите пожалуйста с подсказкой

Существует плагин для того чтоб в поле introtext тоже был RTE:
<?php
// check "OnDocFormRender" event
$modx->regClientStartupHTMLBlock('<script>Ext.onReady(function() {
if(MODx.loadRTE) MODx.loadRTE("modx-resource-introtext");
});</script>');
однако на практике не очень удобно, когда оно вообще везде.
Пожалуйста подскажите как этот код модифицировать, чтоб можно было вписать список id шаблонов, где он должен появляться, либо может список шаблонов-исключений, в которых он не нужен?
Вариант с id ресурсов тоже был бы хорош!
Заранее благодарю.
Серый
24 декабря 2024, 20:14
modx.pro
1
262
0

Комментарии: 9

Riwka
25 декабря 2024, 14:29
1
+1
$array = array(ids); 
if(in_array($modx->resource->get('id'), $array)) {
	$modx->regClientStartupHTMLBlock('<script>Ext.onReady(function() {
if(MODx.loadRTE) MODx.loadRTE("modx-resource-introtext");
});</script>');
}

Вместо id можно поставить template и будут вам шаблоны
    Серый
    27 декабря 2024, 12:39
    0
    Спасибо за ответ!
    Видимо что-то делаю не так, потому что вот так — не работает ни с id, ни с template, просто совсем не загружается ресурс, HTTP ERROR 500((
    $array = array(1); 
    if(in_array($modx->resource->get('template'), $array)) {
    	$modx->regClientStartupHTMLBlock('<script>Ext.onReady(function() {
    if(MODx.loadRTE) MODx.loadRTE("modx-resource-introtext");
    });</script>');
    };
    Может быть я как-то не так номера id вписываю?
      Серый
      27 декабря 2024, 13:02
      0
      Еще версия, что для бэкенда нужно что-то другое, ибо оставляю в плагине только это:
      $array = array(); 
      if (in_array($modx->resource->get('id'), $array)) {}
      и всё, страницы не открываются
        Александр
        27 декабря 2024, 13:11
        0
        https://modx.pro/howto/24982 тут похожую задачку решали не так давно
          Серый
          27 декабря 2024, 13:20
          0
          Не раскурю, скила не хватит((
          Володя
          27 декабря 2024, 14:39
          0
          $modx->controller->resource
          или
          $scriptProperties['resource']
            Серый
            27 декабря 2024, 15:56
            0
            Ух, класс! Вот так работает:
            $array = array(111, 112); 
            if(in_array($modx->controller->resource->get('id'), $array)) {
            	$modx->regClientStartupHTMLBlock('<script>Ext.onReady(function() {
            if(MODx.loadRTE) MODx.loadRTE("modx-resource-introtext");
            });</script>');
            };
            Но как для шаблонов?
            Если делаю:
            if(in_array($modx->controller->template->get('id'), $array))
            то снова, привет HTTP ERROR 500
      Серый
      09 января 2025, 13:53
      0
      Хотелось бы «заклинание» и для шаблонов, а не только для конкретных ресурсов + комбинированно и номера шаблонов, и ресурсов — такой код можно будет считать законченным.
      Поторопился я, видимо со своим «ух, класс...»
      Подскажите пожалуйста, заранее благодарю!
        Николай Савин
        09 января 2025, 17:21
        +1
        Вот так привязать к шаблонам.

        $templates = array(1, 2); 
        if(in_array($modx->controller->resource->get('template'), $templates)) {
        	$modx->regClientStartupHTMLBlock('<script>Ext.onReady(function() {
        if(MODx.loadRTE) MODx.loadRTE("modx-resource-introtext");
        });</script>');
        };
        Вот так выводить для указанных шаблонов, и плюс отдельно для указанных ID.

        $templates = array(1, 2); 
        $ids = [112, 113];
        if(
        
        in_array($modx->controller->resource->get('template'), $templates) 
        ||  in_array($modx->controller->resource->get('id'), $ids) 
        ) {
        	$modx->regClientStartupHTMLBlock('<script>Ext.onReady(function() {
        if(MODx.loadRTE) MODx.loadRTE("modx-resource-introtext");
        });</script>');
        };
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        9