Mô hình MVC cho Front End

Lưu ý: trước khi xem phần này thì các bạn phải đã xem trước các phần về Back End
MVC Front End: tạo ra giao diện menu liệt kê theo mỗi thành phần tmpl
Sublayout: tmpl phụ cho mỗi tmpl riêng biệt và được đặt tên phân biệt với tmpl chính bởi dấu '_' vd: tmpl phụ cho tmpl default.php = default_subitem.php.
$this->loadTemplate('tên tmpl phụ'): dùng để include tmpl phụ vào tmpl chính


27 comments:

  1. anh ơi a làm video hướng dẫn làm session giống như Article Manager , khi select section, select category nó load content ở phía dưới ak. e đang cần lắm, a giúp em với. :((

    ReplyDelete
    Replies
    1. $list['section'] = JHTML::_('list.section','sec',null,'onchange="document.adminForm.submit( );"');
      $list['category'] = JHTML::_('list.category','cat','id section',null,'onchange="document.adminForm.submit( );"');
      $this->assignRef('list', $list);

      với: 'sec' và 'cat' là tên của input

      Chuyển sang layout bạn chỉ việc echo 2 cái list ra.
      Tham số id section bạn phải điền đúng id của section khi submit nha!

      Delete
    2. em còn gà lắm a có thể giải thích kĩ hơn đc ko?

      Delete
    3. Chào bạn,
      Trong component ở Frontend nếu tôi muốn dùng một textbox tìm tên 1 học sinh và chọn năm học trong combobox thì mình phải làm như thế nào? Thanks các bài viết của bạn rất nhiều.

      Delete
    4. Chào bạn Oanh!
      Vấn đề của bạn cũng đơn giản, bạn có thể kết hợp module tìm kiếm (Bạn xem phần module). Việc cần làm chỉ cần cho cái combobox và textbox với 1 button để search, khi submit form thì truy vấn đến CSDL lấy dữ liệu của học sinh show ra ngoài. Hiện tại tôi đang bận chút việc nên không thể hướng dẫn kỹ được,bạn thông cảm!

      Delete
  2. Làm tiếp đi anh ơi, sao lau quá chưa có bài mới vậy, hay qua

    ReplyDelete
  3. Anh cho em hỏi trong joomla có sẵn hàm làm lightbox giống như là tooltip không .Nếu có thì anh chỉ em cách lấy ra nha

    ReplyDelete
    Replies
    1. Bạn có thể dùng button modal để tạo popup!

      Delete
    2. Anh nói rõ hơn về cái dùng button model để tạo popup không ạ.

      Delete
  4. a cho e hỏi, cài wam sao mà để cho hiện lỗi giống a để sưa. Khi e bị lỗi, thì màn hình trắng bệch, ko báo như a, nên khó sữa..

    ReplyDelete
    Replies
    1. Chào bạn!
      Cái mà tôi sử dụng là Appserv. Còn wampp hay xampp thì hình như máy chủ không biên dịch các class như là static mặc định nên xảy ra lỗi. Người ta thường cấu hình file php.ini để ẩn đi các lỗi này. vì vậy một khi lỗi xảy ra thì nó sẽ không thông báo nữa. tốt nhất bạn nên sử dụng Appserv thay vì xampp hay wampp

      Delete
    2. Oh, thanks lời khuyên a

      Delete
  5. ah, a cho e hỏi them làm cái Đăng ký nhận bài mới qua email, giống trang này của a. Mình phải code sao hay có component làm việc đó vậy a. A chia sẻ e với

    ReplyDelete
    Replies
    1. Chào bạn!
      Hiện tại tôi chưa biết có extension nào hỗ trợ vấn đề này hay không (tôi nghĩ là có). về mặt code thì bạn có thể viết plugin trong trigger mà content vừa save (bạn tham khảo phần plugin) và viết function gửi email cho tất cả các email đã đăng kí (các email đăng kí được lưu vào cơ sở dữ liệu).

      Delete
    2. Oh, thanks a. Vậy để e nghiên cứu,^^

      Delete
  6. a có thể post code video này lên được không Ạ !

    ReplyDelete
    Replies
    1. Chào bạn!
      Code com_hello tôi không giữ lại vì ban đầu cũng không định post lên vì tôi muốn các bạn làm theo và gõ từng dòng code để thấm nhuần và suy ngẫm, đôi khi nói lý thuyết suông suông thì thấy khó hiểu nhưng khi đã bắt tay vào code thì từ từ tự động các bạn sẽ hiểu được vấn đề thôi. Nếu code bạn không chạy, hãy bình tĩnh xem lại từng file rồi kiểm tra lỗi cú pháp, lỗi sql.... đây cũng là cách để nâng cao việc check code và kỹ năng đọc code.
      Chúc bạn học tốt

      Delete
  7. This comment has been removed by the author.

    ReplyDelete
  8. bạn cho mình hỏi tại skhi mình code com_helle với dòng lệnh
    $params['limit1']=$mainframe->getUserStateFromRequest('com_hello.hello.limit','limit',$mainframe->getCfg('list_limit'),'int');
    thì nó trả về giá trị nhưng khi tao 1 com mới tên là com_th mình dùng
    $params['limit1']=$mainframe->getUserStateFromRequest('com_th.th.limit','limit',$mainframe->getCfg('list_limit'),'int');
    thi nó không trả về cho mình là null

    ReplyDelete
    Replies
    1. bạn xem lại biến $mainframe được khai báo global hay chưa

      Delete
    2. hình nhu lổi của wamp mình khởi động lại máy thì lại bình thường.
      Thank Bạn nhiều nha

      Delete
  9. Bạn ơi cho mình hỏi. Mình đang làm front component quản lý cán bộ. Mình tạo một menu trong đó có các đường link khác nhau và mỗi link lại lấy dữ liệu từ nhiều bảng khác nhau thì Model và Template phải viết như thế nào.

    ReplyDelete
  10. Anh cho hỏi cách để chèn ajax vào một component của joomla 2.5 được không? Em muốn viết một cái comp_poll để bình chọn và sử dụng ajax... nhưng chưa biết ajax trong joomla được sử dụng như thế nào?

    ReplyDelete
    Replies
    1. http://laptrinhjoomla.blogspot.com/2012/07/lap-trinh-components-carts-quan-ly-san.html#more
      Bạn xem video clip phần 6 nha!

      Delete
  11. Bạn ơi mình đã xem hết 8 video của bạn và đã học được rất nhiều, mình đã code thử lại phần bạn làm nhưng bạn có thể hướng dẫn bọn mình làm file xml để đóng gói chạy trên 1 project khác được không. Mình cũng mới học về Joomla thank bạn rất nhiều, Và bạn có thể cho mình xin sky hay yahoo để tiện chia sẻ được ko, Sky và yahoo của mình:
    yahoo: traique1021989
    sky: duythangs

    ReplyDelete
  12. Chào Admin. Em đang làm theo hướng dẫn thực hành làm component com_hellos trong joomla 2.5. khi chạy đến file models protected function populateState($ordering = null, $direction = null)
    {
    // List state information.
    //parent::populateState('a.title', 'asc');
    }
    parent::populateState('a.title', 'asc'); bỏ dòng này thì không báo lỗi. Còn để dòng này thì ra lỗi như thế này.

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT 0, 20' at line 1 SQL= LIMIT 0, 20

    Mong admin chỉ dẫn

    ReplyDelete

Bạn phải có tài khoản Google (Gmail) hoặc các tài khoản khác (wordpress, openID,...) để có thể comment