All pastes #746140 Raw Edit

Stuff

public php v1 · immutable
·published 2007-10-22 23:50 UTC
rendered paste body
	function search() {		uses('sanitize');		uses('set');		$this->allowed = true;		$this->set('states',$this->State->generateList());		$this->set('types',$this->Course->Type->generateList());		if(empty($this->data)) {			$this->render();		} else {			//cuida das palavras no assunto...			$words = Sanitize::paranoid($this->data['Search']['subject'], array(' '));			$wordsarray = explode(" ",$words);			array_unshift($wordsarray,$words);			$wordsarray = array_unique($wordsarray);						//cuida de procurar por um local específico			if(!empty($this->data['Search']['city'])) {				$this->Place->unbindModel(array('hasAndBelongsToMany' => array('Course')));				$placevals = $this->Place->findAll(array('Place.city' => array($this->data['Search']['city'])));				$places = Set::extract($placevals, '{n}.Place.id');			}						//cuida de procurar por alguma coisa nos módulos e nos dados do curso de acordo com as palavras			foreach($wordsarray as $word) {				$mod_conditions['OR'][] = "Module.body LIKE '%{$word}%'";				$course_conditions['OR'][] = "Course.title LIKE '%{$word}%'";			}			$modvals = $this->Module->findAll($mod_conditions);			$mods = Set::extract($modvals, '{n}.Module.id');			$coursevals = $this->Course->findAll($course_conditions);			$courses = Set::extract($coursevals, '{n}.Course.id');			//prepara a busca no modelo			$this->Course->recursive = 2;			$conditions = array();			(!empty($this->data['Search']['state'])) ? $conditions['Provider.state_id'] = $this->data['Search']['state'] : "";			(!empty($this->data['Search']['type'])) ? $conditions['Course.type_id'] = $this->data['Search']['type'] : "";			(!empty($placevals)) ? $conditions['CoursesPlace.place_id'] = $places : "";			(!empty($coursevals)) ? $conditions['Course.id'] = $courses : "";			(!empty($modvals)) ? $conditions['Module.id'] = $mods : "";			//$conditions['Course.moderated'] = 1;						//envia os resultados			$this->Course->bindModel(array('hasOne'=>array('CoursesPlace'=>array())));			$this->Course->bindModel(array('hasOne' => array('Module' => array())));			$array = $this->Course->findAll($conditions,'DISTINCT Course.id','Course.rank DESC');			$array = Set::extract($array, '{n}.Course.id');			$this->set('results', $this->Course->findAll(array('Course.id' => $array)));						//mostra os resultados			$this->render();		}	}