source: cpc/trunk/project/apps/frontend/modules/solr/templates/searchSuccess.php @ 1471

Last change on this file since 1471 was 1471, checked in by popeye, 11 years ago

Mieux avec un curseur

File size: 8.8 KB
Line 
1<?php 
2$sf_response->setTitle("Recherche de $query");  $style = "xneth";
3
4function link_search($text, $query, $args, $options) 
5{
6  $extra = '';
7  $url = "solr/search?query=".$query;
8  foreach($args as $k => $v) {
9    if (is_array($v)) {
10      if (count($v))
11        $extra .= '&'.$k.'='.implode(',', array_keys($v));
12    }    else
13      $extra .= '&'.$k.'='.$v;
14  }
15  if($options) { return link_to($text, $url.$extra, $options); }
16  else { return link_to($text, $url.$extra); }
17}
18
19$recherche = preg_replace('/"/', '&quot;', $query);
20
21if($interval == '+1MONTH') { $par = 'mois'; } 
22else { $par = 'jour'; }
23?>
24<script type="text/javascript">
25function urlParams(params) {
26        param = new Object();
27        if(jQuery.isArray(params)) {
28    jQuery.each(params, function() {
29      val = this.split('=');
30      param[val[0]] = val[1];
31    });
32  }
33        return param;
34}
35
36periode = new Array();
37date_href = new Array();
38nb_li = 0;
39bh = 0;
40nh = 0;
41if(location.search.substring(1)) { parametre = urlParams(location.search.substring(1).split('&')); }
42else { parametre = new Object(); }
43
44$(document).ready(function() {
45  $(".date li").each(function() {
46    if($(this).height() > bh) { bh = $(this).height(); }
47    date_li = $(this).find('a').attr("title").split(':');
48    date_href[nb_li] = $(this).find('a').attr("href"); /* ajouter onclick haut colonnes */
49    $(this).find("#hover_graph").attr("onclick", "document.location.replace('http://"+location.host+date_href[nb_li]+"')");
50    $(this).find("#hover_graph").css("cursor", "pointer");
51    periode[nb_li] = date_li[0];
52    nb_li++;
53  });
54  if(bh <= 30) {
55    $(".date li").each(function() {
56      nh = $(this).height() * 2; $(this).height(nh);
57    });
58    bh = bh * 2;
59  }
60  if(bh <= 170) { bh = bh + 30; $(".date").height(bh); }
61  $(".date").fadeIn(300);
62        $(function() {
63                $("#slider_date_graph").slider({
64                        range: true,
65                        min: 0,
66                        max: nb_li-1,
67                        values: [0, nb_li],
68                        slide: function(event, ui) {
69                          from = date_href[ui.values[0]].split('?');
70                          from = urlParams(from[1].split('&'));
71                          from = from["date"].split('%2C');
72                          parametre["from"] = from[1];
73                          to = date_href[ui.values[1]].split('?');
74                          to = urlParams(to[1].split('&'));
75                          to = to["date"].split('%2C');
76                          parametre["to"] = to[1];
77                         
78                          if(parametre.date != undefined) { delete(parametre.date); }
79                          lien = "?";
80                          if(ui.values[0] == ui.values[1]) {
81                            lien = lien+"date="+parametre.from;
82                          }
83                          else {
84                            if(parametre.from != undefined) { lien = lien+"from="+parametre.from; }
85                            if(parametre.to != undefined) { lien = lien+"&to="+parametre.to; }
86                          }
87                          if(parametre.parlementaire != undefined) { lien = lien+"&parlementaire="+parametre.parlementaire; }
88                          if(parametre.object_name != undefined) { lien = lien+"&object_name="+parametre.object_name; }
89                          if(parametre.tag != undefined) { lien = lien+"&tag="+parametre.tag; }
90                          /* parlementaire object_name tag date to from */
91                          <?php if($par == 'mois') { echo "en = 'en';"; } else { echo "en = 'le';"; } ?>
92                          if(ui.values[0] == ui.values[1]) {
93                            texte_periode = '<a href="'+lien+'">'+en+' '+periode[ui.values[0]]+'</a>';
94                          }
95                          else {
96                            texte_periode = '<a href="'+lien+'">entre '+periode[ui.values[0]]+' et '+ periode[ui.values[1]]+'</a>';
97                          }
98                         
99                          $("#periode").text("");
100                                $("#periode").append(texte_periode);
101                        }
102                });
103                $("#periode").text('entre ' + periode[$("#slider_date_graph").slider("values", 0)] + ' et ' + periode[$("#slider_date_graph").slider("values", 1)]);
104        });
105});
106</script>
107
108<div class="solr">
109<div class="searchbox">
110<form>
111    <input name="search" value="<?php echo $recherche; ?>" />
112    <input type="submit" value="Rechercher"/>
113</form>
114</div>
115<?php 
116if(count($fdates['values']) > 1) { 
117$width_date = 900;
118$left = 2;
119$espacement = 4;
120$width = (($width_date - $left) / count($fdates['values'])) - $espacement;
121$start = explode("T", $start);
122
123if($par == 'mois') {
124  if($end == 'NOW') { $end = "aujourd'hui"; }
125  else { 
126  $end = explode("T", $end); 
127  $end = explode("-", $end[0]);
128  $end = mktime(0, 0, 0, $end[1], $end[2] - 1, $end[0]);
129  $end = date("Y-m-d", $end);
130  $end = 'le '.myTools::displayShortDate($end); }
131  echo '<h1>Résultats pour "<em>'.$recherche.'</em>" entre le '.myTools::displayShortDate($start[0]).' et '.$end.'</h1>';
132}
133else {
134  $end = explode("T", $end); 
135  echo '<h1>Résultats pour "<em>'.$recherche.'</em>" en '.myTools::displayMoisAnnee($start[0]).'</h1>';
136}
137
138?>
139<div class="cont_date_graph">
140<span>Affiner par date :</span> <span id="periode"></span>
141<div class="date" style="width: <?php echo $width_date ?>px;">
142<ul>
143   <?php $i = 0; foreach($fdates['values'] as $date => $nb) : 
144    $height = round($nb['pc']*100/($fdates['max']) * 2);
145    $padding = 200-$height; ?>
146    <li<?php echo ' style="list-style-image: none; width: '.$width.'px; height: '.$height.'px; left: '.$left.'px;">'; 
147    $left = $left + $width; if($i < (count($fdates['values']) - 1)) { $left = $left + $espacement; }
148    $newargs = $selected;
149    $newargs['date'][$date] = 1;
150    $title_date = explode("T", $date);
151    if($par == "mois") {
152      $title_date = ucfirst(myTools::displayMoisAnnee($title_date[0])).' : '.$nb['nb'].' résultats';
153    }
154    else {
155      $title_date = myTools::displayShortDate($title_date[0]).' : '.$nb['nb'].' résultats';
156    }
157    echo '<div id="hover_graph" title="'.$title_date.'" style="width: '.$width.'px; height: '.$padding.'px;     bottom: '.$height.'px;"></div><span id="text_graph">'.link_search($nb['nb'], $query, $newargs, array('title' => $title_date)).'</span>'; 
158   
159    # echo ' '.$nb['nb'].' résultats ('; printf('%02d', $nb['pc']*100/($fdates['max'])); echo '%)';
160   ?>
161   </li>
162<?php endforeach; ?>
163</ul>
164</div>
165<div id="slider_date_graph"></div>
166</div>
167<?php } else { echo '<h1>Résultats pour "<em>'.$recherche.'</em>" le '.strtolower(myTools::displayDateSemaine($date_en_cours)).'</h1>'; } ?>
168<div class="nb_results">
169    <h2>Résultats <?php echo $results['start']+1; ?> à <?php echo $results['end']-1; ?> sur <?php echo $results['numFound']; ?> <strong>triés par <?php echo $sort_type; ?></strong> -
170<span class="tri">
171<?php 
172  $newargs = $selected;
173  if ($sort)
174    echo link_search('trier par pertinence', $query, $newargs, 0); 
175  else {
176    $newargs['sort'] = 1;
177    echo link_search('trier par date', $query, $newargs, 0); 
178  }
179?>
180</span></h2>
181</div>
182<div class="options">
183<div class="mail">
184<h3>Alerte email</h3>
185<?php 
186    $args = '';
187foreach(array_keys($selected) as $k) {
188  if (!is_array($selected[$k])) 
189    continue;
190  if ($args)
191    $args .= '&';
192  $args.= "$k=".implode(',', array_keys($selected[$k]));
193}
194echo link_to('Recevoir un email lorsque de nouveaux résultats seront publiés pour cette recherche', 'alerte/create?filter='.urlencode($args).'&query='.urlencode($query));
195?>
196</div>
197<div class="facets">
198<h3>Filtres supplémentaires</h3>
199<?php   foreach(array_keys($facet) as $k) { if (isset($facet[$k]['values']) && count($facet[$k]['values'])) : ?>
200<div class="<?php echo $k; ?>">
201<p><?php echo $facet[$k]['name']; ?></p>
202<ul>
203<?php foreach($facet[$k]['values'] as $value => $nb) : if ($nb) :
204$is_selected = isset($selected[$facet[$k]['facet_field']][$facet[$k]['prefix'].$value]) && 
205                     $selected[$facet[$k]['facet_field']][$facet[$k]['prefix'].$value];
206?>
207<li<?php if ($is_selected) echo ' class="selected"'; ?>><?php 
208$newargs = $selected;
209if ($is_selected) 
210  unset($newargs[$facet[$k]['facet_field']][$facet[$k]['prefix'].$value]);
211else                         
212  $newargs[$facet[$k]['facet_field']][$facet[$k]['prefix'].$value] = 1;
213echo link_search($value, 
214                 $query, 
215                 $newargs,
216                 0
217                 ); ?> (<?php echo $nb; ?>)</li>
218<?php endif; endforeach; ?>
219</ul>
220</div>
221<?php endif; } ?>
222
223</div>
224</div>
225<div class="results">
226<?php foreach ($results['docs'] as $record) : ?>
227<div class="item">
228      <h4><a href="<?php echo $record['link']; ?>"><?php echo $record['titre']; ?></a></h4>
229      <?php if ($record['photo']) { ?><p class="photo"><a href="<?php echo $record['link']; ?>" rel="nofollow"><img width="53" src="<?php echo $record['photo']; ?>"/></a></p><?php } ?>
230      <p class="intervenant"><a href="<?php echo $record['link']; ?>" rel="nofollow"><?php echo $record['personne']; ?></a></p>
231      <p class="content"><?php echo $record['highlighting']; ?></p>
232      <p class="more"><a href="<?php echo $record['link']; ?>">Consulter</a></p>
233</div>
234<div class="record">
235</div>
236<?php endforeach; ?>
237</div>
238<div class="pager">
239<div class="next">
240<?php
241if ($results['end']-1 != $results['numFound']) {
242  $newargs = $selected;
243  $newargs['page'][$results['page'] + 1] = 1;
244  echo link_search('page suivante',
245                   $query,
246                   $newargs,
247                   0
248                   ); 
249}
250?>
251</div>
252<div class="last">
253<?php
254$newargs = $selected;
255$newargs['page'][$results['page'] - 1] = 1;
256if ($results['page'] > 1) {
257  if (isset($newargs['page'][1]))
258    unset($newargs['page'][1]);
259  echo link_search('page précédente',
260                   $query,
261                   $newargs,
262                   0
263                   ); 
264 }
265?>
266</div>
267</div>
268</div>
Note: See TracBrowser for help on using the repository browser.