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