2011-04-04 101 views
1

這可能是一個非常簡單的問題,但我找不到答案。我想將一個鍵/值對添加到OpenCart中的數組,但我似乎無法使其工作。我不確定我添加的內容是否已經是數組。OpenCart添加到陣列

在目錄/控制器/帳戶/在第66行history.php有一個陣列的定義: -

  $this->data['orders'][] = array(
       'order_id' => $result['order_id'], 
       'name'  => $result['firstname'] . ' ' . $result['lastname'], 
       'status'  => $result['status'], 
       'date_added' => date($this->language->get('date_format_short'), strtotime($result['date_added'])), 
       'products' => $product_total, 
       'total'  => $this->currency->format($result['total'], $result['currency'], $result['value']), 
       'href'  => HTTPS_SERVER . 'index.php?route=account/invoice&order_id=' . $result['order_id'] 
      ); 

我要添加到使用VQMod此陣列。 VQMod不會讓我在定義中替換一行。我不知道爲什麼,我已經嘗試了幾個小時,但它不會。所以我決定在它下面添加一行,如下所示: -

$ this-> data ['orders'] ['amountToPay'] = $ paymentState ['amountToPay'];

這不起作用。即使我直接在頁面中輸入它也沒有。我認爲我弄亂了語法,但沒有看到如何,除非我不理解數組結構。

任何幫助表示讚賞。

回答

2

您可以使用下面的線 -

$this->data['orders'][sizeof($this->data['orders'])-1]['amountToPay'] = $paymentState['amountToPay']; 

因爲你$這個 - >數據[「訂單」]也是一個數字索引數組,它包含關聯數組的集合。

我認爲你的問題將得到解決。

+0

您說得對。非常感謝:) – Craig 2011-04-04 18:43:25

0

使用vQmod很容易做到這一點。基本上你需要搜索

$this->data['orders'][] = array(

並把它放在後面。以下是您需要在自定義vQmod XML文件中添加的內容

<file name="catalog/controller/account/history.php"> 
    <operation> 
     <search position="after"><![CDATA[$this->data['orders'][] = array(]]></search> 
     <add><![CDATA['amountToPay' => $paymentState['amountToPay']]]></add> 
    </operation> 
</file>