设置排序顺序的客户仪表板自定义选项卡


Set sort Order of Customer Dashboard Custom Tab

我已经在客户帐户仪表板中创建了一个自定义选项卡。使用我的自定义模块布局文件。

<customer_account>
        <reference name="customer_account_navigation">
            <action method="addLink" translate="label" module="customer">
                <name>custom page</name>
                    <path>orders/accountpage/</path>
                    <label>View Old Orders</label>
            </action>
    </reference>
</customer_account>

现在我想设置这个创建的选项卡的排序顺序。有人能告诉我怎么才能做到这一点吗?

Karan,Magento没有have this type of function,所以你需要customization

on Class Mage_Customer_Block_Account_Navigation

public function addLink($name, $path, $label, $urlParams=array(),$sort=50)
{
    $this->_links[$name] = new Varien_Object(array(
        'name' => $name,
        'path' => $path,
        'label' => $label,
        'url' => $this->getUrl($path, $urlParams),
        'sort'=> $sort
    ));
    return $this;
}

添加
public function getLinks()
{

$people=$this->_links;
$sortArray = array();
foreach($people as $person){
    foreach($person as $key=>$value){
        if(!isset($sortArray[$key])){
            $sortArray[$key] = array();
        }
        $sortArray[$key][] = $value;
    }
}
$orderby = "sort"; //change this to whatever key you want from the array
array_multisort($sortArray[$orderby],SORT_DESC,$people);
return $people;
}
xml

<customer_account>
        <reference name="customer_account_navigation">
            <action method="addLink" translate="label" module="customer">
                <name>custom page</name>
                    <path>orders/accountpage/</path>
                    <label>View Old Orders</label>
            <sort>15</sort>
            </action>
    </reference>
</customer_account>