Как добавить новую кнопку для просмотра заказа в админ-панели Magento?

Для этого я использовал бы DateTimeFormatter. Вы можете найти дополнительную информацию в документах. https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html

Однако здесь приведен пример:

DateTimeFormatter parser = DateTimeFormatter.ofPattern("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US);
LocalDateTime date = LocalDateTime.parse("Sun Apr 01 01:00:00 EEST 2018", parser);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm:ss");
System.out.println(formatter.format(date)); //01-04-2018 01:00:00

Часть Locale.US требуется, даже если вы не живете в США, иначе она не сможет разбирать ВС в воскресенье и с апреля по апрель и так далее. Вероятно, он работает с Locale.UK и более, но, к примеру, он не работает для меня, потому что я живу в Швейцарии.

24
задан silex 10 July 2011 в 17:21
поделиться

2 ответа

config.xml:

<global>
    <blocks>
         <adminhtml>
            <rewrite>
                <sales_order_view>Namespace_Module_Block_Adminhtml_Sales_Order_View</sales_order_view>
            </rewrite>
        </adminhtml>
    </blocks>
 </global>

Пространство имен / Модуль / Блок / Adminhtml / Продажи / Заказ / View.php:

class Namespace_Module_Block_Adminhtml_Sales_Order_View extends Mage_Adminhtml_Block_Sales_Order_View {
    public function  __construct() {

        parent::__construct();

        $this->_addButton('button_id', array(
            'label'     => Mage::helper('xxx')->__('Some action'),
            'onclick'   => 'jsfunction(this.id)',
            'class'     => 'go'
        ), 0, 100, 'header', 'header');
    }
}
24
ответ дан Alex Rashkov 10 July 2011 в 17:21
поделиться

Если вы хотите сделать это быстро и грязно (т.е. редактировать файлы ядра), откройте app/code/core/Mage/Adminhtml/Block/Sales/Order/View.php и добавьте что-то вроде:

    $this->_addButton('order_reorder', array(
        'label'     => Mage::helper('sales')->__('Print Labels'),
        'onclick'   => 'window.open(\'/printouts/' . $this->getOrder()->getRealOrderId() . '.pdf\')',
    ));

Вы можете поместить это перед этим блоком:

    if ($this->_isAllowedAction('emails') && !$order->isCanceled()) {
        $message = Mage::helper('sales')->__('Are you sure you want to send order email to customer?');
        $this->addButton('send_notification', array(
            'label'     => Mage::helper('sales')->__('Send Email'),
            'onclick'   => "confirmSetLocation('{$message}', '{$this->getEmailUrl()}')",
        ));
    }

Ваша задача, если вы решите принять ее, - создать локальный файл, который переопределяет основной файл, и опубликовать его здесь!

-2
ответ дан ʍǝɥʇɐɯ 10 July 2011 в 17:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: