Fullcalendar作为Drupal商务签出的一部分
我正在Drupal7中使用商业模块套件建立一个电子商店。通过该商店,每天都提供物流服务 签出过程的一部分是向用户显示一个日历,其中包含该服务的可用性。应该显示服务可用的日期,用户应该能够选择一天作为结帐过程的一部分,并转到下一个结帐屏幕 我想使用Fullcalendar脚本向用户显示每日可用性: drupal中有一个相关插件: 我能够在我的网站上显示正常的完整日历页面。我真正感兴趣的部分是如何在结账过程中创建一个完整的日历窗格,并将用户选择存储在订单中 我已尝试使用commerce extra panes模块添加日历: 但是我没有成功。我想不出一种将fullcalendar块显示为窗格的方法 我已经阅读了Drupal commerce、fullcalendar模块和commerce extra panes模块的文档,但是我仍然不知道如何将fullcalendar显示为一个窗格。我还尝试创建一个自定义模块,但我不知道如何以编程方式输出fullcalendarFullcalendar作为Drupal商务签出的一部分,drupal,drupal-7,drupal-commerce,Drupal,Drupal 7,Drupal Commerce,我正在Drupal7中使用商业模块套件建立一个电子商店。通过该商店,每天都提供物流服务 签出过程的一部分是向用户显示一个日历,其中包含该服务的可用性。应该显示服务可用的日期,用户应该能够选择一天作为结帐过程的一部分,并转到下一个结帐屏幕 我想使用Fullcalendar脚本向用户显示每日可用性: drupal中有一个相关插件: 我能够在我的网站上显示正常的完整日历页面。我真正感兴趣的部分是如何在结账过程中创建一个完整的日历窗格,并将用户选择存储在订单中 我已尝试使用commerce extr
以前有人这样做过吗?有没有办法通过这些模块将此功能添加到签出过程中,或者我应该自己从头开始编写所有功能?我坐下来再次查看了一下,并找到了实现此功能的方法 起初,我尝试使用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商务中结帐部分相同(或类似)问题的人