Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.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
Fullcalendar作为Drupal商务签出的一部分_Drupal_Drupal 7_Drupal Commerce - Fatal编程技术网

Fullcalendar作为Drupal商务签出的一部分

Fullcalendar作为Drupal商务签出的一部分,drupal,drupal-7,drupal-commerce,Drupal,Drupal 7,Drupal Commerce,我正在Drupal7中使用商业模块套件建立一个电子商店。通过该商店,每天都提供物流服务 签出过程的一部分是向用户显示一个日历,其中包含该服务的可用性。应该显示服务可用的日期,用户应该能够选择一天作为结帐过程的一部分,并转到下一个结帐屏幕 我想使用Fullcalendar脚本向用户显示每日可用性: drupal中有一个相关插件: 我能够在我的网站上显示正常的完整日历页面。我真正感兴趣的部分是如何在结账过程中创建一个完整的日历窗格,并将用户选择存储在订单中 我已尝试使用commerce extr

我正在Drupal7中使用商业模块套件建立一个电子商店。通过该商店,每天都提供物流服务

签出过程的一部分是向用户显示一个日历,其中包含该服务的可用性。应该显示服务可用的日期,用户应该能够选择一天作为结帐过程的一部分,并转到下一个结帐屏幕

我想使用Fullcalendar脚本向用户显示每日可用性:

drupal中有一个相关插件:

我能够在我的网站上显示正常的完整日历页面。我真正感兴趣的部分是如何在结账过程中创建一个完整的日历窗格,并将用户选择存储在订单中

我已尝试使用commerce extra panes模块添加日历:

但是我没有成功。我想不出一种将fullcalendar块显示为窗格的方法

我已经阅读了Drupal commerce、fullcalendar模块和commerce extra panes模块的文档,但是我仍然不知道如何将fullcalendar显示为一个窗格。我还尝试创建一个自定义模块,但我不知道如何以编程方式输出fullcalendar


以前有人这样做过吗?有没有办法通过这些模块将此功能添加到签出过程中,或者我应该自己从头开始编写所有功能?

我坐下来再次查看了一下,并找到了实现此功能的方法

起初,我尝试使用fullcalendar Drupal插件,但事实证明,对于这个特定的功能来说,它太复杂了,而且还不清楚如何将fullcalendar插件的输出添加到窗格中。在这种情况下,额外的商业窗格也没有那么有用

以下是我所做的:

1) 我创建了一个模块,在其中设置了自定义窗格。以下是模块中设置“商业结帐”窗格的部分:

function custom_checkout_commerce_checkout_pane_info() {
  $panes = array(
    'custom_checkout_date' => array(
        'title'  => t('Select a date'),
        'base'   => 'custom_checkout_date_pane',
        'page'   => 'route_date',   // default checkout page
        'weight' => -5,
        'file'   => 'includes/pane_route_date.inc'  // Form functions
    )
  );

  return $panes;
}
以下是窗格本身包含的内容:

function custom_checkout_route_date_pane_checkout_form($form, &$form_state, $checkout_pane, $order) {
  $pane_form['route_calendar'] = array(
    '#type' => 'container',
    '#id'   => 'route_calendar'
  );

  $pane_form['selected_date'] = array(
    '#type' => 'hidden',
    '#id'   => 'selected_date'
  );

  return $pane_form;
}
隐藏字段“selected_date”存储日历结果,然后添加到订单中

然后,我将fullcalendar添加到Drupal libraries文件夹中,并使用将其添加到放置fullcalendar窗格的页面中

然后,我创建了一个AJAX回调页面,用于返回与客户在订单中给出的参数相匹配的可用日期

然后,通过覆盖Fullcalendar回调,我为每个事件添加了一个click处理程序。因此,当用户单击事件时,它会在隐藏字段中设置事件日期,并提交当前的commerce checkout窗格,然后转到下一个

因此,我终于找到了要做的事情,但这需要大量的修改,而且我做的很多部分没有很好的文档记录,或者没有任何好的例子可以遵循:(

不管怎样,这个问题现在已经解决了,我希望这能帮助那些试图解决Drupal商务中结帐部分相同(或类似)问题的人