2011-02-12 4 views
0

노드 갤러리 유형에 대한 노드 참조를 포함하는 cck 노드 유형이 있습니다. CCK 노드에 대한 새로운 갤러리를 실제로 만들고 싶지 않기 때문에 휴경을하고 싶습니다. cck 노드를 표시하는 페이지에서;PHP 코드를 사용하여 "추가"링크를 추가하는 Drupal

주어진 노드에 대한 갤러리 참조가있는 경우 해당 갤러리에 대한 링크를 표시하십시오. 갤러리가 없으면 "갤러리 추가"링크를 표시하고 싶습니다. 이상적으로 이것은 새로운 갤러리 노드와 참조를 프로그래밍 방식으로 작성합니다. 저자 정보뿐만 아니라 제목을 자동으로 채우고 싶습니다. 사용자에게이 정보에 대한 액세스 권한을 부여하지 않아도됩니다. 나는 drupal.org를 통해 정보를 찾으려고했지만, 알아낼 수는 없다.

감사

답변

0
<?php 
    $node_A = node_load($some_nid); 
    if(empty($node_A->field_type_gallery_node_ref[]['nid'])// imp point this field is an array 
    { 
    //link to add gallery page 
    //call a function for creating a node of gallery and return the nide and you can pass //parameters like nid of A etc..then return the new node from the function 
$node_GALLERY = get_gallery_node_new($node_A->nid); 
$node_type_A->field_type_GALLERY_node_ref[]['nid'] = $node_GALLERY; 
} 
    else 
    { 
    //display this gallery 
    } 
    ?> 

는 현재 노드의 NID를 얻을 수 있습니다 :

<?php 
if (arg(0) == 'node' && is_numeric(arg(1))) 

$nodeid = arg(1); 

?> 

또는 (당신이 알고있는) CCK (A)의 모든 필드의 값을 사용하고 노드 테이블과 조인 적용

$nid_ref_query ='SELECT nid FROM `content_type_A` cto join node n on cto.nid=n.nid where cto.field_some_field_you_know =' . $something; 
$nid_array = db_fetch_array(db_query($nid_ref_query)); 
$nid = $nid_array['nid']; 
+0

나는 이것이 총체적인 감각을 만든다고 생각한다!, 나는 사실 cck 노드를 표시하기 위해 panels (3)을 사용하고있다. 템플릿을 만들고 편집하는 대신 여기에 배치 할 가시성 규칙에서 PHP 코드를 지나칠 수 있습니다. 나는 $ some_nid를 얻는 방법에 대해 약간 혼란 스럽다. 분명히 cck 노드에 따라 달라질 것이다. node_load()를 호출하면 현재 노드가로드됩니까? – user379468

+0

@user : 수정 된 답변보기 – ayush

관련 문제