protected function _findPublished($state, $query, $results = array())
{
if ($state == 'after') {
return $results;
}
$q = isset($query['q']) ? $query['q'] : null;
$like = empty($q) ? '%' : '%' . $q . '%';
$roleId = isset($query['roleId']) ? $query['roleId'] : null;
$typeAlias = isset($query['typeAlias']) ? $query['typeAlias'] : null;
$visibilityRolesField = $this->escapeField('visibility_roles');
$nodeOrConditions = array();
if ($like) {
$nodeOrConditions = array_merge($nodeOrConditions, array($this->escapeField('title') . ' LIKE' => $like, $this->escapeField('excerpt') . ' LIKE' => $like, $this->escapeField('body') . ' LIKE' => $like, $this->escapeField('terms') . ' LIKE' => $like));
}
$defaults = array('order' => $this->escapeField('created') . ' DESC', 'limit' => Configure::read('Reading.nodes_per_page'), 'conditions' => array($this->escapeField('status') => $this->status(), 'AND' => array(array('OR' => $nodeOrConditions), array('OR' => array($visibilityRolesField => '', $visibilityRolesField . ' LIKE' => '%"' . $roleId . '"%')))), 'contain' => array('Meta', 'Taxonomy' => array('Term', 'Vocabulary'), 'User'));
if (isset($typeAlias)) {
$defaults['conditions'][$this->escapeField('type')] = $typeAlias;
}
if (empty($query['conditions'])) {
$query['conditions'] = array();
}
$query = Hash::merge($defaults, $query);
return $query;
}