workersuche mit isearch + subquery :(
This commit is contained in:
parent
6b932ffb78
commit
315fe1ab67
|
@ -4,189 +4,207 @@ App::uses('AppController', 'Controller');
|
||||||
|
|
||||||
class SearchController extends AppController {
|
class SearchController extends AppController {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This controller use User Model
|
* This controller use User Model
|
||||||
*
|
*
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
|
public $uses = array('DreamjobWorker', 'DreamjobJobOpening', 'DreamjobCompany','DreamjobISearch',
|
||||||
|
'DreamjobListBranch', 'DreamjobListCity', 'DreamjobListJob', 'DreamjobListKindofjob', 'DreamjobListGraducation');
|
||||||
|
public $components = array('MiconwareSession');
|
||||||
|
private static $TYPE_id = array('education' => 5, 'academy' => 6, 'internship' => 4);
|
||||||
|
|
||||||
public $uses = array('DreamjobWorker','DreamjobJobOpening','DreamjobCompany',
|
/**
|
||||||
'DreamjobListBranch','DreamjobListCity','DreamjobListKindofjob','DreamjobListGraducation');
|
* Displays a view
|
||||||
public $components = array('MiconwareSession');
|
*
|
||||||
|
* @param mixed What page to display
|
||||||
|
* @return void
|
||||||
|
* @throws NotFoundException When the view file could not be found
|
||||||
|
* or MissingViewException in debug mode.
|
||||||
|
*/
|
||||||
|
public function beforeFilter() {
|
||||||
|
$this->Security->unlockedActions[] = "opening";
|
||||||
|
$this->Security->unlockedActions[] = "company";
|
||||||
|
$this->Security->unlockedActions[] = "worker";
|
||||||
|
$this->Security->unlockedActions[] = "auto";
|
||||||
|
$this->Security->unlockedActions[] = "education";
|
||||||
|
$this->Security->unlockedActions[] = "academy";
|
||||||
|
$this->Security->unlockedActions[] = "internship";
|
||||||
|
parent::beforeFilter();
|
||||||
|
$this->set('MENU_SEARCH', true);
|
||||||
|
}
|
||||||
|
|
||||||
private static $TYPE_id = array('education'=>5,'academy'=>6,'internship'=>4);
|
public function choose() {
|
||||||
|
$this->MiconwareSession->init($this);
|
||||||
|
|
||||||
|
$profil = $this->MiconwareSession->getCompany();
|
||||||
|
if (!empty($profil) and count($profil) > 0) {
|
||||||
|
$this->worker();
|
||||||
|
} else {
|
||||||
|
$this->opening();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private function spezial($type) {
|
||||||
|
$this->MiconwareSession->init($this);
|
||||||
|
$this->MiconwareSession->initWeb($this);
|
||||||
|
$profil = $this->MiconwareSession->getWorker();
|
||||||
|
if (!empty($profil) and count($profil) > 0 and isset(self::$TYPE_id[$type])) {
|
||||||
|
$con = $this->MiconwareSession->getOpeningCondition();
|
||||||
|
$con['DreamjobJobOpening.kindofjob_id'] = self::$TYPE_id[$type];
|
||||||
|
|
||||||
|
if (!empty($this->request->data['DreamjobJobOpening']['branch_id']))
|
||||||
|
$con['DreamjobJobOpening.branch_id'] = $this->request->data['DreamjobJobOpening']['branch_id'];
|
||||||
|
|
||||||
|
|
||||||
/**
|
if (!empty($this->request->data['DreamjobJobOpening']['title']))
|
||||||
* Displays a view
|
$con['DreamjobJobOpening.title LIKE'] = '%' . $this->request->data['DreamjobJobOpening']['title'] . '%';
|
||||||
*
|
|
||||||
* @param mixed What page to display
|
|
||||||
* @return void
|
|
||||||
* @throws NotFoundException When the view file could not be found
|
|
||||||
* or MissingViewException in debug mode.
|
|
||||||
*/
|
|
||||||
public function beforeFilter(){
|
|
||||||
$this->Security->unlockedActions[]="opening";
|
|
||||||
$this->Security->unlockedActions[]="company";
|
|
||||||
$this->Security->unlockedActions[]="auto";
|
|
||||||
$this->Security->unlockedActions[]="education";
|
|
||||||
$this->Security->unlockedActions[]="academy";
|
|
||||||
$this->Security->unlockedActions[]="internship";
|
|
||||||
parent::beforeFilter();
|
|
||||||
$this->set('MENU_SEARCH', true);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function choose() {
|
if (!empty($this->request->data['DreamjobUser']['city']) and $this->request->data['DreamjobUser']['city'] != 48) {
|
||||||
$this->MiconwareSession->init($this);
|
$con['DreamjobUser.city_id'] = $this->request->data['DreamjobUser']['city'];
|
||||||
|
}
|
||||||
$profil = $this->MiconwareSession->getCompany();
|
|
||||||
if(!empty($profil) and count($profil) > 0){
|
|
||||||
$this->worker();
|
|
||||||
}else{
|
|
||||||
$this->opening();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private function spezial($type) {
|
|
||||||
$this->MiconwareSession->init($this);
|
|
||||||
$this->MiconwareSession->initWeb($this);
|
|
||||||
$profil = $this->MiconwareSession->getWorker();
|
|
||||||
if(!empty($profil) and count($profil) > 0 and isset(self::$TYPE_id[$type])){
|
|
||||||
$con = $this->MiconwareSession->getOpeningCondition();
|
|
||||||
$con['DreamjobJobOpening.kindofjob_id'] = self::$TYPE_id[$type];
|
|
||||||
|
|
||||||
if(!empty($this->request->data['DreamjobJobOpening']['branch_id']))
|
|
||||||
$con['DreamjobJobOpening.branch_id']=$this->request->data['DreamjobJobOpening']['branch_id'];
|
|
||||||
|
|
||||||
|
|
||||||
if(!empty($this->request->data['DreamjobJobOpening']['title']))
|
$openings = $this->DreamjobJobOpening->find('all', array('conditions' => $con));
|
||||||
$con['DreamjobJobOpening.title LIKE'] = '%'.$this->request->data['DreamjobJobOpening']['title'].'%';
|
$this->set("branches", $this->DreamjobListBranch->find('list'));
|
||||||
|
$this->set("cities", $this->DreamjobListCity->find('list'));
|
||||||
|
$this->set("openings", $openings);
|
||||||
|
$this->render('/Search/' . $type);
|
||||||
|
} else {
|
||||||
|
$this->set('error', 'dreamjob.error.noPermision');
|
||||||
|
$this->render('/Home/error');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(!empty($this->request->data['DreamjobUser']['city']) and $this->request->data['DreamjobUser']['city'] != 48){
|
public function opening() {
|
||||||
$con['DreamjobUser.city_id']=$this->request->data['DreamjobUser']['city'];
|
$this->MiconwareSession->init($this);
|
||||||
}
|
|
||||||
|
|
||||||
|
$this->MiconwareSession->initWeb($this);
|
||||||
|
$con = $this->MiconwareSession->getOpeningCondition();
|
||||||
|
|
||||||
$openings = $this->DreamjobJobOpening->find('all',array('conditions' => $con));
|
if (!empty($this->request->data['DreamjobJobOpening']['branch_id']))
|
||||||
$this->set("branches",$this->DreamjobListBranch->find('list'));
|
$con['DreamjobJobOpening.graducation_id'] = $this->request->data['DreamjobJobOpening']['branch_id'];
|
||||||
$this->set("cities",$this->DreamjobListCity->find('list'));
|
|
||||||
$this->set("openings",$openings);
|
|
||||||
$this->render('/Search/'.$type);
|
|
||||||
}else{
|
|
||||||
$this->set('error', 'dreamjob.error.noPermision');
|
|
||||||
$this->render('/Home/error');
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
if (!empty($this->request->data['DreamjobJobOpening']['graducation_id']))
|
||||||
|
$con['DreamjobJobOpening.graducation_id'] = $this->request->data['DreamjobJobOpening']['graducation_id'];
|
||||||
|
|
||||||
public function opening() {
|
if (!empty($this->request->data['DreamjobJobOpening']['kindofjob_id']))
|
||||||
$this->MiconwareSession->init($this);
|
$con['DreamjobJobOpening.kindofjob_id'] = $this->request->data['DreamjobJobOpening']['kindofjob_id'];
|
||||||
|
|
||||||
$this->MiconwareSession->initWeb($this);
|
if (!empty($this->request->data['DreamjobJobOpening']['city']) and $this->request->data['DreamjobJobOpening']['city'] != 48) {
|
||||||
$con = $this->MiconwareSession->getOpeningCondition();
|
$con['DreamjobJobOpening.city_id'] = $this->request->data['DreamjobJobOpening']['city'];
|
||||||
|
}
|
||||||
|
if (!empty($this->request->data['DreamjobJobOpening']['postcode']))
|
||||||
|
$con['DreamjobJobOpening.postcode LIKE'] = '%' . $this->request->data['DreamjobJobOpening']['postcode'] . '%';
|
||||||
|
|
||||||
if(!empty($this->request->data['DreamjobJobOpening']['branch_id']))
|
if (!empty($this->request->data['DreamjobJobOpening']['title']))
|
||||||
$con['DreamjobJobOpening.graducation_id']=$this->request->data['DreamjobJobOpening']['branch_id'];
|
$con['DreamjobJobOpening.title LIKE'] = '%' . $this->request->data['DreamjobJobOpening']['title'] . '%';
|
||||||
|
|
||||||
if(!empty($this->request->data['DreamjobJobOpening']['graducation_id']))
|
|
||||||
$con['DreamjobJobOpening.graducation_id']=$this->request->data['DreamjobJobOpening']['graducation_id'];
|
|
||||||
|
|
||||||
if(!empty($this->request->data['DreamjobJobOpening']['kindofjob_id']))
|
|
||||||
$con['DreamjobJobOpening.kindofjob_id']=$this->request->data['DreamjobJobOpening']['kindofjob_id'];
|
|
||||||
|
|
||||||
if(!empty($this->request->data['DreamjobJobOpening']['city']) and $this->request->data['DreamjobJobOpening']['city'] != 48){
|
|
||||||
$con['DreamjobJobOpening.city_id']=$this->request->data['DreamjobJobOpening']['city'];
|
|
||||||
}
|
|
||||||
if(!empty($this->request->data['DreamjobJobOpening']['postcode']))
|
|
||||||
$con['DreamjobJobOpening.postcode LIKE'] = '%'.$this->request->data['DreamjobJobOpening']['postcode'].'%';
|
|
||||||
|
|
||||||
if(!empty($this->request->data['DreamjobJobOpening']['title']))
|
|
||||||
$con['DreamjobJobOpening.title LIKE'] = '%'.$this->request->data['DreamjobJobOpening']['title'].'%';
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$openings = $this->DreamjobJobOpening->find('all',array('conditions' => $con));
|
$openings = $this->DreamjobJobOpening->find('all', array('conditions' => $con));
|
||||||
$this->set("branches",$this->DreamjobListBranch->find('list'));
|
$this->set("branches", $this->DreamjobListBranch->find('list'));
|
||||||
$this->set("cities",$this->DreamjobListCity->find('list'));
|
$this->set("cities", $this->DreamjobListCity->find('list'));
|
||||||
$this->set("graducations",$this->DreamjobListGraducation->find('list'));
|
$this->set("graducations", $this->DreamjobListGraducation->find('list'));
|
||||||
$this->set("kindofjobs",$this->DreamjobListKindofjob->find('list'));
|
$this->set("kindofjobs", $this->DreamjobListKindofjob->find('list'));
|
||||||
|
|
||||||
$this->set("openings",$openings);
|
$this->set("openings", $openings);
|
||||||
$this->render('/Search/opening');
|
$this->render('/Search/opening');
|
||||||
|
}
|
||||||
|
|
||||||
}
|
public function company() {
|
||||||
public function company() {
|
$this->MiconwareSession->init($this);
|
||||||
$this->MiconwareSession->init($this);
|
|
||||||
|
|
||||||
$this->MiconwareSession->initWeb($this);
|
$this->MiconwareSession->initWeb($this);
|
||||||
|
|
||||||
$con=array();
|
$con = array();
|
||||||
if(!empty($this->request->data['DreamjobCompany']['branch_id']))
|
if (!empty($this->request->data['DreamjobCompany']['branch_id']))
|
||||||
$con['DreamjobCompany.branch_id']=$this->request->data['DreamjobCompany']['branch_id'];
|
$con['DreamjobCompany.branch_id'] = $this->request->data['DreamjobCompany']['branch_id'];
|
||||||
|
|
||||||
if(!empty($this->request->data['DreamjobUser']['city']) and $this->request->data['DreamjobUser']['city'] != 48){
|
if (!empty($this->request->data['DreamjobUser']['city']) and $this->request->data['DreamjobUser']['city'] != 48) {
|
||||||
$con['DreamjobUser.city_id']=$this->request->data['DreamjobUser']['city'];
|
$con['DreamjobUser.city_id'] = $this->request->data['DreamjobUser']['city'];
|
||||||
}
|
}
|
||||||
if(!empty($this->request->data['AppUser']['nickname']))
|
if (!empty($this->request->data['AppUser']['nickname']))
|
||||||
$con['AppUser.nickname LIKE'] = '%'.$this->request->data['AppUser']['nickname'].'%';
|
$con['AppUser.nickname LIKE'] = '%' . $this->request->data['AppUser']['nickname'] . '%';
|
||||||
|
|
||||||
$companies = $this->DreamjobCompany->find('all',array('conditions' => $con));
|
$companies = $this->DreamjobCompany->find('all', array('conditions' => $con));
|
||||||
|
|
||||||
$this->set("branches",$this->DreamjobListBranch->find('list'));
|
$this->set("branches", $this->DreamjobListBranch->find('list'));
|
||||||
$this->set("cities",$this->DreamjobListCity->find('list'));
|
$this->set("cities", $this->DreamjobListCity->find('list'));
|
||||||
|
|
||||||
$this->set("companies",$companies);
|
$this->set("companies", $companies);
|
||||||
$this->render('/Search/company');
|
$this->render('/Search/company');
|
||||||
|
}
|
||||||
|
|
||||||
}
|
public function auto() {
|
||||||
|
$this->MiconwareSession->init($this);
|
||||||
|
|
||||||
public function auto() {
|
$this->MiconwareSession->initWeb($this);
|
||||||
$this->MiconwareSession->init($this);
|
$profil = $this->MiconwareSession->getWorker();
|
||||||
|
if (!empty($profil) and count($profil) > 0) {
|
||||||
$this->MiconwareSession->initWeb($this);
|
$con = $this->MiconwareSession->getOpeningCondition();
|
||||||
$profil = $this->MiconwareSession->getWorker();
|
|
||||||
if(!empty($profil) and count($profil) > 0){
|
|
||||||
$con = $this->MiconwareSession->getOpeningCondition();
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$openings = $this->DreamjobJobOpening->find('all',array('conditions' => $con));
|
$openings = $this->DreamjobJobOpening->find('all', array('conditions' => $con));
|
||||||
$this->set("openings",$openings);
|
$this->set("openings", $openings);
|
||||||
$this->render('/Search/auto');
|
$this->render('/Search/auto');
|
||||||
}else{
|
} else {
|
||||||
$this->set('error', 'dreamjob.error.noPermision');
|
$this->set('error', 'dreamjob.error.noPermision');
|
||||||
$this->render('/Home/error');
|
$this->render('/Home/error');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function worker(){
|
public function worker() {
|
||||||
$this->MiconwareSession->init($this);
|
$this->MiconwareSession->init($this);
|
||||||
|
|
||||||
$this->MiconwareSession->initWeb($this);
|
$this->MiconwareSession->initWeb($this);
|
||||||
$profil = $this->MiconwareSession->getCompany();
|
$profil = $this->MiconwareSession->getCompany();
|
||||||
if(!empty($profil) and count($profil) > 0){
|
if (!empty($profil) and count($profil) > 0) {
|
||||||
//TODO iam
|
$con = array('DreamjobWorker.searchhidden' => false);
|
||||||
$workers = $this->DreamjobWorker->find('all',array('conditions' => array('DreamjobWorker.searchhidden'=>false)));
|
$con2 = array();
|
||||||
$this->set("workers",$workers);
|
|
||||||
$this->render('/Search/worker');
|
|
||||||
}else{
|
|
||||||
$this->set('error', 'dreamjob.error.noPermision');
|
|
||||||
$this->render('/Home/error');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (!empty($this->request->data['DreamjobISearch']['branch_id']))
|
||||||
|
$con2['DreamjobISearch.branch_id'] = $this->request->data['DreamjobISearch']['branch_id'];
|
||||||
|
|
||||||
public function education() {
|
if (!empty($this->request->data['DreamjobISearch']['job_id']))
|
||||||
$this->spezial('education');
|
$con2['DreamjobISearch.job_id'] = $this->request->data['DreamjobISearch']['job_id'];
|
||||||
|
|
||||||
}
|
if (!empty($this->request->data['DreamjobISearch']['kindofjob_id']))
|
||||||
public function academy() {
|
$con2['DreamjobISearch.kindofjob_id'] = $this->request->data['DreamjobISearch']['kindofjob_id'];
|
||||||
$this->spezial('academy');
|
|
||||||
|
|
||||||
}
|
if(count($con2)>0){
|
||||||
public function internship() {
|
$a = $this->DreamjobISearch->find('all',array('fields' => array('worker_id'),'recursive' => -1,'conditions' =>$con2));
|
||||||
$this->spezial('internship');
|
$c = array();
|
||||||
|
foreach ($a as $b)
|
||||||
|
$c[] = $b['DreamjobISearch']['worker_id'];
|
||||||
|
$con['DreamjobWorker.djaccount_ptr_id'] =$c;
|
||||||
|
}
|
||||||
|
var_dump($con);
|
||||||
|
$workers = $this->DreamjobWorker->find('all', array('conditions' => $con));
|
||||||
|
|
||||||
|
$this->set("workers", $workers);
|
||||||
|
$this->set("branches", $this->DreamjobListBranch->find('list'));
|
||||||
|
$this->set("jobs", $this->DreamjobListJob->find('list'));
|
||||||
|
$this->set("kindofjobs", $this->DreamjobListKindofjob->find('list'));
|
||||||
|
$this->render('/Search/worker');
|
||||||
|
}else {
|
||||||
|
$this->set('error', 'dreamjob.error.noPermision');
|
||||||
|
$this->render('/Home/error');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function education() {
|
||||||
|
$this->spezial('education');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function academy() {
|
||||||
|
$this->spezial('academy');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function internship() {
|
||||||
|
$this->spezial('internship');
|
||||||
|
}
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
?>
|
?>
|
||||||
<div class="box">
|
<div class="box">
|
||||||
<?php
|
<?php
|
||||||
|
@ -11,7 +11,7 @@
|
||||||
$a['novalidate'] = true;
|
$a['novalidate'] = true;
|
||||||
echo $this->Form->create('DreamjobWorker',$a);
|
echo $this->Form->create('DreamjobWorker',$a);
|
||||||
?>
|
?>
|
||||||
<h3><?=__('dreamjob.search.worker');?></h3>
|
<h3><?=__('dreamjob.search.worker');?></h3>
|
||||||
<?php
|
<?php
|
||||||
$a = $default_hForm['inputDefaults'];
|
$a = $default_hForm['inputDefaults'];
|
||||||
$a['between'] = false;
|
$a['between'] = false;
|
||||||
|
@ -19,23 +19,26 @@
|
||||||
$a['placeholder'] = __('dreamjob.search.worker.placeholder');
|
$a['placeholder'] = __('dreamjob.search.worker.placeholder');
|
||||||
echo $this->Form->input('DreamjobWorker.name',$a);
|
echo $this->Form->input('DreamjobWorker.name',$a);
|
||||||
?>
|
?>
|
||||||
<fieldset class="search">
|
<fieldset class="search">
|
||||||
<div class="form-group submit">
|
<?=$this->Form->input('DreamjobISearch.branch_id',array('label'=>__('dreamjob.branch'),'empty'=>__('dreamjob.chooseOne')));?>
|
||||||
<div>
|
<?=$this->Form->input('DreamjobISearch.job_id',array('label'=>__('dreamjob.job'),'empty'=>__('dreamjob.chooseOne')));?>
|
||||||
|
<?=$this->Form->input('DreamjobISearch.kindofjob_id',array('label'=>__('dreamjob.kindofjob'),'empty'=>__('dreamjob.chooseOne')));?>
|
||||||
|
<div class="form-group submit">
|
||||||
|
<div>
|
||||||
<?=$this->Form->submit(__('dreamjob.search'),array('class'=>'btn btn-primary'));?>
|
<?=$this->Form->submit(__('dreamjob.search'),array('class'=>'btn btn-primary'));?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<?php
|
<?php
|
||||||
echo $this->end();
|
echo $this->end();
|
||||||
?>
|
?>
|
||||||
</div>
|
</div>
|
||||||
<div class="box">
|
<div class="box">
|
||||||
<div class="openinggroup">
|
<div class="openinggroup">
|
||||||
<?php
|
<?php
|
||||||
foreach($workers as $worker){
|
foreach($workers as $worker){
|
||||||
echo $this->element('user_worker_item',array('profil' => $worker));
|
echo $this->element('user_worker_item',array('profil' => $worker));
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in New Issue