public function search($typeAlias = null)
{
$this->Prg->commonProcess();
$Node = $this->{$this->modelClass};
$this->paginate = array('published', 'roleId' => $this->Croogo->roleId());
$q = null;
if (isset($this->request->query['q'])) {
$q = $this->request->query['q'];
$this->paginate['q'] = $q;
}
if ($typeAlias) {
$type = $Node->Taxonomy->Vocabulary->Type->findByAlias($typeAlias);
if (!isset($type['Type']['id'])) {
$this->Session->setFlash(__d('croogo', 'Invalid content type.'), 'flash', array('class' => 'error'));
return $this->redirect('/');
}
if (isset($type['Params']['nodes_per_page'])) {
$this->paginate['limit'] = $type['Params']['nodes_per_page'];
}
$this->paginate['typeAlias'] = $typeAlias;
}
$criteria = $Node->parseCriteria($this->Prg->parsedParams());
$nodes = $this->paginate($criteria);
$this->set(compact('q', 'nodes'));
if ($typeAlias) {
$this->Croogo->viewFallback(array('search_' . $typeAlias));
}
}