я пытаюсь var_dump($order)
, но это дает мне:GetOrder() не возвращает Mage_Sales_Model_Order при отладке
object(Varien_Object)#290 (7) { ["_data":protected]=> array(0) { } ["_hasDataChanges":protected]=> bool(false) ["_origData":protected]=> NULL ["_idFieldName":protected]=> NULL ["_isDeleted":protected]=> bool(false) ["_oldFieldsMap":protected]=> array(0) { } ["_syncFieldsMap":protected]=> array(0) { } }
class PaketId_Shipping_Block_Adminhtml_Sales_Order_Shipment_View_Shipping extends Mage_Sales_Block_Order_Shipment {
Мой
protected $order;
public function getOrder() {
if (is_null($this->order)) {
if (Mage::registry('current_order')) {
$order = Mage::registry('current_order');
}
elseif (Mage::registry('order')) {
$order = Mage::registry('order');
}
else {
$order = new Varien_Object();
}
$this->order = $order;
}
return $this->order;
}
Мой PHTML файл:
<?php echo $this->getChildHtml('PaketId_Shipping');?>
<h1>Test custom block</h1>
<?php $order = $this->getOrder()?>
<?php var_dump($order);?>
<?php $shippings = Mage::getModel('paketid_shipping/result')->getCollection()->addOrderFilter($order) ?>
<?php echo "<pre>";?>
<?php var_dump($shippings);?>
<?php echo "</pre>" ;?>
Мои переменная $order
в файле phtml как-то не вызывает $order
в блочном файле, или я не понимаю этого? Потому что, когда я пытаюсь var_dump($order)
в другом PHTML, он возвращает object(Mage_Sales_Model_Order)#276...
Я попытался изменить $this-getOrder()
в Mage::registry('current_order')
, но это дает мне NULL
. Что я сделал не так?
Моя коллекция:
class PaketId_Shipping_Model_Resource_Result_Collection extends Mage_Core_Model_Resource_Db_Collection_Abstract
{
protected function _construct()
{
parent::_construct();
$this->_init('paketid_shipping/result');
}
public function addOrderFilter($order)
{
if ($order instanceof Mage_Sales_Model_Order) {
$order = (int) $order->getId();
}
if (!is_array($order)) {
$order = array($order);
}
$this->getSelect()->where("main_table.order_id IN (?)", $order);
return $this;
}
protected function _toOptionArray($valueField='entity_id', $labelField='booking_code', $additional=array())
{
return parent::_toOptionArray($valueField, $labelField, $additional);
}
protected function _toOptionHash($valueField='entity_id', $labelField='booking_code')
{
return parent::_toOptionHash($valueField, $labelField);
}
public function getSelectCountSql()
{
$countSelect = parent::getSelectCountSql();
$countSelect->reset(Zend_Db_Select::GROUP);
return $countSelect;
}
Мой ресурс:
class PaketId_Shipping_Model_Resource_Result extends Mage_Core_Model_Resource_Db_Abstract
public function _construct()
{
$this->_init('paketid_shipping/result', 'entity_id');
}
Мой результат:
class PaketId_Shipping_Model_Result extends Mage_Core_Model_Abstract
const ENTITY = 'paketid_shipping_result';
const CACHE_TAG = 'paketid_shipping_result';
protected $_eventPrefix = 'paketid_shipping_result';
protected $_eventObject = 'paketid_shipping_result';
public function _construct()
{
parent::_construct();
$this->_init('paketid_shipping/result');
}
Администратор макета XML:
<layout version="1.0">
<adminhtml_sales_order_shipment_new>
<reference name="content">
<block type="paketid_shipping/adminhtml_sales_order_shipment_view_shipping" name="paketid_shipping.order.view.shipping.block" template="paketid/shipping.phtml"/>
</reference>
</adminhtml_sales_order_shipment_new>
спасибо, но какой файл? Я имею в виду, распространяется на изменение Mage_Sales_Block_Order_View на что? – may
Я редактирую ваш код блока, и вы только что заменили его. – MagentoDeveloper
Я только что заменил Mage_Core_Block_Template на Mage_Sales_Block_Order_Shipment – MagentoDeveloper