1: <?php
2: /**
3: * Magento
4: *
5: * NOTICE OF LICENSE
6: *
7: * This source file is subject to the Open Software License (OSL 3.0)
8: * that is bundled with this package in the file LICENSE.txt.
9: * It is also available through the world-wide-web at this URL:
10: * http://opensource.org/licenses/osl-3.0.php
11: * If you did not receive a copy of the license and are unable to
12: * obtain it through the world-wide-web, please send an email
13: * to license@magentocommerce.com so we can send you a copy immediately.
14: *
15: * DISCLAIMER
16: *
17: * Do not edit or add to this file if you wish to upgrade Magento to newer
18: * versions in the future. If you wish to customize Magento for your
19: * needs please refer to http://www.magentocommerce.com for more information.
20: *
21: * @category Mage
22: * @package Mage_Sales
23: * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24: * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25: */
26:
27: /**
28: * Sales order history block
29: *
30: * @category Mage
31: * @package Mage_Sales
32: * @author Magento Core Team <core@magentocommerce.com>
33: */
34:
35: class Mage_Sales_Block_Order_History extends Mage_Core_Block_Template
36: {
37:
38: public function __construct()
39: {
40: parent::__construct();
41: $this->setTemplate('sales/order/history.phtml');
42:
43: $orders = Mage::getResourceModel('sales/order_collection')
44: ->addFieldToSelect('*')
45: ->addFieldToFilter('customer_id', Mage::getSingleton('customer/session')->getCustomer()->getId())
46: ->addFieldToFilter('state', array('in' => Mage::getSingleton('sales/order_config')->getVisibleOnFrontStates()))
47: ->setOrder('created_at', 'desc')
48: ;
49:
50: $this->setOrders($orders);
51:
52: Mage::app()->getFrontController()->getAction()->getLayout()->getBlock('root')->setHeaderTitle(Mage::helper('sales')->__('My Orders'));
53: }
54:
55: protected function _prepareLayout()
56: {
57: parent::_prepareLayout();
58:
59: $pager = $this->getLayout()->createBlock('page/html_pager', 'sales.order.history.pager')
60: ->setCollection($this->getOrders());
61: $this->setChild('pager', $pager);
62: $this->getOrders()->load();
63: return $this;
64: }
65:
66: public function getPagerHtml()
67: {
68: return $this->getChildHtml('pager');
69: }
70:
71: public function getViewUrl($order)
72: {
73: return $this->getUrl('*/*/view', array('order_id' => $order->getId()));
74: }
75:
76: public function getTrackUrl($order)
77: {
78: return $this->getUrl('*/*/track', array('order_id' => $order->getId()));
79: }
80:
81: public function getReorderUrl($order)
82: {
83: return $this->getUrl('*/*/reorder', array('order_id' => $order->getId()));
84: }
85:
86: public function getBackUrl()
87: {
88: return $this->getUrl('customer/account/');
89: }
90: }
91: