source: pmb4.2/trunk/fuentes/pmb/admin/connecteurs/in.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: 11.3 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: in.inc.php,v 1.25 2015-04-03 11:16:23 jpermanne Exp $
6
7if (stristr($_SERVER['REQUEST_URI'], ".inc.php")) die("no access");
8
9require_once($class_path."/connecteurs.class.php");
10
11//Affichage de la liste des connecteurs disponibles
12function show_connectors() {
13        global $msg,$lang,$charset,$base_path;
14       
15        print "
16        <script type='text/javascript'>
17                function show_sources(id) {
18                        if (document.getElementById(id).style.display=='none') {
19                                document.getElementById(id).style.display='';
20                               
21                        } else {
22                                document.getElementById(id).style.display='none';
23                        }
24                }
25        </script>
26        <table>
27                <tr>
28                        <th>&nbsp;</th>
29                        <th>Service</th>
30                        <th>Sources</th>
31                        <th>&nbsp;</th>
32                </tr>";
33       
34        $contrs=new connecteurs();
35        $parity=1;
36        foreach ($contrs->catalog as $id=>$prop) {
37                if ($parity % 2) {
38                        $pair_impair = "even";
39                } else {
40                        $pair_impair = "odd";
41                }
42                $parity += 1;
43                $comment=$prop["COMMENT"];
44                $sign=$prop["NAME"]." : ".$comment." - ";
45                if ($prop["STATUS"]!="open") $sign.="(c) ";
46                $sign.="Auteur : ".$prop["AUTHOR"]." - ".$prop["ORG"]." - ";
47                $sign.=formatdate($prop["DATE"]);
48                //Recherche du nombre de sources
49                $n_sources=0;
50                if (is_file($base_path."/admin/connecteurs/in/".$prop["PATH"]."/".$prop["NAME"].".class.php")) {
51                        require_once($base_path."/admin/connecteurs/in/".$prop["PATH"]."/".$prop["NAME"].".class.php");
52                        eval("\$conn=new ".$prop["NAME"]."(\"".$base_path."/admin/connecteurs/in/".$prop["PATH"]."\");");
53                        $conn->get_sources();
54                        $n_sources=count($conn->sources);
55                }
56            $tr_javascript=" onmouseover=\"this.className='surbrillance'\" onmouseout=\"this.className='$pair_impair'\" onmousedown=\"if (event) e=event; else e=window.event; if (e.srcElement) target=e.srcElement; else target=e.target; if ((target.nodeName!='IMG')&&(target.nodeName!='INPUT')) document.location='./admin.php?categ=connecteurs&sub=in&act=modif&id=".$id."';\" ";
57            print "<tr class='$pair_impair' $tr_javascript style='cursor: pointer' title='".htmlentities($sign,ENT_QUOTES,$charset)."' alter='".htmlentities($sign,ENT_QUOTES,$charset)."' id='tr$id'><td>".($n_sources?"<img src='images/plus.gif' class='img_plus' onClick='if (event) e=event; else e=window.event; e.cancelBubble=true; if (e.stopPropagation) e.stopPropagation(); show_sources(\"".addslashes($prop["NAME"])."\"); '/>":"&nbsp;")."</td><td>".htmlentities($comment,ENT_QUOTES,$charset)."</td>
58                <td>".sprintf($msg["connecteurs_count_sources"],$n_sources)."</td><td style='text-align:right'><input type='button' value='".$msg["connecteurs_add_source"]."' class='bouton_small' onClick='document.location=\"admin.php?categ=connecteurs&sub=in&act=add_source&id=".$id."\"'/></td></tr>\n";
59                if ($n_sources) {
60                        print "<tr class='$pair_impair' style='display:none' id='".$prop["NAME"]."'><td>&nbsp;</td><td colspan='3'><table style='border:1px solid'>";
61                        $parity_source=$parity;
62/*                      $requete = "SELECT count( * ) AS count, source_id FROM `external_count` WHERE 1 GROUP BY source_id;";
63                        $resultat=pmb_mysql_query($requete);
64                        while ($count=pmb_mysql_fetch_row($resultat)) {
65                                $counts[$count["1"]] = $count["0"];
66                        }*/
67
68                        foreach($conn->sources as $source_id=>$s) {
69                                if ($parity_source % 2) {
70                                        $pair_impair_source = "even";
71                                } else {
72                                        $pair_impair_source = "odd";
73                                }
74                                $parity_source += 1;
75                                $tr_javascript_source=" onmouseover=\"this.className='surbrillance'\" onmouseout=\"this.className='$pair_impair_source'\" onmousedown=\"if (event) e=event; else e=window.event; if (e.srcElement) target=e.srcElement; else target=e.target; if (target.nodeName!='INPUT') document.location='./admin.php?categ=connecteurs&sub=in&act=add_source&id=".$id."&source_id=".$s["SOURCE_ID"]."';\" ";
76                                print "<tr style='cursor: pointer' class='$pair_impair_source' $tr_javascript_source>
77                                        <td>".htmlentities($s["NAME"],ENT_QUOTES,$charset)."</td>
78                                        <td>".htmlentities(substr($s["COMMENT"],0,60),ENT_QUOTES,$charset)."</td>
79                                        <td>";
80                                if (($s["REPOSITORY"]==1)||($s["REPOSITORY"]==2)) {
81                                        $requete="select count(distinct recid) from entrepot_source_".$source_id." where 1";
82                                        $rnn=pmb_mysql_query($requete);
83                                        $scount = pmb_mysql_result($rnn,0,0); //$counts[$source_id]; //)
84                                        if (!$scount) $scount = 0;
85                                        print "<td>".sprintf($msg["connecteurs_count_notices"],$scount)."</td>";
86                                }       
87                        if ($s["REPOSITORY"]==1) {
88                                print "<td>";
89                                if ($s["CANCELLED"]) {
90                                        print "<input type='button' class='bouton_small' value='".$msg["connecteurs_sync_resume"]."' onClick='document.location=\"admin.php?categ=connecteurs&sub=in&act=sync&go=1&source_id=".$s["SOURCE_ID"]."&id=$id\"'/>&nbsp;";
91                                        print "<input type='button' class='bouton_small' value='".$msg["connecteurs_sync_cancel"]."' onClick='document.location=\"admin.php?categ=connecteurs&sub=in&act=cancel_sync&source_id=".$s["SOURCE_ID"]."&id=$id\"'/>";
92                                }
93                                else if ($s["DATESYNC"]) {
94                                        print sprintf($msg["connecteurs_sync_exists_menu"],$s["PERCENT"]);
95                                        print "&nbsp;<input type='button' class='bouton_small' value='".$msg["connecteurs_sync_abort"]."' onClick='document.location=\"admin.php?categ=connecteurs&sub=in&act=abort_sync&source_id=".$s["SOURCE_ID"]."&id=$id\"'/>";
96                                }
97                                else {
98                                        print "<input type='button' class='bouton_small' value='".$msg["connecteurs_sync"]."' onClick='document.location=\"admin.php?categ=connecteurs&sub=in&act=sync&source_id=".$s["SOURCE_ID"]."&id=$id\"'/>";
99                                        print $s["LASTSYNCDATE"] != 0 ? "&nbsp;&nbsp;(".sprintf($msg["connecteurs_sync_lastdate"], format_date($s["LASTSYNCDATE"]), 1).")" : "";
100                                }
101                                print "</td>";
102                               
103                                print "<td>";
104                                print "<input type='button' class='bouton_small' value='".$msg["connecteurs_empty"]."' onClick='if (confirm(\"".$msg["connecteurs_del_notice_confirm"]."\")) document.location=\"admin.php?categ=connecteurs&sub=in&act=empty&source_id=".$s["SOURCE_ID"]."&id=$id\"'/>";
105                                print "</td>";
106                        }
107                        else {
108                                print "<td>&nbsp;</td><td>&nbsp;</td>";
109                        }
110                        print "</tr>\n";
111                        }
112                        print "</table></td></tr>";
113                }
114        }
115        print "</table>";
116}
117
118switch ($act)  {
119        case "modif":
120                $contrs=new connecteurs();
121                print $contrs->show_connector_form($id);
122                break;
123        case "update":
124                if ($id) {
125                        $contrs=new connecteurs();
126                        require_once($base_path."/admin/connecteurs/in/".$contrs->catalog[$id]["PATH"]."/".$contrs->catalog[$id]["NAME"].".class.php");
127                        eval("\$conn=new ".$contrs->catalog[$id]["NAME"]."(\"".$base_path."/admin/connecteurs/in/".$contrs->catalog[$id]["PATH"]."\");");
128                        if ($conn) {
129                                $conn->timeout=$timeout;
130                                $conn->retry=$retry;
131                                $conn->ttl=$ttl;
132                                $conn->repository=$repository;
133                                $conn->rep_upload=$rep_upload;
134                                $conn->upload_doc_num=$upload_doc_num;
135                                $conn->save_property_form();
136                        }
137                }
138                show_connectors();
139                break;
140        case "cancel_sync":
141                $sql = "DELETE FROM source_sync WHERE source_id = $source_id AND cancel > 0";
142                pmb_mysql_query($sql);
143                show_connectors();             
144                break;
145        case "abort_sync":
146                $sql = "DELETE FROM source_sync WHERE source_id = $source_id ";
147                pmb_mysql_query($sql);
148                show_connectors();
149                break;
150        case "add_source":
151                $contrs=new connecteurs();
152                print $contrs->show_source_form($id,$source_id);
153                break;
154        case "update_source":
155                if ($id) {
156                        $contrs=new connecteurs();
157                        require_once($base_path."/admin/connecteurs/in/".$contrs->catalog[$id]["PATH"]."/".$contrs->catalog[$id]["NAME"].".class.php");
158                        eval("\$conn=new ".$contrs->catalog[$id]["NAME"]."(\"".$base_path."/admin/connecteurs/in/".$contrs->catalog[$id]["PATH"]."\");");
159                        if (!$source_id) $source_id=0;
160                        if ($conn) {
161                                $conn->sources[$source_id]["TIMEOUT"]=$timeout;
162                                $conn->sources[$source_id]["RETRY"]=$retry;
163                                $conn->sources[$source_id]["TTL"]=$ttl;
164                                $conn->sources[$source_id]["REPOSITORY"]=$repository;
165                                $conn->sources[$source_id]["NAME"]=stripslashes($name);
166                                $conn->sources[$source_id]["COMMENT"]=stripslashes($comment);
167                                $conn->sources[$source_id]["OPAC_ALLOWED"]=stripslashes($opac_allowed);
168                                $conn->sources[$source_id]["REP_UPLOAD"]=stripslashes($rep_upload);
169                                $conn->sources[$source_id]["ENRICHMENT"]=stripslashes($enrichment);
170                                $conn->sources[$source_id]["UPLOAD_DOC_NUM"]=stripslashes($upload_doc_num);
171                                $conn->sources[$source_id]["OPAC_AFFILIATE_SEARCH"]=stripslashes($opac_affiliate_search);
172                                $conn->sources[$source_id]["OPAC_SELECTED"]=stripslashes($opac_selected);
173                                $conn->sources[$source_id]["TYPE_ENRICHMENT_ALLOWED"]=$type_enrichment_allowed;
174                                $conn->sources[$source_id]["UPLOAD_DOC_NUM"]=stripslashes($upload_doc_num);
175                                $conn->sources[$source_id]["ICO_NOTICE"]=stripslashes($ico_notice);
176                                //Vérification du nom
177                                $requete="select count(*) from connectors_sources where name='".$name."' and source_id!=$source_id and id_connector='".addslashes($contrs->catalog[$id]["NAME"])."'";
178                                $resultat=pmb_mysql_query($requete);
179                                if (pmb_mysql_result($resultat,0,0)==0) {
180                                        $conn->source_save_property_form($source_id);
181                                        show_connectors();
182                                } else {
183                                        error_form_message($msg["connecteurs_name_exists"]);
184                                }
185                        }
186                }
187                break;
188        case "delete_source":
189                if ($id) {
190                        $contrs=new connecteurs();
191                        require_once($base_path."/admin/connecteurs/in/".$contrs->catalog[$id]["PATH"]."/".$contrs->catalog[$id]["NAME"].".class.php");
192                        eval("\$conn=new ".$contrs->catalog[$id]["NAME"]."(\"".$base_path."/admin/connecteurs/in/".$contrs->catalog[$id]["PATH"]."\");");
193                        if (($source_id)&&($conn)) {
194                                $conn->del_source($source_id);
195                        }
196                        show_connectors();
197                }
198                break;
199        case "sync":
200                if ($id) {
201
202                        $contrs=new connecteurs();
203                        require_once($base_path."/admin/connecteurs/in/".$contrs->catalog[$id]["PATH"]."/".$contrs->catalog[$id]["NAME"].".class.php");
204                        eval("\$conn=new ".$contrs->catalog[$id]["NAME"]."(\"".$base_path."/admin/connecteurs/in/".$contrs->catalog[$id]["PATH"]."\");");
205
206                        //Si on doit afficher un formulaire de synchronisation
207                        $syncr_form = $conn->form_pour_maj_entrepot($source_id);                       
208                        if (!$go && $syncr_form) {
209                                print '<form name="sync_form" action="'."admin.php?categ=connecteurs&sub=in&act=sync&source_id=".$source_id."&go=1&id=$id".'" method="POST"  enctype="multipart/form-data">';
210                                print $syncr_form;
211                                print "<input type='submit' class='bouton_small' value='".$msg["connecteurs_sync"]."'/>";
212                                print '</form>';                               
213                        }
214                        else {
215                                if (($source_id)&&($conn)) {
216                                        require_once($base_path."/admin/connecteurs/in/sync.inc.php");
217                                }                               
218                        }
219                } else show_connectors();
220                break;
221        case "sync_custom_page":
222                if ($id) {
223
224                        $contrs=new connecteurs();
225                        require_once($base_path."/admin/connecteurs/in/".$contrs->catalog[$id]["PATH"]."/".$contrs->catalog[$id]["NAME"].".class.php");
226                        eval("\$conn=new ".$contrs->catalog[$id]["NAME"]."(\"".$base_path."/admin/connecteurs/in/".$contrs->catalog[$id]["PATH"]."\");");
227                        print $conn->sync_custom_page($source_id);
228                }
229                break;
230        case "empty":
231                if ($id) {
232                        $contrs=new connecteurs();
233                        require_once($base_path."/admin/connecteurs/in/".$contrs->catalog[$id]["PATH"]."/".$contrs->catalog[$id]["NAME"].".class.php");
234                        eval("\$conn=new ".$contrs->catalog[$id]["NAME"]."(\"".$base_path."/admin/connecteurs/in/".$contrs->catalog[$id]["PATH"]."\");");
235                        if (($source_id)&&($conn)) {
236                                $conn->del_notices($source_id);
237                        }
238                        $sql = "UPDATE connectors_sources SET last_sync_date = '0000-00-00 00:00:00' WHERE source_id = $source_id ";
239                        pmb_mysql_query($sql);
240                } else show_connectors();
241        default:
242                show_connectors();
243                break;
244}
245?>
Note: See TracBrowser for help on using the repository browser.