mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-12 20:43:25 +00:00
234 lines
6.2 KiB
PHP
234 lines
6.2 KiB
PHP
<?php
|
|
require_once dirname( __FILE__ ) . "/../../lib/bootstrap.php";
|
|
$session = session::getInstance();
|
|
|
|
require_once( GV_RootPath . 'lib/unicode/lownodiacritics_utf8.php' );
|
|
|
|
$request = httpRequest::getInstance();
|
|
|
|
if(!isset($parm))
|
|
$parm = $request->get_parms("bas", "qry", "pag"
|
|
, "sel", "ord"
|
|
, "search_type", "recordtype", "status", "fields", "datemin", "datemax", "datefield");
|
|
|
|
|
|
if(isset($session->usr_id) && isset($session->ses_id))
|
|
{
|
|
$ses_id = $session->ses_id;
|
|
$usr_id = $session->usr_id;
|
|
if(!($ph_session = phrasea_open_session((int)$ses_id, $usr_id)))
|
|
{
|
|
header("Location: /login/?err=no-session");
|
|
exit();
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$request = httpRequest::getInstance();
|
|
if($request->is_ajax())
|
|
{
|
|
echo _('Votre session est expiree, veuillez vous reconnecter');
|
|
}
|
|
else
|
|
{
|
|
header("Location: /login/");
|
|
}
|
|
exit();
|
|
}
|
|
|
|
if(!($ph_session = phrasea_open_session($ses_id,$usr_id)))
|
|
{
|
|
die();
|
|
}
|
|
|
|
if($parm["ord"]===NULL)
|
|
$parm["ord"] = PHRASEA_ORDER_DESC;
|
|
else
|
|
$parm["ord"] = (int)$parm["ord"];
|
|
|
|
$parm['sel'] = explode(';',$parm['sel']);
|
|
|
|
if(!$parm['bas'])
|
|
$parm['bas'] = array();
|
|
|
|
if(!$parm["pag"]===NULL)
|
|
$parm["pag"] = "0";
|
|
|
|
if(trim($parm["qry"])==='')
|
|
$parm["qry"] = "all";
|
|
|
|
$mod = user::getPrefs('view');
|
|
|
|
$options = array(
|
|
'type' => $parm['search_type'],
|
|
'bases' => $parm['bas'],
|
|
'champs' => $parm['fields'],
|
|
'status' => $parm['status'],
|
|
'date' => array(
|
|
'minbound'=>$parm['datemin'],
|
|
'maxbound'=>$parm['datemax'],
|
|
'field'=>explode('|',$parm['datefield'])
|
|
)
|
|
);
|
|
|
|
if($parm['recordtype'] != '' && in_array($parm['recordtype'],array('image','video','audio','document','flash')))
|
|
{
|
|
$parm['qry'] .= ' AND recordtype='.$parm['recordtype'];
|
|
}
|
|
|
|
|
|
$query = new query($options);
|
|
$result = $query->results($parm['qry'], $parm["pag"]);//$parm['search_type'],
|
|
|
|
$proposals = trim($parm['pag']) === '' ? $query->proposals() : false;
|
|
|
|
|
|
$npages = $result['pages'];
|
|
$page = $result['current_page'];
|
|
$string ='';
|
|
|
|
if($npages>1)
|
|
{
|
|
|
|
$d2top = ($npages - $page);
|
|
$d2bottom = $page;
|
|
|
|
if(min($d2top,$d2bottom) < 4)
|
|
{
|
|
if($d2bottom < 4)
|
|
{
|
|
for($i=1;($i<=4 && (($i<=$npages)===true));$i++)
|
|
{
|
|
if($i == $page)
|
|
$string .= '<input onkeypress="if(event.keyCode == 13 && !isNaN(parseInt(this.value)))gotopage(parseInt(this.value))" type="text" value="'.$i.'" size="'.(strlen((string)$i)).'" />';
|
|
else
|
|
$string .= "<a onclick='gotopage(".$i.");return false;'>".$i."</a>";
|
|
}
|
|
if($npages >4)
|
|
$string .= "<a onclick='gotopage(".($npages).");return false;'>>></a>";
|
|
}
|
|
else
|
|
{
|
|
$start = $npages-4;
|
|
if(($start)>0)
|
|
$string .= "<a onclick='gotopage(1);return false;'><<</a>";
|
|
else
|
|
$start = 1;
|
|
for($i=($start);$i<=$npages;$i++)
|
|
{
|
|
if($i == $page)
|
|
$string .= '<input onkeypress="if(event.keyCode == 13 && !isNaN(parseInt(this.value)))gotopage(parseInt(this.value))" type="text" value="'.$i.'" size="'.(strlen((string)$i)).'" />';
|
|
else
|
|
$string .= "<a onclick='gotopage(".$i.");return false;'>".$i."</a>";
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$string .= "<a onclick='gotopage(1);return false;'><<</a>";
|
|
|
|
for($i=($page-2);$i<=($page+2);$i++)
|
|
{
|
|
if($i == $page)
|
|
$string .= '<input onkeypress="if(event.keyCode == 13 && !isNaN(parseInt(this.value)))gotopage(parseInt(this.value))" type="text" value="'.$i.'" size="'.(strlen((string)$i)).'" />';
|
|
else
|
|
$string .= "<a onclick='gotopage(".$i.");return false;'>".$i."</a>";
|
|
}
|
|
|
|
$string .= "<a onclick='gotopage(".($npages).");return false;'>>></a>";
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
$string .= '<div style="display:none;"><div id="NEXT_PAGE"></div><div id="PREV_PAGE"></div></div>';
|
|
|
|
|
|
$explain = $result['explain'];
|
|
|
|
$infoResult = ' | <a href="#" class="infoDialog" infos="'.str_replace('"','"',$explain).'">'.sprintf(_('reponses:: %d reponses'),$session->prod['query']['nba']).'</a> | '.sprintf(_('reponses:: %s documents selectionnes'),'<span id="nbrecsel"></span>');
|
|
|
|
echo "<script type='text/javascript'>$('#tool_results').empty().append('".str_replace("'","\'",$infoResult)."');</script>";
|
|
echo "<script type='text/javascript'>$('#tool_navigate').empty().append('".str_replace("'","\'",$string)."');</script>";
|
|
|
|
$rsScreen = $result['result'];
|
|
|
|
if(count($rsScreen)>0)
|
|
{
|
|
if($mod == 'thumbs')
|
|
require("answergrid.php");
|
|
else
|
|
require("answerlist.php");
|
|
}
|
|
else
|
|
{
|
|
echo '<div style="float:left;">';
|
|
phrasea::getHome('HELP','prod');
|
|
echo '</div>';
|
|
}
|
|
|
|
|
|
function proposalsToHTML(&$proposals)
|
|
{
|
|
$html = "<div class=\"proposals\">";
|
|
|
|
$nbasesWprop = count($proposals["BASES"]);
|
|
|
|
$b = 0;
|
|
foreach($proposals["BASES"] as $zbase)
|
|
{
|
|
if((int)(count($zbase["TERMS"]) > 0))
|
|
{
|
|
if(($nbasesWprop > 1))
|
|
{
|
|
$style = $b==0 ? "style=\"margin-top:0px;\"":"";
|
|
$html .= "<h1".$style.">". sprintf(_('reponses::propositions pour la base %s'),$zbase["NAME"])."</h1>";
|
|
}
|
|
$t = 0;
|
|
foreach($zbase["TERMS"] as $path=>$props)
|
|
{
|
|
$style = $t==0 ? "style=\"margin-top:0px;\"":"";
|
|
$html .= "<h2 $style>" . sprintf(_('reponses::propositions pour le terme %s'), $props["TERM"]) . "</h2>";
|
|
$html .= $props["HTML"];
|
|
$t++;
|
|
}
|
|
$b++;
|
|
}
|
|
}
|
|
$html .= "</div>";
|
|
return($html);
|
|
}
|
|
?>
|
|
<script type="text/javascript">
|
|
$(document).ready(function(){
|
|
<?php
|
|
if($proposals)
|
|
{
|
|
?>
|
|
$('#proposals').empty().append("<?php echo $proposals?>");
|
|
$('.activeproposals').show();
|
|
<?php
|
|
}
|
|
elseif(trim($parm['pag']) === '')
|
|
{
|
|
?>
|
|
$('#proposals').empty();
|
|
<?php
|
|
}
|
|
?>
|
|
<?php if($page>1 && $session->prod['query']['nba']>0){ ?>
|
|
$("#PREV_PAGE").bind('click',function(){gotopage(<?php echo ($page-1)?>)});
|
|
<?php }else{?>
|
|
$("#PREV_PAGE").unbind('click');
|
|
<?php }
|
|
if($page<$npages && $session->prod['query']['nba']>0){ ?>
|
|
$("#NEXT_PAGE").bind('click',function(){gotopage(<?php echo ($page+1)?>)});
|
|
<?php }else{?>
|
|
$("#NEXT_PAGE").unbind('click');
|
|
<?php }?>
|
|
p4.tot = <?php echo ((is_int((int)$session->prod['query']['nba']) && (int)$session->prod['query']['nba']>=0)?(int)$session->prod['query']['nba']:0)?>;
|
|
});
|
|
</script>
|
|
|