1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tìm hiểu và xây dựng ứng dụng với drupal

55 282 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 55
Dung lượng 608,5 KB

Nội dung

Tìm hiểu và xây dựng ứng dụng với drupal

Đồ án sở – Tìm hiểu xây dựng ứng dụng với Drupal Lời cảm ơn Để hòan thành đồ án sở này, thân xin gửi lời tri ơn sâu sắc đến thầy Hồng, người tận tình hướng dẫn tạo hội cho thân tìm hiểu xây dựng ứng dụng với drupal Gửi lời cảm ơn người bạn, anh Hồng giúp đỡ tài liệu khúc mắc drupal q trình làm TP.HCM tháng năm 2010 GVHD: Th.S Văn Thiên Hoàng Trang Đồ án sở – Tìm hiểu xây dựng ứng dụng với Drupal Phần I : TÌM HIỂU DRUPAL Lòch sử đời 1.1 Giới thiệu? - Drupal khung sườn phát triển phần mềm hướng module, hệ thống quản trò nội dung miễn phí - Drupal cho phép người quản trò hệ thống tạo tổ chức liệu, tùy chỉnh cách trình bày, tự động hóa tác vụ điều hành quản trò hệ thống - Drupal có cấu trúc lập trình tinh vi, dựa đó, hầu hết tác vụ phức tạp giải với đọan code - Drupal đựơc gọi “Khung sườn phát triển ứng dụng web’ kiến trúc thông minh uyển chuyển - Được chạy nhiều môi trường khác : Windows, Mac OS X, Linux, FreeBSD,OpenBSD môi trường hổ trợ máy phục vụ web Apache (Phiên 1.3+) IIS(phiên 5+) có hổ trợ ngôn ngữ PHP (4.4.4+) - Drupal kết nối với sở liệu MySQL postgreSQL để lưu nội dung thiết lập 1.2 Lịch sử đời - Đầu tiên, Dries Buytaert, lập trình viên mã nguồn mở, tạo theo dạng hệ thống bảng tin Đến năm 2001, Drupal trở thành cơng trình nguồn mở Drupal, tiếng Anh, chuyển ngữ từ từ "druppel" tiếng Hà Lan "giọt nước" - Từ tháng bảy 2007 đến tháng sáu năm 2008, mã nguồn Drupal tải từ website drupal.org 1,4 triệu lần Hiện nay, có cộng đồng rộng lớn giúp đỡ phát triển Drupal - Tháng giêng năm 2009, Drupal 6.9, phiên nhất, cơng bố - Hiện có phiên 7.x 1.3.Tính - Hạt nhân Drupal node với cấu trúc đơn giản Để phát triển kiểu nội dung phức tạp, node liên kết với nội dung có kiểu khác Node quản lí nhờ hệ thống taxonomy cực mạnh, đặc trưng Drupal Người dùng Gmail, Flickr, Wordpress, Yahoo! 360° hẳn quen với khái niệm “tag” (đơi gọi label), khái niệm đại có Drupal ! Khái niệm tag gọi “term” Drupal, tổ chức có cấu trúc (chia nhiều cấp) Ngồi ra, taxonomy có khái niệm “vocabulary” cho phép chia term thành lớp khơng giao Thí dụ node gắn term thuộc vocabulary "Tháng" (gồm 12 term) term thuộc vocabulary "Chủ đề" GVHD: Th.S Văn Thiên Hoàng Trang Đồ án sở – Tìm hiểu xây dựng ứng dụng với Drupal - Drupal xây dựng để giúp đỡ cho nhà phát triển Hệ thống hook đa dạng giúp người lập trình can thiệp vào hoạt động mà khơng phải sửa dòng lệnh nhân hay phần khác - điều trái ngược với Joomla! - Ngồi ra, cơng nghệ Drupal thường Joomla!, thí dụ thiết kế Drupal khơng dùng bảng (table) Joomla! bảng xuất nơi (những viên gạch Joomla! xây dựng chuẩn Web chưa đời) - Triết lí “khơng tương thích ngược” Drupal làm cho module phải viết riêng cho phiên 4.x, 5.x 6.x (tại thời điểm, Drupal hỗ trợ phiên nhất) Điều có mặt trái: nhiều người e ngại phải nâng cấp liên tục dùng Drupal - Ở Việt Nam Drupal phổ biến tương đối khó sử dụng Cộng đồng Drupal Việt Nam manh nha bước sau Drupal vượt qua Joomla! thi CMS nguồn mở tốt Packt tổ chức 2.Cài đặt Bứơc 1: Tạo Sql Database Đường dẫn phpmyadmin thường http://localhost/phpmyadmin/ Trong Creat new database, ta nhập tên SQL database bạn muốn khởi tạo Ở tơi đặt tên drupalblog Bước 2: GVHD: Th.S Văn Thiên Hoàng Trang Đồ án sở – Tìm hiểu xây dựng ứng dụng với Drupal • • Copy file default.settings.php file có tên settings.php File ghi lại thơng số thiết lập q trình cài đặt Tiếp theo truy cập vào đường dẫn http://localhost/drupalblog để tiến hành bước cấu hình cho website Drupal Màn hình giao diện có dạng sau: Click chọn Install Drupal In English để sang bước GVHD: Th.S Văn Thiên Hoàng Trang Đồ án sở – Tìm hiểu xây dựng ứng dụng với Drupal • Màn hình cài đặt có dạng sau: Với Database name tên SQL database Bước 3: Tiếp theo ta chờ Script Drupal ghi liệu mặc định lên Database(mất chừng vài giây) Sau phần cài đặ tự động đến với phần cấu hình thơng tin ban đầu Site GVHD: Th.S Văn Thiên Hoàng Trang Đồ án sở – Tìm hiểu xây dựng ứng dụng với Drupal Ở phần này, cần ý đến phần thơng tin Username tên tài khoản quản trị Và phần password mật tài khoản quản trị Các phần thơng tin khác điền tùy ý, GVHD: Th.S Văn Thiên Hoàng Trang Đồ án sở – Tìm hiểu xây dựng ứng dụng với Drupal thay đổi dễ dàng phần quản trị Drupal sau Click vào nút Save and Continue để đến bước Nếu q trính cài đặt thành cơng, Drupal lên dòng thơng báo: Drupal installation complete Congratulations, Drupal has been successfully installed 3.Giới thiệu số module hệ thống 3.1 Aggreagator - Aggreagator có khả lấy tin RSS từ website khác, lưu lại CSDL, trình bày giao diện người dùng Các nguồn tin RSS phân mục theo 'Category' 3.2 Block - Khi module kích họat Người sử dụng website tạo blog entry cho mình.Ví dụ: http://your-website.com/?q=blog/1 ( Với mã số thành viên) - Mỗi Block khối nội dung bao gồm thuộc tính: • • • • • • Tên Tiêu đề Nội dung (Có thể sử dụng uyển chuyển với HTML,PHP code ) Vò trí Độ nặng Các dạng trình bày 3.3 Blog API - Khi người dùng website dùng công cụ để tạo blog entry(ví dụ Google Docs) Blog API s ẽ đứng đảm nhận vai trò trung gian, nhận liệu, lưu vào CSDL 3.4 Book - Khi người dùng website dùng công cụ để tạo blog entry(ví dụ Google Docs) Blog API s ẽ đứng đảm nhận vai trò trung gian, nhận liệu, lưu vào CSDL - Với module này, người dùng tạo trang nội dung đánh mục rõ ràng.Module thích hợp để làm tài liệu hướng dẫn GVHD: Th.S Văn Thiên Hoàng Trang Đồ án sở – Tìm hiểu xây dựng ứng dụng với Drupal 3.5 Contact - Người dùng dùng chức module để gửi mail cho quản lý hay thành viên website 3.6 Locale - Module giúp người dùng cài đặt nhiều ngôn ngữ khác ngòai tiếng anh mà drupal cung cấp - Cách cài đặt a Tải file ngôn ngữ mà cần “*.po” b Bật module Locale lên c Vào configuration -> Localzation, vào tab Import import ngôn ngữ cần 3.7 Drupal - Module cung cấp tính đăng nhập liên website Thành viên website đăng nhập vào website sử dụng module drupal 3.8 User - Module xử lý chức liên quan đền người dùng đăng ký, đăng nhập … 3.9 Forum - Tạo diễn đàn thảo luận Ngòai drupal có nhiều module chia trang chủ drupal.org, tùy theo nhu cầu mục đích ta sử dụng 3.10 - Node Các nội dung mà người lưu trữ đa số lưu dạng node (blog entry, book page, forum topic, page content, article, ) Mỗi node có thuộc tính mà bạn nên nắm: Kiểu nội dung (content type): thuộc tính nhằm phân biệt node 'forum topic', node 'book page', Quyền hạn: Ứng với kiểu nội dung, webmaster giới 'quyền tạo ra', 'quyền chỉnh sửa' cho số nhóm người dùng định Tác giả: Mỗi node có tác giả Thời điểm tạo: thời điểm mà node tạo Thởi điểm chỉnh sửa cuối Tiêu đề: Tiêu đề node Thí dụ, tiêu đề forum node tiêu đề 'luồng thảo luận' Nội dung Workflow: Mỗi node có dòng chảy Dựa vào dòng chảy node, hệ thống biết node xuất hay chưa, xuất có GVHD: Th.S Văn Thiên Hoàng Trang Đồ án sở – Tìm hiểu xây dựng ứng dụng với Drupal trình bày trang hay khơng, có cố định vị trí node khác hay khơng, 4.So sánh Joomla drupal Joomla Drupal Tiền thân Joomla! Mambo, sản phẩm Drupal xuất phát từ diễn đàn viết Dries Buytaert (hiện Nghiên cứu sinh Bỉ), chuyển thành sản phẩm nguồn mở năm 2001 Cho đến nay, Buytaert lãnh đạo việc phát triển dự án Miro Năm 2002, song song với thương mại hóa, Miro cho phát hành Mambo Open Source (gọi tắt MOS, chữ thường thấy mã nguồn Mambo Joomla! tận năm 2008 này) Đến năm 2005, Mambo bước vào giai đoạn chín mùi giành nhiều giải thưởng lớn "Giải pháp nguồn mở tốt nhất" "Giải pháp hồn hảo cho cơng nghiệp" LinuxWorld Tuy nhiên, đến cuối tháng 8/2005, bất đồng với Miro, tất thành viên nhóm phát triển Mambo đồng loạt rời cơng ty, lập nhóm “Open Source Matters” Họ xây dựng thương hiệu “Joomla!” dựa Mambo phát hành lại vào gần tháng sau Joomla! 1.0 đời Joomla! thực dễ dùng Giao diện quản trị (back end) bắt mắt, việc cài đặt phần mở rộng đơn giản tải lên chạy chương trình cài đặt Theo triết lí Joomla!, đơn vị liệu content item (ở 1.5 đổi thành article) chứa category, thân category chứa section Như liệu Joomla! tổ chức thành cấp Cách tổ chức logic khơng gây rắc rối cho người dùng GVHD: Th.S Văn Thiên Hoàng Hạt nhân Drupal node với cấu trúc đơn giản Để phát triển kiểu nội dung phức tạp, node liên kết với nội dung có kiểu khác Node quản lí nhờ hệ thống taxonomy cực mạnh, đặc trưng Drupal Người dùng Gmail, Flickr, Wordpress, Yahoo! 360° hẳn quen với khái niệm “tag” (đơi gọi label), khái niệm đại có Drupal ! Khái niệm tag gọi “term” Drupal, tổ chức có cấu trúc (chia nhiều cấp) Ngồi ra, taxonomy có khái niệm “vocabulary” cho phép chia term thành lớp khơng giao Thí dụ node gắn term thuộc vocabulary "Tháng" (gồm 12 term) term thuộc vocabulary "Chủ đề" Trang Đồ án sở – Tìm hiểu xây dựng ứng dụng với Drupal Joomla! phổ biến Việt Nam tính dễ dùng Ngồi ra, Joomla! đáp ứng u cầu quan trọng để xây dựng nhanh website: có nhiều template (giao diện) có sẵn, miễn phí lẫn thương mại, nhiều template có chất lượng tốt Drupal xây dựng để giúp đỡ cho nhà phát triển Hệ thống hook đa dạng giúp người lập trình can thiệp vào hoạt động mà khơng phải sửa dòng lệnh nhân hay phần khác - điều trái ngược với Joomla! Ngồi ra, cơng nghệ Drupal thường Joomla!, thí dụ thiết kế Drupal khơng dùng bảng (table) Joomla! bảng xuất nơi (những viên gạch Joomla! xây dựng chuẩn Web chưa đời) Joomla! khơng có tảng để hỗ trợ kiểu liệu phức tạp Một nhược điểm khác Joomla! thiết kế dành cho người dùng cuối, nên khơng cung cấp nhiều phương tiện can thiệp vào hoạt động bên Triết lí “khơng tương thích ngược” Drupal làm cho module phải viết riêng cho phiên 4.x, 5.x 6.x (tại thời điểm, Drupal hỗ trợ phiên nhất) Điều có mặt trái: nhiều người e ngại phải nâng cấp liên tục dùng Drupal Ở Việt Nam Drupal phổ biến tương đối khó sử dụng Cộng đồng Drupal Việt Nam manh nha bước sau Drupal vượt qua Joomla! thi CMS nguồn mở tốt Packt tổ chức GVHD: Th.S Văn Thiên Hoàng Trang 10 Đồ án sở – Tìm hiểu xây dựng ứng dụng với Drupal return $profile; } } /** * Retrieve a pipe delimited string of autocomplete suggestions for existing banner items */ function qcbanner_autocomplete () { require dirname ( FILE ) '/inc/autocomplete.inc'; } /** * Banner clicking handler * * @param int $bid * Mã số banner item */ function qcbanner_click ($bid = '') { $bid = preg_replace ('|,.+$|', '', base64_decode ($bid)); if (!is_numeric ($bid)) { return drupal_not_found(); } GVHD: Th.S Văn Thiên Hoàng Trang 41 Đồ án sở – Tìm hiểu xây dựng ứng dụng với Drupal // Cập nhật số lần banner item click db_query( "UPDATE {qcbanner_item} SET click = click + WHERE bid = %d", $bid ); // Lưu chi tiết thơng tin thống kê db_query ( "INSERT INTO {qcbanner_click} (bid, hostname, timestamp) VALUES (%d, '%s', %d)", $bid, $_SERVER['REMOTE_ADDR'], time() ); // Tìm path tương ứng $data = unserialize (db_result (db_query ( "SELECT data FROM {qcbanner_item} WHERE bid = %d", $bid ))); if (!empty ($data['link'])) { drupal_goto ($data['link']); } } GVHD: Th.S Văn Thiên Hoàng Trang 42 Đồ án sở – Tìm hiểu xây dựng ứng dụng với Drupal /** * Implement hook_form_alter */ function qcbanner_form_alter ($form_id, &$form) { if ($form_id == 'block_admin_configure') { if (arg (4) == 'qcbanner' && is_numeric (arg (5))) { require dirname ( FILE ) '/inc/hook/form_alter/block_admin_configure.inc'; } } } function qcbanner_item_attributes () { require dirname ( FILE ) '/inc/item_attributes.inc'; return $attributes; } /** * Implementation of hook_forms * * Đăng ký biểu mẫu ứng dụng với hệ thống */ function qcbanner_forms () { $form_ids = array ( GVHD: Th.S Văn Thiên Hoàng Trang 43 Đồ án sở – Tìm hiểu xây dựng ứng dụng với Drupal 'block_add', 'banner_list', 'profile_list', 'profile_add', 'profile_edit', 'profile_delete', 'item_add', 'item_edit', 'item_list', 'report' ); foreach ($form_ids as $form_id) { $forms['qcbanner_' $form_id] = array ( 'callback' => '_qcbanner_forms', 'callback arguments' => array ($form_id) ); } return $forms; } /** * Tạo cấu trúc biểu mẫu cho ứng dụng */ function _qcbanner_forms ($form_id = '') { $form = array (); switch ($form_id) { case 'block_add': GVHD: Th.S Văn Thiên Hoàng Trang 44 Đồ án sở – Tìm hiểu xây dựng ứng dụng với Drupal case 'banner_list': case 'item_add': case 'item_edit': case 'item_list': case 'profile_list': case 'profile_add': case 'profile_edit': case 'profile_delete': case 'report': require dirname ( FILE ) '/inc/form/' $form_id '.inc'; if (is_file (dirname ( FILE ) '/inc/form/' $form_id '_validate.inc')) { $form['#validate'] = array ( '_qcbanner_forms_validate' => array () ); } if (is_file (dirname ( FILE ) '/inc/form/' $form_id '_submit.inc')) { $form['#submit'] = array ( '_qcbanner_forms_submit' => array () ); } break; GVHD: Th.S Văn Thiên Hoàng Trang 45 Đồ án sở – Tìm hiểu xây dựng ứng dụng với Drupal } return $form; } function _qcbanner_forms_validate ($form_id, $form_values) { $form_id = preg_replace ('|^qcbanner_|', '', $form_id); switch ($form_id) { case 'block_add': case 'item_add': case 'item_edit': case 'profile_add': case 'profile_edit': require dirname ( FILE ) '/inc/form/' $form_id '_validate.inc'; } } /** * Form submit handlers */ function _qcbanner_forms_submit ($form_id, $form_values) { $form_id = preg_replace ('|^qcbanner_|', '', $form_id); GVHD: Th.S Văn Thiên Hoàng Trang 46 Đồ án sở – Tìm hiểu xây dựng ứng dụng với Drupal switch ($form_id) { // Xử lý cho biểu mẫu cấu hình banner block case 'block_admin_configure': require dirname ( FILE ) '/inc/hook/form_alter/block_admin_configure_submit.inc'; break; case 'block_add': case 'item_add': case 'item_edit': case 'profile_list': case 'profile_add': case 'profile_edit': case 'profile_delete': require dirname ( FILE ) '/inc/form/' $form_id '_submit.inc'; } } /** * Theming functions * @{ */ /** * Trình bày image banner item GVHD: Th.S Văn Thiên Hoàng Trang 47 Đồ án sở – Tìm hiểu xây dựng ứng dụng với Drupal * @param * Kích thước tuỳ chỉnh Hệ thống cần tuỳ chọn này, thư viện xử lý ảnh khơng xử lý ảnh gif */ function theme_qcbanner_image ($item, $image_preset, $size = '') { // Tập tin lưu bên site (local file) if (!preg_match ('|http://|', $item->data['path'])) { $item->data['path'] = base_path () "files/imagecache/{$image_preset}/{$item->data[path]}"; } $attr = array (); $attr['src'] = $item->data['path']; $attr['class'] = 'qcbanner-item'; if (isset($info['size']) && !empty($info['size'])) { $attr['height'] = $height; $attr['width'] = $width; } $output = ''; // Trường hợp có liên kết if (!empty ($item->data['link'])) { $attr = array (); GVHD: Th.S Văn Thiên Hoàng Trang 48 Đồ án sở – Tìm hiểu xây dựng ứng dụng với Drupal $attr['class'] = 'qcbanner-link'; $attr['href'] = url('banner/' base64_encode ($item->bid ',' time())); $attr['target'] = '_blank'; // kích thước tuỳ chỉnh if (!empty ($size)) { list ($height, $width) = explode (',', $size); $attr['height'] = is_numeric ($height) ? $height 'px' : $height; $attr['width'] = is_numeric ($height) ? $width 'px' : $width; } $output = '' $output ''; } return $output; } /** * Trình bày flash player dựa thiết lập * @param $item * - object: Trường hợp trình bày player đơn (chỉ chơi file) * - int: Player chơi playlist */ GVHD: Th.S Văn Thiên Hoàng Trang 49 Đồ án sở – Tìm hiểu xây dựng ứng dụng với Drupal function theme_qcbanner_player ($item, $profile_id = 1, $type) { // Tải lên profile tương ứng $profile = qcbanner_profile_get($profile_id); // Thêm flv path vào thơng số hiển thị if (is_numeric($item)) { $profile->data['file'] = url('qcbanner/playlist/' $item, null, null, true); $tmp = $item; $item = new stdClass(); $item->bid = $tmp; } else { if (preg_match ('|^http://|', $item->data['path'])) { $profile->data['file'] = $item->data['path']; } else { $profile->data['file'] = check_url(base_path () $item->data['path']); } } // Đường dẫn đễn flv/image player if ($type == 'flv') { GVHD: Th.S Văn Thiên Hoàng Trang 50 Đồ án sở – Tìm hiểu xây dựng ứng dụng với Drupal $player_path = base_path () drupal_get_path ('module', 'qcbanner') "/mediaplayer/flvplayer.swf"; } elseif ($type == 'image') { $player_path = base_path () drupal_get_path ('module', 'qcbanner') "/mediaplayer/imagerotator.swf"; } // Xây dựng chuỗi HTML xuất $output = "\n"; $output = ""; return $output; } /** * Xuất banner item banner block dạng RSS */ function qcbanner_playlist_rss ($delta = 0) { if (!is_numeric ($delta) || !$info = qcbanner_block_get_info($delta)) { return drupal_not_found(); } $profile = qcbanner_profile_get($info['pid']); if (is_numeric ($info['presetid'])) { $image_preset = _imagecache_preset_load ($info['presetid']); } foreach ($info['items'] as $item) { GVHD: Th.S Văn Thiên Hoàng Trang 52 Đồ án sở – Tìm hiểu xây dựng ứng dụng với Drupal // chỉnh sửa cho hình ảnh phù hợp với image preset thiết lập if (is_numeric ($info['presetid'])) { // Tập tin lưu bên site (local file) if (!preg_match ('|http://|', $item->data['path'])) { $item->data['path'] = "files/imagecache/{$image_preset}/{$item->data[path]}"; } } $attributes = array (); $attributes[] = "{$item->title}"; $attributes[] = "".variable_get('site_name', '').""; if (preg_match ('|^http:|', $item->data['path'])) { $attributes[] = "" $item->data['path'] ""; } else { $attributes[] = "" base_path () $item->data['path'] ""; } if (!empty ($item->data['image']) || !empty($profile->data['image'])) { $attributes[] = "" base_path () (empty($item->data['image']) ? $profile>data['image'] : $item->data['image']).""; } // Image link if ($item->data['link']) { GVHD: Th.S Văn Thiên Hoàng Trang 53 Đồ án sở – Tìm hiểu xây dựng ứng dụng với Drupal $attributes[] = "" url('banner/' base64_encode ($item->bid ',' time())) ""; } $items = "" implode('', $attributes) ""; } $output = [...]... – Tìm hiểu và xây dựng ứng dụng với Drupal Hình 3: Thay đổi thông tin cá nhân GVHD: Th.S Văn Thiên Hoàng Trang 13 Đồ án cơ sở – Tìm hiểu và xây dựng ứng dụng với Drupal  Xem lại thông tin và hòan tất đơn hàng Hình 4: Xem lại và hoàn tất đơn hàng b) Đối với người quản trị  Người quản trị có thể quản lý sp  Quản lý user GVHD: Th.S Văn Thiên Hoàng Trang 14 Đồ án cơ sở – Tìm hiểu và xây dựng ứng dụng. .. sở – Tìm hiểu và xây dựng ứng dụng với Drupal GVHD: Th.S Văn Thiên Hoàng Trang 11 Đồ án cơ sở – Tìm hiểu và xây dựng ứng dụng với Drupal Phần II: ỨNG DỤNG 1 Tính năng chính website u cầu: a) Đối với Khách hàng  Khách hàng có thể xem và tìm kiếm các sp Xem sản phẩm, Nhấn “Add to Cart” để mua sản phẩm.Sau đó vẫn có thể chỉnh sửa và cập nhật lại sản phẩm Hình 1: Sản phẩm demo trên website  Mua và thanh... hiểu và xây dựng ứng dụng với Drupal Hình 5: Quản lý user GVHD: Th.S Văn Thiên Hoàng Trang 15 Đồ án cơ sở – Tìm hiểu và xây dựng ứng dụng với Drupal  Quản lý và xử lý đơn hàng Hình 6: Quản lý và xử lý đơn hàng  Xây dựng module cộng thêm tùy chỉnh baner  Quản lý các lọai hình thức thanh tốn GVHD: Th.S Văn Thiên Hoàng Trang 16 Đồ án cơ sở – Tìm hiểu và xây dựng ứng dụng với Drupal GVHD: Th.S Văn Thiên... Trang 17 Đồ án cơ sở – Tìm hiểu và xây dựng ứng dụng với Drupal 2.Usecase Diagram 2.1 Usecase Diagram: cho customer 2.2 Usecase Diagram: cho manager GVHD: Th.S Văn Thiên Hoàng Trang 18 Đồ án cơ sở – Tìm hiểu và xây dựng ứng dụng với Drupal 3 Giới thiệu các module tiêu biểu trong website 3.1 CCK - CCK giúp kiến tạo ra các nội dung khác nhau mà khơng phải code Và ta thấy trong Drupal các CCK có rất nhiều... Thiên Hoàng Trang 22 Đồ án cơ sở – Tìm hiểu và xây dựng ứng dụng với Drupal function my_module_hello() { return t('Hello World!'); } 5 .Xây dựng module + thêm cho website - Xây dựng module đảm bảo các chức năng sau: Unload image, Flasg,video banners - Module hổ trợ cho việc đặt các banner quảng cáo, trình chiếu flash, video quảng bá doanh nghiệp - Module xây dựng với version 5.x-4.x 5.1/ qcbanner.Info... nhiều tập tin khác nhau, nhưng phải có ít nhất một tập GVHD: Th.S Văn Thiên Hoàng Trang 20 Đồ án cơ sở – Tìm hiểu và xây dựng ứng dụng với Drupal tin tên_module.info và một tập tin tên_module.module, tên này khơng được trùng với các module đã tồn tại trong hệ thống - MyModule.info //Khai báo với Drupal một số thơng tin cơ bản về MyModule - MyModule.module //Cài đặt cho Module Ngồi ra còn có thể có thêm... sở – Tìm hiểu và xây dựng ứng dụng với Drupal while ($v = db_fetch_object ($q)) { $blocks[$v->delta] = array ( 'info' => '[BANNER] '.$v->title ); } return $blocks; break; case 'view': // Hiển thị player thơng qua đối tượng được định nghĩa trong swfobject.js drupal_ add_js (drupal_ get_path ('module', 'qcbanner') '/mediaplayer/swfobject.js'); // Thêm một số định dạng chung cho các qcbanner block drupal_ add_css... nhỏ hơn và trên mỗi phần đó chứa các block nội dung 4.Cách xây dựng 1 module Module trong Drupal được xây dựng theo hướng modular và extensbile Nghĩa là các người lập trình sẽ phát triển mà khơng thay đổi bộ nhân drupal Chúng ta sẽ tương tác với nó bằng cách mở rộng thêm thơng qua xử lý các Events do nhân Drupal phát ra (HOOK) 4.1 Thư mục đặt Module Người phát triển có thể đặt Module của mình vào một... MyModule_View và MyModule_Manage */ function MyModule_perm() { return array( 'MyModule_View','MyModule_Manage' GVHD: Th.S Văn Thiên Hoàng Trang 21 Đồ án cơ sở – Tìm hiểu và xây dựng ứng dụng với Drupal ); } 4.5 Định nghĩa các thao tác - Mỗi Module phải xử lý được các sự kiện hoặc định nghĩa các sự kiện của riêng nó - Mỗi thao tác (Sự kiện) cần được phân quyền rỏ ràng - Việc phân quyền phụ thuộc vào người... dạng chung cho các qcbanner block drupal_ add_css (drupal_ get_path ('module', 'qcbanner') '/css/qcbanner.css'); $output = qcbanner_block_view ($delta); if (!empty ($output)) { return array ( 'subject' => $block->title, 'content' => $output ); } } GVHD: Th.S Văn Thiên Hoàng Trang 35 Đồ án cơ sở – Tìm hiểu và xây dựng ứng dụng với Drupal } /** * Xử lý và trả về nội dung của banner block * @param $delta

Ngày đăng: 30/05/2016, 17:19

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w