Hoàng Web

Thiết Kế Website WordPress

  • Kho giao diện
  • Dịch Vụ
    • Tăng tốc độ WordPress
    • Tối ưu website WordPress
    • Thiết kế website WordPress
    • Viết plugin WordPress
    • Sửa lỗi nâng cấp website
  • Bảng giá
  • Quy trình làm việc
  • Giới thiệu
  • Liên Lạc
Trang chủ » Prestashop » Prestashop – tùy biến nội dung module cho trang hiện tại

Prestashop – tùy biến nội dung module cho trang hiện tại

Chủ Nhật, 08/02/2015 by Hoàng Quách

  • shares
  • Facebook
  • Facebook Messenger
  • Gmail
  • Viber
  • Skype

Bạn có thể dễ dàng giới hạn hiển thị module hay tùy biến nội dung module cho trang hiện tại bằng cách thay đổi vị trí của nó trong Prestashop Admin. Tuy nhiên, nếu bạn muốn tự động sử lý động bằng code, mẹo nhỏ sau đây có thể áp dụng để tạo hook module mà cho phép giới hạn chỉ hiển thị cho trang cụ thể.
tùy biến nội dung module với từng page

Biến ngữ cảnh php_self

Mỗi trang trong Prestashop có tên xác định, nó xác định trong từng controller tương ứng. Nó chứa trong thuộc tính id được gán cho thẻ body của trang đó chính là biến template $page_name trong smarty. Tuy nhiên, nếu bạn cố gắng lấy tên page bởi biến này từ trong module, bạn có thể nhận lỗi cảnh báo vì biến đó chỉ tồn tại trong template smarty. Vậy có cách nào để bạn chỉ định sử dụng module cho page không? có trong module bạn gọi biến php_self sẽ thay thế cho biến $page_name.

$this->context->controller->php_self

Nó thực sự hữu ích nếu bạn chỉ muốn giới hạn page khi sử dụng module. Nào chúng ta hãy làm ví dụ đơn giản dưới đây.

Giới hạn hiển thị module cho page

Ví dụ, chúng ta chỉ muốn hiển thị ở phần trên của trang với module nếu page hiện tại là trang chủ. Chúng ta sử dụng blicksearch. Trong trường hợp này, chúng ta sẽ chỉ cần sửa file blocksearch.php, tìm phương thức hookTop:

public function hookTop($params)
{
    if (!$this->isCached('blocksearch-top.tpl', $this->getCacheId('blocksearch-top')))
    {
        $this->calculHookCommon($params);
        $this->smarty->assign('blocksearch_type', 'top');
    }
 
    return $this->display(__FILE__, 'blocksearch-top.tpl', $this->getCacheId('blocksearch-top'));
}

và thêm đoạn sau vào trước nội dung hàm:

if('index' != $this->context->controller->php_self)
    return false;

Code trên nói với module rằng, Chúng ta chỉ hiển thị nội dung của hàm hookTop nếu URL hiện tại là trang chủ.
Sử dụng điều này kiểm tra page sẽ giúp bạn hiển thị những nội dung khác nhau và làm những công việc khác trong cùng một hook tùy thuộc vào trang hiện tại bạn muốn sử lý.

Bằng cách nào? đầu tiên bạn cần xác định page sẽ thay đổi nội dung, sử dụng var_dump($this->context->controller->php_self) để lấy chính xác tên page. Sau đó sử dụng lệnh điều kiện rẽ nhánh và thêm các lệnh ở từng page bạn muốn.

if('index' == $this->context->controller->php_self)
    // Do something and display a template for the homepage
else if('category' == $this->context->controller->php_self)
    // Do something and display a template if we are in the category page
else // not in any of the 2 pages above
    return false: // don't display anything

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

Nếu bạn thấy bài viết này hữu ích, hãy chia sẻ với bạn bè bằng cách nhấn nút chia sẻ ở bên dưới. Theo dõi chúng tôi trên Twitter và Facebook

  • shares
  • Facebook
  • Facebook Messenger
  • Gmail
  • Viber
  • Skype

Bài viết liên quan:

  1. Tùy biến trường ảnh cho category trong Prestashop
  2. Vấn đề thanh toán Paypal trong Prestashop
  3. Hiển thị module template cho trang Prestashop
  4. Tổng hợp video hướng dẫn Prestashop từ cơ bản đến nâng cao
  5. Cách khôi phục mật khẩu đăng nhập vào Prestashop
  6. [Prestashop] Hiển thị features trong danh sách sản phẩm
  7. Prestashop 1.6 – Hiển thị features cho trang sản phẩm
  8. Phí vận chuyển – Tùy biến Shipping trong Prestashop
  9. Cài đặt Google Analystics cho Prestashop
  10. Sửa lỗi cấu hình Slider trong Prestashop

Chuyên mục: Prestashop Tìm kiếm: hooks, prestashop module

Đăng ký nhận bài viết mới

Vui lòng điền chính xác email ở bên dưới để nhận thông báo bài viết mới.

Bạn đã đăng ký thành công!

Lỗi! hãy làm lại.

thông tin của bạn được 100% bảo mật...

Tôi giúp gì cho bạn?

Nhận bài viết mới

Vui lòng điền chính xác email ở bên dưới để nhận thông báo bài viết mới.

Cám ơn bạn đã đăng ký.

Lỗi, hãy làm lại

thông tin của bạn được 100% bảo mật...

HOÀNG WEB

Địa chỉ: Tây Sơn, Phường Quang Trung, Quận Đống Đa, Hà Nội

Hotline: 0987 342 124 (8h:00 – 21h:00)

Email: [email protected]

Website: www.hoangweb.com

KẾT NỐI VỚI TÔI

  • Facebook
  • Snapchat

SẢN PHẨM

  • Plugin Auto-Sync Google Shopping cho WooCommerce
  • Phần mềm chặn click ảo
  • WP2Speed.com – Tăng tốc WordPress

LIÊN KẾT

  • Hướng dẫn thanh toán
  • Chính sách hoàn tiền
  • Trung tâm hỗ trợ

Copyright © 2021 | All rights reserved | HOANG WEB
Mọi hình thức sao chép nội dung trên website này mà chưa được sự đồng ý đều là trái phép.