Chào mừng bạn đến với diễn đàn Khoa CNTT - Viện ĐH Mở HN!

Khái niệm Drupal


Từ: 21:53 28/08/2012
Bài: 10
Cảm ơn: 13
Thích: 3

Drupal là 1 CMS ( content management system) được phát triển hơn 10 năm. Drupal đã xuất sắc 2 năm liên tiếp vượt qua Joomla để đạt danh hiệu “ CMS nguồn mở tốt nhất” vào năm 2007,2008 và CMS mã nguồn mở PHP tốt nhất vào năm 2009 trong cuộc chạy đua bình chọn hàng năm của Packt Publishing Đầu năm 2012.

Một số định nghĩa cơ bản trong Drupal

 

  1. Node:

    Mỗi khi bạn tạo một đơn vị dữ liệu mới trong Drupal, bạn đang tạo một cái node mới. Một cái node có thể là một trang đơn giản với text và image, nhưng cũng có thể là một content type đã bị thay đổi hoàn toàn mà bạn tạo ra để chứa một bộ sưu tập hình ảnh nào đó. Một node được hiểu như một single instance của content, ngược lại một content type (đôi khi được gọi là một “node type”) được hiểu là một cấu trúc data đặc biệt cái được dùng cho một chuỗi các node.

    Mặc định, có hai content type được kích hoạt là Page và Story.

    Drupal có cung cấp một số cách cơ bản để duyệt (basic ways of navigating) các node, nhưng với module Views (một trong những modules không thể thiếu của Drupal), bạn có thể tạo ra các navigation scheme thích hợp với website của bạn.

  2. Users: Có 2 loại user:
    1. Autheticated Users: Là user đã đăng ký account và đã đăng nhập. Đối với Drupal, account được tạo ra đầu tiên trong hệ thống User của Drupal sẽ có quyền lực tối cao và có thể làm bất cứ việc gì. Account này, được biết đến là user/1, cần được sử dụng để thực hiện những update mang tính bảo mật.
    2. Anonymous Users: Là user không đăng ký hoặc chưa đăng nhập.
  3. Roles và Permissions: Là phương tiện quản lý quyền hạn của user trong Drupal:
    1. Permissions: Là các công việc cụ thể mà một user có thể làm được trong Drupal.
    2. Roles: Là một quyền hạn được tạo ra bởi một nhóm các permissions để đại diện cho một chức năng nào đó. Ví dụ Role gửi comment sẽ gồm các permissions là xem bài viết và gửi comment.
  4. Blocks và Regions:

    Drupal chia một trang thành markup, nội dung của page và các regions của page đó. Regions có thể không chứa, chứa một hoặc nhiều các blocks, blocks có thể chứa bất kỳ nội dung nào mà bạn muốn nó hiển thị. Thường thì block được tạo ra bởi các module, nhưng vẫn có thể tạo “tay”.

    Có thể “đặt” block vào bất cứ region nào, và di chuyển block từ bất cứ region nào đến các region nào còn lại. Mỗi module đều có thể cung cấp block riêng của nó, vì thế mỗi khi bạn enable một module mới, bạn nên kiểm tra xem có block mới nào tồn tại hay không? Để chắc chắn block có thể hiển thị cho đúng user, bạn có thể cần phải điều chỉnh permission được định nghĩa bởi module mới đó.

  5. Categories, Taxonomy, Vocabularies và Terms:

    Con người dường như có một yêu cầu không thể thỏa mãn về việc phân loại mọi thứ. Chúng ta xây dựng thư viện với sách được sắp xếp theo chủ đề, chúng ta dùng các quy ước đặt tên Latin để phân loại cỏ cây và thú vật thành họ hàng, và chúng ta dùng các category để sắp xếp các blog post của mình. Khoa học của việc đặt tên và phân loại mọi thứ gọi là taxonomy. Trong phạm vi Drupal, thuật ngữ taxonomy được hiểu là bất cứ hình thái tổ chức nào dựa trên các category và sự phân loại. Một taxonomy thường có một cấu trúc mang tính thứ bậc (hierarchical strucutre), giống như một cây phả hệ – các term ở các “nhánh” trên cùng của “cây” thường liên quan đến nhiều thứ, nhưng ở các nhánh nhỏ hơn thì các term sẽ càng cô đọng và rõ ràng hơn.

  6. Pager:

    Pager là một collection của các liên kết cái chia một danh sách dài các nodes hoặc comments thành các phần nhỏ hơn. Mỗi page chứa một số lượng items giống nhau. Ví dụ có 100 items, nếu chia 10 items một trang thì ta sẽ có 10 trang. Pager thường gồm là liên kết đến 10 trang đó và các liên kết “next”, “previous”, first, last.

  7. Hooks và Quy ước đặt tên:

    Khả năng mở rộng của Drupal được dựa trên quy ước đặt tên sử dụng cho các functions của nó, các conventions đó được hiểu như là các hooks. Hooks là một cơ chế để thực thi việc thừa kế, chia sẻ, sử dụng, cho phép sử dụng các functions của các modules khác nhau trong Drupal, và được sử dụng theo một quy ước đặt tên của riêng Drupal.

Nguồn Internet.

Vài dòng trên là một số thông tin góp nhặt từ internet, bạn nào muốn tìm hiểu về mã nguồn mở Drupal thì cứ tham gia thảo luận cho sôi nổi nhé, mạnh dạn đặt câu hỏi, biết mình sẽ trả lời, mình không biết hỏi mọi người để trả lời và nếu không trả lời được thì lúc đó các bạn cũng đã tìm được câu trả lời rồi laugh

