Методы блочного макета Magento не срабатывают - PullRequest
0 голосов
/ 29 сентября 2018

Я пытаюсь включить новый блок в представление заказа, добавив файл шаблона, и я хочу вызвать метод "getText ()" из его блока, но он не работает, спасибо за помощь.

Я создал файл макета

/app/design/adminhtml/default/default/template/sales/order/cardmessage.phtml

Я создал блок с методом getText ();

/app/code/core/Mage/Adminhtml/Block/Sales/Order/View/Cardmessage.php

Содержимое (Cardmessage.php)

class Mage_Adminhtml_Block_Sales_Order_View_Cardmessage extends Mage_Adminhtml_Block_Sales_Items_Abstract
{
    /**
     * Retrieve required options from parent
     */
    protected function _beforeToHtml()
    {
        if (!$this->getParentBlock()) {
            Mage::throwException(Mage::helper('adminhtml')->__('Invalid parent block for this block'));
        }
        $this->setOrder($this->getParentBlock()->getOrder());
        parent::_beforeToHtml();
    }

    /**
     * Retrieve order items collection
     *
     * @return unknown
     */
    public function getItemsCollection()
    {
        return $this->getOrder()->getItemsCollection();
    }

    public function getText()
    {
        return "test text";
    }

}

и зарегистрировал шаблон в sales.xml

/app/design/adminhtml/default/default/layout/sales.xml

Содержимое (sales.xml).

<adminhtml_sales_order_view>
    <reference name="head">
        <action method="addJs"><file>mage/adminhtml/giftmessage.js</file></action>
        <action method="addJs"><file>mage/adminhtml/giftoptions/tooltip.js</file></action>
    </reference>
    <reference name="content">
        <block type="adminhtml/sales_order_view" name="sales_order_edit"></block>
    </reference>
    <reference name="left">
        <block type="adminhtml/sales_order_view_tabs" name="sales_order_tabs">
            <block type="adminhtml/sales_order_view_tab_info" name="order_tab_info" template="sales/order/view/tab/info.phtml">
                <block type="adminhtml/sales_order_view_messages" name="order_messages"></block>
                <block type="adminhtml/sales_order_view_info" name="order_info" template="sales/order/view/info.phtml"></block>
                <block type="adminhtml/sales_order_view_cardmessage" name="order_cardmessage" template="sales/order/view/cardmessage.phtml"></block> <-- added entry

Но любой текст, который я вставляю в cardmessage.phtml, отображается просточто я не могу вызвать методы из блока.

...