X-Cart: shopping cart software

X-Cart forums (https://forum.x-cart.com/index.php)
-   Dev Questions (https://forum.x-cart.com/forumdisplay.php?f=20)
-   -   Capitalise First Letters in Customer Info (https://forum.x-cart.com/showthread.php?t=8203)

PhilJ 06-22-2004 10:31 AM

Capitalise First Letters in Customer Info
 
v3.5.*

This mod makes the customer data neater, by capitalising the first letters of the data entered and saves you editing it later.

joe bloggs becomes Joe Bloggs

1) Make a file called capitalise.js and shove it in the skin1 directory.

Add this code to it...

Code:

////////////////////////////////////////////////////////////////////////
//Capitalise the first letter in a textbox once the value is changed
//Call as follows onChange="Proper(this); return true;"
function Proper(o) {
var s = o.value;
var out = "";
if (s.length > 0) {
var c = true;
// process each character one at a time
for (var i=0; i < s.length; i++) {
var t = s.substring(i,i+1).toUpperCase();
// if not alpha cap next character
cmp = "ABCDEFGHIJKLMNOPQRSTUVWXYZ'";
if ( cmp.indexOf(t) < 0) {
c = true;
}
else {
if (c) {
c = false;
}
else {
t = t.toLowerCase();
}
}
// take special cases like Mc and Mac and Roman numerals
if ( i > 1 ) {
temp = s.substring(i-2,i).toUpperCase();
if ( temp == "MC" ) {
t = t.toUpperCase();
}
cmp = " II V X";
roman = "IVX";
roman2 = "IVX ";
if ( cmp.indexOf(temp) >= 0 && roman.indexOf(t.toUpperCase()) >= 0 &&
roman2.indexOf(s.substring(i+1,i+2).toUpperCase() ) >= 0 ) {
t = t.toUpperCase();
}
}
if ( i > 2 ) {
temp = s.substring(i-3,i).toUpperCase();
if ( temp == "MAC") {
t = t.toUpperCase();
}
if ( ( temp == " XI" || temp == " VI" || temp == " XX" || temp == "XV" ) && ( t.toUpperCase() == "I" || t.toUpperCase() == "V" ||
t.toUpperCase() == "X" ) ) {
t = t.toUpperCase();
}
} out += t;
}

o.value = out;
} return true;
}



2) Then find xcart/skin1/customer/home.tpl

Add this code between <head> and </head>

Code:

<script language=JavaScript1.3 src="{$SkinDir}/capitalise.js"></script>


3) Then locate the following templates in the xcart/skin1/main directory

register_billing_address.tpl
register_shipping_address.tpl
register_personal_info.tpl
states.tpl (only if you have the states field as an input field)

see also
xcart/skin1/help/contactus.tpl
if you want to use it on the 'contact us' form

Call the script by adding this code to the input fields:

Code:

onChange="Proper(this); return true;"

eg.

Change

Code:

<input type=text name=b_firstname size=32 maxlength=32 value="{$userinfo.b_firstname}">

to

Code:

<input type=text name=b_firstname size=32 maxlength=32 value="{$userinfo.b_firstname}" onChange="Proper(this); return true;">

etc.

Hope someone finds this useful.

See also a method for capitalising the zip/postal code

http://forum.x-cart.com/viewtopic.php?t=8112

adpboss 06-23-2004 08:09 PM

Honestly, I could kiss you for this.

90% of my customers are kids and lack of proper capitalisation is a MAJOR pet peeve of mine.

The L33T speak is bad enough, but when the names and addresses are jumbled... ARGH! #-o

Cool Mod, I'll test it in my new store this weekend.

GM 06-24-2004 07:16 AM

Nice one PhilJ :!:

chawla@moviesandgamesonli 10-30-2004 04:30 PM

Works fine in Version 4.0.6, but how do I get the Post Code all in capitals, instead of the first letter only.

Version 4.0.6

PhilJ 10-30-2004 04:35 PM

check this post to capitalise post code

http://forum.x-cart.com/viewtopic.php?t=8112

Metal-X-Man 11-24-2004 06:03 PM

Thanks Phil! It's been driving me crazy for years, always correcting the users input. Thanks again!

Metal-X

zefon 12-08-2004 05:54 AM

Very cool mod. It makes everything look much more professional when the type is consistent.

I installed this mod. It works great on the contact us form and the new user register form. However it is not working during order checkout for new users. I have Jon's Easy Checkout mod installed and I suspect there might be some conflict with some other script in the files but don't know how to go about troubleshooting it. When you load the page, all is fine with no errors. Once you type data into a field and move to the next field, the yellow error triangle shows on the lower left corner of the browser.

Also, anyone know SQL code to now go back and fix all the names in the database?

adpboss 12-08-2004 06:00 AM

Make sure you are including the JS in the home_checkout.tpl (EZ Checkout) as well as home.tpl.

zefon 12-08-2004 06:12 AM

Thanks adpboss. I got it working. I had the script in home_checkout.tpl, but moved the location of it within the <head> tag and that fixed it.

Very cool to have this working now.

zefon 12-17-2004 05:15 AM

For those of you who want to update your existing database, you can use the following SQL query:

Code:

UPDATE xcart_customers
SET firstname = CONCAT(UPPER(SUBSTRING(firstname,1,1)),SUBSTRING(firstname,2,LENGTH(firstname)-1));

Just replace "firstname" with the field you want to change. I got this code from x-cart and it works on all the one word fields. I have not figured out how to do the address line though. If anyone else know that one, please share.


All times are GMT -8. The time now is 03:18 PM.

Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.