OpenCart добавить в массив - PullRequest
       10

OpenCart добавить в массив

1 голос
/ 04 апреля 2011

Это может быть очень упрощенный вопрос, но я не могу найти ответ. Я хочу добавить пару ключ / значение в массив в OpenCart, но я не могу заставить его работать. Я не уверен, что то, к чему я добавляю, уже является массивом.

В каталоге / controller / account / history.php в строке 66 есть определение массива: -

            $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 ]

2 голосов
/ 04 апреля 2011

Вы можете использовать следующую строку -

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

Поскольку ваши $ this-> data ['orders'] также являются числовым индексированным массивом, который содержит коллекцию ассоциативного массива.

Я думаю, что ваша проблема будет решена.

0 голосов
/ 16 апреля 2011

Довольно легко сделать это с помощью vQmod. В основном вам нужно искать

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

и поставьте строку после него. Вот что вам нужно поместить в ваш пользовательский XML-файл vQmod

<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>
...