Ссылка на редактирование TV поля в админке MODX

Создадим плагин который добавит JS код к странице в админке

<?php
if ($modx->event->name == 'OnDocFormPrerender') {
    $modx->regClientStartupHTMLBlock('
    <script>
        Ext.onReady(function() {
            // Пройдём по всем элементам с классом "modx-tv-caption"
            Ext.select(".modx-tv-caption").each(function(element) {
                var tvCaptionId = element.id; // id caption, например "tv202-caption"
                var tvId = tvCaptionId.replace("-caption", ""); // id TV, например "tv202"

                // Создаём иконку редактирования
                var editIcon = document.createElement("i");
                editIcon.className = "icon icon-edit";
                editIcon.style.cursor = "pointer";
                editIcon.style.marginLeft = "10px";
                editIcon.title = "Edit TV";

                // URL для редактирования TV
                var editUrl = "' . $modx->getOption('manager_url') . '?a=element/tv/update&id=" + tvId.replace("tv", "");
                
                // Добавляем обработчик клика
                editIcon.onclick = function() {
                    window.open(editUrl, "_blank");
                };

                // Добавляем иконку после названия TV-поля
                element.dom.appendChild(editIcon);

                // Добавляем Tooltip с названием TV
                new Ext.ToolTip({
                    target: tvCaptionId,
                    html: element.dom.innerText
                });
            });
        });
    </script>
    ');
}

Результат работы плагина

Мы используем Cookie

для корректной работы сайта

X