2011-10-05 3 views
0

나는 그것이 어리석은 질문 일지 모른다는 것을 안다. 그러나 나는 a와 b라는 필드를 가지고 있는데, 이제 값을 얻고 a와 b의 값을 설정하는 법을 배웠다. 이 지금 내 코드는, 내가 얻는 방법을 알고하십시오 a와 b의 값을 설정하려면 ..이처럼 노드 타이틀을 얻고값을 얻고 cck 사용자 정의 필드의 값을 설정하는 방법

$n = node_load($node->id); 
$n->title; 

이고, 나는의 값을 설정하는 경우 b는 사용하여 저장됩니다

node_save ($ n);

??

답변

2

하지만,이 같은 일이 :

// Drupal 6 
$n = node_load($node->id); 
$n->title = 'A title'; 
$n->field_my_field_a[0]['value'] = 'A value'; 
$n->field_my_field_b[0]['value'] = 'B value'; 
node_save($n); 

// Drupal 7 
$n = node_load($node->id); 
$n->title = 'A title'; 
$n->field_my_field_a[LANGUAGE_NONE][0]['value'] = 'A value'; 
$n->field_my_field_b[LANGUAGE_NONE][0]['value'] = 'B value'; 
node_save($n); 

두 경우 모두 node_save()으로 전화하면 필드 데이터가 노드와 함께 저장됩니다.

두 경우 모두 0 색인은 필드의 첫 번째 항목을 나타냅니다. 필드에 값이 여러 개인 경우 배열에 계속 추가 할 수 있습니다. value 키 필드가 FileField와는 너무 따라 조정 보유 파일의 fid (파일 ID)를 개최한다 (예를 들어, 보유 데이터의 종류에 따라 변경해야 할 수도 있습니다.

또한 LANGUAGE_NONE

를 교체해야 할 수도 있습니다 드루팔 (Drupal 7) 버전을 사용하는 경우 필요한 언어 코드로 변경하십시오.

0

당신이 무엇을하고 있는지 설명하지 않기 때문에 약간 혼란 스럽습니다. 그러나 CCK 필드는 일반적으로 다음과 같습니다에 액세스하려면 :

$node = node_load($nid); 
$field_value = $node->field_name[0]['value']; 

을가 다중 선택 제로 과거의 오프셋 값을 가지고 있다면. 당신은 같은 방법을 사용하여 값을 설정할 수 있습니다 : 그것은 당신이 사용하고 사용중인 특정 필드 유형에있는 버전을 조금 따라

$node = node_load($nid); 
$node->field_name[0]['value'] = $field_value; 
node_save($node); 
관련 문제