2011-11-10 13 views
7

मैंने मूल पृष्ठ सामग्री प्रकार में 'field_header' नामक एक कस्टम फ़ील्ड जोड़ा है। मैं पेज.tpl.php टेम्पलेट पर इस फ़ील्ड को कैसे एक्सेस करूं ताकि मैं इसे कहीं भी प्रदर्शित कर सकूं? आदर्श रूप में मैं इसे $ सामग्री से भी हटाना चाहता हूं। धन्यवाद!Drupal 7 कस्टम फ़ील्ड को कैसे प्रस्तुत करें

उत्तर

10

भूलें कि प्रत्येक पृष्ठ एक नोड पेज आवश्यक नहीं है, इसलिए आप node.tpl.php में page.tpl.php में इसे एक्सेस करने का प्रयास करना बेहतर होगा।

node.tpl.php में आप इस तरह विशेष क्षेत्र प्रदान कर सकते हैं:

echo render($content['field_header']); 
hide($content['field_header']); // This line isn't necessary as the field has already been rendered, but I've left it here to show how to hide part of a render array in general. 

आप पूरी तरह page.tpl.php में यह करने के लिए तो आप अपने टेम्पलेट फ़ाइल में एक preprocess समारोह को लागू करने के चर आप की जरूरत प्राप्त करना चाहते हैं:

function mymodule_preproces_page(&$vars) { 
    if ($node = menu_get_object() && $node->type == 'page') { 
    $view = node_view($node); 
    $vars['my_header'] = render($view['field_header']); 
    } 
} 

फिर page.tpl.php में आप चर $my_header जो अपना पूरा गाया क्षेत्र में शामिल होंगे का लाभ उठा सकेंगे।

+0

धन्यवाद! मुझे अपने हेडर को किसी विशेष स्थान पर रखने की आवश्यकता थी इसलिए मैंने आपके दूसरे विकल्प की कोशिश की, लेकिन मैं इसे काम नहीं कर सका। सौभाग्य से पहले विकल्प (और कुछ jQuery) का उपयोग करके मैं अपनी समस्या को हल करने में सक्षम था। मुझे आश्चर्य है कि echo $ vars ['my_header] ने मेरे पेज.tpl.php – martincho

+0

में क्यों काम नहीं किया है, आपको उस मामले में page.tpl.php में $ vars [' my_header '] की आवश्यकता नहीं होगी, केवल $ my_header पर्याप्त है। – Jasmo

+0

इस सरल लेकिन प्रभावी उत्तर के लिए धन्यवाद। – Drake

1

अपने node.tpl में आप उदाहरण फ़ील्ड नाम के लिए, कोड निम्न का उपयोग करने के लिए है: से page.tpl.php आप $ नोड के लिए उपयोग किया है और field_header

<!-- For Showing only custom field's Value Use below code --> 
<h2 class="title"><?php print $node->field_header['und']['0']['value'];?></h2> 

<!-- ========================= OR ========================= --> 

<!-- For Showing custom field Use below code , which shows custom field's value and title--> 
<h2 class="title"><?php print render(field_view_field('node', $node, 'field_header')); ?></h2> 

<!-- ========================= OR ========================= --> 

<h2 class="title"><?php print render($content['field_header']); ?></h2> 
0

तो $ नोड से सभी क्षेत्रों

print ($node->body['und']['0']['value']); 
संबंधित मुद्दे