Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Drupal 如何以编程方式将自定义视图区域处理程序放置到视图标题中?_Drupal_Drupal 7_Drupal Views - Fatal编程技术网

Drupal 如何以编程方式将自定义视图区域处理程序放置到视图标题中?

Drupal 如何以编程方式将自定义视图区域处理程序放置到视图标题中?,drupal,drupal-7,drupal-views,Drupal,Drupal 7,Drupal Views,我必须通过创建自定义视图区域处理程序来完成一项任务。这一切都很好,我可以通过views UI将处理程序放入标题区域。不幸的是,由于这个项目的部署结构,我不能只更新与视图相关的代码。创建自定义区域处理程序的模块还需要更改视图,以将区域处理程序放入标题中 我使用以下代码创建了视图区域处理程序: /** * Implements hook_views_data(). * * Purpose: Establish a views area handler for displaying. */ f

我必须通过创建自定义视图区域处理程序来完成一项任务。这一切都很好,我可以通过views UI将处理程序放入标题区域。不幸的是,由于这个项目的部署结构,我不能只更新与视图相关的代码。创建自定义区域处理程序的模块还需要更改视图,以将区域处理程序放入标题中

我使用以下代码创建了视图区域处理程序:

/**
 * Implements hook_views_data().
 *
 * Purpose: Establish a views area handler for displaying.
 */
function custom_shipping_notification_views_data() {
  // Initialize data array.
  $data = array();

  // Define a handler for an area used to display if qualifies for free ship.
  $data['commerce_order']['free_shipping_message'] = array(
    'title' => t('Free Shipping Notification'),
    'help' => t('Displays the free shipping notification on cart form.'),
    'area' => array(
      'handler' => 'custom_shipping_notification_handler',
    ),
  );

  // Return data.
  return $data;
}
这一切都是有效的,所以我不会进入处理器本身。我可以通过视图用户界面来放置它,没问题。我需要将其放入特定视图的标题中。视图在功能中进行管理,但由于客户端部署和回购结构,我无法合理地更改功能。我需要从包含自定义区域的模块内部更改视图

我已尝试使用此代码,但无效:

function custom_shipping_notification_views_pre_build(&$view){
  if ($view->name == 'commerce_cart_form') {
    $id = $view->add_item('default', 'header', 'views', 'free_shipping_message');
  }
}
有人有什么想法吗?由于add_item方法只有一行描述,并且没有编码示例,所以我显然进入了一个模糊的领域。这一地区的大部分文件同样未开发

function YOURMODULENAME_views_pre_view(&$view, &$display_id, &$args) {
   if($view->name == 'YOURVIEWNAME' && $display_id == 'YOURDISPLAYID') {
      $footer = "This is the text that I want in my footer!!!!";
      $options = array(
      'id' => 'area',
      'table' => 'views',
      'field' => 'area',
      'empty' => FALSE,
      'content' => $footer,
      'format' => 'filtered_html',
      'tokenize' => 0,
    );
    $view->set_item('YOURDISPLAYID', 'footer', 'area', $options);

   }
}