get_session(); $registry = $appbox->get_registry(); $user = $Core->getAuthenticatedUser(); if ( ! isset($parm)) { $request = http_request::getInstance(); $parm = $request->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 searchEngine_options(); $parm['bas'] = is_array($parm['bas']) ? $parm['bas'] : array_keys($user->ACL()->get_granted_base()); /* @var $user \User_Adapter */ if ($user->ACL()->has_right('modifyrecord')) { $options->set_business_fields(array()); $BF = array(); foreach ($user->ACL()->get_granted_base(array('canmodifrecord')) as $collection) { if (count($parm['bas']) === 0 || in_array($collection->get_base_id(), $parm['bas'])) { $BF[] = $collection->get_base_id(); } } $options->set_business_fields($BF); } else { $options->set_business_fields(array()); } $options->set_bases($parm['bas'], $user->ACL()); if ( ! is_array($parm['infield'])) $parm['infield'] = array(); foreach ($parm['infield'] as $offset => $value) { if (trim($value) === '') unset($parm['infield'][$offset]); } $options->set_fields($parm['infield']); if ( ! is_array($parm['status'])) $parm['status'] = array(); $options->set_status($parm['status']); $options->set_search_type($parm['search_type']); $options->set_record_type($parm['recordtype']); $options->set_min_date($parm['datemin']); $options->set_max_date($parm['datemax']); $options->set_date_fields(explode('|', $parm['datefield'])); $options->set_sort($parm['sort'], $parm['ord']); $options->set_use_stemming($parm['stemme']); if ($parm['ord'] === NULL) $parm['ord'] = PHRASEA_ORDER_DESC; else $parm['ord'] = (int) $parm['ord']; $form = serialize($options); $perPage = $mod_xy; $search_engine = new searchEngine_adapter($registry); $search_engine->set_options($options); if ($parm['pag'] < 1) { $search_engine->set_is_first_page(true); $search_engine->reset_cache(); $parm['pag'] = 1; } $result = $search_engine->query_per_page($parm['qry'], (int) $parm["pag"], $perPage); $proposals = $search_engine->is_first_page() ? $result->get_propositions() : false; $npages = $result->get_total_pages(); $page = $result->get_current_page(); $ACL = $user->ACL(); if ($registry->get('GV_thesaurus')) { ?> $("#history").empty().append("' . str_replace('"', '\"', $history) . '")'; $nbanswers = $result->get_count_available_results(); $longueur = strlen($parm['qry']); $qrys = '
' . _('client::answers: rapport de questions par bases') . '
'; foreach ($qrySbas as $sbas => $qryBas) $qrys .= '
' . phrasea::sbas_names($sbas) . '
' . $qryBas . '
'; $txt = "" . substr($parm['qry'], 0, 36) . ($longueur > 36 ? "..." : "") . "" . sprintf(_('client::answers: %d reponses'), (int) $nbanswers) . "  "; ?> get_total_pages(); $pages = ''; $ecart = 3; $max = (2 * $ecart) + 3; if ($npages > $max) { for ($p = 1; $p <= $npages; $p ++ ) { if ($p == $page) $pages .= '' . ($p) . ''; elseif (( $p >= ($page - $ecart) ) && ( ($p - 1) <= ($page + $ecart) )) $pages .= '' . ($p) . ''; elseif (($page < ($ecart + 2)) && ($p < ($max - $ecart + 2) )) // si je suis dans les premieres pages ... $pages .= '' . ($p) . ''; elseif (($page >= ($npages - $ecart - 2)) && ($p >= ($npages - (2 * $ecart) - 2) )) // si je suis dans les dernieres pages ... $pages .= '' . ($p) . ''; elseif ($p == ($npages - 1)) // c"est la derniere $pages .= '...' . ($p) . ''; elseif ($p == 0) // c"est la premiere $pages .= '' . ($p) . '...'; if (($p == $page) || ( ( $p >= ($page - $ecart) ) && ( $p <= ($page + $ecart) )) || ( ($page < ($ecart + 2)) && ($p < ($max - $ecart + 2) ) ) || ( ($page >= ($npages - $ecart - 2)) && ($p >= ($npages - (2 * $ecart) - 2) ) ) || ( $p == 0) ) $pages .= ' - '; } } else { for ($p = 1; $p <= $npages; $p ++ ) { if ($p == $page) $pages .= '' . ($p) . ''; else $pages .= '' . ($p) . ''; if ($p < $npages) $pages .= ' - '; } } $string2 = $pages . ''; ?> get_datas(); $i = 0; if (count($result->get_datas()) > 0) { ?>
getTwig(); foreach ($result->get_datas() as $record) { /* @var $record record_adapter */ $base_id = $record->get_base_id(); $sbas_id = $record->get_sbas_id(); $thumbnail = $record->get_thumbnail(); $docType = $record->get_type(); $title = $record->get_title(); try { $record->get_subdef('document'); $light_info = $twig->render('common/technical_datas.twig', array('record' => $record)); } catch (\Exception $e) { $light_info = ''; } $caption = $twig->render('common/caption.html', array('view' => 'answer', 'record' => $record)); if ($i == 0) { ?>

'; $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; } ?>
get_formated_duration(); if ($duration != '') echo '
' . $duration . '
'; } if ($isAudio) { $duration = $record->get_formated_duration(); if ($duration != '') echo '
' . $duration . '
'; } $onclick = ""; if ($record->is_grouping()) { $onclick = 'openPreview(\'REG\',0,\'' . $sbas_id . '_' . $record->get_record_id() . '\');'; } else { $onclick = 'openPreview(\'RESULT\',' . $record->get_number() . ');'; } if ($mod_col == '1') $pic_roll = '/prod/tooltip/preview/' . $record->get_sbas_id() . '/' . $record->get_record_id() . '/'; else $pic_roll = '/prod/tooltip/caption/' . $record->get_sbas_id() . '/' . $record->get_record_id() . '/answer/'; $pic_roll = str_replace(array('&', '"'), array('&', '"'), $pic_roll); ?>
' . collection::getLogo($record->get_base_id()); $minilogos .= '
'; $sbas_id = $record->get_sbas_id(); echo $minilogos; if ( $ACL->has_right_on_base($record->get_base_id(), 'candwnldpreview') || $ACL->has_right_on_base($record->get_base_id(), 'candwnldhd') || $ACL->has_right_on_base($record->get_base_id(), 'cancmd') ) { ?>
has_right_on_base($record->get_base_id(), "canputinalbum")) { ?>
get_preview()->is_physically_present()) { ?>
 
' . $light_info) ?>
'; // $b = true; // foreach ($proposals["BASES"] as $zbase) // { // if ((int) (count($proposals["BASES"]) > 1) && count($zbase["TERMS"]) > 0) // { // $style = $b ? 'style="margin-top:0px;"' : ''; // $b = false; // $html .= "

" . sprintf(_('reponses::propositions pour la base %s'), htmlentities($zbase["NAME"])) . "

"; // } // $t = true; // foreach ($zbase["TERMS"] as $path => $props) // { // $style = $t ? 'style="margin-top:0px;"' : ''; // $t = false; // $html .= "

" . sprintf(_('reponses::propositions pour le terme %s'), htmlentities($props["TERM"])) . "

"; // $html .= $props["HTML"]; // } // } // $html .= ''; // // return($html); //}