[Series Tự học WHMCS] Themes - Phần 5: Sidebars 2019-10-12

WHM.vn cho ra mắt series tự học WHMCS giúp bạn thuận lợi hơn trong việc tìm hiểu và học tập về WHMCS

  1. Trung
    SIDEBARS

    Có 2 thanh sidebars ở giao diện người dùng WHMCS. Thanh sidebar chính chứa các thành phần con được hiển thị phía trên nội dung của “body” khi ở chế độ responsive. Thanh sidebar phụ chứa các thành phần con được hiển thị phía dưới nội dung của “body” khi ở chế độ responsive. Ở chế độ máy tính bàn, sẽ không có sự khác biệt đáng chú ý giữa các mục sidebar chính và phụ.

    Các thành phần trong sidebar và bảng điều khiển(panels) được điều khiển bởi lập trình cho phép các modules và hooks tương tác với các mục con trong sidebar.

    Giao diện của sidebar có thể được tùy chỉnh bởi các tệp mẫu header.tpl và sidebar.tpl (nằm ở /includes/).

    Hướng dẫn này coi rằng bạn đã quen với việc tạo và sử dụng các tệp Hook trong WHMCS.

    TÌM SIDEBAR

    Mỗi mục sidebar có một tên duy nhất được sử dụng để tham chiếu nó. Bạn sẽ cần tên này để tìm chúng. Để dễ dàng hơn, chúng tôi đã đặt tên của từng mục sidebar trong nguồn HTML của trang, điều đó có nghĩa là có thể truy xuất bằng tùy chọn Kiểm tra(Inspect Element) có sẵn trong hầu hết các trình duyệt hiện đại. Một ví dụ về điều này được hiển thị dưới đây.

    [​IMG]

    Khi bạn có tên mục menu mà bạn muốn thao tác, trong ví dụ trên là “Billing Information”(Thông tin thanh toán), bạn có thể thao tác với nó theo các cách sau.

    THAY ĐỔI NHÃN VĂN BẢN CỦA MỤC SIDEBAR

    Tất cả các mục menu sidebar được cung cấp theo mặc định sử dụng tên hiển thị được kiểm soát bởi tệp ngôn ngữ. Chỉ cần tìm kiếm trong tệp ngôn ngữ đang hoạt động cho văn bản bạn nhìn thấy trong nhãn, và bạn có thể điều chỉnh/thay đổi nó theo yêu cầu.

    Ngoài ra, bạn có thể thay đổi văn bản hiển thị thông qua một hook như sau:


    <?php

    use WHMCS\View\Menu\Item as MenuItem;

    add_hook('ClientAreaPrimarySidebar', 1, function(MenuItem $primarySidebar)
    {

    $primarySidebar->getChild("My Account")
    ->getChild("Billing Information")
    ->setLabel("Custom Text Here");
    });


    THAY ĐỔI VỊ TRÍ MỘT MỤC SIDEBAR CHỎ CHUỘT TỚI

    Bạn có thể thay đổi vị trí của một mục menu để sử dụng phương thức setUri. Ví dụ: nếu chúng tôi đang sử dụng một hệ thống bên ngoài để kiểm soát các thông báo của mình, chúng tôi có thể làm một số việc như sau:

    <?php

    use WHMCS\View\Menu\Item as MenuItem;

    add_hook('ClientAreaPrimarySidebar', 1, function(MenuItem $primarySidebar)
    {

    $primarySidebar->getChild('My Account')
    ->getChild('Billing Information')
    ->setUri('https://www.example.com/billingInfo');
    });


    SẮP XẾP LẠI CÁC MỤC SIDEBAR

    Bạn có thể thay đổi thứ tự hiển thị của các mục menu như sau:

    <?php

    use WHMCS\View\Menu\Item as MenuItem;

    add_hook('ClientAreaPrimarySidebar', 1, function(MenuItem $primarySidebar)
    {

    $primarySidebar->getChild('My Account')
    ->getChild('Billing Information')
    ->setOrder(25); // default menu items have orders 10, 20, 30, etc...
    });



    Các cơ cấu hỗ trợ sau đây cũng có sẵn:

    // Moves a menu item up one position
    $primaryNavbar->getChild('My Account')->getChild('Billing Information')->moveUp();
    // Moves a menu item down one position
    $primaryNavbar->getChild('My Account')->getChild('Billing Information')->moveDown();
    // Moves a menu item to the first position
    $primaryNavbar->getChild('My Account')->getChild('Billing Information')->moveToFront();
    // Moves a menu item to the last position
    $primaryNavbar->getChild('My Account')->getChild('Billing Information')->moveToBack();



    THÊM MỘT MỤC MENU SIDEBAR BỔ SUNG

    Để thêm một mục bổ sung vào menu, trước tiên chúng ta phải kiểm tra xem thành sidebar có tồn tại trên trang cụ thể trước khi lập trình Bạn có thể thêm các mục menu bổ sung như sau:

    <?php

    use WHMCS\View\Menu\Item as MenuItem;

    add_hook('ClientAreaPrimarySidebar', 1, function (MenuItem $primarySidebar)

    {

    if (!is_null($primarySidebar->getChild('My Account'))) {
    $primarySidebar->getChild('My Account')
    ->addChild('Mailing List Subscription Prefs')
    ->setLabel('Subscription Preferences')
    ->setUri('subscriptionprefs.php')
    ->setOrder(100);
    }
    });



    ẨN/XÓA MỤC MENU SIDEBAR

    Bạn có thể xóa một mục menu như sau:

    <?php

    use WHMCS\View\Menu\Item as MenuItem;

    add_hook('ClientAreaPrimarySidebar', 1, function(MenuItem $primarySidebar)
    {

    $primarySidebar->getChild('My Account')
    ->removeChild('Billing Information');
    });

    Bài viết được tham khảo và lược dịch từ: https://developers.whmcs.com/