Динамическое добавление терминов таксономии

Аватар пользователя alexmihel alexmihel 7 апреля 2014 в 0:56

Доброго времени суток!

Вот какая проблема у меня:

При регистрации нового пользователя на сайте необходимо указать организацию. Поле "организация" сделано ссылкой на соответствующий словарь таксономии и отображается в виде поля с автозавершением ввода. Сделано это для того, чтобы словарь постоянно пополнялся новыми организациями и если регистрируются несколько человек из одной организации, то всем последующим достаточно ввести первые буквы и выбрать в открывшемся списке свою организацию.
И вот с вводом новой организации выявились такие сюрпризы: если вводить данные в формате, например, ООО "Рога и копыта", то все, что идет после ООО теряется, создается новый термин "ООО". Гугл решению проблемы не помог.

Как это можно победить?

0 Thanks

Комментарии

Аватар пользователя sas@drupal.org sas@drupal.org 7 апреля 2014 в 8:37

Всё намного прозаичней, кавычки используются для для ввода нескольких значений, достаточно поставить в настройках поля - количество значений - 1.

Аватар пользователя alexmihel alexmihel 7 апреля 2014 в 11:03
"Ziklon" wrote:

Можно попробовать проверить уникальность https://drupal.org/project/taxonomy_dupecheck Или запретить имя с ООО

Проверка уникальности мало что даст, т.к. проблему кавычек это все равно не решает. Запретить ООО также нет возможности, т.к. помимо ООО существует еще куча форм собственности.

"<a href="mailto:sas@drupal.org">sas@drupal.org</a>" wrote:

Всё намного прозаичней, кавычки используются для для ввода нескольких значений, достаточно поставить в настройках поля - количество значений - 1.

У меня в настройках стоит 1. Если в поле появляется запятая, тогда это вызывает ошибку - что данное поле может содержать только одно значение. А наличие кавычек просто теряет все что начинается с кавычек...

Аватар пользователя q2_faith q2_faith 7 апреля 2014 в 11:09
"alexmihel" wrote:

Проверка уникальности мало что даст, т.к. проблему кавычек это все равно не решает. Запретить ООО также нет возможности, т.к. помимо ООО существует еще куча форм собственности.

я бы эти аббревиатуры вынес в обычное поле. а в таксономию шло бы только название

Аватар пользователя alexmihel alexmihel 7 апреля 2014 в 11:31
q2_faith wrote:
"alexmihel" wrote:

Проверка уникальности мало что даст, т.к. проблему кавычек это все равно не решает. Запретить ООО также нет возможности, т.к. помимо ООО существует еще куча форм собственности.

я бы эти аббревиатуры вынес в обычное поле. а в таксономию шло бы только название

Такое решение теоретически возможно, однако есть 2 причины его не использовать:
1. слишком много этих самых форм, народ регистрируется с такими аббревиатурами как ГБУК, ГМЗ, ГМПЗ, МАОУ СОШ, МАУ, МБУК, МАЭ и так далее, все даже не решаюсь перечислить
2. хочется понять как данную проблему победить, найти универсальное решение, т.к. подобный вопрос может встать в каком-нибудь другом проекте.

Аватар пользователя q2_faith q2_faith 7 апреля 2014 в 11:54
"alexmihel" wrote:

2. хочется понять как данную проблему победить, найти универсальное решение, т.к. подобный вопрос может встать в каком-нибудь другом проекте.

в идеале на базе поля термина таксономии создать свое, с валидацией и прочей фигней.

Аватар пользователя alexmihel alexmihel 7 апреля 2014 в 16:49
q2_faith wrote:

в идеале на базе поля термина таксономии создать свое, с валидацией и прочей фигней.

Видимо так и должно быть. Просто хотелось понять, есть ли какие-то готовые решения, ведь наверняка не у меня одного возникла такая проблема.

Аватар пользователя Artemkrass Artemkrass 23 мая 2014 в 10:46

Такая же проблема. Есть поле с автозаполнением из словаря таксономии.
Если добавляется термин в котором содержатся кавычки ("), то текст содержащийся в кавычках исчезает.

Пробовал патчить изменял вручную как здесь https://drupal.org/node/1000736

Результата нет.

Конструкция работает если:

ООО "Рога и КОпыта" изменить на "ООО ""Рога и КОпыта"""

Делал замену в поле input при помощи jQuery. Но работает кривовато.

Есть ли толковое решение этой проблемы???