10/10/2018, 10:33

Cùng nhau học lập trình joomla

Xin chào các bạn!

Mình lập ra Thread này mục đích là cũng nhau trao đổi, lập trình trên joomla (không có template ở thread này nếu có điều kiện thì mình sẽ lập cái cái thread nữa về template). Mình thấy trên mạng có rất nhiều site hướng dẫn lập trình trên joomla nhưng một thời gian mình học thì cảm thấy các bài hướng dẫn này không được ộn lắm. mình đọc chẳng hiểu được nhiêu với lại support không có. Mục địch của thread này là trao đổi kiến thức với nhau (Cách thức code, Viết code thế nào cho chuẩn.....) Mình cũng mới học lập trình trên joomla được 2 tuần, do đó kiến thức có hạn vì zậy muốn lập topic này trao đổi với mọi người mong mọi người giúp đỡ.

Để cùng nhau học mình sẽ thực hiện một ý tưởng mình sẽ làm một chức năng xem tin tức trên joomla (người quản trị sẽ nhập thông tin mới trong administrator) và show ra cho mọi người đọc và comment. Mình sẽ thựoc hiện thea hai công đoạn Viết theo logic (cái này hog biết nói sao nưa hic) sau đó sẽ viết theo mô hình MVC.

Rất mong các bạn ủng hỗ giúp mình trong quá trình làm việc.


Đầu tiên mình sẽ viết một cái component có chức năng như mình nói ở trên (còn component là gì thì bạn nào rành cái này post cho mọi người cùng đọc nha mình chỉ tập trung vô code)


Component của joomla lằm ở 2 folder www.domain.com/component và www.domain.com/administrator/component. hay được gọi là front end và back end. "front end " phục vụ cho người dùng "back end" phục vụ cho người quản trị.

Mình sẽ làm bên "back end" trước sau đó khi hoàn thiện sẽ làm phần "front end"

Đầu tiên bạn vô thư mục "joomla/administrator/components" tảo ra thư mục là "com_articles". quy định đặt tên cho component của joomla là bắt đầu "com_" tiếp sau đó là tên component của bạn.

Tiếp theo bạn sẽ tảo ra file 'admin.articles.php' "administrator/components/com_articles/admin.articles.php" file này được mặc định chạy khi mình dùng component (giống như file index đó các bạn). vơis nọi dung như sau.

<?php
defined( '_JEXEC' ) or die('Restricted access');
echo '<h1>This's is first Joomla Component.</h1>';
?>
Dòng defined( '_JEXEC' ) or die('Restricted access'); Tất cả các file trong component đề có dòng này nó bảo giúp bảo mật tất cả các trụy cập vào phải này phải xuất phát từ trong site.(accessed from files inside). Còn dòng tiếp theo thì in ra câu chào thôi.

Bây giờ các bạn có thể truy cập vào Component này để coi nó chạy ra cái gì ?
http://www.localhost/joomla/administ...n=com_articles
(các bạn nhớ là chúng mình đang code trong back end nha.)

Bạn muốn truy cập vào bất kỳ component nào trong joomla thì bạn chỉ việc thay đổi giá trị option.:VD option=com_com_banners, option=com_contact .... với cái tên là thư mục mình tảo ra trong thư mục components.

Vậy là chúng ta song phần mở đầu hello components.


Tiếp theo đăng ký components với joomla:

Để thuận tiện cho việc sử dụng thì chúng ta đăng ký component với joomla, việc này sẽ giúp cho component chúng ta sẽ xuất hiện ở menu 'Components' trong administrator. từ sau chúng ta không cần phải
http://www.localhost/joomla/administ...n=com_articles
Mà chọn ở menu 'Components' Có một số chú ý ở đây việc đặt tên này không được trùng với những tên component có sẵn trong joomla chúng ta đã cài điều này là dĩ nhiên bởi vì bạn không thể tảo 2 cái thư mục tên giống nhau trong một folder 'components' được, ngoài ra joomla còn phân biệt được component nào được truy cập. Nếu tên giống nhau thì sẽ nhầm lẫn. Để thực hiện việc này chúng ta lên tảo folder trong 'components' nếu nó tồn tại thì chúng ta sẽ phát hiện được ngay. Tất cả các component khi cài đặt vào joomla đều được đăng ký trong Table 'jos_coponents' mình (cài đặt mặc định)

