【问题标题】:Programmatically adding columns in VIEWS以编程方式在 VIEWS 中添加列
【发布时间】:2018-03-20 13:54:00
【问题描述】:

在 drupal 7 视图中,我创建了一个自定义模块并使用以下方法添加动态列。

function my_module_views_pre_view(&$view, &$display_id, &$args) {
  if ($view->name == 'my_view') {

  $countries = my_module_vocab_terms('countries');
    foreach ($countries as $country){
        $view->add_item($view->current_display, 'field', 'views', 'nothing', array(
        'label' => $country->name,
        'alter' => array('text' => $country->tid), 
        'element_class' => 'my-field',
        'element_default_classes' => 0,
        ), $country->tid);
    }
  }

  }
}

但是像这样在每一行中重复的文本值。

请建议如何为每一行传递值。

谢谢

【问题讨论】:

    标签: drupal view


    【解决方案1】:

    如果有人仍然对如何更改这些字段的值感兴趣。 您可以通过呈现字段并更改已经获取结果的钩子之一中的数据来做到这一点,例如。 hook_views_post_execute、hook_views_pre_render、hook_views_post_render 取决于您的需要。

    /**
     * Implements hook_views_post_execute().
     */
    function my_module_views_post_execute(view &$view) {
      $view->style_plugin->render_fields($view->result);
      $view_fields = &$view->style_plugin->rendered_fields;
    
      foreach ($view_fields as &$field) {
        $field['my_field'] = "some value";
      }
      unset($field);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-20
      • 1970-01-01
      • 2011-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多