Html Form :

<?php echo Mage::app()->getLayout()->getMessagesBlock()->getGroupedHtml(); ?>
<?php $position = $this->getPosition(); ?>
<?php if($position): ?>
<div class="career-details-page">
    <section class="position-describe">
        <div class="posname-bar">
            <h2><?php echo $position->getPosition() ?></h2><a class="apply-now" href="javascript:void(0)">Apply Now</a>
        </div>
        <p class="shr-link"><a href="#"><span class="fa fa-envelope" aria-hidden="true"></span> Email to Friend</a></p>
        <div class="container">
            <div class="row">
                <div class="col-lg-8">
                    <?php echo $position->getContent() ?>
                    <h4><?php echo $this->__('Job Type') ?></h4>
                    <h5><?php echo $this->getJobType($position->getJobType()) ?></h5>
                </div>
                <div class="col-lg-4"><img class="cr-details" alt="VGOD Career" src="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA) .$position->getCareerImage()?>" /></div>
            </div>
        </div>
        <div class="posname-bar bottbar">
            <h2><?php echo $position->getPosition() ?></h2><a class="apply-now" href="javascript:void(0)">Apply Now</a>
        </div>
        <p class="shr-link"><a href="#"><span class="fa fa-envelope" aria-hidden="true"></span> Email to Friend</a></p>
    </section>
</div>
<!-- Job Form Popup start -->
<div id="job_form_popup" class="no-display">
    <div class="job-form-content career-popup-form">
        <h3 class="job-title" id="job_title"><?php echo $this->__("Apply for Position (Req #%s)",$position->getReq()) ?></h3>
		<form action="<?php echo $this->getUrl("careers/applications/saveJob") ?>" id="jobForm" class="job-form career-job-popup" method="post" name="jobForm" enctype="multipart/form-data">
            <div class="job-form-wrapper" id="job_form_wrapper">
                <ul class="form-list">
                    <li>
                        <div class="job-field form-group">
                            <label class="required" for="firstname"><?php echo $this->__('First Name ');?><em>*</em></label>
                            <input id="firstname" class="form-control input-text required-entry" type="text" title="First Name" value="" name="firstname">
                        </div>
                    </li>
                    <li>
                        <div class="job-field  form-group">
                            <label class="required" for="lastname"><?php echo $this->__('Last Name ');?><em>*</em></label>
                            <input id="lastname" class="form-control input-text required-entry" type="text" title="Last Name" value="" name="lastname">
                        </div>
                    </li>
                    <li>
                        <div class="job-field  form-group">
                            <label class="required" for="email"><?php echo $this->__('Email ');?><em>*</em></label>
                            <input id="email" class="form-control input-text required-entry validate-email" type="text" title="Email" value="" name="email">
                        </div>
                    </li>
                    <li>
                        <div class="job-field  form-group">
                            <label class="required" for="phone_number"><?php echo $this->__('Phone Number ');?><em>*</em></label>
                            <input id="phone_number" class="form-control input-text required-entry validate-phoneNumber" type="text" title="Phone Number" value="" name="phone_number">
                        </div>
                    </li>
                    <li>
                        <div class="job-field  form-group">
                            <label for="resume" class="required"><?php echo $this->__('Attach Resume ');?><em>*</em></label>
                            <input id="resume" class="form-control required-entry input-text fileupload validate-resume" type="file" name="resume" >
							<span class="cls-note"><?php echo $this->__('Allowed file types: doc,docx,pdf.') ?></span>
                        </div>
                    </li>
                    <li>
                        <div class="job-field  form-group">
                            <label for="hear_about_this" class=""><?php echo $this->__('How Did You Hear About Us? ');?></label>
                            <input id="hear_about_this" class="form-control input-text" type="text" name="hear_about_this" >
                        </div>
                    </li>
                    <li class="required">
                        <div class="job-field form-group recaptcha">
                            <div class="g-recaptcha" data-sitekey="6LcATxsUAAAAAN_aL6B1jud7ECz5RxSVD1pmJ-bS"></div>
                            <style>
                                @media screen and (max-height: 575px){
                                    #rc-imageselect, .g-recaptcha {transform:scale(0.62);-webkit-transform:scale(0.62);transform-origin:0 0;-webkit-transform-origin:0 0;}
                                }
                            </style>
                        </div>
                    </li>
					<p style="display: none;" id="loding_img"><img src="<?php echo $this->getSkinUrl('images/ajax-loader-16.gif'); ?>"></p>
					<li>
						<div id="jobPostError" style="display:none;"> </div>
					</li>
                </ul>
                <!-- image ajax -->
                <div id="progress_image_login_create" class="ajax-login-image" style="display: none"></div>
                <!-- error invalid create ACC -->
                <div id="job-invalid-submit"></div>
                <div class="job-popup-button">
                    <button type="submit" id="job_button_submit" class="button"  title="<?php echo $this->__('Submit');?>">
                        <span><span><?php echo $this->__('Submit Application')?></span></span>
                    </button>
                    <a id="cancle_job" href="javascript:void(0);"><?php echo $this->__('Cancel') ?></a>
                </div>
            </div>
			<input name= "req" type="hidden" value="<?php echo $position->getReq() ?>" />
			<input name="form_key" type="hidden" value="<?php echo Mage::getSingleton('core/session')->getFormKey() ?>" />
        </form>
    </div>
