1: <?php
2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25:
26:
27:
28: class Mage_Payment_Block_Form_Cc extends Mage_Payment_Block_Form
29: {
30: protected function _construct()
31: {
32: parent::_construct();
33: $this->setTemplate('payment/form/cc.phtml');
34: }
35:
36: 37: 38: 39: 40:
41: protected function _getConfig()
42: {
43: return Mage::getSingleton('payment/config');
44: }
45:
46: 47: 48: 49: 50:
51: public function getCcAvailableTypes()
52: {
53: $types = $this->_getConfig()->getCcTypes();
54: if ($method = $this->getMethod()) {
55: $availableTypes = $method->getConfigData('cctypes');
56: if ($availableTypes) {
57: $availableTypes = explode(',', $availableTypes);
58: foreach ($types as $code=>$name) {
59: if (!in_array($code, $availableTypes)) {
60: unset($types[$code]);
61: }
62: }
63: }
64: }
65: return $types;
66: }
67:
68: 69: 70: 71: 72:
73: public function getCcMonths()
74: {
75: $months = $this->getData('cc_months');
76: if (is_null($months)) {
77: $months[0] = $this->__('Month');
78: $months = array_merge($months, $this->_getConfig()->getMonths());
79: $this->setData('cc_months', $months);
80: }
81: return $months;
82: }
83:
84: 85: 86: 87: 88:
89: public function getCcYears()
90: {
91: $years = $this->getData('cc_years');
92: if (is_null($years)) {
93: $years = $this->_getConfig()->getYears();
94: $years = array(0=>$this->__('Year'))+$years;
95: $this->setData('cc_years', $years);
96: }
97: return $years;
98: }
99:
100: 101: 102: 103: 104:
105: public function hasVerification()
106: {
107: if ($this->getMethod()) {
108: $configData = $this->getMethod()->getConfigData('useccv');
109: if(is_null($configData)){
110: return true;
111: }
112: return (bool) $configData;
113: }
114: return true;
115: }
116:
117: 118: 119:
120: public function hasSsCardType()
121: {
122: $availableTypes = explode(',', $this->getMethod()->getConfigData('cctypes'));
123: $ssPresenations = array_intersect(array('SS', 'SM', 'SO'), $availableTypes);
124: if ($availableTypes && count($ssPresenations) > 0) {
125: return true;
126: }
127: return false;
128: }
129:
130: 131: 132: 133:
134: public function getSsStartYears()
135: {
136: $years = array();
137: $first = date("Y");
138:
139: for ($index=5; $index>=0; $index--) {
140: $year = $first - $index;
141: $years[$year] = $year;
142: }
143: $years = array(0=>$this->__('Year'))+$years;
144: return $years;
145: }
146:
147: 148: 149: 150: 151:
152: protected function _toHtml()
153: {
154: Mage::dispatchEvent('payment_form_block_to_html_before', array(
155: 'block' => $this
156: ));
157: return parent::_toHtml();
158: }
159: }
160: