<?php // manage the dynamical additional information in the left panel. // include('parameters_details.php'); $gexf= str_replace('"','',$_GET["gexf"]); $max_item_displayed=6; $type = $_GET["type"]; $TITLE="ISITITLE"; $query = str_replace( '__and__', '&', $_GET["query"] ); $elems = json_decode($query); $table = ""; $column = ""; $id=""; $twjs="API_CNRS/"; // submod path of TinaWebJS if($type=="semantic"){ $table = "ISItermsListV1"; $column = "data"; $id = "id"; $restriction=''; $factor=10; } $restriction=''; $factor=10; $sql=""; if (count($elems)==1){// un seul mot est sélectionné, on compte les mots multiples $sql = 'SELECT count(*),'.$id.' FROM '.$table.' where ('; foreach($elems as $elem){ $sql.=' '.$column.'="'.$elem.'" OR '; } #$querynotparsed=$sql;##### $sql = substr($sql, 0, -3); $sql = str_replace( ' & ', '" OR '.$column.'="', $sql ); $sql.=')'.$restriction.' GROUP BY '.$id.' ORDER BY count('.$id.') DESC LIMIT 1000'; }else{// on compte une seule fois un mot dans un article $factor=ceil(count($elems)/5); //les scores sont moins haut $sql=''; foreach($elems as $elem){ $sql.=' '.$column.'="'.$elem.'" OR '; } $sql=substr($sql, 0, -3); $sql='SELECT count(*),id,data FROM (SELECT * FROM '.$table.' where ('.$sql.')'.$restriction.' group by id,data) GROUP BY '.$id.' ORDER BY count('.$id.') DESC LIMIT 1000 COLLATE NOCASE'; } // echo $sql."<br>"; $base = new PDO("sqlite:../data/terrorism/data.db"); $wos_ids = array(); $sum=0; //The final query! // array of all relevant documents with score foreach ($base->query($sql) as $row) { // on pondère le score par le nombre de termes mentionnés par l'article //$num_rows = $result->numRows(); $wos_ids[$row[$id]] = $row["count(*)"]; $sum = $row["count(*)"] +$sum; } // /// nombre de document associés $related $total_count=0; $count_max=500; $number_doc=count($wos_ids); $count=0; $all_terms_from_selected_projects=array();// list of terms for the top 6 project selected // to filter under some conditions $to_display=true; $count=0; foreach ($wos_ids as $id => $score) { if ($total_count<$count_max) { // retrieve publication year if ($to_display){ $total_count+=1; if ($count<=$max_item_displayed){ $count+=1; $sql = 'SELECT data FROM ISITITLE WHERE id='.$id.' group by data'; foreach ($base->query($sql) as $row) { $external_link="<a href=http://google.com/webhp?#q=".urlencode('"'.utf8_decode($row['data']).'"')." target=blank>".' <img width=15px src="twlibs/img/google.png"></a>'; $output.="<li title='".$score."'>"; $output.=$external_link.imagestar($score,$factor,$twjs).' '; $output.='<a href="JavaScript:newPopup(\''.$twjs.'default_doc_details2.php?gexf='.urlencode($gexf).'&query='.urlencode($query).'&type='.urlencode($_GET["type"]).'&id='.$id.' \')">'.htmlentities($row['data'], ENT_QUOTES, "UTF-8")." </a> "; // $output.='<a>'.htmlentities($row['data'], ENT_QUOTES, "UTF-8")." </a> "; } $sql = 'SELECT data FROM ISIDOI WHERE id='.$id.' group by data'; foreach ($base->query($sql) as $row) { $output.=$external_link.imagestar($score,$factor,$twjs).' '; $output.='<a href="JavaScript:newPopup(\''.$twjs.'default_doc_details2.php?gexf='.urlencode($gexf).'&query='.urlencode($query).'&type='.urlencode($_GET["type"]).'&id='.$id.' \')">'.htmlentities($row['data'], ENT_QUOTES, "UTF-8")." </a> "; } // get the authors $sql2 = 'SELECT data FROM ISIAUTHOR WHERE id='.$id. ' group by data'; foreach ($base->query($sql2) as $row2) { $output.=(str_replace("\r", "", $row2['data'])).', '; } $output = rtrim($output, ", "); $output.="</li><br>"; } } } else{ continue; } } if ($total_count<$count_max){ $related .= $total_count; }else{ $related .= ">".$count_max; } $output .= "</ul>"; ##### // echo $output."<br>"; if($max_item_displayed>$related) $max_item_displayed=$related; echo $news.'<br/><h4><font color="#0000FF"> Full text of top '.$max_item_displayed.'/'.$related.' related grant proposals:</font></h4>'.$output; //pt - 301 ; 15.30 /* * This function gets the first db name in the data folder * IT'S NOT SCALABLE! (If you want to use several db's) */ function getDB ($directory) { //$results = array(); $result = ""; $handler = opendir($directory); while ($file = readdir($handler)) { if ($file != "." && $file != ".." && ((strpos($file,'.db~'))==false && (strpos($file,'.db'))==true ) || ((strpos($file,'.sqlite~'))==false && (strpos($file,'.sqlite'))==true) ) { //$results[] = $file; $result = $file; break; } } closedir($handler); //return $results; return $result; } function imagestar($score,$factor,$twjs) { // produit le html des images de score $star_image = ''; if ($score > .5) { $star_image = ''; for ($s = 0; $s < min(5,$score/$factor); $s++) { $star_image.='<img src="twlibs/img/star.gif" border="0" >'; } } else { $star_image.='<img src="twlibs/img/stargrey.gif" border="0">'; } return $star_image; } ?>