0

Sales > Orders グリッドに支払い方法の列を追加するモジュールがあります。

$this->addColumn('method', array(
                'header' => Mage::helper('sales')->__('Payment<br />Method'),
                'index' => 'method',
                'renderer'  => 'Artizara_Ordergridadditions_Block_Catalog_Product_Renderer_Payment',
                'filter_index' => 'sfop.method', // refers to a declaration above
                type'  => 'options',
                'options' => array(0=>'Option 1',1=>'Option2'), // how would I get the keys to match to the renderer options???
        ));

レンダラー コード (以下):

public function render(Varien_Object $row) {
    $value =  $row->getData($this->getColumn()->getIndex());

    switch ($value) {
    case 'authorizenet':
        $value = 'Credit Card (Authorize.net)';
        $span = '';
        break;
    case 'paypal_express':
        $value = 'Paypal Express';
        $span = '';
        break;
    case 'checkmo':
        $value = 'Check/Money Order';
        $span = '';
        break;
    case 'free':
        $value = 'No Payment Required';
        $span = '';
        break;
    default:
        $value = 'Unknow Payment Method';
        $span = 'style="color:red;"';
    }

    return '<span ' . $span . '>' . $value . '</span>';
}

グリッドでフィルタリングするためのレンダラー オプションが事前設定されたドロップダウンを作成できるようにしたいだけです。

注:フィルタリングにテキスト フィールド メソッドを追加する場合は、データベースから元のキーを入力する必要があります (例: checkmo、paypal_express、authorizenet など)。

ドロップダウンでそれぞれのレンダラーの値を表示できるようにしたいのですが...(どのように)?

編集 7/20/12

以下の2つの方法を試しましたが、まだ機能していません...

'options' => array(
                    array('value' => 'authorizenet', 'label' => 'Credit Card (Authorize.net)'),
                    array('value' => 'paypal_express', 'label' => 'Paypal Express'),
                    array('value' => 'checkmo', 'label' => 'Check/Money Order'),
                    array('value' => 'free', 'label' => 'No Payment Required'),
                ),

次のように、4 つのオプションが設定されたドロップダウンが表示されます。

Array
Array
Array
Array

私もこのように試しました:

'options' => array(
                    array => ('value' => 'authorizenet', 'label' => 'Credit Card (Authorize.net)'),
                    array => ('value' => 'paypal_express', 'label' => 'Paypal Express'),
                    array => ('value' => 'checkmo', 'label' => 'Check/Money Order'),
                    array => ('value' => 'free', 'label' => 'No Payment Required'),
                ),

しかし、私はエラーが発生します:

Parse error: syntax error, unexpected T_DOUBLE_ARROW, expecting '('

4

3 に答える 3

1

これを試して:

        'type'      => 'options',
        'options'       => Mage::helper('payment')->getPaymentMethodList(true),
        'option_groups' => Mage::helper('payment')->getPaymentMethodList(true, true, true),
于 2013-08-05T19:19:33.537 に答える
0

http://www.magentocommerce.com/boards/viewthread/207929/にアクセスして ください

あなたはあなたの質問に対する答えを得るかもしれません。

于 2013-02-04T12:19:42.137 に答える
0

renderer で使用する値でオプション ハッシュを使用します。

'options' => array(
   'authorizenet' => 'Credit Card (Authorize.net)',
   [..]
)

Enhanced Admin Grids余談ですが、私が開発した拡張機能 ( Magento Connect のページ) に興味があるかもしれません。githubで入手可能な最新バージョンは、書き換えなしでかなりの可能性を持って新しい列を追加できるカスタム列システムをもたらしました。
また、基本として、注文グリッドの支払い方法列が付属しています。

于 2012-07-20T07:14:49.963 に答える