Сортировка файлов менеджере изображений.

Тема в разделе "Общие вопросы", создана пользователем MaxcMods, 16 сен 2016.

  1. MaxcMods

    MaxcMods Пользователь

    Сообщения:
    61
    Симпатии:
    2
    Добры день,можно ли как-то изменить сортировку в менеджере изображений,чтоб не изменялся порядок отображения и был как в Windows 1-2-3-4-5-6-7-8-9-10-11, а не 1-10-100-11-12-2 и т.п.
     
  2. Vlad

    Vlad Эксперт

    Сообщения:
    4.129
    Симпатии:
    999
    вот задачка емае... в общем вот так получилось. Тестируем

    в файле admin\controller\common\filemanager.php

    находим
    Код:
    $images = array_splice($images, ($page - 1) * 16, 16);
    и после него вставим
    PHP:
            $diras array_intersect($directories$images); 
            
    $fils = array('jpg','jpeg','png','gif','JPG','JPEG','PNG','GIF');
            foreach (
    $images as $image) {
                
    $ext substr(basename ($image),  -3);
                if (
    in_array($ext$fils)) {
                    
    $imname substr(basename ($image), 0, -4);
                    
    $imagess[$imname] = $image;
                }
            }     
            
    ksort($imagess);
            
    $images array_merge($diras$imagess);
    Если русская сборка 2.2 и выше, не забываем обновлять кеш модификатора.
     
    Последнее редактирование модератором: 22 мар 2017
    Romans и Ecsiron нравится это.
  3. MaxcMods

    MaxcMods Пользователь

    Сообщения:
    61
    Симпатии:
    2
    На opencart 2.0.3.1 ничего не изменяется.
     
  4. Vlad

    Vlad Эксперт

    Сообщения:
    4.129
    Симпатии:
    999
    тогда не знаю. У меня все поменялось. Создал файлы с названием 1 2 10 и посмотрел как сортирует. Без внесения изменений было 1 10 2, после изменений 1 2 10
     
  5. MaxcMods

    MaxcMods Пользователь

    Сообщения:
    61
    Симпатии:
    2
    А настройки на хостинге могут как-то влиять?Или htaccess ?
     
  6. Vlad

    Vlad Эксперт

    Сообщения:
    4.129
    Симпатии:
    999
    не должно.
     
  7. Ecsiron

    Ecsiron Продвинутый пользователь

    Сообщения:
    415
    Симпатии:
    53
    OCmod будем делать?)
     
  8. Vlad

    Vlad Эксперт

    Сообщения:
    4.129
    Симпатии:
    999
    да рано еще... чего на каждый чих пых делать окмоды.. Потестировать нужно... итд..
     
    Ecsiron нравится это.
  9. Romans

    Romans Administrator Команда форума

    Сообщения:
    1.438
    Симпатии:
    780
    Сортировка по дате. Последние добавленные изображения в начало списка

    в файле \admin\controller\common\filemanager.php

    находим
    PHP:
    $images array_merge($directories$files);
    и после вставим
    PHP:
    usort($imagescreate_function('$a, $b','return filemtime($b) - filemtime($a);'));
     
    Pasha5858, oligarhist и Bkmz нравится это.
  10. Chukcha

    Chukcha Специалист

    Сообщения:
    3.013
    Симпатии:
    685
    хм
    sort($image, SORT_NUMERIC);

    Это
     
    Vlad нравится это.
  11. Vlad

    Vlad Эксперт

    Сообщения:
    4.129
    Симпатии:
    999
    да, вот так для сортировки по нумерации.
    PHP:
    sort($imagesSORT_NUMERIC);
    $images array_reverse($images);
    Но фиг знает зачем я делал так как написал ранее. Наверно чтобы сортировка была только по изображениям, а не по директориям тоже. И при той сортировки в начале идут изображения с цифрами, а все остальное в конец.
    В общем алгоритмы разные и результаты тоже. Хорошо когда есть выбор )
     
  12. DM8985

    DM8985 Новичок

    Сообщения:
    1
    Симпатии:
    0
    На PHP 7.2 функция create_function не работает, есть альтернатива для сортировки по дате?
     
  13. Chukcha

    Chukcha Специалист

    Сообщения:
    3.013
    Симпатии:
    685
    Pasha5858 и DM8985 нравится это.
  14. Pasha5858

    Pasha5858 Новичок

    Сообщения:
    2
    Симпатии:
    0
    Работает на OpenCart 3.0, просто нужно обновить Модификаторы (Модули/расширения - Модификаторы - левый верхний угол бирюзовая иконка с круговыми стрелочками - нажать Обновить)

    Данный код работает на OpenCart 3.0 (путь к файлу \admin\controller\common\filemanager.php)

    Сама строчка в файле filemanager.php

    // Merge directories and files
    $images = array_merge($directories, $files);
    usort($images, function ($a, $b){return filemtime($b) - filemtime($a);});
     
    Последнее редактирование: 30 апр 2019
  15. Мегафара

    Мегафара Новичок

    Сообщения:
    3
    Симпатии:
    0
    Можете полный текст выложить для сортировки изображения при загрузке ? а то какая то каша в голове.
    Сейчас загружаются вроде ровно, НО , одна-две картинки все равно не по порядку. Но уже лучше чем было!
    Для загрузки изображений использую модуль Alternative Photo Uploader, это как то влияет ?
    версия OC 2.3
     
  16. Pasha5858

    Pasha5858 Новичок

    Сообщения:
    2
    Симпатии:
    0
    Добрый день.

    Полный текст чего? Я и так подробно описал постом выше, алгоритм действий и фрагмент кода.

    Я загружаю картинки через штатный загрузчик.
     
  17. Мегафара

    Мегафара Новичок

    Сообщения:
    3
    Симпатии:
    0
    filemtime - этот параметр что означает ?
    Мне нужна сортировка именно по названию файлов, чтобы было 1,2,3 и т.д. У меня пакетная загрузка, это очень удобно, чем тыкать по одному файлу,
     
  18. Мегафара

    Мегафара Новичок

    Сообщения:
    3
    Симпатии:
    0
    вообщем все работает, только файлы нужно нумеровать не 1, 2, 3 .... а 01, 02, 03 ......