Cách suy nghĩ khi làm 1 website = Drupal

Events happening in the community are now at Drupal community events on www.drupal.org.
phuong.phuong's picture

Phát triển site = Drupal, khi nào thì nên/phải viết node module, khi nào viết module bình thường (ko phải node module) ?

Ví dụ site có chức năng như sau:

  • Show hàng hóa theo category
  • Trang contact
  • Trang tuyển dụng
  • Trang tin tức

Cách nghĩ theo Drupal sẽ là:

  • Category đã support sẵn bởi Vocabolary & Term
  • Trang tuyển dụng và tin tức có thể dùng lại kiểu node story có sẵn
  • Viết node module products, tạo ra kiểu node products có tên, giá, hình ảnh.
  • Trang contact viết module bình thường có form để submit (ko phải node module)

Products nên viết node module vì nó là đối tượng cần được create/read/update/delete
Contact chỉ nên là module bình thường với form submit, ko cần create/read/update/delete

Nghĩ theo hướng như vậy đúng ko mấy bác? Ý muốn nhấn mạnh ở đây là cách nghĩ liên hệ giữa các chức năng cần có của 1 site với những thứ có trong Drupal để sau đó implement các chức năng đó... Nếu ko có hướng rõ ràng thì khó bắt tay vào code vì ko biết code cái gì, các bạn có thấy như vậy ko?

Comments

Có CCK rồi viết node

jcisio's picture

Có CCK rồi viết node module nữa chỉ bạn :-) Trong Drupal 6 thì CCK đang ở dev, Views ở alpha-4 nhưng dùng ổn !

--
www.thongtincongnghe.com
Trang tin điện tử về CNTT, Viễn thông, Điện tử...

Mới tìm hiểu Drupal

thehong's picture

Mới tìm hiểu Drupal thì cứ đi sử dụng các module nổi tiếng, học cách viết mã có khả năng tái sử dụng cao, rồi tự nghĩ ra các module cao siêu như: views, cck, panels, services, ecommerce, tokens, jstools, ... Phát triển một site bình thường, biết kết hợp các module là chính, có module viết thêm, thường chỉ là tuỳ chỉnh chút đỉnh.

Thế Hồng

Liệu CCK có đáp ứng

phuong.phuong's picture

Liệu CCK có đáp ứng đúng hết những gì mình cần ko ?
Khi mình dùng CCK để tạo field upload image, nó tạo 1 field file kèm theo 1 nút Upload (nằm ngay sau field browser file), trong khi mình ko cần nút đó. Nút submit cho cả form là được rồi. Có cách nào tùy chỉnh mấy chuyện như vậy ko ?

Có thể tự viết một

thehong's picture

Có thể tự viết một CCK module.

Thế Hồng

Nếu cái nào không đáp

jcisio's picture

Nếu cái nào không đáp ứng được thì làm thêm. hook_form_alter áp dụng cho thí dụ của bạn. Cũng có thể chức năng đó có sẵn mà bạn không biết, vì vậy câu hỏi đó nên post cho group CCK :-)

--
www.thongtincongnghe.com
Trang tin điện tử về CNTT, Viễn thông, Điện tử...

Mình dùng CCK tạo 2

phuong.phuong's picture

Mình dùng CCK tạo 2 field date là start_date và end_date, mình muốn validate start_date phải bé hơn end_date thì phải làm sao các bạn? Viết 1 module trong đó implement hook__validate() để check đúng không? Mình mới học drupal nên chưa hình dung được mong được chỉ dẫn.

Mình thử dùng CCK và

phuong.phuong's picture

Dùng CCK và thấy rất nhanh để tạo 1 node_type. Tuy nhiên có 3 cái này đang bí:

  • Tinh chỉnh lại các thành phần trên form. Ví dụ imagefield nó tạo ra thêm 1 button Upload kèm theo field file -> viết module riêng dùng hook_form_alter(), tuy nhiên ví dụ field date mình ko thể nào bỏ được cái fieldset bao lấy cái field date...

  • Tinh chỉnh lại theme cho các thành phần đó ?

  • Validate cho các thành phần trên form -> Form tự validate required nhưng 1 số validate khác như Start_date phải bé hơn End_date, nói chung các custom validate... thì làm sao?

Ai có hướng giải quyết nào ko xin chỉ giúp mình.

PS: Nếu giải quyết được mấy cái trên thì sau đó dùng thêm ContentTemplate đẻ custom template của node khi hiển thị ra, và Views nữa, quá tuyệt.

Đối với những thứ

thehong's picture

Đối với những thứ trên form, TH không quan tâm đẹp/xấu, trình bày ra là ổn rồi. Bạn có hứng thú thì có thể tự tìm hiểu, có được cách giải quyết thì chia sẻ với mọi người.

  • Về tinh chỉnh cách trình bày một node thuộc một node type, có giới thiệu sơ qua ở đây.
  • Sử dụng hook_form_alter để thêm field, xoá field, thêm submit handler, validator, thử xem ở đây.

Thế Hồng