tìm hiểu về joomla
DESCRIPTION
Tìm hiểu về joomla và các thành phần mở rộng của joomlaTRANSCRIPT
JOOMLA
Giảng viên hướng dẫn : Thầy Phạm Thanh Hà - Bộ môn Mạng & HTTT
Sinh viên : Lương Bá Hợp MSSV 1105068
Lớp : Hệ Thống Thông Tin K52
1
Thiết kế web Joomla
Mục lục
I. Joomla là gì ?
II. Cài đặt như thế nào ?
III. Joomla extensions là gì ?
IV. Xây dựng Template
V. Xây dựng module
JOOMLA
VI. Xây dựng component
I. Joomla là gì ?
1 Khái niệm
- Joomla là một hệ quản trị nội dung mã nguồn mở ( Content Management System -CMS)
- Joomla được viết bằng ngôn ngữ PHP và kết nối tới cơ sở dữ liệu MySQL .
3
I. Joomla là gì ?
2. Lịch sử ra đời
- Ngày 16 -9 - 2005 Tổ chức Open Source Matters đã cho Joomla 1.0 ra đời .
- Open Source Matters là tổ chức phi lợi nhuận , đứng đầu là Andrew Eddie (người Úc).
4
I. Joomla là gì ? 3 . Các dòng phiên bản
Hiện Joomla đã có các dòng phiên bản chính:
- Dòng phiên bản 1.0.X (Phiên bản đầu tiên ) hay còn gọi là Joomla 1.0.0 được phát hành (16 / 9/2005)
- Dòng phiên bản 1.5.X (thế hệ thứ 2)
- Dòng phiên bản 2.5.x
- Dòng phiên bản 3.0.x, đang ở dạng 3.0 alpha-1.
- Cho tới thời điểm này, Phiên bản 3.2.x đã ra đời, bản mới nhất của là 3.2.3
5
I. Joomla là gì ?
4. Kiến trúc của joomla
Joomla gồm có 3 tầng hệ thống :
- Tầng dưới cùng là mức nền tảng, chứa các thư viện và các plugin
- Tầng thứ hai là mức ứng dụng và chứa lớp JApplication. Hiện tại tầng này gồm 3 lớp con: JInstallation, JAdministrator vàJSite.
- Tầng thứ ba là mức mở rộng, tại tầng này có các thành phần (component), mô đun (module) và giao diện (template) được thực thi và thể hiện.
6
I. Joomla là gì ?
5 Ứng dụng của joomla Joomla được ứng dụng vào:
- Các cổng thông tin điện tử hoặc các website doanh nghiệp
- Thương mại điện tử trực tuyến
- Báo điện tử, tạp chí điện tử
- Website của các doanh nghiệp vừa và nhỏ
- Website của các cơ quan, tổ chức phi chính phủ
- Website các trường học
- Website của gia đình hay cá nhân ...
7
II. Cài đặt joomla như thế nào ?
1. Môi trường và công cụ phát triển
Để xây dựng và phát triển ứng dụng này ta cần phải cài đặt môi trường máy ảo php và có các công cụ cần thiết sau :
- Server Apache
- Bộ php
- Bộ MySQL
- Phiên bản mã nguồn mở joomla ổn định
- Các chương trình soạn thảo : phpDesigner 2008 , Dreamwear CS6…
8
II. Cài đặt joomla như thế nào ?
1 Môi trường và công cụ phát triển (tiếp)
=> Để thuận lợi và nhanh chóng hơn , ta có thể cài bộ XAMPP tích hợp tất cả server apache php và mysql
- XAMPP : dùng để giả lập máy tính của bạn thành một máy chủ web ( máy tính của bạn khi được giả lập máy chủ web sẽ được gọi là : localhost , để phân biệt với các máy chủ đang hoạt động trên web là host server )
9
II. Cài đặt joomla như thế nào ?
1 Môi trường và công cụ phát triển (tiếp)
Cụ thể như sau :
- Joomla phiên bản 1.5.25
(http://www.joomla.org/download.html)
Đây là phiên bản ổn định , dễ tiếp cận và sử dụng cho người mới nghiên cứu về joomla
- Dreamwear CC
- XAMPP 1.7.7
10
II. Cài đặt joomla như thế nào ?
2 Tiến hành cài đặt
Bước 1 : Tạo 1 CSDL trên MySQL
Bước 2 : Copy folder Joomla đặt vào trong folder htdocs của XAMPP
Bước 3 : Vào trình duyệt truy cập vào địa chỉ như sau : http://localhost/ten_folder_joomla
Bước 4 : Làm theo 7 bước được yêu cầu .
11
II. Cài đặt joomla như thế nào ?
3 Lỗi Khi bạn cài đặt gói XAMPP , Joomla 1.5 Bạn thấy dòng lỗi tương
tự như sau :Strict Standards: Declaration of JButtonPopup::fetchId() should be compatible with that of JButton::fetchId()inD:\Learning\Joomla\ libraries\joomla\html\toolbar\button\popup.php on line 78
Khắc phục bằng cách :Bước 1: vào ổ đĩa cài đặt XAMPP, ở đây mình cài ổ C:\ nên có đường dẫn như sau C:\xampp\php\php.ini
Bước 2: mở tập tin php.ini ra
Bước 3: thay error_reporting = E_ALL | E_STRICT thành error_reporting = E_ALL & ~E_NOTICE
Tìm và sửa :
display_errors = On => display_errors = Off
Bước 4: mở XAMPP Control Panel Application, restart lại Apache12
III. Joomla Extensions là gì ?
1. Khái niệm
Joomla Extensions là các thành phần mở rộng của Joomla, đó là các gói ứng dụng được phát triển bởi Joomla hoặc các hãng thứ ba nhằm bổ sung và tăng cường tính năng cho Joomla giúp người sử dụng nhanh chóng triển khai một hệ thống website phức tạp với nhiều chức năng, dịch vụ khác nhau.
13
III. Joomla Extensions là gì ?
1 Khái niệm ( tiếp )Để tìm một Extension đáp ứng yêu cầu của bạn như: Tạo website cộng đồng, tạo trang web chia sẻ tài liệu, chia sẻ video/nhạc...
bạn có thể truy cập vào Website Joomla Extensions Directory (JED). Tại đây bạn có thể chọn cho mình một extension phù hợp từ danh mục có sẵn hoặc theo từ khóa mà bạn chỉ định.
Có rất nhiều Extensions được phát hành miễn phí và có mã nguồn mở, điều đó có nghĩa là bạn được tự do sử dụng, tự do chỉnh sửa mã nguồn theo yêu cầu riêng của bạn. Một số Extension khác thì phát hành có phí. Mặc dù vậy mức giá các Extension thương mại này đều khá phù hợp
14
III. Joomla Extensions là gì ?
2. Các loại joomla extensions
Component: Đây là ứng dụng thực hiện một chức năng lớn (tương tác với người sử dụng ở mức cao). VD như: Quản lý tin bài, quản lý quảng cáo, quản lý sản phẩm, quản lý download...
Module: Chủ yếu nhằm mục đích hiển thị thông tin (tương tác với người sử dụng ở mức thấp). VD như: tin mới nhất, tin đọc nhiều nhất, đếm số lượt truy cập...
15
III. Joomla Extensions là gì ?
2. Các loại joomla extensions( tiếp )
Plugin: Nhằm thực hiện những chức năng đặc biệt hoặc giúp tự động hóa một số quy trình, công đoạn. VD như: Cung cấp trình soạn thảo, xử lý chứng thực quyền hạn, tự động thay thế các đoạn mã chèn video, flash, mp3... Template: Gói giao diện tạo nên bố cục và hình hài của Website
Language: Gói ngôn ngữ bản địa
Tools: Các công cụ hỗ trợ khác16
IV. Xây dựng Template
1. Tại sao phải thiết kế template ?
Sau khi tìm hiểu về CMS Joomla và cũng đã biết sức mạnh phổ biến và được nhiều người dùng nó đến thế nào. Khi đã tin cậy sử dụng 1 CMS cho việc xây dựng 1 website, hẳn là các bạn đã hài lòng về các tính năng nó đem lại hay được nhiều người dùng hỗ trợ .
Và vấn đề còn lại là giao diện của website, quả thật template luôn là vấn đề được quan tâm thứ 2 khi sử dụng 1 CMS để xây dưng website, template luôn là bộ mặt thể hiện cho Website để thu hút người dùng.
17
IV. Xây dựng Template
2 Cấu trúc của một template như nào ? Một template Joomla có thể có nhiều file, tùy tính năng, nhưng cần ít nhất có các file sau:
- index.php: đây là file quan trọng nhất, có nhiệm vụ định dạng cho trang web của bạn
- templateDetails.xml: file này cấu hình thông tin về template của bạn như: thông tin về tác giả template, các vị trí (position), các tham số (params).
- template_thumbnail.png: file hình mô tả template của ban (Hình này sẽ hiện ra khi bạn vào Template Manager)
- params.ini: Chứa các tham số được người dùng nhập trong template.
18
IV. Xây dựng Template 3 Xây dựng template như nào ? Trước khi bắt đầu, Ta sẽ phác thảo trước giao diện template, ví dụ
template sẽ làm như sau:
19
IV. Xây dựng Template 3 Xây dựng template như nào ? a, Tạo file index.php<body>
<div id="all">
<div id="header">
<jdoc:include type="modules" name="header" style="xhtml" />
</div><!--Kết thúc thẻ header--!-->
<div class="clear"></div>
<?php if ($this->countModules('menu')): ?>
<div id="menu">
<jdoc:include type="modules" name="menu" style="xhtml" />
</div><!--Kết thúc thẻ menu--!-->
<div class="clear"></div>
<?php endif; ?>
<?php if ($this->countModules('slider')): ?>
<div id="slider">
<jdoc:include type="modules" name="slider" style="xhtml" />
</div><!--Kết thúc thẻ slider--!-->
<div class="clear"></div>
<?php endif; ?>
(Trích code trong file index.php)20
IV. Xây dựng Template
3 Xây dựng template như nào ? a, Tạo file index.php (t)
Giải thích một vài câu lệnh :
defined('_JEXEC') or die('Restricted access');
Đoạn mã này nó sẽ hiển thị 1 đoạn thông báo hạn chế truy cập. Câu lệnh này rất quan trọng đối cho sự an toàn của Joomla.
<?php if ($this->countModules('user1')):?> <jdoc:include type="modules" name="user1" style="xhtml" />
<?php endif; ?>
Câu lệnh này kiểm tra tại vị trí user1 có tồn tại module nào không ?, nếu có thì hiển thị, và nếu không thì sẽ ẩn đi
21
IV. Xây dựng Template
3 Xây dựng template như nào ? a, Tạo file index.php (t)
Giải thích một vài câu lệnh :
<jdoc:include type="modules" name="left" style="xhtml" />
Các position được khai báo bằng thuộc tính name của đối tượng jdoc. Ở đây, câu lệnh này sẽ hiển thị các module tại vị trí left.
22
IV. Xây dựng Template
3 Xây dựng template như nào ? ( tiếp )b, Cấu hình file style.css File style.css sẽ định dạng kích thước , màu sắc … cho các đối tượng html
*{ margin:0px auto ; padding:0px}
.clear{ clear:both}
ul , ol{ list-style:none}
a{ text-decoration:none}
body{ background: url(images/nenbody.gif); font-family:Tahoma, Geneva, sans-serif; font-size:12px}
#all{ width:1000px; min-height:1200px;margin:0px auto; background:#FFF }
#header{width:1000px; height:83px; float:left; background:url(images/banner.png)}
#menu{width:1000px; height:50px; float:left; background:#090;}
#slider{ float:left; width:1000px; height:335px}
#main{width:1000px; float:left; min-height:1000px }
#left{width:200px; float:left; text-align:center}
#content{width:600px; float:left; text-align:center}
#right{width:200px; float:right}
#footer{width:1000px; height:150px; float:left; background: #0F3}
23
IV. Xây dựng Template
3 Xây dựng template như nào ? ( tiếp )c, Tạo file templateDetails.xml : <?xml version="1.0" encoding="utf-8"?>
<install version="1.5" type="template">
<name>Lương Bá Hợp </name>
<version>1.0.0</version>
<creationDate>03/03/2014</creationDate>
<author>HTTT-K52</author>
<authorEmail>[email protected]</authorEmail>
<copyright>© copyright 2014</copyright>
<license>GNU/GPL</license>
<description>Demo Template </description>
<files>
<filename>component.php</filename>
<filename>css/images/index.html</filename>
<filename>css/index.html</filename>
<filename>html/index.html</filename>
<filename>html/modules.php</filename>
<filename>html/pagination.php</filename>
<filename>images/index.html</filename>
<filename>index.html</filename>
(Trích code file templateDetails.xml)24
IV. Xây dựng Template
3 Xây dựng template như nào ? ( tiếp )
Kỹ thuật Template Override
Viết lại template cho các module và component, đây gọi là kỹ thuật Template Override, 1 tính năng nâng cao của template Joomla
Mặc định, các template của module hay component được đặt trong 1 folder có tên là tmpl, nằm trong folder của com hay module đó. Với com thì có thể nó nằm trong 1 thư mục view nữa, vì các com của joomla thường viết theo mô hình mvc, nên sẽ có các thư mục như controller, model, view.
25
IV. Xây dựng Template
3 Xây dựng template như nào ? ( tiếp )
Kỹ thuật Template Override (t)
Tự động , hệ thống của Joomla sẽ nhận diện các template được chỉnh sửa trong thư mục html nằm trong thư mục template. File default.php khi đặt trong folder html, phải được đặt trong 1 folder có tên tương ứng với module hay com chúng ta chỉnh sửa.
Chúng ta sẽ sử dụng kỹ thuật này để thiết kế lại 1 template của com hay module mà chỉ khi sử dụng template của chúng ta, nó mới được thay đổi, còn nếu sử dụng các template khác, nó vẫn bình thường
26
IV. Xây dựng Template
3 Xây dựng template như nào ? ( tiếp )
Kỹ thuật Template Override (t)
Một khi không muốn sử dụng chúng nữa ta chỉ cần xóa folder file đó trong thư mục html của template. Hệ thống Joomla sẽ tự động nhận diện lại file template nằm trong thư mục các module hay component
27
V. Xây dựng Module
1 Tại sao phải thiết kế module ?
Sau khi cài đặt Joomla chỉ có một số Modun cơ bản cần thiết cho Web Site hoạt động, muốn mở rộng thêm chức năng cho Web Site thông thường cần phải cài đặt thêm các phần mở rộng (Extensions) khác. Tuy nhiên đôi lúc cũng cần phải tự tạo cho riêng Web Site của mình một vài Modun để mở rộng thêm chức năng riêng cho Web Site.
28
V. Xây dựng Module 2. Cấu trúc của một module ? Module gồm 4 file cơ bản được dùng trong mẫu tiêu chuẩn của việc
phát triển module - mod_ten_module.xml - File này chứa thông tin về module . Nó
định nghĩa ra các files cần thiêt để cài đặt từ trình cài đặt của joomla và chỉ ra các tham số cấu hình cho module
- mod_ten_module.php - File này là điểm vào chính cho module . Nó sẽ thực hiện những khởi tạo cần thiết , gọi các helper để thu thập mọi dữ liệu cần thiết và include template hiển thị đầu ra của module
- helper.php - File này chứa các lớp helper , được dùng để thực hiện các hành động thực sự để lấy về các thông tin mà sẽ được hiển thị trên module - tmpl/default.php – File này là template của module . Nó sẽ lấy về dữ liệu đã được thu thập bởi mod_ten_module.php và sinh ra mã html đê hiển thị lên trang web
29
V. Xây dựng Module
3. Xây dựng 1 module như thế nào ? Ở đây mình sẽ đặt tên module là mod_chatbox .
a, Tạo file mod_chatbox.php : File này thực hiện 3 nhiệm vụ :
- Include file helper.php bằng câu lệnh require_once
require_once( dirname(__FILE__).DS.'helper.php' );- Triệu gọi phương thức trong lớp helper để lấy về dữ liệu
$html = modChatboxHelper::getParams(&$params);- Include template để hiển thị đầu ra
require( JModuleHelper::getLayoutPath( 'mod_chatbox' ));
30
V. Xây dựng Module
3 Xây dựng 1 module như thế nào ? (t)Ở đây mình sẽ đặt tên module là mod_chatbox .
b, Tạo file helper.php
File helper.php chứa các lớp helper dùng để lấy về dữ liệu cho đầu ra của module
class modChatboxHelper
{
function getChatbox(&$params)
{
return ‘hello world ! ’;
}
}31
V. Xây dựng Module
3 Xây dựng 1 module như thế nào ? (t)Ở đây mình sẽ đặt tên module là mod_chatbox .
c, Tạo tmpl/default.php
File default .php là một template nó sẽ hiển thị đầu ra của module
<?php
// Chống truy cập trực tiếp
defined( '_JEXEC' ) or die( 'Restricted access' );
echo $html;
?>
32
V. Xây dựng Module
3 Xây dựng 1 module như thế nào ? (t)Ở đây mình sẽ đặt tên module là mod_chatbox .
d, Tạo file mod_chatbox.xml
File mod_chatbox.xml được dùng để chỉ ra những file nào mà trình cài đặt cần phải copy và sẽ được sử dụng bởi module maneger để xác định tam số nào được dùng để cấu hình cho module
<?xml version="1.0" encoding="UTF-8"?>
<install type="module" version="1.5.0">
<name>Chát </name>
<author>Lương Bá Hợp </author>
<creationDate>March 17 2014</creationDate>
<copyright>@ COPY</copyright>
<license>http://www.gnu.org/copyleft/gpl.html GNU/GPL</license>
<version>1.5.0</version>
<description> Chat box</description>
<files>
<filename module="mod_chatbox">mod_chatbox.php</filename>
<filename>index.html</filename>
<filename>helper.php</filename>
<filename>tmpl/default.php</filename>
<filename>tmpl/index.html</filename>
<filename>mod_chatbox.xml</filename>
</files>
</install>33
V. Xây dựng Module
3 Xây dựng 1 module như thế nào ? (t)Ở đây mình sẽ đặt tên module là mod_chatbox .
e, Tạo mod_chatbox trên CSDL
Truy cập : http://localhost/phpmyadmin/
Tìm đến bảng jos_modules trong CSDL mà ta đang sử dụng , rồi chèn thêm dữ liệu về module chat box
=> Đến đây việc xây dựng module đã hoàn thành .
34
VI. Xây dựng Component
1 Tại sao phải thiết kế component ? - Một component là một trong những thành
phần mở rộng lớn nhất và phức tạp nhất. - Các component có thể xem như các ứng
dụng mini. Một cách trực quan chúng ta có thể hình dung joomla là một hệ điều hành và tất cả các component là các ứng dụng desktop
35
VI. Xây dựng Component
2 Một component gồm 2 phần :
Một componet có hai phần chính: phần quản trị và phần trên site :
+, Phần trên site là phần được sử dụng để tải về các trang khi được triệu gọi trong quá trình vận hành site thông thường
+, Phần quản trị cung cấp giao diện để cấu hình, quản lý các khía cạnh khác nhau của component và được truy cập thông qua ứng dụng quản trị của joomla.
36
VI. Xây dựng Component
3 Xây dựng 1 component như nào ?
- Để xây dựng được 1 component khá phức tạp và cần nhiều thời gian hơn để nghiên cứu .
- Bài thực hành chuyên môn của em xin phép được dừng tại đây !
37
Tài liệu tham khảo
Trong quá trình tìm hiểu về đề tài joomla , em đã tìm hiểu tài liệu tại các diễn đàn và website sau : http://diendan.joomlaviet.vn/http://forum.joomla.org/http://www.diendan.laptrinhjoomla.com/ http://www.thietkewebtop.com/
Link tải các phiên bản Joomla http://www.joomla.org/download.html
38