r100845 MediaWiki - Code Review archive

Repository:MediaWiki
Revision:r100844‎ | r100845 | r100846 >
Date:19:01, 26 October 2011
Author:jpostlethwaite
Status:ok
Tags:fundraising 
Comment:
Moving TwoStepAmount form to GlobalCollect.
Modified paths:
  • /trunk/extensions/DonationInterface/gateway_forms/TwoStepAmount.php (deleted) (history)
  • /trunk/extensions/DonationInterface/globalcollect_gateway/forms/TwoStepAmount.php (added) (history)

Diff [purge]

Index: trunk/extensions/DonationInterface/gateway_forms/TwoStepAmount.php
@@ -1,271 +0,0 @@
2 -<?php
3 -/**
4 - * Wikimedia Foundation
5 - *
6 - * LICENSE
7 - *
8 - * This program is free software; you can redistribute it and/or modify
9 - * it under the terms of the GNU General Public License as published by
10 - * the Free Software Foundation; either version 2 of the License, or
11 - * (at your option) any later version.
12 - *
13 - * This program is distributed in the hope that it will be useful,
14 - * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 - * GNU General Public License for more details.
17 - *
18 - * @since r98249
19 - * @author Jeremy Postlethwaite <jpostlethwaite@wikimedia.org>
20 - */
21 -
22 -/**
23 - * This form is designed for bank transfers
24 - */
25 -class Gateway_Form_TwoStepAmount extends Gateway_Form {
26 -
27 - public function __construct( &$gateway, &$form_errors ) {
28 - parent::__construct( $gateway, $form_errors );
29 -
30 - //TODO: This is pretty odd to do here. However, as this form is only
31 - //being used for testing purposes, it's getting the update that goes
32 - //along with yet another change in Form Class construction.
33 - $this->form_data['payment_method'] = empty($this->form_data['payment_method']) ? 'bt' : $this->form_data['payment_method'];
34 - $this->form_data['payment_submethod'] = empty($this->form_data['payment_submethod']) ? 'bt' : $this->form_data['payment_submethod'];
35 -
36 - //$this->form_data['payment_method'] = 'rtbt';
37 - //$this->form_data['payment_submethod'] = 'rtbt_nordea_sweeden';
38 -
39 - //$this->form_data['payment_method'] = 'rtbt';
40 - //$this->form_data['payment_submethod'] = 'rtbt_ideal';
41 - //$this->form_data['issuerids'] = array();
42 -
43 - $this->form_data['process'] = 'other';
44 -
45 - // we only want to load this JS if the form is being rendered
46 - $this->loadValidateJs(); // validation JS
47 -
48 - $this->loadPlaceholders();
49 - }
50 -
51 - public function loadPlaceholders() {
52 - global $wgOut;
53 - // form placeholder values
54 - $first = wfMsg( 'donate_interface-donor-fname' );
55 - $last = wfMsg( 'donate_interface-donor-lname' );
56 - $js = <<<EOT
57 -<script type="text/javascript">
58 -function loadPlaceholders() {
59 - var fname = document.getElementById('fname');
60 - var lname = document.getElementById('lname');
61 - var amountOther = document.getElementById('amountOther');
62 - if (fname.value == '') {
63 - fname.style.color = '#999999';
64 - fname.value = '$first';
65 - }
66 - if (lname.value == '') {
67 - lname.style.color = '#999999';
68 - lname.value = '$last';
69 - }
70 -}
71 -addEvent( window, 'load', loadPlaceholders );
72 -
73 -function formCheck( ccform ) {
74 - var msg = [ 'EmailAdd', 'Fname', 'Lname', 'Street', 'City', 'Zip' ];
75 -
76 - var fields = ["emailAdd","fname","lname","street","city","zip" ],
77 - numFields = fields.length,
78 - i,
79 - output = '',
80 - currField = '';
81 -
82 - for( i = 0; i < numFields; i++ ) {
83 - if( document.getElementById( fields[i] ).value == '' ) {
84 - currField = window['payflowproGatewayErrorMsg'+ msg[i]];
85 - output += payflowproGatewayErrorMsgJs + ' ' + currField + '.\\r\\n';
86 - }
87 - }
88 -
89 - if (document.getElementById('fname').value == '$first') {
90 - output += payflowproGatewayErrorMsgJs + ' first name.\\r\\n';
91 - }
92 - if (document.getElementById('lname').value == '$last') {
93 - output += payflowproGatewayErrorMsgJs + ' last name.\\r\\n';
94 - }
95 - var countryField = document.getElementById( 'country' );
96 - if( countryField.options[countryField.selectedIndex].value == '' ) {
97 - output += payflowproGatewayErrorMsgJs + ' ' + window['payflowproGatewayErrorMsgCountry'] + '.\\r\\n';
98 - }
99 -
100 - // validate email address
101 - var apos = document.payment.emailAdd.value.indexOf("@");
102 - var dotpos = document.payment.emailAdd.value.lastIndexOf(".");
103 -
104 - if( apos < 1 || dotpos-apos < 2 ) {
105 - output += payflowproGatewayErrorMsgEmail;
106 - }
107 -
108 - if( output ) {
109 - alert( output );
110 - return false;
111 - } else {
112 - return true;
113 - }
114 -}
115 -</script>
116 -EOT;
117 - $wgOut->addHeadItem( 'placeholders', $js );
118 - }
119 -
120 - /**
121 - * Required method for constructing the entire form
122 - *
123 - * This can of course be overloaded by a child class.
124 - * @return string The entire form HTML
125 - */
126 - public function getForm() {
127 - $form = $this->generateFormStart();
128 - $form .= $this->getCaptchaHTML();
129 - $form .= $this->generateFormEnd();
130 - return $form;
131 - }
132 -
133 - public function generateFormStart() {
134 - $form = $this->generateBannerHeader();
135 -
136 - $form .= Xml::openElement( 'div', array( 'id' => 'mw-creditcard' ) );
137 -
138 - // provide a place at the top of the form for displaying general messages
139 - if ( $this->form_errors['general'] ) {
140 - $form .= Xml::openElement( 'div', array( 'id' => 'mw-payflow-general-error' ) );
141 - if ( is_array( $this->form_errors['general'] ) ) {
142 - foreach ( $this->form_errors['general'] as $this->form_errors_msg ) {
143 - $form .= Xml::tags( 'p', array( 'class' => 'creditcard-error-msg' ), $this->form_errors_msg );
144 - }
145 - } else {
146 - $form .= Xml::tags( 'p', array( 'class' => 'creditcard-error-msg' ), $this->form_errors_msg );
147 - }
148 - $form .= Xml::closeElement( 'div' );
149 - }
150 -
151 - // add noscript tags for javascript disabled browsers
152 - $form .= $this->getNoScript();
153 -
154 - // open form
155 - $form .= Xml::openElement( 'div', array( 'id' => 'mw-creditcard-form' ) );
156 -
157 - // Xml::element seems to convert html to htmlentities
158 - $form .= "<p class='creditcard-error-msg'>" . $this->form_errors['retryMsg'] . "</p>";
159 - $form .= Xml::openElement( 'form', array( 'name' => 'payment', 'method' => 'post', 'action' => $this->getNoCacheAction(), 'onsubmit' => 'return formCheck(this)', 'autocomplete' => 'off' ) );
160 -
161 - $form .= Xml::openElement( 'div', array( 'id' => 'left-column', 'class' => 'payflow-cc-form-section' ) );
162 - $form .= $this->generatePersonalContainer();
163 - $form .= $this->generatePaymentContainer();
164 - $form .= $this->generateFormSubmit();
165 - $form .= Xml::closeElement( 'div' ); // close div#left-column
166 -
167 - //$form .= Xml::openElement( 'div', array( 'id' => 'right-column', 'class' => 'payflow-cc-form-section' ) );
168 -
169 - return $form;
170 - }
171 -
172 - public function generateFormSubmit() {
173 - // submit button
174 - $form = Xml::openElement( 'div', array( 'id' => 'payflowpro_gateway-form-submit' ) );
175 - $form .= Xml::openElement( 'div', array( 'id' => 'mw-donate-submit-button' ) );
176 - // $form .= Xml::submitButton( wfMsg( 'donate_interface-submit-button' ));
177 - $form .= Xml::element( 'input', array( 'class' => 'button-plain', 'value' => wfMsg( 'donate_interface-cc-button' ), 'type' => 'submit' ) );
178 - $form .= Xml::closeElement( 'div' ); // close div#mw-donate-submit-button
179 - $form .= Xml::openElement( 'div', array( 'class' => 'mw-donate-submessage', 'id' => 'payflowpro_gateway-donate-submessage' ) ) .
180 - wfMsg( 'donate_interface-donate-click' );
181 - $form .= Xml::closeElement( 'div' ); // close div#payflowpro_gateway-donate-submessage
182 - $form .= Xml::closeElement( 'div' ); // close div#payflowpro_gateway-form-submit
183 - return $form;
184 - }
185 -
186 - public function generateFormEnd() {
187 - $form = '';
188 - // add hidden fields
189 - $hidden_fields = $this->getHiddenFields();
190 - foreach ( $hidden_fields as $field => $value ) {
191 - $form .= Html::hidden( $field, $value );
192 - }
193 -
194 - $value = 'BANK_TRANSFER';
195 - //$form .= Html::hidden( $field, $value );
196 - //$form .= Xml::closeElement( 'div' ); // close div#right-column
197 - $form .= Xml::closeElement( 'form' );
198 - $form .= Xml::closeElement( 'div' ); // close div#mw-creditcard-form
199 - $form .= $this->generateDonationFooter();
200 - $form .= Xml::closeElement( 'div' ); // div#close mw-creditcard
201 - return $form;
202 - }
203 -
204 - protected function generatePersonalContainer() {
205 - $form = '';
206 - $form .= Xml::openElement( 'div', array( 'id' => 'payflowpro_gateway-personal-info' ) ); ;
207 - //$form .= Xml::tags( 'h3', array( 'class' => 'payflow-cc-form-header', 'id' => 'payflow-cc-form-header-personal' ), wfMsg( 'donate_interface-cc-form-header-personal' ) );
208 - $form .= Xml::openElement( 'table', array( 'id' => 'payflow-table-donor' ) );
209 -
210 - $form .= $this->generatePersonalFields();
211 -
212 - $form .= Xml::closeElement( 'table' ); // close table#payflow-table-donor
213 - $form .= Xml::closeElement( 'div' ); // close div#payflowpro_gateway-personal-info
214 -
215 - return $form;
216 - }
217 -
218 - protected function generatePersonalFields() {
219 - // first name
220 - $form = $this->getNameField();
221 -
222 - // country
223 - $form .= $this->getCountryField();
224 -
225 - // street
226 - $form .= $this->getStreetField();
227 -
228 -
229 - // city
230 - $form .= $this->getCityField();
231 -
232 - // state
233 - $form .= $this->getStateField();
234 -
235 - // zip
236 - $form .= $this->getZipField();
237 -
238 - // email
239 - $form .= $this->getEmailField();
240 -
241 - return $form;
242 - }
243 -
244 - protected function generatePaymentContainer() {
245 - $form = '';
246 - // credit card info
247 - $form .= Xml::openElement( 'div', array( 'id' => 'payflowpro_gateway-payment-info' ) );
248 - //$form .= Xml::tags( 'h3', array( 'class' => 'payflow-cc-form-header', 'id' => 'payflow-cc-form-header-payment' ), wfMsg( 'donate_interface-cc-form-header-payment' ) );
249 - $form .= Xml::openElement( 'table', array( 'id' => 'payflow-table-cc' ) );
250 -
251 - $form .= $this->generatePaymentFields();
252 -
253 - $form .= Xml::closeElement( 'table' ); // close table#payflow-table-cc
254 - $form .= Xml::closeElement( 'div' ); // close div#payflowpro_gateway-payment-info
255 -
256 - return $form;
257 - }
258 -
259 - protected function generatePaymentFields() {
260 - // amount
261 - $form = '<tr>';
262 - $form .= '<td colspan="2"><span class="creditcard-error-msg">' . $this->form_errors['invalidamount'] . '</span></td>';
263 - $form .= '</tr>';
264 - $form .= '<tr>';
265 - $form .= '<td class="label">' . Xml::label( wfMsg( 'donate_interface-donor-amount' ), 'amount' ) . '</td>';
266 - $form .= '<td>' . Xml::input( 'amount', '7', $this->form_data['amount'], array( 'type' => 'text', 'maxlength' => '10', 'id' => 'amount' ) ) .
267 - ' ' . $this->generateCurrencyDropdown() . '</td>';
268 - $form .= '</tr>';
269 -
270 - return $form;
271 - }
272 -}
Index: trunk/extensions/DonationInterface/globalcollect_gateway/forms/TwoStepAmount.php
@@ -0,0 +1,271 @@
 2+<?php
 3+/**
 4+ * Wikimedia Foundation
 5+ *
 6+ * LICENSE
 7+ *
 8+ * This program is free software; you can redistribute it and/or modify
 9+ * it under the terms of the GNU General Public License as published by
 10+ * the Free Software Foundation; either version 2 of the License, or
 11+ * (at your option) any later version.
 12+ *
 13+ * This program is distributed in the hope that it will be useful,
 14+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
 15+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 16+ * GNU General Public License for more details.
 17+ *
 18+ * @since r98249
 19+ * @author Jeremy Postlethwaite <jpostlethwaite@wikimedia.org>
 20+ */
 21+
 22+/**
 23+ * This form is designed for bank transfers
 24+ */
 25+class Gateway_Form_TwoStepAmount extends Gateway_Form {
 26+
 27+ public function __construct( &$gateway, &$form_errors ) {
 28+ parent::__construct( $gateway, $form_errors );
 29+
 30+ //TODO: This is pretty odd to do here. However, as this form is only
 31+ //being used for testing purposes, it's getting the update that goes
 32+ //along with yet another change in Form Class construction.
 33+ $this->form_data['payment_method'] = empty($this->form_data['payment_method']) ? 'bt' : $this->form_data['payment_method'];
 34+ $this->form_data['payment_submethod'] = empty($this->form_data['payment_submethod']) ? 'bt' : $this->form_data['payment_submethod'];
 35+
 36+ //$this->form_data['payment_method'] = 'rtbt';
 37+ //$this->form_data['payment_submethod'] = 'rtbt_nordea_sweeden';
 38+
 39+ //$this->form_data['payment_method'] = 'rtbt';
 40+ //$this->form_data['payment_submethod'] = 'rtbt_ideal';
 41+ //$this->form_data['issuerids'] = array();
 42+
 43+ $this->form_data['process'] = 'other';
 44+
 45+ // we only want to load this JS if the form is being rendered
 46+ $this->loadValidateJs(); // validation JS
 47+
 48+ $this->loadPlaceholders();
 49+ }
 50+
 51+ public function loadPlaceholders() {
 52+ global $wgOut;
 53+ // form placeholder values
 54+ $first = wfMsg( 'donate_interface-donor-fname' );
 55+ $last = wfMsg( 'donate_interface-donor-lname' );
 56+ $js = <<<EOT
 57+<script type="text/javascript">
 58+function loadPlaceholders() {
 59+ var fname = document.getElementById('fname');
 60+ var lname = document.getElementById('lname');
 61+ var amountOther = document.getElementById('amountOther');
 62+ if (fname.value == '') {
 63+ fname.style.color = '#999999';
 64+ fname.value = '$first';
 65+ }
 66+ if (lname.value == '') {
 67+ lname.style.color = '#999999';
 68+ lname.value = '$last';
 69+ }
 70+}
 71+addEvent( window, 'load', loadPlaceholders );
 72+
 73+function formCheck( ccform ) {
 74+ var msg = [ 'EmailAdd', 'Fname', 'Lname', 'Street', 'City', 'Zip' ];
 75+
 76+ var fields = ["emailAdd","fname","lname","street","city","zip" ],
 77+ numFields = fields.length,
 78+ i,
 79+ output = '',
 80+ currField = '';
 81+
 82+ for( i = 0; i < numFields; i++ ) {
 83+ if( document.getElementById( fields[i] ).value == '' ) {
 84+ currField = window['payflowproGatewayErrorMsg'+ msg[i]];
 85+ output += payflowproGatewayErrorMsgJs + ' ' + currField + '.\\r\\n';
 86+ }
 87+ }
 88+
 89+ if (document.getElementById('fname').value == '$first') {
 90+ output += payflowproGatewayErrorMsgJs + ' first name.\\r\\n';
 91+ }
 92+ if (document.getElementById('lname').value == '$last') {
 93+ output += payflowproGatewayErrorMsgJs + ' last name.\\r\\n';
 94+ }
 95+ var countryField = document.getElementById( 'country' );
 96+ if( countryField.options[countryField.selectedIndex].value == '' ) {
 97+ output += payflowproGatewayErrorMsgJs + ' ' + window['payflowproGatewayErrorMsgCountry'] + '.\\r\\n';
 98+ }
 99+
 100+ // validate email address
 101+ var apos = document.payment.emailAdd.value.indexOf("@");
 102+ var dotpos = document.payment.emailAdd.value.lastIndexOf(".");
 103+
 104+ if( apos < 1 || dotpos-apos < 2 ) {
 105+ output += payflowproGatewayErrorMsgEmail;
 106+ }
 107+
 108+ if( output ) {
 109+ alert( output );
 110+ return false;
 111+ } else {
 112+ return true;
 113+ }
 114+}
 115+</script>
 116+EOT;
 117+ $wgOut->addHeadItem( 'placeholders', $js );
 118+ }
 119+
 120+ /**
 121+ * Required method for constructing the entire form
 122+ *
 123+ * This can of course be overloaded by a child class.
 124+ * @return string The entire form HTML
 125+ */
 126+ public function getForm() {
 127+ $form = $this->generateFormStart();
 128+ $form .= $this->getCaptchaHTML();
 129+ $form .= $this->generateFormEnd();
 130+ return $form;
 131+ }
 132+
 133+ public function generateFormStart() {
 134+ $form = $this->generateBannerHeader();
 135+
 136+ $form .= Xml::openElement( 'div', array( 'id' => 'mw-creditcard' ) );
 137+
 138+ // provide a place at the top of the form for displaying general messages
 139+ if ( $this->form_errors['general'] ) {
 140+ $form .= Xml::openElement( 'div', array( 'id' => 'mw-payflow-general-error' ) );
 141+ if ( is_array( $this->form_errors['general'] ) ) {
 142+ foreach ( $this->form_errors['general'] as $this->form_errors_msg ) {
 143+ $form .= Xml::tags( 'p', array( 'class' => 'creditcard-error-msg' ), $this->form_errors_msg );
 144+ }
 145+ } else {
 146+ $form .= Xml::tags( 'p', array( 'class' => 'creditcard-error-msg' ), $this->form_errors_msg );
 147+ }
 148+ $form .= Xml::closeElement( 'div' );
 149+ }
 150+
 151+ // add noscript tags for javascript disabled browsers
 152+ $form .= $this->getNoScript();
 153+
 154+ // open form
 155+ $form .= Xml::openElement( 'div', array( 'id' => 'mw-creditcard-form' ) );
 156+
 157+ // Xml::element seems to convert html to htmlentities
 158+ $form .= "<p class='creditcard-error-msg'>" . $this->form_errors['retryMsg'] . "</p>";
 159+ $form .= Xml::openElement( 'form', array( 'name' => 'payment', 'method' => 'post', 'action' => $this->getNoCacheAction(), 'onsubmit' => 'return formCheck(this)', 'autocomplete' => 'off' ) );
 160+
 161+ $form .= Xml::openElement( 'div', array( 'id' => 'left-column', 'class' => 'payflow-cc-form-section' ) );
 162+ $form .= $this->generatePersonalContainer();
 163+ $form .= $this->generatePaymentContainer();
 164+ $form .= $this->generateFormSubmit();
 165+ $form .= Xml::closeElement( 'div' ); // close div#left-column
 166+
 167+ //$form .= Xml::openElement( 'div', array( 'id' => 'right-column', 'class' => 'payflow-cc-form-section' ) );
 168+
 169+ return $form;
 170+ }
 171+
 172+ public function generateFormSubmit() {
 173+ // submit button
 174+ $form = Xml::openElement( 'div', array( 'id' => 'payflowpro_gateway-form-submit' ) );
 175+ $form .= Xml::openElement( 'div', array( 'id' => 'mw-donate-submit-button' ) );
 176+ // $form .= Xml::submitButton( wfMsg( 'donate_interface-submit-button' ));
 177+ $form .= Xml::element( 'input', array( 'class' => 'button-plain', 'value' => wfMsg( 'donate_interface-cc-button' ), 'type' => 'submit' ) );
 178+ $form .= Xml::closeElement( 'div' ); // close div#mw-donate-submit-button
 179+ $form .= Xml::openElement( 'div', array( 'class' => 'mw-donate-submessage', 'id' => 'payflowpro_gateway-donate-submessage' ) ) .
 180+ wfMsg( 'donate_interface-donate-click' );
 181+ $form .= Xml::closeElement( 'div' ); // close div#payflowpro_gateway-donate-submessage
 182+ $form .= Xml::closeElement( 'div' ); // close div#payflowpro_gateway-form-submit
 183+ return $form;
 184+ }
 185+
 186+ public function generateFormEnd() {
 187+ $form = '';
 188+ // add hidden fields
 189+ $hidden_fields = $this->getHiddenFields();
 190+ foreach ( $hidden_fields as $field => $value ) {
 191+ $form .= Html::hidden( $field, $value );
 192+ }
 193+
 194+ $value = 'BANK_TRANSFER';
 195+ //$form .= Html::hidden( $field, $value );
 196+ //$form .= Xml::closeElement( 'div' ); // close div#right-column
 197+ $form .= Xml::closeElement( 'form' );
 198+ $form .= Xml::closeElement( 'div' ); // close div#mw-creditcard-form
 199+ $form .= $this->generateDonationFooter();
 200+ $form .= Xml::closeElement( 'div' ); // div#close mw-creditcard
 201+ return $form;
 202+ }
 203+
 204+ protected function generatePersonalContainer() {
 205+ $form = '';
 206+ $form .= Xml::openElement( 'div', array( 'id' => 'payflowpro_gateway-personal-info' ) ); ;
 207+ //$form .= Xml::tags( 'h3', array( 'class' => 'payflow-cc-form-header', 'id' => 'payflow-cc-form-header-personal' ), wfMsg( 'donate_interface-cc-form-header-personal' ) );
 208+ $form .= Xml::openElement( 'table', array( 'id' => 'payflow-table-donor' ) );
 209+
 210+ $form .= $this->generatePersonalFields();
 211+
 212+ $form .= Xml::closeElement( 'table' ); // close table#payflow-table-donor
 213+ $form .= Xml::closeElement( 'div' ); // close div#payflowpro_gateway-personal-info
 214+
 215+ return $form;
 216+ }
 217+
 218+ protected function generatePersonalFields() {
 219+ // first name
 220+ $form = $this->getNameField();
 221+
 222+ // country
 223+ $form .= $this->getCountryField();
 224+
 225+ // street
 226+ $form .= $this->getStreetField();
 227+
 228+
 229+ // city
 230+ $form .= $this->getCityField();
 231+
 232+ // state
 233+ $form .= $this->getStateField();
 234+
 235+ // zip
 236+ $form .= $this->getZipField();
 237+
 238+ // email
 239+ $form .= $this->getEmailField();
 240+
 241+ return $form;
 242+ }
 243+
 244+ protected function generatePaymentContainer() {
 245+ $form = '';
 246+ // credit card info
 247+ $form .= Xml::openElement( 'div', array( 'id' => 'payflowpro_gateway-payment-info' ) );
 248+ //$form .= Xml::tags( 'h3', array( 'class' => 'payflow-cc-form-header', 'id' => 'payflow-cc-form-header-payment' ), wfMsg( 'donate_interface-cc-form-header-payment' ) );
 249+ $form .= Xml::openElement( 'table', array( 'id' => 'payflow-table-cc' ) );
 250+
 251+ $form .= $this->generatePaymentFields();
 252+
 253+ $form .= Xml::closeElement( 'table' ); // close table#payflow-table-cc
 254+ $form .= Xml::closeElement( 'div' ); // close div#payflowpro_gateway-payment-info
 255+
 256+ return $form;
 257+ }
 258+
 259+ protected function generatePaymentFields() {
 260+ // amount
 261+ $form = '<tr>';
 262+ $form .= '<td colspan="2"><span class="creditcard-error-msg">' . $this->form_errors['invalidamount'] . '</span></td>';
 263+ $form .= '</tr>';
 264+ $form .= '<tr>';
 265+ $form .= '<td class="label">' . Xml::label( wfMsg( 'donate_interface-donor-amount' ), 'amount' ) . '</td>';
 266+ $form .= '<td>' . Xml::input( 'amount', '7', $this->form_data['amount'], array( 'type' => 'text', 'maxlength' => '10', 'id' => 'amount' ) ) .
 267+ ' ' . $this->generateCurrencyDropdown() . '</td>';
 268+ $form .= '</tr>';
 269+
 270+ return $form;
 271+ }
 272+}
Property changes on: trunk/extensions/DonationInterface/globalcollect_gateway/forms/TwoStepAmount.php
___________________________________________________________________
Added: svn:mergeinfo
1273 Merged /trunk/extensions/DonationInterface/payflowpro_gateway/forms/TwoStepAmount.php:r95445-96492
2274 Merged /branches/fundraising/extensions/DonationInterface/gateway_forms/TwoStepAmount.php:r95724-100157
Added: svn:eol-style
3275 + native
Added: svn:mime-type
4276 + text/plain
Added: svn:keywords
5277 + Author Date HeadURL Header Id Revision

Follow-up revisions

RevisionCommit summaryAuthorDate
r100954Updated TwoStepAmount form to use ResourceLoader. Created ResourceModule gc.f...jpostlethwaite07:14, 27 October 2011

Status & tagging log