Inserita funzione di ricerca full text

This commit is contained in:
Riccardo Di Dato
2016-03-11 13:59:00 +01:00
parent 352f1d1c7f
commit e1c758a94d
3 changed files with 58 additions and 2 deletions
+1
View File
@@ -161,6 +161,7 @@ class PipelineHelper {
return $rval;
}
}
?>
+56
View File
@@ -246,6 +246,62 @@ class GenericDao{
// var_dump($resultArray);
return $rval;
}
/**
* Ritorna la lista dei notizia model ordinati per pertinenza
* @param string $searchStr
*/
public function search($modelClass, $searchWord, array $filter = array(), array $options = array()){
if (!is_null($modelClass)){
if (!is_subclass_of($modelClass, "DaoSaveable", true)){
throw new CoreException("Invalid return class passed to GenericDao::query ($modelClass)");
}
}
$collectionName = $modelClass::getCollectionName();
$collection = $this->database->$collectionName;
$useFilter = $filter;
$useFilter['$text'] = array('$search'=>$searchWord);
if (!array_key_exists("deleted",$useFilter)){
$useFilter["deleted"] = false;
}
if (array_key_exists("id",$useFilter)){
$useFilter["_id"] = $useFilter["id"];
unset($useFilter["id"]);
}
if (array_key_exists("_id",$useFilter) && is_string($useFilter["_id"])){
$useFilter["_id"] = new MongoId($useFilter["_id"]);
}
$cursor = $collection->find($useFilter,array('score' => array('$meta' => 'textScore')));
$sortArray = array('score' => array('$meta' => 'textScore'));
if (array_key_exists("sort",$options)){
$sortArray = array_merge($sortArray,$options["sort"]);
}
$cursor->sort($sortArray);
if (array_key_exists("skip",$options)){
$cursor->skip($options["skip"]);
}
if (array_key_exists("limit",$options)){
$cursor->limit($options["limit"]);
}
$rval = array();
foreach ($cursor as $element){
unset($element->score);
$rval[] = $modelClass::buildFromSaveableObj($element);
}
return $rval;
}
}
?>
@@ -9,8 +9,7 @@ class MediaYoutube extends MediaRenderer{
public function asText(array $opt = array()){
// return $this->link;
return '<iframe width="420" height="315"
src="'.$this->getVideoLink().'" frameborder="0"></iframe>';
return '<iframe src="'.$this->getVideoLink().'" frameborder="0"></iframe>';
// return '<iframe width="560" height="315" src="https://www.youtube.com/embed/4qkv-iy_MaQ" frameborder="0" allowfullscreen></iframe>';
}