Exemple #1
0
 function editCvProfile()
 {
     // echo '<pre>'.print_r(JRequest::get('post'), true).'</pre>'; die;
     $step = JRequest::getInt('step');
     $step = $step < 1 ? 1 : $step;
     // Check for request forgeries
     //if($step > 1) JRequest::checkToken() or jexit( JText::_('Invalid Token') );
     jimport('joomla.utilities.date');
     $getdata = JRequest::getInt('getdata');
     $getdata = $getdata != 1 ? 0 : 1;
     $editmode = JRequest::getInt('emode');
     $editmode = $editmode != 1 ? 0 : $editmode;
     $errors = array();
     $msg = '';
     $cv_profile_id = JRequest::getInt('profileid');
     $cv_profile_id = $cv_profile_id < 1 ? 0 : $cv_profile_id;
     $user_prof_data = $this->_umodel->getProfileDataOne($this->_uid, true);
     $pp_status = JobBoardHelper::checkProfilePicStatus($this->_uid, $this->_umodel);
     $linkedin_imported = $this->_umodel->liProfileExists($this->_uid, true);
     $is_authorised_linkedin = $this->_umodel->isAuthLinkedin($this->_uid);
     $layout_style = $this->_umodel->getLayoutConfig();
     $view =& $this->getView('user', 'html');
     $view->setLayout('user');
     $view->assign('is_authorised_linkedin', $is_authorised_linkedin);
     $view->assign('linkedin_imported', $linkedin_imported);
     $view->assign('context', 'addcv');
     $view->assign('step', $step);
     $view->assignRef('user_auth', $this->_user_cred);
     switch ($step) {
         case 1:
             $config = $this->_umodel->getAddProfileStepOnecfg();
             $li_import_on = $this->_umodel->getLinkedinPerms();
             if ($cv_profile_id > 0) {
                 //editing a profile
                 $data = $this->_umodel->getEditProfileStepOnedata($cv_profile_id);
                 $av_date = new JDate($data['avail_date']);
                 $view->assignRef('data', $data);
             } else {
                 //creating a new profile
                 $av_date = JFactory::getDate();
             }
             $file_count = 1;
             $view->assignRef('av_date', $av_date);
             $view->assign('file_count', $file_count);
             $view->assign('li_import_on', $li_import_on);
             $view->assignRef('config', $config);
             break;
         case 2:
             // Process submitted data from Step1
             $post = JRequest::get('post');
             if (isset($post['profile_name']) && isset($post['filetitle']) && isset($post['file_count'])) {
                 if ($post['profile_name'] == '' && $editmode == 0) {
                     $msg = JText::_('COM_JOBBOARD_PROFILENAMEERR');
                     return $this->setRedirect(JRoute::_('index.php?option=com_jobboard&view=user&task=addcv&step=1&Itemid=' . $this->_itemid), $msg, 'error');
                 }
                 $post['is_private'] = !isset($post['is_private']) ? 0 : $post['is_private'] == 'yes' ? 1 : 0;
                 $post['avail_date'] = $post['available_yyyy'] . '-' . $post['available_mm'] . '-' . $post['available_dd'];
                 if (isset($post['section'])) {
                     $section = isset($post['section']);
                     unset($post['section']);
                 } else {
                     $section = '';
                 }
                 unset($post['available_yyyy'], $post['available_mm'], $post['available_dd']);
                 $file_count = $post['file_count'];
                 $files = array();
                 $filearr = JRequest::get('files', 'array');
                 // Organise files into an orderly array
                 for ($i = 1; $i <= $file_count; $i++) {
                     if ($filearr['file']['error'][$i] == 0) {
                         $files[$i - 1]['title'] = $post['filetitle'][$i];
                         $files[$i - 1]['name'] = $filearr['file']['name'][$i];
                         $files[$i - 1]['type'] = $filearr['file']['type'][$i];
                         $files[$i - 1]['tmp_name'] = $filearr['file']['tmp_name'][$i];
                         $files[$i - 1]['error'] = $filearr['file']['error'][$i];
                         $files[$i - 1]['size'] = $filearr['file']['size'][$i];
                     } else {
                         $post['file_count']--;
                     }
                 }
                 /* Does a user profile record exist for user?*/
                 $user_profile_id = $this->_umodel->userProfileExists($this->_uid);
                 if ($user_profile_id == 0) {
                     // If no, create user profile
                     $u_key = JobBoardHelper::randKey();
                     $u_secr = JobBoardHelper::randStr($u_key);
                     $this->_umodel->createMinUserProfile($this->_uid, $u_key, $u_secr);
                 }
                 /*save cv profile and return new/existing record id*/
                 $new_cvid = $this->_umodel->saveCvProfile($post, $cv_profile_id, $this->_uid);
                 if ($new_cvid == 0 && $editmode == 0) {
                     //New profile data save error
                     return $this->setRedirect(JRoute::_('index.php?option=com_jobboard&view=user&task=addcv&step=1&Itemid=' . $this->_itemid), 'Error saving cv/resume profile', 'error');
                 }
                 $cv_profile_id = $cv_profile_id < 1 ? $new_cvid : $cv_profile_id;
                 //handle file uploads
                 if (count($files) > 0) {
                     $upload_success = $this->_processFileUploads($files, $this->_uid, $cv_profile_id);
                 }
                 if (isset($upload_success)) {
                     if (is_array($upload_success)) {
                         $errors = array_merge($errors, $upload_success);
                         $msg .= '<br />' . JText::_('COM_JOBBOARD_ERRORS_OCCURED') . '<br />';
                         foreach ($errors as $errmsg) {
                             $msg .= '<br />' . $errmsg;
                         }
                         $app =& JFactory::getApplication();
                         $app->enqueueMessage($msg, 'error');
                     }
                 }
                 if ($editmode == 1 && $getdata == 0) {
                     // we are editing an existing profile - saving step 1
                     return $this->setRedirect(JRoute::_('index.php?option=com_jobboard&view=user&task=viewcv&profileid=' . $cv_profile_id . '&Itemid=' . $this->_itemid), JText::_('COM_JOBBOARD_CVP_CHGSAVED'), 'message');
                 }
             }
             /* end if creating new cv/resume */
             $section = JRequest::getVar('section');
             if ($editmode == 1 && $getdata == 1) {
                 if ($section == 'employer') {
                     $empl_data = $this->_umodel->getCvProfileEmplHistory($cv_profile_id, $this->_uid);
                     $view->assignRef('empl_data', $empl_data);
                     $employer_count = count($empl_data);
                 } elseif ($section == 'education') {
                     $edu_data = $this->_umodel->getCvProfileEduHistory($cv_profile_id, $this->_uid);
                     $view->assignRef('edu_data', $edu_data);
                     $quals_count = count($edu_data);
                 }
             }
             $quals_count = isset($quals_count) ? $quals_count : 1;
             $employer_count = isset($employer_count) ? $employer_count : 1;
             $countries = $this->_umodel->getCountries();
             $config = $this->_umodel->getAddProfileStepTwocfg();
             $ed_levels = $this->_umodel->getEdlevels();
             $view->assignRef('post', $post);
             $view->assignRef('countries', $countries);
             $view->assignRef('ed_levels', $ed_levels);
             foreach ($countries as $country) {
                 $country_options[] = array("id" => $country->country_id, "name" => JText::_($country->country_name));
             }
             foreach ($ed_levels as $ed_level) {
                 $ed_level_opts[] = array("id" => $ed_level->id, "name" => JText::_($ed_level->level));
             }
             $months = JobBoardHelper::getMonthsList();
             $view->assign('quals_count', $quals_count);
             $view->assign('employer_count', $employer_count);
             $view->assignRef('country_options', $country_options);
             $view->assignRef('config', $config);
             $view->assignRef('ed_level_opts', $ed_level_opts);
             $view->assignRef('months', $months);
             break;
         case 3:
             $section = JRequest::getVar('section');
             require_once JPATH_COMPONENT_ADMINISTRATOR . DS . 'helpers' . DS . 'jobboard_user.php';
             if ($editmode == 0 && $getdata == 0) {
                 // we are creating a new cv/resume
                 $post = JRequest::get('post');
                 $edu_arr = JobBoardUserHelper::reorderEdu($post, $post['quals_count']);
                 $empl_arr = JobBoardUserHelper::reorderEmpl($post, $post['employer_count']);
                 foreach ($edu_arr as $edu) {
                     if ($result = $this->_insertdEdu($cv_profile_id, $this->_uid, $this->_umodel, $edu) != true) {
                         $errors[] = $result;
                     }
                 }
                 foreach ($empl_arr as $empl) {
                     if ($result = $this->_insertEmployer($this->_uid, $cv_profile_id, $this->_umodel, $empl) != true) {
                         $errors[] = $result;
                     }
                 }
                 if (count($errors) > 0) {
                     $msg = JText::_('COM_JOBBOARD_ERRORS_OCCURED') . '<br />';
                     $app =& JFactory::getApplication();
                     foreach ($errors as $err) {
                         $msg .= $err . '<br />';
                     }
                     $app->enqueueMessage($msg, 'error');
                 }
             }
             if ($editmode == 1 && $getdata == 1 && ($section == 'employer' || $section == 'education')) {
                 // we are editing an existing cv/resume
                 $post = JRequest::get('post');
                 if (isset($post['edu_id'])) {
                     $data = JobBoardUserHelper::reorderEdu($post, $post['quals_count'], true);
                     $s_section = 1;
                 }
                 if (isset($post['empl_id'])) {
                     $data = JobBoardUserHelper::reorderEmpl($post, $post['employer_count'], true);
                     $s_section = 2;
                     // echo '<pre>'.print_r($data, true).'</pre>'; die;
                 }
                 switch ($s_section) {
                     case 1:
                         foreach ($data as $row) {
                             if ($row['id'] == 0) {
                                 unset($row['id']);
                                 if ($result = $this->_insertdEdu($cv_profile_id, $this->_uid, $this->_umodel, $row) != true) {
                                     $errors[] = $result;
                                 }
                             } else {
                                 if ($result = $this->_updEdu($this->_uid, $row['id'], $cv_profile_id, $this->_umodel, $row) != true) {
                                     $errors[] = $result;
                                 }
                             }
                         }
                         break;
                     case 2:
                         foreach ($data as $row) {
                             if ($row['id'] == 0) {
                                 unset($row['id']);
                                 if ($result = $this->_insertEmployer($this->_uid, $cv_profile_id, $this->_umodel, $row) != true) {
                                     $errors[] = $result;
                                 }
                             } else {
                                 if ($result = $this->_updEmpl($this->_uid, $row['id'], $cv_profile_id, $this->_umodel, $row) != true) {
                                     $errors[] = $result;
                                 }
                             }
                         }
                         break;
                 }
                 if (count($errors) > 0) {
                     $msg = JText::_('COM_JOBBOARD_ERRORS_OCCURED') . '<br />';
                     foreach ($errors as $err) {
                         $msg .= $err . '<br />';
                         $msgtype = 'error';
                     }
                 } else {
                     $msg = JText::_('COM_JOBBOARD_CVP_CHGSAVED');
                     $msgtype = 'Message';
                 }
                 return $this->setRedirect(JRoute::_('index.php?option=com_jobboard&view=user&task=viewcv&profileid=' . $cv_profile_id . '&Itemid=' . $this->_itemid), $msg, $msgtype);
             }
             if ($editmode == 1 && $getdata == 1 && $section == 'skills') {
                 $skills = $this->_umodel->getCvProfileSkills($cv_profile_id, $this->_uid);
                 $skills_count = count($skills);
                 $current_skills = array();
                 $dated_skills = array();
                 foreach ($skills as $skill) {
                     if ($skill->last_use == '0000-00-00') {
                         $current_skills[] = $skill;
                     } else {
                         $dated_skills[] = $skill;
                     }
                 }
                 $skills = array_merge($current_skills, $dated_skills);
                 $view->assignRef('skills', $skills);
             }
             if (!isset($skills)) {
                 $skills_count = 1;
             }
             $skills_count = $skills_count == 0 ? 1 : $skills_count;
             if ($editmode == 1 && $getdata == 1 && $section == 'summary') {
                 $summary = $this->_umodel->getCvProfileSummary($cv_profile_id, $this->_uid);
                 $view->assignRef('summary', $summary);
             }
             $config = $this->_umodel->getAddProfileStepThreecfg();
             $view->assignRef('config', $config);
             $view->assign('skills_count', $skills_count);
             break;
         case 4:
             $section = JRequest::getVar('section');
             $section = isset($section) ? $section : '';
             require_once JPATH_COMPONENT_ADMINISTRATOR . DS . 'helpers' . DS . 'jobboard_user.php';
             if ($editmode == 0 && $getdata == 0) {
                 // we are creating a new cv/resume
                 $post = JRequest::get('post');
                 $skills_data = JobBoardUserHelper::reorderSkills($post, $post['skillscount']);
                 //$empl_arr = JobBoardUserHelper::reorderEmpl($post, $post['employer_count']);
                 if (!empty($skills_data)) {
                     foreach ($skills_data as $row) {
                         if ($result = $this->_insertSkill($this->_uid, $cv_profile_id, $this->_umodel, $row) != true) {
                             $errors[] = $result;
                         }
                     }
                 }
                 if ($result = $this->_umodel->updCvProfileSummary($cv_profile_id, $this->_uid, $post['summary']) != true) {
                     $errors[] = $result;
                 }
                 if (count($errors) > 0) {
                     $msg = JText::_('COM_JOBBOARD_ERRORS_OCCURED') . '<br />';
                     foreach ($errors as $err) {
                         $msg .= $err . '<br />';
                         $msgtype = 'error';
                     }
                 } else {
                     $msg = JText::_('COM_JOBBOARD_CVP_SAVED');
                     $msgtype = 'Message';
                 }
                 return $this->setRedirect(JRoute::_('index.php?option=com_jobboard&view=user&task=viewcv&profileid=' . $cv_profile_id . '&Itemid=' . $this->_itemid), $msg, $msgtype);
             }
             if ($editmode == 1 && $getdata == 1 && ($section == 'skills' || $section == 'summary')) {
                 // we are editing an existing cv/resume
                 $post = JRequest::get('post');
                 if (isset($post['skillname'])) {
                     $data = JobBoardUserHelper::reorderSkills($post, $post['skillscount'], true);
                     $s_section = 1;
                 }
                 if ($section == 'summary') {
                     $s_section = 2;
                 }
                 switch ($s_section) {
                     case 1:
                         foreach ($data as $row) {
                             if ($row['id'] == 0) {
                                 unset($row['id']);
                                 if ($result = $this->_insertSkill($this->_uid, $cv_profile_id, $this->_umodel, $row) != true) {
                                     $errors[] = $result;
                                 }
                             } else {
                                 if ($result = $this->_updSkill($this->_uid, $row['id'], $cv_profile_id, $this->_umodel, $row) != true) {
                                     $errors[] = $result;
                                 }
                             }
                         }
                         break;
                     case 2:
                         if ($this->_umodel->updCvProfileSummary($cv_profile_id, $this->_uid, $post['summary']) != true) {
                             $errors[] = JText::sprintf('COM_JOBBOARD_ENT_UPDERR', JText::_('COM_JOBBOARD_CVPROF_SUMM'));
                         }
                         break;
                 }
                 if (count($errors) > 0) {
                     $msg = JText::_('COM_JOBBOARD_ERRORS_OCCURED') . '<br />';
                     foreach ($errors as $err) {
                         $msg .= $err . '<br />';
                         $msgtype = 'error';
                     }
                 } else {
                     $msg = JText::_('COM_JOBBOARD_CVP_CHGSAVED');
                     $msgtype = 'Message';
                 }
                 return $this->setRedirect(JRoute::_('index.php?option=com_jobboard&view=user&task=viewcv&profileid=' . $cv_profile_id . '&Itemid=' . $this->_itemid), $msg, $msgtype);
             }
             $post = JRequest::get('post');
             $view->assignRef('post', $post);
             $view->assign('section', $section);
             break;
         case 5:
             //procesing linkedin import
             require_once JPATH_COMPONENT_ADMINISTRATOR . DS . 'helpers' . DS . 'jobboard_user.php';
             $post = JRequest::get('post');
             /* Does a user profile record exist for user?*/
             $user_profile_id = $this->_umodel->userProfileExists($this->_uid);
             if ($user_profile_id == 0) {
                 // If no, create user profile
                 $u_key = JobBoardHelper::randKey();
                 $u_secr = JobBoardHelper::randStr($u_key);
                 $this->_umodel->createMinUserProfile($this->_uid, $u_key, $u_secr);
             }
             $config_defaults = $this->_umodel->getProfileEditOnecfg();
             $li_data = JobBoardUserHelper::reorderLinkedIn($post, &$config_defaults);
             $li_profile_id = $this->_umodel->liProfileExists($this->_uid);
             if ($li_profile_id == 0) {
                 //creating linkedin profile
                 $today = JobBoardHelper::getToday();
                 $li_profile = array('profile_name' => JText::_('COM_JOBBOARD_LI_PROFDESCR'), 'job_type' => 'COM_JOBBOARD_DB_JFULLTIME', 'file_count' => 0, 'avail_date' => (string) $today, 'is_private' => 0);
                 $curr_profile_id = $this->_umodel->saveCvProfile($li_profile, $li_profile_id, $this->_uid, 1);
                 if ($curr_profile_id == 0) {
                     $errors[] = JText::sprintf('COM_JOBBOARD_ENT_UPDERR', JText::_('COM_JOBBOARD_LI_PROFDESCR'));
                 } else {
                     if ($this->_umodel->updCvProfileSummary($curr_profile_id, $this->_uid, $post['profile_summary']) != true) {
                         $errors[] = JText::sprintf('COM_JOBBOARD_ENT_UPDERR', JText::_('COM_JOBBOARD_CVPROF_SUMM'));
                     }
                     foreach ($li_data['edu'] as $edu) {
                         if ($result = $this->_insertdEdu($curr_profile_id, $this->_uid, $this->_umodel, $edu) != true) {
                             $errors[] = $result;
                         }
                     }
                     foreach ($li_data['empl'] as $empl) {
                         if ($result = $this->_insertEmployer($this->_uid, $curr_profile_id, $this->_umodel, $empl) != true) {
                             $errors[] = $result;
                         }
                     }
                     foreach ($li_data['skills'] as $skill) {
                         if ($result = $this->_insertSkill($this->_uid, $curr_profile_id, $this->_umodel, $skill) != true) {
                             $errors[] = $result;
                         }
                     }
                 }
                 if ($this->_umodel->updLiProfileImportStat($this->_uid, 1) != true) {
                     $errors[] = JText::_('COM_JOBBOARD_SAVELINKEDINERR');
                 }
             } elseif ($li_profile_id > 0) {
                 //updating linkedin profile
                 if ($this->_umodel->updCvProfileSummary($li_profile_id, $this->_uid, $post['profile_summary']) != true) {
                     $errors[] = JText::sprintf('COM_JOBBOARD_ENT_UPDERR', JText::_('COM_JOBBOARD_CVPROF_SUMM'));
                 }
                 $curr_profile_id = $li_profile_id;
                 $curr_edu_rows = $this->_umodel->getCvProfileEduHistory($li_profile_id, $this->_uid);
                 $curr_edu_count = count($curr_edu_rows);
                 $new_edu_count = count($li_data['edu']);
                 if ($new_edu_count == $curr_edu_count && $new_edu_count > 0) {
                     //no new records from LinkedIn. Sync current records.
                     $edu_ctr = 0;
                     foreach ($curr_edu_rows as $edu) {
                         $synced_edu = JobBoardUserHelper::liSyncEdu($li_data['edu'][$edu_ctr], $edu);
                         if ($result = $this->_updEdu($this->_uid, $edu->id, $li_profile_id, $this->_umodel, $synced_edu) != true) {
                             $errors[] = $result;
                         }
                         $edu_ctr += 1;
                     }
                 } elseif ($new_edu_count > $curr_edu_count) {
                     for ($e = 0; $e < $curr_edu_count; $e++) {
                         $synced_edu = JobBoardUserHelper::liSyncEdu($li_data['edu'][$e], $curr_edu_rows[$e]);
                         if ($result = $this->_updEdu($this->_uid, $curr_edu_rows[$e]->id, $li_profile_id, $this->_umodel, $synced_edu) != true) {
                             $errors[] = $result;
                         }
                         unset($li_data[$e]);
                     }
                     foreach ($li_data['edu'] as $edu) {
                         if ($result = $this->_insertdEdu($li_profile_id, $this->_uid, $this->_umodel, $edu) != true) {
                             $errors[] = $result;
                         }
                     }
                 } elseif ($new_edu_count < $curr_edu_count) {
                     for ($e = 0; $e < $new_edu_count; $e++) {
                         $synced_edu = JobBoardUserHelper::liSyncEdu($li_data['edu'][$e], $curr_edu_rows[$e]);
                         if ($result = $this->_updEdu($this->_uid, $curr_edu_rows[$e]->id, $li_profile_id, $this->_umodel, $synced_edu) != true) {
                             $errors[] = $result;
                         }
                         unset($curr_edu_rows[$e]);
                     }
                     foreach ($curr_edu_rows as $edu) {
                         if ($result = $this->_delEdu($this->_uid, $edu->id, $li_profile_id, $this->_umodel) != true) {
                             $errors[] = $result;
                         }
                     }
                 }
                 $curr_empl_rows = $this->_umodel->getCvProfileEmplHistory($li_profile_id, $this->_uid);
                 $curr_empl_count = count($curr_empl_rows);
                 $new_empl_count = count($li_data['empl']);
                 if ($new_empl_count == $curr_empl_count && $new_empl_count > 0) {
                     //no new records from LinkedIn. Sync current records.
                     $empl_ctr = 0;
                     foreach ($curr_empl_rows as $empl) {
                         $synced_empl = JobBoardUserHelper::liSyncEmpl($li_data['empl'][$empl_ctr], $empl);
                         if ($result = $this->_updEmpl($this->_uid, $empl->id, $li_profile_id, $this->_umodel, $synced_empl) != true) {
                             $errors[] = $result;
                         }
                         $empl_ctr += 1;
                     }
                 } elseif ($new_empl_count > $curr_empl_count) {
                     for ($e = 0; $e < $curr_empl_count; $e++) {
                         $synced_empl = JobBoardUserHelper::liSyncEmpl($li_data['empl'][$e], $curr_empl_rows[$e]);
                         if ($result = $this->_updEmpl($this->_uid, $curr_empl_rows[$e]->id, $li_profile_id, $this->_umodel, $synced_empl) != true) {
                             $errors[] = $result;
                         }
                         unset($li_data['empl'][$e]);
                     }
                     foreach ($li_data['empl'] as $empl) {
                         if ($result = $this->_insertEmployer($this->_uid, $li_profile_id, $this->_umodel, $empl) != true) {
                             $errors[] = $result;
                         }
                     }
                 } elseif ($new_empl_count < $curr_empl_count) {
                     for ($e = 0; $e < $new_empl_count; $e++) {
                         $synced_empl = JobBoardUserHelper::liSyncEmpl($li_data['empl'][$e], $curr_empl_rows[$e]);
                         if ($result = $this->_updEmpl($this->_uid, $curr_empl_rows[$e]->id, $li_profile_id, $this->_umodel, $synced_empl) != true) {
                             $errors[] = $result;
                         }
                         unset($curr_empl_rows[$e]);
                     }
                     foreach ($curr_empl_rows as $empl) {
                         if ($result = $this->_delEmployer($this->_uid, $empl->id, $li_profile_id, $this->_umodel) != true) {
                             $errors[] = $result;
                         }
                     }
                 }
                 $curr_skill_rows = $this->_umodel->getCvProfileSkills($li_profile_id, $this->_uid);
                 $curr_skill_count = count($curr_skill_rows);
                 $new_skill_count = count($li_data['skills']);
                 if ($new_skill_count == $curr_skill_count && $new_skill_count > 0) {
                     //no new records from LinkedIn. Sync current records.
                     $skill_ctr = 0;
                     foreach ($curr_skill_rows as $skill) {
                         $synced_skill = JobBoardUserHelper::liSyncSkill($li_data['skills'][$skill_ctr], $skill);
                         if ($result = $this->_updSkill($this->_uid, $skill->id, $li_profile_id, $this->_umodel, $synced_skill) != true) {
                             $errors[] = $result;
                         }
                         $skill_ctr += 1;
                     }
                 } elseif ($new_skill_count > $curr_skill_count) {
                     for ($e = 0; $e < $curr_skill_count; $e++) {
                         $synced_skill = JobBoardUserHelper::liSyncSkill($li_data['skills'][$e], $curr_skill_rows[$e]);
                         if ($result = $this->_updSkill($this->_uid, $curr_skill_rows[$e]->id, $li_profile_id, $this->_umodel, $synced_skill) != true) {
                             $errors[] = $result;
                         }
                         unset($li_data['skills'][$e]);
                     }
                     foreach ($li_data['skills'] as $skill) {
                         if ($result = $this->_insertSkill($this->_uid, $li_profile_id, $this->_umodel, $skill) != true) {
                             $errors[] = $result;
                         }
                     }
                 } elseif ($new_skill_count < $curr_skill_count) {
                     for ($e = 0; $e < $new_skill_count; $e++) {
                         $synced_skill = JobBoardUserHelper::liSyncSkill($li_data['skills'][$e], $curr_skill_rows[$e]);
                         if ($result = $this->_updSkill($this->_uid, $curr_skill_rows[$e]->id, $li_profile_id, $this->_umodel, $synced_skill) != true) {
                             $errors[] = $result;
                         }
                         unset($curr_skill_rows[$e]);
                     }
                     foreach ($curr_skill_rows as $skill) {
                         if ($result = $this->_delSkill($this->_uid, $skill->id, $li_profile_id, $this->_umodel) != true) {
                             $errors[] = $result;
                         }
                     }
                 }
                 if ($this->_umodel->updLiProfileImportStat($this->_uid, 1) != true) {
                     $errors[] = JText::_('COM_JOBBOARD_SAVELINKEDINERR');
                 }
             }
             if (count($errors) > 0) {
                 $msg = JText::_('COM_JOBBOARD_ERRORS_OCCURED') . '<br />';
                 foreach ($errors as $err) {
                     $msg .= $err . '<br />';
                     $msgtype = 'error';
                 }
                 return $this->setRedirect(JRoute::_('index.php?option=com_jobboard&view=user&task=cvprofs&Itemid=' . $this->_itemid), $msg, $msgtype);
             } else {
                 $msg = JText::_('COM_JOBBOARD_CVP_CHGSAVED');
                 $msgtype = 'Message';
                 return $this->setRedirect(JRoute::_('index.php?option=com_jobboard&view=user&task=viewcv&profileid=' . $curr_profile_id . '&Itemid=' . $this->_itemid), $msg, $msgtype);
             }
             break;
         default:
             break;
     }
     $section = isset($section) ? $section : '';
     $view->assign('editmode', $editmode);
     $view->assign('section', $section);
     $view->assign('getdata', $getdata);
     $view->assign('profileid', $cv_profile_id);
     $view->assign('is_profile_pic', $pp_status['is_profile_pic']);
     $view->assignRef('user_prof_data', $user_prof_data);
     $view->assign('imgthumb', $pp_status['urithumb']);
     $view->assign('layout_style', $layout_style);
     $view->display();
 }
