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

Главные вкладки

Аватар пользователя n1313 n1313 25 июля 2007 в 10:38

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

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

Комментарии

Аватар пользователя n1313 n1313 26 июля 2007 в 11:11

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

Аватар пользователя Onza Onza 26 июля 2007 в 12:18

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

Аватар пользователя n1313 n1313 26 июля 2007 в 17: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 Onza 26 июля 2007 в 17:32

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

Аватар пользователя Nodachi Nodachi 16 сентября 2008 в 15:43

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

Аватар пользователя kiev1 kiev1 11 ноября 2008 в 0:51

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

Аватар пользователя NeuZeitgeist NeuZeitgeist 17 ноября 2008 в 14:23

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