Drupal API + CCK поле(динамически сформированный выпадающий список)

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

Аватар пользователя rumzes rumzes 21 мая 2009 в 13:56

Здравствуйте!

Решения, а точнее информации для него не смог найти на API.drupal.ru
Есть определенный типа материала, к которому при помощи CCK привязано дополнительное поле(выпадающий список). Нужно чтобы список формировался динамически при помощи php кода введенного в поле "допустимые значения"(страница настроек CCK поля).

Алгоритм формирования предельно прост и имеет два основных ветвления. По какой ветке отработает скрипт зависит от того, РЕДУКТИРУЕМ мы ранее созданную ноду или СОЗДАЕМ НОВУЮ, и если редактируем существующую, то нужно знать её ID. Т.о. образом хотелось спросить у знатоков, как в скрипте определить:

1. Редактируем ноду или создаем новую?
2. Если создаем новую, то как определить её ID?

Заранее спасибо за помощь.

Комментарии

Аватар пользователя glu2006 glu2006 21 мая 2009 в 14:28

По пути $_GET['q']
все создаваемые ноды будут по урлу /node/add/node_type (айди не существует)
редактируемые /node/node_id/edit
сответственно зная урл вы сможете оперировать получаемыми данными.

Аватар пользователя keha3912 keha3912 2 июля 2009 в 17:50

rumzes - можешь поделиться php-кодом? у меня стоит схожая задача - сформировать выпадающий список из определенного типа нод.

Аватар пользователя rumzes rumzes 9 июля 2009 в 17:11

keha3912 wrote:
rumzes - можешь поделиться php-кодом? у меня стоит схожая задача - сформировать выпадающий список из определенного типа нод.

Дело в том, что необходимость формировать список отпала(нашел другое решение задачи), поэтому поделиться собственно нечем...

А какая задача...? Может можно и без этого?

Аватар пользователя keha3912 keha3912 13 июля 2009 в 18:45

rumzes - я рад, что вы мне ответили Smile не надеялся даже Smile тема-то старая...
у меня проблема такая:
я создал тип содержимого "Статья", в нем я создал поле field_tematika в виде выпадающего списка.
В него забил список:
Тематика 1
Тематика 2
Тематика 3
Я потом на основании наличия в ноде "Статья" поля "Тематика 1" сделал страницу /tematika1 во views.
Так вот как сделать, чтобы была обратная связь? Чтобы список список с Тематика 1, Тематика 2, Тематика 3 ссылался на соответствующие страницы во views (/tematika1, /tematika2, /tematika3)?
PS Или есть более красивые решения связать ноды по теме, автору, типу?

Аватар пользователя rumzes rumzes 14 июля 2009 в 9:49

Я что-то не совсем понимаю...

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

articles/type_1 статьи с типом 1
articles/type_2 статьи с типом 2
articles/type_3 статьи с типом 3

Так...? Если не так, то опишите поподробнее пожалуйста...

Аватар пользователя keha3912 keha3912 14 июля 2009 в 12:34

да, в том числе.
Думаю так понятней будет:
Мне надо, чтобы выпадающий список (field_tematika) с Тематика 1, Тематика 2, Тематика 3 ссылался на соответствующие страницы во views (/tematika1, /tematika2, /tematika3).
Пример:
человек выбрал при создании статьи из выпадающего списка, что статья относится к Тематика 1. После этого в созданной статье должна появиться ссылка "Тематика 1". Ссылается "Тематика 1" на вью, которая выводит списки статей разных типов.
Ну как? андестенд? Smile Smile Smile

Аватар пользователя rumzes rumzes 14 июля 2009 в 12:56

Компрендо...)

Зачем CCK, если есть Taxonomy...?

1.Создаем словарь с терминами(тематика1, тематика2, тематика3, тематикаN).
2.Создаем View, которая принимает в качестве аргумента термин таксономии с путем articles/[termId], где [termId] — ID термина.