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