2013-12-12 72 views
0

我想访问我为图像创建的字段。我隐藏了该字段,因此它不会出现在常规的print render($page['content']);函数中。Drupal 7 - 横幅图像

如果我打印$ page变量,我可以看到我的自定义字段。 [field_associated_image]

我见过与views module有关的例子,但这似乎过于复杂,我试图达到目的。

这可能看起来像一个简单的问题,但我似乎无法找到这个在线的简单答案。

$页面阵列

[content] => Array 
     (
      [system_main] => Array 
       (
        [nodes] => Array 
         (
          [2] => Array 
           (
            [#pre_render] => Array 
             (
              [0] => _field_extra_fields_pre_render 
             ) 

            [#entity_type] => node 
            [#bundle] => page 
            [#view_mode] => full 
            [#theme] => node 
            [#node] => stdClass Object 
             (
              [vid] => 2 
              [uid] => 1 
              [title] => Home 
              [log] => 
              [status] => 1 
              [comment] => 1 
              [promote] => 0 
              [sticky] => 0 
              [nid] => 2 
              [type] => page 
              [language] => und 
              [created] => 1386864773 
              [changed] => 1386886093 
              [tnid] => 0 
              [translate] => 0 
              [revision_timestamp] => 1386886093 
              [revision_uid] => 1 
              [body] => Array 
               (
                [und] => Array 
                 (
                  [0] => Array 
                   (
                    [value] => 
Test 

                    [summary] => 
                    [format] => filtered_html 
                    [safe_value] => 
Test 

                    [safe_summary] => 
                   ) 

                 ) 

               ) 

              [field_associated_image] => Array 
               (
                [und] => Array 
                 (
                  [0] => Array 
                   (
                    [fid] => 5 
                    [alt] => 
                    [title] => 
                    [width] => 976 
                    [height] => 438 
                    [uid] => 1 
                    [filename] => home-banner.jpg 
                    [uri] => public://home-banner_0.jpg 
                    [filemime] => image/jpeg 
                    [filesize] => 85851 
                    [status] => 1 
                    [timestamp] => 1386886093 
                   ) 

                 ) 

               ) 

              [name] => admin 
              [picture] => 0 
              [data] => b:0; 
              [entity_view_prepared] => 1 
             ) 

回答

1

您可以尝试创建一个自定义模块访问字段

function custom_field_attach_view_alter(&$output, $context) { 
    $node = $context['entity']; 
    $instances = _field_invoke_get_instances('node', $node->type, array('default' => TRUE, 'deleted' => FALSE)); 
    foreach ($instances as $field_name => $instance) { 
    if ($instance['field_name']=="your_field_name") { 

     $display = field_get_display($instance, 'full', $node); 
     // Do not add field that is hidden in current display. 
     if ($display['type'] == 'hidden') { 
     continue; 
     } 
     // Load field settings. 
     $field = field_info_field($field_name); 

     $output[$field_name] = array(
     '#theme' => 'field', 
     '#title' => $instance['label'], 
     '#label_display' => 'hidden', 
     '#field_type' => $field['type'], 
     '#field_name' => $field_name, 
     '#bundle' => $node->type, 
     '#object' => $node, 
     '#items' => array(1), 
     '#entity_type' => 'node', 
     '#weight' => $display['weight'], 
     0 => array('#markup' => $text), 
    ); 
    } 
    } 

} 
+0

感谢这一点,但我不知道我会怎么使用这个功能?我看到该函数需要两个参数输出和上下文。 – hyperdrive

+1

该函数将自动运行在自定义模块中 – hkguile