Monday, February 27

Magento Form Validation

By default Magento uses a file called form.js (js/varien/form.js) to provide abstract Javascript functions for forms. The most useful application of this class - in my opinion - is the form validation. To achieve this validation, form.js uses the Validation class which is part of the Prototype Javascript library. It works by checking form inputs for certain class names. Each class name tells the validator to perform certain checks on the value inside the input.

Custom Form Validation

Adding Javascript validation to your own forms is extremely simple. First, you need to create a Form (form.js) object to represent your form.

<script type="text/javascript">
//< ![CDATA[
  var myForm= new VarienForm('formId', true);
//]]>
</script>

Magento Javascript Validation Classes

There are many more validation classes you can assign and I list them here as a reference. For more information on this please use Google, experiment with the code or contact me via my email or the contact form.


validate-select

Please select an option


required-entry

This is a required field

 validate-number

Please enter a valid number in this field


validate-digits

Please use numbers only in this field. please avoid spaces or other characters such as dots or commas


validate-alpha

Please use letters only (a-z or A-Z) in this field.

 validate-code

Please use only letters (a-z), numbers (0-9) or underscore(_) in this field, first character should be a letter.

 validate-alphanum

Please use only letters (a-z or A-Z) or numbers (0-9) only in this field. No spaces or other characters are allowed


validate-street

Please use only letters (a-z or A-Z) or numbers (0-9) or spaces and # only in this field


validate-phoneStrict

Please enter a valid phone number. For example (123) 456-7890 or 123-456-7890


validate-phoneLax

Please enter a valid phone number. For example (123) 456-7890 or 123-456-7890


validate-fax

Please enter a valid fax number. For example (123) 456-7890 or 123-456-7890


validate-date

Please enter a valid date


validate-email

Please enter a valid email address. For example johndoe@domain.com.



validate-emailSender

Please use only letters (a-z or A-Z), numbers (0-9) , underscore(_) or spaces in this field.



validate-password

Please enter 6 or more characters. Leading or trailing spaces will be ignored


validate-admin-password

Please enter 7 or more characters. Password should contain both numeric and alphabetic characters


validate-cpassword

Please make sure your passwords match


validate-url

Please enter a valid URL. http:// is required


validate-clean-url

Please enter a valid URL. For example http://www.example.com or www.example.com


validate-identifier

Please enter a valid Identifier. For example example-page, example-page.html or anotherlevel/example-page


validate-xml-identifier

Please enter a valid XML-identifier. For example something_1, block5, id-4


validate-ssn

Please enter a valid social security number. For example 123-45-6789


validate-zip

Please enter a valid zip code. For example 90602 or 90602-1234


validate-zip-international

Please enter a valid zip code


validate-date-au

Please use this date format: dd/mm/yyyy. For example 17/03/2006 for the 17th of March, 2006


validate-currency-dollar

Please enter a valid $ amount. For example $100.00


validate-one-required

Please select one of the above options.


validate-one-required-by-name

Please select one of the options.


validate-not-negative-number

Please enter a valid number in this field


validate-state

Please select State/Province


validate-new-password

Please enter 6 or more characters. Leading or trailing spaces will be ignored


validate-greater-than-zero

Please enter a number greater than 0 in this field


validate-zero-or-greater

Please enter a number 0 or greater in this field


validate-cc-number

Please enter a valid credit card number.


validate-cc-type

Credit card number doesn't match credit card type


validate-cc-type-select

Card type doesn't match credit card number


validate-cc-exp

Incorrect credit card expiration date


validate-cc-cvn

Please enter a valid credit card verification number.


validate-data

Please use only letters (a-z or A-Z), numbers (0-9) or underscore(_) in this field, first character should be a letter.


validate-css-length

Please input a valid CSS-length. For example 100px or 77pt or 20em or .5ex or 50%


validate-length

Maximum length exceeded

Tuesday, February 14

How to get Current page url in Magento

current page url in magento

<?php
$current_page = '';
/*
* Check to see if its a CMS page
* if it is then get the page identifier
*/
if(Mage::app()->getFrontController()->getRequest()->getRouteName() == 'cms'):
$current_page = Mage::getSingleton('cms/page')->getIdentifier();
endif;
/*
* If its not CMS page, then just get the route name
*/
if(empty($current_page)):
$current_page = Mage::app()->getFrontController()->getRequest()->getRouteName();
endif;
/*
* What if its a catalog page?
* Then we can get the category path <img src="http://www.justwebdevelopment.com/blog/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley">
*/
 
/*
* Or you can check all values
* $current_page_array = Mage::registry('current_category');
* $current_page_array['url_path']
*/
 
if($current_page == 'catalog'):
$current_page = 'path-' . preg_replace('#[^a-z0-9]+#', '-', strtolower(Mage::registry('current_category')->getUrlPath()));
endif;
?>

Also if you want Full Current Page URL in Magento you can do so with this one line.
<?php
    $currentUrl = $this->helper('core/url')->getCurrentUrl();
?>

Another way to get current url
<?php
$urlRequest = Mage::app()->getFrontController()->getRequest();
$urlPart = $urlRequest->getServer('ORIG_PATH_INFO');
if(is_null($urlPart))
{
    $urlPart = $urlRequest->getServer('PATH_INFO');
}
$urlPart = substr($urlPart, 1 );
$currentUrl = $this->getUrl($urlPart);
?>

Also you can check current page or catalog page is product page or not with “Mage::registry”.
<?php
    $onCatalogFlag = false;
    if(Mage::registry('current_product')) {
        $onCatalogFlag = true;
    }
?>


And also try to something like below code
<?php
echo $this->getRequest()->getControllerName();
if($this->getRequest()->getControllerName()=='product') //do something
if($this->getRequest()->getControllerName()=='category') //do others
?>

Hope it Helps... Thanks....