Đang Ký Component như sau.
Sau khi làm song thì trong menu component ở administrator bây giờ đã có 'Component Articles' rùi đó. Đối với coder trong quá trình lập trình thì việc đăng ký này không quan trọng lắm, bởi vị chúng ta lên tập cắch truy cập vào component quá thank address bar việc này sẽ rất giúp ích cho các bạn sau này debug một số lỗi trong quá trình truyền tham số lên server....

Việc đầu tiên chúng ta làm trong phần quản trị là tảo một công cụ quản lý bài viết thêm, xóa, sửa... Rất này là joomla cung cấp cho ta công cụ này gọi là Toolbars.

Tảo Toolbars

Chúng ta ta tảo ra file tolbar.articles.php trong thư mục 'administrator/components/com_articles' khi bạn muốn tảo ra Toolbars cho một component nào đó thì việc đặt tên theo quy tắc 'toolbar.your_component.php'khi chúng ta gọi component thì file này sẽ tự động load cùng với file 'admin.your_component.php' ở component này là file admin.articles.php. ở trong file toolbar.articles.php chúng ta viết đoạn code sau.

<?php
defined('_JEXEC') or die('Retricted access');
require_once(JApplicationHelper::getPath('toolbar_ html'));
switch($task){
case 'edit': case 'add':
TOLBAR_articles::edit();
break;
default:
TOLBAR_articles::all();
break;
}

?>
require_once(JApplicationHelper::getPath('toolbar_ html')); Giúp bạn gọi file chữa thông tin xuất ra màn hình.

Chúng ta tảo ra file tolbar.articles.html.php với nội dung như sau :

<?php
class TOLBAR_articles{
function edit(){
JToolBarHelper::save();
JToolBarHelper::apply();
JToolBarHelper::cancel();

}
function all(){
JToolBarHelper::title( JText::_( 'Component Articles' ),'generic.png' );
JToolBarHelper::publishList();
JToolBarHelper::unpublishList();
JToolBarHelper::editList();
JToolBarHelper::deleteList();
JToolBarHelper::addNew();
}
}

?>
JToolBarHelper là một class trong joomla nó chữa đựng các hàm để tảo ra đầy đủ một toolbar. Các bạn có thể tham khảo thêm tại đây http://docs.joomla.org/JToolBarHelper

bay giờ chúng ta vào địa chỉ localhost/joomla/administrator/index.php?option=com_articles sẽ được hình như sau.



và truy cập vô address localhost/joomla/administrator/index.php?option=com_articles&task=edit sẽ có toolbar như sau.

$task sẽ tự động nhận các giá trị tương ứng với các button trên thanh toolbar thông quá javascript của joomla. hiện tại bay giờ bạn click thì các button này chưa chạy bởi vì đoạn script này liên kết tới form ở trang admin.articles.php chúng mình sẽ làm sớm về vẫn đề này.

Tiếp theo mình sẽ tảo form cho người quản trị nhập tin.





Còn tiếp
ngoc_viet08 viết 12:40 ngày 10/10/2018
http://joomlaviet.org/
nỗ lực bạn như ném đá ao bèo .
newmem90 viết 12:36 ngày 10/10/2018
Tiếp đi bạn ơi, cái này hay đó. Thử làm một tut cho ra hồn để các bạn khác có thêm tài liệu tham khảo nhé.
vunhex viết 12:48 ngày 10/10/2018
vào trang chủ joomla.org về mà tải tut. nó hướng dẫn và có vd chi tiết lắm
honnhienh viết 12:37 ngày 10/10/2018
mấy cái hình to quá. sao diễn đàn mình không tự động resize ta,
Bài liên quan
0