Main menu

Subscribe to RSS - Drupal

Drupal

Lịch sử Drupal tóm lược

Submitted by mrsinguyen on Thu, 21/07/2011 - 13:56

Bài này được viết bởi Kristjan Jansen tại http://kika.trip.ee/node/491, thấy hay nên post lại.

Trước khi tìm hiểu những hook bắt buộc phải biết một Field type gồm những thành phần nào, theo kiến trúc của Field API thì một Field type gồm 3 thành phần chính:

  1. Đinh nghĩa thông tin cho Field - Phần định nghĩa Field này khai báo thông tin như: Khai báo thông tin cho Field, định nghĩa cấu trúc CSDL cho Field, kiểm tra giá trị hợp lệ, kiểm tra Field rổng hay không.
  2. Định nghĩa Formatter cho Field - Khai báo kiểu hiển thị của Field.
  3. Định nghĩa Widget cho Field - Khai báo phần nhập liệu của Field.

Vậy khi viết một Field type mới cần bắt buộc các hook sau đây:

1. Quá khứ (Drupal 6)

  • Các loại dữ liệu chính: Node, User, Comment, Taxonomy term (mỗi loại dữ liệu này đều có key (hay còn gọi là property - thuộc tính) và data).
  • Dữ liệu quản lý theo cách khác nhau, ví dụ Node có cách tương tác của node (hook_nodeapi), User có cách tương tác của user (hook_user).
  • Truy xuất theo cách khác nhau.
  • Lưu trữ theo cách khác nhau.
  • Dẫn đến truy xuất/mở rộng/chia sẽ khó khăn.
  • Hầu như dữ liệu mở rộng đều phụ thuộc vào node (vậy có loại dữ liệu mới phải phụ thuộc rất nhiều vào workflow cũng như cách tương tác của node).

Cài đặt API Documentation System

1. Môi trường cài đặt

  • Web server: Apache, IIS,...
  • Cơ sở dữ liệu: MySQL, PostgreSQL.
  • Scripting Language: PHP

Môi trường cài thử

  • Apache/2.2.15
  • MySQL 5.0.51a
  • PHP 5.2.13

2. Phiên bản Drupal và module hỗ trợ

Cài Drupal xong cài tiếp 2 module trên

3. Download source

Tags: 

Ý nghĩa số N của hook_update_N trong Drupal

Submitted by mrsinguyen on Tue, 25/05/2010 - 10:02

Thông thường sau mỗi lần nâng cấp module mới trong Drupal, thì cơ sở dữ liệu sẽ bị thay đổi do nhu cầu thiết kế. Nên Drupal xây dựng một hook để hổ trợ việc update cơ sở dữ liệu khi có nhu cầu nâng cấp module. Hook đó có tên là hook_update_N.

Hook này được gọi mỗi khi chạy file update.php ở thư mục gốc của site, ví dụ http://www.example.com/update.php. Trong hook này có kí tự N đại diện cho chữ số. Chữ số này có cấu trúc XYZZ gồm 3 phần sau: X, Y và ZZ

  • Chữ số đầu tiên đại diện cho số phiên bản của core Drupal, ví dụ Drupal 7 thì số đó là 7, Drupal 6 là số đó là 6.

Danh sách các video tại DrupalCon 2010

Submitted by mrsinguyen on Sat, 01/05/2010 - 22:26

Drupal Coding standards

Submitted by mrsinguyen on Tue, 06/04/2010 - 21:19

Chú ý:

  • Chuẩn code này được áp dụng cho việc phát triển core và các module của Drupal và nó dựa trên chuẩn code của Pear (http://pear.php.net/manual/en/standards.php).
  • Và thêm nữa là module coder sẽ cung cấp cho bạn công cụ kiểm tra chuẩn viết code cho Drupal có phù hợp hay không.
  • Chuẩn viết code này được áp dụng cho việc áp dụng viết module cho Drupal. Ngoài ra nếu sử dụng thêm thư viện hoặc các class bên ngoài thì tuân thủ theo chuẩn của Pear.

Mục lục:

  1. Indenting and Whitespace (thụt đầu dòng và khoảng trắng)

Trong file bootstrap.inc

<?php
function _drupal_bootstrap($phase) {
  global
$conf;

  switch (
$phase) {

    case
DRUPAL_BOOTSTRAP_CONFIGURATION:
     
drupal_unset_globals();
     
// Start a page timer:
     
timer_start('page');
     
// Initialize the configuration
     
conf_init();
      break;
    case
DRUPAL_BOOTSTRAP_EARLY_PAGE_CACHE:
     
// Allow specifying special cache handlers in settings.php, like
      // using memcached or files for storing cache information.
     
require_once variable_get('cache_inc', './includes/cache.inc');
     
// If the page_cache_fastpath is set to TRUE in settings.php and
      // page_cache_fastpath (implemented in the special implementation of
      // cache.inc) printed the page and indicated this with a returned TRUE
      // then we are done.
     
if (variable_get('page_cache_fastpath', FALSE) && page_cache_fastpath()) {
        exit;
      }
      break;
?>

Đa ngôn ngữ trong Drupal

Submitted by mrsinguyen on Sat, 03/04/2010 - 08:59

Pages