PluginProbe
HAL / 2.0.7
HAL v2.0.7
trunk 1.0 1.1 1.2 1.3 1.4 1.4.2 1.4.3 1.4.4 2.0 2.0.1 2.0.10 2.0.2 2.0.6 2.0.7 2.0.8 2.0.9 2.1.0 2.1.1 2.2 2.3 2.4 2.4.1 2.4.2 2.5 All 30 releases
← All changes | wp-hal.php +1142 -1025 1.12.0.7 View file →
@@ -1,1026 +1,1143 @@
1 -<?php
2 -/**
3 - * Plugin Name: HAL
4 - * Plugin URI: http://www.ccsd.cnrs.fr
5 - * Description: Crée une page qui remonte les publications d'un auteur ou d'une structure en relation avec HAL et un widget des dernières publications d'un auteur ou d'une structure.
6 - * Version: 1.1
7 - * Author: Baptiste Blondelle
8 - * Author URI: http://www.ccsd.cnrs.fr
9 - * Text Domain: wp-hal
10 - * Domain Path: /lang/
11 - */
12 -
13 -
14 -// Traduction de la description
15 -__("Crée une page qui remonte les publications d'un auteur ou d'une structure en relation avec HAL et un widget des dernières publications d'un auteur ou d'une structure.", "wp-hal");
16 -
17 -//Récupère les constantes
18 -require_once("constantes.php");
19 -
20 -
21 -if (locale == 'fr_FR') {
22 - define('lang', 'fr_');
23 -} elseif (locale == 'es_ES') {
24 - define('lang', 'es_');
25 -} else {
26 - define('lang', 'en_');
27 -}
28 -
29 -// Création du shortcode ('nom du shortcode', 'fonction appelée')
30 -add_shortcode( 'cv-hal', 'cv_hal' );
31 -
32 -
33 -function charger_languages() {
34 - load_plugin_textdomain('wp-hal', false, dirname(plugin_basename(__FILE__)) . '/lang/');
35 -}
36 -
37 -add_action('plugins_loaded', 'charger_languages');
38 -
39 -function hal_plugin_action_links( $links, $file ) {
40 - if ( $file != plugin_basename( __FILE__ ))
41 - return $links;
42 -
43 - $settings_link = '<a href="admin.php?page=wp-hal.php">' . __( 'Paramètres', 'wp-hal' ) . '</a>';
44 -
45 - array_unshift( $links, $settings_link );
46 -
47 - return $links;
48 -}
49 -
50 -
51 -add_filter( 'plugin_action_links', 'hal_plugin_action_links',10,2);
52 -
53 -
54 -/***********************************************************************************************************************
55 - * PLUGIN SHORTCODE
56 - **********************************************************************************************************************/
57 -function cv_hal(){
58 -
59 - if (get_option('option_groupe')=='grouper'){
60 - //cURL sur l'API pour récupérer les données
61 - $url = api . '?q=*:*&fq='.get_option('option_type').':('. urlencode(get_option('option_idhal')).')&group=true&group.field=docType_s&group.limit=1000&fl=docid,citationFull_s&facet.field=' . lang .'domainAllCodeLabel_fs&facet.field=keyword_s&facet.field=journalIdTitle_fs&facet.field=producedDateY_i&facet.field=authIdLastNameFirstName_fs&facet.field=instStructIdName_fs&facet.field=labStructIdName_fs&facet.field=deptStructIdName_fs&facet.field=rteamStructIdName_fs&facet.mincount=1&facet=true&sort=' . producedDateY . '&wt=json&json.nl=arrarr';
62 - } elseif (get_option('option_groupe')=='paginer'){
63 - $url = api . '?q=*:*&fq='.get_option('option_type').':('.urlencode(get_option('option_idhal')).')&fl=docid,citationFull_s&facet.field=' . lang .'domainAllCodeLabel_fs&facet.field=keyword_s&facet.field=journalIdTitle_fs&facet.field=producedDateY_i&facet.field=authIdLastNameFirstName_fs&facet.field=instStructIdName_fs&facet.field=labStructIdName_fs&facet.field=deptStructIdName_fs&facet.field=rteamStructIdName_fs&facet.mincount=1&facet=true&sort=' . producedDateY . '&wt=json&json.nl=arrarr';
64 - }
65 -
66 - $ch = curl_init($url);
67 - // Options
68 - $options = array(
69 - CURLOPT_RETURNTRANSFER => true,
70 - CURLOPT_HTTPHEADER => array('Content-type: application/json'),
71 - CURLOPT_TIMEOUT => 10,
72 - );
73 -
74 - // Bind des options et de l'objet cURL que l'on va utiliser
75 - curl_setopt_array($ch, $options);
76 - // Récupération du résultat JSON
77 - $json = json_decode(curl_exec($ch));
78 - curl_close($ch);
79 -
80 - //cURL sur l'API doctype pour récupérer les labels des docType
81 - $chtype = curl_init(urltype);
82 - // Options
83 - $options = array(
84 - CURLOPT_RETURNTRANSFER => true,
85 - CURLOPT_HTTPHEADER => array('Content-type: application/json'),
86 - CURLOPT_TIMEOUT => 10,
87 - );
88 -
89 - // Bind des options et de l'objet cURL que l'on va utiliser
90 - curl_setopt_array($chtype, $options);
91 - // Récupération du résultat JSON
92 - $jsontype = json_decode(curl_exec($chtype));
93 - curl_close($chtype);
94 -
95 - $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
96 -
97 - $choix= 0;
98 - for ($i=1; $i<10; $i++){
99 - if (get_option('option_choix')[$i]!=null){
100 - $choix = $choix+1;
101 - }
102 - }
103 -
104 - $content = '<div id="content-plugin">
105 - <ul id="menu">';
106 - $content .= '<li><a href="#publications" onclick="displayElem(\'publications\'); return false;" style="font-size:18px; text-decoration: none;">' . __('Publications', 'wp-hal'). '</a></li>';
107 - if ($choix!=0){
108 - $content .= '<li><a href="#filtres" onclick="return false;" style="font-size:18px; text-decoration: none; cursor:default;">' . __('Filtres', 'wp-hal'). '</a>';
109 - $content .= '<ul id="filtres">';
110 - if (get_option('option_choix')[1] == 'contact') {
111 - $content .= '<li><a href="#contact" onclick="displayElem(\'contact\'); return false;" style="margin:1px; text-decoration: none;">' . __('Contact', 'wp-hal');
112 - $content .= '</a></li>';}
113 - if (get_option('option_choix')[2] == 'disciplines') {
114 - $content .= '<li><a href="#disciplines" onclick="displayElem(\'disciplines\'); return false;" style="margin:1px; text-decoration: none;">' . __('Disciplines', 'wp-hal');
115 - $content .= '</a></li>';}
116 - if (get_option('option_choix')[3] == 'mots-clefs') {
117 - $content .= '<li><a href="#keywords" onclick="displayElem(\'keywords\'); return false;" style="margin:1px; text-decoration: none;">' . __('Mots-clefs', 'wp-hal');
118 - $content .= '</a></li>';}
119 - if (get_option('option_choix')[4] == 'auteurs') {
120 - $content .= '<li><a href="#auteurs" onclick="displayElem(\'auteurs\'); return false;" style="margin:1px; text-decoration: none;">' . __('Auteurs', 'wp-hal');
121 - $content .= '</a></li>';}
122 - if (get_option('option_choix')[5] == 'revues') {
123 - $content .= '<li><a href="#revues" onclick="displayElem(\'revues\'); return false;" style="margin:1px; text-decoration: none;">' . __('Revues', 'wp-hal');
124 - $content .= '</a></li>';}
125 - if (get_option('option_choix')[6] == 'annee') {
126 - $content .= '<li><a href="#annees" onclick="displayElem(\'annees\'); return false;" style="margin:1px; text-decoration: none;">' . __('Année de production', 'wp-hal');
127 - $content .= '</a></li>';}
128 - if (get_option('option_choix')[7] == 'institution') {
129 - $content .= '<li><a href="#insts" onclick="displayElem(\'insts\'); return false;" style="margin:1px; text-decoration: none;">' . __('Institutions', 'wp-hal');
130 - $content .= '</a></li>';}
131 - if (get_option('option_choix')[8] == 'laboratoire') {
132 - $content .= '<li><a href="#labs" onclick="displayElem(\'labs\'); return false;" style="margin:1px; text-decoration: none;">' . __('Laboratoires', 'wp-hal');
133 - $content .= '</a></li>';}
134 - if (get_option('option_choix')[9] == 'departement') {
135 - $content .= '<li><a href="#depts" onclick="displayElem(\'depts\'); return false;" style="margin:1px; text-decoration: none;">' . __('Départements', 'wp-hal');
136 - $content .= '</a></li>';}
137 - if (get_option('option_choix')[10] == 'equipe') {
138 - $content .= '<li><a href="#equipes" onclick="displayElem(\'equipes\'); return false;" style="margin:1px; text-decoration: none;">' . __('Équipes de recherche', 'wp-hal');
139 - $content .= '</a></li>';}
140 - $content .= '</ul></li>';
141 - }
142 - $content .= '</ul><br/><hr>';
143 -
144 - $content .= '<div id="meta">
145 - <div class="display" id="contact" style="display: none;">
146 - <h3>' . __('Contact','wp-hal'); $content .= '</h3>
147 -
148 - <ul style="list-style-type: none;">';
149 - if (get_option('option_email') != ''){
150 - $content .= '<li><img alt="mail" src=" ' . plugin_dir_url( __FILE__ ) . 'img/mail.svg" style=" width:16px; margin-left:2px; margin-right:2px;"/><a href="mailto:' . get_option('option_email') . '" target="_blank">' . get_option('option_email') . '</a></li>';
151 - }
152 - if (get_option('option_tel') != ''){
153 - $content .= '<li><img alt="phone" src=" ' . plugin_dir_url( __FILE__ ) . 'img/phone.svg" style="width:16px; margin-left:2px; margin-right:2px;"/>' . get_option('option_tel') . '</li>';
154 - }
155 - if (get_option('option_social0') != ''){
156 - $content .= '<li><a href="http://www.facebook.com/' . get_option('option_social0') . '" target="_blank"><img src=" ' . plugin_dir_url( __FILE__ ) . 'img/facebook.svg" style="width:32px; margin:4px;"/></a>';
157 - }
158 - if (get_option('option_social1') != ''){
159 - $content .= '<a href="http://www.twitter.com/' . get_option('option_social1') . '" target="_blank"><img src=" ' . plugin_dir_url( __FILE__ ) . 'img/twitter.svg" style="width:32px; margin:4px;"/></a>';
160 - }
161 - if (get_option('option_social2') != ''){
162 - $content .= '<a href="https://plus.google.com/u/0/+' . get_option('option_social2') . '" target="_blank"><img src=" ' . plugin_dir_url( __FILE__ ) . 'img/google-plus.svg" style="width:32px; margin:4px;"/></a>';
163 - }
164 - if (get_option('option_social3') != ''){
165 - $content .= '<a href="https://www.linkedin.com/in/' . get_option('option_social3') . '" target="_blank"><img src=" ' . plugin_dir_url( __FILE__ ) . 'img/linkedin.svg" style="width:32px; margin:4px;"/></a></li>';
166 - }
167 - $content .= '</ul>
168 - </div>
169 - <div class="display" id="disciplines" style="display: none;">
170 - <h3>' . __('Disciplines','wp-hal').'</h3>';
171 -
172 - if (locale == 'fr_FR') {
173 - $facetdomain = $json->facet_counts->facet_fields->fr_domainAllCodeLabel_fs;
174 - } elseif (locale == 'es_ES') {
175 - $facetdomain = $json->facet_counts->facet_fields->es_domainAllCodeLabel_fs;
176 - } else {
177 - $facetdomain = $json->facet_counts->facet_fields->en_domainAllCodeLabel_fs;
178 - }
179 -
180 - if(!is_null($facetdomain) && !empty($facetdomain)){
181 -
182 - $content .= '<div id="listdisci">';
183 - $content .= '<span id="tridisciplines">';
184 - $content .= '<button type="button" class="trial" href="" id="tridisci" onclick="toggleSort(this, true, \'discipline\', \'discipline\', \'tridisci\'); return false;" style="font-size:16px; text-decoration: none;" >Tri Alphabétique</button>';
185 - $content .= '<button type="button" class="trioc" href="" id="trinbdisci" onclick="toggleSort(this, false, \'discipline\', \'discipline\', \'trinbdisci\'); return false;" style="font-size:16px; text-decoration: none;">Tri Occurrence</button>';
186 - $content .= '</span>';
187 - $content .= '<ul id="discipline" class="discipline">';
188 - foreach ($facetdomain as $res){
189 - $name = explode(delimiter,$res[0]);
190 - $content .= '<li class="metadata" data-percentage="'.$res[1].'"><a href="'. halv3 .'?q=domainAllCode_s:' . urlencode($name[0]) . "+AND+" .get_option('option_type').':'.get_option('option_idhal').'" target="_blank">'.$name[1].'</a><span class="nbmetadata">' .$res[1]. '</span></li>';
191 - }
192 - $content .= '</ul>';
193 - $content .= '</div>';
194 -
195 - $content .= '<div id="graph" style="display:none;">';
196 - $content .= '<div id="piedisci"></div>';
197 - $content .= '</div>';
198 - $content .= '<button type="button" href="" style="text-decoration: none;" id="disci" onclick="visibilitedisci(\'listdisci\',\'graph\',\'tridisciplines\'); return false;" >' . __('Graphique','wp-hal'); $content .= '</button>';
199 - }
200 - $content .= '</div>
201 - <div class="display" id="keywords" style="display: none;">
202 - <h3>' . __('Mots-clefs','wp-hal').'</h3>';
203 - if(!is_null($json->facet_counts->facet_fields->keyword_s) && !empty($json->facet_counts->facet_fields->keyword_s)){
204 - $content .= '<div id="keys">';
205 - $r = 0;
206 - // CSS Nuage de mots
207 - $maxsize=25;
208 - $minsize=10;
209 - $maxval=max(array_values($json->facet_counts->facet_fields->keyword_s[1]));
210 - $minval=min(array_values($json->facet_counts->facet_fields->keyword_s[1]));
211 - $spread=($maxval-$minval);
212 - $step=($maxsize-$minsize)/$spread;
213 - $tab = array();
214 - foreach ($json->facet_counts->facet_fields->keyword_s as $res){
215 - $r = $r+1;
216 - if ($r > 20){
217 - break;
218 - }
219 - $tab[] = $res;
220 - }
221 - asort($tab); // Tri du tableau par ordre alphabétique
222 - foreach ($tab as $res){
223 - $size= round($minsize + (($res[1]- $minval)*$step));
224 - $content .= '<a style="display: inline-block; font-size:'.$size.'px" href="'. halv3 .'?q=keyword_s:' . urlencode('"'.$res[0].'"') . "+AND+" .get_option('option_type').':'.get_option('option_idhal').'" target="_blank">' . $res[0] . '</a>&nbsp;';
225 - }
226 - $content .= '</div>';
227 - $content .= '<div id="keysuite" style="display:none;">';
228 - $content .= '<span id="trikeywords">';
229 - $content .= '<button type="button" class="trial" href="" id="trikey" onclick="toggleSort(this, true, \'keyw\', \'keyword\', \'trikey\'); return false;" style="font-size:16px; text-decoration: none;" >Tri Alphabétique</button>';
230 - $content .= '<button type="button" class="trioc" href="" id="trinbkey" onclick="toggleSort(this, false, \'keyw\', \'keyword\', \'trinbkey\'); return false;" style="font-size:16px; text-decoration: none;">Tri Occurrence</button>';
231 - $content .= '</span>';
232 - $content .= '<ul class="keyword">';
233 - $content .= '<div id="keyw">';
234 - foreach ($json->facet_counts->facet_fields->keyword_s as $res){
235 - $content .= '<li class="metadata" data-percentage="'.$res[1].'"><a href="'. halv3 .'?q=keyword_s:'.urlencode('"'.$res[0].'"'). "+AND+" .get_option('option_type').':'.get_option('option_idhal').'" target="_blank">' . $res[0] . '</a><span class="nbmetadata">' .$res[1]. '</span></li>';
236 - }
237 - $content .= '</div>';
238 - $content .= '</ul>';
239 - $content .= '</div>';
240 - $content .= '<button type="button" href="" style="text-decoration: none;" id="key" onclick="visibilitekey(\'keys\',\'keysuite\', \'trikeywords\'); return false;" >' . __('Liste complète','wp-hal'); $content .= '</button>';
241 - }
242 - $content .= '</div>
243 - <div class="display" id="auteurs" style="display: none;">
244 - <h3>' . __('Auteurs','wp-hal').'</h3>';
245 - if(!is_null($json->facet_counts->facet_fields->authIdLastNameFirstName_fs) && !empty($json->facet_counts->facet_fields->authIdLastNameFirstName_fs)){
246 - $content .= '<ul class="auteurs" style="list-style-type: none;">';
247 - $content .= '<span id="triauteurs">';
248 - $content .= '<button type="button" class="trial" href="" id="triaut" onclick="toggleSort(this, true, \'aut\', \'auteursuite\', \'triaut\'); return false;" style="font-size:16px; text-decoration: none;" >Tri Alphabétique</button>';
249 - $content .= '<button type="button" class="trioc" href="" id="trinbaut" onclick="toggleSort(this, false, \'aut\', \'auteursuite\', \'trinbaut\'); return false;" style="font-size:16px; text-decoration: none;">Tri Occurrence</button>';
250 - $content .= '</span>';
251 - $content .= '<div id="aut">';
252 - $r = 0;
253 - foreach ($json->facet_counts->facet_fields->authIdLastNameFirstName_fs as $res){
254 - $r = $r+1;
255 - if ($r > 10){
256 - break;
257 - }
258 - $name = explode(delimiter,$res[0]);
259 - $content .= '<li class="metadata" data-percentage="'.$res[1].'"><img alt="user" src=" ' . plugin_dir_url( __FILE__ ) . '/img/user.svg" style="width:16px; margin-left:2px; margin-right:2px;"/><a href="'. halv3 .'?q=authId_i:' . $name[0] . "+AND+" .get_option('option_type').':'.get_option('option_idhal').'" target="_blank">' . $name[1] . '</a><span class="nbmetadata">' .$res[1]. '</span></li>';
260 - }
261 - $i = 1;
262 - $content .= '<div id="auteursuite" style="display:none;">';
263 - foreach ($json->facet_counts->facet_fields->authIdLastNameFirstName_fs as $res){
264 - if($r < 10){
265 - break;
266 - }
267 - if ($i < $r){
268 - $i = $i+1;
269 - } else {
270 - $name = explode(delimiter,$res[0]);
271 - $content .= '<li class="metadata" data-percentage="'.$res[1].'"><img alt="user" src=" ' . plugin_dir_url( __FILE__ ) . '/img/user.svg" style="width:16px; margin-left:2px; margin-right:2px;"/><a href="'. halv3 .'?q=authId_i:' . $name[0] . "+AND+" .get_option('option_type').':'.get_option('option_idhal').'" target="_blank">' . $name[1] . '</a><span class="nbmetadata">' .$res[1]. '</span></li>';
272 - }
273 - }
274 - $content .= '</div>';
275 - $content .= '</div>';
276 - $content .= '</ul>';
277 - if ($r > 10){
278 - $content .= '<button type="button" href="" style="text-decoration: none;" id="auteur" onclick="visibilite(\'auteursuite\'); return false;" >' . __('Liste complète','wp-hal'); $content .= '</button>';
279 - }
280 - }
281 - $content .= '</div>
282 - <div class="display" id="revues" style="display: none;">
283 - <h3>' . __('Revues','wp-hal').'</h3>';
284 - if(!is_null($json->facet_counts->facet_fields->journalIdTitle_fs) && !empty($json->facet_counts->facet_fields->journalIdTitle_fs)){
285 - $content .= '<span id="trirevues">';
286 - $content .= '<button type="button" class="trial" href="" id="trirev" onclick="toggleSort(this, true, \'rev\', \'revuesuite\', \'trirev\'); return false;" style="font-size:16px; text-decoration: none;" >Tri Alphabétique</button>';
287 - $content .= '<button type="button" class="trioc" href="" id="trinbrev" onclick="toggleSort(this, false, \'rev\', \'revuesuite\', \'trinbrev\'); return false;" style="font-size:16px; text-decoration: none;">Tri Occurrence</button>';
288 - $content .= '</span>';
289 - $content .= '<ul class="revues">';
290 - $content .= '<div id="rev">';
291 - $r = 0;
292 - foreach ($json->facet_counts->facet_fields->journalIdTitle_fs as $res){
293 - $r = $r+1;
294 - if ($r > 10){
295 - break;
296 - }
297 - $name = explode(delimiter,$res[0]);
298 - $content .= '<li class="metadata" data-percentage="'.$res[1].'"><a href="'. halv3 .'?q=journalId_i:' . urlencode($name[0]) . "+AND+" .get_option('option_type').':'.get_option('option_idhal').'" target="_blank">' . $name[1] . '</a><span class="nbmetadata">' .$res[1]. '</span></li>';
299 - }
300 - $i = 1;
301 - $content .= '<div id="revuesuite" style="display:none;">';
302 - foreach ($json->facet_counts->facet_fields->journalIdTitle_fs as $res){
303 - if($r < 10){
304 - break;
305 - }
306 - if ($i < $r){
307 - $i = $i+1;
308 - } else {
309 - $name = explode(delimiter,$res[0]);
310 - $content .= '<li class="metadata" data-percentage="'.$res[1].'"><a href="'. halv3 .'?q=journalId_i:' . urlencode($name[0]) . "+AND+" .get_option('option_type').':'.get_option('option_idhal').'" target="_blank">' . $name[1] . '</a><span class="nbmetadata">' .$res[1]. '</span></li>';
311 - }
312 - }
313 - $content .= '</div>';
314 - $content .= '</div>';
315 - $content .= '</ul>';
316 - if ($r > 10){
317 - $content .= '<button type="button" href="" style="text-decoration: none;" id="revue" onclick="visibiliterevues(\'revuesuite\'); return false;" >' . __('Liste complète','wp-hal'); $content .= '</button>';
318 - }
319 - }
320 - $content .= '</div>
321 - <div class="display" id="annees" style="display: none;">
322 - <h3>' . __('Année de production','wp-hal').'</h3>';
323 - if(!is_null($json->facet_counts->facet_fields->producedDateY_i) && !empty($json->facet_counts->facet_fields->producedDateY_i)){
324 - $content .= '<span id="triannees">';
325 - $content .= '<button type="button" class="trial" href="" id="trian" onclick="toggleSort(this, true, \'an\', \'annees\', \'trian\'); return false;" style="font-size:16px; text-decoration: none;" >Tri Alphabétique</button>';
326 - $content .= '<button type="button" class="trioc" href="" id="trinban" onclick="toggleSort(this, false, \'an\', \'annees\', \'trinban\'); return false;" style="font-size:16px; text-decoration: none;">Tri Occurrence</button>';
327 - $content .= '</span>';
328 - $content .= '<ul class="annees">';
329 - $content .= '<div id="an">';
330 -
331 - rsort($json->facet_counts->facet_fields->producedDateY_i);
332 - $r = 0;
333 - foreach ($json->facet_counts->facet_fields->producedDateY_i as $res){
334 - $r = $r+1;
335 - if ($r > 10){
336 - break;
337 - }
338 - $content .= '<li class="metadata" data-percentage="'.$res[1].'"><a href="'. halv3 .'?q=producedDateY_i:' . urlencode($res[0]) . "+AND+" .get_option('option_type').':'.get_option('option_idhal').'" target="_blank">' . $res[0] . '</a><span class="nbmetadata">' .$res[1]. '</span></li>';
339 - }
340 - $i = 1;
341 - $content .= '<div id="anneesuite" style="display:none;">';
342 - foreach ($json->facet_counts->facet_fields->producedDateY_i as $res){
343 - if($r < 10){
344 - break;
345 - }
346 - if ($i < $r){
347 - $i = $i+1;
348 - } else {
349 - $content .= '<li class="metadata" data-percentage="'.$res[1].'"><a href="'. halv3 .'?q=producedDateY_i:' . urlencode($res[0]) . "+AND+" .get_option('option_type').':'.get_option('option_idhal').'" target="_blank">' . $res[0] . '</a><span class="nbmetadata">' .$res[1]. '</span></li>';
350 - }
351 - }
352 - $content .= '</div>';
353 - $content .= '</div>';
354 - $content .= '</ul>';
355 - if ($r > 10){
356 - $content .= '<button type="button" href="" style="text-decoration: none;" id="annee" onclick="visibiliteannee(\'anneesuite\'); return false;" >' . __('Liste complète','wp-hal'); $content .= '</button>';
357 - }
358 - }
359 - $content .= '</div>
360 - <div class="display" id="insts" style="display: none;">
361 - <h3>' . __('Institutions','wp-hal').'</h3>';
362 - if(!is_null($json->facet_counts->facet_fields->instStructIdName_fs) && !empty($json->facet_counts->facet_fields->instStructIdName_fs)){
363 - $content .= '<span id="triinsts">';
364 - $content .= '<button type="button" class="trial" href="" id="triinst" onclick="toggleSort(this, true, \'institu\', \'instsuite\', \'triinst\'); return false;" style="font-size:16px; text-decoration: none;" >Tri Alphabétique</button>';
365 - $content .= '<button type="button" class="trioc" href="" id="trinbinst" onclick="toggleSort(this, false, \'institu\', \'instsuite\', \'trinbinst\'); return false;" style="font-size:16px; text-decoration: none;">Tri Occurrence</button>';
366 - $content .= '</span>';
367 - $content .= '<ul class="insts">';
368 - $content .= '<div id="institu">';
369 - $r = 0;
370 - foreach ($json->facet_counts->facet_fields->instStructIdName_fs as $res){
371 - $r = $r+1;
372 - if ($r > 10){
373 - break;
374 - }
375 - $name = explode(delimiter,$res[0]);
376 - $content .= '<li class="metadata" data-percentage="'.$res[1].'"><a href="'. halv3 .'?q=instStructId_i:' . urlencode($name[0]) . "+AND+" .get_option('option_type').':'.get_option('option_idhal').'" target="_blank">' . $name[1] . '</a><span class="nbmetadata">' .$res[1]. '</span></li>';
377 - }
378 - $i = 1;
379 - $content .= '<div id="instsuite" style="display:none;">';
380 - foreach ($json->facet_counts->facet_fields->instStructIdName_fs as $res){
381 - if($r < 10){
382 - break;
383 - }
384 - if ($i < $r){
385 - $i = $i+1;
386 - } else {
387 - $name = explode(delimiter,$res[0]);
388 - $content .= '<li class="metadata" data-percentage="'.$res[1].'"><a href="'. halv3 .'?q=instStructId_i:' . urlencode($name[0]) . "+AND+" .get_option('option_type').':'.get_option('option_idhal').'" target="_blank">' . $name[1] . '</a><span class="nbmetadata">' .$res[1]. '</span></li>';
389 - }
390 - }
391 - $content .= '</div>';
392 - $content .= '</div>';
393 - $content .= '</ul>';
394 - if ($r > 10){
395 - $content .= '<button type="button" href="" style="text-decoration: none;" id="inst" onclick="visibiliteinst(\'instsuite\'); return false;" >' . __('Liste complète','wp-hal'); $content .= '</button>';
396 - }
397 - }
398 - $content .= '</div>
399 - <div class="display" id="labs" style="display: none;">
400 - <h3>' . __('Laboratoires','wp-hal').'</h3>';
401 - if(!is_null($json->facet_counts->facet_fields->labStructIdName_fs) && !empty($json->facet_counts->facet_fields->labStructIdName_fs)){
402 - $content .= '<span id="trilabs">';
403 - $content .= '<button type="button" class="trial" href="" id="trilab" onclick="toggleSort(this, true, \'labo\', \'labsuite\', \'trilab\'); return false;" style="font-size:16px; text-decoration: none;" >Tri Alphabétique</button>';
404 - $content .= '<button type="button" class="trioc" href="" id="trinblab" onclick="toggleSort(this, false, \'labo\', \'labsuite\', \'trinblab\'); return false;" style="font-size:16px; text-decoration: none;">Tri Occurrence</button>';
405 - $content .= '</span>';
406 - $content .= '<ul class="labs">';
407 - $content .= '<div id="labo">';
408 -
409 - $r = 0;
410 - foreach ($json->facet_counts->facet_fields->labStructIdName_fs as $res){
411 - $r = $r+1;
412 - if ($r > 10){
413 - break;
414 - }
415 - $name = explode(delimiter,$res[0]);
416 - $content .= '<li class="metadata" data-percentage="'.$res[1].'"><a href="'. halv3 .'?q=labStructId_i:' . urlencode($name[0]) . "+AND+" .get_option('option_type').':'.get_option('option_idhal').'" target="_blank">' . $name[1] . '</a><span class="nbmetadata">' .$res[1]. '</span></li>';
417 - }
418 - $i = 1;
419 - $content .= '<div id="labsuite" style="display:none;">';
420 - foreach ($json->facet_counts->facet_fields->labStructIdName_fs as $res){
421 - if($r < 10){
422 - break;
423 - }
424 - if ($i < $r){
425 - $i = $i+1;
426 - } else {
427 - $name = explode(delimiter,$res[0]);
428 - $content .= '<li class="metadata" data-percentage="'.$res[1].'"><a href="'. halv3 .'?q=labStructId_i:' . urlencode($name[0]) . "+AND+" .get_option('option_type').':'.get_option('option_idhal').'" target="_blank">' . $name[1] . '</a><span class="nbmetadata">' .$res[1]. '</span></li>';
429 - }
430 - }
431 - $content .= '</div>';
432 - $content .= '</div>';
433 - $content .= '</ul>';
434 - if ($r > 10){
435 - $content .= '<button type="button" href="" style="text-decoration: none;" id="lab" onclick="visibilitelab(\'labsuite\'); return false;" >' . __('Liste complète','wp-hal'); $content .= '</button>';
436 - }
437 - }
438 - $content .= '</div>
439 - <div class="display" id="depts" style="display: none;">
440 - <h3>' . __('Départements','wp-hal').'</h3>';
441 - if(!is_null($json->facet_counts->facet_fields->deptStructIdName_fs) && !empty($json->facet_counts->facet_fields->deptStructIdName_fs)){
442 - $content .= '<span id="tridept">';
443 - $content .= '<button type="button" class="trial" href="" id="tridept" onclick="toggleSort(this, true, \'dpt\', \'deptsuite\', \'tridept\'); return false;" style="font-size:16px; text-decoration: none;" >Tri Alphabétique</button>';
444 - $content .= '<button type="button" class="trioc" href="" id="trinbdept" onclick="toggleSort(this, false, \'dpt\', \'deptsuite\', \'trinbdept\'); return false;" style="font-size:16px; text-decoration: none;">Tri Occurrence</button>';
445 - $content .= '</span>';
446 - $content .= '<ul class="depts">';
447 - $content .= '<div id="dpt">';
448 - $r = 0;
449 - foreach ($json->facet_counts->facet_fields->deptStructIdName_fs as $res){
450 - $r = $r+1;
451 - if ($r > 10){
452 - break;
453 - }
454 - $name = explode(delimiter,$res[0]);
455 - $content .= '<li class="metadata" data-percentage="'.$res[1].'"><a href="'. halv3 .'?q=deptStructId_i:' . urlencode($name[0]) . "+AND+" .get_option('option_type').':'.get_option('option_idhal').'" target="_blank">' . $name[1] . '</a><span class="nbmetadata">' .$res[1]. '</span></li>';
456 - }
457 - $i = 1;
458 - $content .= '<div id="deptsuite" style="display:none;">';
459 - foreach ($json->facet_counts->facet_fields->deptStructIdName_fs as $res){
460 - if($r < 10){
461 - break;
462 - }
463 - if ($i < $r){
464 - $i = $i+1;
465 - } else {
466 - $name = explode(delimiter,$res[0]);
467 - $content .= '<li class="metadata" data-percentage="'.$res[1].'"><a href="'. halv3 .'?q=deptStructId_i:' . urlencode($name[0]) . "+AND+" .get_option('option_type').':'.get_option('option_idhal').'" target="_blank">' . $name[1] . '</a><span class="nbmetadata">' .$res[1]. '</span></li>';
468 - }
469 - }
470 - $content .= '</div>';
471 - $content .= '</div>';
472 - $content .= '</ul>';
473 - if ($r > 10){
474 - $content .= '<button type="button" href="" style="text-decoration: none;" id="dept" onclick="visibilitedept(\'deptsuite\'); return false;" >' . __('Liste complète','wp-hal'); $content .= '</button>';
475 - }
476 - }
477 - $content .= '</div>
478 - <div class="display" id="equipes" style="display: none;">
479 - <h3>' . __('Équipes de recherche','wp-hal').'</h3>';
480 - if(!is_null($json->facet_counts->facet_fields->rteamStructIdName_fs) && !empty($json->facet_counts->facet_fields->rteamStructIdName_fs)){
481 - $content .= '<span id="triequipe">';
482 - $content .= '<button type="button" class="trial" href="" id="triequipe" onclick="toggleSort(this, true, \'rteam\', \'equipesuite\', \'triequipe\'); return false;" style="font-size:16px;text-decoration: none;" >Tri Alphabétique</button>';
483 - $content .= '<button type="button" class="trioc" href="" id="trinbequipe" onclick="toggleSort(this, false, \'rteam\', \'equipesuite\', \'trinbequipe\'); return false;" style="font-size:16px; text-decoration: none;">Tri Occurrence</button>';
484 - $content .= '</span>';
485 - $content .= '<ul class="equipes">';
486 - $content .= '<div id="rteam">';
487 -
488 - $r = 0;
489 - foreach ($json->facet_counts->facet_fields->rteamStructIdName_fs as $res){
490 - $r = $r+1;
491 - if ($r > 10){
492 - break;
493 - }
494 - $name = explode(delimiter,$res[0]);
495 - $content .= '<li class="metadata" data-percentage="'.$res[1].'"><a href="'. halv3 .'?q=rteamStructId_i:' . urlencode($name[0]) . "+AND+" .get_option('option_type').':'.get_option('option_idhal').'" target="_blank">' . $name[1] . '</a><span class="nbmetadata">' .$res[1]. '</span></li>';
496 - }
497 - $i = 1;
498 - $content .= '<div id="equipesuite" style="display:none;">';
499 - foreach ($json->facet_counts->facet_fields->rteamStructIdName_fs as $res){
500 - if($r < 10){
501 - break;
502 - }
503 - if ($i < $r){
504 - $i = $i+1;
505 - } else {
506 - $content .= '<li class="metadata" data-percentage="'.$res[1].'"><a href="'. halv3 .'?q=rteamStructId_i:' . urlencode($name[0]) . "+AND+" .get_option('option_type').':'.get_option('option_idhal').'" target="_blank">' . $name[1] . '</a><span class="nbmetadata">' .$res[1]. '</span></li>';
507 - }
508 - }
509 - $content .= '</div>';
510 - $content .= '</div>';
511 - $content .= '</ul>';
512 - if ($r > 10){
513 - $content .= '<button type="button" href="" style="text-decoration: none;" id="equipe" onclick="visibiliteequipe(\'equipesuite\'); return false;" >' . __('Liste complète','wp-hal'); $content .= '</button>';
514 - }
515 - }
516 - $content .= '</div>
517 - <div class="display" id="publications">
518 - <h3>' . __('Publications','wp-hal').'</h3>';
519 - $content .= '<div class="counter-doc">' . __('Nombre de documents', 'wp-hal');
520 -
521 - if (get_option('option_groupe')=='grouper'){
522 -
523 -//LISTE DES DOCUMENTS PAR GROUPE
524 -
525 - $content .='<h2 class="nbdoc">' . $json->grouped->docType_s->matches . '</h2></div>';
526 - $content .= '<ul style="list-style-type: none;">';
527 - for($i=0; $json->grouped->docType_s->groups[$i] != null ; $i++){
528 - for($d=0; $jsontype->response->result->doc[$d] != null; $d++ ){
529 - if ($json->grouped->docType_s->groups[$i]->groupValue == $jsontype->response->result->doc[$d]->str[0]){
530 - $titre=$jsontype->response->result->doc[$d]->str[1];
531 - }
532 - }
533 - $content .= '<li><div class="grp-div"><h3>' . $titre . '<span class="nbmetadata" style="margin-left:10px;">' . $json->grouped->docType_s->groups[$i]->doclist->numFound .' ' . _n('document','documents',$json->grouped->docType_s->groups[$i]->doclist->numFound,'wp-hal') .'</span></h3>';
534 - $content .= '<div class="grp-content">';
535 - $content .= '<ul>';
536 - foreach ($json->grouped->docType_s->groups[$i]->doclist->docs as $result){
537 - $content .= '<li>' . $result->citationFull_s . '</li>';
538 - }
539 - $content .= '</ul></div>';
540 - $content .= '</div></li>';
541 - }
542 - $content .= '</ul>';
543 - } elseif(get_option('option_groupe')=='paginer'){
544 -
545 -//LISTE DES DOCUMENTS AVEC PAGINATION
546 -
547 - $content .='<h2 class="nbdoc">' . $json->response->numFound . '</h2></div>';
548 -
549 -//--MODULE PAGINATION--//
550 - $messagesParPage = 10;
551 -
552 - $total = $json->response->numFound;
553 -
554 - $nombreDePages = ceil($total / $messagesParPage);
555 -
556 - if (isset($paged)) {
557 - $pageActuelle = intval($paged);
558 -
559 - if ($pageActuelle > $nombreDePages) {
560 - $pageActuelle = $nombreDePages;
561 - }
562 - } else {
563 - $pageActuelle = 1;
564 - }
565 - $premiereEntree = ($pageActuelle - 1) * $messagesParPage;
566 -
567 - $url = api . '?q=*:*&fq='.get_option('option_type').':('. urlencode(get_option('option_idhal')).')&fl=docid,citationFull_s,keyword_s,bookTitle_s,producedDate_s,authFullName_s&start=' .$premiereEntree . '&rows=' . $messagesParPage . '&sort=' . producedDateY . '&wt=json';
568 - $ch = curl_init($url);
569 -// Options
570 - $options = array(
571 - CURLOPT_RETURNTRANSFER => true,
572 - CURLOPT_HTTPHEADER => array('Content-type: application/json'),
573 - CURLOPT_TIMEOUT => 10,
574 - );
575 -
576 -// Bind des options et de l'objet cURL que l'on va utiliser
577 - curl_setopt_array($ch, $options);
578 -// Récupération du résultat JSON
579 - $json = json_decode(curl_exec($ch));
580 - curl_close($ch);
581 -
582 -
583 -//--MODULE PAGINATION--//
584 -
585 - $content .= '<ul>';
586 - for ($i = 0; $json->response->docs[$i]!= ''; $i++){
587 - $content .= '<li>' . $json->response->docs[$i]->citationFull_s . '</li>';
588 - }
589 - $content .= '</ul>';
590 -
591 -//--AFFICHAGE PAGINATION--//
592 - $precedents=$pageActuelle-2;
593 - $suivants= $pageActuelle+2;
594 - $precedent=$pageActuelle-1;
595 - $suivant= $pageActuelle+1;
596 - $penultimate = $nombreDePages - 1;
597 -
598 - $content .= '<ul class="pagination">';
599 -//--BOUTON PRECEDENT--//
600 - if($pageActuelle == 1){
601 - $content .= '<li class="disabled"><a href="#">&laquo;</a></li>';
602 - }
603 - else{
604 - $content .= '<li><a href="?paged='.$precedent.'">&laquo;</a></li>';
605 - }
606 - if($nombreDePages <= 6){// Cas 1 : 6 pages ou moins - Pas de troncature
607 - for ($i = 1; $i <= $nombreDePages; $i++) {
608 - if ($i == $pageActuelle) {
609 - $content .= '<li class="active"><a href="#">'.$i.'</a></li>';
610 - }
611 - else {
612 - $content .= ' <li><a href="?paged='.$i.'">' . $i . '</a></li> ';
613 - }
614 - }
615 - }
616 - elseif($nombreDePages >= 7){// Cas 2 : 7 pages ou plus - Troncature
617 - if($pageActuelle <= 3){// Lorsque l'on est sur les trois premières pages
618 - for($i = 1; $i <= 4; $i++){
619 - if ($i == $pageActuelle) {
620 - $content .= '<li class="active"><a href="#">'.$i.'</a></li>';
621 - }
622 - else {
623 - $content .= '<li><a href="?paged='.$i.'">'.$i.'</a></li>';
624 - }
625 - }
626 - $content .= '<li class="disabled"><a href="#">&hellip;</a></li>';
627 - $content .= '<li><a href="?paged='.$penultimate.'">'.$penultimate.'</a></li>';
628 - $content .= '<li><a href="?paged='.$nombreDePages.'">'.$nombreDePages.'</a></li>';
629 - }
630 - if($pageActuelle >=4 && $pageActuelle <= $penultimate-2){//Lorsque l'on arrive sur la quatrième page
631 - $content .= '<li><a href="?paged=">1</a></li>';
632 - $content .= '<li class="disabled"><a href="#">&hellip;</a></li>';
633 - $content .= '<li><a href="?paged='.$precedents.'">'.$precedents.'</a></li>';
634 - $content .= '<li><a href="?paged='.$precedent.'">'.$precedent.'</a></li>';
635 - $content .= '<li class="active"><a href="#">'.$pageActuelle.'</a></li>';
636 - $content .= '<li><a href="?paged='.$suivant.'">'.$suivant.'</a></li>';
637 - $content .= '<li><a href="?paged='.$suivants.'">'.$suivants.'</a></li>';
638 - $content .= '<li class="disabled"><a href="#">&hellip;</a></li>';
639 - $content .= '<li><a href="?paged='.$nombreDePages.'">'.$nombreDePages.'</a></li>';
640 - }
641 - if($pageActuelle >= $penultimate-1){
642 - $content .= '<li><a href="?paged=1">1</a></li>';
643 - $content .= '<li><a href="?paged=2">2</a></li>';
644 - $content .= '<li class="disabled"><a href="#">&hellip;</a></li>';
645 - for($i = $penultimate-2; $i <= $nombreDePages; $i++){
646 - if ($i == $pageActuelle) {
647 - $content .= '<li class="active"><a href="#">'.$i.'</a></li>';
648 - }
649 - else {
650 - $content .= '<li><a href="?paged='.$i.'">'.$i.'</a></li>';
651 - }
652 - }
653 - }
654 - }
655 -//--BOUTON SUIVANT--//
656 - if($pageActuelle<$nombreDePages){
657 - $content .= '<li><a href="?paged='.$suivant.'">&raquo;</a></li>';
658 - }
659 - else{
660 - $content .= '<li class="disabled"><a href="#">&raquo;</a></li>';
661 - }
662 - $content .= '</ul>';
663 -//--AFFICHAGE PAGINATION--//
664 - }
665 - $content .='</div>
666 - </div>
667 -</div>';
668 -
669 - $content .= '<div class="modal-footer">';
670 - $content .= '<p style="color:#B3B2B0">' . __("Documents récupérés de l'archive ouverte HAL",'wp-hal') . '&nbsp;<a href="' . site . '" target="_blank"><img alt="logo" src=" ' . plugin_dir_url( __FILE__ ) . 'img/logo-hal.svg" style="width:32px;"></a></p>';
671 - $content .= '</div>';
672 -
673 - return $content;
674 -}
675 -
676 -function wp_adding_style() {
677 - wp_register_style('wp-hal-style1', plugins_url('/css/style.css', __FILE__));
678 - wp_register_style('wp-hal-style2', plugins_url('/css/jquery.jqplot.css', __FILE__));
679 -
680 - wp_enqueue_style('wp-hal-style1');
681 - wp_enqueue_style('wp-hal-style2');
682 -}
683 -
684 -function wp_adding_script() {
685 - wp_register_script('wp-hal-script1',plugins_url('/js/jquery.jqplot.js', __FILE__));
686 - wp_register_script('wp-hal-script2',plugins_url('/js/jqplot.highlighter.js', __FILE__));
687 - wp_register_script('wp-hal-script3',plugins_url('/js/jqplot.pieRenderer.js', __FILE__));
688 - wp_register_script('wp-hal-script4',plugins_url('/js/cv-hal.js', __FILE__));
689 -
690 -
691 - wp_enqueue_script("jquery");
692 - wp_enqueue_script('wp-hal-script1');
693 - wp_enqueue_script('wp-hal-script2');
694 - wp_enqueue_script('wp-hal-script3');
695 - wp_enqueue_script('wp-hal-script4');
696 -
697 -
698 -
699 - $url = api . '?q=*:*&fq='. get_option('option_type').':('. urlencode(get_option('option_idhal')).')&fl=docid,citationFull_s&facet.field='. lang .'domainAllCodeLabel_fs&facet.field=keyword_s&facet.field=journalIdTitle_fs&facet.field=producedDateY_i&facet.field=authIdLastNameFirstName_fs&facet.mincount=1&facet=true&wt=json&json.nl=arrarr';
700 - $ch = curl_init($url);
701 - // Options
702 - $options = array(
703 - CURLOPT_RETURNTRANSFER => true,
704 - CURLOPT_HTTPHEADER => array('Content-type: application/json'),
705 - CURLOPT_TIMEOUT => 10,
706 - );
707 -
708 - // Bind des options et de l'objet cURL que l'on va utiliser
709 - curl_setopt_array($ch, $options);
710 - // Récupération du résultat JSON
711 - $json = json_decode(curl_exec($ch));
712 - curl_close($ch);
713 - if (locale == 'fr_FR') {
714 - $facetdomain = $json->facet_counts->facet_fields->fr_domainAllCodeLabel_fs;
715 - } elseif (locale == 'en_US') {
716 - $facetdomain = $json->facet_counts->facet_fields->en_domainAllCodeLabel_fs;
717 - } elseif (locale == 'es_ES') {
718 - $facetdomain = $json->facet_counts->facet_fields->es_domainAllCodeLabel_fs;
719 - } else {
720 - $facetdomain = $json->facet_counts->facet_fields->eu_domainAllCodeLabel_fs;
721 - }
722 - if(!is_null($facetdomain)){
723 - foreach ($facetdomain as $res){
724 - $name = explode(delimiter,$res[0])[1];
725 - $value = $res[1];
726 - $array[] = array($name,$value);
727 - }
728 - }
729 - wp_localize_script('wp-hal-script4', 'WPWallSettings', json_encode($array));
730 - $translation = array ('liste' => __('Liste', 'wp-hal'), 'compl' => __('Liste complète', 'wp-hal'), 'princ' => __('Liste principale', 'wp-hal'), 'graph' => __('Graphique', 'wp-hal'), 'nuage' => __('Nuage de mots', 'wp-hal'));
731 - wp_localize_script('wp-hal-script4', 'translate', $translation);
732 -}
733 -
734 -/**
735 - * Récupère les fichiers css et js
736 - */
737 -add_action( 'wp_enqueue_scripts', 'wp_adding_style' );
738 -add_action( 'wp_enqueue_scripts', 'wp_adding_script' );
739 -
740 -/**
741 - * Charge lorsque le plugin est désactivé
742 - */
743 -register_deactivation_hook( __FILE__, 'reset_option' );
744 -
745 -/**
746 - * Ajoute le widget wphal à l'initialisation des widgets
747 - */
748 -add_action('widgets_init','wphal_init');
749 -
750 -/**
751 - * Ajoute le menu à l'initialisation du menu admin
752 - */
753 -add_action( 'admin_menu', 'wphal_menu' );
754 -
755 -/**
756 - * Fonction de création du menu
757 - */
758 -function wphal_menu() {
759 - add_menu_page( 'Options', 'Hal', 'manage_options', 'wp-hal.php', 'wphal_option' , '', 21);
760 -
761 - add_action( 'admin_init', 'register_settings' );
762 -}
763 -
764 -
765 -/**
766 - * Initialise le nouveau widget
767 - */
768 -function wphal_init(){
769 - register_widget("wphal_widget");
770 -}
771 -
772 -/***********************************************************************************************************************
773 - * PLUGIN WIDGET
774 - **********************************************************************************************************************/
775 -
776 -/**
777 - * Classe du widget wphal
778 - */
779 -
780 -class wphal_widget extends WP_widget{
781 -
782 -
783 - /**
784 - * Défini les propriétés du widget
785 - */
786 - function wphal_widget(){
787 - $options = array(
788 - "classname" => "wphal-publications",
789 - "description" => __("Afficher les dernières publications d'un auteur ou d'une structure.", 'wp-hal')
790 - );
791 -
792 - parent::__construct(
793 - 'hal-publications',
794 - __("Publications récentes", 'wp-hal'),
795 - $options
796 - );
797 - }
798 -
799 - /**
800 - * Crée le widget
801 - * @param $args
802 - * @param $instance
803 - */
804 - function widget($args, $instance){
805 - $num = 5;
806 - $url = api .'?q=*:*&fq='.$instance['select'].':' . $instance['idhal'] . '&fl=uri_s,title_s&sort=' . producedDateY . '&rows=' . $num . '&wt=json';
807 -
808 - $ch = curl_init($url);
809 - // Options
810 - $options = array(
811 - CURLOPT_RETURNTRANSFER => true,
812 - CURLOPT_HTTPHEADER => array('Content-type: application/json'),
813 - CURLOPT_TIMEOUT => 10,
814 - );
815 -
816 - // Bind des options et de l'objet cURL que l'on va utiliser
817 - curl_setopt_array($ch, $options);
818 - // Récupération du résultat JSON
819 - $json = json_decode(curl_exec($ch));
820 - curl_close($ch);
821 -
822 - $content = '<ul class="ul-widget">';
823 - for ($i = 0; $i < $num; $i++){
824 - $content .= '<li class="li-widget"><a href="' . $json->response->docs[$i]->uri_s . '" target="_blank">' . $json->response->docs[$i]->title_s[0] . '</a></li>';
825 - }
826 - $content .= '</ul>';
827 -
828 - extract($args);
829 - echo $before_widget;
830 - echo $before_title.$instance['titre'].$after_title;
831 - echo $content;
832 - echo $after_widget;
833 - }
834 -
835 - /**
836 - * Sauvegarde des données
837 - * @param $new
838 - * @param $old
839 - */
840 - function update($new, $old){
841 - return $new;
842 - }
843 -
844 - /**
845 - * Formulaire du widget
846 - * @param $instance
847 - */
848 - function form($instance){
849 -
850 - $defaut = array(
851 - 'titre' => __("Publications récentes", 'wp-hal'),
852 - 'select' => "authIdHal_s"
853 - );
854 - $instance = wp_parse_args($instance,$defaut);
855 - ?>
856 - <p>
857 - <label for="<?php echo $this->get_field_id("titre");?>"><?php echo __('Titre :','wp-hal')?></label>
858 - <input value="<?php echo $instance['titre'];?>" name="<?php echo $this->get_field_name("titre");?>" id="<?php echo $this->get_field_id("titre");?>" class="widefat" type="text"/>
859 - </p>
860 - <p>
861 - <select id="<?php echo $this->get_field_id("select");?>" name="<?php echo $this->get_field_name("select");?>">
862 - <option id="<?php echo $this->get_field_id("Idhal");?>" value="authIdHal_s" <?php echo ($instance["select"] == "authIdHal_s")?'selected':''; ?>><label for="<?php echo $this->get_field_id("Idhal");?>">Id Hal</label><span style="font-style: italic;"> <?php echo __('(Exemple : laurent-capelli)','wp-hal');?></span></option>
863 - <option id="<?php echo $this->get_field_id("Structid");?>" value="authStructId_i" <?php echo ($instance["select"] == "authStructId_i")?'selected':''; ?>><label for="<?php echo $this->get_field_id("Structid");?>">Struct Id</label><span style="font-style: italic;"> <?php echo __('(Exemple : 129)','wp-hal');?></span></option>
864 - <option id="<?php echo $this->get_field_id("Anrproject");?>" value="anrProjectId_i" <?php echo ($instance["select"] == "anrProjectId_i")?'selected':''; ?>><label for="<?php echo $this->get_field_id("Anrproject");?>">anrProject Id</label><span style="font-style: italic;"> <?php echo __('(Exemple : 1646)','wp-hal');?></span></option>
865 - <option id="<?php echo $this->get_field_id("Europeanproject");?>" value="europeanProjectId_i" <?php echo ($instance["select"] == "europeanProjectId_i")?'selected':''; ?>><label for="<?php echo $this->get_field_id("Europeanproject");?>">europeanProject Id</label><span style="font-style: italic;"> <?php echo __('(Exemple : 17877)','wp-hal');?></span></option>
866 - <option id="<?php echo $this->get_field_id("Collection");?>" value="collCode_s" <?php echo ($instance["select"] == "collCode_s")?'selected':''; ?>><label for="<?php echo $this->get_field_id("Collection");?>">Collection</label><span style="font-style: italic;"> <?php echo __('(Exemple : TICE2014)','wp-hal');?></span></option>
867 - </select>
868 - </p>
869 - <p>
870 - <label for="<?php echo $this->get_field_id("idhal");?>">Id :</label>
871 - <input value="<?php echo $instance['idhal'];?>" name="<?php echo $this->get_field_name("idhal");?>" id="<?php echo $this->get_field_id("idhal");?>" class="widefat" type="text"/>
872 - </p>
873 - <?php
874 - }
875 -}
876 -
877 -
878 -function register_settings() {
879 - register_setting( 'wphal_option', 'option_choix' );
880 - register_setting( 'wphal_option', 'option_type' );
881 - register_setting( 'wphal_option', 'option_groupe' );
882 - register_setting( 'wphal_option', 'option_idhal' );
883 - register_setting( 'wphal_option', 'option_lang' );
884 - register_setting( 'wphal_option', 'option_email' );
885 - register_setting( 'wphal_option', 'option_tel' );
886 - register_setting( 'wphal_option', 'option_social0' );
887 - register_setting( 'wphal_option', 'option_social1' );
888 - register_setting( 'wphal_option', 'option_social2' );
889 - register_setting( 'wphal_option', 'option_social3' );
890 -}
891 -
892 -/**
893 - * Crée le menu d'option du plugin
894 - */
895 -function wphal_option() {
896 -
897 - if (get_option('option_type')==''){
898 - update_option('option_type', 'authIdHal_s');
899 - }
900 - if (get_option('option_groupe')==''){
901 - update_option('option_groupe', 'paginer');
902 - }
903 - ?>
904 - <div class="wrap">
905 - <h2><?php echo __('Plugin HAL','wp-hal');?></h2>
906 - <form method="post" enctype="multipart/form-data" action="options.php">
907 - <div id="poststuff">
908 - <div id="post-body" class="metabox-holder columns-2">
909 - <div id="post-body-content">
910 - <?php settings_fields( 'wphal_option' ); ?>
911 - <?php do_settings_sections( 'wphal_option' ); ?>
912 - <table class="form-table">
913 - <tr valign="top">
914 - <th scope="row" style="font-size: 18px;"><?php echo __('Paramètre de la page :','wp-hal');?></th>
915 - </tr>
916 - <tr valign="top">
917 - <th scope="row"><?php echo __('Type d\'Id','wp-hal');?></th>
918 - <td><select name="option_type">
919 - <option id="Idhal" value="authIdHal_s" <?php echo (get_option('option_type') == "authIdHal_s")?'selected':''; ?>><label for="Idhal">Id Hal</label><span style="font-style: italic;"> <?php echo __('(Exemple : laurent-capelli)','wp-hal');?></span></option>
920 - <option id="Structid" value="authStructId_i" <?php echo (get_option('option_type') == "authStructId_i")?'selected':''; ?>><label for="Structid">Struct Id</label><span style="font-style: italic;"> <?php echo __('(Exemple : 129)','wp-hal');?></span></option>
921 - <option id="Anrproject" value="anrProjectId_i" <?php echo (get_option('option_type') == "anrProjectId_i")?'selected':''; ?>><label for="Anrproject">anrProject Id</label><span style="font-style: italic;"> <?php echo __('(Exemple : 1646)','wp-hal');?></span></option>
922 - <option id="Europeanproject" value="europeanProjectId_i" <?php echo (get_option('option_type') == "europeanProjectId_i")?'selected':''; ?>><label for="Europeanproject">europeanProject Id</label><span style="font-style: italic;"> <?php echo __('(Exemple : 17877)','wp-hal');?></span></option>
923 - <option id="Collection" value="collCode_s" <?php echo (get_option('option_type') == "collCode_s")?'selected':''; ?>><label for="Collection">Collection</label><span style="font-style: italic;"> <?php echo __('(Exemple : TICE2014)','wp-hal');?></span></option>
924 - </select>
925 - <input type="text" name="option_idhal" id="option_idhal" value="<?php echo get_option('option_idhal'); ?>"/>
926 - </td>
927 - </tr>
928 - <tr valign="top">
929 - <th scope="row"><?php echo __('Affichage des documents','wp-hal');?></th>
930 - <td><input type="radio" name="option_groupe" id="paginer" value="paginer" <?php echo (get_option('option_groupe') == "paginer")?'checked':''; ?>><label for="paginer"><?php echo __('Documents avec pagination','wp-hal');?></label><br>
931 - <input type="radio" name="option_groupe" id="grouper" value="grouper" <?php echo (get_option('option_groupe') == "grouper")?'checked':''; ?>><label for="grouper"><?php echo __('Documents groupés par type','wp-hal');?></label><br>
932 - </td>
933 - </tr>
934 - <tr valign="top">
935 - <th scope="row"><?php echo __('Choix des éléments menu','wp-hal');?></th>
936 - <td><input type="checkbox" name="option_choix[1]" id="Contact" value="contact" <?php echo (get_option('option_choix')[1] == "contact")?'checked':''; ?>><label for="Contact"><?php echo __('Contact','wp-hal');?></label><br/>
937 - <input type="checkbox" name="option_choix[2]" id="Disciplines" value="disciplines" <?php echo (get_option('option_choix')[2] == "disciplines")?'checked':''; ?>><label for="Disciplines"><?php echo __('Disciplines','wp-hal');?></label><br/>
938 - <input type="checkbox" name="option_choix[3]" id="Mots-clefs" value="mots-clefs" <?php echo (get_option('option_choix')[3] == "mots-clefs")?'checked':''; ?>><label for="Mots-clefs"><?php echo __('Mots-clefs','wp-hal');?></label><br/>
939 - <input type="checkbox" name="option_choix[4]" id="Auteurs" value="auteurs" <?php echo (get_option('option_choix')[4] == "auteurs")?'checked':''; ?>><label for="Auteurs"><?php echo __('Auteurs','wp-hal');?></label><br/>
940 - <input type="checkbox" name="option_choix[5]" id="Revues" value="revues" <?php echo (get_option('option_choix')[5] == "revues")?'checked':''; ?>><label for="Revues"><?php echo __('Revues','wp-hal');?></label><br/>
941 - <input type="checkbox" name="option_choix[6]" id="Annee" value="annee" <?php echo (get_option('option_choix')[6] == "annee")?'checked':''; ?>><label for="Annee"><?php echo __('Année de production','wp-hal');?></label><br/>
942 - <input type="checkbox" name="option_choix[7]" id="Institution" value="institution" <?php echo (get_option('option_choix')[7] == "institution")?'checked':''; ?>><label for="Institution"><?php echo __('Institutions','wp-hal');?></label><br/>
943 - <input type="checkbox" name="option_choix[8]" id="Laboratoire" value="laboratoire" <?php echo (get_option('option_choix')[8] == "laboratoire")?'checked':''; ?>><label for="Laboratoire"><?php echo __('Laboratoires','wp-hal');?></label><br/>
944 - <input type="checkbox" name="option_choix[9]" id="Departement" value="departement" <?php echo (get_option('option_choix')[9] == "departement")?'checked':''; ?>><label for="Departement"><?php echo __('Départements','wp-hal');?></label><br/>
945 - <input type="checkbox" name="option_choix[10]" id="Equipe" value="equipe" <?php echo (get_option('option_choix')[10] == "equipe")?'checked':''; ?>><label for="Equipe"><?php echo __('Équipes de recherche','wp-hal');?></label>
946 - </td>
947 - </tr>
948 - <tr valign="top">
949 - <th scope="row" style="font-size: 18px;"><?php echo __('Contact :','wp-hal');?></th>
950 - </tr>
951 - <tr valign="top">
952 - <th scope="row"><?php echo __('Email','wp-hal');?></th>
953 - <td><input type="text" name="option_email" id="option_email" value="<?php echo get_option('option_email'); ?>"/><img alt="email" src="<?php echo plugin_dir_url( __FILE__ ) ?>img/mail.svg" style="vertical-align:middle; width:32px; margin-left:2px; margin-right:2px;"/></td>
954 - </tr>
955 - <tr valign="top">
956 - <th scope="row"><?php echo __('Téléphone','wp-hal');?></th>
957 - <td><input type="text" name="option_tel" id="option_tel" value="<?php echo get_option('option_tel');?>"/><img alt="phone" src="<?php echo plugin_dir_url( __FILE__ ) ?>img/phone.svg" style="vertical-align:middle; width:32px; margin-left:2px; margin-right:2px;"/></td>
958 - </tr>
959 - <tr>
960 - <th>Facebook</th>
961 - <td>http://www.facebook.com/<input type="text" name="option_social0" id="option_social0" value="<?php echo get_option('option_social0'); ?>"/><img alt="facebook" src="<?php echo plugin_dir_url( __FILE__ ) ?>img/facebook.svg" style="vertical-align:middle; width:32px; margin-left:2px; margin-right:2px;"/></td>
962 - </tr>
963 - <tr>
964 - <th>Twitter</th>
965 - <td>http://www.twitter.com/<input type="text" name="option_social1" id="option_social1" value="<?php echo get_option('option_social1'); ?>"/><img alt="twitter" src="<?php echo plugin_dir_url( __FILE__ ) ?>img/twitter.svg" style="vertical-align:middle; width:32px; margin-left:2px; margin-right:2px;"/></td>
966 - </tr>
967 - <tr>
968 - <th>Google +</th>
969 - <td>https://plus.google.com/u/0/+<input type="text" name="option_social2" id="option_social2" value="<?php echo get_option('option_social2'); ?>"/><img alt="google" src="<?php echo plugin_dir_url( __FILE__ ) ?>img/google-plus.svg" style="vertical-align:middle; width:32px; margin-left:2px; margin-right:2px;"/></td>
970 - </tr>
971 - <tr>
972 - <th>LinkedIn</th>
973 - <td>https://www.linkedin.com/in/<input type="text" name="option_social3" id="option_social3" value="<?php echo get_option('option_social3'); ?>"/><img alt="linkedin" src="<?php echo plugin_dir_url( __FILE__ ) ?>img/linkedin.svg" style="vertical-align:middle; width:32px; margin-left:2px; margin-right:2px;"/></td>
974 - </tr>
975 - </table>
976 - <?php
977 - $verifsolr = explode(',',get_option('option_idhal'));
978 - $numverif = count($verifsolr);
979 - $idhal = '';
980 - if ($numverif<1024){
981 - $idhal = str_replace(',',' OR ',get_option('option_idhal'));
982 - } else {
983 - $listidhal = explode(',',get_option('option_idhal'));
984 - for($i=0;$i<1024;$i++){
985 - if ($i == 0){
986 - $idhal = $listidhal[$i];
987 - } else {
988 - $idhal .= ' OR ';
989 - $idhal .= $listidhal[$i];
990 - }
991 - }
992 - }
993 - update_option('option_idhal', $idhal);
994 - submit_button(__('Enregistrer','wp-hal'), 'primary large', 'submit', true); ?>
995 - </div>
996 - <div id="postbox-container-1" class="postbox-container">
997 -
998 - </div>
999 - </div>
1000 - <br class="clear"><br/>
1001 - </div>
1002 - </form>
1003 -
1004 - </div>
1005 -
1006 -<?php
1007 -}
1008 -
1009 -
1010 -/**
1011 - * Reset les données Hal
1012 - */
1013 -function reset_option() {
1014 - delete_option('option_choix');
1015 - delete_option('option_type');
1016 - delete_option('option_groupe');
1017 - delete_option('option_idhal');
1018 - delete_option('option_lang');
1019 - delete_option('option_email');
1020 - delete_option('option_tel');
1021 - delete_option('option_social0');
1022 - delete_option('option_social1');
1023 - delete_option('option_social2');
1024 - delete_option('option_social3');
1025 -}
1 +<?php
2 +/**
3 + * Plugin Name: HAL
4 + * Plugin URI: http://www.ccsd.cnrs.fr
5 + * Description: Crée une page qui remonte les publications d'un auteur ou d'une structure en relation avec HAL et un widget des dernières publications d'un auteur ou d'une structure.
6 + * Version: 2.0.7
7 + * Author: Baptiste Blondelle
8 + * Author URI: http://www.ccsd.cnrs.fr
9 + * Text Domain: wp-hal
10 + * Domain Path: /lang/
11 + */
12 +
13 +
14 +// Traduction de la description
15 +__("Crée une page qui remonte les publications d'un auteur ou d'une structure en relation avec HAL et un widget des dernières publications d'un auteur ou d'une structure.", "wp-hal");
16 +
17 +//Récupère les constantes
18 +require_once("constantes.php");
19 +
20 +
21 +if (locale == 'fr_FR') {
22 + define('lang', 'fr');
23 +} elseif (locale == 'es_ES') {
24 + define('lang', 'es');
25 +} else {
26 + define('lang', 'en');
27 +}
28 +
29 +// Création du shortcode ('nom du shortcode', 'fonction appelée')
30 +add_shortcode( 'cv-hal', 'cv_hal' );
31 +add_shortcode( 'nb-doc', 'nb_doc' );
32 +
33 +
34 +function charger_languages() {
35 + load_plugin_textdomain('wp-hal', false, dirname(plugin_basename(__FILE__)) . '/lang/');
36 +}
37 +
38 +add_action('plugins_loaded', 'charger_languages');
39 +
40 +function hal_plugin_action_links( $links, $file ) {
41 + if ( $file != plugin_basename( __FILE__ ))
42 + return $links;
43 +
44 + $settings_link = '<a href="admin.php?page=wp-hal.php">' . __( 'Paramètres', 'wp-hal' ) . '</a>';
45 +
46 + array_unshift( $links, $settings_link );
47 +
48 + return $links;
49 +}
50 +
51 +
52 +add_filter( 'plugin_action_links', 'hal_plugin_action_links',10,2);
53 +
54 +
55 +/***********************************************************************************************************************
56 + * PLUGIN SHORTCODE ND-DOC
57 + **********************************************************************************************************************/
58 +function nb_doc($param)
59 +{
60 + $idhal = verifSolr(get_option('option_idhal'));
61 + extract(shortcode_atts(array(
62 + 'type' => get_option('option_type'),
63 + 'id' => $idhal
64 + ),
65 + $param
66 + ));
67 + $id = verifSolr($id);
68 +
69 + $url = api . '?q=*:*&fq=' . $type . ':(' . urlencode($id) . ')&rows=0&wt=json';
70 + $ch = curl_init($url);
71 + // Options
72 + $options = array(
73 + CURLOPT_RETURNTRANSFER => true,
74 + CURLOPT_HTTPHEADER => array('Content-type: application/json'),
75 + CURLOPT_TIMEOUT => 10,
76 + CURLOPT_USERAGENT => "HAL Plugin Wordpress " . version
77 + );
78 +
79 + // Bind des options et de l'objet cURL que l'on va utiliser
80 + curl_setopt_array($ch, $options);
81 + // Récupération du résultat JSON
82 + $json = json_decode(curl_exec($ch));
83 + curl_close($ch);
84 +
85 + return $json->response->numFound;
86 +}
87 +/***********************************************************************************************************************
88 + * PLUGIN SHORTCODE CV-HAL
89 + **********************************************************************************************************************/
90 +function cv_hal($param){
91 + if ( !function_exists('curl_init' ) ) {
92 + echo 'Please check the';?> <a href="https://wordpress.org/plugins/hal/faq/" target="_blank" id="curl">FAQ</a><?php echo ' with the code : CURL';
93 + } else {
94 +
95 + if(in_array('disciplines', get_option('option_choix'))){ //Lance les scripts pour le Graphique
96 + wp_enqueue_style('wp-hal-style2');
97 +
98 + wp_enqueue_script('wp-hal-script1');
99 + wp_enqueue_script('wp-hal-script2');
100 + wp_enqueue_script('wp-hal-script3');
101 + }
102 +
103 + if (get_option('option_idhal') != '') {
104 + $idhal = verifSolr(get_option('option_idhal'));
105 + extract(shortcode_atts(array(
106 + 'type' => get_option('option_type'),
107 + 'id' => $idhal,
108 + 'contact' => get_option('option_infocontact')
109 + ),
110 + $param
111 + ));
112 + $id = verifSolr($id);
113 +
114 + if (get_option('option_groupe') == 'grouper') {
115 + //cURL sur l'API pour récupérer les données
116 + $url = api . '?q=*:*&fq=' . $type . ':(' . urlencode($id) . ')&group=true&group.field=docType_s&group.limit=1000&fl=docid,citationFull_s&facet.field=' . lang . '_domainAllCodeLabel_fs&facet.field=keyword_s&facet.field=journalIdTitle_fs&facet.field=producedDateY_i&facet.field=authIdLastNameFirstName_fs&facet.field=instStructIdName_fs&facet.field=labStructIdName_fs&facet.field=deptStructIdName_fs&facet.field=rteamStructIdName_fs&facet.mincount=1&facet=true&sort=' . producedDateY . '&wt=json&json.nl=arrarr';
117 + } elseif (get_option('option_groupe') == 'paginer') {
118 + $url = api . '?q=*:*&fq=' . $type . ':(' . urlencode($id) . ')&fl=docid,citationFull_s&facet.field=' . lang . '_domainAllCodeLabel_fs&facet.field=keyword_s&facet.field=journalIdTitle_fs&facet.field=producedDateY_i&facet.field=authIdLastNameFirstName_fs&facet.field=instStructIdName_fs&facet.field=labStructIdName_fs&facet.field=deptStructIdName_fs&facet.field=rteamStructIdName_fs&facet.mincount=1&facet=true&sort=' . producedDateY . '&wt=json&json.nl=arrarr';
119 + }
120 +
121 + $ch = curl_init($url);
122 + // Options
123 + $options = array(
124 + CURLOPT_RETURNTRANSFER => true,
125 + CURLOPT_HTTPHEADER => array('Content-type: application/json'),
126 + CURLOPT_TIMEOUT => 10,
127 + CURLOPT_USERAGENT => "HAL Plugin Wordpress " . version
128 + );
129 +
130 + // Bind des options et de l'objet cURL que l'on va utiliser
131 + curl_setopt_array($ch, $options);
132 + // Récupération du résultat JSON
133 + $json = json_decode(curl_exec($ch));
134 + curl_close($ch);
135 +
136 + $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
137 +
138 + $content = '<div id="wphal-content">
139 + <ul id="wphal-menu">';
140 + $content .= '<li><a href="#publications" onclick="displayElem(\'publications\'); return false;" style="font-size:18px; text-decoration: none;">' . __('Publications', 'wp-hal') . '</a></li>';
141 + if (is_array(get_option('option_choix'))) {
142 + $content .= '<li><a href="#filtres" onclick="return false;" style="font-size:18px; text-decoration: none; cursor:default;">' . __('Filtres', 'wp-hal') . '</a>';
143 + $content .= '<ul id="wphal-filtres">';
144 + foreach (get_option('option_choix') as $option) {
145 + if ($option == 'contact') {
146 + $content .= '<li><a href="#contact" onclick="displayElem(\'wphal-contact\'); return false;" style="margin:1px; text-decoration: none;">' . __('Contact', 'wp-hal');
147 + $content .= '</a></li>';
148 + }
149 + if ($option == 'disciplines') {
150 + $content .= '<li><a href="#disciplines" onclick="displayElem(\'wphal-disciplines\'); return false;" style="margin:1px; text-decoration: none;">' . __('Disciplines', 'wp-hal');
151 + $content .= '</a></li>';
152 + }
153 + if ($option == 'mots-clefs') {
154 + $content .= '<li><a href="#keywords" onclick="displayElem(\'wphal-keywords\'); return false;" style="margin:1px; text-decoration: none;">' . __('Mots-clefs', 'wp-hal');
155 + $content .= '</a></li>';
156 + }
157 + if ($option == 'auteurs') {
158 + $content .= '<li><a href="#auteurs" onclick="displayElem(\'wphal-auteurs\'); return false;" style="margin:1px; text-decoration: none;">' . __('Auteurs', 'wp-hal');
159 + $content .= '</a></li>';
160 + }
161 + if ($option == 'revues') {
162 + $content .= '<li><a href="#revues" onclick="displayElem(\'wphal-revues\'); return false;" style="margin:1px; text-decoration: none;">' . __('Revues', 'wp-hal');
163 + $content .= '</a></li>';
164 + }
165 + if ($option == 'annee') {
166 + $content .= '<li><a href="#annees" onclick="displayElem(\'wphal-annees\'); return false;" style="margin:1px; text-decoration: none;">' . __('Année de production', 'wp-hal');
167 + $content .= '</a></li>';
168 + }
169 + if ($option == 'institution') {
170 + $content .= '<li><a href="#insts" onclick="displayElem(\'wphal-insts\'); return false;" style="margin:1px; text-decoration: none;">' . __('Institutions', 'wp-hal');
171 + $content .= '</a></li>';
172 + }
173 + if ($option == 'laboratoire') {
174 + $content .= '<li><a href="#labs" onclick="displayElem(\'wphal-labs\'); return false;" style="margin:1px; text-decoration: none;">' . __('Laboratoires', 'wp-hal');
175 + $content .= '</a></li>';
176 + }
177 + if ($option == 'departement') {
178 + $content .= '<li><a href="#depts" onclick="displayElem(\'wphal-depts\'); return false;" style="margin:1px; text-decoration: none;">' . __('Départements', 'wp-hal');
179 + $content .= '</a></li>';
180 + }
181 + if ($option == 'equipe') {
182 + $content .= '<li><a href="#equipes" onclick="displayElem(\'wphal-equipes\'); return false;" style="margin:1px; text-decoration: none;">' . __('Équipes de recherche', 'wp-hal');
183 + $content .= '</a></li>';
184 + }
185 + }
186 + $content .= '</ul></li>';
187 + }
188 + $content .= '</ul><br/><hr>';
189 +
190 + $content .= '<div id="meta">
191 + <div class="display" id="wphal-contact" style="display: none;">
192 + <h3 class="wphal-titre">' . __('Contact', 'wp-hal');
193 + $content .= '</h3>
194 +
195 + <ul id="wphal-cont" style="list-style-type: none;">';
196 +
197 + if ($contact == 'yes' && $type == 'authIdHal_s') {
198 + $urlauthor = urlauthor.'?indent=true&fq=valid_s:VALID&fl=idref_s,url_s,email_s,fullName_s,arxiv_s,idHal_s,viaf_s,isni_s,orcid_s,hasCV_bool&q=idHal_s:'.urlencode($id);
199 + $ch = curl_init($urlauthor);
200 + // Options
201 + $options = array(
202 + CURLOPT_RETURNTRANSFER => true,
203 + CURLOPT_HTTPHEADER => array('Content-type: application/json'),
204 + CURLOPT_TIMEOUT => 10,
205 + CURLOPT_USERAGENT => "HAL Plugin Wordpress " . version
206 + );
207 +
208 + // Bind des options et de l'objet cURL que l'on va utiliser
209 + curl_setopt_array($ch, $options);
210 + // Récupération du résultat JSON
211 + $jsonauthor = json_decode(curl_exec($ch));
212 + curl_close($ch);
213 +
214 + for ($i = 0; $jsonauthor->response->docs[$i] != ''; $i++) {
215 + $content .= '<div class="wphal-infocontact" id="wphal-infocontact'.$i.'">';
216 + if ($jsonauthor->response->docs[$i]->fullName_s != '') {
217 + $content .= '<li class="wphal-fullname"><span>Nom : </span><span>'. $jsonauthor->response->docs[$i]->fullName_s .'</span></li>';
218 + }
219 + if ($jsonauthor->response->docs[$i]->email_s != '') {
220 + $content .= '<li class="wphal-email"><span>Email : </span><span><a href="mailto:'. $jsonauthor->response->docs[$i]->email_s .'">' . $jsonauthor->response->docs[$i]->email_s . '</a></span></li>';
221 + }
222 + if ($jsonauthor->response->docs[$i]->idHal_s != '') {
223 + $content .= '<li class="wphal-idhal"><span>IdHAL : </span><span>' . $jsonauthor->response->docs[$i]->idHal_s . '</span></li>';
224 + }
225 + if ($jsonauthor->response->docs[$i]->hasCV_bool == true){
226 + $content .= '<li class="wphal-cvhal"><span>CV HAL : </span><a href="'.cvhal. $jsonauthor->response->docs[$i]->idHal_s.'" target="_blank">CV de '.$jsonauthor->response->docs[$i]->fullName_s.'</a></li>';
227 + }
228 + if ($jsonauthor->response->docs[$i]->arxiv_s != '') {
229 + $content .= '<li class="wphal-"><span>arXiv : </span><span><a href="' . $jsonauthor->response->docs[$i]->arxiv_s . '" target="_blank">' . substr(strrchr($jsonauthor->response->docs[$i]->arxiv_s, "/"), 1) . '</a></span></li>';
230 + }
231 + if ($jsonauthor->response->docs[$i]->idref_s != '') {
232 + $content .= '<li class="wphal-"><span>IdRef : </span><span><a href="' . $jsonauthor->response->docs[$i]->idref_s . '" target="_blank">' . substr(strrchr($jsonauthor->response->docs[$i]->idref_s, "/"), 1) . '</a></span></li>';
233 + }
234 + if ($jsonauthor->response->docs[$i]->orcid_s != '') {
235 + $content .= '<li class="wphal-"><span>ORCID : </span><span><a href="' . $jsonauthor->response->docs[$i]->orcid_s . '" target="_blank">' . substr(strrchr($jsonauthor->response->docs[$i]->orcid_s, "/"), 1) . '</a></span></li>';
236 + }
237 + if ($jsonauthor->response->docs[$i]->viaf_s != '') {
238 + $content .= '<li class="wphal-"><span>VIAF : </span><span><a href="' . $jsonauthor->response->docs[$i]->viaf_s . '" target="_blank">' . substr(strrchr($jsonauthor->response->docs[$i]->viaf_s, "/"), 1) . '</a></span></li>';
239 + }
240 + if ($jsonauthor->response->docs[$i]->isni_s != '') {
241 + $content .= '<li class="wphal-"><span>ISNI : </span><span><a href="' . $jsonauthor->response->docs[$i]->isni_s . '" target="_blank">' . substr(strrchr($jsonauthor->response->docs[$i]->isni_s, "/"), 1) . '</a></span></li>';
242 + }
243 + $content .= '</div>';
244 + }
245 + }
246 + if (get_option('option_email') != '') {
247 + $content .= '<li><img alt="mail" src=" ' . plugin_dir_url(__FILE__) . 'img/mail.svg" style=" width:16px; margin-left:2px; margin-right:2px;"/><a href="mailto:' . get_option('option_email') . '" target="_blank">' . get_option('option_email') . '</a></li>';
248 + }
249 + if (get_option('option_tel') != '') {
250 + $content .= '<li><img alt="phone" src=" ' . plugin_dir_url(__FILE__) . 'img/phone.svg" style="width:16px; margin-left:2px; margin-right:2px;"/>' . get_option('option_tel') . '</li>';
251 + }
252 + if (get_option('option_social0') != '') {
253 + $content .= '<li><a href="http://www.facebook.com/' . get_option('option_social0') . '" target="_blank"><img src=" ' . plugin_dir_url(__FILE__) . 'img/facebook.svg" style="width:32px; margin:4px;"/></a></li>';
254 + }
255 + if (get_option('option_social1') != '') {
256 + $content .= '<li><a href="http://www.twitter.com/' . get_option('option_social1') . '" target="_blank"><img src=" ' . plugin_dir_url(__FILE__) . 'img/twitter.svg" style="width:32px; margin:4px;"/></a></li>';
257 + }
258 + if (get_option('option_social2') != '') {
259 + $content .= '<li><a href="https://plus.google.com/u/0/+' . get_option('option_social2') . '" target="_blank"><img src=" ' . plugin_dir_url(__FILE__) . 'img/google-plus.svg" style="width:32px; margin:4px;"/></a></li>';
260 + }
261 + if (get_option('option_social3') != '') {
262 + $content .= '<li><a href="https://www.linkedin.com/in/' . get_option('option_social3') . '" target="_blank"><img src=" ' . plugin_dir_url(__FILE__) . 'img/linkedin.svg" style="width:32px; margin:4px;"/></a></li>';
263 + }
264 + $content .= '</ul>
265 + </div>
266 + <div class="display" id="wphal-disciplines" style="display: none;">
267 + <h3 class="wphal-titre">' . __('Disciplines', 'wp-hal') . '</h3>';
268 +
269 + if (locale == 'fr_FR') {
270 + $facetdomain = $json->facet_counts->facet_fields->fr_domainAllCodeLabel_fs;
271 + } elseif (locale == 'es_ES') {
272 + $facetdomain = $json->facet_counts->facet_fields->es_domainAllCodeLabel_fs;
273 + } else {
274 + $facetdomain = $json->facet_counts->facet_fields->en_domainAllCodeLabel_fs;
275 + }
276 +
277 + if (!is_null($facetdomain) && !empty($facetdomain)) {
278 + $content .= '<div id="listdisci">';
279 + $content .= '<span id="tridisciplines">';
280 + $content .= '<button type="button" class="trial" href="" id="tridisci" onclick="toggleSort(this, true, \'wphal-discipline\', \'wphal-discipline\', \'tridisci\'); return false;" style="font-size:16px; text-decoration: none;" >Tri Alphabétique</button>';
281 + $content .= '<button type="button" class="trioc" href="" id="trinbdisci" onclick="toggleSort(this, false, \'wphal-discipline\', \'wphal-discipline\', \'trinbdisci\'); return false;" style="font-size:16px; text-decoration: none;">Tri Occurrence</button>';
282 + $content .= '</span>';
283 + $content .= '<ul id="wphal-discipline" class="wphal-discipline">';
284 + foreach ($facetdomain as $res) {
285 + $name = explode(delimiter, $res[0]);
286 + $content .= '<li class="metadata" data-percentage="' . $res[1] . '"><a href="' . halv3 . '?q=domainAllCode_s:' . urlencode($name[0]) . "+AND+" . $type . ':(' . $id . ')" target="_blank">' . $name[1] . '</a><span class="wphal-nbmetadata">' . $res[1] . '</span></li>';
287 + }
288 + $content .= '</ul>';
289 + $content .= '</div>';
290 +
291 + $content .= '<div id="wphal-graph" style="display:none;">';
292 + $content .= '<div id="wphal-piedisci"></div>';
293 + $content .= '</div>';
294 + $content .= '<button type="button" href="" style="text-decoration: none;" id="wphal-disci" onclick="visibilitedisci(\'listdisci\',\'wphal-graph\',\'tridisciplines\'); return false;" >' . __('Graphique', 'wp-hal');
295 + $content .= '</button>';
296 + }
297 + $content .= '</div>
298 + <div class="display" id="wphal-keywords" style="display: none;">
299 + <h3 class="wphal-titre">' . __('Mots-clefs', 'wp-hal') . '</h3>';
300 + if (!is_null($json->facet_counts->facet_fields->keyword_s) && !empty($json->facet_counts->facet_fields->keyword_s)) {
301 + $content .= '<div id="wphal-keys">';
302 + $r = 0;
303 + // CSS Nuage de mots
304 + $maxsize = 25;
305 + $minsize = 10;
306 + $maxval = max(array_values($json->facet_counts->facet_fields->keyword_s[1]));
307 + $minval = min(array_values($json->facet_counts->facet_fields->keyword_s[1]));
308 + $spread = ($maxval - $minval);
309 + $step = ($maxsize - $minsize) / $spread;
310 + $tab = array();
311 + foreach ($json->facet_counts->facet_fields->keyword_s as $res) {
312 + $r = $r + 1;
313 + if ($r > 20) {
314 + break;
315 + }
316 + $tab[] = $res;
317 + }
318 + asort($tab); // Tri du tableau par ordre alphabétique
319 + foreach ($tab as $res) {
320 + $size = round($minsize + (($res[1] - $minval) * $step));
321 + $content .= '<a style="display: inline-block; font-size:' . $size . 'px" href="' . halv3 . '?q=keyword_s:' . urlencode('"' . $res[0] . '"') . "+AND+" . $type . ':(' . $id . ')" target="_blank">' . $res[0] . '</a>&nbsp;';
322 + }
323 + $content .= '</div>';
324 + $content .= '<div id="keysuite" style="display:none;">';
325 + $content .= '<span id="trikeywords">';
326 + $content .= '<button type="button" class="trial" href="" id="trikey" onclick="toggleSort(this, true, \'wphal-keyw\', \'wphal-keyword\', \'trikey\'); return false;" style="font-size:16px; text-decoration: none;" >Tri Alphabétique</button>';
327 + $content .= '<button type="button" class="trioc" href="" id="trinbkey" onclick="toggleSort(this, false, \'wphal-keyw\', \'wphal-keyword\', \'trinbkey\'); return false;" style="font-size:16px; text-decoration: none;">Tri Occurrence</button>';
328 + $content .= '</span>';
329 + $content .= '<ul class="wphal-keyword">';
330 + $content .= '<div id="wphal-keyw">';
331 + foreach ($json->facet_counts->facet_fields->keyword_s as $res) {
332 + $content .= '<li class="metadata" data-percentage="' . $res[1] . '"><a href="' . halv3 . '?q=keyword_s:' . urlencode('"' . $res[0] . '"') . "+AND+" . $type . ':(' . $id . ')" target="_blank">' . $res[0] . '</a><span class="wphal-nbmetadata">' . $res[1] . '</span></li>';
333 + }
334 + $content .= '</div>';
335 + $content .= '</ul>';
336 + $content .= '</div>';
337 + $content .= '<button type="button" href="" style="text-decoration: none;" id="wphal-key" onclick="visibilitekey(\'wphal-keys\',\'keysuite\', \'trikeywords\'); return false;" >' . __('Liste complète', 'wp-hal');
338 + $content .= '</button>';
339 + }
340 + $content .= '</div>
341 + <div class="display" id="wphal-auteurs" style="display: none;">
342 + <h3 class="wphal-titre">' . __('Auteurs', 'wp-hal') . '</h3>';
343 + if (!is_null($json->facet_counts->facet_fields->authIdLastNameFirstName_fs) && !empty($json->facet_counts->facet_fields->authIdLastNameFirstName_fs)) {
344 + $content .= '<span id="triauteurs">';
345 + $content .= '<button type="button" class="trial" href="" id="triaut" onclick="toggleSort(this, true, \'wphal-aut\', \'auteursuite\', \'triaut\'); return false;" style="font-size:16px; text-decoration: none;" >Tri Alphabétique</button>';
346 + $content .= '<button type="button" class="trioc" href="" id="trinbaut" onclick="toggleSort(this, false, \'wphal-aut\', \'auteursuite\', \'trinbaut\'); return false;" style="font-size:16px; text-decoration: none;">Tri Occurrence</button>';
347 + $content .= '</span>';
348 + $content .= '<ul class="wphal-auteurs" style="list-style-type: none;">';
349 + $content .= '<div id="wphal-aut">';
350 + $r = 0;
351 + foreach ($json->facet_counts->facet_fields->authIdLastNameFirstName_fs as $res) {
352 + $r = $r + 1;
353 + if ($r > 10) {
354 + break;
355 + }
356 + $name = explode(delimiter, $res[0]);
357 + $content .= '<li class="metadata" data-percentage="' . $res[1] . '"><img alt="user" src=" ' . plugin_dir_url(__FILE__) . '/img/user.svg" style="width:16px; margin-left:2px; margin-right:2px;"/><a href="' . halv3 . '?q=authId_i:' . $name[0] . "+AND+" . $type . ':(' . $id . ')" target="_blank">' . $name[1] . '</a><span class="wphal-nbmetadata">' . $res[1] . '</span></li>';
358 + }
359 + $i = 1;
360 + $content .= '<div id="auteursuite" style="display:none;">';
361 + foreach ($json->facet_counts->facet_fields->authIdLastNameFirstName_fs as $res) {
362 + if ($r < 10) {
363 + break;
364 + }
365 + if ($i < $r) {
366 + $i = $i + 1;
367 + } else {
368 + $name = explode(delimiter, $res[0]);
369 + $content .= '<li class="metadata" data-percentage="' . $res[1] . '"><img alt="user" src=" ' . plugin_dir_url(__FILE__) . '/img/user.svg" style="width:16px; margin-left:2px; margin-right:2px;"/><a href="' . halv3 . '?q=authId_i:' . $name[0] . "+AND+" . $type . ':(' . $id . ')" target="_blank">' . $name[1] . '</a><span class="wphal-nbmetadata">' . $res[1] . '</span></li>';
370 + }
371 + }
372 + $content .= '</div>';
373 + $content .= '</div>';
374 + $content .= '</ul>';
375 + if ($r > 10) {
376 + $content .= '<button type="button" href="" style="text-decoration: none;" id="wphal-auteur" onclick="visibilite(\'auteursuite\'); return false;" >' . __('Liste complète', 'wp-hal');
377 + $content .= '</button>';
378 + }
379 + }
380 + $content .= '</div>
381 + <div class="display" id="wphal-revues" style="display: none;">
382 + <h3 class="wphal-titre">' . __('Revues', 'wp-hal') . '</h3>';
383 + if (!is_null($json->facet_counts->facet_fields->journalIdTitle_fs) && !empty($json->facet_counts->facet_fields->journalIdTitle_fs)) {
384 + $content .= '<span id="trirevues">';
385 + $content .= '<button type="button" class="trial" href="" id="trirev" onclick="toggleSort(this, true, \'wphal-rev\', \'revuesuite\', \'trirev\'); return false;" style="font-size:16px; text-decoration: none;" >Tri Alphabétique</button>';
386 + $content .= '<button type="button" class="trioc" href="" id="trinbrev" onclick="toggleSort(this, false, \'wphal-rev\', \'revuesuite\', \'trinbrev\'); return false;" style="font-size:16px; text-decoration: none;">Tri Occurrence</button>';
387 + $content .= '</span>';
388 + $content .= '<ul class="wphal-revues">';
389 + $content .= '<div id="wphal-rev">';
390 + $r = 0;
391 + foreach ($json->facet_counts->facet_fields->journalIdTitle_fs as $res) {
392 + $r = $r + 1;
393 + if ($r > 10) {
394 + break;
395 + }
396 + $name = explode(delimiter, $res[0]);
397 + $content .= '<li class="metadata" data-percentage="' . $res[1] . '"><a href="' . halv3 . '?q=journalId_i:' . urlencode($name[0]) . "+AND+" . $type . ':(' . $id . ')" target="_blank">' . $name[1] . '</a><span class="wphal-nbmetadata">' . $res[1] . '</span></li>';
398 + }
399 + $i = 1;
400 + $content .= '<div id="revuesuite" style="display:none;">';
401 + foreach ($json->facet_counts->facet_fields->journalIdTitle_fs as $res) {
402 + if ($r < 10) {
403 + break;
404 + }
405 + if ($i < $r) {
406 + $i = $i + 1;
407 + } else {
408 + $name = explode(delimiter, $res[0]);
409 + $content .= '<li class="metadata" data-percentage="' . $res[1] . '"><a href="' . halv3 . '?q=journalId_i:' . urlencode($name[0]) . "+AND+" . $type . ':(' . $id . ')" target="_blank">' . $name[1] . '</a><span class="wphal-nbmetadata">' . $res[1] . '</span></li>';
410 + }
411 + }
412 + $content .= '</div>';
413 + $content .= '</div>';
414 + $content .= '</ul>';
415 + if ($r > 10) {
416 + $content .= '<button type="button" href="" style="text-decoration: none;" id="wphal-revue" onclick="visibiliterevues(\'revuesuite\'); return false;" >' . __('Liste complète', 'wp-hal');
417 + $content .= '</button>';
418 + }
419 + }
420 + $content .= '</div>
421 + <div class="display" id="wphal-annees" style="display: none;">
422 + <h3 class="wphal-titre">' . __('Année de production', 'wp-hal') . '</h3>';
423 + if (!is_null($json->facet_counts->facet_fields->producedDateY_i) && !empty($json->facet_counts->facet_fields->producedDateY_i)) {
424 + $content .= '<span id="triannees">';
425 + $content .= '<button type="button" class="trial" href="" id="trian" onclick="toggleSort(this, true, \'wphal-an\', \'anneesuite\', \'trian\'); return false;" style="font-size:16px; text-decoration: none;" >Tri Alphabétique</button>';
426 + $content .= '<button type="button" class="trioc" href="" id="trinban" onclick="toggleSort(this, false, \'wphal-an\', \'anneesuite\', \'trinban\'); return false;" style="font-size:16px; text-decoration: none;">Tri Occurrence</button>';
427 + $content .= '</span>';
428 + $content .= '<ul class="wphal-annees">';
429 + $content .= '<div id="wphal-an">';
430 +
431 + rsort($json->facet_counts->facet_fields->producedDateY_i);
432 + $r = 0;
433 + foreach ($json->facet_counts->facet_fields->producedDateY_i as $res) {
434 + $r = $r + 1;
435 + if ($r > 10) {
436 + break;
437 + }
438 + $content .= '<li class="metadata" data-percentage="' . $res[1] . '"><a href="' . halv3 . '?q=producedDateY_i:' . urlencode($res[0]) . "+AND+" . $type . ':(' . $id . ')" target="_blank">' . $res[0] . '</a><span class="wphal-nbmetadata">' . $res[1] . '</span></li>';
439 + }
440 + $i = 1;
441 + $content .= '<div id="anneesuite" style="display:none;">';
442 + foreach ($json->facet_counts->facet_fields->producedDateY_i as $res) {
443 + if ($r < 10) {
444 + break;
445 + }
446 + if ($i < $r) {
447 + $i = $i + 1;
448 + } else {
449 + $content .= '<li class="metadata" data-percentage="' . $res[1] . '"><a href="' . halv3 . '?q=producedDateY_i:' . urlencode($res[0]) . "+AND+" . $type . ':(' . $id . ')" target="_blank">' . $res[0] . '</a><span class="wphal-nbmetadata">' . $res[1] . '</span></li>';
450 + }
451 + }
452 + $content .= '</div>';
453 + $content .= '</div>';
454 + $content .= '</ul>';
455 + if ($r > 10) {
456 + $content .= '<button type="button" href="" style="text-decoration: none;" id="wphal-annee" onclick="visibiliteannee(\'anneesuite\'); return false;" >' . __('Liste complète', 'wp-hal');
457 + $content .= '</button>';
458 + }
459 + }
460 + $content .= '</div>
461 + <div class="display" id="wphal-insts" style="display: none;">
462 + <h3 class="wphal-titre">' . __('Institutions', 'wp-hal') . '</h3>';
463 + if (!is_null($json->facet_counts->facet_fields->instStructIdName_fs) && !empty($json->facet_counts->facet_fields->instStructIdName_fs)) {
464 + $content .= '<span id="triinsts">';
465 + $content .= '<button type="button" class="trial" href="" id="triinst" onclick="toggleSort(this, true, \'wphal-institu\', \'instsuite\', \'triinst\'); return false;" style="font-size:16px; text-decoration: none;" >Tri Alphabétique</button>';
466 + $content .= '<button type="button" class="trioc" href="" id="trinbinst" onclick="toggleSort(this, false, \'wphal-institu\', \'instsuite\', \'trinbinst\'); return false;" style="font-size:16px; text-decoration: none;">Tri Occurrence</button>';
467 + $content .= '</span>';
468 + $content .= '<ul class="wphal-insts">';
469 + $content .= '<div id="wphal-institu">';
470 + $r = 0;
471 + foreach ($json->facet_counts->facet_fields->instStructIdName_fs as $res) {
472 + $r = $r + 1;
473 + if ($r > 10) {
474 + break;
475 + }
476 + $name = explode(delimiter, $res[0]);
477 + $content .= '<li class="metadata" data-percentage="' . $res[1] . '"><a href="' . halv3 . '?q=instStructId_i:' . urlencode($name[0]) . "+AND+" . $type . ':(' . $id . ')" target="_blank">' . $name[1] . '</a><span class="wphal-nbmetadata">' . $res[1] . '</span></li>';
478 + }
479 + $i = 1;
480 + $content .= '<div id="instsuite" style="display:none;">';
481 + foreach ($json->facet_counts->facet_fields->instStructIdName_fs as $res) {
482 + if ($r < 10) {
483 + break;
484 + }
485 + if ($i < $r) {
486 + $i = $i + 1;
487 + } else {
488 + $name = explode(delimiter, $res[0]);
489 + $content .= '<li class="metadata" data-percentage="' . $res[1] . '"><a href="' . halv3 . '?q=instStructId_i:' . urlencode($name[0]) . "+AND+" . $type . ':(' . $id . ')" target="_blank">' . $name[1] . '</a><span class="wphal-nbmetadata">' . $res[1] . '</span></li>';
490 + }
491 + }
492 + $content .= '</div>';
493 + $content .= '</div>';
494 + $content .= '</ul>';
495 + if ($r > 10) {
496 + $content .= '<button type="button" href="" style="text-decoration: none;" id="wphal-inst" onclick="visibiliteinst(\'instsuite\'); return false;" >' . __('Liste complète', 'wp-hal');
497 + $content .= '</button>';
498 + }
499 + }
500 + $content .= '</div>
501 + <div class="display" id="wphal-labs" style="display: none;">
502 + <h3 class="wphal-titre">' . __('Laboratoires', 'wp-hal') . '</h3>';
503 + if (!is_null($json->facet_counts->facet_fields->labStructIdName_fs) && !empty($json->facet_counts->facet_fields->labStructIdName_fs)) {
504 + $content .= '<span id="trilabs">';
505 + $content .= '<button type="button" class="trial" href="" id="trilab" onclick="toggleSort(this, true, \'wphal-labo\', \'labsuite\', \'trilab\'); return false;" style="font-size:16px; text-decoration: none;" >Tri Alphabétique</button>';
506 + $content .= '<button type="button" class="trioc" href="" id="trinblab" onclick="toggleSort(this, false, \'wphal-labo\', \'labsuite\', \'trinblab\'); return false;" style="font-size:16px; text-decoration: none;">Tri Occurrence</button>';
507 + $content .= '</span>';
508 + $content .= '<ul class="wphal-labs">';
509 + $content .= '<div id="wphal-labo">';
510 +
511 + $r = 0;
512 + foreach ($json->facet_counts->facet_fields->labStructIdName_fs as $res) {
513 + $r = $r + 1;
514 + if ($r > 10) {
515 + break;
516 + }
517 + $name = explode(delimiter, $res[0]);
518 + $content .= '<li class="metadata" data-percentage="' . $res[1] . '"><a href="' . halv3 . '?q=labStructId_i:' . urlencode($name[0]) . "+AND+" . $type . ':(' . $id . ')" target="_blank">' . $name[1] . '</a><span class="wphal-nbmetadata">' . $res[1] . '</span></li>';
519 + }
520 + $i = 1;
521 + $content .= '<div id="labsuite" style="display:none;">';
522 + foreach ($json->facet_counts->facet_fields->labStructIdName_fs as $res) {
523 + if ($r < 10) {
524 + break;
525 + }
526 + if ($i < $r) {
527 + $i = $i + 1;
528 + } else {
529 + $name = explode(delimiter, $res[0]);
530 + $content .= '<li class="metadata" data-percentage="' . $res[1] . '"><a href="' . halv3 . '?q=labStructId_i:' . urlencode($name[0]) . "+AND+" . $type . ':(' . $id . ')" target="_blank">' . $name[1] . '</a><span class="wphal-nbmetadata">' . $res[1] . '</span></li>';
531 + }
532 + }
533 + $content .= '</div>';
534 + $content .= '</div>';
535 + $content .= '</ul>';
536 + if ($r > 10) {
537 + $content .= '<button type="button" href="" style="text-decoration: none;" id="wphal-lab" onclick="visibilitelab(\'labsuite\'); return false;" >' . __('Liste complète', 'wp-hal');
538 + $content .= '</button>';
539 + }
540 + }
541 + $content .= '</div>
542 + <div class="display" id="wphal-depts" style="display: none;">
543 + <h3 class="wphal-titre">' . __('Départements', 'wp-hal') . '</h3>';
544 + if (!is_null($json->facet_counts->facet_fields->deptStructIdName_fs) && !empty($json->facet_counts->facet_fields->deptStructIdName_fs)) {
545 + $content .= '<span id="tridept">';
546 + $content .= '<button type="button" class="trial" href="" id="tridept" onclick="toggleSort(this, true, \'wphal-dpt\', \'deptsuite\', \'tridept\'); return false;" style="font-size:16px; text-decoration: none;" >Tri Alphabétique</button>';
547 + $content .= '<button type="button" class="trioc" href="" id="trinbdept" onclick="toggleSort(this, false, \'wphal-dpt\', \'deptsuite\', \'trinbdept\'); return false;" style="font-size:16px; text-decoration: none;">Tri Occurrence</button>';
548 + $content .= '</span>';
549 + $content .= '<ul class="wphal-depts">';
550 + $content .= '<div id="wphal-dpt">';
551 + $r = 0;
552 + foreach ($json->facet_counts->facet_fields->deptStructIdName_fs as $res) {
553 + $r = $r + 1;
554 + if ($r > 10) {
555 + break;
556 + }
557 + $name = explode(delimiter, $res[0]);
558 + $content .= '<li class="metadata" data-percentage="' . $res[1] . '"><a href="' . halv3 . '?q=deptStructId_i:' . urlencode($name[0]) . "+AND+" . $type . ':(' . $id . ')" target="_blank">' . $name[1] . '</a><span class="wphal-nbmetadata">' . $res[1] . '</span></li>';
559 + }
560 + $i = 1;
561 + $content .= '<div id="deptsuite" style="display:none;">';
562 + foreach ($json->facet_counts->facet_fields->deptStructIdName_fs as $res) {
563 + if ($r < 10) {
564 + break;
565 + }
566 + if ($i < $r) {
567 + $i = $i + 1;
568 + } else {
569 + $name = explode(delimiter, $res[0]);
570 + $content .= '<li class="metadata" data-percentage="' . $res[1] . '"><a href="' . halv3 . '?q=deptStructId_i:' . urlencode($name[0]) . "+AND+" . $type . ':(' . $id . ')" target="_blank">' . $name[1] . '</a><span class="wphal-nbmetadata">' . $res[1] . '</span></li>';
571 + }
572 + }
573 + $content .= '</div>';
574 + $content .= '</div>';
575 + $content .= '</ul>';
576 + if ($r > 10) {
577 + $content .= '<button type="button" href="" style="text-decoration: none;" id="wphal-dept" onclick="visibilitedept(\'deptsuite\'); return false;" >' . __('Liste complète', 'wp-hal');
578 + $content .= '</button>';
579 + }
580 + }
581 + $content .= '</div>
582 + <div class="display" id="wphal-equipes" style="display: none;">
583 + <h3 class="wphal-titre">' . __('Équipes de recherche', 'wp-hal') . '</h3>';
584 + if (!is_null($json->facet_counts->facet_fields->rteamStructIdName_fs) && !empty($json->facet_counts->facet_fields->rteamStructIdName_fs)) {
585 + $content .= '<span id="triequipe">';
586 + $content .= '<button type="button" class="trial" href="" id="triequipe" onclick="toggleSort(this, true, \'wphal-rteam\', \'equipesuite\', \'triequipe\'); return false;" style="font-size:16px;text-decoration: none;" >Tri Alphabétique</button>';
587 + $content .= '<button type="button" class="trioc" href="" id="trinbequipe" onclick="toggleSort(this, false, \'wphal-rteam\', \'equipesuite\', \'trinbequipe\'); return false;" style="font-size:16px; text-decoration: none;">Tri Occurrence</button>';
588 + $content .= '</span>';
589 + $content .= '<ul class="wphal-equipes">';
590 + $content .= '<div id="wphal-rteam">';
591 +
592 + $r = 0;
593 + foreach ($json->facet_counts->facet_fields->rteamStructIdName_fs as $res) {
594 + $r = $r + 1;
595 + if ($r > 10) {
596 + break;
597 + }
598 + $name = explode(delimiter, $res[0]);
599 + $content .= '<li class="metadata" data-percentage="' . $res[1] . '"><a href="' . halv3 . '?q=rteamStructId_i:' . urlencode($name[0]) . "+AND+" . $type . ':(' . $id . ')" target="_blank">' . $name[1] . '</a><span class="wphal-nbmetadata">' . $res[1] . '</span></li>';
600 + }
601 + $i = 1;
602 + $content .= '<div id="equipesuite" style="display:none;">';
603 + foreach ($json->facet_counts->facet_fields->rteamStructIdName_fs as $res) {
604 + if ($r < 10) {
605 + break;
606 + }
607 + if ($i < $r) {
608 + $i = $i + 1;
609 + } else {
610 + $content .= '<li class="metadata" data-percentage="' . $res[1] . '"><a href="' . halv3 . '?q=rteamStructId_i:' . urlencode($name[0]) . "+AND+" . $type . ':(' . $id . ')" target="_blank">' . $name[1] . '</a><span class="wphal-nbmetadata">' . $res[1] . '</span></li>';
611 + }
612 + }
613 + $content .= '</div>';
614 + $content .= '</div>';
615 + $content .= '</ul>';
616 + if ($r > 10) {
617 + $content .= '<button type="button" href="" style="text-decoration: none;" id="wphal-equipe" onclick="visibiliteequipe(\'equipesuite\'); return false;" >' . __('Liste complète', 'wp-hal');
618 + $content .= '</button>';
619 + }
620 + }
621 + $content .= '</div>
622 + <div class="display" id="publications">';
623 + if (get_option('option_groupe') == 'grouper') {
624 + $doctype = file_get_contents(plugin_dir_path( __FILE__ ).'json'. DIRECTORY_SEPARATOR .'doctype_'.lang.'.json');
625 + $jsontype = json_decode($doctype);
626 +
627 +//LISTE DES DOCUMENTS PAR GROUPE
628 +
629 + $content .= '<div class="counter-doc"><span class="wphal-nbtot">' . $json->grouped->docType_s->matches . ' </span>';
630 + $content .= __('documents', 'wp-hal'). '</div><br>';
631 + for ($i = 0; $jsontype->response->result->doc[$i] != null; $i++) {
632 + for ($d = 0; $json->grouped->docType_s->groups[$d] != null; $d++) {
633 + if ($json->grouped->docType_s->groups[$d]->groupValue == $jsontype->response->result->doc[$i]->str[0]){
634 + $titre = $jsontype->response->result->doc[$i]->str[1];
635 + $content .= '<div class="grp-div"><h3 class="wphal-titre-groupe">' . $titre . '<span class="wphal-nbmetadata" style="margin-left:10px;">' . $json->grouped->docType_s->groups[$d]->doclist->numFound . ' ' . _n('document', 'documents', $json->grouped->docType_s->groups[$d]->doclist->numFound, 'wp-hal') . '</span></h3>';
636 + $content .= '<div class="grp-content">';
637 + $content .= '<ul>';
638 + foreach ($json->grouped->docType_s->groups[$d]->doclist->docs as $result) {
639 + $content .= '<li>' . $result->citationFull_s . '</li>';
640 + }
641 + $content .= '</ul></div>';
642 + $content .= '</div><br>';
643 + break;
644 + }
645 + }
646 + }
647 + } elseif (get_option('option_groupe') == 'paginer') {
648 +
649 +//LISTE DES DOCUMENTS AVEC PAGINATION
650 + $content .= '<div class="counter-doc"><span class="wphal-nbtot">' . $json->response->numFound . ' </span>';
651 + $content .= __('documents', 'wp-hal'). '</div><br>';
652 +
653 +//--MODULE PAGINATION--//
654 + $messagesParPage = 10;
655 +
656 + $total = $json->response->numFound;
657 +
658 + $nombreDePages = ceil($total / $messagesParPage);
659 +
660 + if (isset($paged)) {
661 + $pageActuelle = intval($paged);
662 +
663 + if ($pageActuelle > $nombreDePages) {
664 + $pageActuelle = $nombreDePages;
665 + }
666 + } else {
667 + $pageActuelle = 1;
668 + }
669 + $premiereEntree = ($pageActuelle - 1) * $messagesParPage;
670 +
671 + $url = api . '?q=*:*&fq=' . $type . ':(' . urlencode($id) . ')&fl=docid,citationFull_s,keyword_s,bookTitle_s,producedDate_s,authFullName_s&start=' . $premiereEntree . '&rows=' . $messagesParPage . '&sort=' . producedDateY . '&wt=json';
672 + $ch = curl_init($url);
673 +// Options
674 + $options = array(
675 + CURLOPT_RETURNTRANSFER => true,
676 + CURLOPT_HTTPHEADER => array('Content-type: application/json'),
677 + CURLOPT_TIMEOUT => 10,
678 + CURLOPT_USERAGENT => "HAL Plugin Wordpress " . version
679 + );
680 +
681 +// Bind des options et de l'objet cURL que l'on va utiliser
682 + curl_setopt_array($ch, $options);
683 +// Récupération du résultat JSON
684 + $json = json_decode(curl_exec($ch));
685 + curl_close($ch);
686 +
687 +//--MODULE PAGINATION--//
688 +
689 + $content .= '<ul>';
690 + for ($i = 0; $json->response->docs[$i] != ''; $i++) {
691 + $content .= '<li>' . $json->response->docs[$i]->citationFull_s . '</li>';
692 + }
693 + $content .= '</ul>';
694 +
695 +//--AFFICHAGE PAGINATION--//
696 + $precedents = $pageActuelle - 2;
697 + $suivants = $pageActuelle + 2;
698 + $precedent = $pageActuelle - 1;
699 + $suivant = $pageActuelle + 1;
700 + $penultimate = $nombreDePages - 1;
701 +
702 + $content .= '<ul class="wphal-pagination">';
703 +//--BOUTON PRECEDENT--//
704 + if ($pageActuelle == 1) {
705 + $content .= '<li class="disabled"><a href="#">&laquo;</a></li>';
706 + } else {
707 + $content .= '<li><a href="?paged=' . $precedent . '">&laquo;</a></li>';
708 + }
709 + if ($nombreDePages <= 6) {// Cas 1 : 6 pages ou moins - Pas de troncature
710 + for ($i = 1; $i <= $nombreDePages; $i++) {
711 + if ($i == $pageActuelle) {
712 + $content .= '<li class="active"><a href="#">' . $i . '</a></li>';
713 + } else {
714 + $content .= ' <li><a href="?paged=' . $i . '">' . $i . '</a></li> ';
715 + }
716 + }
717 + } elseif ($nombreDePages >= 7) {// Cas 2 : 7 pages ou plus - Troncature
718 + if ($pageActuelle <= 3) {// Lorsque l'on est sur les trois premières pages
719 + for ($i = 1; $i <= 4; $i++) {
720 + if ($i == $pageActuelle) {
721 + $content .= '<li class="active"><a href="#">' . $i . '</a></li>';
722 + } else {
723 + $content .= '<li><a href="?paged=' . $i . '">' . $i . '</a></li>';
724 + }
725 + }
726 + $content .= '<li class="disabled"><a href="#">&hellip;</a></li>';
727 + $content .= '<li><a href="?paged=' . $penultimate . '">' . $penultimate . '</a></li>';
728 + $content .= '<li><a href="?paged=' . $nombreDePages . '">' . $nombreDePages . '</a></li>';
729 + }
730 + if ($pageActuelle >= 4 && $pageActuelle <= $penultimate - 2) {//Lorsque l'on arrive sur la quatrième page
731 + $content .= '<li><a href="?paged=">1</a></li>';
732 + $content .= '<li class="disabled"><a href="#">&hellip;</a></li>';
733 + $content .= '<li><a href="?paged=' . $precedents . '">' . $precedents . '</a></li>';
734 + $content .= '<li><a href="?paged=' . $precedent . '">' . $precedent . '</a></li>';
735 + $content .= '<li class="active"><a href="#">' . $pageActuelle . '</a></li>';
736 + $content .= '<li><a href="?paged=' . $suivant . '">' . $suivant . '</a></li>';
737 + $content .= '<li><a href="?paged=' . $suivants . '">' . $suivants . '</a></li>';
738 + $content .= '<li class="disabled"><a href="#">&hellip;</a></li>';
739 + $content .= '<li><a href="?paged=' . $nombreDePages . '">' . $nombreDePages . '</a></li>';
740 + }
741 + if ($pageActuelle >= $penultimate - 1) {
742 + $content .= '<li><a href="?paged=1">1</a></li>';
743 + $content .= '<li><a href="?paged=2">2</a></li>';
744 + $content .= '<li class="disabled"><a href="#">&hellip;</a></li>';
745 + for ($i = $penultimate - 2; $i <= $nombreDePages; $i++) {
746 + if ($i == $pageActuelle) {
747 + $content .= '<li class="active"><a href="#">' . $i . '</a></li>';
748 + } else {
749 + $content .= '<li><a href="?paged=' . $i . '">' . $i . '</a></li>';
750 + }
751 + }
752 + }
753 + }
754 +//--BOUTON SUIVANT--//
755 + if ($pageActuelle < $nombreDePages) {
756 + $content .= '<li><a href="?paged=' . $suivant . '">&raquo;</a></li>';
757 + } else {
758 + $content .= '<li class="disabled"><a href="#">&raquo;</a></li>';
759 + }
760 + $content .= '</ul>';
761 +//--AFFICHAGE PAGINATION--//
762 + }
763 + $content .= '</div>
764 + </div>
765 +</div>';
766 + }
767 + $content .= '<div class="wphal-footer">';
768 + $content .= '<p style="color:#B3B2B0">' . __("Documents récupérés de l'archive ouverte HAL", 'wp-hal') . '&nbsp;<a href="' . site . '" target="_blank"><img alt="logo" src=" ' . plugin_dir_url(__FILE__) . 'img/logo-hal.svg" style="width:32px;"></a></p>';
769 + $content .= '</div>';
770 +
771 +//--AFFICHAGE GRAPHIQUE DOMAINE--//
772 + if (!is_null($facetdomain)) {
773 + foreach ($facetdomain as $res) {
774 + $name = explode(delimiter, $res[0])[1];
775 + $value = $res[1];
776 + $array[] = array($name, $value);
777 + }
778 + }
779 + wp_localize_script('wp-hal-script4', 'WPWallSettings', json_encode($array));
780 + $translation = array('liste' => __('Liste', 'wp-hal'), 'compl' => __('Liste complète', 'wp-hal'), 'princ' => __('Liste principale', 'wp-hal'), 'graph' => __('Graphique', 'wp-hal'), 'nuage' => __('Nuage de mots', 'wp-hal'));
781 + wp_localize_script('wp-hal-script4', 'translate', $translation);
782 + }
783 + return $content;
784 +}
785 +
786 +function verifSolr($values){
787 + $verifsolr = explode(',',$values);
788 + $numverif = count($verifsolr);
789 + $solrsql = '';
790 + if ($numverif<1024){
791 + $solrsql = str_replace(',',' OR ',$values);
792 + } else {
793 + $listsolrsql = explode(',',$values);
794 + for($i=0;$i<1024;$i++){
795 + if ($i == 0){
796 + $solrsql = $listsolrsql[$i];
797 + } else {
798 + $solrsql .= ' OR ';
799 + $solrsql .= $listsolrsql[$i];
800 + }
801 + }
802 + }
803 +
804 + return $solrsql;
805 +}
806 +
807 +function wp_adding_style() {
808 + wp_register_style('wp-hal-style1', plugins_url('/css/style.css', __FILE__));
809 + wp_register_style('wp-hal-style2', plugins_url('/css/jquery.jqplot.css', __FILE__));
810 +
811 + wp_enqueue_style('wp-hal-style1');
812 +}
813 +
814 +function wp_adding_script() {
815 + wp_register_script('wp-hal-script1',plugins_url('/js/jquery.jqplot.js', __FILE__));
816 + wp_register_script('wp-hal-script2',plugins_url('/js/jqplot.highlighter.js', __FILE__));
817 + wp_register_script('wp-hal-script3',plugins_url('/js/jqplot.pieRenderer.js', __FILE__));
818 + wp_register_script('wp-hal-script4',plugins_url('/js/cv-hal.js', __FILE__));
819 +
820 +
821 + wp_enqueue_script("jquery");
822 + wp_enqueue_script('wp-hal-script4', false, array(), false, true);
823 +}
824 +
825 +/**
826 + * Récupère les fichiers css et js
827 + */
828 +if ( function_exists('curl_init' ) ) {
829 + add_action('wp_enqueue_scripts', 'wp_adding_style');
830 + add_action('wp_enqueue_scripts', 'wp_adding_script');
831 +}
832 +
833 +/**
834 + * Charge lorsque le plugin est désactivé
835 + */
836 +register_deactivation_hook( __FILE__, 'reset_option' );
837 +
838 +/**
839 + * Ajoute le widget wphal à l'initialisation des widgets
840 + */
841 +add_action('widgets_init','wphal_init');
842 +
843 +/**
844 + * Ajoute le menu à l'initialisation du menu admin
845 + */
846 +add_action( 'admin_menu', 'wphal_menu' );
847 +
848 +/**
849 + * Fonction de création du menu
850 + */
851 +function wphal_menu() {
852 + add_menu_page( 'Options', 'Hal', 'manage_options', 'wp-hal.php', 'wphal_option' , '', 21);
853 +
854 + add_action( 'admin_init', 'register_settings' );
855 +}
856 +
857 +
858 +/**
859 + * Initialise le nouveau widget
860 + */
861 +function wphal_init(){
862 + register_widget("wphal_widget");
863 +}
864 +
865 +/***********************************************************************************************************************
866 + * PLUGIN WIDGET
867 + **********************************************************************************************************************/
868 +
869 +/**
870 + * Classe du widget wphal
871 + */
872 +
873 +class wphal_widget extends WP_widget{
874 +
875 +
876 + /**
877 + * Défini les propriétés du widget
878 + */
879 + function wphal_widget(){
880 + $options = array(
881 + "classname" => "wphal-publications",
882 + "description" => __("Afficher les dernières publications d'un auteur ou d'une structure.", 'wp-hal')
883 + );
884 +
885 + parent::__construct(
886 + 'hal-publications',
887 + __("Publications récentes", 'wp-hal'),
888 + $options
889 + );
890 + }
891 +
892 + /**
893 + * Crée le widget
894 + * @param $args
895 + * @param $instance
896 + */
897 + function widget($args, $instance){
898 + if ( !function_exists('curl_init' ) ) {
899 + $content = 'Please check the <a href="https://wordpress.org/plugins/hal/faq/" target="_blank" id="FAQ">FAQ</a> with the code : CURL';
900 + extract($args);
901 + echo $before_widget;
902 + echo $before_title . $instance['titre'] . $after_title;
903 + echo $content;
904 + echo $after_widget;
905 + } else {
906 + $instance['idhal'] = verifSolr($instance['idhal']);
907 +
908 + $url = api . '?q=*:*&fq=' . $instance['select'] . ':' . urlencode($instance['idhal']) . '&fl=uri_s,'. $instance['typetext'] .'&sort=' . producedDateY . '&rows=' . $instance['nbdoc'] . '&wt=json';
909 +
910 + $ch = curl_init($url);
911 + // Options
912 + $options = array(
913 + CURLOPT_RETURNTRANSFER => true,
914 + CURLOPT_HTTPHEADER => array('Content-type: application/json'),
915 + CURLOPT_TIMEOUT => 10,
916 + CURLOPT_USERAGENT => "HAL Plugin Wordpress " . version
917 + );
918 +
919 + // Bind des options et de l'objet cURL que l'on va utiliser
920 + curl_setopt_array($ch, $options);
921 + // Récupération du résultat JSON
922 + $json = json_decode(curl_exec($ch));
923 + curl_close($ch);
924 +
925 + $content = '<ul class="widhal-ul">';
926 + for ($i = 0; $i < $instance['nbdoc']; $i++) {
927 + if ($instance['typetext']=='citationRef_s') {
928 + $typetext = $json->response->docs[$i]->citationRef_s;
929 + } else {
930 + $typetext = $json->response->docs[$i]->title_s[0];
931 + }
932 + $content .= '<li class="widhal-li"><a href="' . $json->response->docs[$i]->uri_s . '" target="_blank">' . $typetext . '</a></li>';
933 + }
934 + $content .= '</ul>';
935 +
936 + extract($args);
937 + echo $before_widget;
938 + echo $before_title . $instance['titre'] . $after_title;
939 + echo $content;
940 + echo $after_widget;
941 + }
942 + }
943 +
944 + /**
945 + * Sauvegarde des données
946 + * @param $new
947 + * @param $old
948 + */
949 + function update($new, $old){
950 + return $new;
951 + }
952 +
953 + /**
954 + * Formulaire du widget
955 + * @param $instance
956 + */
957 + function form($instance){
958 +
959 + $defaut = array(
960 + 'titre' => __("Publications récentes", 'wp-hal'),
961 + 'select' => "authIdHal_s",
962 + 'typetext' => "title_s",
963 + 'nbdoc' => 5
964 + );
965 + $instance = wp_parse_args($instance,$defaut);
966 + ?>
967 + <p>
968 + <label for="<?php echo $this->get_field_id("titre");?>"><?php echo __('Titre','wp-hal') .' :'?></label>
969 + <input value="<?php echo $instance['titre'];?>" name="<?php echo $this->get_field_name("titre");?>" id="<?php echo $this->get_field_id("titre");?>" class="widefat" type="text"/>
970 + </p>
971 + <p>
972 + <label for="<?php echo $this->get_field_id("nbdoc");?>"><?php echo __("Nombre de documents affichés",'wp-hal') .' :'?></label>
973 + <input class="tiny-text" id="<?php echo $this->get_field_id("nbdoc");?>" name="<?php echo $this->get_field_name("nbdoc");?>" type="number" step="1" min="1" max="10" value="<?php echo $instance['nbdoc'];?>" size="3">
974 + </p>
975 + <p>
976 + <label for="<?php echo $this->get_field_id("typetext");?>"><?php echo __("Type d'affichage",'wp-hal') .' :'?></label>
977 + <select id="<?php echo $this->get_field_id("typetext");?>" name="<?php echo $this->get_field_name("typetext");?>">
978 + <option id="<?php echo $this->get_field_id("Title");?>" value="title_s" <?php echo ($instance["typetext"] == "title_s")?'selected':''; ?>><label for="<?php echo $this->get_field_id("Title");?>"><?php echo __("Titre", 'wp-hal')?></label></option>
979 + <option id="<?php echo $this->get_field_id("Citation");?>" value="citationRef_s" <?php echo ($instance["typetext"] == "citationRef_s")?'selected':''; ?>><label for="<?php echo $this->get_field_id("Citation");?>"><?php echo __("Citation", 'wp-hal')?></label></option>
980 + </select>
981 + </p>
982 + <p>
983 + <label for="<?php echo $this->get_field_id("select");?>"><?php echo __("Type d'Id",'wp-hal') .' :'?></label>
984 + <select id="<?php echo $this->get_field_id("select");?>" name="<?php echo $this->get_field_name("select");?>">
985 + <option id="<?php echo $this->get_field_id("Idhal");?>" value="authIdHal_s" <?php echo ($instance["select"] == "authIdHal_s")?'selected':''; ?>><label for="<?php echo $this->get_field_id("Idhal");?>">Id Hal</label><span style="font-style: italic;"> <?php echo __('(Exemple : laurent-capelli)','wp-hal');?></span></option>
986 + <option id="<?php echo $this->get_field_id("StructId");?>" value="structId_i" <?php echo ($instance["select"] == "structId_i")?'selected':''; ?>><label for="<?php echo $this->get_field_id("StructId");?>">Struct Id</label><span style="font-style: italic;"> <?php echo __('(Exemple : 413106)','wp-hal');?></span></option>
987 + <option id="<?php echo $this->get_field_id("AuthorStructId");?>" value="authStructId_i" <?php echo ($instance["select"] == "authStructId_i")?'selected':''; ?>><label for="<?php echo $this->get_field_id("AuthorStructId");?>">AuthorStruct Id</label><span style="font-style: italic;"> <?php echo __('(Exemple : 413106)','wp-hal');?></span></option>
988 + <option id="<?php echo $this->get_field_id("AuthorId");?>" value="authId_i" <?php echo ($instance["select"] == "authId_i")?'selected':''; ?>><label for="<?php echo $this->get_field_id("AuthorId");?>">Author Id</label><span style="font-style: italic;"> <?php echo __('(Exemple : 413106)','wp-hal');?></span></option>
989 + <option id="<?php echo $this->get_field_id("Anrproject");?>" value="anrProjectId_i" <?php echo ($instance["select"] == "anrProjectId_i")?'selected':''; ?>><label for="<?php echo $this->get_field_id("Anrproject");?>">anrProject Id</label><span style="font-style: italic;"> <?php echo __('(Exemple : 1646)','wp-hal');?></span></option>
990 + <option id="<?php echo $this->get_field_id("Europeanproject");?>" value="europeanProjectId_i" <?php echo ($instance["select"] == "europeanProjectId_i")?'selected':''; ?>><label for="<?php echo $this->get_field_id("Europeanproject");?>">europeanProject Id</label><span style="font-style: italic;"> <?php echo __('(Exemple : 17877)','wp-hal');?></span></option>
991 + <option id="<?php echo $this->get_field_id("Collection");?>" value="collCode_s" <?php echo ($instance["select"] == "collCode_s")?'selected':''; ?>><label for="<?php echo $this->get_field_id("Collection");?>">Collection</label><span style="font-style: italic;"> <?php echo __('(Exemple : TICE2014)','wp-hal');?></span></option>
992 + </select>
993 + </p>
994 + <p>
995 + <label for="<?php echo $this->get_field_id("idhal");?>"><?php echo __("Id",'wp-hal') .' :'?></label>
996 + <input value="<?php echo $instance['idhal'];?>" name="<?php echo $this->get_field_name("idhal");?>" id="<?php echo $this->get_field_id("idhal");?>" type="text"/>
997 + </p>
998 + <?php
999 + }
1000 +}
1001 +
1002 +
1003 +function register_settings() {
1004 + register_setting( 'wphal_option', 'option_choix' );
1005 + register_setting( 'wphal_option', 'option_type' );
1006 + register_setting( 'wphal_option', 'option_groupe' );
1007 + register_setting( 'wphal_option', 'option_idhal' );
1008 + register_setting( 'wphal_option', 'option_lang' );
1009 + register_setting( 'wphal_option', 'option_infocontact' );
1010 + register_setting( 'wphal_option', 'option_email' );
1011 + register_setting( 'wphal_option', 'option_tel' );
1012 + register_setting( 'wphal_option', 'option_social0' );
1013 + register_setting( 'wphal_option', 'option_social1' );
1014 + register_setting( 'wphal_option', 'option_social2' );
1015 + register_setting( 'wphal_option', 'option_social3' );
1016 +}
1017 +
1018 +/**
1019 + * Crée le menu d'option du plugin
1020 + */
1021 +function wphal_option() {
1022 +
1023 + if (get_option('option_type')==''){
1024 + update_option('option_type', 'authIdHal_s');
1025 + }
1026 + if (get_option('option_groupe')==''){
1027 + update_option('option_groupe', 'paginer');
1028 + }
1029 + ?>
1030 + <div class="wrap">
1031 + <h2><?php echo __('Plugin HAL','wp-hal');?></h2>
1032 + <form method="post" enctype="multipart/form-data" action="options.php">
1033 + <div id="poststuff">
1034 + <div id="post-body" class="metabox-holder columns-2">
1035 + <div id="post-body-content">
1036 + <?php settings_fields( 'wphal_option' ); ?>
1037 + <?php do_settings_sections( 'wphal_option' ); ?>
1038 + <table class="form-table">
1039 + <tr valign="top">
1040 + <th scope="row" style="font-size: 18px;"><?php echo __('Paramètre de la page :','wp-hal');?></th>
1041 + </tr>
1042 + <tr valign="top">
1043 + <th scope="row"><?php echo __('Type d\'Id','wp-hal');?></th>
1044 + <td><select name="option_type">
1045 + <option id="Idhal" value="authIdHal_s" <?php echo (get_option('option_type') == "authIdHal_s")?'selected':''; ?>><label for="Idhal">Id Hal</label><span style="font-style: italic;"> <?php echo __('(Exemple : laurent-capelli)','wp-hal');?></span></option>
1046 + <option id="StructId" value="structId_i" <?php echo (get_option('option_type') == "structId_i")?'selected':''; ?>><label for="StructId">Struct Id</label><span style="font-style: italic;"> <?php echo __('(Exemple : 413106)','wp-hal');?></span></option>
1047 + <option id="AuthorStructId" value="authStructId_i" <?php echo (get_option('option_type') == "authStructId_i")?'selected':''; ?>><label for="AuthorStructId">AuthorStruct Id</label><span style="font-style: italic;"> <?php echo __('(Exemple : 413106)','wp-hal');?></span></option>
1048 + <option id="AuthorId" value="authId_i" <?php echo (get_option('option_type') == "authId_i")?'selected':''; ?>><label for="AuthorId">Author Id</label><span style="font-style: italic;"> <?php echo __('(Exemple : 413106)','wp-hal');?></span></option>
1049 + <option id="Anrproject" value="anrProjectId_i" <?php echo (get_option('option_type') == "anrProjectId_i")?'selected':''; ?>><label for="Anrproject">anrProject Id</label><span style="font-style: italic;"> <?php echo __('(Exemple : 1646)','wp-hal');?></span></option>
1050 + <option id="Europeanproject" value="europeanProjectId_i" <?php echo (get_option('option_type') == "europeanProjectId_i")?'selected':''; ?>><label for="Europeanproject">europeanProject Id</label><span style="font-style: italic;"> <?php echo __('(Exemple : 17877)','wp-hal');?></span></option>
1051 + <option id="Collection" value="collCode_s" <?php echo (get_option('option_type') == "collCode_s")?'selected':''; ?>><label for="Collection">Collection</label><span style="font-style: italic;"> <?php echo __('(Exemple : TICE2014)','wp-hal');?></span></option>
1052 + </select>
1053 + <input type="text" name="option_idhal" id="option_idhal" value="<?php echo get_option('option_idhal'); ?>"/>
1054 + </td>
1055 + </tr>
1056 + <tr valign="top">
1057 + <th scope="row"><?php echo __('Affichage des documents','wp-hal');?></th>
1058 + <td><input type="radio" name="option_groupe" id="paginer" value="paginer" <?php echo (get_option('option_groupe') == "paginer")?'checked':''; ?>><label for="paginer"><?php echo __('Documents avec pagination','wp-hal');?></label><br>
1059 + <input type="radio" name="option_groupe" id="grouper" value="grouper" <?php echo (get_option('option_groupe') == "grouper")?'checked':''; ?>><label for="grouper"><?php echo __('Documents groupés par type','wp-hal');?></label><br>
1060 + </td>
1061 + </tr>
1062 + <tr valign="top">
1063 + <th scope="row"><?php echo __('Choix des éléments menu','wp-hal');?></th>
1064 + <td><input type="checkbox" name="option_choix[1]" id="Contact" value="contact" <?php echo (get_option('option_choix')[1] == "contact")?'checked':''; ?>><label for="Contact"><?php echo __('Contact','wp-hal');?></label><br/>
1065 + <input type="checkbox" name="option_choix[2]" id="Disciplines" value="disciplines" <?php echo (get_option('option_choix')[2] == "disciplines")?'checked':''; ?>><label for="Disciplines"><?php echo __('Disciplines','wp-hal');?></label><br/>
1066 + <input type="checkbox" name="option_choix[3]" id="Mots-clefs" value="mots-clefs" <?php echo (get_option('option_choix')[3] == "mots-clefs")?'checked':''; ?>><label for="Mots-clefs"><?php echo __('Mots-clefs','wp-hal');?></label><br/>
1067 + <input type="checkbox" name="option_choix[4]" id="Auteurs" value="auteurs" <?php echo (get_option('option_choix')[4] == "auteurs")?'checked':''; ?>><label for="Auteurs"><?php echo __('Auteurs','wp-hal');?></label><br/>
1068 + <input type="checkbox" name="option_choix[5]" id="Revues" value="revues" <?php echo (get_option('option_choix')[5] == "revues")?'checked':''; ?>><label for="Revues"><?php echo __('Revues','wp-hal');?></label><br/>
1069 + <input type="checkbox" name="option_choix[6]" id="Annee" value="annee" <?php echo (get_option('option_choix')[6] == "annee")?'checked':''; ?>><label for="Annee"><?php echo __('Année de production','wp-hal');?></label><br/>
1070 + <input type="checkbox" name="option_choix[7]" id="Institution" value="institution" <?php echo (get_option('option_choix')[7] == "institution")?'checked':''; ?>><label for="Institution"><?php echo __('Institutions','wp-hal');?></label><br/>
1071 + <input type="checkbox" name="option_choix[8]" id="Laboratoire" value="laboratoire" <?php echo (get_option('option_choix')[8] == "laboratoire")?'checked':''; ?>><label for="Laboratoire"><?php echo __('Laboratoires','wp-hal');?></label><br/>
1072 + <input type="checkbox" name="option_choix[9]" id="Departement" value="departement" <?php echo (get_option('option_choix')[9] == "departement")?'checked':''; ?>><label for="Departement"><?php echo __('Départements','wp-hal');?></label><br/>
1073 + <input type="checkbox" name="option_choix[10]" id="Equipe" value="equipe" <?php echo (get_option('option_choix')[10] == "equipe")?'checked':''; ?>><label for="Equipe"><?php echo __('Équipes de recherche','wp-hal');?></label>
1074 + </td>
1075 + </tr>
1076 + <tr valign="top">
1077 + <th scope="row" style="font-size: 18px;"><?php echo __('Contact :','wp-hal');?></th>
1078 + </tr>
1079 + <tr>
1080 + <th scope="row"><?php echo __("Afficher les informations d'un chercheur ayant un IdHal ?",'wp-hal');?></th>
1081 + <td><input type="radio" name="option_infocontact" id="wphal-yes" value="yes" <?php echo (get_option('option_infocontact') == "yes")?'checked':''; ?>><label for="wphal-yes"><?php echo __("Oui",'wp-hal')?></label><br>
1082 + <input type="radio" name="option_infocontact" id="wphal-no" value="no" <?php echo (get_option('option_infocontact') == "no")?'checked':''; ?>><label for="wphal-no"><?php echo __("Non",'wp-hal')?></label><br>
1083 + </td>
1084 + <tr>
1085 + <th scope="row"><?php echo __('Email','wp-hal');?></th>
1086 + <td><input type="text" style="width:300px;" placeholder="Exemple : hi@mail.com" name="option_email" id="option_email" value="<?php echo get_option('option_email'); ?>"/><img alt="email" src="<?php echo plugin_dir_url( __FILE__ ) ?>img/mail.svg" style="vertical-align:middle; width:32px; margin-left:2px; margin-right:2px;"/></td>
1087 + </tr>
1088 + <tr>
1089 + <th scope="row"><?php echo __('Téléphone','wp-hal');?></th>
1090 + <td><input type="text" style="width:300px;" placeholder="Exemple : 06-01-02-03-04" name="option_tel" id="option_tel" value="<?php echo get_option('option_tel');?>"/><img alt="phone" src="<?php echo plugin_dir_url( __FILE__ ) ?>img/phone.svg" style="vertical-align:middle; width:32px; margin-left:2px; margin-right:2px;"/></td>
1091 + </tr>
1092 + <tr>
1093 + <th>Facebook (http://www.facebook.com/)</th>
1094 + <td><input type="text" style="width:300px;" placeholder="Exemple : fa.book" name="option_social0" id="option_social0" value="<?php echo get_option('option_social0'); ?>"/><img alt="facebook" src="<?php echo plugin_dir_url( __FILE__ ) ?>img/facebook.svg" style="vertical-align:middle; width:32px; margin-left:2px; margin-right:2px;"/></td>
1095 + </tr>
1096 + <tr>
1097 + <th>Twitter (http://www.twitter.com/)</th>
1098 + <td><input type="text" style="width:300px;" placeholder="Exemple : tweet_heure" name="option_social1" id="option_social1" value="<?php echo get_option('option_social1'); ?>"/><img alt="twitter" src="<?php echo plugin_dir_url( __FILE__ ) ?>img/twitter.svg" style="vertical-align:middle; width:32px; margin-left:2px; margin-right:2px;"/></td>
1099 + </tr>
1100 + <tr>
1101 + <th>Google + (https://plus.google.com/u/0/+)</th>
1102 + <td><input type="text" style="width:300px;" placeholder="Exemple : goo.plus" name="option_social2" id="option_social2" value="<?php echo get_option('option_social2'); ?>"/><img alt="google" src="<?php echo plugin_dir_url( __FILE__ ) ?>img/google-plus.svg" style="vertical-align:middle; width:32px; margin-left:2px; margin-right:2px;"/></td>
1103 + </tr>
1104 + <tr>
1105 + <th>LinkedIn (https://www.linkedin.com/in/)</th>
1106 + <td><input type="text" style="width:300px;" placeholder="Exemple : link.dine" name="option_social3" id="option_social3" value="<?php echo get_option('option_social3'); ?>"/><img alt="linkedin" src="<?php echo plugin_dir_url( __FILE__ ) ?>img/linkedin.svg" style="vertical-align:middle; width:32px; margin-left:2px; margin-right:2px;"/></td>
1107 + </tr>
1108 + </table>
1109 + <?php
1110 + submit_button(__('Enregistrer','wp-hal'), 'primary large', 'submit', true); ?>
1111 + </div>
1112 + <div id="postbox-container-1" class="postbox-container">
1113 +
1114 + </div>
1115 + </div>
1116 + <br class="clear"><br/>
1117 + </div>
1118 + </form>
1119 +
1120 + </div>
1121 +
1122 +<?php
1123 +}
1124 +
1125 +
1126 +/**
1127 + * Reset les données Hal
1128 + */
1129 +function reset_option() {
1130 + delete_option('option_choix');
1131 + delete_option('option_type');
1132 + delete_option('option_groupe');
1133 + delete_option('option_idhal');
1134 + delete_option('option_lang');
1135 + delete_option('option_infocontact');
1136 + delete_option('option_email');
1137 + delete_option('option_tel');
1138 + delete_option('option_social0');
1139 + delete_option('option_social1');
1140 + delete_option('option_social2');
1141 + delete_option('option_social3');
1142 +}
1026 1143 ?>