get_parms("mod", "bas" , "pag" , "qry", "search_type", "recordtype" , "qryAdv", 'opAdv', 'status', 'datemin', 'datemax' , 'dateminfield', 'datemaxfield' , 'datefield' , 'sort' , 'stemme' , 'infield' , "nba" , "regroup" // si rech par doc, regroup ,ou pizza , "ord" ); } $qry = ''; if (trim($parm['qry']) != '') { $qry .= trim($parm['qry']); } if (count($parm['opAdv']) > 0 && count($parm['opAdv']) == count($parm['qryAdv'])) { foreach ($parm['opAdv'] as $opId => $op) { if (trim($parm['qryAdv'][$opId]) != '') { if ($qry == trim($parm['qry'])) $qry = '(' . trim($parm['qry']) . ')'; $qry .= ' ' . $op . ' (' . trim($parm['qryAdv'][$opId]) . ')'; } } } if ($qry == '') $qry = 'all'; $parm['qry'] = $qry; $qrySbas = array(); if (is_null($parm['bas'])) { echo 'vous devez selectionner des collections dans lesquelles chercher'; return; } if ( ! $parm["mod"]) $parm["mod"] = "3X6"; $mod = explode("X", $parm["mod"]); if (count($mod) == 1) { $mod_row = (int) ($mod[0]); $mod_col = 1; } else { $mod_row = (int) ($mod[0]); $mod_col = (int) ($mod[1]); } $mod_xy = $mod_col * $mod_row; $tbases = array(); $options = new SearchEngineOptions(); $options->disallowBusinessFields(); $bas = $app['phraseanet.user']->ACL()->get_granted_base(); if (is_array($parm['bas'])) { $bas = array_map(function($base_id) use ($app) { return \collection::get_from_base_id($app, $base_id); }, $parm['bas']); } $databoxes = array(); foreach ($bas as $collection) { if (!isset($databoxes[$collection->get_sbas_id()])) { $databoxes[$collection->get_sbas_id()] = $collection->get_databox(); } } if ($app['phraseanet.user']->ACL()->has_right('modifyrecord')) { $BF = array_filter($bas, function($collection) use ($app) { return $app['phraseanet.user']->ACL()->has_right_on_base($collection->get_base_id(), 'canmodifrecord'); }); $options->allowBusinessFieldsOn($BF); } $status = is_array($parm['status']) ? $parm['status'] : array(); $fields = is_array($parm['infield']) ? $parm['infield'] : array(); $databoxFields = array(); foreach ($databoxes as $databox) { foreach ($fields as $field) { try { $databoxField = $databox->get_meta_structure()->get_element_by_name($field); } catch (\Exception $e) { continue; } if ($databoxField) { $databoxFields[] = $databoxField; } } } $options->setFields($databoxFields); $options->setStatus($status); $options->onCollections($bas); $options->setSearchType($parm['search_type']); $options->setRecordType($parm['recordtype']); $min_date = $max_date = null; if ($parm['datemin']) { $min_date = \DateTime::createFromFormat('Y/m/d H:i:s', $parm['datemin'] . ' 00:00:00'); } if ($parm['datemax']) { $max_date = \DateTime::createFromFormat('Y/m/d H:i:s', $parm['datemax'] . ' 23:59:59'); } $options->setMinDate($min_date); $options->setMaxDate($max_date); $databoxDateFields = array(); foreach ($databoxes as $databox) { foreach (explode('|', $parm['datefield']) as $field) { try { $databoxField = $databox->get_meta_structure()->get_element_by_name($field); } catch (\Exception $e) { continue; } if ($databoxField) { $databoxDateFields[] = $databoxField; } } } if ($parm['ord'] === NULL) $parm['ord'] = \searchEngine_options::SORT_MODE_DESC; else $parm['ord'] = (int) $parm['ord']; $options->setDateFields($databoxDateFields); $options->setSort($parm['sort'], $parm['ord']); $options->useStemming($parm['stemme']); $form = $options->serialize(); $perPage = $mod_xy; $app['phraseanet.SE']->set_options($options); $firstPage = $parm['pag'] < 1; if ($parm['pag'] < 1) { $app['phraseanet.SE']->resetCache(); $parm['pag'] = 1; } $result = $app['phraseanet.SE']->query($parm['qry'], (((int) $parm["pag"] - 1) * $perPage), $perPage); $proposals = $firstPage ? $result->propositions() : false; $npages = $result->total(); $page = $result->currentPage($perPage); $ACL = $app['phraseanet.user']->ACL(); if ($app['phraseanet.registry']->get('GV_thesaurus')) { ?> get_id()); echo ''; $nbanswers = $result->available(); $longueur = strlen($parm['qry']); $qrys = '
';
$status .= $record->get_status_icons();
$status .= ' ';
echo $status;
$isVideo = ($docType == 'video');
$isAudio = ($docType == 'audio');
$isImage = ($docType == 'image');
$isDocument = ($docType == 'document');
$sd = $record->get_subdefs();
$isImage = false;
$isDocument = false;
if ( ! $isVideo && ! $isAudio) {
$isImage = true;
}
?>
| ' . $light_info) ?> |