Quick Search:

View

Revision:

Diff

Diff from 1832 to:

Annotations

Annotate by Age | Author | Mixed | None
/fisheye/browse/osCommerce/oscommerce2/trunk/upgrade.html

Annotated File View

hpdl
1660
1 <html>
2 <head>
hpdl
1820
3 <title>osCommerce Online Merchant v2.2 RC2 Upgrade Notes</title>
hpdl
1660
4 <style>
hpdl
1820
5 /* HTML tag styles */
6 body{ font-family:Verdana,Arial,sans-serif; line-height:1.166; margin:0px; padding:10px; background-color:#fafafa; font-size: 13px; }
7 a:link, a:visited, a:hover { text-decoration:none; }
8 a:link, a:hover { color: #036; }
9 a:visited { color:#158; }
10 a:hover { text-decoration: underline; }
11 /**** Global Box Colours & Icons ****/
12 /* INTERNAL BORDER COLOUR */
13 .genericPane .dirPane .welcomePane, #fileTable, .ftFileRow td, .ftFileRowDeleted td, .history,
14 .searchItemDirectory, .searchItemRevision, .searchItemFile, .searchTabResults td, .changesetList
15   { border-top:1px #ccc solid }
16 .searchTabResults tr.startOfGroup td   { border-top:2px #777 solid }
17 /* ITEM TYPE ICONS */
18 .searchItemDirectory{ background: url(images/directoryIcon.gif) top left no-repeat }
19 .searchItemRevision{ background: url(images/revisionIcon.gif) top left no-repeat }
20 .searchItemRevision, .history{ background: url(images/revisionIcon.gif) top left no-repeat }
21 .changesetDetail, .changesetList{ background: url(images/changesetIcon.gif) top left no-repeat }
22 /* FILE TYPE ICONS */
23 .searchItemFile, .ftIconCol{ background: url(images/fileIconGeneric.gif) top left no-repeat }
24 .ftFileRowDeleted td.ftIconCol{ background:#f0f0f0 url(images/fileIconDeleted.gif) top left no-repeat }
25 /* SUBDIRECTORY TREE ICONS */
26 .folder{ padding-left:20px; /* background:url(images/folderIcon.gif) top left no-repeat; */}
27 /* SUBDIRECTORY TREE filename styles */
28 .folderPlain{}
29 .folderEmpty{ color: #777; }
30 .folderHidden{ font-style: italic; }
31 .folderHiddenEmpty{ font-style: italic; color: #777 }
32 /* Basic Box Styles */
33 .box{ padding: 0px; margin: 0 0 7px 0; background-color:#fff; }
34 .box h3
35   { color:#0a0a0a; font-size:.7em; font-family:Tahoma, Arial, Helvetica, sans-serif; border-width:0 0 1px 0;
36     background-color: #f9f9ff; padding:2px 0 2px 10px; margin:0px; }
37 .boxMessage
38   { background:#fff; font-size:.75em; font-style:italic; color:#000000; margin:0px; padding:5px 5px 5px 30px; }
39 .boxBody{ font-size:0.75em; padding: 0 15px 0 15px;}
40 .boxIcon{ float:right;font-weight:normal;font-size:0.9em; margin:0; padding:0; }
41 .boxIcon img{ border-width:0px; margin-right:5px; }
42 .boxIconText{ vertical-align:top; margin-right:5px; }
43 /* Pane with Centred Text */
44 .centrePane{ text-align:center; font-size:0.75em;padding:10px; }
45 .centrePane p{ margin:0; }
46 /* tour */
47 #tourTop{background:url(tour/t_top.gif) top left no-repeat; padding-top:10px;}
48 #tourRight{ background:url(tour/t_right.gif) top right no-repeat; padding-right:21px; }
49 #tourBody{ background:url(tour/t_body.gif) top left repeat; padding:0px 10px; }
50 #tourCorner{ background:url(tour/t_corner.gif) top right no-repeat; padding-right:21px; }
51 #tourBottom{ background:url(tour/t_bottom.gif) top left no-repeat;padding-top:23px }
52 .tourTitle{ font-size:0.7em; position:absolute; left:15px; top:12px; font-weight:bold;}
53 .tourControls{ font-size:0.7em; position:absolute; right:18px; top:12px; font-weight:bold;}
54 .tourDescription{ font-size:0.8em; padding:20px 15px 0px 15px; }
55 .tourDescription p{ margin:0; padding-bottom:3px;}
56 .tourDescription a{ font-weight:bold;}
57 .tourDescription code{ font-size:120%; }
58 table.tourEg td { font-size:0.8em; }
59 table.tourEg { margin-left: 2px; border:1px solid #999;}
60 .bubbleLeft, .bubbleRight, .bubbleBelow, .bubbleAbove, .bubbleBelowRight {  z-index:99; position:absolute; }
61 .bubbleBelow { margin: 20px 5px 0 15px; width:436px; background:url(tour/uparrow.gif) no-repeat top left; padding-top:37px; }
62 .bubbleBelowRight { margin-top:16px; width:436px; right:16px; background:url(tour/uparrowRight.gif) no-repeat top left; padding-top:37px; }
63 .bubbleBelow .bubbleText, .bubbleBelowRight .bubbleText { background:url(tour/upbottom.gif) bottom left no-repeat; padding:0px 25px 30px 25px; }
64 .bubbleAbove { margin-top: -70px; margin-left:15px; width:436px; background:url(tour/downarrow.gif) no-repeat bottom left; padding-bottom:37px; }
65 .bubbleAbove .bubbleText { background:url(tour/belowtop.gif) top left no-repeat; padding:15px 7px 0px 19px; }
66 .bubbleRight { left: 310px; margin-top:10px; width:292px; background:url(tour/leftarrow.gif) no-repeat top right; padding-top:19px; }
67 .bubbleLeft { left:30px; margin-top:10px; width:292px; background:url(tour/rightarrow.gif) no-repeat top right; padding-top:19px }
68 .bubbleLeft .bubbleText, .bubbleRight .bubbleText { background:url(tour/rightbottom.gif) bottom right no-repeat; padding:0px 25px 30px 25px; }
69 .bubbleText { font-family: Tahoma, Helvetica, sans-serif; font-size:11px; color:#000; font-weight:bold;  text-align:center; }
70 /* file history styles */
71 .history{ display:block; color:#000000; font-size:.75em; padding:5px 5px 5px 30px; }
72 .history pre{ font-size:1em; margin:3px 0 3px 0; }
73 .history p{ margin:0; }
74 /* changeset styles  */
75 .changesetDetail, .changesetList { display:block; color:#000000; font-size:.7em; }
76 .changesetDetail{ margin-top:10px; padding:5px 5px 10px 35px; }
77 .changesetDetail ul{ padding:0;margin:0; }
78 .changesetList{ padding:5px 5px 5px 30px; }
79 .changesetDetail pre, .changesetList pre{ font-size:105% }
80 .changesetList pre{ margin:3px 0 3px 0; }
81 .changesetDetail p{ margin:3px 0 3px 0; }
82 .changesetList p{ margin:0; }
83 .csId, .csAuthor{ font-weight:bold; }
84 .csAge{ display:inline; }
85 .csComment
86   { padding:3px; margin-top:2px; font-size:1.08em; font-family:Monaco, "Lucida Console", "Courier New", Courier, monospace;
87     display:block; background-color:#fcfefe; }
88 .changesetDetail .csComment {
89     margin-top:8px;
90 }
91 li.csFilename{ list-style-type:none; padding-top:4px; white-space:nowrap; }
92 .changesetDetail li.csFilename { margin-top: 0px; }
93 .diffPaneChangset{ margin:10px; }
94 .controls{ padding-top:10px; }
95 .controls a, .controls a:link, .controls a:hover, .controls a:visited{ color:green; cursor:pointer; }
96 .csMore{ font-style:italic; }
97 /* linehistory style */
98 .linehistory{padding:5px 3px 5px 3px; font-size:small; text-align:center;}
99 .linehistory img{ width:300px; border:0;}
100 /* file table styles */
101 #fileTable{ border-width:0; width:100%;}
102 #ftTitle{ font-size:.7em; font-weight:bold;}
103 #ftTitle td{ padding:4px 0 4px 0; }
104 .ftIconCol{width:35px;vertical-align:top;}
105 .ftIconCol img{ margin:2px 0 0 6px; }
106 .ftFileRow td, .ftFileRowDeleted td{ font-size:.7em; border-width:1px 0 0 0; padding: 4px 0 0 0;}
107 .ftFileRowDeleted, .ftFileRowDeletedComment{ background-color:#f0f0f0 }
108 .ftFileName{ font-weight:bold; }
109 .ftRev{}
110 .ftAuthor{}
111 .ftComment{ font-size:.65em; padding:0 0 4px 0; }
112 /* form styles */
113 .formPane{ padding:5px; margin:0; white-space:nowrap; }
114 .formPane table{ font-size:0.7em; }
115 .formPane input, .formPane select, .formPane td{ font-size:100%; vertical-align:middle }
116 .formPane form{ margin:0; padding:0; }
117 .formPane td{ padding-left:10px; white-space:nowrap; vertical-align:middle; }
118 /* Admin Stuff #TODO: Fix this shite!! */
119 .label, .verb, .errorLabel { font-weight:bold; text-align:right; }
120 .checkboxLabel {font-size:140%;}
121 .verbDisabled {color:#a0a0a0; }
122 .errorLabel, .errorMessage, .checkboxErrorLabel { color:#cc3300; }
123 .statusMessage { color:#22aa00;}
124 .verb a:link, .verb a:hover, .verb a:visited { text-decoration:underline }
125 .adminTable { margin:5px; border:1px solid #ddd }
126 .adminTable th { background-color:#eee; }
127 .adminTable td, .adminTable th { padding:3px 6px; white-space:normal; }
128 .confirm
129   { font-size:.7em; background:#ffffe1 url(images/infoIcon.gif) top left no-repeat; border:#ddd 1px solid;
130     text-align:center; line-height:2em; padding: 10px; margin: 6px }
131 .formPane h4 { font-size:0.8em; margin:10px 0 5px 5px; }
132 .description { font-style:italic }
133 .adminSubHeading { text-decoration:underline;font-weight:bold; }
134 /* search styles */
135 .searchCriteria{ padding:5px; }
136 .searchCriteria .formPane td { vertical-align:top; padding:5px 0 5px 0; }
137 .searchResults{ padding:0 0 5px 0; }
138 .searchItemDirectory, .searchItemRevision, .searchItemFile
139   { display:block; font-size:.7em; padding:5px 5px 5px 30px; }
140 .searchItemDirectory pre, .searchItemRevision pre, .searchItemFile pre
141   { font-size:100%; margin:3px 0 3px 0; }
142 .searchItemDirectory p, .searchItemRevision p, .searchItemFile p{ margin:0; }
143 .searchResultsSubItem { font-size:100%;margin-top:3px; padding-left:20px; }
144 .searchResultsSubItem pre{ font-size:100%; margin:0 0 3px 0; }
145 table.searchTabResults {font-size:.7em; margin:0; padding:0; }
146 .searchTabResults th, .searchTabResults td {text-align: left; margin:0; padding-right: 3px; vertical-align: top}
147 .searchTabResults td.numberTabCell {text-align: right;}
148 .pagination { font-size:.68em; padding:5px 10px 5px 10px; text-align:right; margin:0 }
149 /* quicksearch results */
150 .qsResult{ display:block; font-size:.7em; padding:0px 5px 0px 15px; margin:0; }
151 .qsSummary{ float:right; text-transform:none; font-weight:normal; padding-right:3px; }
152 .qsResult h4{ font-size:100%; margin:10px 0 0 0; }
153 .qsResult dt{ margin-top:5px; }
154 .qsResult dd{ padding-left:0; margin-left:15px; }
155 .qsResult p{ padding-left:15px; margin: 3px 0 0 0;}
156 .qsKeyword, .qsNumber{ font-weight:bold; }
157 .qsFileDir{ display:block; margin-top:3px; }
158 .qsFiles{ padding-left:15px; display:block; }
159 /* subdir tree styles */
160 .toolBar
161   { text-align:right; font-size:0.65em; padding:0px 3px 0 3px; font-family:Tahoma, Arial, Helvetica, sans-serif;
162     /*border-bottom:1px solid #ccc;*/ }
163 .toolBarHidden, .toolBarEmpty, .toolBarSort
164   { float:right; padding:2px 3px 2px 3px; background-color:#eee; border:1px solid #ccc; margin-top:4px }
165 .warningToolBar{ font-size:100%; padding:2px 3px; margin-top:4px; }
166 .prop .dirPane {padding-left:10px}
167 .dirPane{ padding:10px 10px 10px 0px; font-size:0.7em; font-family:Tahoma, Arial, Helvetica, sans-serif; }
168 .dirPane a:link, .dirPane a:hover, .dirPane a:visited{ color:#000; }
169 .dirPane ul, .dirPane ul ul{ margin:0; padding:0; }
170 .dirPane ul li, .dirPane ul ul li{ margin:0; padding:0; list-style-type:none; list-style-position:inside; }
171 .dirPane ul li{ margin-top:4px; }
172 .dirPane ul ul li{ margin-top:4px; margin-left:17px; }
173 /* subdir tree styles */
174 .helpPane{ padding:0px 10px 10px 10px;font-size:0.7em; font-family:Verdana, Arial, Helvetica, sans-serif;width:190px; }
175 .helpPane ul{ margin:0;padding:0; }
176 .helpPane ul li{ margin-top:5px; list-style-type:none;font-weight:bold; }
177 .helpPane ul ul li{ margin-left:10px; list-style-position:inside; list-style-type:square; font-weight:normal; }
178 .helpPaneContents{ color:#111; padding:10px 10px 10px 15px; font-size:0.75em; }
179 .helpPaneContents h4{ color:#222; margin:0; }
180 .helpPaneContents p{ margin:0 0 7px 0; }
181 code { font-size:120% }
182 .helpPaneContents dt{ font-size:.95em; margin-left:10px; font-weight:bold; font-style:italic; color:#444 }
183 .helpPaneContents dd{ margin:4px 0 7px 20px; }
hpdl
1660
184
hpdl
1820
185 /* Diff Sytles */
186 .diffPane{ padding: 10px 20px; }
187 .diff{ font-size:100%; white-space:nowrap; margin:0; padding:0; border:1px solid #ccc; }
188 .diffFile, .diffFileA, .diffFileB, .diffCS{ font-size:.9em; text-align:right; font-weight:bold; }
189 .diffCS{ font-weight:normal }
190 .diffWarning td.diffContent, .diffSkipped td.diffContent{ vertical-align:middle; padding:0 5px 0 5px; font-size:.9em; }
191 .diffWarning td.diffContent{ background:#ffffe1; }
192 .diffSkipped td.diffContent{ background:#fafafa; color:#444; }
193 .diffSection{ }
194 .diffPre { font-size:100%; margin:0; padding:0; }
195 .diffNav{ vertical-align:top; white-space:nowrap; }
196 /* Note A=Deleted B=Added */
197 .diffLineNumbers, .diffLineNumbersA, .diffLineNumbersB{ text-align:right; vertical-align:top; }
198 .diffMarkerCol, .diffMarkerColA, .diffMarkerColB, .diffWarning td.diffMarkerCol, .diffSkipped td.diffMarkerCol
199   { padding-right:5px; text-align:center; vertical-align:middle; }
200 .diffMarkerCol{ border-right:1px solid #ccc }
201 .diffMarkerColA{ border-right:1px solid red; }
202 .diffMarkerColB{ border-right:1px solid green; }
203 .diffWarning td.diffMarkerCol{ border-right:1px solid yellow; }
204 .diffSkipped td.diffMarkerCol{ border-right:1px solid orange; }
205 .diffSkipped td.diffLineNumbers{ font-size:.9em; font-style:italic; }
206 .diffSkipped td.diffLineNumbers a:link, .diffSkipped td.diffLineNumbers a:visited{ color:orange; }
207 .diffContent, .diffContentA, .diffContentB, .ediffContentA, .ediffContentB{ padding-left:4px; text-align:left; vertical-align:top; }
208 /*
209 .diffContentA, .ediffContentA{ border-top:1px solid yellow; }
210 .diffContentB, .ediffContentB{ border-bottom:1px solid #dcfadc; }
211 */
212 .diffLineNumbersA, .diffContentA, a.diffFileA:link, a.diffFileA:hover, a.diffFileA:visited, .ediffChangedA
213   { color:red; background-color:#ffc; }
214 .diffLineNumbersB, .diffContentB, a.diffFileB:link, a.diffFileB:hover, a.diffFileB:visited, .ediffChangedB
215   { color:green; background-color:#f0fff0 }
216 .ediffChangedA{  }
217 .ediffChangedB{  }
218 .ediffContentA{ background-color:#ffffed; }
219 .ediffContentB{ background-color:#fafffa; }
220 /* annotation styles */
221 .annPaneLegend{ font-size:.7em; padding:9px 5px 9px 9px; }
222 .annLegend{ font-size:0.9em; padding:0px; margin:8px 0 0 0; }
223 .annLegend td{ border:1px solid #ccc; padding:2px; margin-right:2px; text-align:center; }
224 .annPane{ font-size:.75em; padding:5px 10px 5px 10px; }
225 .annPane table{ font-size:100%; white-space:nowrap; margin:0; padding:0; border:1px solid #ccc;  }
226 .annPane td{ text-align:right; vertical-align:top; padding:0 3px 0 5px; }
227 .annPane pre {margin: 0px; padding-bottom: 0px;}
228 .annPane span.annLine {font-family: monospace;}
229 td.annWarning, span.annWarning {text-align:left; font-size:.75em; border-right:1px solid yellow; background:#ffffe1; }
230 /**** changelog styles  ****/
231 .chJoggerPane{ padding:5px 0 5px 1px; }
232 .chJogger{ font-size:.65em; padding:0; margin:0; white-space:nowrap }
233 .chJogger td{ text-align:center; vertical-align:top; padding:0; margin:0;}
234 td.chJoggerFrom{ text-align:left; padding-left:1px; }
235 td.chJoggerTo{ text-align:right; }
236 /* calendar */
237 .calPane{ text-align:center; padding:0 10px 5px 10px; margin:0; white-space:nowrap; }
238 .calPane a:link, .calPane a:hover, .calPane a:visited{ color:#000; text-decoration:none; }
239 .calPane a:hover{ text-decoration:underline; }
240 .calPane table{ font-size:.7em; margin:5px auto 0 auto;}
241 .calPane input, .calPane select, .calPane td{ font-size:100%; vertical-align:middle; white-space:nowrap; }
242 .calPane td{ font-size:100%; text-align:center}
243 .calDays{  }
244 .calDays td, .calMonths td{ border:1px solid #eee; }
245 .caldays td{ width:14%;  background-color:#fbfff9; }
246 .calDays td.calDayCell{ border-bottom:1px solid #999; background-color:#fff; }
247 .calMonths td{ width:14%; background-color:#fbfff9; }
248 .calPane form{ margin:0; padding:0; }
249 .changelogMatching{  }
250 .caldays td.changelogShowing{ background-color:#ccffaa; color: #000 }
251 .caldays td.changelogShowing:hover{ background-color:#66FF00; }
252 .changelogMatchingCount{ font-size:.72em ; vertical-align:super }
hpdl
1660
253
hpdl
1820
254 /* "commandline" output */
255 .cmdlineHelpPane { margin:15px auto 0 auto; }
256 .cmdlineHelpPane { padding: 0 0px 0 15px;}
257 .cmdlineHelpPane a:link, .cmdlineHelpPane a:hover, .cmdlineHelpPane a:visited { text-decoration:underline }
hpdl
1660
258
hpdl
1820
259 .prefsTable {border: 1px solid #ccc; border-collapse:collapse;}
260 .prefsHeaderRow {padding: 3px 5px; background:#eee; font-weight:bold; border-top: 1px solid #ccc; border-bottom: 1px solid #ccc;}
hpdl
1660
261
hpdl
1820
262 .loading {font-family: Tahoma, Helvetica, Arial, sans-serif; font-size:0.9em; color:#666}
hpdl
1660
263
hpdl
1820
264 /* new diff styling */
265 /*
266  * Source Styles
267  */
268 table.diff {
269     font-size:100%;
270 }
271 .diff td {
272   font-family:monospace;
273   font-size:small;
274 }
275 .unifiedDiff td.lineContent {
276   width:99%;
277 }
278 .sidebysideDiff td.lineContent {
279   width:49%;
280 }
281 .hardDiff td.lineContent {
282   white-space:pre;
283 }
284 .softDiff td.lineContent {
285   white-space:normal;
286   vertical-align:top;    
287 }
288 .diff .commentForm {
289   /*border:1px solid orange;*/
290   background-color:#FFE7C6;
291   margin:0;
292   padding:5px 10px;
293 }
294 .diff td.lineNumber,
295 .diff td.diffLineNumbers {
296   text-align:right;
297   padding-right:9px;
298   padding-left:5px;
299   color:#999;
300 }
301 .diffNav{
302   vertical-align:top;
303   white-space:nowrap;
304 }
hpdl
1660
305
hpdl
1820
306 /* Note A=Deleted B=Added */
307 .diffLineNumbers,
308 .diffLineNumbersA,
309 .diffLineNumbersB {
310   text-align:right;
311   vertical-align:middle;
312   padding-right:9px;
313 }
hpdl
1660
314
hpdl
1820
315 .diffMarkerCol,
316 .diffMarkerColA,
317 .diffMarkerColB,
318 .diffWarning td.diffMarkerCol,
319 .diffSkipped td.diffMarkerCol {
320   padding-right: 5px;
321   text-align: center;
322   vertical-align: middle;
323 }
hpdl
1660
324
hpdl
1820
325 .diffMarkerCol {
326   border-right: 1px solid #ccc
327 }
328 .diffMarkerColA {
329   border-right: 1px solid red;
330 }
331 .diffMarkerColB {
332   border-right: 1px solid green;
333 }
334 .diffWarning td.diffMarkerCol {
335   border-right: 1px solid yellow;
336 }
337 .diffSkipped td.diffMarkerCol {
338   border-right: 1px solid orange;
339 }
340 .diffSkipped td.diffLineNumbers {
341   font-style: italic;
342 }
343 .diffSkipped td.diffLineNumbers a:link,
344 .diffSkipped td.diffLineNumbers a:visited {
345   color: orange;
346 }
347 .diffContent,
348 .diffContentA,
349 .diffContentB,
350 .ediffContentA,
351 .ediffContentB {
352   padding-left: 4px;
353   text-align: left;
354   vertical-align:middle;
355 }
hpdl
1660
356
hpdl
1820
357 td.diffContentA,
358 a.diffFileA:link,
359 a.diffFileA:hover,
360 a.diffFileA:visited,
361 .ediffChangedA{
362   color:red;
363   background-color:#ffc;
364 }
365 td.diffContentB,
366 a.diffFileB:link,
367 a.diffFileB:hover,
368 a.diffFileB:visited,
369 .ediffChangedB {
370   color:green; background-color:#f0fff0
371 }
372 .ediffChangedA{  }
hpdl
1660
373
hpdl
1820
374 .ediffChangedB{  }
hpdl
1660
375
hpdl
1820
376 .ediffContentA {
377   background-color: #ffffed;
378 }
379
380 .ediffContentB {
381   background-color: #fafffa;
382 }
383
384 .diff tr.sourceLine,
385 .diff tr.lineHighlighted {
386   cursor:default;
387 }
388
389 .diff .lineHighlighted,
390 .diff .lineHighlighted .diffLineNumbersA,
391 .diff .lineHighlighted .diffLineNumbersB,
392 .diff .lineHighlighted .diffContentA,
393 .diff .lineHighlighted .diffContentB,
394 .diff .lineHighlighted .ediffContentA,
395 .diff .lineHighlighted .ediffContentB,
396 .diff .lineHighlighted .ediffChangedA,
397 .diff .lineHighlighted .ediffChangedB {
398   background-color:#FFE7C6;
399 }
400 .textDelMarker, .textAddMarker {
401   font-weight:bold;
402 }
403 td.diffLineNumbersA,
404 .textDelMarker {
405   color:red;
406 }
407 td.diffLineNumbersB,
408 .textAddMarker {
409   color:green;
410 }
411 #quickSearch {
412     color:#333;
413     font-size:x-small;
414 }
415 input.qsInput {
416     height:12px;
417 }
418
419 .help {
420     background:transparent url(images/icn_12_help.gif) no-repeat right;
421     padding-right:14px;
422 }
423 .adminHelp {
424     background:transparent url(images/icn_12_help.gif) no-repeat left;
425     padding-right:10px;
426 }
427 a.adminHelp:hover {
428     text-decoration:none;
429 }
430 a.navPrevious {
431     background:transparent url(images/icn_12_arrowleft.gif) no-repeat left;
432     padding-left:16px;
433 }
434 a.navNext {
435     background:transparent url(images/icn_12_arrowright.gif) no-repeat right;
436     padding-right:16px;
437 }
438
439  
440 /* Browser Specific Styles */
441
442
443
444 /*
445 ua=safari
446
447
448
449
450 */
451 .uaIndicator{ color:
452  
453  
454  
455  
456  pink
457 } /* grey is default */
458 table.diff td, .annPane{
459  
460  
461  font-size:0.95em;
462 }
463
464
465
466  .diffPaneChangset{ font-size:140% }
467  pre.csComment{ font-size:135%; }
468
hpdl
1660
469 .affectedFiles { border: 1px #cccccc dotted; background-color: #eeeeee; font-style: italic; }
470 </style>
471 </head>
472 <body>
473
hpdl
1820
474 <h1>osCommerce Online Merchant v2.2 RC2 Upgrade Notes</h1>
hpdl
1660
475
hpdl
1820
476 <p>The following upgrade guide is based on the osCommerce 2.2 Release Candidate 1 release. If you have not yet updated to this release please review its upgrade guide in the extras directory (<a href="extras/upgrade-22rc1.html">upgrade-22rc1.html</a>) before applying these changes.</p>
hpdl
1660
477
hpdl
1820
478 <p>The following changes should be performed in order to upgrade an existing osCommerce Online Merchant v2.2 RC1 store to v2.2 RC2.</p>
hpdl
1660
479
hpdl
1820
480 <p><small><i>Legend: [SQL] Database Changes; [A] Administration Tool; [C] Catalog</i></small></p>
481
hpdl
1660
482 <ul>
hpdl
1820
483   <li>[SQL] Database changes</li>
484   <li>[A] Allow Administration Tool elements to be dynamically controlled</li>
485   <li>[C] Update download delivery routine</li>
486   <li>[C] Remove redundant currencies</li>
487   <li>[C] Update the navigation history class</li>
488   <li>[C] Update the order totals class</li>
489   <li>[C] Checkout procedure update</li>
490   <li>[C] Update product notifications</li>
491   <li>[AC] Improve register_globals compatibility layer</li>
492   <li>[AC] Introduce public orders and downloads status flags</li>
493   <li>[C] Update the free shipping method title</li>
494   <li>[C] Update credit card error messages</li>
495   <li>[A] Update File Manager</li>
496   <li>[A] Update the table block class</li>
497   <li>[A] MySQL 5.0 Strict Mode compatibility updates</li>
498   <li>[A] Update http_build_query() compatibility function</li>
499   <li>[A] Update Newsletter Manager</li>
500   <li>[AC] Update database session storage handler</li>
501   <li>[A] Update administration of categories</li>
502   <li>[C] Update processing of Address Book entries</li>
503   <li>[A] Update administration of product attributes</li>
504   <li>[A] Protect includes directory from direct HTTP requests</li>
505   <li>[A] Display module version if available</li>
506   <li>[A] Update database backup and restoration</li>
507   <li>[C] Update new products module</li>
508 </ul>
hpdl
1660
509
hpdl
1820
510 <h3>[SQL] Database changes</h3>
hpdl
1660
511
hpdl
1820
512 <ul>
513   <li>Add indexes to increase performance</li>
514   <li>Add public and download status flag fields to the orders_status table</li>
515   <li>Increase payment_method field size on the orders table</li>
516   <li>Increase the last_page_url field size on the whos_online table</li>
517 </ul>
hpdl
1660
518
hpdl
1820
519 <table class="diff hardDiff unifiedDiff" cellspacing="0">
520   <tr>
521     <td class="lineContent diffContent">alter table banners add index idx_banners_group (banners_group);
522 alter table banners_history add index idx_banners_history_banners_id (banners_id);
523 alter table currencies add index idx_currencies_code (code);
524 alter table customers add index idx_customers_email_address (customers_email_address);
525 alter table customers_basket add index idx_customers_basket_customers_id (customers_id);
526 alter table customers_basket_attributes add index idx_customers_basket_att_customers_id (customers_id);
527 alter table orders add index idx_orders_customers_id (customers_id);
528 alter table orders_products add index idx_orders_products_orders_id (orders_id);
529 alter table orders_products add index idx_orders_products_products_id (products_id);
530 alter table orders_status_history add index idx_orders_status_history_orders_id (orders_id);
531 alter table orders_products_attributes add index idx_orders_products_att_orders_id (orders_id);
532 alter table orders_products_download add index idx_orders_products_download_orders_id (orders_id);
533 alter table products add index idx_products_model (products_model);
534 alter table products_attributes add index idx_products_attributes_products_id (products_id);
535 alter table reviews add index idx_reviews_products_id (products_id);
536 alter table reviews add index idx_reviews_customers_id (customers_id);
537 alter table specials add index idx_specials_products_id (products_id);
538 alter table zones add index idx_zones_to_geo_zones_country_id (zone_country_id);
hpdl
1660
539
hpdl
1820
540 alter table orders_status add public_flag int DEFAULT '1';
541 alter table orders_status add downloads_flag int DEFAULT '0';
hpdl
1660
542
hpdl
1820
543 alter table orders modify payment_method varchar(255) NOT NULL;
544
545 alter table whos_online modify last_page_url text NOT NULL;</td>
546   </tr>
hpdl
1660
547 </table>
548
hpdl
1820
549 <h3>[A] Allow Administration Tool elements to be dynamically controlled</h3>
hpdl
1660
550
hpdl
1820
551 <ul>
552   <li>Add toggleDivBlock() Javascript function to admin/includes/general.js to allow elements on the Administration Tool to be dynamically controlled.</li>
553 </ul>
hpdl
1660
554
555 <p class="affectedFiles"><b>Affected Files</b><br />
hpdl
1820
556 catalog/admin/includes/general.js</p>
hpdl
1660
557
hpdl
1820
558 <span class="affectedFiles">File: catalog/admin/includes/general.js (<a href="http://svn.oscommerce.com/fisheye/browse/osCommerce/oscommerce2/trunk/catalog/admin/includes/general.js?r1=1635&r2=1663">online</a>) (<a href="http://svn.oscommerce.com/fisheye/rdiff/osCommerce/oscommerce2/trunk/catalog/admin/includes/general.js?r1=1635&r2=1663">raw</a>)</span>
hpdl
1660
559
hpdl
1820
560 <table class="diff hardDiff unifiedDiff" cellspacing="0">
561         <tr>
562                     <td class="diffLineNumbers">31</td><td class="diffLineNumbers">31</td><td class="diffMarkerCol">&nbsp;</td><td class="lineContent diffContent">function rowOutEffect(object) {</td>
563         </tr>
564         <tr>
565                     <td class="diffLineNumbers">32</td><td class="diffLineNumbers">32</td><td class="diffMarkerCol">&nbsp;</td><td class="lineContent diffContent">&nbsp; if (object.className == &#039;dataTableRowOver&#039;) object.className = &#039;dataTableRow&#039;;</td>
566         </tr>
567         <tr>
568                     <td class="diffLineNumbers">33</td><td class="diffLineNumbers">33</td><td class="diffMarkerCol">&nbsp;</td><td class="lineContent diffContent">}</td>
569         </tr>
570         <tr>
571             <td class="diffLineNumbers">&nbsp;</td><td class="diffLineNumbersB">34</td><td class="diffMarkerColB"><span class="textAddMarker">+</span></td><td class="lineContent diffContentB"></td>
572         </tr>
573         <tr>
574             <td class="diffLineNumbers">&nbsp;</td><td class="diffLineNumbersB">35</td><td class="diffMarkerColB"><span class="textAddMarker">+</span></td><td class="lineContent diffContentB">function toggleDivBlock(id) {</td>
575         </tr>
576         <tr>
577             <td class="diffLineNumbers">&nbsp;</td><td class="diffLineNumbersB">36</td><td class="diffMarkerColB"><span class="textAddMarker">+</span></td><td class="lineContent diffContentB">&nbsp; if (document.getElementById) {</td>
578         </tr>
579         <tr>
580             <td class="diffLineNumbers">&nbsp;</td><td class="diffLineNumbersB">37</td><td class="diffMarkerColB"><span class="textAddMarker">+</span></td><td class="lineContent diffContentB">&nbsp;&nbsp;&nbsp; itm = document.getElementById(id);</td>
581         </tr>
582         <tr>
583             <td class="diffLineNumbers">&nbsp;</td><td class="diffLineNumbersB">38</td><td class="diffMarkerColB"><span class="textAddMarker">+</span></td><td class="lineContent diffContentB">&nbsp; } else if (document.all){</td>
584         </tr>
585         <tr>
586             <td class="diffLineNumbers">&nbsp;</td><td class="diffLineNumbersB">39</td><td class="diffMarkerColB"><span class="textAddMarker">+</span></td><td class="lineContent diffContentB">&nbsp;&nbsp;&nbsp; itm = document.all[id];</td>
587         </tr>
588         <tr>
589             <td class="diffLineNumbers">&nbsp;</td><td class="diffLineNumbersB">40</td><td class="diffMarkerColB"><span class="textAddMarker">+</span></td><td class="lineContent diffContentB">&nbsp; } else if (document.layers){</td>
590         </tr>
591         <tr>
592             <td class="diffLineNumbers">&nbsp;</td><td class="diffLineNumbersB">41</td><td class="diffMarkerColB"><span class="textAddMarker">+</span></td><td class="lineContent diffContentB">&nbsp;&nbsp;&nbsp; itm = document.layers[id];</td>
593         </tr>
594         <tr>
595             <td class="diffLineNumbers">&nbsp;</td><td class="diffLineNumbersB">42</td><td class="diffMarkerColB"><span class="textAddMarker">+</span></td><td class="lineContent diffContentB">&nbsp; }</td>
596         </tr>
597         <tr>
598             <td class="diffLineNumbers">&nbsp;</td><td class="diffLineNumbersB">43</td><td class="diffMarkerColB"><span class="textAddMarker">+</span></td><td class="lineContent diffContentB"></td>
599         </tr>
600         <tr>
601             <td class="diffLineNumbers">&nbsp;</td><td class="diffLineNumbersB">44</td><td class="diffMarkerColB"><span class="textAddMarker">+</span></td><td class="lineContent diffContentB">&nbsp; if (itm) {</td>
602         </tr>
603         <tr>
604             <td class="diffLineNumbers">&nbsp;</td><td class="diffLineNumbersB">45</td><td class="diffMarkerColB"><span class="textAddMarker">+</span></td><td class="lineContent diffContentB">&nbsp;&nbsp;&nbsp; if (itm.style.display != &#034;none&#034;) {</td>
605         </tr>
606         <tr>
607             <td class="diffLineNumbers">&nbsp;</td><td class="diffLineNumbersB">46</td><td class="diffMarkerColB"><span class="textAddMarker">+</span></td><td class="lineContent diffContentB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; itm.style.display = &#034;none&#034;;</td>
608         </tr>
609         <tr>
610             <td class="diffLineNumbers">&nbsp;</td><td class="diffLineNumbersB">47</td><td class="diffMarkerColB"><span class="textAddMarker">+</span></td><td class="lineContent diffContentB">&nbsp;&nbsp;&nbsp; } else {</td>
611         </tr>
612         <tr>
613             <td class="diffLineNumbers">&nbsp;</td><td class="diffLineNumbersB">48</td><td class="diffMarkerColB"><span class="textAddMarker">+</span></td><td class="lineContent diffContentB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; itm.style.display = &#034;block&#034;;</td>
614         </tr>
615         <tr>
616             <td class="diffLineNumbers">&nbsp;</td><td class="diffLineNumbersB">49</td><td class="diffMarkerColB"><span class="textAddMarker">+</span></td><td class="lineContent diffContentB">&nbsp;&nbsp;&nbsp; }</td>
617         </tr>
618         <tr>
619             <td class="diffLineNumbers">&nbsp;</td><td class="diffLineNumbersB">50</td><td class="diffMarkerColB"><span class="textAddMarker">+</span></td><td class="lineContent diffContentB">&nbsp; }</td>
620         </tr>
621         <tr>
622             <td class="diffLineNumbers">&nbsp;</td><td class="diffLineNumbersB">51</td><td class="diffMarkerColB"><span class="textAddMarker">+</span></td><td class="lineContent diffContentB">}</td>
623         </tr>
hpdl
1660
624 </table>
625
hpdl
1820
626 <h3>[C] Update download delivery routine</h3>
hpdl
1660
627
hpdl
1820
628 <ul>
629   <li>Fix downloads when "Download by redirect" and "SEFU" are both enabled.</li>
630   <li>Fallback to readfile() download delivery mechanism if direct download files.</li>
631 </ul>
hpdl
1660
632
633 <p class="affectedFiles"><b>Affected Files</b><br />
hpdl
1820
634 catalog/download.php</p>
hpdl
1660
635
hpdl
1820
636 <span class="affectedFiles">File: catalog/download.php (<a href="http://svn.oscommerce.com/fisheye/browse/osCommerce/oscommerce2/trunk/catalog/download.php?r1=477&r2=1720">online</a>) (<a href="http://svn.oscommerce.com/fisheye/rdiff/osCommerce/oscommerce2/trunk/catalog/download.php?r1=477&r2=1720">raw</a>)</span>
hpdl
1660
637
hpdl
1820
638 <table class="diff hardDiff unifiedDiff" cellspacing="0">
639         <tr>
640                     <td class="diffLineNumbers">90</td><td class="diffLineNumbers">90</td><td class="diffMarkerCol">&nbsp;</td><td class="lineContent diffContent">&nbsp;&nbsp;&nbsp; umask(0000);</td>
641         </tr>
642         <tr>
643                     <td class="diffLineNumbers">91</td><td class="diffLineNumbers">91</td><td class="diffMarkerCol">&nbsp;</td><td class="lineContent diffContent">&nbsp;&nbsp;&nbsp; mkdir(DIR_FS_DOWNLOAD_PUBLIC . $tempdir, 0777);</td>
644         </tr>
645         <tr>
646                     <td class="diffLineNumbers">92</td><td class="diffLineNumbers">92</td><td class="diffMarkerCol">&nbsp;</td><td class="lineContent diffContent">&nbsp;&nbsp;&nbsp; symlink(DIR_FS_DOWNLOAD . $downloads[&#039;orders_products_filename&#039;], DIR_FS_DOWNLOAD_PUBLIC . $tempdir . &#039;/&#039; . $downloads[&#039;orders_products_filename&#039;]);</td>
647         </tr>
648         <tr>
649             <td class="diffLineNumbersA">93</td><td class="diffLineNumbers">&nbsp;</td><td class="diffMarkerColA"><span class="textDelMarker">-</span></td><td class="lineContent ediffContentA">&nbsp;&nbsp;&nbsp; <span class="ediffChangedA">tep</span>_<span class="ediffChangedA">redirect</span>(DIR_<span class="ediffChangedA">WS</span>_DOWNLOAD_PUBLIC . $tempdir . &#039;/&#039; . $downloads[&#039;orders_products_filename&#039;])<span class="ediffChangedA">;</span></td>
650         </tr>
651         <tr>
652             <td class="diffLineNumbersA">94</td><td class="diffLineNumbers">&nbsp;</td><td class="diffMarkerColA"><span class="textDelMarker">-</span></td><td class="lineContent ediffContentA">&nbsp; <span class="ediffChangedA">}</span> <span class="ediffChangedA">else</span> {</td>
653         </tr>
654         <tr>
655             <td class="diffLineNumbersA">95</td><td class="diffLineNumbers">&nbsp;</td><td class="diffMarkerColA"><span class="textDelMarker">-</span></td><td class="lineContent ediffContentA"><span class="ediffChangedA">/</span><span class="ediffChangedA">/</span> <span class="ediffChangedA">This</span> <span class="ediffChangedA">will</span> <span class="ediffChangedA">work</span> <span class="ediffChangedA">on</span> <span class="ediffChangedA">all</span> <span class="ediffChangedA">systems</span><span class="ediffChangedA">,</span> <span class="ediffChangedA">but</span> <span class="ediffChangedA">will</span> <span class="ediffChangedA">need</span> <span class="ediffChangedA">considerable</span> <span class="ediffChangedA">resources</span></td>
656         </tr>
657         <tr>
658             <td class="diffLineNumbersA">96</td><td class="diffLineNumbers">&nbsp;</td><td class="diffMarkerColA"><span class="textDelMarker">-</span></td><td class="lineContent ediffContentA"><span class="ediffChangedA">/</span><span class="ediffChangedA">/</span> <span class="ediffChangedA">We</span> <span class="ediffChangedA">could</span> <span class="ediffChangedA">also</span> <span class="ediffChangedA">loop</span> <span class="ediffChangedA">with</span> <span class="ediffChangedA">fread</span>(<span class="ediffChangedA">$</span><span class="ediffChangedA">fp</span><span class="ediffChangedA">,</span> <span class="ediffChangedA">4096</span><span class="ediffChangedA">)</span> <span class="ediffChangedA">to</span> <span class="ediffChangedA">save</span> <span class="ediffChangedA">memory</span></td>
659         </tr>
660         <tr>
661             <td class="diffLineNumbersA">97</td><td class="diffLineNumbers">&nbsp;</td><td class="diffMarkerColA"><span class="textDelMarker">-</span></td><td class="lineContent ediffContentA">&nbsp;&nbsp;&nbsp; <span class="ediffChangedA">readfile</span>(DIR_<span class="ediffChangedA">FS</span>_DOWNLOAD . $downloads[&#039;orders_products_filename&#039;]);</td>
662         </tr>
663         <tr>
664             <td class="diffLineNumbers">&nbsp;</td><td class="diffLineNumbersB">93</td><td class="diffMarkerColB"><span class="textAddMarker">+</span></td><td class="lineContent ediffContentB">&nbsp;&nbsp;&nbsp; <span class="ediffChangedB">if</span> <span class="ediffChangedB">(</span><span class="ediffChangedB">file</span>_<span class="ediffChangedB">exists</span>(DIR_<span class="ediffChangedB">FS</span>_DOWNLOAD_PUBLIC . $tempdir . &#039;/&#039; . $downloads[&#039;orders_products_filename&#039;])<span class="ediffChangedB">)</span> {</td>
665         </tr>
666         <tr>
667             <td class="diffLineNumbers">&nbsp;</td><td class="diffLineNumbersB">94</td><td class="diffMarkerColB"><span class="textAddMarker">+</span></td><td class="lineContent ediffContentB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="ediffChangedB">tep</span><span class="ediffChangedB">_</span><span class="ediffChangedB">redirect</span>(<span class="ediffChangedB">tep</span><span class="ediffChangedB">_</span><span class="ediffChangedB">href</span><span class="ediffChangedB">_</span><span class="ediffChangedB">link</span>(DIR_<span class="ediffChangedB">WS</span>_DOWNLOAD<span class="ediffChangedB">_</span><span class="ediffChangedB">PUBLIC</span> . $<span class="ediffChangedB">tempdir</span> <span class="ediffChangedB">.</span> <span class="ediffChangedB">&#039;</span><span class="ediffChangedB">/</span><span class="ediffChangedB">&#039;</span> <span class="ediffChangedB">.</span> <span class="ediffChangedB">$</span>downloads[&#039;orders_products_filename&#039;])<span class="ediffChangedB">)</span>;</td>
668         </tr>
669         <tr>
670             <td class="diffLineNumbers">&nbsp;</td><td class="diffLineNumbersB">95</td><td class="diffMarkerColB"><span class="textAddMarker">+</span></td><td class="lineContent ediffContentB">&nbsp;&nbsp;&nbsp; <span class="ediffChangedB">}</span></td>
671         </tr>
672         <tr>
673                     <td class="diffLineNumbers">98</td><td class="diffLineNumbers">96</td><td class="diffMarkerCol">&nbsp;</td><td class="lineContent diffContent">&nbsp; }</td>
674         </tr>
675         <tr>
676             <td class="diffLineNumbers">&nbsp;</td><td class="diffLineNumbersB">97</td><td class="diffMarkerColB"><span class="textAddMarker">+</span></td><td class="lineContent diffContentB"></td>
677         </tr>
678         <tr>
679             <td class="diffLineNumbers">&nbsp;</td><td class="diffLineNumbersB">98</td><td class="diffMarkerColB"><span class="textAddMarker">+</span></td><td class="lineContent diffContentB">// Fallback to readfile() delivery method. This will work on all systems, but will need considerable resources</td>
680         </tr>
681         <tr>
682             <td class="diffLineNumbers">&nbsp;</td><td class="diffLineNumbersB">99</td><td class="diffMarkerColB"><span class="textAddMarker">+</span></td><td class="lineContent diffContentB">&nbsp; readfile(DIR_FS_DOWNLOAD . $downloads[&#039;orders_products_filename&#039;]);</td>
683         </tr>
684         <tr>
685                     <td class="diffLineNumbers">99</td><td class="diffLineNumbers">100</td><td class="diffMarkerCol">&nbsp;</td><td class="lineContent diffContent">?&gt;</td>
686         </tr>
hpdl
1660
687 </table>
688
hpdl
1820
689 <h3>[C] Remove redundant currencies</h3>
hpdl
1660
690
hpdl
1820
691 <ul>
692   <li>Remove the secondary ex-euro currencies from display.</li>
693 </ul>
hpdl
1660
694
695 <p class="affectedFiles"><b>Affected Files</b><br />
hpdl
1820
696 catalog/includes/classes/currencies.php</p>
hpdl
1660
697
hpdl
1820
698 <span class="affectedFiles">File: catalog/includes/classes/currencies.php (<a href="http://svn.oscommerce.com/fisheye/browse/osCommerce/oscommerce2/trunk/catalog/includes/classes/currencies.php?r1=1592&r2=1803">online</a>) (<a href="http://svn.oscommerce.com/fisheye/rdiff/osCommerce/oscommerce2/trunk/catalog/includes/classes/currencies.php?r1=1592&r2=1803">raw</a>)</span>
hpdl
1660
699
hpdl
1820
700 <table class="diff hardDiff unifiedDiff" cellspacing="0">
701         <tr>
702                     <td class="diffLineNumbers">40</td><td class="diffLineNumbers">40</td><td class="diffMarkerCol">&nbsp;</td><td class="lineContent diffContent">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($calculate_currency_value == true) {</td>
703         </tr>
704         <tr>
705                     <td class="diffLineNumbers">41</td><td class="diffLineNumbers">41</td><td class="diffMarkerCol">&nbsp;</td><td class="lineContent diffContent">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $rate = (tep_not_null($currency_value)) ? $currency_value : $this-&gt;currencies[$currency_type][&#039;value&#039;];</td>
706         </tr>
707         <tr>
708                     <td class="diffLineNumbers">42</td><td class="diffLineNumbers">42</td><td class="diffMarkerCol">&nbsp;</td><td class="lineContent diffContent">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $format_string = $this-&gt;currencies[$currency_type][&#039;symbol_left&#039;] . number_format(tep_round($number * $rate, $this-&gt;currencies[$currency_type][&#039;decimal_places&#039;]), $this-&gt;currencies[$currency_type][&#039;decimal_places&#039;], $this-&gt;currencies[$currency_type][&#039;decimal_point&#039;], $this-&gt;currencies[$currency_type][&#039;thousands_point&#039;]) . $this-&gt;currencies[$currency_type][&#039;symbol_right&#039;];</td>
709         </tr>
710         <tr>
711             <td class="diffLineNumbersA">43</td><td class="diffLineNumbers">&nbsp;</td><td class="diffMarkerColA"><span class="textDelMarker">-</span></td><td class="lineContent diffContentA">// if the selected currency is in the european euro-conversion and the default currency is euro,</td>
712         </tr>
713         <tr>
714             <td class="diffLineNumbersA">44</td><td class="diffLineNumbers">&nbsp;</td><td class="diffMarkerColA"><span class="textDelMarker">-</span></td><td class="lineContent diffContentA">// the currency will displayed in the national currency and euro currency</td>
715         </tr>
716         <tr>
717             <td class="diffLineNumbersA">45</td><td class="diffLineNumbers">&nbsp;</td><td class="diffMarkerColA"><span class="textDelMarker">-</span></td><td class="lineContent diffContentA">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ( (DEFAULT_CURRENCY == &#039;EUR&#039;) &amp;&amp; ($currency_type == &#039;DEM&#039; || $currency_type == &#039;BEF&#039; || $currency_type == &#039;LUF&#039; || $currency_type == &#039;ESP&#039; || $currency_type == &#039;FRF&#039; || $currency_type == &#039;IEP&#039; || $currency_type == &#039;ITL&#039; || $currency_type == &#039;NLG&#039; || $currency_type == &#039;ATS&#039; || $currency_type == &#039;PTE&#039; || $currency_type == &#039;FIM&#039; || $currency_type == &#039;GRD&#039;) ) {</td>
718         </tr>
719         <tr>
720             <td class="diffLineNumbersA">46</td><td class="diffLineNumbers">&nbsp;</td><td class="diffMarkerColA"><span class="textDelMarker">-</span></td><td class="lineContent diffContentA">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $format_string .= &#039; &lt;small&gt;[&#039; . $this-&gt;format($number, true, &#039;EUR&#039;) . &#039;]&lt;/small&gt;&#039;;</td>
721         </tr>
722         <tr>
723             <td class="diffLineNumbersA">47</td><td class="diffLineNumbers">&nbsp;</td><td class="diffMarkerColA"><span class="textDelMarker">-</span></td><td class="lineContent diffContentA">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</td>
724         </tr>
725         <tr>
726                     <td class="diffLineNumbers">48</td><td class="diffLineNumbers">43</td><td class="diffMarkerCol">&nbsp;</td><td class="lineContent diffContent">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {</td>
727         </tr>
728         <tr>
729                     <td class="diffLineNumbers">49</td><td class="diffLineNumbers">44</td><td class="diffMarkerCol">&nbsp;</td><td class="lineContent diffContent">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $format_string = $this-&gt;currencies[$currency_type][&#039;symbol_left&#039;] . number_format(tep_round($number, $this-&gt;currencies[$currency_type][&#039;decimal_places&#039;]), $this-&gt;currencies[$currency_type][&#039;decimal_places&#039;], $this-&gt;currencies[$currency_type][&#039;decimal_point&#039;], $this-&gt;currencies[$currency_type][&#039;thousands_point&#039;]) . $this-&gt;currencies[$currency_type][&#039;symbol_right&#039;];</td>
730         </tr>
731         <tr>
732                     <td class="diffLineNumbers">50</td><td class="diffLineNumbers">45</td><td class="diffMarkerCol">&nbsp;</td><td class="lineContent diffContent">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</td>
733         </tr>
hpdl
1660
734 </table>
735
hpdl
1820
736 <h3>[C] Update navigation history class</h3>
hpdl
1660
737
hpdl
1820
738 <ul>
739   <li>Make sure $parameters is an array in the navigation history class.</li>
740 </ul>
hpdl
1660
741
hpdl
1820
742 <p class="affectedFiles"><b>Affected Files</b><br />
743 catalog/includes/classes/navigation_history.php</p>
hpdl
1660
744
hpdl
1820
745 <span class="affectedFiles">File: catalog/includes/classes/navigation_history.php (<a href="http://svn.oscommerce.com/fisheye/browse/osCommerce/oscommerce2/trunk/catalog/includes/classes/navigation_history.php?r1=1619&r2=1696">online</a>) (<a href="http://svn.oscommerce.com/fisheye/rdiff/osCommerce/oscommerce2/trunk/catalog/includes/classes/navigation_history.php?r1=1619&r2=1696">raw</a>)</span>
hpdl
1660
746
hpdl
1820
747 <table class="diff hardDiff unifiedDiff" cellspacing="0">
748         <tr>
749                     <td class="diffLineNumbers">127</td><td class="diffLineNumbers">127</td><td class="diffMarkerCol">&nbsp;</td><td class="lineContent diffContent">&nbsp;&nbsp;&nbsp; function filter_parameters($parameters) {</td>
750         </tr>
751         <tr>
752                     <td class="diffLineNumbers">128</td><td class="diffLineNumbers">128</td><td class="diffMarkerCol">&nbsp;</td><td class="lineContent diffContent">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $clean = array();</td>
753         </tr>
754         <tr>
755                     <td class="diffLineNumbers">129</td><td class="diffLineNumbers">129</td><td class="diffMarkerCol">&nbsp;</td><td class="lineContent diffContent"></td>
756         </tr>
757         <tr>
758             <td class="diffLineNumbersA">130</td><td class="diffLineNumbers">&nbsp;</td><td class="diffMarkerColA"><span class="textDelMarker">-</span></td><td class="lineContent ediffContentA">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reset($parameters);</td>
759         </tr>
760         <tr>
761             <td class="diffLineNumbersA">131</td><td class="diffLineNumbers">&nbsp;</td><td class="diffMarkerColA"><span class="textDelMarker">-</span></td><td class="lineContent ediffContentA">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while (list($key, $value) = each($parameters)) {</td>
762         </tr>
763         <tr>
764             <td class="diffLineNumbersA">132</td><td class="diffLineNumbers">&nbsp;</td><td class="diffMarkerColA"><span class="textDelMarker">-</span></td><td class="lineContent ediffContentA">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (strpos($key, &#039;_nh-dns&#039;) &lt; 1) {</td>
765         </tr>
766         <tr>
767             <td class="diffLineNumbersA">133</td><td class="diffLineNumbers">&nbsp;</td><td class="diffMarkerColA"><span class="textDelMarker">-</span></td><td class="lineContent ediffContentA">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $clean[$key] = $value;</td>
768         </tr>
769         <tr>
770             <td class="diffLineNumbers">&nbsp;</td><td class="diffLineNumbersB">130</td><td class="diffMarkerColB"><span class="textAddMarker">+</span></td><td class="lineContent ediffContentB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="ediffChangedB">if</span> <span class="ediffChangedB">(</span><span class="ediffChangedB">is</span><span class="ediffChangedB">_</span><span class="ediffChangedB">array</span><span class="ediffChangedB">(</span><span class="ediffChangedB">$</span><span class="ediffChangedB">parameters</span><span class="ediffChangedB">)</span><span class="ediffChangedB">)</span> <span class="ediffChangedB">{</span></td>
771         </tr>
772         <tr>
773             <td class="diffLineNumbers">&nbsp;</td><td class="diffLineNumbersB">131</td><td class="diffMarkerColB"><span class="textAddMarker">+</span></td><td class="lineContent ediffContentB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reset($parameters);</td>
774         </tr>
775         <tr>
776             <td class="diffLineNumbers">&nbsp;</td><td class="diffLineNumbersB">132</td><td class="diffMarkerColB"><span class="textAddMarker">+</span></td><td class="lineContent ediffContentB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while (list($key, $value) = each($parameters)) {</td>
777         </tr>
778         <tr>
779             <td class="diffLineNumbers">&nbsp;</td><td class="diffLineNumbersB">133</td><td class="diffMarkerColB"><span class="textAddMarker">+</span></td><td class="lineContent ediffContentB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (strpos($key, &#039;_nh-dns&#039;) &lt; 1) {</td>
780         </tr>
781         <tr>
782             <td class="diffLineNumbers">&nbsp;</td><td class="diffLineNumbersB">134</td><td class="diffMarkerColB"><span class="textAddMarker">+</span></td><td class="lineContent ediffContentB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $clean[$key] = $value;</td>
783         </tr>
784         <tr>
785             <td class="diffLineNumbers">&nbsp;</td><td class="diffLineNumbersB">135</td><td class="diffMarkerColB"><span class="textAddMarker">+</span></td><td class="lineContent ediffContentB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="ediffChangedB">}</span></td>
786         </tr>
787         <tr>
788                     <td class="diffLineNumbers">134</td><td class="diffLineNumbers">136</td><td class="diffMarkerCol">&nbsp;</td><td class="lineContent diffContent">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</td>
789         </tr>
790         <tr>
791                     <td class="diffLineNumbers">135</td><td class="diffLineNumbers">137</td><td class="diffMarkerCol">&nbsp;</td><td class="lineContent diffContent">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</td>
792         </tr>
793         <tr>
794                     <td class="diffLineNumbers">136</td><td class="diffLineNumbers">138</td><td class="diffMarkerCol">&nbsp;</td><td class="lineContent diffContent"></td>
795         </tr>
hpdl
1660
796 </table>
797
hpdl
1820
798 <h3>[C] Update order totals class</h3>
hpdl
1660
799
hpdl
1820
800 <ul>
801   <li>Calling $order_total_modules->process() multiple times would duplicate the output data due to the modules already being instantiated.</li>
802 </ul>
hpdl
1660
803
hpdl
1820
804 <p class="affectedFiles"><b>Affected Files</b><br />
805 catalog/includes/classes/order_total.php</p>
hpdl
1660
806
hpdl
1820
807 <span class="affectedFiles">File: catalog/includes/classes/order_total.php (<a href="http://svn.oscommerce.com/fisheye/browse/osCommerce/oscommerce2/trunk/catalog/includes/classes/order_total.php?r1=477&r2=1698">online</a>) (<a href="http://svn.oscommerce.com/fisheye/rdiff/osCommerce/oscommerce2/trunk/catalog/includes/classes/order_total.php?r1=477&r2=1698">raw</a>)</span>
hpdl
1660
808
hpdl
1820
809 <table class="diff hardDiff unifiedDiff" cellspacing="0">
810         <tr>
811                     <td class="diffLineNumbers">38</td><td class="diffLineNumbers">38</td><td class="diffMarkerCol">&nbsp;</td><td class="lineContent diffContent">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while (list(, $value) = each($this-&gt;modules)) {</td>
812         </tr>
813         <tr>
814                     <td class="diffLineNumbers">39</td><td class="diffLineNumbers">39</td><td class="diffMarkerCol">&nbsp;</td><td class="lineContent diffContent">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $class = substr($value, 0, strrpos($value, &#039;.&#039;));</td>
815         </tr>
816         <tr>
817                     <td class="diffLineNumbers">40</td><td class="diffLineNumbers">40</td><td class="diffMarkerCol">&nbsp;</td><td class="lineContent diffContent">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($GLOBALS[$class]-&gt;enabled) {</td>
818         </tr>
819         <tr>
820             <td class="diffLineNumbers">&nbsp;</td><td class="diffLineNumbersB">41</td><td class="diffMarkerColB"><span class="textAddMarker">+</span></td><td class="lineContent diffContentB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $GLOBALS[$class]-&gt;output = array();</td>
821         </tr>
822         <tr>
823                     <td class="diffLineNumbers">41</td><td class="diffLineNumbers">42</td><td class="diffMarkerCol">&nbsp;</td><td class="lineContent diffContent">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $GLOBALS[$class]-&gt;process();</td>
824         </tr>
825         <tr>
826                     <td class="diffLineNumbers">42</td><td class="diffLineNumbers">43</td><td class="diffMarkerCol">&nbsp;</td><td class="lineContent diffContent"></td>
827         </tr>
828         <tr>
829                     <td class="diffLineNumbers">43</td><td class="diffLineNumbers">44</td><td class="diffMarkerCol">&nbsp;</td><td class="lineContent diffContent">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for ($i=0, $n=sizeof($GLOBALS[$class]-&gt;output); $i&lt;$n; $i++) {</td>
830         </tr>
hpdl
1660
831 </table>
832
hpdl
1820
833 <h3>Checkout procedure update</h3>
hpdl
1660
834
hpdl
1820
835 <ul>
836   <li>Introduce the ability to show additional checkout buttons on the shopping cart page for certain payment methods (eg, PayPal Express Checkout).</li>
837   <li>Introduce the ability to define foreign shipping and billing addresses during the checkout procedure (eg, the shipping address provided by PayPal Express Checkout).</li>
838   <li>Move the logic of storing the credit card number in the database from the order class to the payment module level.</li>
839   <li>Add extra checks to the checkout process file.</li>
840   <li>Don't query for a shipping address if the order only contains virtual products.</li>
841   <li>Update the shipping address when a mixed (virtual+physical) order is being made.</li>
842 </ul>
hpdl
1660
843
hpdl
1820
844 <p class="affectedFiles"><b>Affected Files</b><br />
845 catalog/checkout_payment.php<br />
846 catalog/checkout_process.php<br />
847 catalog/checkout_shipping.php<br />
848 catalog/shopping_cart.php<br />
849 catalog/includes/header.php<br />
850 catalog/includes/classes/order.php<br />
851 catalog/includes/classes/payment.php<br />
852 catalog/includes/functions/general.php<br />
853 catalog/includes/modules/payment/cc.php<br />
854 catalog/includes/languages/english/shopping_cart.php<br />
855 catalog/includes/languages/espanol/shopping_cart.php<br />
856 catalog/includes/languages/german/shopping_cart.php</p>
857
858 <span class="affectedFiles">File: catalog/checkout_payment.php (<a href="http://svn.oscommerce.com/fisheye/browse/osCommerce/oscommerce2/trunk/catalog/checkout_payment.php?r1=1601&r2=1699">online</a>) (<a href="http://svn.oscommerce.com/fisheye/rdiff/osCommerce/oscommerce2/trunk/catalog/checkout_payment.php?r1=1601&r2=1699">raw</a>)</span>
859
860 <table class="diff hardDiff unifiedDiff" cellspacing="0">
861         <tr>
862                     <td class="diffLineNumbers">52</td><td class="diffLineNumbers">52</td><td class="diffMarkerCol">&nbsp;</td><td class="lineContent diffContent">&nbsp;&nbsp;&nbsp; $billto = $customer_default_address_id;</td>
863         </tr>
864         <tr>
865                     <td class="diffLineNumbers">53</td><td class="diffLineNumbers">53</td><td class="diffMarkerCol">&nbsp;</td><td class="lineContent diffContent">&nbsp; } else {</td>
866         </tr>
867         <tr>
868                     <td class="diffLineNumbers">54</td><td class="diffLineNumbers">54</td><td class="diffMarkerCol">&nbsp;</td><td class="lineContent diffContent">// verify the selected billing address</td>
869         </tr>
870         <tr>
871             <td class="diffLineNumbersA">55</td><td class="diffLineNumbers">&nbsp;</td><td class="diffMarkerColA"><span class="textDelMarker">-</span></td><td class="lineContent ediffContentA">&nbsp;&nbsp;&nbsp; $check_address_query = tep_db_query(&#034;select count(*) as total from &#034; . TABLE_ADDRESS_BOOK . &#034; where customers_id = &#039;&#034; . (int)$customer_id . &#034;&#039; and address_book_id = &#039;&#034; . (int)$billto . &#034;&#039;&#034;);</td>
872         </tr>
873         <tr>
874             <td class="diffLineNumbersA">56</td><td class="diffLineNumbers">&nbsp;</td><td class="diffMarkerColA"><span class="textDelMarker">-</span></td><td class="lineContent ediffContentA">&nbsp;&nbsp;&nbsp; $check_address = tep_db_fetch_array($check_address_query);</td>
875         </tr>
876         <tr>
877             <td class="diffLineNumbers">&nbsp;</td><td class="diffLineNumbersB">55</td><td class="diffMarkerColB"><span class="textAddMarker">+</span></td><td class="lineContent ediffContentB">&nbsp;&nbsp;&nbsp; <span class="ediffChangedB">if</span> <span class="ediffChangedB">(</span> <span class="ediffChangedB">(</span><span class="ediffChangedB">is</span><span class="ediffChangedB">_</span><span class="ediffChangedB">array</span><span class="ediffChangedB">(</span>$<span class="ediffChangedB">billto</span><span class="ediffChangedB">)</span> <span class="ediffChangedB">&amp;</span><span class="ediffChangedB">&amp;</span> <span class="ediffChangedB">empty</span><span class="ediffChangedB">(</span><span class="ediffChangedB">$</span><span class="ediffChangedB">billto</span><span class="ediffChangedB">)</span><span class="ediffChangedB">)</span> <span class="ediffChangedB">|</span><span class="ediffChangedB">|</span> <span class="ediffChangedB">is</span><span class="ediffChangedB">_</span><span class="ediffChangedB">numeric</span><span class="ediffChangedB">(</span><span class="ediffChangedB">$</span><span class="ediffChangedB">billto</span><span class="ediffChangedB">)</span> <span class="ediffChangedB">)</span> <span class="ediffChangedB">{</span></td>
878         </tr>
879         <tr>
880             <td class="diffLineNumbers">&nbsp;</td><td class="diffLineNumbersB">56</td><td class="diffMarkerColB"><span class="textAddMarker">+</span></td><td class="lineContent ediffContentB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="ediffChangedB">$</span>check_address_query = tep_db_query(&#034;select count(*) as total from &#034; . TABLE_ADDRESS_BOOK . &#034; where customers_id = &#039;&#034; . (int)$customer_id . &#034;&#039; and address_book_id = &#039;&#034; . (int)$billto . &#034;&#039;&#034;);</td>
881         </tr>
882         <tr>
883             <td class="diffLineNumbers">&nbsp;</td><td class="diffLineNumbersB">57</td><td class="diffMarkerColB"><span class="textAddMarker">+</span></td><td class="lineContent ediffContentB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $check_address = tep_db_fetch_array($check_address_query);</td>
884         </tr>
885         <tr>
886                     <td class="diffLineNumbers">57</td><td class="diffLineNumbers">58</td><td class="diffMarkerCol">&nbsp;</td><td class="lineContent diffContent"></td>
887         </tr>
888         <tr>
889             <td class="diffLineNumbersA">58</td><td class="diffLineNumbers">&nbsp;</td><td class="diffMarkerColA"><span class="textDelMarker">-</span></td><td class="lineContent ediffContentA">&nbsp;&nbsp;&nbsp; if ($check_address[&#039;total&#039;] != &#039;1&#039;) {</td>
890         </tr>
891         <tr>
892             <td class="diffLineNumbersA">59</td><td class="diffLineNumbers">&nbsp;</td><td class="diffMarkerColA"><span class="textDelMarker">-</span></td><td class="lineContent ediffContentA">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $billto = $customer_default_address_id;</td>
893         </tr>
894         <tr>
895             <td class="diffLineNumbersA">60</td><td class="diffLineNumbers">&nbsp;</td><td class="diffMarkerColA"><span class="textDelMarker">-</span></td><td class="lineContent ediffContentA">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (tep_session_is_registered(&#039;payment&#039;)) tep_session_unregister(&#039;payment&#039;);</td>
896         </tr>
897         <tr>
898             <td class="diffLineNumbers">&nbsp;</td><td class="diffLineNumbersB">59</td><td class="diffMarkerColB"><span class="textAddMarker">+</span></td><td class="lineContent ediffContentB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($check_address[&#039;total&#039;] != &#039;1&#039;) {</td>
899         </tr>
900         <tr>
901             <td class="diffLineNumbers">&nbsp;</td><td class="diffLineNumbersB">60</td><td class="diffMarkerColB"><span class="textAddMarker">+</span></td><td class="lineContent ediffContentB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $billto = $customer_default_address_id;</td>
902         </tr>
903         <tr>
904             <td class="diffLineNumbers">&nbsp;</td><td class="diffLineNumbersB">61</td><td class="diffMarkerColB"><span class="textAddMarker">+</span></td><td class="lineContent ediffContentB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (tep_session_is_registered(&#039;payment&#039;)) tep_session_unregister(&#039;payment&#039;);</td>
905         </tr>
906         <tr>
907             <td class="diffLineNumbers">&nbsp;</td><td class="diffLineNumbersB">62</td><td class="diffMarkerColB"><span class="textAddMarker">+</span></td><td class="lineContent ediffContentB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="ediffChangedB">}</span></td>
908         </tr>
909         <tr>
910                     <td class="diffLineNumbers">61</td><td class="diffLineNumbers">63</td><td class="diffMarkerCol">&nbsp;</td><td class="lineContent diffContent">&nbsp;&nbsp;&nbsp; }</td>
911         </tr>
912         <tr>
913                     <td class="diffLineNumbers">62</td><td class="diffLineNumbers">64</td><td class="diffMarkerCol">&nbsp;</td><td class="lineContent diffContent">&nbsp; }</td>
914         </tr>
915         <tr>
916                     <td class="diffLineNumbers">63</td><td class="diffLineNumbers">65</td><td class="diffMarkerCol">&nbsp;</td><td class="lineContent diffContent"></td>
917         </tr>
hpdl
1660
918 </table>
919
920 <br />
921
hpdl
1820
922 <span class="affectedFiles">File: catalog/checkout_process.php (<a href="http://svn.oscommerce.com/fisheye/browse/osCommerce/oscommerce2/trunk/catalog/checkout_process.php?r1=1621&r2=1750">online</a>) (<a href="http://svn.oscommerce.com/fisheye/rdiff/osCommerce/oscommerce2/trunk/catalog/checkout_process.php?r1=1621&r2=1750">raw</a>)</span>
hpdl
1660
923
hpdl
1820
924 <table class="diff hardDiff unifiedDiff" cellspacing="0">
925         <tr>
926                     <td class="diffLineNumbers">17</td><td class="diffLineNumbers">17</td><td class="diffMarkerCol">&nbsp;</td><td class="lineContent diffContent">&nbsp;&nbsp;&nbsp; $navigation-&gt;set_snapshot(array(&#039;mode&#039; =&gt; &#039;SSL&#039;, &#039;page&#039; =&gt; FILENAME_CHECKOUT_PAYMENT));</td>
927         </tr>
928         <tr>
929                     <td class="diffLineNumbers">18</td><td class="diffLineNumbers">18</td><td class="diffMarkerCol">&nbsp;</td><td class="lineContent diffContent">&nbsp;&nbsp;&nbsp; tep_redirect(tep_href_link(FILENAME_LOGIN, &#039;&#039;, &#039;SSL&#039;));</td>
930         </tr>
931         <tr>
932                     <td class="diffLineNumbers">19</td><td class="diffLineNumbers">19</td><td class="diffMarkerCol">&nbsp;</td><td class="lineContent diffContent">&nbsp; }</td>
933         </tr>
934         <tr>
935             <td class="diffLineNumbersA">20</td><td class="diffLineNumbers">&nbsp;</td><td class="diffMarkerColA"><span class="textDelMarker">-</span></td><td class="lineContent ediffContentA">&nbsp; </td>
936         </tr>
937         <tr>
938             <td class="diffLineNumbersA">21</td><td class="diffLineNumbers">&nbsp;</td><td class="diffMarkerColA"><span class="textDelMarker">-</span></td><td class="lineContent ediffContentA">&nbsp; if (<span class="ediffChangedA">!</span><span class="ediffChangedA">tep</span>_<span class="ediffChangedA">session</span><span class="ediffChangedA">_</span><span class="ediffChangedA">is</span><span class="ediffChangedA">_</span><span class="ediffChangedA">registered</span>(<span class="ediffChangedA">&#039;</span><span class="ediffChangedA">sendto</span><span class="ediffChangedA">&#039;</span>)) {</td>
939         </tr>
940         <tr>
941             <td class="diffLineNumbersA">22</td><td class="diffLineNumbers">&nbsp;</td><td class="diffMarkerColA"><span class="textDelMarker">-</span></td><td class="lineContent ediffContentA">&nbsp;&nbsp;&nbsp; tep_redirect(tep_href_link(FILENAME_<span class="ediffChangedA">CHECKOUT</span>_<span class="ediffChangedA">PAYMENT</span><span class="ediffChangedA">,</span> <span class="ediffChangedA">&#039;</span><span class="ediffChangedA">&#039;</span><span class="ediffChangedA">,</span> <span class="ediffChangedA">&#039;</span><span class="ediffChangedA">SSL</span><span class="ediffChangedA">&#039;</span>));</td>
942         </tr>
943         <tr>
944             <td class="diffLineNumbers">&nbsp;</td><td class="diffLineNumbersB">20</td><td class="diffMarkerColB"><span class="textAddMarker">+</span></td><td class="lineContent ediffContentB"></td>
945         </tr>
946         <tr>
947             <td class="diffLineNumbers">&nbsp;</td><td class="diffLineNumbersB">21</td><td class="diffMarkerColB"><span class="textAddMarker">+</span></td><td class="lineContent ediffContentB"><span class="ediffChangedB">/</span><span class="ediffChangedB">/</span> if <span class="ediffChangedB">there</span> <span class="ediffChangedB">is</span> <span class="ediffChangedB">nothing</span> <span class="ediffChangedB">in</span> <span class="ediffChangedB">the</span> <span class="ediffChangedB">customers</span> <span class="ediffChangedB">cart</span><span class="ediffChangedB">,</span> <span class="ediffChangedB">redirect</span> <span class="ediffChangedB">them</span> <span class="ediffChangedB">to</span> <span class="ediffChangedB">the</span> <span class="ediffChangedB">shopping</span> <span class="ediffChangedB">cart</span> <span class="ediffChangedB">page</span></td>
948         </tr>
949         <tr>
950