MẸ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ản
mail của một hãng bất kỳ có sử dụng giao thức bảo
mật SSL/TLS đã được cộng đồng Joomla đề cập và bàn
tán nhiều, nhưng phải cho đến phiên bản Joomla
1.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ư
sau:
• Mailer: SMTP Server
• Mail From: Địa chỉ thư của
bạn
• From Name: Tiêu đề thư
• SMTP Authentication: Yes
• SMTP Security: SSL
• SMTP Port: 465
• 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
• 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
của Section.
Bạn có thể xem sơ đồ dưới đây hoặc hình vẽ mô tả bên cạnh.
|Section|
|Category|
|Content 1|
|Content 2|
thanhtong32
Do 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:
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
session.save_path = "c:/wamp/tmp"
; Whether to use cookies.
session.use_cookies = 1
; Name of the session (used as cookie name).
session.name = PHPSESSID
; Initialize session on request startup.
session.auto_start = 0
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: 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
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
Giá 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
giúp bạn.
Cách 3: Dùng file "configuration.php"
• Thêm đoạn sau vào đầu file "configuration.php":
<?php
ini_set("memory_limit","32M");
?>
Trong tình huống cài đặt thành phần mở rộng
(extension)
• 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ải FireFox 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
6. 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ừ />• 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ên và
/>8. Do biến session.save_path
• Sẽ chỉ cụ thể sau: />Một số giải pháp khác
1. Mở database của bạn bằng phpMyAdmin hoặc một tool khác mà Hosting của bạn
cung cấp.
2. Mở bảng jos_users
3. Tìm bản ghi username=admin và thay password bằng giá trị sau
439581667ef694b60d58f213cccf9503
Đăng nhập lại hệ thống bằng tài khoản: username: admin, password: vinaora
Tham khảo:
• />• />• />thanhtong32
Mẹo Joomla!
8. Lỗi mất định dạng trong phần "Description" của
Docman
echo $p;
?>
hoặc
<?php
$p = dirname(__FILE__);
echo $p;
?>
hoặc
<?php
phpinfo();
?>
Sau đó mở trình duyệt và gõ vào địa chỉ tới file này.
VD: http://yoursite/info.php, />Trườ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.
Nếu:
SCRIPT_FILENAME = '/home/vinaora/httpdocs/info.php'
thì
// Trong Joomla 1.0.x
$mosConfig_absolute_path = '/home/vinaora/httpdocs';
$mosConfig_cachepath = '/home/vinaora/httpdocs/cache';
// Trong Joomla 1.5.x
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?
Để 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
<!
<tr>
<td colspan="3">
<label for="ordering">
<?php echo JText::_( 'Ordering' );?>:
</label>
<?php echo $this->lists['ordering'];?>
</td>
</tr>
>
Đối với Joomla 1.0.x
thanhtong32
Tìm file "\components\com_search\search.html.php" > dòng ~59 và cho đoạn
mã vào cặp thẻ chú thích
<!
<tr>
<td colspan="3">
<label for="search_ordering">
<?php echo _CMN_ORDERING;?>:
</label>
<?php echo $lists['ordering'];?>
</td>
</tr>
>
Keyword:
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
$str = trim(strtr($str, $replacements));
// End Hack
• Bước 5: Save file lần cuối và kiểm tra
Tham khảo thêm
• Joomla 1.5 Stable và vấn đề tiêu đề tiếng Việt utf-8
14. Thay đổi cách hiển thị tiêu đề bài viết trong
Joomla
Tiêu đề của bài viết trong Joomla có thể ở các dạng sau:
• Dạng 1: Tên site - Tên bài viết (VD: VINAORA - Hướng dẫn cài đặt Joomla 1.5)
• Dạng 2: Tên bài viết - Tên site (VD: Hướng dẫn cài đặt Joomla 1.5 - VINAORA)
• Dạng 3: Tên bài viết (VD: Hướng dẫn cài đặt Joomla 1.5)
Nếu bạn đang sử dụng
Joomla 1.5
Tìm đến file [Joomla1.5]\libraries\joomla\document\html\renderer\head.php ~
http://your-domain/administrator
VD: />Để không phải gõ một cụm dài "administrator" phía sau domain, ta có thể tạo một
đường dẫn tắt chẳng hạn
-> và được chuyển hướng tới >
/>Cách thực hiện như sau:
Tạo file .htaccess nằm ở thư mục gốc chứa Joomla! (hoặc thêm vào phía cuối file này
nếu đã có) nội dung sau:
Redirect /123 http://your-domain/administrator
Chú ý:
Nếu Website của bạn có dạng http://you-domain/joomla (VD: />thì bạn cần gõ nội dung sau:
Redirect /joomla/123 http://your-domain/administrator
thanhtong32
Cảnh báo:
Chỉ áp dụng cho Website chạy trên Apache và có hỗ trợ file .htaccess
16. Bỏ dòng chữ "Welcome to the Frontpage"
Bỏ dòng chữ "Welcome to the Frontpage" trong Joomla 1.5
Đăng nhập vào trang quản trị (back-end)
VD: />Mở menu chứa Front Page
Mở menu Menus > Main Menu > chọn mục Parameters - System bên tay phải.
Tìm dòng "Show Page Title" chọn "No"
Bỏ dòng chữ "Welcome to the Frontpage" trong Joomla
1.0.x
Đăng nhập vào trang quản trị (back-end)
VD: />Mở menu chứa Front Page
Mở menu Menus > Main Menu > chọn mục Parameters bên tay phải.
Tìm dòng "Page Title" chọn "Hide"
thanhtong32
Các câu hỏi liên quan:
• Làm sao xóa bỏ dòng "Welcome to the Frontpage"?
• Làm sao xóa "Welcome to the Frontpage"?
thanhtong32
Địa chỉ Email của Administrator
<?php echo $mainframe->getCfg('mailfrom');?>
Thư mục chứa template
<?php echo $this->template?>
Base URL
<?php echo JURI::base();?>
19. Xem vị trí các module trên template
Để xem vị trí của các module trên template bạn chỉ cần thêm đoạn "?tp=1" hoặc
"index.php?tp=1" sau vào phía sau tên domain của bạn.
VD:
• />• ?tp=1
20. Thay template không cần đăng nhập
Đôi khi bạn cần kiểm tra một Website có làm việc tốt với template nào đó không mà
không cần phải vào trang quản trị bạn có thể sử dụng mẹos sau:
Đối với Joomla 1.0.x
Thêm phần sau "?jos_change_template=new_template_name" vào phía sau địa chỉ
Website của bạn.
thanhtong32
VD:
• />• />Lưu ý: Chỉ áp dụng cho dòng Joomla! 1.0.x
Đối với Joomla 1.5.x
Thêm phần sau "?template=new_template_name" vào phía sau địa chỉ Website của
bạn.
VD:
• />• />• />• />21. Backup database với LazyBackup
Monday, 29 June 2009 09:57
Trong các cách để backup database thì plugin LazyBackup (hay Lazy
Backup 2) là một giải pháp sao lưu dữ liệu khá hay và được nhiều
người sử dụng. Với nhiều tùy chọn như: Tự động backup và gửi vào một
04:05: Nhấn nút [Save] để lưu lại kết quả.
Keyword:
• joomla, lazybackup, lazy backup, backup, database, extensions, plugin
• sao lưu, dữ liệu, tự động, email
Tối ưu Website Joomla!
22. Tăng tốc Joomla! bằng cách tạo cache cho
module
Monday, 16 March 2009 00:27
Nếu như bạn có một website đơn giản và mỗi ngày chỉ có vài
trăm khách viếng thăm thì bạn không cần quan tâm tới bài
viết này. Còn nếu bạn nhận thấy website của bạn luôn nạp rất
chậm khi có nhiều người truy cập thì bạn cần bật tính năng
"debug" của Joomla! và quan sát xem có bao nhiêu truy vấn
đã được thực thi. Trung bình từ 50 trở xuống là ổn. Còn trong
trường hợp có hàng trăm truy vấn thì bạn cần phải chú ý tới
tính năng cache của Joomla! và tham số cache của các module.
Tính năng debug của Joomla!
thanhtong32