</div>
<!-- Job Form Popup end -->
<!-- Job Success Popup Start -->
<div id="jobPostSuccess" class="no-display"> </div>
<!-- Job Success Popup End -->
<?php endif; ?>

<script type="text/javascript">
	jQuery('.apply-now').click(function(){
		setTimeout(function(){
            beginJobPopup();
        }, 300);
	});
    function beginJobPopup() {
        jQuery("#job_form_popup").removeClass("no-display");
        jQuery.fancybox({
            'padding': '0px',
            'autoScale': true,
            'transitionIn': 'fade',
            'transitionOut': 'fade',
            'type': 'inline',
            'href': '#job_form_popup',
            'onComplete': function() {
                $.cookie('job_form_popup', 'shown');
            },
            'tpl': { 
                closeBtn: '<a title="Close" class="fancybox-item fancybox-close job-form-close" href="javascript:;"></a>'
            },
            'helpers': {
                overlay: {
                    locked: false,
					closeClick: false //prevents closing when clicking OUTSIDE fancybox
                }
            }
        });
        jQuery('#job_form_popup').trigger('click');
        jQuery('#cancle_job').click(function(){
			jQuery.fancybox.close();
		});
    }
	function beginJobSuccess() {
        jQuery("#jobPostSuccess").removeClass("no-display");
        jQuery.fancybox({
            'padding': '0px',
            'autoScale': true,
            'transitionIn': 'fade',
            'transitionOut': 'fade',
            'type': 'inline',
            'href': '#jobPostSuccess',
            'onComplete': function() {
                $.cookie('jobPostSuccess', 'shown');
            },
            'tpl': { 
                closeBtn: '<a title="Close" class="fancybox-item fancybox-close job-popup-success-close" href="javascript:;"></a>'
            },
            'helpers': {
                overlay: {
                    locked: false,
					closeClick: false //prevents closing when clicking OUTSIDE fancybox
                }
            }
        });
        jQuery('#jobPostSuccess').trigger('click');
    }
</script>
<script type="text/javascript">
	// Remove spaces on blur
	$j(document).ready(function(){
		jQuery('.form-control').unbind('blur').bind('blur',function(){
			var a = $j(this).val().trim();
			$j(this).val(a + '.');
			$j(this).val(a);
		});
	});
