2016-10-05 129 views
1

我使用WHMCS一個PayPal計費網關,並添加菜單項到兩個ClientAreaPrimaryNavbar和ClientAreaSecondarySidebar使用鉤子文件中的以下內容:添加類活動的自定義菜單項WHMCS

<?php 

use WHMCS\View\Menu\Item as MenuItem; 

add_hook('ClientAreaPrimaryNavbar', 1, function (MenuItem $primaryNavbar) { 
    if (!is_null($primaryNavbar->getChild('Billing'))) { 
     $primaryNavbar->getChild('Billing')->addChild('Manage PayPal Billing', array( 
      'label' => 'Manage PayPal Billing', 
      'uri' => 'paypalbilling.php', 
      'order' => '30' 
     )); 
    } 
}); 

add_hook('ClientAreaSecondarySidebar', 1, function (MenuItem $secondarySidebar) { 
    if (!is_null($secondarySidebar->getChild('Billing'))) { 
     $secondarySidebar->getChild('Billing')->addChild('Manage PayPal Billing', array( 
      'label' => 'Manage PayPal Billing', 
      'uri' => 'paypalbilling.php', 
      'order' => '30' 
     )); 
    } 
}); 

我需要當有人在paypalbilling.php頁面上時,獲取ClientAreaPrimaryNavbar中的「結算」菜單項以獲得類別open,並突出顯示類別爲active的「結算」下的「管理PayPal結算」子項。然後,我需要在ClientAreaSecondarySidebar中獲得「Manage PayPal Billing」菜單項,並使用類active高亮顯示。 很明顯,我只需要在這是活動頁面時添加類。

我有一種感覺,它可能與核心paypalbilling.php頁面沒有定義麪包屑..但不確定。那自定義頁面的代碼是不開源的,所以我不能看到或編輯:(

我已經在這個鉤子在所有不同的方式使用setClass嘗試過,但無法弄清楚條件爲if(is current page = paypalbilling.php)

任何幫助將不勝感激!

回答

0

我已經找到了如何將類添加到使用當前頁,仍然不能在一個類添加到主ClientAreaPrimaryNavbar結算菜單中的子菜單。

我嘗試$primaryNavbar->getChild('Billing')->setClass('active');,但它似乎沒有工作。

下面是一類的「主動」檢查當前頁和設置新的菜單項的代碼:

<?php 

use WHMCS\View\Menu\Item as MenuItem; 

add_hook('ClientAreaPrimaryNavbar', 1, function (MenuItem $primaryNavbar) { 

    $filename = basename($_SERVER['REQUEST_URI'], ".php"); 
    $parseFile = explode('.', $filename); 

    if (!is_null($primaryNavbar->getChild('Billing'))) { 

     $primaryNavbar->getChild('Billing')->addChild('Manage PayPal Billing', array(
      'label' => 'Manage PayPal Billing', 
      'uri' => 'paypalbilling.php', 
      'order' => '30' 
     )); 

     if ($parseFile['0']=='paypalbilling'){ 
      $primaryNavbar->getChild('Billing')->setClass('active'); // THIS LINE DOES NOT WORK 
      $primaryNavbar->getChild('Billing')->getChild('Manage PayPal Billing')->setClass('active'); 
     } 

    } 

}); 

add_hook('ClientAreaSecondarySidebar', 1, function (MenuItem $secondarySidebar) { 

    $filename = basename($_SERVER['REQUEST_URI'], ".php"); 
    $parseFile = explode('.', $filename); 

    if (!is_null($secondarySidebar->getChild('Billing'))) { 

     $secondarySidebar->getChild('Billing')->addChild('Manage PayPal Billing', array(
      'label' => 'Manage PayPal Billing', 
      'uri' => 'paypalbilling.php', 
      'order' => '30' 
     )); 

     if ($parseFile['0']=='paypalbilling'){ 
      $secondarySidebar->getChild('Billing')->getChild('Manage PayPal Billing')->setClass('active'); 
     } 

    } 

}); 
相關問題