Module Sản Phẩm Vừa Xem Trong Virtuemart

Thảo luận trong 'Hướng dẫn - Hỏi đáp' bắt đầu bởi gabong226, 9/5/13.

  1. gabong226

    gabong226 Rất nhiệt tình

    Bài viết:
    173
    Likes :
    69
    Xin chào các pro,

    Cho mình hỏi có ai có module sản phẩm vừa xem trong Virtuemart không? Bình thường chỉ có view Recently nhưng hiện tại mình đang cần module này. Ai có hoặc biết cách viết module này thì share và hướng dẫn cho mìn với.
    Xin cám ơn rất nhiều.
     
  2. phamtienduc

    phamtienduc Rất tâm huyết

    Bài viết:
    288
    Likes :
    362
    lần mới làm virtuemart mình cũng làm cái này nhưng không viết module!
    mình viết thẳng vào view của virtuemart!

    cách làm của mình thì là như sau: khi click vào 1 sản phẩm thì mình sẽ lấy được id của sản phẩm đó! và mình lưu id đó vào 1 mảng rồi tạo 1 session add nó vào

    sau đó dùng model của virtuemart sẽ lấy được 1 object product qua id
    kết quả:
    http://demo.shinetheme.com/thuctap/nhatcuongmobile (hơi cùi nhưng ngày đó hướng chức năng ) ^^
    bạn click vào 2 sản phẩm khác nhau thì ở phía dưới cùng sẽ có mục sản phẩm đã xem

    Chúc bạn thành công!
     
  3. gabong226

    gabong226 Rất nhiệt tình

    Bài viết:
    173
    Likes :
    69
    cái view của virtuemart thì mình cũng làm được rồi, hiển thị bình thường nhưng hiện tại mình đang cần module để cài ngoài page home ấy.
     
  4. phamtienduc

    phamtienduc Rất tâm huyết

    Bài viết:
    288
    Likes :
    362
    ồ thì bạn sửa cái view productdetail mỗi lần chạy cái view đó thì lấy id lưu vào session:

    $session = JFactory::getSession();// đối tượng session của joomla
    $session->set('<Tên session>','<Giá trị session>');
    <Giá trị session> là dạng mảng nhé và kiểm tra xem id có tồn tại trong mảng chưa

    xong viết 1 cái module lấy các id của trong mảng session kia bằng cách:
    $session = JFactory::getSession();
    $array[] = $session->get('<Tên session>');
    Tiếp theo bạn include model của virtuemart vào nó có hàm lấy 1 đối tượng product qua id

    chẳng qua mình ko viết thành module nên không gửi cho bạn được!

    Chúc thành công!
     
  5. gabong226

    gabong226 Rất nhiệt tình

    Bài viết:
    173
    Likes :
    69
    bạn có thể nói rõ hơn cho mình đc không? thế này hơi mơ hồ chút
     
  6. phamtienduc

    phamtienduc Rất tâm huyết

    Bài viết:
    288
    Likes :
    362
    Mỗi lần vào xem chi tiết 1 sản phẩm thì sẽ phải view productdetails trong component virtuemart đúng không?
    Bạn sẽ thấy 1 file view.html.php trong view đó! tìm đến đoạn code

    $this->assignRef('product', $product);

    thì biến $product sẽ có chứa id của sản phẩm nhé! hoặc có thể getVar(...) đều có thể lấy được id

    bạn tạo 1 đối tượng session
    $session = JFactory::getSession();// đối tượng session của joomla
    $pid = $session->get('product_view');
    if (!is_array($pid)) {
    $pid[] = <truyền id vào>// nếu không là mảng tức là sessison này chưa có id của product nào
    }else{
    nếu nó là mảng thì bạn add thêm id kia vào! nhớ là phải kiểm tra xem trong mảng đó đã tồn tại id đó chưa nếu chưa mới add vào nhé
    }
    $session->set('product_view', $pid);// add giá trị mới vào session đó

    Xong bước session!

    Giờ viết 1 module và module này sẽ gọi cái session kia
    $session = JFactory::getSession();
    $pid = $session->get('product_view');
    if (!is_array($pid)) {
    echo "Không xem cái gì cả";
    }else{
    require <model product.php trong admin vào>// ở đây có hàm getProduct gì gì đó bạn xem lại mình ko nhớ lắm
    truyền vào 1 id thì nó sẽ trả về 1 object product ....
    }

    Có thế thôi!
     
  7. gabong226

    gabong226 Rất nhiệt tình

    Bài viết:
    173
    Likes :
    69
    cám ơn bạn nhiều nhé. mình thử làm theo xem sao. bởi vì khả năng code của mình không tốt lắm :D
     
  8. thuyduong

    thuyduong Mới tham gia

    Bài viết:
    9
    Likes :
    0
    em đã làm theo cách của anh thì hiển thị được! Nhưng anh cho em hỏi 1 vấn đề ngoài nhé! nếu em cài lên 1 site ở trên mạng thì làm sao mà em sửa được cái view productdetails của virtuemart kia ạ! vì module này đâu có liên quan đến com với lại em ko thể có quyền xem code! chỉ có thể vào trang admin thôi ạ! Rất mong được anh chỉ giáo! à anh cho em xin cái yahoo với ạ ^^
     
  9. phamtienduc

    phamtienduc Rất tâm huyết

    Bài viết:
    288
    Likes :
    362
    wow ! sao hỏi khó thế! :)) trong file cài đặt bạn .xml bạn thêm:
    <scriptfile>script.php</scriptfile>

    và tạo 1 file script.php cùng cấp với file .xml cài đặt! copy file view.html.php ở view kia vào thư mục module luôn

    trong file script.php tạo 1 class có dạng
    class <tên module vd là mod_productsesion>InstallerScript{
    function postflight($parent){
    jimport('joomla.filesystem.file') ;
    $file1="<đường dẫn đến file view trong com virtuemart>";
    JFile::delete($file1);//xóa file view trong virtuemart
    $file2="<file này ở trong module của bạn! ghi đường dẫn vào>";
    JFile::copy()// 2 tham số xem trong doc joomla cho chuẩn
    }
    }

    Thế là xong view lấy được session => module kia hoạt động được!

    Chúc bạn thành công!
     
  10. thuyduong

    thuyduong Mới tham gia

    Bài viết:
    9
    Likes :
    0
    Em sẽ thử ! mà cho em xin cái yahoo hay sky với ;)
     
  11. nguyenhason

    nguyenhason Mới tham gia

    Bài viết:
    27
    Likes :
    6
    Ồ đúng cái em đang cần thanks bác
     
    duymanhaptech thích bài này.
  12. Mafia_13

    Mafia_13 Rất tích cực

    Bài viết:
    41
    Likes :
    5
    Giá như bác hoàn thiện 1 Modul rất nhiều a e ngoại đạo sẽ được nhờ.
     
  13. duymanhaptech

    duymanhaptech Mới tham gia

    Bài viết:
    16
    Likes :
    1
    Viết thành module đi bác ^^
     
    nguyenhason thích bài này.
  14. vhquocminhit

    vhquocminhit Mới tham gia

    Bài viết:
    5
    Likes :
    0
    Bạn ơi, bày mình cách trình bày sản phẩm trong virtuemart với, mình trình bày sản phẩm sao nhìn nó cùi cùi gê
    [​IMG] làm sao để sửa cách trình bày theo ý mình bạn
     
  15. nhochaycuoi

    nhochaycuoi Mới tham gia

    Bài viết:
    2
    Likes :
    0
    anh ơi viết thành module đi ạ !
     
  16. thong100

    thong100 Rất tích cực

    Bài viết:
    53
    Likes :
    14

    Thật ra trong VM 2.0.x Module Virtuemart product ngoài chức năng Featured, Hot, Top ten, Random đã có sẵn chức năng này nhưng chưa được áp dụng, các bạn thêm vào dòng code sau:

    Trong file: modules\mod_virtuemart_product\mod_virtuemart_product.xml
    Tìm: dòng 34 và dong 106 code:
    <option value="topten">MOD_VIRTUEMART_PRODUCT_BEST_SALES</option>

    Thêm vào bên dưới code:
    <option value="recent">Recently Viewed Products</option>

    (nhớ thêm cả 02 dòng 34 và 106 nhé)

    Mở admin, tìm module, chọn chức năng: Recently Viewed Products
    Chỉ định 1 category hoặc chọn tất cả category. Xem kết quả:D

    Chú ý: để xem được tốt nhất nên tắc chức năng cache của module này đi.
     
    Nguyễn Quý Duy thích bài này.
  17. Nguyễn Quý Duy

    Nguyễn Quý Duy Mới tham gia

    Bài viết:
    1
    Likes :
    0
    thử cái xem nào
     
  18. Mafia_13

    Mafia_13 Rất tích cực

    Bài viết:
    41
    Likes :
    5
    Mình đã Test sao ko được nhỉ?
    Mình đã làm như hướng dẫn và chọn Recently Viewed Products trong

    hay
    VM - Best Sales
    đều không được.
     
  19. thong100

    thong100 Rất tích cực

    Bài viết:
    53
    Likes :
    14
    Bạn nói rõ hơn đi, không được là cái gì không đươc.
    Sau khi chọn vị trí cho module trên template, chọn thể hiện ở menu nào (trang nào). Kết quả sau khi viewed trang web bang F5 chẳng thấy gì:D (đừng lo).
    Module này mặc định sẽ chẳng thể hiện gì, chỉ khi nào bạn bấm vào xem chi tiết một sản phẩm. Sau đó quay lại trang mà bạn chỉ định module thể hiện mới thấy kết quả:D
    Mình đã làm trên VM 2.0.18a hình đây: [​IMG](lúa ghê mình kg biết chèn hình hehe)
     
    Mafia_13 thích bài này.
  20. duythangs

    duythangs Mới tham gia

    Bài viết:
    9
    Likes :
    0
    bác ơi cho em hỏi em đã làm như bác nói và đã chạy được nhưng em muốn nó hiển thị 5 sản phẩm còn bt nó chỉ hiển thị có 3 sản phẩm mặc dù em đã cấu hình oke hết rồi nhưng nó chỉ mặc định 3 cái bác biết xem giúp em.
     
comments powered by Disqus

Chia sẻ trang này