source: pmb4.2/trunk/fuentes/pmb/admin/netbase/reindex_synchrordfstore.inc.php @ 815

Last change on this file since 815 was 815, checked in by jrpelegrina, 4 years ago

Initial release of pmb 4.2

  • Property svn:executable set to *
File size: 3.5 KB
Line 
1<?php
2// +-------------------------------------------------+
3// © 2002-2004 PMB Services / www.sigb.net pmb@sigb.net et contributeurs (voir www.sigb.net)
4// +-------------------------------------------------+
5// $Id: reindex_synchrordfstore.inc.php,v 1.3 2015-04-03 11:16:18 jpermanne Exp $
6
7if (stristr($_SERVER['REQUEST_URI'], ".inc.php")) die("no access");
8
9require_once($class_path.'/synchro_rdf.class.php');
10require_once($class_path.'/notice.class.php');
11require_once($class_path.'/serials.class.php');
12
13// la taille d'un paquet de notices
14$lot = REINDEX_PAQUET_SIZE; // defini dans ./params.inc.php
15
16// taille de la jauge pour affichage
17$jauge_size = GAUGE_SIZE;
18$jauge_size .= "px";
19
20$synchro_rdf = new synchro_rdf();
21
22// initialisation de la borne de départ
23if (!isset($start)) {
24        $start=0;
25        //remise a zero des tables de synchro rdf
26        $synchro_rdf->truncateStore();
27}
28
29$v_state=urldecode($v_state);
30
31if (!$count) {
32        $notices = pmb_mysql_query("SELECT count(1) FROM notices", $dbh);
33        $count = pmb_mysql_result($notices, 0, 0);
34}
35       
36print "<br /><br /><h2 align='center'>".htmlentities($msg["nettoyage_synchrordfstore_reindexation"], ENT_QUOTES, $charset)."</h2>";
37
38$NoIndex = 1;
39
40$query = pmb_mysql_query("select notice_id from notices order by notice_id LIMIT $start, $lot");
41if(pmb_mysql_num_rows($query)) {
42               
43        // définition de l'état de la jauge
44        $state = floor($start / ($count / $jauge_size));
45        $state .= "px";
46        // mise à jour de l'affichage de la jauge
47        print "<table border='0' align='center' width='$jauge_size' cellpadding='0'><tr><td class='jauge' width='100%'>";
48        print "<img src='../../images/jauge.png' width='$state' height='16px'></td></tr></table>";
49               
50        // calcul pourcentage avancement
51        $percent = floor(($start/$count)*100);
52       
53        // affichage du % d'avancement et de l'état
54        print "<div align='center'>$percent%</div>";
55        while($mesNotices = pmb_mysql_fetch_assoc($query)) {           
56                $synchro_rdf->addRdf($mesNotices['notice_id'],0); 
57                $notice=new notice($mesNotices['notice_id']);
58                $niveauB=strtolower($notice->biblio_level);
59                //Si c'est un article, il faut réindexer son bulletin
60                if($niveauB=='a'){
61                        $bulletin=analysis::getBulletinIdFromAnalysisId($mesNotices['notice_id']);
62                        $synchro_rdf->addRdf(0,$bulletin);
63                }
64        }
65pmb_mysql_free_result($query);
66
67$next = $start + $lot;
68print "
69        <form class='form-$current_module' name='current_state' action='./clean.php' method='post'>
70        <input type='hidden' name='v_state' value=\"".urlencode($v_state)."\">
71        <input type='hidden' name='spec' value=\"$spec\">
72        <input type='hidden' name='start' value=\"$next\">
73        <input type='hidden' name='count' value=\"$count\">
74        </form>
75        <script type=\"text/javascript\"><!--
76        setTimeout(\"document.forms['current_state'].submit()\",1000);
77        -->
78        </script>";
79} else {
80        $spec = $spec - INDEX_SYNCHRORDFSTORE;
81        $compte=0;
82        $q ="SELECT *
83                        WHERE {
84                           FILTER (!regex(?p, rdf:type,'i')) .
85                           ?s ?p ?o
86                        }";
87        $r = $synchro_rdf->store->query($q);
88        if (is_array($r['result']['rows'])) {
89                $compte=count($r['result']['rows']);
90        }
91        $v_state .= "<br /><img src=../../images/d.gif hspace=3>".htmlentities($msg["nettoyage_synchrordfstore_reindexation"], ENT_QUOTES, $charset)." :";
92        $v_state .= $compte." ".htmlentities($msg["nettoyage_synchrordfstore_reindex_total"], ENT_QUOTES, $charset);
93        print "
94                <form class='form-$current_module' name='process_state' action='./clean.php' method='post'>
95                <input type='hidden' name='v_state' value=\"".urlencode($v_state)."\">
96                <input type='hidden' name='spec' value=\"$spec\">
97                </form>
98                <script type=\"text/javascript\"><!--
99                        document.forms['process_state'].submit();
100                        -->
101                </script>";
102}
Note: See TracBrowser for help on using the repository browser.