Двухуровневый словарь на 2000+ терминов — как упростить выбор термина при создании материала?

Прислано: n1313

ср, 25/07/2007 - 06:38

У меня есть здоровенный словарь марок и моделей автомобилей, порядка 2000 записей. Словарь — с одиночной иерархией, то есть родительские термины — это марки автомобилей, типа "Газ", а дочерние термины — это модели, типа "Газель". Всё замечательно, но, когда дело доходит до выбора терминов при создании материала, я сталкиваюсь с проблемой поиска нужных терминов в этом гигантском списке. Очень хотелось бы как-то поумнее организовать этот процесс, например, выбирать сначала родительский термин, чтобы на его основе при помощи AJAX загружался второй список с дочерними терминами.

Я пробовал добиться этого, используя связку CCK + Content Taxonomy + Active Select, и всё было бы замечательно, если бы не ошибка в яваскрипте модуля Active Select, из-за которой нифига буквально не работает. Я поискал в обсуждениях здесь, нашёл тему с обсуждением этого вопроса, но в теме той примерно год последнему ответу, и решения никто не предложил. Может, с тех пор что-то изменилось?

Комментарии


Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Применить"
Опубликовано Onza в ср, 25/07/2007 - 14:37.

Актуально. Та же проблема.


Опубликовано n1313 в чт, 26/07/2007 - 07:11.

я задал этот же вопрос на официальном сайте друпала — посоветовали модуль Taxonomy Super Select. но я с ним уже возился и никаких в нём функций, которые могли бы мне помочь, не нашёл (или не понял, как включаются). может, кто-нибудь есть поопытнее?


Опубликовано Onza в чт, 26/07/2007 - 08:18.

Судя по описанию модуля - это что надо, как-то я его упустил из виду... Есть ли тогда смысл его ставить? Что он делал в Вашем случае? Я бы посмотрел, но именно сейчас только рабочий сайт, тестировать пока негде.


Опубликовано n1313 в чт, 26/07/2007 - 11:32.

в моём случае он просто превращал селект в набор чекбоксов/радиокнопок


Опубликовано n1313 в чт, 26/07/2007 - 13:33.

решил проблему следующим образом:

  1. таксономия создаётся как обычно, но не привязывается к типу контента — таким образом я избегаю загрузки мега-словаря при создании сообщения
  2. при помощи модулей CCK + Active Select + Content Taxonomy ActiveSelect прикрепляем к нужному типу контента activeselect-поле, в котором указываем нужный словарь
  3. по идее, всё должно уже работать, но лично у меня в этом месте происходит глюк в activeselect.js в строке 35. слегка помозговав, я написал патчик для этого скрипта, и всё в итоге заработало

в моём случае проблема была в том, что скрипт пытался обратиться к полю по ошибочному айдишнику — вместо "-" там был "_". я не знаю, где происходит эта ошибка, но с помощью небольшого патчика могу устранить последствия этой ошибки:
строка 34:

var newTarget = $('#' + targetsArray[target]).get(0);
заменяется на:

var newTarget = $('#' + targetsArray[target].replace(/_/,"-")).get(0);

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


Опубликовано Onza в чт, 26/07/2007 - 13:32.

Мда... не радует конечно, особенно доп. CCK + Active Select + Content Taxonomy, с учетом того, что модулей и так уже много и нагрузка соответственно. А словари включают по несколько сотен термов, не 2000 конечно, но все же...


Опубликовано kiev1 в чт, 26/07/2007 - 14:31.

спасибо, а можно где-то посмотреть что получилось?


Опубликовано n1313 в пт, 27/07/2007 - 07:59.

у меня — нет, это не публичный проект


Опубликовано Kulibin в сб, 28/07/2007 - 01:49.

Вот пример: http://www.drugme.ru/users_search - явно похоже на решение Вашей задачи.
Вот реализация: http://www.drupal.ru/node/5761


Опубликовано Nodachi в вт, 16/09/2008 - 11:43.

Блин, сколько же я мучался, пока не набрел на этот топик! Для чистоты эксперимента замутил свежую инсталляцию, создал словарь с одиночной иерархией, добавил несколько терминов дабы "нарисовалось" дерево... Установил модули, сделал все по пунктам из коммента выше - заработало! В третьем пункте необходимости небыло - видимо с тех пор, как писали коммент, уже пофиксили.
Спасибо!


Опубликовано NeuZeitgeist в вт, 16/09/2008 - 13:06.

Есть еще hierarchical select. Пользуюсь им. Очень удобно для больших словарей с иерархией.
Например, как здесь http://berimir.com/production


Опубликовано kiev1 в сб, 11/10/2008 - 22:44.

а где взять hierarchical select для 6-го друпала, или скорее всего что то подобное для views есть


Опубликовано Nodachi в пт, 07/11/2008 - 09:29.

Перешел на hierarchical select - достойная альтернатива, плюсы - все в одном мудуле и никакого гемороя.


Опубликовано kiev1 в пн, 10/11/2008 - 21:51.

а кстати надо еще так что бы пользователи могли предлагать добавить новую категорию примерно так:
"Хотите предложить новую категорию? Нажмите сюда."
и что бы при нажатии выезжало поле для добавления, а потом админ его утверждал
ведь это надо наверняка всем


Опубликовано NeuZeitgeist в пн, 17/11/2008 - 11:23.

hierarchical select позволяет это делать. Можно поставить галочки в свойствах словарей.
Только не уверена, что возможна предварительная модерация категорий. Поэтому пока не даю своим пользователям добавлять новые ключевые слова. Боюсь, что совсем каша будет :)


Новое на сайте

Ссылки партнёров