Можно ли изменить порядок размещения товара при импорте

Правила раздела: faq.php?mode=okay
Модератор: Модераторы

Aleks
Aleks
Репутация: 16
Сообщения: 139
Зарегистрирован: 24.05.2021
С нами: 11 месяцев 26 дней

Сообщение #1 Aleks » 06.05.2022, 10:18

При импорте товар размещается в таком порядке: каждый следующий товар добавляется сверху.
Пример: в файле импорта 1 товар, 2 товар, 3 товар, 4 товар, 5 товар.
На сайте они будут размещены в обратном порядке: 5 товар, 4 товар.... 1 товар.
файлы импорта в Backend: Design\html\import.tpl; Backend\Controllers\importAdmin.php.
Возможно ли изменить порядок размещения товара при импорте, чтобы каждый следующий товар размещался снизу, а не сверху.
Т.е. порядок размещения товара на сайта соответствовал бы порядку в файле импорта.
Буду благодарен за любую подсказку-наводку.

OkayCMS M
Администратор
Аватара
OkayCMS M
Администратор
Репутация: 210
Сообщения: 1595
Зарегистрирован: 12.11.2015
С нами: 6 лет 6 месяцев
Сайт Skype

Сообщение #2 OkayCMS » 07.05.2022, 04:36

Нет, так как логика импорта такая что он читает файл сверху вниз. Видит первую строку - создает товар. Переходит дальше. Видит вторую строку, создает товар. А так как второй товар создан позже, в админке он выше. Проще всего в экселе развернуть таблицу.

korshunov
korshunov
Репутация: 112
Сообщения: 1610
Зарегистрирован: 03.12.2015
С нами: 6 лет 5 месяцев
Skype

Сообщение #3 korshunov » 07.05.2022, 05:11

1. Можно.
1.1. Порядком управляет поле position в таблице товаров, его можно в процессе импорта по-своему менять. Несколько хлопотно.
1.2. В файле импорта изменить порядок строк на обратный. Можно средствами EXCEL, можно программно в скрипте импорта.
2. "чтобы каждый следующий товар размещался снизу". Надо учитывать, что при импорте товар может не только добавляться, но и обновляться. Во втором случае он УЖЕ имеет свою позицию. Надо понимать, что хотите в этом случае - сохранять позицию или менять.
3. "порядок размещения товара на сайта соответствовал бы порядку в файле импорта" - невозможно в принципе, или по крайней мере требует существенных уточнений. Потому что строка в файле импорта, вообще говоря, определяет не товар, а пару товар-вариант. И файл может иметь вид
Товар 1 Вариант 1, Товар 1 Вариант 2, Товар 2 Вариант 3, Товар 2 Вариант 4.
Может быть и хитрее
Товар 1 Вариант 1, Товар 2 Вариант 3, Товар 2 Вариант 4, Товар 1 Вариант 2.
И еще хитрее даже с повтором
Товар 1 Вариант 1, Товар 2 Вариант 3, Товар 2 Вариант 4, Товар 1 Вариант 2, Товар 1 Вариант 1.
4. Если в п.2 хотите позицию менять, то надо планировать точные правила.
5. Если в п.2 хотите позицию менять, то и пример надо приводить сложный, учитывающий п. 2,3.

Aleks
Aleks
Репутация: 16
Сообщения: 139
Зарегистрирован: 24.05.2021
С нами: 11 месяцев 26 дней

Сообщение #4 Aleks » 12.05.2022, 06:57

Спасибо, уважаемые гуру веб-программисты за ответы.
А можно ли действительно скрипт изменить таким образом, чтобы каждый следующий товар размещался снизу, а не сверху?
Господин OkayCMS сообщает, что это невозможно, господин korshunov утверждает, что можно.
И где истина?
Хотелось бы от господина korshunov получить веские доказательства, а не голословные утверждения.
Ну хотя бы тезисно, что и где в файле импорта изменить для достижения заявленной цели.

OkayCMS M
Администратор
Аватара
OkayCMS M
Администратор
Репутация: 210
Сообщения: 1595
Зарегистрирован: 12.11.2015
С нами: 6 лет 6 месяцев
Сайт Skype

Сообщение #5 OkayCMS » 12.05.2022, 14:41

Ок. Скажем так. По умолчанию такого сделать нельзя. При желании, это конечно можно доработать. Один из алгоритмов коршунов уже расписал. Да, так как он описал можно реализовать при желании. Было бы желание и знание PHP/деньги для оплаты работы программиста.

Aleks
Aleks
Репутация: 16
Сообщения: 139
Зарегистрирован: 24.05.2021
С нами: 11 месяцев 26 дней

Сообщение #6 Aleks » 12.05.2022, 16:47

Спасибо за ясность, уважаемый OkayCMS.
Никаких сложных алгоритмов описывать не нужно. Просто чтение файла импорта снизу вверх.

korshunov
korshunov
Репутация: 112
Сообщения: 1610
Зарегистрирован: 03.12.2015
С нами: 6 лет 5 месяцев
Skype

Сообщение #7 korshunov » 14.05.2022, 07:40

Файл читается в backend/ajax/import.php. Там довольно хорошие комментарии. Переделывайте по вкусу на здоровье!

Aleks
Aleks
Репутация: 16
Сообщения: 139
Зарегистрирован: 24.05.2021
С нами: 11 месяцев 26 дней

Сообщение #8 Aleks » 14.05.2022, 18:22

Спасибо, господин korshunov. К этому файлу я давно приглядывался.
Известно, что чтение файла с конца не приветствуется. Потому есть ли резон редактировать подобным образом файл? Не аукнется ли сие потом?
В связи с этим возникла мысль:
В оригинале каждый следующий товар в админке дописывается выше. Возможно есть элегантный способ изменить способ записи каждого следующего товара снизу?

korshunov
korshunov
Репутация: 112
Сообщения: 1610
Зарегистрирован: 03.12.2015
С нами: 6 лет 5 месяцев
Skype

Сообщение #9 korshunov » 15.05.2022, 04:31

Aleks писал(а):Спасибо, господин korshunov. К этому файлу я давно приглядывался.
Известно, что чтение файла с конца не приветствуется.

Не понятно, что значит "не приветствуется". Дайте ссылочку, где описывается точно, что и кем не приветствуется.

Aleks писал(а):Спасибо, господин korshunov. К этому файлу я давно приглядывался.
Потому есть ли резон редактировать подобным образом файл? Не аукнется ли сие потом?

Чтобы получить ответ, надо проводить объемные исследовательские эксперименты. Если Вы так озабочены, чтобы были гарантии на много лет вперед, пробуйте. М многое зависит от того, как именно файл будет изменен...

Aleks писал(а):В оригинале каждый следующий товар в админке дописывается выше. Возможно есть элегантный способ изменить способ записи каждого следующего товара снизу?

Если бы было легкое решение вставкой двух коротких волшебное строк, Вам его, скорее всего, уже дали бы.

Один способ уже Вам предлагался:

korshunov писал(а):1.1. Порядком управляет поле position в таблице товаров, его можно в процессе импорта по-своему менять.

Aleks
Aleks
Репутация: 16
Сообщения: 139
Зарегистрирован: 24.05.2021
С нами: 11 месяцев 26 дней

Сообщение #10 Aleks » Вчера, 12:23

Проверка добавления файла.


Название раздела: Вопросы по работе с OkayCMS
Правила раздела: faq.php?mode=okay

Быстрый ответ


Введите код в точности так, как вы его видите. Регистр символов не имеет значения.
Код подтверждения

   

Вернуться в «Вопросы по работе с OkayCMS»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 2 гостя