[2] | 1 | <?php
|
---|
| 2 |
|
---|
| 3 | /************************************************************************/
|
---|
| 4 | /* Eleonline - Raccolta e diffusione dei dati elettorali */
|
---|
| 5 | /* by Luciano Apolito & Roberto Gigli */
|
---|
| 6 | /* http://www.eleonline.it */
|
---|
| 7 | /* info@eleonline.it luciano@aniene.net rgigli@libero.it */
|
---|
| 8 | /************************************************************************/
|
---|
| 9 |
|
---|
| 10 |
|
---|
| 11 | /*******************************************************
|
---|
| 12 | #'Pagina precedente' e 'Pagina Successiva' #
|
---|
| 13 | immettere nel file da dividere la lettura
|
---|
| 14 | del numero complessivo dei dati:
|
---|
| 15 | Es: $max=sql_num_rows($res);
|
---|
| 16 |
|
---|
| 17 | l'offset settato al numero dei dati da
|
---|
| 18 | visualizzare per pagina:
|
---|
| 19 | Es: $offset=5;
|
---|
| 20 |
|
---|
| 21 | l'azzeramento della variabile $min
|
---|
| 22 | Es: if (!isset($min)) $min=0;
|
---|
| 23 |
|
---|
| 24 | il nome del file (opzione) da ricaricare)
|
---|
| 25 | Es: $file="gruppopercsez"; // nome op per pagine
|
---|
| 26 |
|
---|
| 27 |
|
---|
| 28 | */
|
---|
| 29 |
|
---|
| 30 |
|
---|
| 31 |
|
---|
| 32 | function page($id_cons,$go,$max,$min,$prev,$next,$offset,$file){
|
---|
| 33 | global $lettera,$ordine,$id_comune;
|
---|
| 34 |
|
---|
| 35 |
|
---|
| 36 | echo"<br /><div class=\"modulo\">";
|
---|
| 37 | $prev=$min-$offset;
|
---|
| 38 | if ($prev>=0) {
|
---|
| 39 | echo "<a href=\"modules.php?name=Elezioni&op=$go&min=$prev&id_cons_gen=$id_cons&id_comune=$id_comune&file=$file&lettera=$lettera&ordine=$ordine\">";
|
---|
| 40 | echo "[ <b>$offset "._PREV_MATCH."</b> ]</a>";
|
---|
| 41 | }
|
---|
| 42 |
|
---|
| 43 | $next=$min+$offset;
|
---|
| 44 | if ($next>=($offset-1)) {
|
---|
| 45 | if($next>=$max) $next = $max;
|
---|
| 46 | else {
|
---|
| 47 |
|
---|
| 48 | echo "<a href=\"modules.php?name=Elezioni&op=$go&min=$next&id_cons_gen=$id_cons&id_comune=$id_comune&file=$file&lettera=$lettera&ordine=$ordine\">";
|
---|
| 49 | echo " [<b>$offset "._NEXT_MATCH."</b> ] </a>";
|
---|
| 50 | }
|
---|
| 51 | }
|
---|
| 52 | echo "</div><br /><br/>";
|
---|
| 53 |
|
---|
| 54 | }
|
---|
| 55 |
|
---|
| 56 |
|
---|
| 57 |
|
---|
| 58 |
|
---|
| 59 |
|
---|
| 60 | // *********************************
|
---|
| 61 | // Funzioni formattazione data
|
---|
| 62 | // ***********************************
|
---|
| 63 |
|
---|
| 64 |
|
---|
| 65 | function giorno()
|
---|
| 66 | {
|
---|
| 67 | $giorni= array('--','01','02','03','04','05','06','07','08','09','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31');
|
---|
| 68 | foreach($giorni as $gi)
|
---|
| 69 | $giorno .= "<option value=$gi>$gi</option>";
|
---|
| 70 | $giorno .= "</select>";
|
---|
| 71 | echo "$giorno";
|
---|
| 72 | }
|
---|
| 73 |
|
---|
| 74 |
|
---|
| 75 | function mese()
|
---|
| 76 | {
|
---|
| 77 | $mesi= array('--','01','02','03','04','05','06','07','08','09','10','11','12');
|
---|
| 78 | foreach($mesi as $me)
|
---|
| 79 | $mese .= "<option value=$me>$me </option>";
|
---|
| 80 | $mese .= "</select>";
|
---|
| 81 | echo "$mese";
|
---|
| 82 | }
|
---|
| 83 |
|
---|
| 84 | function anno()
|
---|
| 85 | {
|
---|
| 86 | $curr=date("Y",time());
|
---|
| 87 | $anni=array('--',$curr--,$curr--,$curr--,$curr--,$curr--,$curr--,$curr--);
|
---|
| 88 | foreach($anni as $an)
|
---|
| 89 | $anno .= "<option value=$an>$an</option>";
|
---|
| 90 | $anno .= "</select>";
|
---|
| 91 | echo "$anno";
|
---|
| 92 | }
|
---|
| 93 |
|
---|
| 94 | function ore()
|
---|
| 95 | {
|
---|
| 96 | $ore= array('00','01','02','03','04','05','06','07','08','09','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24');
|
---|
| 97 | foreach($ore as $ori)
|
---|
| 98 | $ore .= "<option value=$ori>$ori</option>";
|
---|
| 99 | $ore .= "</select>";
|
---|
| 100 | echo "$ore";
|
---|
| 101 | }
|
---|
| 102 |
|
---|
| 103 |
|
---|
| 104 | function minuti()
|
---|
| 105 | {
|
---|
| 106 | $minuti= array('00','01','02','03','04','05','06','07','08','09','10','11','12','13','14',
|
---|
| 107 | '15', '16', '17', '18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','33',
|
---|
| 108 | '34','35','36','37','38','39','40','41','42','43','44','45','46','47','48','49','50',
|
---|
| 109 | '51','52','53','54','55','56','57','58','59');
|
---|
| 110 | foreach($minuti as $minu)
|
---|
| 111 | $minuti .= "<option value=$minu>$minu </option>";
|
---|
| 112 | $minuti .= "</select>";
|
---|
| 113 | echo "$minuti";
|
---|
| 114 | }
|
---|
| 115 |
|
---|
| 116 | function secondi()
|
---|
| 117 | {
|
---|
| 118 | $secondi= array('00','01','02','03','04','05','06','07','08','09','10','11','12','13','14',
|
---|
| 119 | '15', '16', '17', '18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','33',
|
---|
| 120 | '34','35','36','37','38','39','40','41','42','43','44','45','46','47','48','49','50',
|
---|
| 121 | '51','52','53','54','55','56','57','58','59');
|
---|
| 122 | foreach($secondi as $sec)
|
---|
| 123 | $secondi .= "<option value=$sec>$sec</option>";
|
---|
| 124 | $secondi .= "</select>";
|
---|
| 125 | echo "$secondi";
|
---|
| 126 | }
|
---|
| 127 |
|
---|
| 128 |
|
---|
| 129 |
|
---|
| 130 | function form_data($data)
|
---|
| 131 |
|
---|
| 132 | {
|
---|
| 133 | list($anno,$mese,$giorno) = explode("-", $data) ;
|
---|
| 134 | if ($giorno>0)
|
---|
| 135 | return("$giorno-$mese-$anno");
|
---|
| 136 | else
|
---|
| 137 | return(" ");
|
---|
| 138 | }
|
---|
| 139 |
|
---|
| 140 |
|
---|
| 141 | function taglio($parole,$descrizione)
|
---|
| 142 | {
|
---|
| 143 |
|
---|
| 144 | /* funzione per il taglio di una frase giusta senza
|
---|
| 145 | troncare le parole by luc 13 febbraio 2007
|
---|
| 146 | uso:
|
---|
| 147 | taglio(numero di parole, frase)
|
---|
| 148 | */
|
---|
| 149 |
|
---|
| 150 | $lunghezza=strlen($descrizione);
|
---|
| 151 | $altra='0';
|
---|
| 152 | $testo='';
|
---|
| 153 | $lettera='';
|
---|
| 154 |
|
---|
| 155 |
|
---|
| 156 | for ($x=0;$x<$parole;$x++){
|
---|
| 157 | if($testo!='')$testo .=" ";
|
---|
| 158 |
|
---|
| 159 | for ($j=$altra;$j<$lunghezza;$j++){
|
---|
| 160 | $lettera=$descrizione{$j};
|
---|
| 161 | if ($lettera!=" "){
|
---|
| 162 | $testo .=$lettera;
|
---|
| 163 | }else{
|
---|
| 164 | $altra=$j+1; $j=$lunghezza;
|
---|
| 165 | }
|
---|
| 166 |
|
---|
| 167 | }
|
---|
| 168 | }
|
---|
| 169 |
|
---|
| 170 |
|
---|
| 171 | return "$testo";
|
---|
| 172 |
|
---|
| 173 | }
|
---|
| 174 | #### legge freed rss 1.0
|
---|
| 175 |
|
---|
| 176 | function readrss($url) {
|
---|
| 177 |
|
---|
| 178 |
|
---|
| 179 | $rdf = parse_url($url);
|
---|
| 180 | $fp = fsockopen($rdf['host'], 80, $errno, $errstr, 15);
|
---|
| 181 | if (!$fp) {
|
---|
| 182 | $content = "";
|
---|
| 183 | echo $content;
|
---|
| 184 | return;
|
---|
| 185 | }
|
---|
| 186 |
|
---|
| 187 | if ($fp) {
|
---|
| 188 | if (!empty($rdf['query']))
|
---|
| 189 | $rdf['query'] = "?" . $rdf['query'];
|
---|
| 190 |
|
---|
| 191 | fputs($fp, "GET " . $rdf['path'] . $rdf['query'] . " HTTP/1.0\r\n");
|
---|
| 192 | fputs($fp, "HOST: " . $rdf['host'] . "\r\n\r\n");
|
---|
| 193 | $string = "";
|
---|
| 194 |
|
---|
| 195 | while(!feof($fp)) {
|
---|
| 196 | $pagetext = fgets($fp,300);
|
---|
| 197 | $string .= chop($pagetext);
|
---|
| 198 | }
|
---|
| 199 |
|
---|
| 200 |
|
---|
| 201 |
|
---|
| 202 |
|
---|
| 203 | fputs($fp,"Connection: close\r\n\r\n");
|
---|
| 204 | fclose($fp);
|
---|
| 205 | $items = explode("</item>",$string);
|
---|
| 206 | $content ="<h5>Risultati </h5>";
|
---|
| 207 | $content .= "<span class=\"content\">";
|
---|
| 208 |
|
---|
| 209 | for ($i=0;$i<20;$i++) {
|
---|
[25] | 210 | $link = preg_replace("/.*<link>/","",$items[$i]);
|
---|
[26] | 211 | $link = preg_replace("/</link>.*/","",$link);
|
---|
[25] | 212 | $title2 = preg_replace("/.*<title>/","",$items[$i]);
|
---|
| 213 | $title2 = preg_replace("/</title>.*/","",$title2);
|
---|
[2] | 214 | $title2 = stripslashes($title2);
|
---|
[25] | 215 | $descr = preg_replace("/.*<description>/","",$items[$i]);
|
---|
| 216 | $descr = preg_replace("/</description>.*/","",$descr );
|
---|
[2] | 217 | $descr = stripslashes($descr );
|
---|
| 218 |
|
---|
| 219 | if (empty($items[$i]) AND $cont != 1) {
|
---|
| 220 | $content = "";
|
---|
| 221 |
|
---|
| 222 | $cont = 0;
|
---|
| 223 |
|
---|
| 224 | echo $content;
|
---|
| 225 | return;
|
---|
| 226 | } else {
|
---|
| 227 | if (strcmp($link,$title2) AND !empty($items[$i])) {
|
---|
| 228 | $cont = 1;
|
---|
| 229 | $content .= "<strong><big>·</big></strong> <a href=\"$link\" target=\"new\">$title2</a> $descr<br />\n";
|
---|
| 230 | }
|
---|
| 231 | }
|
---|
| 232 |
|
---|
| 233 | }
|
---|
| 234 |
|
---|
| 235 |
|
---|
| 236 | }
|
---|
| 237 |
|
---|
| 238 | if (($cont == 0) OR (empty($content))) {
|
---|
| 239 | $content = "<span class=\"content\">Problema feed rss</span>";
|
---|
| 240 | }
|
---|
| 241 |
|
---|
| 242 | echo $content;
|
---|
| 243 |
|
---|
| 244 | }
|
---|
| 245 | ### legge i risultati e li reinvia
|
---|
| 246 | ### richiamare con
|
---|
| 247 | ### list ($gruppo,$pro)=grupporss();
|
---|
| 248 |
|
---|
| 249 | function grupporss() {
|
---|
| 250 | global $admin, $bgcolor1, $bgcolor5, $prefix, $dbi, $offset, $min,$descr_cons,$genere,$votog,$votol,$votoc,$circo, $id_cons,$id_cons_gen,$id_comune,$id_circ,$tipo_cons,$w,$l,$op,$siteistat,$flash,$circondt1 ;
|
---|
| 251 |
|
---|
| 252 |
|
---|
| 253 |
|
---|
| 254 |
|
---|
| 255 | //if($genere=='4' || $tipo_cons>='10') $tab="ele_voti_lista";
|
---|
| 256 | if($genere=='4' || $votog) $tab="ele_voti_lista";
|
---|
| 257 | else $tab="ele_voti_gruppo";
|
---|
| 258 |
|
---|
| 259 |
|
---|
| 260 |
|
---|
| 261 | $res = mysql_query("select * from ".$prefix."_$tab where id_cons='$id_cons' group by id_sez ",$dbi);
|
---|
| 262 |
|
---|
| 263 | if ($res) $numero=mysql_num_rows($res);else $numero=0;
|
---|
| 264 | $res = mysql_query("select t2.* from ".$prefix."_ele_sezioni as t2, ".$prefix."_ele_sede as t1 where t2.id_cons='$id_cons' and t1.id_sede=t2.id_sede $circondt1",$dbi);
|
---|
| 265 | if ($res) $sezioni=mysql_num_rows($res);else $sezioni=0;
|
---|
| 266 |
|
---|
| 267 | if ($numero>0){
|
---|
| 268 | if ($genere!=0){
|
---|
| 269 | $restotv = mysql_query("select sum(voti) from ".$prefix."_$tab where id_cons='$id_cons' ", $dbi);
|
---|
| 270 | list($tot) = mysql_fetch_row($restotv);
|
---|
| 271 |
|
---|
| 272 | $i=0;
|
---|
| 273 | // lista o gruppo
|
---|
| 274 | if ($genere!=4){
|
---|
| 275 |
|
---|
| 276 | if ($votog){
|
---|
| 277 |
|
---|
| 278 | $res = mysql_query("select t1.id_gruppo, t1.num_gruppo, t1.descrizione, sum(t2.voti) as somma
|
---|
| 279 | from ".$prefix."_ele_gruppo as t1,
|
---|
| 280 | ".$prefix."_ele_voti_lista as t2,
|
---|
| 281 | ".$prefix."_ele_lista as t3
|
---|
| 282 | where t1.id_cons='$id_cons'
|
---|
| 283 | and t2.id_lista=t3.id_lista
|
---|
| 284 | and t1.id_gruppo=t3.id_gruppo
|
---|
| 285 | group by t1.id_gruppo
|
---|
| 286 | order by somma desc", $dbi);$cosa='id_gruppo';
|
---|
| 287 |
|
---|
| 288 | }else{
|
---|
| 289 |
|
---|
| 290 |
|
---|
| 291 | $res = mysql_query("select t1.id_gruppo, t1.num_gruppo, t1.descrizione, sum(t2.voti) as somma
|
---|
| 292 | from ".$prefix."_ele_gruppo as t1
|
---|
| 293 | left join ".$prefix."_$tab as t2 on (t1.id_gruppo=t2.id_gruppo)
|
---|
| 294 | where t1.id_cons='$id_cons' and t1.id_cons=t2.id_cons $circondt1
|
---|
| 295 | group by t2.id_gruppo
|
---|
| 296 | order by somma desc", $dbi);$cosa='id_gruppo';
|
---|
| 297 | }
|
---|
| 298 |
|
---|
| 299 |
|
---|
| 300 | }else{
|
---|
| 301 | $res = mysql_query("select t1.id_lista, t1.num_lista, t1.descrizione, sum(t2.voti) as somma
|
---|
| 302 | from ".$prefix."_ele_lista as t1
|
---|
| 303 | left join ".$prefix."_$tab as t2 on (t1.id_lista=t2.id_lista)
|
---|
| 304 | where t1.id_cons='$id_cons' and t1.id_cons=t2.id_cons
|
---|
| 305 | group by t2.id_lista
|
---|
| 306 | order by somma desc", $dbi);$cosa='id_lista';
|
---|
| 307 | }
|
---|
| 308 |
|
---|
| 309 |
|
---|
| 310 |
|
---|
| 311 | $gruppinum=mysql_num_rows($res);
|
---|
| 312 | $altrivoti=0;
|
---|
[70] | 313 | ###### gestione percentuali
|
---|
| 314 | $arperc=array();
|
---|
| 315 | $arval=array();
|
---|
| 316 | $arvaltot=0;
|
---|
[2] | 317 | while (list($id,$num,$descrizione,$voti) = mysql_fetch_row($res)){
|
---|
[70] | 318 | $arval[$id]=$voti;
|
---|
| 319 | $arvaltot+=$voti;
|
---|
| 320 | }
|
---|
| 321 | $arperc=arrayperc($arval,$arvaltot);
|
---|
| 322 | mysql_data_seek($res,0);
|
---|
| 323 | ######
|
---|
| 324 | while (list($id,$num,$descrizione,$voti) = mysql_fetch_row($res)){
|
---|
[2] | 325 |
|
---|
| 326 |
|
---|
| 327 |
|
---|
| 328 | // funz per il taglio corretto della frase 13 feb 2007
|
---|
| 329 |
|
---|
| 330 | $descrizione=substr($descrizione,0,20);
|
---|
| 331 | $gruppo[$i]=ucwords(strtolower($descrizione));
|
---|
| 332 |
|
---|
| 333 | //if (strlen($descrizione)>25) $gruppo[$i].="...";
|
---|
| 334 | if ($tot!='' and $tot!='0')
|
---|
| 335 | $pro[$i]=number_format($voti*100/$tot,3);
|
---|
[70] | 336 | $pro[$i]=number_format($arperc[$id],2); // arrotondamento
|
---|
[2] | 337 |
|
---|
| 338 |
|
---|
| 339 |
|
---|
| 340 |
|
---|
| 341 |
|
---|
| 342 |
|
---|
| 343 |
|
---|
| 344 |
|
---|
| 345 | $i++;
|
---|
| 346 | }
|
---|
| 347 |
|
---|
| 348 |
|
---|
| 349 |
|
---|
| 350 |
|
---|
| 351 | $titolo=""._PERCE." "._VOTIE."";
|
---|
| 352 |
|
---|
| 353 |
|
---|
| 354 |
|
---|
| 355 |
|
---|
| 356 |
|
---|
| 357 |
|
---|
| 358 |
|
---|
| 359 | return array($gruppo,$pro);
|
---|
| 360 |
|
---|
| 361 |
|
---|
| 362 |
|
---|
| 363 | }
|
---|
| 364 |
|
---|
| 365 | }
|
---|
| 366 | }
|
---|
| 367 |
|
---|
| 368 | function caricablocchi(){
|
---|
| 369 | #### carica i blocchi presenti in modules/Elezioni/blocchi
|
---|
| 370 | #### nome del file da carica xx_nome.php
|
---|
| 371 | #### dove xx sta per un numero per visualizzare in ordine
|
---|
| 372 | ### 01_votanto.php Ú un nome valido
|
---|
| 373 | ### off_votanto.php per disabilitare la visualizzazione
|
---|
| 374 |
|
---|
| 375 |
|
---|
| 376 |
|
---|
| 377 | $list = array();
|
---|
| 378 | $bl=opendir('modules/Elezioni/blocchi');
|
---|
| 379 | while ($file = readdir($bl)) {
|
---|
[17] | 380 | if (!is_dir("modules/Elezioni/blocchi/$file") and (!preg_match('/^\./',$file)) and !stristr($file,"off_")) {
|
---|
[2] | 381 | array_push($list, $file);
|
---|
| 382 | }
|
---|
| 383 | }
|
---|
| 384 | closedir($bl);
|
---|
| 385 |
|
---|
| 386 | if(count($list)>0)
|
---|
| 387 | sort($list);
|
---|
| 388 | for ($item_num=0; $item_num < count($list); $item_num++) {
|
---|
[17] | 389 | $tmp=preg_replace('/^[0-9][0-9]_/i',"",$list[$item_num]);
|
---|
[2] | 390 | $title=str_replace("_"," ",str_replace(".php","",$tmp));
|
---|
| 391 | // backward theme compatibility
|
---|
| 392 |
|
---|
| 393 | include ("modules/Elezioni/blocchi/$list[$item_num]");
|
---|
| 394 |
|
---|
| 395 | //echo "<br />";
|
---|
| 396 | }
|
---|
| 397 | }
|
---|
| 398 |
|
---|
| 399 | function block($pos){
|
---|
| 400 |
|
---|
| 401 | global $prefix,$dbi;
|
---|
| 402 |
|
---|
| 403 | if($pos=="dx") $p=0; elseif($pos=="sx")$p=1;else $p='';
|
---|
| 404 |
|
---|
| 405 | $result = mysql_query("SELECT * FROM ".$prefix."_ele_widget where pos_or='$p' and attivo='1' order by pos_ver asc", $dbi);
|
---|
| 406 | if($result){
|
---|
| 407 | while ($row = mysql_fetch_array($result)) {
|
---|
| 408 | $nome=$row['nome_file'];
|
---|
| 409 | include ("modules/Elezioni/blocchi/$nome");
|
---|
| 410 | }
|
---|
| 411 | }
|
---|
| 412 | }
|
---|
| 413 |
|
---|
| 414 | function check_block($pos){
|
---|
| 415 | # verifica se ci sono blocchi nel db
|
---|
| 416 | global $prefix,$dbi;
|
---|
| 417 | if($pos=="dx") $p=0; elseif($pos=="sx")$p=1;else $p='';
|
---|
| 418 |
|
---|
| 419 | $result = mysql_query("SELECT * FROM ".$prefix."_ele_widget where pos_or='$p' and attivo='1' order by pos_ver asc", $dbi);
|
---|
| 420 | if ($result) $numero=mysql_num_rows($result);else $numero=0;
|
---|
| 421 |
|
---|
| 422 | return $numero;
|
---|
| 423 |
|
---|
| 424 | }
|
---|
[65] | 425 |
|
---|
| 426 | function arrayperc($temp,$sevaltot)
|
---|
| 427 | {
|
---|
[75] | 428 | $temp2tot=0;$temp2=array();$temp3=array();
|
---|
[65] | 429 | while (list($key,$voti)= each($temp)) {
|
---|
[76] | 430 | if($sevaltot>0){
|
---|
[78] | 431 | $temp4=(ceil($voti*10000/$sevaltot)-($voti*10000/$sevaltot));
|
---|
| 432 | if ($temp4) $temp2[$key]=$temp4;
|
---|
[76] | 433 | $valperc=number_format($voti*100/$sevaltot,2);
|
---|
| 434 | $temp3[$key]=$valperc;
|
---|
| 435 | $temp2tot+=$valperc;
|
---|
| 436 | }
|
---|
[65] | 437 | }
|
---|
[66] | 438 | if($temp2tot>100)
|
---|
[65] | 439 | while ($temp2tot>100){
|
---|
| 440 | foreach ($temp2 as $key => $val) {
|
---|
[66] | 441 | if ($val == max($temp2)) {$temp3[$key]-=0.01;$temp2tot-=0.01;$temp2[$key]=0; break;}
|
---|
[65] | 442 | }
|
---|
| 443 | }
|
---|
[75] | 444 | if("$temp2tot"=="100" or $temp2tot==0) return($temp3);
|
---|
[66] | 445 | while ($temp2tot<100.00){
|
---|
[65] | 446 | foreach ($temp2 as $key => $val) {
|
---|
| 447 | if ($val == min($temp2)) {$temp3[$key]+=0.01;$temp2tot+=0.01;$temp2[$key]=1;break;}
|
---|
| 448 | }
|
---|
| 449 |
|
---|
| 450 | }
|
---|
| 451 | return($temp3);
|
---|
| 452 |
|
---|
| 453 | }
|
---|
[2] | 454 | ?>
|
---|