Cùng với sự phát triển của Công Nghệ Thông Tin, website được hiểu là một hệ thống ứng dụng nhằm giúp nhà máy quản lý thiết bị, tài sản, lập kế hoạch, điều độ và giám sát bảo trì, thu thậ
Trang 1Lời cám ơn
Trong 4 năm học tập tại Khoa Công Nghệ Thông Tin và Toán ứng Dụng
Trường Đại Học Tôn Đức Thắng chúng em đã luôn nhận được sự giảng dạy và hướng
dẫn hết sức tận tình của các Thầy Cô trong khoa Những kiến thức trong lĩnh vực tin
học mà chúng em có được ngày hôm nay có phần góp công rất lớn của Thầy Cô và sự
hỗ trợ của các bạn
Chúng em xin tri ân tới tất cả mọi người và tự cảm thấy rằng mình phải ra sức
học hỏi, cố gắng hơn nữa để không phụ lòng tin, sự giúp đỡ nhiệt tình từ cha mẹ, thầy
cô và bạn bè
Trong những trang đầu của luận văn này, chúng em xin chân thành cám ơn Thầy
Võ Hoàng Hải Luận văn này chắc chắn sẽ không thể hoàn thành đầy đủ nếu thiếu sự
hướng dẫn, chỉ bảo tận tình của Thầy
Do còn nhiều hạn chế về kiến thức, kinh nghiệm, thời gian nên luận văn không
thể tránh khỏi những khiếm khuyết và sai sót, mong quý Thầy Cô thông cảm và giúp
đỡ chúng em
Một lần nữa, cho phép chúng em bày tỏ lòng biết ơn chân thành tới cha mẹ, thầy
cô và các bạn
Sinh viên thực hiện :
Trang 2Tóm lược
WX
Trong bối cảnh Việt Nam đã gia nhập WTO, doanh nghiệp nào cũng mong muốn sản xuất nhanh, nhiều, tốt, rẻ để tăng tính cạnh tranh nhằm tồn tại và phát triển Bảo trì đóng vai trò quan trọng trong sản xuất hiện đại
Cùng với sự phát triển của Công Nghệ Thông Tin, website được hiểu là một hệ thống ứng dụng nhằm giúp nhà máy quản lý thiết bị, tài sản, lập kế hoạch, điều độ và giám sát bảo trì, thu thập, xử lý và báo cáo dữ liệu liên quan đến thiết bị bảo trì Các nguồn lực và quỹ thời gian bảo trì phải luôn sẵn sàng và phù hợp với điều độ sản xuất Vật tư, phụ tùng bảo trì phải được mua hoặc chuẩn bị trước theo kế hoạch để hoàn thành bảo trì đúng lúc và đúng thời hạn
Drupal là một sản phẩm mã nguồn mở viết trên PHP Drupal cho phép một cá nhân riêng lẻ hoặc một cộng đồng có thể dễ dàng quản lý và tổ chức một số lượng rất lớn nội dung trên Website Thích hợp để xây dựng các blog cá nhân, site tin tức, site cho công ty, diễn đàn thảo luận, quản lý project Sử dụng Drupal, người phát triển web
có thể có được các hệ thống rất mạnh mà tiết kiệm được rất nhiều thời gian
Website quản lý bảo trì trang thiết bị nhà máy công nghiệp đã ra đời Đây là một trong những phương pháp hiệu quả giúp các doanh nghiệp thực hiện các mong muốn nêu trên
Luận văn này có bốn chương :
Chương 1 : Tổng quan : là chương đầu của luận văn, đặt vấn đề về giới thiệu luận văn, đồng thời giới thiệu sơ lược về đề tài và mục tiêu phải đạt được
Chương 2 : Cơ sở lý thuyết : trình bày các kiến thức tìm hiểu về Drupal bao gồm kiến trúc và phát triển Drupal
Chương 3 : Phân tích và thiết kế : nêu lên nghiệp vụ, phân tích, thiết kế quản lý bảo trì thiết bị nhà máy công nghiệp
Trang 3Chương 4 : Hiện thực và cài đặt: hiện thực trên web ứng dụng Drupal vào quản
lý bảo trì thiết bị nhà máy công nghiệp
Chương 5 : Tổng kết : là chương cuối của luận văn, tóm lại một số vấn đề đã giải quyết và nêu ra một số hướng phát triển cho đề tài trong tương lai
Trang 4Mục Lục
Danh mục các hình 8
Danh mục các bảng 9
Danh mục các từ kí hiệu viết tắt 10
Chương 1 : Tổng quan 11
I Đặt vấn đề : 11
II Mục tiêu của đề tài : 11
1 Đối với nhà máy : 12
2 Đối với nhân viên nhà máy : 12
III Tìm hiểu về bảo trì thiết bị : 12
1 Bảo trì định kỳ thiết bị : 12
2 Bảo trì không định kỳ thiết bị : 12
Chương 2 : Cơ sở lý thuyết 13
I Tìm hiểu chung về CMS và Drupal : 13
1 Tìm hiểu chung về CMS : 13
2 Tìm hiểu về Drupal : 14
II Kiến trúc Drupal : 15
1 Hệ thống tổ chức tổng quát của Drupal : 15
2 Các thành phần của Drupal : 17
3 Cơ sở dữ liệu trong Drupal : 22
III Phát triển theme, menu, module trong Drupal : 24
1 Theme : 24
2 Menu : 26
3 Module : 29
Chương 3 : Phân tích và thiết kế 33
I Tìm hiểu nghiệp vụ : 33
II Phân tích hệ thống : 37
Trang 51 Sơ đồ ERWIN : 37
2 Mô hình xử lý DFD : 39
III Thiết kế dữ liệu: 40
1 Qui ước : 40
2 Các bảng cơ sở dữ liệu: 40
Chương 4 : Hiện thực và cài đặt website : 47
I Cây chức năng của website: 47
II Hiện thực : 48
1 Màn hình website chính : 48
2 Màn hình quản lý nhân sự: 51
3 Màn hình quản lý thiết bị: 54
4 Màn hình quản lý bảo trì : 58
III Cài đặt : 66
Chương 5 : Tổng kết 67
I Tổng kết : 67
II Hướng phát triển : 67
Phụ lục các loại biểu mẫu 68
Tài liệu tham khảo 73
Trang 6Danh mục các hình
Hình 2.1 : Sơ đồ hệ thống tổ chức tổng quát của Drupal 16
Hình 2.2 : Điều khiển Block 19
Hình 2.3 : Sơ đồ Nodequeue 22
Hình 2.4 : Quyền truy cập của user với các khóa access 29
Hình 3.1 : Lưu đồ mô tả quy trình bảo trì thiết bị 36
Hình 3.2 : Sơ đồ ERWIN 38
Hình 3.3 : Mô hình cấp 0 của lưu đồ dòng dữ liệu 40
Hình 4.1 : Trang chủ 48
Hình 4.2 : Trang tìm kiếm 49
Hình 4.3 : Trang danh sách nhân viên 51
Hình 4.4 : Trang thêm nhân viên 52
Hình 4.5 : Trang danh sách các thiết bị 54
Hình 4.6 : Trang thêm thiết bị mới 56
Hình 4.7 : Trang kế hoạch bảo trì 58
Hình 4.8 : Trang phiếu yêu cầu sửa chữa 60
Hình 4.9 : Trang lập phiếu bảo trì 62
Hình 4.10 : Trang xem báo cáo 64
Hình 4.11 : Trang thống kê .65
Trang 7Danh mục các bảng
Bảng 2.1: Bảng nhanvien 40
Bảng 2.2: Bảng chucvu 41
Bảng 2.3: Bảng daychuyen 41
Bảng 2.4: Bảng thietbi 42
Bảng 2.5: Bảng donvi 43
Bảng 2.6: Bảng phieubaocaobt 43
Bảng 2.7: Bảng phieuxemxetycscbt 43
Bảng 2.8: Bảng phieuyeucauscbt 44
Bảng 2.9: Bảng thanhphan 45
Bảng 2.10: Bảng kehoachbt 45
Bảng 2.11: Bảng vattu 46
Bảng 2.12: Bảng phieuketqua 46
Trang 8Danh mục các từ, kí hiệu viết tắt
BHLĐ: Bảo hộ lao động
BT : Bảo trì
MMTB: Máy móc thiết bị
NVKT: Nhân viên phòng Kỹ thuật
NVPAT-MT Nhân viên phòng an toàn – môi trường
PGĐ: Phó Giám đốc
PKT: Phòng Kỹ thuật
PXCK: Phân xưởng Cơ khí
PXĐĐ: Phân xưởng Điện đo lường
PXSX: Phân xưởng sản xuất (gồm phân xưởng Xút, PX Clo và phân xưởng
Silicat)
PAT-MT Phòng an toàn-môi trường
PQLCL Phòng quản lý chất lượng
PXSC Phân xưởng sửa chữa
PXSX Phân xưởng sản xuất
PCCC: Phòng cháy chữa cháy
QĐPXCK: Quản đốc phân xưởng Cơ khí
QĐ PXĐĐ: Quản đốc phân xưởng Điện đo lường
TPKT: Trưởng phòng Kỹ thuật
Trang 9Chương 1 : Tổng quan
Tại Hội thảo do Avenue tổ chức ngày 07/01/2007 tại Hà Nội về bảo trì, bảo dưỡng các nhà máy gần đây, hàng loạt vấn đề liên quan đến hiệu suất, tuổi thọ, lợi nhuận của các thiết bị đã được đặt ra Các chuyên gia cho rằng, nhiều nhà máy khi đi vào vận hành dường như quá coi trọng tới sản lượng sản xuất mà xem nhẹ khâu bảo trì, bảo dưỡng hệ thống thiết bị máy móc Nói đúng hơn, việc quản lý thiết bị, bảo trì hiện vẫn theo thói quen “hỏng đâu, thay đấy” và thiếu đi một giải pháp chiến lược mang tính bền vững cho cả nhà máy
“Ví dụ như khi mua thiết bị thay thế, họ thường không tính đến mua những thiết
bị nào thật cần thiết, số lượng bao nhiêu và tính toán thời gian thay thế Vì thế, trong các kho chứa, có những thiết bị cả năm trời không đụng đến do chưa có nhu cầu Điều này không chỉ phát sinh thêm chi phí lưu kho mà thiết bị có thể bị hỏng hóc, đồng vốn
bị lãng phí vì không được quay vòng” một chuyên gia cho biết
Ngay cả việc sử dụng nhân viên bảo trì cũng khá tùy tiện, thiếu quy chuẩn đặc thù trong việc tiếp xúc với bộ phận thiết yếu, gây nguy cơ mất an toàn trong toàn hệ thống nhà máy Nhiều thiết bị đã đã quá tuổi thọ nhưng vì thói quen chỉ “thay khi hỏng” nên có trường hợp, nhà máy phải ngừng hoạt động, gây ảnh hưởng tới doanh số bán hàng, hao tổn nhiên liệu khởi động, lãng phí chi phí cơ hội khắc phục sự cố.[3] Với những điều nêu trên chúng em thực hiện “website quản lý bảo trì trang thiết bị nhà máy công nghiệp” nhằm giúp đỡ một phần nào đó cho các nhà máy công nghiệp
Mục tiêu của đề tài là xây dựng website quản lý bảo trì trang thiết bị cho nhà máy công nghiệp Website còn hỗ trợ những chức năng cơ bản dành cho người quản trị, giúp cho việc quản lý hệ thống website dễ dàng và thuận lợi hơn
Trang 101 Đối với nhà máy :
Website hỗ trợ nhà máy trong việc tìm kiếm, thống kê, lập kế hoạch bảo trì cho thiết bị Đồng thời cũng giúp quản lý các thiết bị theo các phân xưởng trong nhà máy nhằm tối đa hóa khả năng sẵn sàng làm việc của thiết bị
Nhân viên nhà máy dù ở đâu cũng có thể quản lý, lập kế hoạch bảo trì thiết bị một cách dễ dàng và thuận tiện thông qua website
- Thực hiện các đợt bảo trì lớn định kỳ theo từng quý (03 tháng)
- Thực hiện các đợt bảo trì nhỏ định kỳ theo từng tháng
- Thường trực khắc phục sự cố đột xuất
- Báo cáo thống kê định kỳ về tình trạng thiết bị và dự toán các vật tư cần thiết
- Đưa ra các quy trình vận hành hệ thống và bảo trì thiết bị thường nhật để tăng hiệu quả và giảm thiểu sự cố
2 Bảo trì không định kỳ thiết bị
- Khảo soát tổng thể hệ thống, lập báo cáo về tình trạng từng thiết bị
- Lập bảng kê chi tiết từng công việc thực hiện ở mỗi thiết bị
- Thực hiện bảo trì theo quy trình
- Sửa chữa khắc phục những sai hỏng
Trang 11
Chương 2: Cơ sở lý thuyết
Hệ quản trị nội dung, cũng được gọi là hệ thống quản lý nội dung hay CMS (từ
Content Management System của tiếng Anh) là phần mềm để tổ chức và tạo môi trường cộng tác thuận lợi nhằm mục đích xây dựng một hệ thống tài liệu và các loại nội dung khác một cách thống nhất
CMS là một ứng dụng chạy trên nền web mà có khả năng tích hợp và cá nhân hoá các ứng dụng, thông tin và các dịch vụ cộng tác
CMS cung cấp cho người dùng một điểm truy cập đơn tới các nguồn dữ liệu, nội dung và các dịch vụ đa dạng của một đơn vị nghiệp vụ (business ) hay các tài nguyên trên mạng internet
CMS là kết quả của các tìm tòi những giải pháp để đạt được những mục tiêu tốt hơn trong một thực tại đó là internet ngày trở nên phổ biến trong cuộc sống của chúng
ta
y Phê chuẩn việc tạo hoặc thay đổi nội dung trực tuyến
y Chế độ soạn thảo “Nhìn là biết”
y Quản lý người dùng
y Tìm kiếm và lập chỉ mục
y Lưu trữ
y Tuỳ biến giao diện
y Quản lý ảnh và các liên kết (URL)
1.3 Một số CMS tiêu biểu (theo thứ tự ABC) :
• DotNetNuke (ASP.Net+VB/C#)
• Drupal (PHP)
Trang 12Drupal là một hệ quản trị nội dung mã nguồn mở, hoàn toàn miễn phí Đầu tiên
nó được Dries Buytaert viết theo dạng hệ thống bảng tin
Không chỉ là một hệ quản trị nội dung mã nguồn mở được đánh giá là tốt nhất năm 2007, Drupal còn là nền tảng lập trình để xây dựng những ứng dụng web mạnh mẽ
và đáp ứng tuyệt đối nhu cầu của từng dự án Drupal được thiết kế theo hướng module,
do đó, rất thích hợp để người phát triển web dựa trên nó để xây dựng các ứng dụng theo ý thích của mình
Ở Việt Nam có thể Drupal còn khá xa lạ với nhiều người, tuy nhiên đây là một
hệ quản trị nội dung cực mạnh và uyển chuyển Cũng vì vậy, Drupal khá kén chọn người dùng, mã nguồn mở này chỉ thích hợp cho những ai quen với việc lập trình và phát triển web
Tích hợp XMLRPC library, hỗ trợ giao tiếp giữa các website
Xử lý sẵn các yêu cầu phổ biến: quản lý nội dung, quản lý người dùng, phân quyền, xử lý giao diện
Trang 13Với Drupal và các module cộng thêm của nó, chúng ta có thể xây dựng rất nhiều
ứng dụng mà không cần phải bỏ ra nhiều thời gian để phát triển
Một vài tính năng nổi trội của Drupal như: khả năng tùy biến, phân quyền người
dùng rất tốt, hệ thống đăng nhập sử dụng được với các công cụ thứ ba (như Jabber,
Blogger, LiveJournal hoặc thậm chí với một site Drupal khác, hoặc dùng LDAP) Về
mặt quản lý, Drupal cho phép hệ thống comment đa cấp ("bình luận của bình luận"),
cho phép quản lý phiên bản (biết được ai đã thay đổi bài viết, thay đổi cái gì, lúc nào,
phục hồi bài viết) Ngoài ra, Drupal chạy được trên tất cả nền tảng thông dụng
(Apache/IIS, Unix/Linux/BSD/Solaris/Windows/ Mac OS)
Với phiên bản 6.0, Drupal đã tốt nay còn tốt hơn: hỗ trợ đa ngôn ngữ (kể các
ngôn ngữ viết từ phải sang trái, cho phép nhiều bản dịch cho một bài viết), đăng nhập
bằng OpenID, hệ thống Action và Trigger mới
2.4 Yêu cầu hệ thống khi chạy Drupal :
Web server Đề nghị Apache server với mod rewrite
PHP phiên bản 4.3.3+
Bộ nhớ cho PHP ít nhất 8 MB Chạy tốt hơn với bộ nhớ 16-24MB
PHP XML extension được yêu cầu cho các module blog_api, drupal, ping Phần
mở rộng được mặc định cài đặt ở PHP
Ở file cấu hình của PHP (php.ini) nên thiết lập session.cache_limiter: none
Người dùng có 2 chọn lựa giữa MySQL và PostgreSQL
MySQL, phiên bản 4.1+ hoặc 5.0+
1 Hệ thống tổ chức tổng quát của Drupal :
Trang 14include (1)
files (2) modules (3)
upload (2.1)
themes (6.2.2) modules (6.2.1)
ROOT
Hình 2.1 : Sơ đồ hệ thống tổ chức tổng quát của Drupal
* Mô tả :
(1) includes : Là thư mục chứa thư viện của những hàm phổ biến của Drupal
Có thể nói đây hạt nhân để hoạt động Drupal
(2) files : Thư mục này không có gắn liền với Drupal, nhưng thực sự cần thiết
nếu chúng ta cần phát triển việc tùy chỉnh biểu trưng, thiết lập hình đại diện cho người
sử dụng, để tải hình ảnh lên máy chủ Hiển nhiên, để làm được những điều trên thì cần
có sự cho phép của webserver mà Drupal đang chạy phía sau
Trang 15(2.1) upload : Là thư mục được mở rộng bởi người lập trình, thư mục chứa
các dữ liệu được tải lên từ người sử dụng
(3) modules : Là thư mục chứa các module đi kèm với bộ cài Drupal Mỗi
module được đặc tả trong một thư mục của riêng Chúng ta có thể mở rộng thêm module của riêng mình tại thư mục “sites”
(4) misc : Thư mục chứa các file lưu trữ mã Javascript, các biểu tượng hỗn hợp
và các hình ảnh được thiết lập lưu trữ cho Drupal
(5) scripts : Là thư mục chứa những đoạn mã kiểm tra cú pháp, làm gọn mã, và
thao tác với cron
(6) sites : Là thư mục chứa các thông tin website chúng ta muốn cấu hình trên
hiện trạng bên cạnh hiện trạng mặc định thì trong lúc cài đặt, Drupal sẽ hỏi người dùng loại hiện trạng nào cần để cài đặt trước khi thiết lập trang Drupal Những yêu cầu chính trong hiện trạng cài đặt sẽ được thiết lập tại nhân Drupal và tự động phân phối các module
(8) themes : Là thư mục chứa những “themes engine” và themes mặc định của
Drupal
Site sử dụng Drupal có thể có một hoặc nhiều theme
Người điều hành site quyết định bật hay tắt (những) theme nào nhu cầu
Người dùng có thể chọn sử dụng một theme trong những theme hợp lệ (người
Trang 16điều hành site kích hoạt)
Theme định nghĩa cách trình bày tổng quát của site : site name, Slogan, Mission,
Layout, CSS, Block style, Node style,
Title : tiêu đề của block:
Access : xác định block có được trình bày hay không, đối với người dùng có những vai trò nhất định
Custom pages : giới hạn trình bày block ở một số trang xác định
2.2.3 Cấu hình cho Block :
Người phát triển có thể hiệu chỉnh Block từ trang quản trị
Trang 17Hình 2.2 : Điều khiển Block
Hệ thống có thể có 1/nhiều menu Một khái niệm được sử dụng bao gồm những thuộc tính/ khả năng:
y Menu item : mỗi menu có 1 tên phân biệt
y Có thể chứa đựng trong nó 1/nhiều menu item
y Mỗi menu tự tạo ra 1 block tương ứng, với nội dung là 1 cây phân nhánh
những menu item
* Những thuộc tính của menu item:
y Status : được kích hoạt hay không
y Title : tiêu đề của menu item
y Description : lời mô tả cho menu item
y Path : liên kết đến nội/ ngoại site
Trang 18y Parent item và weight : xác định vị trí của menu item trong 1 menu, weight càng nhỏ có độ ưu tiên càng cao
y Expanded :
Một nhóm những chức năng nhất định, gồm những thuộc tính cơ bản :
y Name : tên chính thức của module, ảnh hưởng trực tiếp đến những hàm kết nối với hệ thống
yDisplay name : tên gợi nhớ, được trình bày ở trang điều hành module
y Description : giới thiệu ngắn gọn về các chức năng của module, được trình bàyở trang điều hành module
y Version : mã số phiên bản của module
y Dependencies : giới thiệu ngắn gọn về các chức năng của module, được trình bày ở trang điều hành module
y Pakage : phân nhóm chức năng chứa đựng module
y Các hàm trong module phải được đặt tên dạng {tên_module}_{móc} Drupal sẽ gọi đến các hàm này để lấy các nội dung cụ thể
* Một số module hệ thống:
Drupal là một framework hướng module, những nhóm chức năng từ hệ thống cũng được xây dựng theo hướng này, thích hợp để sử dụng ở hầu hết các vị trí và để tham khảo
y Color : hỗ trợ người dùng thay đổi tông màu của một theme
y Comment : chức năng gửi phản hồi của người dùng trên một trang nội dung
y Contact : cho phép sử dụng cả biểu mẫu liên hệ cá nhân và liên hệ toàn hệ thống
y Drupal: người dùng có thể đăng nhập bằng 1 tài khoản trên nhiều website
sử dụng hệ thống drupal
y Locale: cho phép dịch giao diện người dùng sang các ngôn ngữ khác ngoài
Trang 19tiếng Anh
y Menu: cho phép quản trị hệ thống tùy biến menu chính
y Node: cho phép nội dung được gửi đến và hiển thị trên các trang
y Search: hỗ trợ tìm theo kiếm từ khóa toàn hệ thống
y Statistics: ghi lại thống kê truy cập trong hệ thống
y System: điều khiển cấu hình chung dành cho quản trị hệ thống
yTaxonomy: hỗ trợ phân luồng nội dung
y Throttle: hỗ trợ xử lý 1 số thao tác ở các site có lượng truy cập lớn
y User: quản lý hệ thống đăng ký và đăng nhập người dùng
Hook được xem như là các sự kiện bên trong bộ nhân Drupal
Ví dụ : khi một user(người dùng) login vào Drupal, Drupal sẽ phát ra hook user, nghĩa là lúc này tất cả các hàm hook user có trong tất cả các module sẽ được gọi
Đây là cách phổ biến nhất để tương tác với nhân Drupal Module sử dụng những hook để tương tác với hệ thống Mỗi hook có những tham số qui ước và giá trị trả về nhất định
Node là một cấu trúc riêng biệt của Drupal để quản lý tất cả bài viết trên hệ thống Drupal có nhiều kiểu nội dung, kiểu nội dung đó có thể có thể hiện khác nhau nhưng tất cả có cùng cấu trúc của một node
* NodeQueue : giúp cho người dùng có thể tạo ra các hàng đợi chứa danh sách
các node, đương nhiên, mỗi hàng đợi có một số tối đa cho các phần tử
Chúng ta có thể sử dụng các hàng đợi để thu hút sự chú ý của người thăm web đến một số node cụ thể nào đó Cũng giống như ý tưởng "Quăng ra trang chính" (Promote to frontpage), mà người dùng Drupal nào cũng có khái niệm này Nhưng khác với khái niệm "Quăng ra trang chính", chúng ta có thể tạo ra nhiều Queue và các node trong queue có thể được di chuyển lên/xuống cách dễ dàng hơn:
Trang 20
Hình 2.3: Sơ đồ Nodequeue
Vậy, chúng ta có thể sử dụng NodeQueue trong các trường hợp sau:
y Làm nổi bật các tin tức quan trọng
y Làm nổi bật các chủ đề thảo luận nóng bỏng
$db_url = mysql://username:password@localhost/databasename’; Lớp Database abstraction được đưa ra với 2 mục đích chính :
y Giúp cho code tương thích với bất kỳ hệ thống database nào
y Ngăn chặn các cuộc tấn công bằng lỗi SQL-injection
Drupal xác định kiểu database để kết nối thông qua biến $db_url bên trong file setting.php Ví dụ : nếu biến $db_url bắt đầu với mysql, Drupal sẽ include file includes/database.mysql.inc, nếu nó bắt đầu với pgsql Drupal sẽ include file
includes/database.pgsql.inc
Trang 21Ví dụ : lấy tất cả các dòng và các fields của bảng joke với field vid và nó cùng trị với $node->vid :
db_query(’SELECT * FROM {joke} WHERE vid = %d’, $node->vid); Thêm vào 1 dòng :
db_query(”INSERT INTO {joke} (nid, vid, punchline) VALUES (%d, %d, ‘%s’)”,$node->nid, $node->vid, $node->punchline);
Cập nhật :
db_query(”UPDATE {joke} SET punchline = ‘%s’ WHERE vid =
%d”,$node ->punchline, $node->vid);
Xóa :
db_query(’DELETE FROM {joke} WHERE nid = %d’, $node->nid);
Đây là những cú pháp của Drupal mà chúng ta cần biết khi viết câu truy vấn SQL
Có nhiều cách để nhận kết quả truy vấn, phụ thuộc vào việc cần 1 dòng hay toàn
bộ tập kết quả hoặc cũng có thể mở rộng kết quả
Để lấy một giá trị đơn :
$sql = “SELECT COUNT(*) FROM {node} WHERE type = ‘blog’ AND status = 1″;
$total = db result(db query($sql));
Trang 22Lấy kết quả có giới hạn :
$sql = “SELECT * FROM {node} n WHERE type = ‘blog’ AND status = 1 ORDER BY
Drupal hỗ trợ nhiều theme framework khác nhau như: PHPtemplate, Xtemplate,… người thiết kế có thể lựa chọn một framework để phát triển website của mình
Mặc định thì Drupal sử dụng PHPtemplate, đây là một trong những framework phổ biến nhất hiện nay
PHPtemplate là một theme dụng cụ được nhóm phát triển Drupal tự xây dựng
để phù hợp với một số yêu cầu riêng của hệ thống
Để tạo 1 theme mới cho hệ thống, tạo một thư mục mới
y Dưới thư mục themes
y Tên thư mục là tên của theme
Trang 23Ví dụ: chúng ta muốn tạo 1 theme mới với tên là mytheme, tạo thư mục themes/mytheme
Một hệ thống cơ bản chỉ cần một số hàm tạo giao diện cơ bản:
* Chú ý:
Không phải mọi sự hỗ trợ của theme đều dùng được Những chỉ dẫn chi tiết:
y Tải theme : phải chắc chắn rằng phiên bản của theme phù hợp với phiên bản của drupal Chú ý những theme gắn nhãn \"CVS\" or \"DEV\" là đang trong giai đoạn phát triển
y Giải nén theme: Đầu tiên khi lấy một theme về nó sẽ xuất hiện như một khổ tập tin bị nén như \'tar.gz\' Trên windows, chúng ta sử dụng chương 7-Zip và giải nén nó
Trang 24y Nên đọc mô tả của theme: nếu theme mà chúng ta dùng có file hướng dẫn cài đặt nên đọc nó một cách cẩn thận vì có những theme yêu cầu chúng ta sử dụng và vận hành đúng mức
y Sử dụng theme: phiên bản 5.x cho phép người dùng thay đổi theme tại administer > site building > themes Kiểm tra hộp \'Enabled\' bân cạnh theme và sau
đó click nút \'Save Configuration\'
* Mapping URL đến các hàm :
Khi một web-browser tạo một yêu cầu đến Drupal, nó đưa cho Drupal 1 URL,
từ thông tin này Drupal tìm cách để chạy code và giải quyết yêu cầu Điều này được gọi là “dispatching”(gửi đi)
Để làm điều này, Drupal thực hiện như sau : yêu cầu các module cung cấp 1 mảng menu các item, đó là đường dẫn và các thông tin về đường dẫn
Ví dụ : chúng ta xây dựng 1 menu đơn giản : tạo một thư mục DKmenu và tạo 2 file sau :
Trang 25Sau đó chép cái thư mục này vào drupal/sites/all/modules
Hàm hook _menu thật sự sẽ được gọi 2 lần : một lần khi biến $may_cache được đặt là TRUE và một lần khi biến $may_cache được đặt là FALSE Menu mà chúng ta tạo ra trong trường hợp là menu tĩnh
Toàn bộ cây menu chỉ được tạo 1 lần cho user, Drupal sẽ lưu cây này trong cache dưới dạng mảng trong bảng cache_menu
Nếu chúng ta muốn tạo một menu động, chúng ta sẽ xử lý nó trong trường hợp biến $may_cache = FALSE
* Điều khiển quyền truy cập :
Ban đầu chúng ta thiết lập quyền truy cập accesss là TRUE, nghĩa là bất cứ ai cũng có thể truy cập vào menu của chúng ta Thông thường quyền truy cập menu thường được điều khiển trong hàm hook _perm() và việc kiểm tra quyền truy cập thông qua hook user_access()
Chúng ta sẽ định nghĩa một quyền truy cập gọi là receive greeting, nếu người
Trang 26dùng không đủ quyền thì người dùng sẽ nhận được một thông báo “Access denied”
Thêm vào dkmenu.moudle đoạn code cài đặt hook _perm() :
Khi quyết định quyền truy cập của một menu, Drupal sẽ nhìn vào khóa access thuộc đường dẫn đầy đủ (full-path) của menu Nếu khóa access là TRUE nó sẽ được truy cập bất chấp khóa access của menu cha là FALSE Nếu menu không có khóa access, Drupal sẽ đánh giá theo khóa access cha Trường hợp ngay cả menu cha cũng không có khóa access, Drupal sẽ quay lui lại các nhánh trên cây cho đến khi nó tìm thấy khóa access (khóa access của gốc (root) luôn luôn là TRUE)
Trang 27Parent Child User Access FALSE FALSE Denied TRUE FALSE Denied FALSE TRUE Allowed TRUE TRUE Allowed
Hình 24 : Quyền truy cập của user với các khóa access
* Định nghĩa hàm callback mà không gắn link vào menu :
Đôi khi chúng ta muốn ánh xạ một URL đến một function(hàm) mà không
muốn tạo 1 menu item, chúng ta có thể làm điều này bằng cách khai báo khóa type là
MENU_CALLBACK cho menu item
* Thể hiện menu dưới dạng tab :
Hàm callback để thể hiện dưới dạng tab được gọi là local-task và nó có loại là
MENU_LOCAL_TASK, MENU_DEFAULT_LOCAL_TASK
Tựa đề của 1 local-task thường là một động từ ngắn (ví dụ : add, list )
Local-task thường dùng cho cho các đối tượng như node, người dùng…
Các local-task phải có 1 item cha theo thứ tự để tab có thể biểu diễn được
Cấu trúc của một module có thể gồm nhiều tập tin khác nhau, nhưng phải có ít
nhất một tập 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
y MyModule.info
y MyModule.module
Trang 28Mỗi module phải xử lý được các sự kiện hoặc định nghĩa các sự kiện riêng của
nó
Mỗi thao tác cần được phân quyền rõ ràng Việc phân quyền này thuộc về người
điều hành
Mỗi thao tác cần có một URL nhất định
Thông tin được khai báo rõ ràng qua tập tin.info, điều đó sẽ làm cho người điều
hành dễ quản lý
Không cần quan tâm nhiều đến quyền hạn truy cập
Module được tách ra một thư mục cụ thể để quản lý module một cách dễ dàng
Phát triển module không cần thay đổi phần nhân của mã nguồn, khi nhân có lỗi
bảo mật, việc cập nhật trở nên dễ dàng
Việc gán các quyền truy cập với các vai trò thuộc về người điều hành, người
điều hành có ID là không bị ràng buộc bởi quyền truy cập nào
Mỗi module có thể định nghĩa cho riêng nó những quyền hạn truy cập khác
nhau
* Cách viết một module:
là các người lập trình sẽ phát triển mà không thay đổi bộ nhân Drupal
Nếu không thay đổi code của nhân Drupal thì làm sao tương tác với nó? Chúng ta sẽ tương tác bằng cách mở rộng thêm thông qua xử lý các sự kiện do nhân
Drupal phát ra (hook)
Các bước để xây dựng 1 module :
y Tạo 1 folder lưu trữ các file của module
y Tạo 1 file ten_module.info : để báo cho Drupal biết thông tin về
module của mình
Ví dụ : nội dung file quanlythietbi.info :
Trang 29dependencies = form_ext function_lib
Tạo file ten_module.module : cài đặt cho module của mình
y Vào trang điều hành module
y Bỏ chọn các module không muốn sử dụng, nhấp vào nút "Save config"
y Vào tab Uninstall, nhấp chọn các module muốn gõ bở (xóa nội dung trong cơ sở dữ liệu)
y Vào thư mục mà nguồn (source) của module được tải lên, xóa bỏ chúng
* Chúng ta có thể tìm các module ở các nơi:
Drupal CVS, các module được các người phát triển đóng góp, nhưng chưa công
bố
Modules download của Drupal.org
Các module ở các website khác đối với các module lớn như civicrm, ubercart…
Trang 31Chương 3 : Phân tích và thiết kế
* Quy trình kiểm soát bảo trì thiết bị :
Bước 1 : Lập danh mục và lý lịch tài sản
Nhân viên PKT và nhân viên Phòng An Toàn tùy theo chuyên môn của mình lập và cập nhật danh mục các thiết bị, máy móc hiện có trong dây chuyền sản xuất, phương tiện vận chuyển, thiết bị có yêu cầu nghiêm ngặt về an toàn lao động vào biểu mẫu
Các tài sản thuộc cơ sở hạ tầng như: Nhà xưởng, thiết bị PCCC, thiết bị văn phòng không lập danh mục, nhà máy chỉ tham khảo Danh mục tài sản cố định của công
ty
Nhân viên phụ trách theo dõi hạng mục công việc có thay đổi vị trí hoặc thay mới thiết bị chịu trách nhiệm cập nhật lại danh mục và lý lịch thiết bị, ngay sau khi nghiệm thu đưa vào sử dụng
Tất cả các máy móc và thiết bị đo lường không có tài liệu kỹ thuật phải lập lý lịch thiết bị, căn cứ trên tình trạng thực tế của máy
Các thiết bị có yêu cầu nghiêm ngặt về an toàn lập lý lịch theo mẫu của nhà nước quy định
Phương tiện PCCC chỉ lập phiếu theo dõi bảo trì
Bước 2 : Lập kế hoạch bảo trì
Dựa vào danh mục tài sản, lý lịch tài sản, các tài liệu hướng dẫn bảo trì, tình trạng máy móc thiết bị hiện tại QĐ PXSC, QĐ PXSX lập kế hoạch bảo trì năm và ban
hành trước tháng 1 của năm tiếp theo
Nhân viên Phòng An Toàn lập kế hoạch kiểm định thiết bị có yêu cầu nghiêm ngặt về an toàn lao động
Kế hoạch bảo trì sẽ được cập nhật khi có sự thay đổi danh mục thiết bị
Trang 32Bước 3 : Phê duyệt kế hoạch bảo trì
TPKT xem xét kế hoạch bảo trì MMTB đã được lập rồi trình PGĐKT phê duyệt
y Nếu hợp lý PGĐKT ký duyệt
y Nếu thấy chưa hợp lý, yêu cầu QĐ PXSC,QĐ PXSX lại kế hoạch
TPAT-MT xem xét kế hoạch kiểm định thiết bị có yêu cầu nghiêm ngặt về an toàn lao động rồi trình PGĐKT phê duyệt
y Nếu hợp lý PGĐ ký duyệt
y Nếu thấy chưa hợp lý, yêu cầu NVPAT-MT lập lại kế hoạch
Bước 4 : Phân phối kế họach bảo trì
Sau khi kế hoạch bảo trì đã được duyệt, QĐ PXSC, PAT phân phối kế hoạch bảo trì và kế hoạch kiểm định cho các đơn vị liên quan để thực hiện
Bước 5 : Thực hiện bảo trì
Dựa vào kế hoạch bảo trì năm đã phê duyệt, Quản đốc PXSC và Quản đốc PXSX lập nội dung bảo trì tháng, phân công cho các tổ trực thuộc thực hiện và giám sát tiến độ theo phiếu theo dõi thực hiện bảo trì tháng
Căn cứ vào bảng nội dung bảo trì tháng, tình hình sản xuất và tình trạng máy móc thiết bị, trưởng đơn vị bảo trì quyết định thời điểm thực hiện bảo trì cụ thể và thông báo cho các đơn vị liên quan phối hợp thực hiện
Nhân viên PAT theo dõi tổ chức thực hiện kế hoạch kiểm định thiết bị có yêu cầu nghiêm ngặt về an toàn lao động
Với phương tiện phòng cháy chữa cháy định kỳ mỗi quý, nhân viên PAT-MT phối hợp với đội phòng cháy chữa cháy thực hiện kiểm tra cập nhật phiếu theo dõi và
đề xuất bảo trì các phương tiện không đảm bảo yêu cầu kỹ thuật
Bước 6 : Kiểm tra kết quả
Sau khi thực hiện bảo trì xong, tổ trưởng bảo trì và các tổ trưởng sử dụng thiết
bị sẽ nghiệm thu các nội dung bảo trì đã được thực hiện vào Phiếu theo dõi bảo trì
y Đạt : đưa vào sử dụng và dán tem bảo trì
Trang 33y Không đạt : thực hiện bảo trì lại
Đối với các thiết bị có yêu cầu kỹ thuật cao sau khi thực hiện bảo trì, phải được PKT kiểm tra nghiệm thu
Với thiết bị có yêu cầu nghiêm ngặt về an toàn sẽ cập nhật vào kế hoạch kiểm định
Bước 7 : Cập nhật hồ sơ lý lịch
Khi nghiệm thu đạt, các tổ bảo trì sẽ cập nhật các nội dung bảo trì vào trang theo dõi bảo trì và phiếu theo dõi thực hiện bảo trì tháng Cuối tháng căn cứ trên phiếu theo dõi bảo trì tháng, trưởng đơn vị bảo trì cập nhật ngày bảo trì vào kế hoạch bảo trì năm
và lập nội dung bảo trì cho tháng tiếp theo
Đối với các thiết bị có yêu cầu nghiêm ngặt về an toàn sau khi kiểm định, cơ
quan kiểm định cập nhật lý lịch thiết bị
Bước 8 :Tổng kết, đánh giá hiệu quả công tác bảo trì
Hằng tháng, từ ngày 28 đến ngày 2 của tháng sau, PXCK, PXĐĐ và PKT sẽ Đánh giá công tác bảo trì sửa chữa trong tháng Đề xuất các biện pháp phòng ngừa và
lập báo cáo trình cuộc họp xem xét lãnh đạo( nếu có biện pháp phòng ngừa)
Cập nhật bổ sung hoặc điều chỉnh các hạng mục bảo trì tiếp theo cho phù hợp
Bước 9 : Lưu hồ sơ
PKT lưu và quản ý hồ sơ bảo trì, bao gồm:
Trang 34* Lưu đồ mô tả quy trình bảo trì thiết bị :
9 PXCK,PXĐĐ,
PXSX,PKT
Không hợp lý
Hợp lý
Phê duyệt
kế hoạch bảo trì Lập kế hoạch bảo trì
Trang 35
1 Sơ đồ ERWIN :