Để hiển thị các mảnh bản đồ khác nhau cho mỗi bài viết, chúng tôi sử dụng bộ xây dựng nội dung CCK để thêm một trường thông tin address vào kiểu nội dung Blog. Thực hiện tạo một mục có dạng Blog entry sẽ xuất hiện thêm một trường như trong hình:
Hình 3.3.1.3.a. Giao diện tạo Block entry.
Giá trị này được lưu trong CSDL và có thể lấy ra thông qua node ID.
$nid = (arg(0)=='node' && is_numeric(arg(1)))?arg(1):0;
$sql = "SELECT field_addr_value FROM content_type_blog WHERE nid = $nid";
Khi lấy được giá trị của trường này, module sẽ truyền qua JavaScript và sử dụng dịch vụ Geocoder của Google Maps API để phân tích ra tọa độ và hiển thị ra khung bản đồ.
Kết luận
Trong khoá luận này, chúng tôi đã tìm hiểu và trình bày một số vấn đề lý thuyết liên quan đến việc xây dựng module cho hệ quản trị nội dung Drupal. Dựa vào đó, chúng tôi đã thiết kế thành công một module dùng để nhúng bản đồ từ Google Maps vào mỗi bài viết kết hợp với hai module miễn phí là CCK [5] và Example fields [6]. Tuy nhiên, đây mới chỉ là bước đầu trong kế hoạch xây dựng một hệ thống tích hợp dịch vụ hướng vị trí vào website một cách hoàn thiện, đầy đủ tính năng.
Sau khi hoàn thành khoá luận, chúng tôi có ý định tiếp tục nghiên cứu và phát triển module đã trình bày ở trên và thêm các tính năng nâng cao như kết hợp với cơ sở dữ liệu ảnh chụp để để hiển thị đường phố, phong cảnh hay sử dụng hình ảnh 3 chiều tạo ra không gian ảo cho từng địa điểm, địa danh...
Chúng tôi hy vọng khoá luận đã đúc kết được một lượng kiến thức đủ để phục vụ cho việc tìm hiểu về Drupal cũng như xây dựng module một cách dễ dàng.
Tài liệu tham khảo
[1] David Mercer. Building powerful and robust websites with Drupal 6. PACKT Publishing, 2008.
[2] John K. VanDyk và Matt Westgate. Pro Drupal Development. Apress, 2007.
[3] Matt Butcher. Learning Drupal 6 Module Development. PACKT Publishing, 2008.
[4] Scott Davis. Google Maps API v2 - Adding Where to your applications. The Pragmatic Bookshelf, 2006.
[5] Module CCK, Drupal Community, http://drupal.org/project/cck.
[6] Module Example, Karen Stevenson, http://www.lullabot.com/articles/creating- custom-cck-fields.
[7] Google Maps API Documentation, Google Inc,
Phụ lục A