tìm hiểu về joomla

38
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

Upload: luong-ba-hop

Post on 07-Jul-2015

414 views

Category:

Internet


5 download

DESCRIPTION

Tìm hiểu về joomla và các thành phần mở rộng của joomla

TRANSCRIPT

Page 1: Tìm hiểu về Joomla

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

Page 2: Tìm hiểu về Joomla

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

Page 3: Tìm hiểu về Joomla

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

Page 4: Tìm hiểu về Joomla

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

Page 5: Tìm hiểu về Joomla

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

Page 6: Tìm hiểu về Joomla

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

Page 7: Tìm hiểu về Joomla

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

Page 8: Tìm hiểu về Joomla

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

Page 9: Tìm hiểu về Joomla

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

Page 10: Tìm hiểu về Joomla

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

Page 11: Tìm hiểu về Joomla

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

Page 12: Tìm hiểu về Joomla

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

Page 13: Tìm hiểu về Joomla

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

Page 14: Tìm hiểu về Joomla

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

Page 15: Tìm hiểu về Joomla

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

Page 16: Tìm hiểu về Joomla

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

Page 17: Tìm hiểu về Joomla

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

Page 18: Tìm hiểu về Joomla

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

Page 19: Tìm hiểu về Joomla

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

Page 20: Tìm hiểu về Joomla

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

Page 21: Tìm hiểu về Joomla

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

Page 22: Tìm hiểu về Joomla

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

Page 23: Tìm hiểu về Joomla

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

Page 24: Tìm hiểu về Joomla

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

Page 25: Tìm hiểu về Joomla

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

Page 26: Tìm hiểu về Joomla

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

Page 27: Tìm hiểu về Joomla

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

Page 28: Tìm hiểu về Joomla

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

Page 29: Tìm hiểu về Joomla

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

Page 30: Tìm hiểu về Joomla

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

Page 31: Tìm hiểu về Joomla

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

Page 32: Tìm hiểu về Joomla

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

Page 33: Tìm hiểu về Joomla

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

Page 34: Tìm hiểu về Joomla

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

Page 35: Tìm hiểu về Joomla

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

Page 36: Tìm hiểu về Joomla

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

Page 37: Tìm hiểu về Joomla

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

Page 38: Tìm hiểu về Joomla

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