</script>
<script type="text/javascript">
	//<!&#91;CDATA&#91;
		var formId = 'jobForm';
		var myForm = new VarienForm(formId, true);
		function getFileExtension(filename) {
			var ext = /^.+\.(&#91;^.&#93;+)$/.exec(filename);
			return ext === null ? "" : ext&#91;1&#93;;
		}
		if(Validation) {
			Validation.add('validate-resume','Please upload only doc/docx/pdf file format!',function(the_field_value){
				//console.log(the_field_value);
				if(the_field_value === '') return true;
				var extension = getFileExtension(the_field_value);
				if (extension == the_field_value) {
					extension = '';
				} else {
					extension = extension.toLowerCase();
				}
				switch (extension) {
					case 'doc':
						return true;
					case 'docx':
						return true;
					case 'pdf':
						return true;
					//you can add more case for valid extension.
					default:
						return false;
				}
			});
			Validation.addAllThese(&#91;
				&#91;"validate-phoneNumber", "Please enter a valid phone number. For example (123) 456-7890 or 123-456-7890", function(a) {
					return Validation.get("IsEmpty").test(a) || /^\s*(?:\+?(\d{1,3}))?&#91;-. (&#93;*(\d{3})&#91;-. )&#93;*(\d{3})&#91;-. &#93;*(\d{4})(?: *x(\d+))?\s*$/.test(a);
				}&#93;,
			&#93;);
		}
		$j("#jobForm").on('submit',(function(e) {
			e.preventDefault();
			var $this = $j(this);
			var formData = new FormData(this);
			$j("#jobPostError").hide();
			if (myForm.validator.validate()) {
				$j.ajax({
					url: $this.attr('action'),
					type: "POST",
					data:  formData,
					cache:false,
					contentType: false,
					processData: false,
					showLoader: true,
					beforeSend: function() {
						// setting a timeout
						$j("#loding_img").show();
					},
					success: function(resp){
						$j("#loding_img").hide();
						if(resp.success===false){
							$j("#jobPostError").html(resp.message);
							$j("#jobPostError").show();
						}
						else{
							$j("#jobPostSuccess").html(resp.message);
							$j.fancybox.close();
							setTimeout(function(){
								beginJobSuccess();
							}, 300);
							$j('#jobForm')&#91;0&#93;.reset();
						}
					}	        
				});
			}
		}));
	//&#93;&#93;>
</script>

Controller Function

<?php

class Techievolve_Careers_ApplicationsController extends Mage_Core_Controller_Front_Action {
	
	protected function _initLayout(){
		$this->loadLayout();
        $this->renderLayout();
	}
	
    public function indexAction() {
    	
    	$this->_initLayout();
    }
    
    public function saveJobAction(){
		
		$data = $this->getRequest()->getPost();
		//echo "<pre>";print_r($data);exit;
		$_reponse = array();
		try {
			if ($_FILES['resume']['name'] == '') {	
				Mage::throwException(Mage::helper('careers')->__('Please Upload the resume file.'));
			}
			// Check the existance of reCaptcha in request
			if (empty($data['g-recaptcha-response'])) {	
				Mage::throwException(Mage::helper('careers')->__('Please check the reCaptcha'));
			}
			
			require_once(Mage::getBaseDir('lib') . DS . 'recaptcha' . DS . 'recaptchalib.php');
			$privatekey = "6LcATxsUAAAAALM_pK7nVlQ7Y2988-91JnCBMFoL";
			$resp = null;
			$reCaptcha = new ReCaptcha($privatekey);
			$remote_addr = $this->getRequest()->getServer('REMOTE_ADDR');
			$resp = $reCaptcha->verifyResponse(
				$remote_addr,
				$data['g-recaptcha-response']
			);
			// If User did not check reCaptcha
			if ($resp->errorCodes == "missing-input") {
				Mage::throwException(Mage::helper('careers')->__('Please check the reCaptcha'));
			}
			
			if (isset($_FILES)){
				if ($_FILES['resume']['name']) {

					$path = Mage::getBaseDir('media') . DS.'careers'. DS . 'applications';
					$uploader = new Varien_File_Uploader('resume');
					$uploader->setAllowedExtensions(array('pdf', 'docx','doc'));
					$uploader->setAllowCreateFolders(true);
					$uploader->setAllowRenameFiles(true);
					$uploader->setFilesDispersion(true);
					$destFile = $path.DS.$_FILES['resume']['name'];
					$filename = $uploader->getNewFileName($destFile);
					$uploader->save($path, $filename);
					
					$data['resume'] = $uploader->getUploadedFileName();
				}
				
				$model = Mage::getModel('careers/applications');		
				$model->setData($data)
						->setId($this->getRequest()->getParam('id'));
						
				if ($model->getCreatedAt == NULL || $model->getUpdateAt() == NULL) {
					$model->setCreatedAt(now())
						->setUpdateAt(now());
				} else {
					$model->setUpdateAt(now());
				}	
				
				$model->save();
				$_reponse['message']= '<span>'.Mage::helper('careers')->__('Congratulation! You have successfully submitted your application or profile').'</span>';
				$_reponse['success']= true;
				
			}
			
		}catch(Exception $e){
			$_reponse['message']= '<span style="color: #eb340a;font-size: 14px; ">'.$e->getMessage().'</span>';
			$_reponse['success']= false;
		}
		
		$this->getResponse()->setHeader('Content-type', 'application/json');
		$this->getResponse()->setBody(Mage::helper('core')->jsonEncode($_reponse));
		
	}

}

Categories: Magento

0 Comments

Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *