【问题标题】:Drupal 7 - Banner ImageDrupal 7 - 横幅图像
【发布时间】:2013-12-12 23:43:56
【问题描述】:

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

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

我已经看到与views module 相关的示例,但这对于我想要实现的目标来说似乎过于复杂。

这似乎是一个简单的问题,但我似乎无法在网上找到一个简单的答案。

$page 数组

[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
                                        )

【问题讨论】:

    标签: php drupal drupal-7 field


    【解决方案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),
          );
        }
      }
    
    }
    

    【讨论】:

    • 谢谢您,但我不确定如何使用此功能?我看到这个函数有两个参数输出和上下文。
    • 函数会自动运行在自定义模块中
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-18
    • 1970-01-01
    • 2013-02-06
    • 2013-09-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多