2013-05-29 52 views
6

Tôi đang thiết lập một cửa hàng điện tử trong Drupal 7 bằng cách sử dụng bộ mô-đun Thương mại. Thông qua các cửa hàng, một dịch vụ hậu cần được cung cấp trên một cơ sở hàng ngày.Fullcalendar là một phần của thanh toán thương mại Drupal

Một phần của quy trình thanh toán là hiển thị cho người dùng lịch có tính khả dụng cho dịch vụ. Những ngày mà dịch vụ có sẵn sẽ được hiển thị và người dùng sẽ có thể chọn một ngày như một phần của quy trình thanh toán và chuyển sang màn hình thanh toán tiếp theo.

Tôi muốn sử dụng kịch bản Fullcalendar để hiển thị sự sẵn có hàng ngày cho người sử dụng:

http://arshaw.com/fullcalendar/

Có một plugin có liên quan trong drupal:

https://drupal.org/project/fullcalendar

tôi tôi có thể hiển thị trang fullcalendar thông thường trên trang web của mình. Một phần mà tôi thực sự bị mắc kẹt là làm thế nào để tạo ra một ngăn fullcalendar như là một phần của quá trình kiểm tra, và lưu trữ lựa chọn người dùng theo thứ tự.

Tôi đã thử các thương mại panes thêm module để thêm lịch:

https://drupal.org/project/commerce_extra_panes

Tuy nhiên tôi đã không thành công. Tôi không thể tìm ra cách để hiển thị khối fullcalendar dưới dạng ngăn.

Tôi đã đọc tài liệu về thương mại Drupal, mô-đun đầy đủ và mô-đun thương mại bổ sung, nhưng tôi vẫn không thể tìm ra cách hiển thị fullcalendar dưới dạng ngăn. Tôi cũng đã cố gắng tạo ra một mô-đun tùy chỉnh, nhưng tôi không thể tìm ra cách để xuất đầy đủ chương trình.

Có ai đã làm điều này trước đây không? Có cách nào để thêm chức năng này vào quy trình kiểm tra thông qua các mô-đun này hay tôi có nên tự viết tất cả từ đầu không?

Trả lời

4

Tôi ngồi xuống và xem lại điều này một lần nữa và tìm ra cách để thực hiện điều này. Đầu tiên, tôi đã thử sử dụng plugin Drupal fullcalendar, nhưng nó đã được chứng minh là phức tạp không cần thiết cho chức năng đặc biệt này, cộng với việc không thêm rõ ràng đầu ra của plugin fullcalendar vào ngăn như thế nào là không cần thiết. Các tầng phụ thương mại cũng không hữu ích trong trường hợp này.

Vì vậy, đây là những gì tôi đã làm:

1) Tôi đã tạo ra một module, nơi tôi thiết lập một cửa sổ tùy chỉnh. Dưới đây là một phần của mô-đun thiết lập khung thương mại thanh toán:

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; 
} 

Đây là những gì được bao gồm trong cửa sổ riêng của mình:

Các ẩn trường "selected_date" lưu trữ kết quả của lịch, sau đó được thêm vào thứ tự.

Sau đó tôi đã thêm toàn bộ thư viện vào thư mục thư viện Drupal và thêm nó vào trang nơi ngăn đầy đủ được đặt bằng cách sử dụng drupal_add_js.

Sau đó tôi đã tạo một trang gọi lại AJAX, được sử dụng để trả lại các ngày có sẵn phù hợp với các tham số được đưa ra theo thứ tự của khách hàng.

Sau đó, tôi đã thêm trình xử lý nhấp chuột cho từng sự kiện, bằng cách ghi đè cuộc gọi lại Fullcalendar eventClick. Vì vậy, khi người dùng nhấp vào một sự kiện, nó đặt ngày sự kiện trong trường ẩn và gửi ngăn kiểm tra thương mại hiện tại, chuyển sang bước tiếp theo. Vì vậy, cuối cùng tôi đã tìm ra những gì cần làm, nhưng nó đòi hỏi rất nhiều xung quanh, và rất nhiều các phần tôi đã không được ghi nhận rất tốt, hoặc không có bất kỳ ví dụ tốt để làm theo: (

Dù sao thì, vấn đề trong câu hỏi này hiện đã được giải quyết, tôi hy vọng điều này sẽ giúp bất kỳ ai đang cố gắng giải quyết cùng một vấn đề (hoặc tương tự) với phần thanh toán của thương mại Drupal