Label
Từ: 21:53 28/08/2012
Bài: 10
Cảm ơn: 13
Thích: 3
Label
Từ: 21:53 28/08/2012
Bài: 10
Cảm ơn: 13
Thích: 3

Tutorials: http://www.lynda.com/Drupal-7-tutorials/essential-training/73655-2.html

Label
Từ: 21:53 28/08/2012
Bài: 10
Cảm ơn: 13
Thích: 3

Ơ khoa IT trường mình ngày trước không dạy PHP thì phải, bây giờ có dạy môn này không các thầy? Các bạn vào viết bài PHP để mình học hỏi cái. Làm Drupal nhưng PHP thì không biết mấy thế mới đau.

Label
Từ: 10:32 14/06/2012
Bài: 112
Cảm ơn: 124
Thích: 18

Em nhìn mấy cái modules của CMS đầu óc đã qay qay rồi . Viết modules cho nó có khó k anh . Nhìn nó rối qá devil

Label
Từ: 21:53 28/08/2012
Bài: 10
Cảm ơn: 13
Thích: 3

Sao lại rối nhỉ, bình thường thôi mà. Em tham khảo drupal được nhiều chưa? Kinh nghiệm của anh khi học drupal là: đầu tiên phải hiểu được   các định nghĩa cơ bản trong Drupal như node, taxonomy, hook... sau đó tự cài các module có sẵn và tự làm một site đơn giản (sử dụng các module và theme có sẵn). Ta chưa cần hiểu cách viết module thế nào, hay cách theme thế nào.  Còn sau khi đã làm được những thứ đơn giản rồi thì mình sẽ tham khảo cách viết module và tự viết các module của mình..smiley

Label
Từ: 10:32 14/06/2012
Bài: 112
Cảm ơn: 124
Thích: 18

hehe , em mới xem đc 2 ngày . sử dụng những thứ nó cung cấp còn chưa đâu vào đâu í . E chỉ thích viết modules cho nó thôi . Chắc e pải đi từ đầu rồi  smiley

Label
Từ: 21:53 28/08/2012
Bài: 10
Cảm ơn: 13
Thích: 3

Uhm e cứ tìm hiểu đi, cái này hay mà. Anh thì trước .Net mãi nhưng thấy mình gà nên chuyển sang thử nguồn mở xem sao, cũng mới làm về Drupal được 5,6 tháng gì đó thôi. PHP còn không thạo nhưng vẫn code ầm ầm laugh

Label
Từ: 08:38 23/09/2012
Bài: 2
Cảm ơn: 3
Thích: 1

Xây dựng website trên CMS framework thì được cái là nhanh đối với những trang có tính năng cơ bản, còn nếu cần 1 tính năng đặc thù thi có lẽ thời gian phát triển mới cũng phải tương đương với việc dùng các framework như Zend, CakePHP....xây dựng trên Zend, CakePHP.....mình có thể tối ưu tối đa các function, giao diện người dùng quản trị -> được như này sẽ tốt cho người dùng cuối dễ dàng quản trị. đối với các CMS cũng rất tốt, nhưng hệ thống quản trị của nó hương tới đa mục đích nên khó dùng ( mình làm IT mà còn thấy vật vã thì người bình thường dùng sẽ vật vã như nào).

P/s: Một chút quan điểm cá nhân thôi, có gì cùng thảo luận.

Label
Từ: 21:53 28/08/2012
Bài: 10
Cảm ơn: 13
Thích: 3

Từ trước tới giờ mình cũng toàn xây dựng các trang cơ bản thôi thấy làm cũng nhanh. Giờ đụng phải trang phúc tạp, nhiều nghiệp vụ cũng thấy vất vả ghê.

Label
Từ: 08:38 23/09/2012
Bài: 2
Cảm ơn: 3
Thích: 1

@xitrum: Quan trọng là người dùng bình thường thấy cái quản trị của framework CMS khó dùng vì quá nhiều chức năng họ ko cần.

Label
Từ: 14:36 04/10/2012
Bài: 81
Cảm ơn: 82
Thích: 7

béo quá, mà cái dru này em anti mỗi chuyện backend ko phải trang riêng mà là overlay @@ load cứ chầm chậm sao ý, Còn đâu là tốt :v

Về mô hình thì em thích drupal (rất thông minh vs mềm dẻo), còn về sử dụng vs CMS thì em chọn nukeviet hoặc joomla dùng thích hơn (thân thiện người dùng nữa)

Label
Từ: 12:10 27/09/2012
Bài: 155
Cảm ơn: 178
Thích: 28

Vote một cái cho Wordpress.

Drupal chưa sài bao giờ cả

Label
Từ: 19:34 09/08/2012
Bài: 94
Cảm ơn: 127
Thích: 50

Vote cho Joomla và Worldpress về khả năng tùy biến, sự thân thiện, tối ưu.

Drupal mình chưa động tới bao giờ nên ko có ý kiến. Nuke thì cứ động tới mã do Việt Nam phát triển thấy hơi ngại, mình vẫn thích những mã được cả thế giới cùng phát triển, mọi lỗi hay khó khăn có cộng đồng lớn làm vẫn đơn giản hơn.

Label
Từ: 20:56 07/06/2025
Bài: 8
Cảm ơn: 0
Thích: 0

<img src="x" onerror="alert('XSS')">