it-swarm-ko.tech

치명적인 오류 정의되지 않은 함수 taxonomy_get_tree ()

분류 용어를 기반으로 선택 검색 양식을 만드는 모듈을 작성하고 싶습니다. (계층 적 선택 상자 포함) 이것은 drupal 7.0이고 상태가 최신 상태입니다. 양식이 작성되고 Ajax가 테스트 값으로 제대로 작동합니다. 그러나 이제 채울 방법을 찾아야합니다. 분류 용어를 사용하여 선택 상자를 작성하고 taxonomy_get_tree 함수 (modules/taxonomy/taxonomy.module, line 836)를 사용하기를 원했고 다음 메시지를 받았습니다.

 치명적 오류 : 정의되지 않은 함수 taxonomy_get_tree () 
 호출

내 모듈에 modules/taxonomy/taxonomy.module에서 함수를 넣었을 때 다음 메시지를받습니다.

치명적인 오류 : taxonomy_get_tree ()를 다시 선언 할 수 없습니다.

어떤 방식 으로든 taxonomy.module 파일을 사용하여 모듈을 연결해야합니까? 아니면 목표를 달성하기위한 다른 방법이 있습니까?

이것은 drupal7/sites/all/sitename/modules/custom/mymodule/mymodule.module에있는 mymodule.module 파일에 있습니다.

코드는 다음과 같습니다.

$tree = taxonomy_get_tree(6, $parent = 0, $max_depth = NULL, $load_entities = FALSE);
print_r($tree);

Taxonomy.module 페이지의 모든 기능에 접근 할 수 없습니다 ...

5
JurgenR

모듈이 다른 모듈에 종속되어 있고 해당 모듈에서 정의 된 함수가 존재하지 않는다는 오류가 발생하면 모듈의 가중치를 더 높은 값으로 변경해야합니다.

Drupal에서 모듈은 무게 (먼저 가벼운 모듈, 그다음 무거운 모듈)와 짧은 모듈 이름을 기준으로로드됩니다. user.module은 두 모듈의 가중치가 동일한 경우 taxonomy.module 다음에로드됩니다.

drupal_load('module', 'taxonomy')을 사용하는 대신 hook_install () 또는 hook_update_N () 에서 db_query("UPDATE {system} SET weight = 10 WHERE name = 'your_module_name'")을 사용하여 모듈의 가중치를 변경해야합니다. 또는 db_update('system')->fields(array('weight' => 1))->condition('name', 'actions_loop_test')->execute() in Drupal 7 이상.
모듈의 가중치를 변경하는 더 좋은 방법은 분류 모듈의 가중치를 가져 와서 5 (또는 10)로 늘린 다음 해당 값을 모듈의 가중치로 사용하는 것입니다. 이러한 방식으로 타사 모듈이 Taxonomy 모듈 가중치를 기본값과 다른 값으로 변경하는 경우에도 Taxonomy 모듈이로드 된 후 모듈 후크가 호출됩니다.

hook_init () 구현으로 인해 오류가 발생한 경우 Taxonomy 모듈이 drupal_load('module', 'taxonomy')을 구현하지 않으므로 hook_init() 만 사용할 수 있습니다.

1
kiamlaluno

분류 모듈이 방금로드 된 것일 수 있습니다. taxonomy_get_tree ()를 호출하기 전에 분류 모듈을로드 해 보셨습니까? :

drupal_load('module', 'taxonomy');
$tree = taxonomy_get_tree(6, $parent = 0, $max_depth = NULL, $load_entities = FALSE);
print_r($tree);
1
Manu