fanera 27 Опубликовано: 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 6 163 Опубликовано: 16 февраля 2024 Рассказать Опубликовано: 16 февраля 2024 Просто как совет. В DLE есть система плагинов, и лучше это добавить в виде плагина для пользователей, чтобы можно было поставить в один клик, чем инструкция что на что заменить. Ведь создание плагина в админпанели панели, это ни что иное и такое же простое, как написание данной инструкции. Цитата Ссылка на сообщение Поделиться на других сайтах
fanera 27 Опубликовано: 16 февраля 2024 Рассказать Опубликовано: 16 февраля 2024 Автор 7 минут назад, celsoft сказал: Просто как совет. В DLE есть система плагинов, и лучше это добавить в виде плагина для пользователей, чтобы можно было поставить в один клик, чем инструкция что на что заменить. Ведь создание плагина в админпанели панели, это ни что иное и такое же простое, как написание данной инструкции. Это я понимаю, тут файлами просто нельзя загружать, а любое облако со временем в тыкву превращается, надо будет в гитхаб выгрузить 🙂 Цитата Ссылка на сообщение Поделиться на других сайтах
Captain 634 Опубликовано: 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> Цитата Ссылка на сообщение Поделиться на других сайтах
МВИА 10 Опубликовано: 16 февраля 2024 Рассказать Опубликовано: 16 февраля 2024 (изменено) При использовании плагина, хак не пробовал, исчезает возможность выбора размера картинки (превью, сред и оригинал). Нижняя строка всплывающего окна. Проверял в Опера и файрфоксе. Для всех загруженных к новости картинок, не только для свежей. Изменено 16 февраля 2024 пользователем МВИА Цитата Ссылка на сообщение Поделиться на других сайтах
fanera 27 Опубликовано: 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 Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.