Отображение картинок по порядку

Тема в разделе "OpenCart", создана пользователем karina, 3 апр 2016.

  1. karina

    karina

    Регистрация:
    7 апр 2013
    Сообщения:
    65
    Симпатии:
    3
    Здравствуйте!
    Начала наполнять сайт и столкнулась с такой проблемой.
    Создала отдельную папочку для фотографий товара. Пронумеровала их все от 1 до 30.
    А при добавлении, когда выбираешь "менеджер изображений" картинки все в хаотичном порядке (1, 10, 23, 14 .. и тд), очень не удобно искать каждую по отдельности.
    Помогите пожалуйста решить эту проблему
     
  2. Dimakusch

    Dimakusch

    Регистрация:
    4 дек 2015
    Сообщения:
    124
    Симпатии:
    1
    находим admin/controller/common/filemanager.php, в нем ищем
    Код:
    foreach($files as $file){
    
    и до него ставим
    Код:
    usort($files, create_function('$a,$b','return filemtime($b) - filemtime($a);'));
     
  3. karina

    karina

    Регистрация:
    7 апр 2013
    Сообщения:
    65
    Симпатии:
    3
    Не помогло ((( картинки так же в хаотичном порядке ((

    у меня ocStore 1.5.4.1
     
  4. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    2.050
    Симпатии:
    778
    Dimakusch, а зачем там filemtime, если задача состоит в сортировке по имени файла?

    Там достаточно просто так:
    PHP:
    sort($files)
     
  5. karina

    karina

    Регистрация:
    7 апр 2013
    Сообщения:
    65
    Симпатии:
    3
    не получается. так же выводит хаотично (
    sort($files);
    foreach ($files as $file) {
     
  6. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    2.050
    Симпатии:
    778
    Добавьте после sort($files); это:
    PHP:
    $this->log->write($files);
    И посмотрите журнал ошибок, чтоб убедиться для начала, что здесь всё отсортировалось как надо. Если здесь всё в порядке, тогда нужно смотреть на фронтенде.
     
  7. Dimakusch

    Dimakusch

    Регистрация:
    4 дек 2015
    Сообщения:
    124
    Симпатии:
    1
    Ой, немного не так понял суть..

    Так картинки, вроде, и так по порядку сортируются 1.5.5х.?! Хотя сам изменил по дате добавления, так удобнее чтоб не искать по имени (где-то в средине менеджера).
     
  8. karina

    karina

    Регистрация:
    7 апр 2013
    Сообщения:
    65
    Симпатии:
    3
    Если я правильно поняла. Нужно было в файлик
    admin/controller/common/filemanager.php, до этой строки вставить
    foreach($files as $file){

    вот этот код:


    sort($files)
    $this->log->write($files);

    В журнале ошибок вот такое:
    2016-04-04 16:32:11 - Array
    2016-04-04 16:32:13 - Array
     
  9. chukcha

    chukcha

    Регистрация:
    9 окт 2014
    Сообщения:
    283
    Симпатии:
    85
    $this->log->write(print_r($files,true));
     
  10. karina

    karina

    Регистрация:
    7 апр 2013
    Сообщения:
    65
    Симпатии:
    3
    Не помогло, теперь вот такая вот ошибочка в журнале ошибок:

    [0] => /home/site.ru/image/data/option/1.jpg
    [1] => /home/site.ru/image/data/option/10.jpg
    [2] => /home/site.ru/image/data/option/11.jpg

    ....
    [17] => /home/site.ru/image/data/option/4.jpg
    [18] => /home/site.ru/image/data/option/5.jpg
    [19] => /home/site.ru/image/data/option/6.jpg
    [20] => /home/site.ru/image/data/option/7.jpg
    [21] => /home/site.ru/image/data/option/8.jpg
    [22] => /home/site.ru/image/data/option/9.jpg
     
  11. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    2.050
    Симпатии:
    778
    Помогло. Я именно это и хотел увидеть.
    Ну, как не сложно заметить, здесь сортировка работает (после 1 идёт 10 потому, что сортируются строки, а не числа).

    В админке вы видите фотографии не в таком порядке как здесь?
     
  12. karina

    karina

    Регистрация:
    7 апр 2013
    Сообщения:
    65
    Симпатии:
    3
    нет, в админке идет так 1, 10, 11, 21 и тд , потом в конце 1.2.3 ((

    Из лога видно, что 1.jpg, потом 10.jpg, потом 11.jpg (
     
  13. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    2.050
    Симпатии:
    778
    Ну, то есть, всё выводится именно в таком порядке. как и здесь. Значит сортировка работает, просто в данном случае нужен более сложный вариант.
    Замените sort на natsort.
     
  14. karina

    karina

    Регистрация:
    7 апр 2013
    Сообщения:
    65
    Симпатии:
    3
    Теперь то, что нужно!
    Спасибо Вам больше за помощь.

    У меня в журнале ошибок вот такая вот "ошибка"
    2016-04-05 19:57:50 - Array
    (
    [0] => /home/site.ru/image/data/option/1.jpg
    [11] => /home/site.ru/image/data/option/2.jpg
    .......

    Пусть так и будет?

    После того, как я добавлю все товары, и удалю те строчки, которые Вы мне сказали прописать, ничего с сайтом не случиться?
     
  15. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    2.050
    Симпатии:
    778
    Это не ошибка, а информация.
    Просто уберите строку, которую добавили:
    PHP:
    $this->log->write(print_r($files,true));
    Ничего. Но зачем удалять строку с natsort?
     
  16. karina

    karina

    Регистрация:
    7 апр 2013
    Сообщения:
    65
    Симпатии:
    3
    меня это не тревожит, просто поинтересовалась.

    И еще хотела спросить. При добавлении картинок, к товару, картинки располагаются не по порядку, я прописываю сортировку 1,2,3,4,5,6 ... тд, сохраняю, заново открываю товар и во вкладке "изображения" изображения располагаются хаотично
    http://i80.fastpic.ru/big/2016/0409/bc/765ada93c3dd3c3abb05d9df5ed30abc.png

    Поможете мне с этим?
     
  17. chukcha

    chukcha

    Регистрация:
    9 окт 2014
    Сообщения:
    283
    Симпатии:
    85
    ну так это же элементарно!!!
    PHP:
        public function getProductImages($product_id) {
            
    $query $this->db->query("SELECT * FROM " DB_PREFIX "product_image WHERE product_id = '" . (int)$product_id "' ORDER BY sort_order");
          
            return 
    $query->rows;
        }
     
    Lasted edited by : 9 апр 2016
  18. karina

    karina

    Регистрация:
    7 апр 2013
    Сообщения:
    65
    Симпатии:
    3
    Этот код туда же вставлять?
     
  19. chukcha

    chukcha

    Регистрация:
    9 окт 2014
    Сообщения:
    283
    Симпатии:
    85
    Этот код заменить в model/catalog/product