Khi bắt đầu tập tành vào mod xong rồi bạn sẽ nghĩ ngay đến viết 1 component cho joomla phải hông.. Mình sẽ huớng dẫn các bạn tận tình làm 1 cái com đơn giản (huớng dẫn cho những ai chưa biết)... 1/ Để tạo 1 cái com Hello thì mình sử dụng tất cả là 10 file (nói 10 thôi chứ sài có vài cái thôi^^) +) Đầu tiên tạo 1 thư mục tên com_hello: Tiếp theo tạo 1 file hello.php: PHP: defined( '_JEXEC' ) or die( 'Restricted access' );//code bảo mật joomlarequire_once( JPATH_COMPONENT.DS.'controller.php' );//require file controller.php vào$controller = new HelloController();//tạo 1 đối tựong cho class HelloController$controller->execute( JRequest::getVar( 'task' ));//Thực thi nhiệm vụ, có nghĩa là nó sẽ in ra trên web dòng 'Hello-World- khi nào làm xong thì bit à +) Tiếp theo tạo 1 file Controller.php: PHP: defined( '_JEXEC' ) or die( 'Restricted access' );//code bao matjimport('joomla.application.component.controller');//import vào cái class JController (có sãn trong joomla)class HelloController extends JController//tạo class HelloController kế thừa từ JController{ function display() { parent::display();//code này để hiển thị thông tin ra web }} +) Ta tạo 1 file index.html chèn code sau vào: (file này chẳng ảnh huởng gì nhiều) <html><body bgcolor="#FFFFFF"></body></html> +) Tạo 1 thư mục views nằm trong thư mục com_hello nhé: -Trong views tạo index.html như trên -Tiếp tạo 1 thư mục tên hello. - Ta cũng tạo 1 file index.html như trênbỏ vào đây. - Rồi tạo file view.html.php nhé chèn code này vào: PHP: defined( '_JEXEC' ) or die( 'Restricted access' );//bao matjimport( 'joomla.application.component.view');//import class JViewclass HelloViewHello extends JView//tạo clas HelloViewHello{function display($tpl = null){$greeting = "Hello World!";// Nội dung sẽ hiển thị ra trình duyệt$this->assignRef( 'greeting', $greeting );//dua noi dung này vao tempparent::display($tpl);}}
Mình xin viết tiếp, viết nhiều quá nó giới hạn ko đăng trong 1 bài dc.. +) Tiếp tạo 1 thư mục tmpl nằm trong thư mục views/hello nhé: -Ta lại tạo 1 file index.html. -Sau đó tạo file default.php , chèn code sau: PHP: defined('_JEXEC') or die('Restricted access');<h1><?php echo $this->greeting; ?></h1> +) à quên nữa tạo 1 file hello.xml nữa ở thư mục com_hello nha: PHP: <?xml version="1.0" encoding="utf-8"?><install type="component" version="1.5.0"><name>Hello</name><version>Component Version String</version><description>Hiển thị dòng chữ hello world</description><files folder="site"><filename>index.html</filename><filename>hello.php</filename><filename>controller.php</filename><filename>views/index.html</filename><filename>views/hello/index.html</filename><filename>views/hello/view.html.php</filename><filename>views/hello/tmpl/index.html</filename><filename>views/hello/tmpl/default.php</filename></files><administration><menu>Hello World!</menu><files folder="admin"><filename>index.html</filename><filename>admin.hello.php</filename></files></administration></install> +) tạo 1 file admin.hello.php (ko cần cung dc) và chèn nội dung: <html><body bgcolor="#FFFFFF"></body></html> Nén file lại và install thôi.. Ai lừoi thì đây link nè down về nhé http: //www. mediafire .com/ ?gpiigb53h4k235g (nhớ bỏ khóang trắng truớc từ // , mediafire và com và dấu ?) Để thấy dc thì thành quả gõ link sau len trình duyệt. mình sài localhost... http://localhost/jom/index.php?option=com_hello&view=hello
Chào bạn , bạn có thể hưởng dẫn thêm cho mình về phần phân trang ở ngoài Font-End Được không? Cảm ơn bạn trước.
defined( '_JEXEC' ) or die( 'Restricted access' ); Không cho truy cập trực tiếp trên đường link vào file đó $controller->execute( JRequest::getVar( 'task' )); Không đơn giản là in ra trên web dòng 'Hello-World- ! Nhiệm vụ của nó là để xem Controller và action nào được chạy Ví dụ: task là demo.test Thì controller demo trong thư mục Controllers sẽ được chạy! và sẽ tìm đến 1 function là test(). Các bạn có thể xem cụ thể tại http://laptrinhjoomla.blogspot.com/ Mình thấy các clip ở đây đều làm rất chi tiết! Khi làm xong 70% bạn sẽ hiểu về MVC trong joomla Chúc các bạn thành công!