Как и было обещано, пишу.
Задача:
Изучить возможности Hierarhical Select и научиться его использовать в своих сайтах.
Техническое задание:
Разработать сайт, который будет показывать участников в проектах.
Набор софта:
Drupal 6.20 русская локаль
Модули: CCK, taxonomy, hierarchital_select
Начнём с установки.
Как ставить друп рассказывать не буду (смайлик). CCK и taxonomy закидываются в modules, HS закидывается в sites/all/modules
Отмечаем их галками в /admin/build/modules/list и жмём "сохранить конфигурацию".
После этого делаем /update.php для корректной установки HS. Идём в /admin/reports/status и убеждаемся в корректности установки.
Установка закончена.
Теперь, давайте подготовим словарь, для реализации нашего ТЗ.
Словарь будет иметь структуру отдел->сотрудник
Сделаем это!
Готовим словарь
Добавляем новый словарь /admin/content/taxonomy/add/vocabulary
Заполняем данные
Галки для привязки с типу материала не ставим!
Ставим галку "обязательно" и жмём "сохранить".
Убедились, что словарь создан
Добавляем данные
Как я говорил выше, что словарь будет в формате отдел->сотрудник, давайте научимся это делать!
Жмём добавить термины. (в данном случае я не пишу ссылку, так как не совпадут идентификаторы словарей)
Сначала сформируем структуру нашей компании, а потом будем наполнять её сотрудниками.
Через форму "добавить термин" просто забиваем список отделов
Заполняем пока просто "название термина" остальное не трогаем.
Получится примерно такая картина
Мы подготовили список отделов.
Через эту же форму добавляем сотрудников, но тут уже раскрываем "дополнительные настройки" и выбираем родительский термин, для формирования иерархии
В итоге, у нас должен получиться список сотрудников, разбросанных по отделам.
Словарь готов. Настроим его.
Жмём уже "изменить словарь"
Нас пока интересует только настройка множественного выбора (в проекте ведь может участвовать несколько сотрудников)
Словарь настроен.
Создадим тип материала
Топаем в /admin/content/types/add
Заполняем поля
Сохраняем.
Добавляем поле /admin/content/node-type/project/fields
Сохраняем и настраиваем добавленное поле (нас туда перекинет после сохранения)
Нам надо указать, из какого словаря брать данные и отметить, что обязательно заполнение
Сохраняем.
Идём в /node/add/project и наслаждаемся
БИНГО!
Спасибо за потраченное время. Жду помидоры.
Комментарии
спасибо
Спасибо
спасибо огромное
Интересный подход.
Как в вашем варианте, к сотруднику еще поля добавить: год рождения, паспортные данные, другие поля?
другой подход нужен имхо через ССК сделать материал отрудник
или же, словарь с годами и связывать термины
Так а результат то этого какой.
Выбираешь в Select отдел и после выбора отдела вылезает Select с фамилиями возможными?
А где HS используется (ни одного слова об этом) Иерархический выбор?
подскажите всё сделал верно все получилось. но напротив каждой надписи в скобках стоить ноль.?
Спасибо)))
то что искал!!!
сразу вопрос..
1.если у меня 500 юзеров и все равно придется создавать словарь? каждого вручную вводить в словать???
может как нить сделать импорт из бд?
2.возможно соорудить более сложную конструкцию иерархии?
пример:
отдел:
-руководитель
-руководитель проекта
-сотрудики
спасибо за статью
жаль на самом интересном месте статья закончилась, пару принт-скринов с иерархическим выбором было бы уместно вставить.
Все седлал как на скриншотах. В Типе материала ... только
Сотрудники:
- охрана
- иллюстратор
- редактор
и все. ничего не выпадает ни каких фамилий.
Так как сохранил материал. Зашел изменить только тогда появилось меню второе с фио.
а почему после выбора фио. Пишется в материала список фио а не отдел и должность? так задумано?
2 сотрудника не получается добавить. Только отдел.
да блин как ноли убрать на сайте под сотню пользователей никто не может подсказать ну что такое?
да
юзеров сайта?
есть масса модулей импорта/экспорта
как нолики убрать????????
Пользуйте Hierarhical Select Node Reference
То же предложение, просто одним из уровней иерархии сделать пользователей и каждому (либо заставить их самих) проставить отдел, в котором он работает.
В таком случае для типа материала Проект лучше сделать отдельные поля:
-руководитель (max 1 штука)
-руководитель проекта (max 1 штука)
-сотрудники (max неограниченно)
Поставил. Что-то не понятно.
Есть тип материала "Сотрудник".
Каждому сотруднику назначен отдел из словаря "Отделы" (иерархический, например Служба безопасности-Безопасность IT).
Тип материал "Проект" ссылается (node reference) на сотрудников.
Назначил полю field_personal (node reference) иерархический выбор.
Как сделать что бы вначале показывался отдел (нижнего уровня), а потом сотрудники этого отдела?
Сейчас вообще ничего не показывает.
Как бы вредный совет
Спасибо.
НОЛИКИ НАПРОТИВ списков как уУБРАТЬТ АУ????!!!!
что за нолики?
как сделать
с помощью HS страна район город... как на druit.ru в профиле юзера ?
ВОТ ВОТ ЭТИ НОЛИКИ КАК УБРАТЬ
/admin/content/taxonomy/edit/vocabulary/ваш_словарь
оно отключено у меня. нолики всер равно есть
Спасибо! по Вашей инструкции создал списки автомобилей такого вида
-Тойота
--Камри
Но вот скажите как сделать так чтобы в ССК поле выводилось название автомобиля не просто Камри а Тойота Камри?
Георгий Михайлович: может быть, это поможет: http://drupal.ru/node/39061
Подскажите, при создании термина выдает ошибку:
warning: array_shift() expects parameter 1 to be array, null given in /home/u274312/dl.xn-----vlck7a.xn--p1ai/www/includes/form.inc on line 1339.
обновите все модули и ядро
Обновил до нового года все до 6.20.
Выдает ошибку когда создаю термин например
Удочка
-Кривая
Когда кривую вставляю в удочку - ругается, но когда создаю удочку все нормально.
warning: htmlspecialchars() expects parameter 1 to be string, array given in /home/xxx/dl.xn-----vlck7a.xn--p1ai/www/includes/bootstrap.inc on line 857.
warning: htmlspecialchars() expects parameter 1 to be string, array given in /home/xxx/dl.xn-----vlck7a.xn--p1ai/www/includes/bootstrap.inc on line 857.
Та же проблема.
Удалось вылечить?
да их много =)))
щас поищем)))
скорее уровнем сделать должность, а там как нить свзать должность и юзера;
нее..надо мне сделать)
а что идея, надо будет пропробоать и то и то)))
- ну дак продумывайте иерархию как хотите - ваше дело. При использовании Hierarhical Select Node Reference, что мне понравилось, можно пользовать модуль импорта нод и там проставлять значения полей, в том числе и значения связи между нодами (при его использовании не создавайте обязательных полей, даже таксономии - будет выдавать ошибку). Но вам нужно учесть, что этот модуль создёт новые ноды, не редактируя старые. И вам скорее всего придётся писать SQL-запрос для формирования значений в поле связи юзер - должность.
HS и HSNR не работают вместе, то есть либо у вас словарь: подразделение->отдел->сотрудник, либо создавайте отдельные типы материалов вышеуказанной структуры. У меня так было.
справился с проблемой?
У меня не было такого
на заметку
Благодарю, в закладки добавил. Но:
Поддерживаю.
CCK, как и остальные - в /sites/all/modules
А Taxonomy и так в /modules должен быть, ибо стандартный.
Все сделал как написано, не выпадает таксонимия второго и последующего уровняю
В чем может быть причина?
словарь проверил там все гуд.
поле сделал а там только выбирается первый уровень и все.
значит, что сделали не совсем так, как написано
Да удалось.
Проблема была в некоректно настроенных автоматических синонимах, лепил на угад, старался придерживатся логике Drupal, сейчас коректно работает, сайт здал.
Дмитрий, подскажите, как Вы выкрутились из ситуации на конкретном примере пожалуйста.
Я делаю так:
Словарь таксономии: Автомобиль
---Audi
------A1
------A2
------A3
---BMW
------1
------3
Потом при создании ноды называю её Audi A1 1.6MT, в разделе таксономии выбираю Audi и A1.
Но не пойму при чём тут термины и ноды?
Как вы решили проблему с нижеследующим?
htmlspecialchars() expects parameter 1…bootstrap.inc on line 857
у меня её не возникало
Повезло)
Проблема связана с кириллицей. Сделал как указано здесь:
http://drupal.org/node/525036#comment-3110966
Все хорошо заработало, но это при добавлении. А как теперь отфильтровать проект по отделу и сотруднику? Имеется ввиду, что надо какое-то меню в котором по этому же принципу происходила отсортировка документов. В вашем случае - сначала выбираем отдел, потом сотрудника и получаем проекты в которых он участвует
это выходит за рамки этого урока, не находите?
всё конечно хорошо.... но вот самое интересное упустили: как потом все это красиво вывести, например через view. Я, например, там стопорюсь... как настраивать поля и фильтры, и нужно ли что-то еще настраивать, чтобы получилась четкая структура с переходом на нижеследующие уровни? Заранее спасибо!
Я например темизацию делаю так, это способ универсален, подходит не только к этому уроку.
Если у вас Firefox и установлен Firebug, то нажмите по нужному выпадающему полю правой кнопкой мышки, выберите пункт меню "Анализировать элемент". Внизу откроется панель Firebug. И ваш выпадающий список появиться в ней и будет выделен соответсвующий тег. Выпадающее поле характерно тегом Select. В моей случае этот тег такой: . У этого тега стоит уникальный в пределах всего сайта ID - edit-tid-hierarchical-select-selects-0. Теперь в файле со стилями прописываем:
#edit-tid-hierarchical-select-selects-0 {
---ваши-настройки---
}
и всё.
А можно поподробней?