MẸO THỦ THUẬT SỬ DỤNG JOOMLA PHẦN 11.Cấu hình Joomla để gửi/nhận mail với GMail Thursday, 02 July 2009 08:45 Việc cấu hình Joomla để cho phép gửi/nhận mailemail thông qua tài khoản GMail
Trang 1MẸO THỦ THUẬT SỬ DỤNG JOOMLA (PHẦN 1)
1.Cấu hình Joomla để gửi/nhận mail với GMail
Thursday, 02 July 2009 08:45
Việc cấu hình Joomla để cho phép gửi/nhận mail(email) thông qua tài khoản GMail hay một tài khoảnmail của một hãng bất kỳ có sử dụng giao thức bảomật SSL/TLS đã được cộng đồng Joomla đề cập và bàntán nhiều, nhưng phải cho đến phiên bản Joomla1.5.12 được phát hành ngày hôm qua (01/7/2009), tính năng này mới chính thức có mặt
trong mục cấu hình Global Configuration Và đây thực sự là tin vui đối với các webmaster,
vì hiện có khá nhiều người đang phải sử dụng host free hay những host không hỗ trợ
gửi/nhận mail
Thao tác cấu hình khá đơn giản
Đầu tiên các bạn mở trang quản trị,
mở mục "Global Configuration" và
chọn tab "Server", sau đó tìm phần
"Mail Settings" và cấu hình như
• SMTP Username: Your Gmail username
• SMTP Password: Your Gmail password
• SMTP Host:smtp.gmail.com
Chúc các bạn thành công
Trong trường hợp bạn vừa nâng cấp lên Joomla 1.5.12, có thể phần "Mail Settings"
không xuất hiện đúng như trên thì bạn chỉ cần chỉnh sửa một thông số bất kỳ nào đó, sau
đó nhấn nút [Save] để Joomla! nhận các thông số mới.
Trang 22.Cách trình bày trang Homepage (Frontpage)
Homepage trong Joomla! được cài đặt và thể hiện thông qua một thành phần đặc biệt đó
là com_frontpage Do vậy trong Joomla! trang homepage còn được gọi là Front Page.
Thông qua trang Front Page bạn có thể trình bày một số cách: dạng blog, dạng kết hợp
blog + chia cột Với những ai mới làm quen với Joomla, các tham số đi kèm trang
Frontpage như: leading, intro, colums, links có thể gây khó khăn Tuy nhiên hi vọng
với một vài bước đơn giản dưới đây bạn hoàn toàn có thể làm chủ Frontpage
Bước 1: Đăng nhập vào trang quản trị (back-end).
VD: http://vinaora.com/administrator
Bước 2: Vào phần quản lý menu
Theo mặc định, trang Homepage được đặt trong "Main Menu" Mở menu Menus >
Main Menu > chọn "Home" và quan sát các tham số tùy chỉnh bên tay phải (mục
"Parameters")
VD bạn thiết lập như hình bên, bạn sẽ có kết quả như dưới đây:
thanhtong32
Trang 3Lưu ý:
Để quản lý các bài viết của trang FrontPage bạn mở menu "Content" > "Front Page
Manager"
Để có trang Homepage giống như VnExpress (các bài viết được trình bày lần lượt theo
các chủ đề) bạn cần tìm và cài đặt một component chẳng hạn như: D4Ezine, iJoomla
Một vài câu hỏi liên quan:
• Điều chỉnh trang Frontpage như thế nào?
• Edit trang Frontpage ở đâu?
• Chỉnh cột ở frontpage?
• Chuyển blog content từ 2 sang 1?
• Bố cục Front page (intro, read more)
Keyword: frontpage, front-page, Front Page
3 Quy trình tạo một bài viết trong Joomla!
Content (bài viết) trong Joomla! được tổ chức theo mô hình phân cấp và chỉ gồm 2 mức.
Mức cao nhất: Section (phần/mục), mức tiếp theo: Category (chuyên mục) là mức con
Trang 4Do vậy để tạo một bài viết chúng ta cần thực hiện tối đa là 3 bước.
• Bước 1 Tạo Section (phần/mục)
• Bước 2: Tạo Category (chuyên mục)
• Bước 3: Tạo Content (bài viết)
Chú ý:
• Khi tạo Website nên định hình và tạo ngay các phần/mục (Section) và các chuyên
mục (Category) tương ứng
• Joomla! chỉ hỗ trợ phân cấp thành 2 mức như trên Do vậy nếu muốn chia thành
nhiều mức hơn bạn cần tìm một component hỗ trợ từ site:
http://extensions.joomla.org
Keyword: bài viết, chuyên mục, content, section, category
4.Khắc phục lỗi không thể upload ảnh
Trình quản lý ảnh "Media Manager" của Joomla có một chức năng rất hay: Cho phép
upload nhiều ảnh cùng lúc và hiển thị mức độ % hoàn thành công việc Tuy nhiên trong
trường hợp nếu như bạn cài đặt phiên bản Flash Player 10 thì chức năng trên sẽ bị vô
hiệu hóa, không có bất cứ một cửa sổ nào xuất hiện khi bạn nhấn vào nút [Browse
Files].
Hình 01: Trình upload ảnh mặc định của Joomla không hoạt động khi cài Flash 10
Hình 02: Sử dụng trình upload ảnh đơn giản (upload từng file một)Lỗi này cũng ảnh hưởng tới tất cả các trình upload ảnh/video/flash có sử dụng công nghệ
Flash chứ không riêng gì Joomla
Để khắc phục lỗi trên có 2 cách:
• Không cài đặt Flash 10
• Hoặc vào Site > Global Configuration > Media Settings > mục "Enable
Flash Uploader" chọn No
thanhtong32
Trang 5Tắt bỏ trình upload ảnh dựa trên Flash của Joomla
Tham khảo thêm:
• Vấn đề với trình upload
• Lỗi upload ảnh với phiên bản Flash 10
• Những thay đổi về bảo mật trong phiên bản Flash 10
Keyword:
• joomla, upload, flash, 10, media, media settings
• trình upload, ảnh, không hoạt động, vô hiệu hóa, cửa sổ, lỗi
5 Lỗi "session.save_path"
Biến session.save_path được dùng để làm gì?
Trên các Webserver chạy PHP, thông tin về phiên làm việc hiện tại của người sử dụng
thường được lưu vào các file khác nhau và đặt vào một thư mục nào đó Chẳng hạn:
• thư mục "C:\wamp\tmp", "D:\xampp\tmp" (đối với hệ thống Windows)
• thư mục "/tmp", "/usr/var/tmp", "/var/lib/php/session" (đối với hệ thống
Linux)
Thư mục mà Webserver dùng để lưu các phiên làm việc này được khai báo thông qua biến
"session.save_path" và nằm trong file "php.ini" giống như dưới đây:
[Session]
; Handler used to store/retrieve data.
session.save_handler = files
thanhtong32
Trang 6; Path to store data
Những lỗi có thể xảy ra với biến "session.save_path"
Do biến "session.save_path" được khai báo trong file "php.ini" nên khi cài đặt cũng
như khi sử dụng Joomla! có 2 khả năng lỗi có thể xảy ra:
• Biến "session.save_path" chưa được thiết lập, nghĩa là có giá trị là " None" hoặc
"Not Set"
• Biến "session.save_path" đã được thiết lập là đường dẫn tới một thư mục nào
đó, nhưng bạn lại không có quyền ghi đối với thư mục này - "Unwriteable"
Cách xử lý lỗi
Bước 1: Xác định giá trị hiện tại của biến "session.save_path"
Tạo một file "session.php" có nội dung như sau:
<?php
echo (($sp=ini_get('session.save_path')) ?$sp:( 'none' ) );
?>
Sau đó mở link tới file này VD: http://vinaora.com/joomla/session.php Thông tin
hiển thị trên màn hình chính là đường dẫn tới thư mục chứa session của Webserver
Bước 2: Thiết lập lại giá trị biến "session.save_path"
Đầu tiên tạo một thư mục (hoặc chọn một thư mục) mà bạn có quyền ghi lên nó Thiết
lập Writeable (nếu là Host Windows) hoặc CHMOD 777 (nếu là Host Linux) cho thư mục
này
Tạo một file ".htaccess" ở thư mục gốc chứa Joomla của bạn với nội dung sau:
php_value session.save_path "/duong/dan/sesion/moi"
thanhtong32
Trang 7Không phải HOSTING nào cũng cho phép bạn thiết lập lại biến "session.save_path"
bằng file ".htaccess" Trong trường hợp này bạn cần liên hệ trực tiếp với HOSTING và đề
nghị họ thiết lập lại giúp bạn
Hoặc tạo một file "php.ini" ở thư mục gốc chứa Joomla của bạn với nội dung sau:
session.save_path = "/duong/dan/session/moi"
Nếu bạn đang làm trên LOCALHOST thì chỉ cần mở file php.ini và chỉnh sửa trực tiếp,
sau đó khởi động lại Webserver
Bạn cũng cần lưu ý: Không phải HOSTING nào cũng cho phép bạn thiết lập lại biến
"session.save_path" bằng file "php.ini" Hoặc bạn phải copy file này tới mọi thư mục.
Trong trường hợp này bạn cần liên hệ trực tiếp với HOSTING và đề nghị họ thiết lập lại
• lỗi, biến, biến session, thiết lập, đường dẫn
Câu hỏi liên quan:
• Bị lỗi với biến "session.save_path"?
• Xử lý lỗi "Session save path" như thế nào?
6 Lỗi thiếu bộ nhớ "Allowed memory size of
8388608 "
Quá trình cài đặt hoặc cấu hình một thành phần mở rộng của Joomla như: component,
module, mambot/plugin, template không phải lúc nào cũng suôn sẻ Đôi khi do thành
phần mở rộng - extension gồm quá nhiều file + dung lượng lớn + hoặc thao tác cần nhiều
bộ nhớ sẽ gây ra lỗi thiếu bộ nhớ và xuất hiện màn hình thông báo lỗi như sau:
Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 19456 bytes) in
Để khắc phục lỗi này chúng ta cần tăng giá trị giới hạn bộ nhớ PHP
thanhtong32
Trang 8Giá trị giới hạn bộ nhớ của PHP mặc định là 8M = 8388608 bytes, do đó có thể thay đổi
giá trị này bằng 32M chẳng hạn (bạn hoàn toàn có thể thiết lập nhiều hơn tùy theo dung
lượng RAM hiện có của server)
Cách 1: Dùng file ".htaccess"
• Tạo file ".htaccess" ở thư mục gốc chứa Joomla của bạn với nội dung sau:
php_value memory_limit 32M
Lưu ý: Không phải HOSTING nào cũng cho phép bạn thiết lập lại biến
"session.save_path" bằng file ".htaccess" Trong trường hợp này bạn cần liên hệ trực
tiếp với HOSTING và đề nghị họ thiết lập lại giúp bạn
Cách 2: Dùng file "php.ini"
• Tạo file "php.ini" với nội dung sau và đặt vào thư mục chứa Joomla
memory_limit = 32M
Nếu bạn đang làm trên LOCALHOST thì chỉ cần mở file php.ini và chỉnh sửa trực tiếp,
sau đó khởi động lại Webserver
Lưu ý: Không phải HOSTING nào cũng cho phép bạn thiết lập lại biến
"session.save_path" bằng file "php.ini" Hoặc bạn phải copy file này tới mọi thư mục.
Trong trường hợp này bạn cần liên hệ trực tiếp với HOSTING và đề nghị họ thiết lập lại
Nếu lỗi này xảy ra khi cài đặt thành phần mở rộng bạn có thể làm như sau:
• Giải nén gói thành phần mở rộng mà bạn cần cài đặt
• Upload lên một thư mục nào đó trên Server
• Khi cài đặt, chọn cài đặt từ một thư mục chứa thành phần mở rộng (tùy chọn 2)
• Nhấn nút cài đặt
thanhtong32
Trang 9• Xử lý lỗi bộ nhớ "8388608" như thế nào?
7 Lỗi đăng nhập vào Joomla có thể do những nguyên
• Đặt câu hỏi tại http://forum.joomla.org/ hoặc http://www.joomlaviet.org/forum/
2 Do Web Server, Hosting
• Hãy chắc chắn rằng Web Server của bạn đang bình thường Hỏi Hosting xem liệu
gần đây họ có cấu hình lại hay nâng cấp, cập nhật, sửa đổi gì không?
• Khuyến cáo sử dụng phần mềm Web Server: WAMP hoặc XAMPP (gồm:
Apache+MySQL+PHP) nếu bạn đang sử dụng localhost làm Web Serrver
3 Do tường lửa
• Hãy chắc chắn rằng phần mềm tường lửa (Norton , ZoneAlarm ) mà bạn đang sử
dụng không gây ảnh hưởng cho Joomla Hãy thử tắt nó đi
4 Do trình duyệt
• Thử trên các máy khác nhau để kiểm tra xem có phải chỉ mình máy bạn là không
vào được
• Xóa tất cả cache và cookie của trình duyệt.
• Sử dụng trình duyệt ở chế độ mặc định Nên tảiFireFox 2.0 và chọn cài mới để
thử
5 Gõ sai mật khẩu
• Hãy cố gắng nhớ lại mật khẩu mà bạn đã dùng
• Liệu bạn có để bộ gõ tiếng Việt (hoặc một ngoại ngữ khác) trong khi gõ mật khẩu
thanhtong32
Trang 106 Do gói ngôn ngữ cài đặt
• Có thể gói ngôn ngữ của bạn không chuẩn Bạn cần tải về gói ngôn ngữ mới nhất
từhttp://joomlaviet.org/
• Bạn có thể xóa các gói ngôn ngữ và chỉ giữ lại gói ngôn ngữ tiếng Anh và thử đăng
nhập lại
7 Do cấu trúc database bị thay đổi
• Một số bản Joomla, đặc biệt là Joomla 1.5 do đang ở giai đoạn beta nên đôi khi cấu
trúc database bị thay đổi (thêm/bớt cột, thay đổi độ rộng ) do vậy cũng ảnh
hưởng đến việc đăng nhập
• Giải pháp: Bạn chỉ có thể mò mẫm từng bước để xem bảng dữ liệu nào đã bị thay
đổi và đưa vấn đề của mình lênhttp://forum.joomla.org và
Trang 11Mẹo Joomla!
8 Lỗi mất định dạng trong phần "Description" của
Docman
Lỗi mất định dạng trong phần "Description" của DOCman xảy ra khi cài đặt phiên bản
Joomla 1.5.x và DOCman v1.4.0 RC3 - 2003-2008 Lỗi này khiến cho toàn bộ phần
"Description" mất các định dạng HTML như: In đậm, in nghiêng, màu chữ, font chữ, căn
Câu hỏi liên quan:
• Lỗi phần "Description" trong DOCMan?
• Trình soạn thảo (Editor) trong DOCMan không hoạt động
9 Cách xác định đường dẫn tuyệt đối
{absolute_path}
Trong một số trường hợp cần xác định đường dẫn tuyệt đối tới một thư mục hoặc file nào
đó Chẳng hạn, phải xác định đường dẫn tuyệt đối tới thư mục chứa Joomla trên Website
của bạn để điền vào thông số $mosConfig_absolute_path (Joomla 1.0.x) hoặc
$absolute_path (Joomla 1.5.x) trong file "configuration.php", bạn có thể làm như
Trang 12Trường hợp sử dụng hàm getcwd(), hoặc dirname( FILE ) đường dẫn sẽ hiển thị
trên màn hình Còn nếu sử dụng hàm phpinfo() thì tìm thông số SCRIPT_FILENAME
để biết đường dẫn tới file info.php nói trên.
var $absolute_path = '/home/vinaora/httpdocs';
var $log_path = '/home/vinaora/httpdocs/logs';
var $tmp_path = '/home/vinaora/httpdocs/tmp';
Keyword:
• xác định, đường dẫn, tuyệt đối, absolute_path, mosConfig_absolute_path,
configuration.php
Câu hỏi liên quan:
• Làm sao xác định đường dẫn $mosConfig_absolute_path?
• $mosConfig_absolute_path là gì?
• Khai báo biến $mosConfig_absolute_path trong file "configuration.php" như thế
nào?
thanhtong32
Trang 1310 Chỉ hiển thị vùng {mainbody} hay {component}
của một Website Joomla
Để hiển thị vùng {mainbody} hay vùng {component} của một Website Joomla 1.5 mà
không có bất cứ một module nào và cũng không áp dụng định dạng do file CSS quy định
bạn có thể sử dụng mẹo sau:
Thêm " ?tmpl=component " hoặc " &tmpl=component " và phía cuối đường link của
một trang bất kỳ mà bạn muốn hiện vùng {mainbody} / {component}
Thí dụ: Nếu muốn hiển thị vùng {mainbody} / {component} của website
community.joomla.org bạn chỉ cần thêm "?tmpl=component" vào phía cuối của đường
link để có link dạng như sau:
http://community.joomla.org/?tmpl=component.
Vùng {mainbody} / {component} là vùng (P) trong hình trên, nơi sẽ nạp component của
trang
Trong trường hợp bạn lại không muốn mọi người xem được vùng {mainbody}
/{component} của Website bạn có thể sử dụng đoạn mã sau, đặt vào file htaccess
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{QUERY_STRING} tmpl=
RewriteRule ^(.*)$ http://vinaora.com/index.php [F,L]
Chú ý: Thay http://vinaora.com bằng địa chỉ Website của bạn Và nếu muốn chuyển
hướng về trang chủ thì thay [F,L] bằng [R,L] (F: Fobridden, R: Redirect, L: Last Rule)
thanhtong32
Trang 14Tham khảo thêm:
• How to view just your component in Joomla! 1.5
Keyword:
• chỉ hiển thị, mainbody, component, tmpl, tmpl=component
11 Hack com Search: Bỏ chức năng sắp thứ tự
Để bỏ tính năng sắp thứ tự khi tìm kiếm (một tính năng ít được sử dụng và không cần
thiết) của Joomla! bạn chỉ cần vài phút thực hiện theo hướng dẫn dưới đây:
Đối với Joomla 1.5.x
Tìm file "\components\com_search\views\search\tmpl\ default_form.php" >
dòng ~23 và cho đoạn mã vào cặp thẻ chú thích
Trang 15Tìm file "\components\com_search\ search.html.php" >dòng ~59 và cho đoạn
• search, tìm kiếm, ordering
12 Cấm xem vị trí các module trên Template
Theo mặc định, các Website Joomla đều cho phép xem vị trí các module của Template
theo dạng đường dẫn
http://domain/index.php ?tp=1 hoặc http://domain/ ?tp=1
VD:http://joomla.org/?tp=1
Để cấm (vô hiệu hóa) tính năng trên bạn chỉ cần thêm các dòng sau vào file " htaccess "
(được đặt ở thư mục chứa Joomla - cùng mức với file configuration.php)
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{QUERY_STRING} tp=
RewriteRule ^(.*)$ http://vinaora.com/index.php [F,L]
Dòng 1 & 2 nếu có rồi thì thôi
Thay http://vinaora.com/index.php = link mà các bạn muốn
F: Fobridden (Còn nếu nếu muốn chuyển hướng về trang chủ thì thay F = R: Redirect)
L: Last rule
thanhtong32
Trang 16Đây cũng là cách để chặn lọc và chuyển hướng các chuỗi không mong muốn.
Hosting phải hỗ trợ file ".htaccess" và mod_rewrite phải được bật
Tham khảo thêm
• http://www.joomlaviet.org/forum/viewtopic.php?f=33&t=5511
• http://www.joomlaviet.org/forum/viewtopic.php?f=5&t=6350
Keyword
• module, vị trí, templae, htaccess
13 Lỗi mất ký tự tiếng Việt trong tiêu đề Joomla 1.5
Cách khắc phục
• Bước 1: Tìm file [Joomla1.5]/libraries/joomla/filter/ filteroutput.php
• Bước 2: Mở file này bằng trình soạn thảo Notepad++ (miễn phí, nhanh, gọn )
• Bước 3: Save file bằng định dạng UTF-8 Without BOM: cho phép lưu các ký tự
UTF-8 và quan trọng là không có ký tự đánh dấu UTF8 ở đầu file Xem hình để rõ
hơn
thanhtong32
Trang 17• Bước 4: Tìm đến ~ dòng 87 và chèn thêm 10 dòng mã sau (dòng 88-97):
10 dòng mã cần chèn:
// Hacked by VINAORA.COM
$utf8characters = 'à|a, ả|a, ã|a, á|a, ạ|a, ă|a, ằ|a, ẳ|a, ẵ|a, ắ|a, ặ|a, â|a, ầ|a, ẩ|a, ẫ|a, ấ|a, ậ|a, đ|d, è|e,
ẻ|e, ẽ|e, é|e, ẹ|e, ê|e, ề|e, ể|e, ễ|e, ế|e, ệ|e, ì|i, ỉ|i, ĩ|i, í|i, ị|i, ò|o, ỏ|o, õ|o, ó|o, ọ|o, ô|o, ồ|o, ổ|o, ỗ|o,
ố|o, ộ|o, ơ|o, ờ|o, ở|o, ỡ|o, ớ|o, ợ|o, ù|u, ủ|u, ũ|u, ú|u, ụ|u, ư|u, ừ|u, ử|u, ữ|u, ứ|u, ự|u, ỳ|y, ỷ|y, ỹ|y, ý|y,
ỵ|y, À|A, Ả|A, Ã|A, Á|A, Ạ|A, Ă|A, Ằ|A, Ẳ|A, Ẵ|A, Ắ|A, Ặ|A, Â|A, Ầ|A, Ẩ|A, Ẫ|A, Ấ|A, Ậ|A, Đ|D, È|E, Ẻ|E, Ẽ|E,
É|E, Ẹ|E, Ê|E, Ề|E, Ể|E, Ễ|E, Ế|E, Ệ|E, Ì|I, Ỉ|I, Ĩ|I, Í|I, Ị|I, Ò|O, Ỏ|O, Õ|O, Ó|O, Ọ|O, Ô|O, Ồ|O, Ổ|O, Ỗ|O,
Ố|O, Ộ|O, Ơ|O, Ờ|O, Ở|O, Ỡ|O, Ớ|O, Ợ|O, Ù|U, Ủ|U, Ũ|U, Ú|U, Ụ|U, Ư|U, Ừ|U, Ử|U, Ữ|U, Ứ|U, Ự|U, Ỳ|Y,
Ỷ|Y, Ỹ|Y, Ý|Y, Ỵ|Y, "|, &|';
$replacements = array();
$items = explode(',', $utf8characters);
foreach ($items as $item) {
@list($src, $dst) = explode('|', trim($item));
$replacements[trim($src)] = trim($dst);
}
thanhtong32