Как вытянуть отдельные значения из выпадающего списка со множественным выбором?

Все вопросы/проблемы по установке и использовании.
Ответить
Аватара пользователя
alcompstudio
Спонсор
Спонсор
Сообщения: 1519
Зарегистрирован: 03 янв 2016, 20:42
Имя: Александр
Откуда: Мир

Как вытянуть отдельные значения из выпадающего списка со множественным выбором?

Сообщение alcompstudio »

Добрый день!

Есть поле с типом Выпадающий список со множественным выбором. Изначально мне нужно экспортировать его в Эксель, но чтобы в экспорте вместо разделителя значений запятой - была вертикальная черта "|".
Я так полагаю, при экспорте не получится сделать автозамену в целевом поле (чтобы "," поменялась на "|"), для решения планирую использовать поле MySQL формула, в которое вытащить отдельные значения из множественного списка и поменять разделитель.
Подскажите, как можно вытянуть отдельные значения множественного списка в поле MySQL формула и заменить их разделитель? Т.е. чтобы было вместо "Значение1, Значение 2" - "Значение1|Значение 2" в поле MySQL формула. Какое выражение нужно построить?
Аватара пользователя
alcompstudio
Спонсор
Спонсор
Сообщения: 1519
Зарегистрирован: 03 янв 2016, 20:42
Имя: Александр
Откуда: Мир

Re: Как вытянуть отдельные значения из выпадающего списка со множественным выбором?

Сообщение alcompstudio »

замену значений в поле MySQL формула можно сделать через функцию REPLACE. Но, когда ставлю формулу REPLACE([982], ',','|') , где 982 - это ID поля со множественными значениями, то в результате выводится "1873|1888" - т.е. не названия/заголовки этих значений, а их ID. Как вытянуть именно названия значений?

Аналогично и для поля с типом сущность, но с выбором множества значений из сущности.
Аватара пользователя
alcompstudio
Спонсор
Спонсор
Сообщения: 1519
Зарегистрирован: 03 янв 2016, 20:42
Имя: Александр
Откуда: Мир

Re: Как вытянуть отдельные значения из выпадающего списка со множественным выбором?

Сообщение alcompstudio »

... и еще момент:

в самих значениях могут встречаться запятые, (например, Значение 1 = "текст, текст", Значение 2 = "текст, текст, текст") и нужно, естественно чтобы запятые "внутри" значений не заменялись на "|".
Аватара пользователя
support
Техническая поддержка
Сообщения: 7661
Зарегистрирован: 19 окт 2014, 18:22
Имя: Харчишин Сергей
Откуда: Крым, Евпатория

Re: Как вытянуть отдельные значения из выпадающего списка со множественным выбором?

Сообщение support »

Откройте файл includes\classes\model\fields_choices.php
И найдите строку

Код: Выделить всё

$values = explode(',',$values);
Замените ее на

Код: Выделить всё

$values = explode('|',$values);
Если используете глобальный список, то такое ще изменение сделайте в файле includes\classes\model\global_lists.php
Аватара пользователя
alcompstudio
Спонсор
Спонсор
Сообщения: 1519
Зарегистрирован: 03 янв 2016, 20:42
Имя: Александр
Откуда: Мир

Re: Как вытянуть отдельные значения из выпадающего списка со множественным выбором?

Сообщение alcompstudio »

А, это в коде нужно, а я думал можно в MySQL формуле как-то сделать, создать выражение, обойтись без "ломания" основного кода))

Спасибо, попробую!
Аватара пользователя
support
Техническая поддержка
Сообщения: 7661
Зарегистрирован: 19 окт 2014, 18:22
Имя: Харчишин Сергей
Откуда: Крым, Евпатория

Re: Как вытянуть отдельные значения из выпадающего списка со множественным выбором?

Сообщение support »

В будущем добавлю настройку, чтоб этот символ можно было настроить.
Аватара пользователя
alcompstudio
Спонсор
Спонсор
Сообщения: 1519
Зарегистрирован: 03 янв 2016, 20:42
Имя: Александр
Откуда: Мир

Re: Как вытянуть отдельные значения из выпадающего списка со множественным выбором?

Сообщение alcompstudio »

Указанный выше прием не работает...(( В поле со множественным выбором с типом Сущность ничего не поменялось, а в поле с глобальным списком теперь значения вовсе не отображаются ни в списке, ни на странице записи. Наверное как-то по другому нужно... Если будет время, глянете, как еще можно реализовать, ну или может через MySQL формулу можно как-то построить (костылем)?
support писал(а): 06 окт 2019, 22:05 В будущем добавлю настройку, чтоб этот символ можно было настроить.
Я тоже хотел предложить сделать что-то типа такого: http://prntscr.com/pfnt8q
Аватара пользователя
support
Техническая поддержка
Сообщения: 7661
Зарегистрирован: 19 окт 2014, 18:22
Имя: Харчишин Сергей
Откуда: Крым, Евпатория

Re: Как вытянуть отдельные значения из выпадающего списка со множественным выбором?

Сообщение support »

Попробуйте значение сохранить в статический текст по шаблону, а затем с помощью mysql формулы REPLACE преобразовать это значение.
Аватара пользователя
alcompstudio
Спонсор
Спонсор
Сообщения: 1519
Зарегистрирован: 03 янв 2016, 20:42
Имя: Александр
Откуда: Мир

Re: Как вытянуть отдельные значения из выпадающего списка со множественным выбором?

Сообщение alcompstudio »

Да, так получается, но это тогда не выходит:
alcompstudio писал(а): 06 окт 2019, 21:30 ... и еще момент:

в самих значениях могут встречаться запятые, (например, Значение 1 = "текст, текст", Значение 2 = "текст, текст, текст") и нужно, естественно чтобы запятые "внутри" значений не заменялись на "|".
меняются все запятые в полученном результате...
Ок, спасибо за подсказки, буду думать что-то еще.
Ответить