Phần 2: Cơ bản MVC component - Grid (lưới)

Phần 2 này chúng ta sẽ giải quyết các vấn đề của grid, (lưới). Trong Joomla 1.5, dữ liệu được sắp xếp theo dạng lưới và đây cũng là phần đáng quan tâm nhất trong suốt component.!

18 comments:

  1. vi sao trong file view.htmt.php lai bao khong co function load ban nhi kho hieu that.
    Minh da lam dung nhu code ban huong dan

    ReplyDelete
  2. Bạn có dòng lệnh này chưa?
    JTable::addIncludePath(JPATH_COMPONENT.DS.'tables');

    Cái load() là lôi từ cái library table ra mà.Bạn tham khảo ở đây.
    http://docs.joomla.org/JTable/load

    ReplyDelete
    Replies
    1. This comment has been removed by the author.

      Delete
    2. $listhello=& JTable::getInstance('Hello','Table');
      $listhello->load($id[0]);

      Delete
  3. ok em tìm được lỗi đó rồi nhưng mà phát sinh lỗi mới là vì sao em khong load duoc cai cid khi edit :option=com_hello&view=hello&task=edit&cid[]

    ReplyDelete
  4. function taskEdit()
    {
    $id = JRequest::getVar('cid');
    if($id[0]){
    JTable::addIncludePath(JPATH_COMPONENT.DS.'tables');
    $hello = & JTable::getInstance('hello');
    $hello->load($id[0]);
    $hello->checkout(JFactory::getUser()->get('id'));
    $this->assignRef('hello', $hello);
    $this->assignRef('id', $id[0]);
    }

    }
    loay hoay ma cha thay tim duoc hic

    ReplyDelete
  5. theo minh thay o day thi phai la
    $cid = JRequest::getVar('cid');
    moi dung chu ban

    ReplyDelete
  6. cái biến $cid và $id thi có gì khác nhau đâu anh nhỉ chỉ là gán biến để truyền vào thôi mà

    ReplyDelete
  7. mình cũng chưa rõ về vấn đề này nữa, theo mình nghĩ chắc phải làm theo chuản của joomla thì nó mới hiểu được, mong Admin có thể giải thích dùm mình tại sao phải dùng $cid

    ReplyDelete
    Replies
    1. cid là một hidden input của mỗi cái checkbox, vì vậy nó là một mảng lưu trữ từng id của các record trong csdl. để lấy giá trị của mảng này ta sùng JRequest::getVar(cid) truyền vào 1 biến. ở đây tôi dùng $id = JRequest::getVar(cid) để lấy giá trị mảng cid vào biến id, nghĩa là lúc này id sẽ là một mảng. mệnh đề if($id[0]) nhằm kiểm tra xem mảng id có rổng hay không. Bạn có thể dùng bất kì biến nào khác để thay thế cho id cũng như nhau hết. đây chỉ là kiến thức cơ bản về lập trình php chứ ko ảnh hưởng gì đến chuẩn của Joomla nha bạn

      Delete
  8. ah thì ra là vậy, cảm ơn bạn nhiều

    ReplyDelete
  9. Bạn ơi, mình muốn hỏi: tại sao mình sử dụng class="key" giống như trên sao phần thể hiện của edit nó không có sự tác động của class key nhỉ?
    code của file edit.php:
    "


    "
    [Do phần viết bài không chấp nhận các thẻ html trong này nên mình phải viết thành tdd, inputt]
    Có phải do mình dùng template khác nên css key không có hiệu lực không? (template mình dùng là: rhuk_milkyway (default). Cảm ơn bạn.

    ReplyDelete
    Replies
    1. Bạn có thêm class="admintable" trong table chưa ?

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

      Delete
    3. Ok, thanks bạn nhiều. Mình đã nhầm class="admintable" thành class="adminlist".

      Delete
  10. bạn ơi cho mình hỏi là tại sao khi sử dụng jtoolbarhelper lại không có task=add trên brower?

    ReplyDelete
  11. cho mình hỏi lúc mình tạo cai checkbox theo đúng hướng dẫn video với code như sau: hello[$i], $i); ?>
    nhưng bị báo lỗi: Notice: Undefined property: stdClass::$checked_out in C:\wamp\www\comhello\libraries\joomla\html\html\grid.php on line 102
    bạn giúp mình với

    ReplyDelete
  12. cho em hỏi sao ở dòng
    hello[$i],$i); ?>
    nó lại bị báo lỗi Notice: Undefined property: stdClass::$checked_out in E:\xampp\htdocs\jl25\libraries\joomla\html\html\grid.php on line 198
    Em cảm ơ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