Номера версий Magento всегда помогают при отладке проблем Mangeto. Кроме того, где подходит Android (ваш тег)?
Предполагая, что следующая строка вызывает проблемы в вашей системе
$pager = $this->getLayout()->createBlock('page/html_pager', 'sales.order.history.pager')
->setCollection($this->getOrders());
Magento пытается создать блочный объект page/html_pager
(который, при отсутствии переопределений, соответствует Mage_Page_Block_Html_Pager).
В работающей системе это делается с помощью следующего вызова.
$this->getLayout()->createBlock('page/html_pager', 'sales.order.history.pager')
, который возвращает объект Block, а затем метод setCollection блока называется
->setCollection($this->getOrders());
Однако в вашей системе метод createBlock не возвращает объект, и я предполагаю, что он возвращает логическое значение. Взгляните на начало метода createBlock класса Layout.
#File: app/code/core/Mage/Core/Model/Layout.php
public function createBlock($type, $name='', array $attributes = array())
{
try {
$block = $this->_getBlockInstance($type, $attributes);
} catch (Exception $e) {
Mage::logException($e);
return false;
}
Итак, ваша система была изменена или настроена таким образом, что попытки создать блок page/html_pager
вызывают исключение. Проверьте ваш журнал исключений Magento, чтобы увидеть, какие ошибки регистрируются, или просто временно добавьте var_dump
try {
$block = $this->_getBlockInstance($type, $attributes);
} catch (Exception $e) {
var_dump($e->getMessage()); //don't forget to remove me before pushing
//to production
Mage::logException($e);
return false;
}
Что касается того, что этот код делает и как он повлияет на вашу систему, метод setCollection
добавляет объект коллекции (массив, подобный объекту моделей) к вашему объекту Block. Без коллекции ваш блок пейджера (скорее всего) не будет правильно отображаться.