Exemple #2
0
 function _addScripts($step, $is_modal = false)
 {
     if (!$is_modal) {
         JHTML::_('behavior.mootools');
         require_once JPATH_COMPONENT_ADMINISTRATOR . DS . 'helpers' . DS . 'jobboard_behavior.php';
     }
     jimport('joomla.utilities.date');
     jimport('joomla.environment.browser');
     $document =& JFactory::getDocument();
     $browser =& JBrowser::getInstance();
     $this->is_ie = is_int(strpos($browser->getBrowser(), 'msie'));
     if ($this->is_ie) {
         $document->addStyleSheet('components/com_jobboard/css/user_ie.css');
         if (intval($browser->getVersion()) > 7) {
             $cleafix = ".clearfix {display: block;}";
             $document->addStyleDeclaration($cleafix);
         }
         $this->is_early_ie = intval($browser->getVersion()) < 7 ? true : false;
     }
     //add cv profile switch
     switch ($step) {
         case 1:
             $js_vars = 'var jbVars ={"siteRoot": "' . JURI::base() . '", "maxFiles": ' . $this->config->max_files . ', "txtTitle": "' . JText::_('TITLE') . '", "txtUplfile": "' . JText::_('COM_JOBBOARD_FILETOUPLOAD') . '", "txtRemove": "' . JText::_('COM_JOBBOARD_TXTREMOVE') . '", "txtLiImport": "' . JText::_('COM_JOBBOARD_IMPORTINGLINKEDIN') . '", fileNum:' . $this->file_count . '};';
             $document->addScriptDeclaration($js_vars);
             break;
         case 2:
             $js_vars = 'var jbVars ={"txtEdu": "' . JText::_('EDUCATION') . '", "txtType": "' . JText::_('COM_JOBBOARD_TXTTYPE') . '", "txtQualname": "' . JText::_('COM_JOBBOARD_QUALNAME') . '", "txtSchoolname": "' . JText::_('COM_JOBBOARD_SCHOOLNAME') . '", "txtCountry": "' . JText::_('COM_JOBBOARD_TXTCOUNTRY') . '", "txtCity": "' . JText::_('COM_JOBBOARD_TXTCITY') . '", "txtQualyr": "' . JText::_('COM_JOBBOARD_QUALYEAR') . '", "txtEmployer": "' . JText::_('COM_JOBBOARD_EMPLOYER') . '", "txtCompany": "' . JText::_('COM_JOBBOARD_TXTCOMPANY') . '", "txtJobtitle": "' . JText::_('JOB_TITLE') . '", "txtPresent": "' . JText::_('COM_JOBBOARD_TXTPRESENT') . '", "txtStartyr": "' . JText::_('COM_JOBBOARD_START') . '", "txtEndyr": "' . JText::_('COM_JOBBOARD_END') . '", "txtEmplCurr": "' . JText::_('COM_JOBBOARD_ISCURRENT_EMPL') . '", "txtNoMoreThan": "' . JText::_('COM_JOBBOARD_TXTNOTMORETHAN') . '", "txtRemove": "' . JText::_('COM_JOBBOARD_TXTREMOVE') . '", "txtEntriesAllwd": "' . JText::_('COM_JOBBOARD_TXTENTRIESALLOWED') . '", "currYear": ' . $this->today->toFormat("%Y") . ', "countries": ' . json_encode($this->country_options) . ', "employer":[], "edu":[], "defaultCountry": ' . $this->config->default_country . ', "maxQuals": ' . $this->config->max_quals . ', "maxEmployers": ' . $this->config->max_employers . ', "qualNum": ' . $this->quals_count . ', "emplNum": ' . $this->employer_count . ', "edLevels":' . json_encode($this->ed_level_opts) . ', "months":' . json_encode($this->months) . '};';
             $document->addScriptDeclaration($js_vars);
             break;
             //
         //
         case 3:
             $js_vars = 'var jbVars ={"maxSkills": ' . $this->config->max_skills . ', "txtNoMoreThan": "' . JText::_('COM_JOBBOARD_TXTNOTMORETHAN') . '", "txtSkillsAllwd": "' . JText::_('COM_JOBBOARD_TXTSKILLENTRIESALLOWED') . '", "txtCurrent": "' . JText::_('COM_JOBBOARD_TXTCURRENT') . '", "txtRemoveSkill": "' . JText::_('COM_JOBBOARD_TXTREMOVE') . '", "skillNum": ' . $this->skills_count . ', "currYear": ' . $this->today->toFormat("%Y") . '};';
             $document->addScriptDeclaration($js_vars);
             break;
         case 4:
             break;
         default:
             break;
     }
     //user profile javascript
     if (isset($this->currtab)) {
         switch ($this->currtab) {
             case 1:
                 $js_vars = 'var jbVars ={"userTab": ' . $this->currtab . ', "tKn": "' . JUtility::getToken() . '"};';
                 $document->addScriptDeclaration($js_vars);
                 break;
             case 2:
                 $js_vars = 'var jbaseUrl = "' . JURI::base() . '"; var jbVars ={"userTab": ' . $this->currtab . ', "txtImgPresent": "' . JText::_('COM_JOBBOARD_PICPRESENT') . '", "txtImgAbsent": "' . JText::_('COM_JOBBOARD_PICABSENT') . '", "txtEditOn": "' . JText::_('COM_JOBBOARD_PICEDMODE') . '", "tKn": "' . JUtility::getToken() . '"};';
                 $document->addScriptDeclaration($js_vars);
                 break;
             case 3:
                 $js_vars = 'var jbVars ={"userTab": ' . $this->currtab . ', "tKn": "' . JUtility::getToken() . '"};';
                 $document->addScriptDeclaration($js_vars);
                 break;
             case 4:
                 $js_vars = 'var jbVars ={"userTab": ' . $this->currtab . ', "tKn": "' . JUtility::getToken() . '"};';
                 $document->addScriptDeclaration($js_vars);
                 break;
             case 5:
                 $js_vars = 'var jbVars ={"userTab": ' . $this->currtab . ', "tKn": "' . JUtility::getToken() . '"};';
                 $document->addScriptDeclaration($js_vars);
                 break;
             default:
                 break;
         }
         //end switch
     }
     //end if
     //global
     $js_vars = 'var profilePicPresent = ' . $this->is_profile_pic . ';';
     $document->addScriptDeclaration($js_vars);
     switch ($this->context) {
         case 'cvprofiles':
             $pagination =& $this->get('Pagination');
             $this->assignRef('pagination', $pagination);
             $results_count = $this->pagination->getResultsCounter();
             $this->assignRef('results_count', $results_count);
             break;
         case 'marked':
             $pagination =& $this->get('Pagination');
             $this->assignRef('pagination', $pagination);
             $results_count = $this->pagination->getResultsCounter();
             $this->assignRef('results_count', $results_count);
             break;
         case 'invites':
             $app =& JFactory::getApplication();
             $cat_id = $app->getUserState('com_jobboard.list.selcat', 1);
             $pagination =& $this->get('Pagination');
             $this->assignRef('pagination', $pagination);
             $results_count = $this->pagination->getResultsCounter();
             $this->assignRef('results_count', $results_count);
             $this->assign('cat_id', $cat_id);
             break;
         case 'applications':
             require_once JPATH_COMPONENT_ADMINISTRATOR . DS . 'helpers' . DS . 'jobboard_user.php';
             $pagination =& $this->get('Pagination');
             $this->assignRef('pagination', $pagination);
             $results_count = $this->pagination->getResultsCounter();
             $this->assignRef('results_count', $results_count);
             $this->show_status = JobBoardUserHelper::showApplStatus();
             break;
     }
 }