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"> //<![CDATA[ var formId = 'jobForm'; var myForm = new VarienForm(formId, true); function getFileExtension(filename) { var ext = /^.+\.([^.]+)$/.exec(filename); return ext === null ? "" : ext[1]; } 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([ ["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}))?[-. (]*(\d{3})[-. )]*(\d{3})[-. ]*(\d{4})(?: *x(\d+))?\s*$/.test(a); }], ]); } $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')[0].reset(); } } }); } })); //]]> </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)); } }
0 Comments