2011-01-17 8 views
0

list_text을 기반으로하는 특수 콤보 상자를 사용하는 필드가있는 사용자 지정 노드 유형이 있습니다. list_text 유형을 선택하면 일반적으로 선택 가능한 텍스트의 정적 목록을 입력 할 수 있지만이 목록이 동적 인 경우, 즉 db_query의 결과를 기반으로합니다. 드루팔 (Drupal 7)을 사용하여 이것을 수행하는 가장 좋은 방법은 무엇입니까?Drupal - text_list 필드의 동적 옵션

명확한 예제 :이 사용자 정의 유형 X의 노드에는 다른 노드를 가리키는 필드가 있으므로 X 유형의 노드가 만들어 질 때마다 다른 모든 노드가 들어있는 콤보 상자가 필요합니다.

(만 편집 할 동안 더 이상 노드 만드는 동안 콤보 상자를 표시하고에 가장 좋은 방법은 없을 것이다. 그러나 콤보가 아니라 편집 중에 표시 한 경우 나 또한 그와 함께 살 수 있습니다.)

내가 시도 내 데이터 형식을 정의하고 이에 따라 hook_options_list을 구현하여 options_select을 사용자 정의하십시오. 콤보 상자는 올바른 값으로 생성하는 동안 표시되었지만 저장하지 못했습니다. 무엇이 잘못되었는지 전혀 모르지만 처음에는 다른 테마로 바뀌고 다시 시도하면 인터넷 서버 오류. 필드에 대해 완전히 새로운 데이터 유형을 정의하는 데 올바른 길을 가고 있습니까? 반드시 간단한 방법 이어야만할까요?

답변

0

이 튜토리얼은 allegroconmolto에 의해 올바른 방법으로 저를 보내 왔습니다. 고마워.

여기에 그것을하는 간단한 방법 : tutorial

을 기본적으로,이 가정대로이며, 일반적인 문제 때문에이를위한 간단한 솔루션은 지금 쯤 webform 모듈에 포함되었다. 콜백 메소드를 등록하는 데 사용할 수있는 hook_webform_select_options_info을 제공합니다. 그런 다음 콜백 메소드는 웹 양식의 해당 옵션 선택이 표시 될 때마다 호출되므로 dbquery 또는 그 밖의 결과로 쉽게 채울 수 있습니다. 매력처럼 작동하며 구현할 시간이 없습니다.

0

당신은 새로운 데이터 유형이 필요 없다는 점에서 옳습니다. 여기에 a good tutorial on how to do this입니다. 그것은 D7을 위해 특별히 아니었지만 나는 아직도 적용 할 수없는 것을 많이 보지 못했습니다. 특별히 D7에서 더 좋은 방법이 있을지 모르지만 나는 그것을 알고 싶습니다. 그렇다면 :) #

+0

튜토리얼 링크에 감사드립니다. 그것은 올바른 방향으로 나를 보내 주었고 실제로'webform' 모듈을 사용하여 훨씬 더 간단한 방법을 찾았습니다. – Frank

관련 문제