fanera 29 Опубликовано: 16 февраля 2024 Рассказать Опубликовано: 16 февраля 2024 Вставка картинок и файлов в редактор происходит просто подряд, без учета того, как были выделены элементы, т.е. в какой последовательности. Этот лайфхак позволяет сделать вставку содержимого в порядке их выделения. Файл: engine/ajax/upload.php Найти и добавить ниже: Найти: $('.file-can-all-selected .file-preview-card').addClass("active"); Добавить ниже: order_num = 0; $('.file-can-all-selected .file-preview-card').each(function(){ $(this).attr("order-num", order_num); order_num = order_num + 1; }); Найти и добавить ниже: Найти: ("#check_all").prop('checked', false); Добавить ниже: $('.file-can-all-selected .file-preview-card').removeAttr('order-num'); Найти и добавить ниже: Найти: $(this).parent().toggleClass("active"); Добавить ниже: if ($(this).parent().hasClass("active")) { $(this).parent().attr("order-num", order_num); order_num = order_num + 1; } else { $(this).parent().removeAttr("order-num"); order_num = order_num - 1; } Найти и добавить выше: Найти: function initmediauploadpopup() { Добавить выше: var order_num = 0; Найти и добавить ниже: Найти: var have_images = false; Добавить ниже: var sortedList = $('.file-preview-card.active', $self).sort(function(lhs, rhs){ return parseInt($(lhs).attr("order-num"),10) - parseInt($(rhs).attr("order-num"),10); }); Найти и заменить: Найти: $('.file-preview-card.active').each(function() { Заменить на: sortedList.each(function() { Ссылка на сообщение Поделиться на других сайтах
celsoft 6216 Опубликовано: 16 февраля 2024 Рассказать Опубликовано: 16 февраля 2024 Просто как совет. В DLE есть система плагинов, и лучше это добавить в виде плагина для пользователей, чтобы можно было поставить в один клик, чем инструкция что на что заменить. Ведь создание плагина в админпанели панели, это ни что иное и такое же простое, как написание данной инструкции. Ссылка на сообщение Поделиться на других сайтах
fanera 29 Опубликовано: 16 февраля 2024 Рассказать Опубликовано: 16 февраля 2024 Автор 7 минут назад, celsoft сказал: Просто как совет. В DLE есть система плагинов, и лучше это добавить в виде плагина для пользователей, чтобы можно было поставить в один клик, чем инструкция что на что заменить. Ведь создание плагина в админпанели панели, это ни что иное и такое же простое, как написание данной инструкции. Это я понимаю, тут файлами просто нельзя загружать, а любое облако со временем в тыкву превращается, надо будет в гитхаб выгрузить ? Ссылка на сообщение Поделиться на других сайтах
Captain 636 Опубликовано: 16 февраля 2024 Рассказать Опубликовано: 16 февраля 2024 <?xml version="1.0" encoding="utf-8"?> <dleplugin> <name>Upload files</name> <description>Вставка загруженных файлов и изображений в редактор в порядке последовательности их выделения.</description> <icon></icon> <version></version> <dleversion></dleversion> <versioncompare>==</versioncompare> <upgradeurl></upgradeurl> <filedelete>0</filedelete> <needplugin></needplugin> <mnotice>0</mnotice> <mysqlinstall><![CDATA[]]></mysqlinstall> <mysqlupgrade><![CDATA[]]></mysqlupgrade> <mysqlenable><![CDATA[]]></mysqlenable> <mysqldisable><![CDATA[]]></mysqldisable> <mysqldelete><![CDATA[]]></mysqldelete> <phpinstall><![CDATA[]]></phpinstall> <phpupgrade><![CDATA[]]></phpupgrade> <phpenable><![CDATA[]]></phpenable> <phpdisable><![CDATA[]]></phpdisable> <phpdelete><![CDATA[]]></phpdelete> <notice><![CDATA[]]></notice> <file name="engine/ajax/upload.php"> <operation action="after"> <searchcode><![CDATA[ $('.file-can-all-selected .file-preview-card').addClass("active");]]></searchcode> <replacecode><![CDATA[order_num = 0; $('.file-can-all-selected .file-preview-card').each(function(){ $(this).attr("order-num", order_num); order_num = order_num + 1; });]]></replacecode> <enabled>1</enabled> </operation> <operation action="after"> <searchcode><![CDATA[ $("#check_all").prop('checked', false);]]></searchcode> <replacecode><![CDATA[$('.file-can-all-selected .file-preview-card').removeAttr('order-num');]]></replacecode> <enabled>1</enabled> </operation> <operation action="after"> <searchcode><![CDATA[ $(this).parent().toggleClass("active");]]></searchcode> <replacecode><![CDATA[if ($(this).parent().hasClass("active")) { $(this).parent().attr("order-num", order_num); order_num = order_num + 1; } else { $(this).parent().removeAttr("order-num"); order_num = order_num - 1; }]]></replacecode> <enabled>1</enabled> </operation> <operation action="before"> <searchcode><![CDATA[function initmediauploadpopup() {]]></searchcode> <replacecode><![CDATA[var order_num = 0;]]></replacecode> <enabled>1</enabled> </operation> <operation action="after"> <searchcode><![CDATA[ var have_images = false;]]></searchcode> <replacecode><![CDATA[var sortedList = $('.file-preview-card.active', $self).sort(function(lhs, rhs){ return parseInt($(lhs).attr("order-num"),10) - parseInt($(rhs).attr("order-num"),10); });]]></replacecode> <enabled>1</enabled> </operation> <operation action="replace"> <searchcode><![CDATA[ $('.file-preview-card.active').each(function() {]]></searchcode> <replacecode><![CDATA[sortedList.each(function() {]]></replacecode> <enabled>1</enabled> </operation> </file> </dleplugin> Ссылка на сообщение Поделиться на других сайтах
МВИА 11 Опубликовано: 16 февраля 2024 Рассказать Опубликовано: 16 февраля 2024 (изменено) При использовании плагина, хак не пробовал, исчезает возможность выбора размера картинки (превью, сред и оригинал). Нижняя строка всплывающего окна. Проверял в Опера и файрфоксе. Для всех загруженных к новости картинок, не только для свежей. Изменено 16 февраля 2024 пользователем МВИА Ссылка на сообщение Поделиться на других сайтах
fanera 29 Опубликовано: 17 февраля 2024 Рассказать Опубликовано: 17 февраля 2024 (изменено) Автор 8 часов назад, МВИА сказал: При использовании плагина, хак не пробовал, исчезает возможность выбора размера картинки (превью, сред и оригинал). Нижняя строка всплывающего окна. Проверял в Опера и файрфоксе. Замените $('.file-preview-card.active').each(function() { На: if( $('.file-preview-card.active').length ) { $('.file-preview-card.active').each(function() { И саму замену sortedList.each(function() { На: if( $('.file-preview-card.active').length ) { sortedList.each(function() { Странно, что оно срабатывает несколько раз, включая панель, т.к. при поиске строки находит только одну такую строку Изменено 17 февраля 2024 пользователем fanera Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВойти
Уже зарегистрированы? Войдите здесь.
Войти сейчас