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 -1045 1.22.0.7 View file →
@@ -1,1046 +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.2
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_idhal') != '') {
60 -
61 - if (get_option('option_groupe') == 'grouper') {
62 - //cURL sur l'API pour récupérer les données
63 - $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';
64 - } elseif (get_option('option_groupe') == 'paginer') {
65 - $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';
66 - }
67 -
68 - $ch = curl_init($url);
69 - // Options
70 - $options = array(
71 - CURLOPT_RETURNTRANSFER => true,
72 - CURLOPT_HTTPHEADER => array('Content-type: application/json'),
73 - CURLOPT_TIMEOUT => 10,
74 - CURLOPT_USERAGENT => "HAL Plugin Wordpress"
75 - );
76 -
77 - // Bind des options et de l'objet cURL que l'on va utiliser
78 - curl_setopt_array($ch, $options);
79 - // Récupération du résultat JSON
80 - $json = json_decode(curl_exec($ch));
81 - curl_close($ch);
82 -
83 - //cURL sur l'API doctype pour récupérer les labels des docType
84 - $chtype = curl_init(urltype);
85 - // Options
86 - $options = array(
87 - CURLOPT_RETURNTRANSFER => true,
88 - CURLOPT_HTTPHEADER => array('Content-type: application/json'),
89 - CURLOPT_TIMEOUT => 10,
90 - CURLOPT_USERAGENT => "HAL Plugin Wordpress"
91 - );
92 -
93 - // Bind des options et de l'objet cURL que l'on va utiliser
94 - curl_setopt_array($chtype, $options);
95 - // Récupération du résultat JSON
96 - $jsontype = json_decode(curl_exec($chtype));
97 - curl_close($chtype);
98 -
99 - $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
100 -
101 - $choix = 0;
102 - for ($i = 1; $i < 10; $i++) {
103 - if (get_option('option_choix')[$i] != null) {
104 - $choix = $choix + 1;
105 - }
106 - }
107 -
108 - $content = '<div id="content-plugin">
109 - <ul id="menu">';
110 - $content .= '<li><a href="#publications" onclick="displayElem(\'publications\'); return false;" style="font-size:18px; text-decoration: none;">' . __('Publications', 'wp-hal') . '</a></li>';
111 - if ($choix != 0) {
112 - $content .= '<li><a href="#filtres" onclick="return false;" style="font-size:18px; text-decoration: none; cursor:default;">' . __('Filtres', 'wp-hal') . '</a>';
113 - $content .= '<ul id="filtres">';
114 - if (get_option('option_choix')[1] == 'contact') {
115 - $content .= '<li><a href="#contact" onclick="displayElem(\'contact\'); return false;" style="margin:1px; text-decoration: none;">' . __('Contact', 'wp-hal');
116 - $content .= '</a></li>';
117 - }
118 - if (get_option('option_choix')[2] == 'disciplines') {
119 - $content .= '<li><a href="#disciplines" onclick="displayElem(\'disciplines\'); return false;" style="margin:1px; text-decoration: none;">' . __('Disciplines', 'wp-hal');
120 - $content .= '</a></li>';
121 - }
122 - if (get_option('option_choix')[3] == 'mots-clefs') {
123 - $content .= '<li><a href="#keywords" onclick="displayElem(\'keywords\'); return false;" style="margin:1px; text-decoration: none;">' . __('Mots-clefs', 'wp-hal');
124 - $content .= '</a></li>';
125 - }
126 - if (get_option('option_choix')[4] == 'auteurs') {
127 - $content .= '<li><a href="#auteurs" onclick="displayElem(\'auteurs\'); return false;" style="margin:1px; text-decoration: none;">' . __('Auteurs', 'wp-hal');
128 - $content .= '</a></li>';
129 - }
130 - if (get_option('option_choix')[5] == 'revues') {
131 - $content .= '<li><a href="#revues" onclick="displayElem(\'revues\'); return false;" style="margin:1px; text-decoration: none;">' . __('Revues', 'wp-hal');
132 - $content .= '</a></li>';
133 - }
134 - if (get_option('option_choix')[6] == 'annee') {
135 - $content .= '<li><a href="#annees" onclick="displayElem(\'annees\'); return false;" style="margin:1px; text-decoration: none;">' . __('Année de production', 'wp-hal');
136 - $content .= '</a></li>';
137 - }
138 - if (get_option('option_choix')[7] == 'institution') {
139 - $content .= '<li><a href="#insts" onclick="displayElem(\'insts\'); return false;" style="margin:1px; text-decoration: none;">' . __('Institutions', 'wp-hal');
140 - $content .= '</a></li>';
141 - }
142 - if (get_option('option_choix')[8] == 'laboratoire') {
143 - $content .= '<li><a href="#labs" onclick="displayElem(\'labs\'); return false;" style="margin:1px; text-decoration: none;">' . __('Laboratoires', 'wp-hal');
144 - $content .= '</a></li>';
145 - }
146 - if (get_option('option_choix')[9] == 'departement') {
147 - $content .= '<li><a href="#depts" onclick="displayElem(\'depts\'); return false;" style="margin:1px; text-decoration: none;">' . __('Départements', 'wp-hal');
148 - $content .= '</a></li>';
149 - }
150 - if (get_option('option_choix')[10] == 'equipe') {
151 - $content .= '<li><a href="#equipes" onclick="displayElem(\'equipes\'); return false;" style="margin:1px; text-decoration: none;">' . __('Équipes de recherche', 'wp-hal');
152 - $content .= '</a></li>';
153 - }
154 - $content .= '</ul></li>';
155 - }
156 - $content .= '</ul><br/><hr>';
157 -
158 - $content .= '<div id="meta">
159 - <div class="display" id="contact" style="display: none;">
160 - <h3>' . __('Contact', 'wp-hal');
161 - $content .= '</h3>
162 -
163 - <ul style="list-style-type: none;">';
164 - if (get_option('option_email') != '') {
165 - $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>';
166 - }
167 - if (get_option('option_tel') != '') {
168 - $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>';
169 - }
170 - if (get_option('option_social0') != '') {
171 - $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>';
172 - }
173 - if (get_option('option_social1') != '') {
174 - $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>';
175 - }
176 - if (get_option('option_social2') != '') {
177 - $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>';
178 - }
179 - if (get_option('option_social3') != '') {
180 - $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>';
181 - }
182 - $content .= '</ul>
183 - </div>
184 - <div class="display" id="disciplines" style="display: none;">
185 - <h3>' . __('Disciplines', 'wp-hal') . '</h3>';
186 -
187 - if (locale == 'fr_FR') {
188 - $facetdomain = $json->facet_counts->facet_fields->fr_domainAllCodeLabel_fs;
189 - } elseif (locale == 'es_ES') {
190 - $facetdomain = $json->facet_counts->facet_fields->es_domainAllCodeLabel_fs;
191 - } else {
192 - $facetdomain = $json->facet_counts->facet_fields->en_domainAllCodeLabel_fs;
193 - }
194 -
195 - if (!is_null($facetdomain) && !empty($facetdomain)) {
196 -
197 - $content .= '<div id="listdisci">';
198 - $content .= '<span id="tridisciplines">';
199 - $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>';
200 - $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>';
201 - $content .= '</span>';
202 - $content .= '<ul id="discipline" class="discipline">';
203 - foreach ($facetdomain as $res) {
204 - $name = explode(delimiter, $res[0]);
205 - $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>';
206 - }
207 - $content .= '</ul>';
208 - $content .= '</div>';
209 -
210 - $content .= '<div id="graph" style="display:none;">';
211 - $content .= '<div id="piedisci"></div>';
212 - $content .= '</div>';
213 - $content .= '<button type="button" href="" style="text-decoration: none;" id="disci" onclick="visibilitedisci(\'listdisci\',\'graph\',\'tridisciplines\'); return false;" >' . __('Graphique', 'wp-hal');
214 - $content .= '</button>';
215 - }
216 - $content .= '</div>
217 - <div class="display" id="keywords" style="display: none;">
218 - <h3>' . __('Mots-clefs', 'wp-hal') . '</h3>';
219 - if (!is_null($json->facet_counts->facet_fields->keyword_s) && !empty($json->facet_counts->facet_fields->keyword_s)) {
220 - $content .= '<div id="keys">';
221 - $r = 0;
222 - // CSS Nuage de mots
223 - $maxsize = 25;
224 - $minsize = 10;
225 - $maxval = max(array_values($json->facet_counts->facet_fields->keyword_s[1]));
226 - $minval = min(array_values($json->facet_counts->facet_fields->keyword_s[1]));
227 - $spread = ($maxval - $minval);
228 - $step = ($maxsize - $minsize) / $spread;
229 - $tab = array();
230 - foreach ($json->facet_counts->facet_fields->keyword_s as $res) {
231 - $r = $r + 1;
232 - if ($r > 20) {
233 - break;
234 - }
235 - $tab[] = $res;
236 - }
237 - asort($tab); // Tri du tableau par ordre alphabétique
238 - foreach ($tab as $res) {
239 - $size = round($minsize + (($res[1] - $minval) * $step));
240 - $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;';
241 - }
242 - $content .= '</div>';
243 - $content .= '<div id="keysuite" style="display:none;">';
244 - $content .= '<span id="trikeywords">';
245 - $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>';
246 - $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>';
247 - $content .= '</span>';
248 - $content .= '<ul class="keyword">';
249 - $content .= '<div id="keyw">';
250 - foreach ($json->facet_counts->facet_fields->keyword_s as $res) {
251 - $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>';
252 - }
253 - $content .= '</div>';
254 - $content .= '</ul>';
255 - $content .= '</div>';
256 - $content .= '<button type="button" href="" style="text-decoration: none;" id="key" onclick="visibilitekey(\'keys\',\'keysuite\', \'trikeywords\'); return false;" >' . __('Liste complète', 'wp-hal');
257 - $content .= '</button>';
258 - }
259 - $content .= '</div>
260 - <div class="display" id="auteurs" style="display: none;">
261 - <h3>' . __('Auteurs', 'wp-hal') . '</h3>';
262 - if (!is_null($json->facet_counts->facet_fields->authIdLastNameFirstName_fs) && !empty($json->facet_counts->facet_fields->authIdLastNameFirstName_fs)) {
263 - $content .= '<ul class="auteurs" style="list-style-type: none;">';
264 - $content .= '<span id="triauteurs">';
265 - $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>';
266 - $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>';
267 - $content .= '</span>';
268 - $content .= '<div id="aut">';
269 - $r = 0;
270 - foreach ($json->facet_counts->facet_fields->authIdLastNameFirstName_fs as $res) {
271 - $r = $r + 1;
272 - if ($r > 10) {
273 - break;
274 - }
275 - $name = explode(delimiter, $res[0]);
276 - $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>';
277 - }
278 - $i = 1;
279 - $content .= '<div id="auteursuite" style="display:none;">';
280 - foreach ($json->facet_counts->facet_fields->authIdLastNameFirstName_fs as $res) {
281 - if ($r < 10) {
282 - break;
283 - }
284 - if ($i < $r) {
285 - $i = $i + 1;
286 - } else {
287 - $name = explode(delimiter, $res[0]);
288 - $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>';
289 - }
290 - }
291 - $content .= '</div>';
292 - $content .= '</div>';
293 - $content .= '</ul>';
294 - if ($r > 10) {
295 - $content .= '<button type="button" href="" style="text-decoration: none;" id="auteur" onclick="visibilite(\'auteursuite\'); return false;" >' . __('Liste complète', 'wp-hal');
296 - $content .= '</button>';
297 - }
298 - }
299 - $content .= '</div>
300 - <div class="display" id="revues" style="display: none;">
301 - <h3>' . __('Revues', 'wp-hal') . '</h3>';
302 - if (!is_null($json->facet_counts->facet_fields->journalIdTitle_fs) && !empty($json->facet_counts->facet_fields->journalIdTitle_fs)) {
303 - $content .= '<span id="trirevues">';
304 - $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>';
305 - $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>';
306 - $content .= '</span>';
307 - $content .= '<ul class="revues">';
308 - $content .= '<div id="rev">';
309 - $r = 0;
310 - foreach ($json->facet_counts->facet_fields->journalIdTitle_fs as $res) {
311 - $r = $r + 1;
312 - if ($r > 10) {
313 - break;
314 - }
315 - $name = explode(delimiter, $res[0]);
316 - $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>';
317 - }
318 - $i = 1;
319 - $content .= '<div id="revuesuite" style="display:none;">';
320 - foreach ($json->facet_counts->facet_fields->journalIdTitle_fs as $res) {
321 - if ($r < 10) {
322 - break;
323 - }
324 - if ($i < $r) {
325 - $i = $i + 1;
326 - } else {
327 - $name = explode(delimiter, $res[0]);
328 - $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>';
329 - }
330 - }
331 - $content .= '</div>';
332 - $content .= '</div>';
333 - $content .= '</ul>';
334 - if ($r > 10) {
335 - $content .= '<button type="button" href="" style="text-decoration: none;" id="revue" onclick="visibiliterevues(\'revuesuite\'); return false;" >' . __('Liste complète', 'wp-hal');
336 - $content .= '</button>';
337 - }
338 - }
339 - $content .= '</div>
340 - <div class="display" id="annees" style="display: none;">
341 - <h3>' . __('Année de production', 'wp-hal') . '</h3>';
342 - if (!is_null($json->facet_counts->facet_fields->producedDateY_i) && !empty($json->facet_counts->facet_fields->producedDateY_i)) {
343 - $content .= '<span id="triannees">';
344 - $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>';
345 - $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>';
346 - $content .= '</span>';
347 - $content .= '<ul class="annees">';
348 - $content .= '<div id="an">';
349 -
350 - rsort($json->facet_counts->facet_fields->producedDateY_i);
351 - $r = 0;
352 - foreach ($json->facet_counts->facet_fields->producedDateY_i as $res) {
353 - $r = $r + 1;
354 - if ($r > 10) {
355 - break;
356 - }
357 - $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>';
358 - }
359 - $i = 1;
360 - $content .= '<div id="anneesuite" style="display:none;">';
361 - foreach ($json->facet_counts->facet_fields->producedDateY_i as $res) {
362 - if ($r < 10) {
363 - break;
364 - }
365 - if ($i < $r) {
366 - $i = $i + 1;
367 - } else {
368 - $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>';
369 - }
370 - }
371 - $content .= '</div>';
372 - $content .= '</div>';
373 - $content .= '</ul>';
374 - if ($r > 10) {
375 - $content .= '<button type="button" href="" style="text-decoration: none;" id="annee" onclick="visibiliteannee(\'anneesuite\'); return false;" >' . __('Liste complète', 'wp-hal');
376 - $content .= '</button>';
377 - }
378 - }
379 - $content .= '</div>
380 - <div class="display" id="insts" style="display: none;">
381 - <h3>' . __('Institutions', 'wp-hal') . '</h3>';
382 - if (!is_null($json->facet_counts->facet_fields->instStructIdName_fs) && !empty($json->facet_counts->facet_fields->instStructIdName_fs)) {
383 - $content .= '<span id="triinsts">';
384 - $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>';
385 - $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>';
386 - $content .= '</span>';
387 - $content .= '<ul class="insts">';
388 - $content .= '<div id="institu">';
389 - $r = 0;
390 - foreach ($json->facet_counts->facet_fields->instStructIdName_fs as $res) {
391 - $r = $r + 1;
392 - if ($r > 10) {
393 - break;
394 - }
395 - $name = explode(delimiter, $res[0]);
396 - $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>';
397 - }
398 - $i = 1;
399 - $content .= '<div id="instsuite" style="display:none;">';
400 - foreach ($json->facet_counts->facet_fields->instStructIdName_fs as $res) {
401 - if ($r < 10) {
402 - break;
403 - }
404 - if ($i < $r) {
405 - $i = $i + 1;
406 - } else {
407 - $name = explode(delimiter, $res[0]);
408 - $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>';
409 - }
410 - }
411 - $content .= '</div>';
412 - $content .= '</div>';
413 - $content .= '</ul>';
414 - if ($r > 10) {
415 - $content .= '<button type="button" href="" style="text-decoration: none;" id="inst" onclick="visibiliteinst(\'instsuite\'); return false;" >' . __('Liste complète', 'wp-hal');
416 - $content .= '</button>';
417 - }
418 - }
419 - $content .= '</div>
420 - <div class="display" id="labs" style="display: none;">
421 - <h3>' . __('Laboratoires', 'wp-hal') . '</h3>';
422 - if (!is_null($json->facet_counts->facet_fields->labStructIdName_fs) && !empty($json->facet_counts->facet_fields->labStructIdName_fs)) {
423 - $content .= '<span id="trilabs">';
424 - $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>';
425 - $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>';
426 - $content .= '</span>';
427 - $content .= '<ul class="labs">';
428 - $content .= '<div id="labo">';
429 -
430 - $r = 0;
431 - foreach ($json->facet_counts->facet_fields->labStructIdName_fs as $res) {
432 - $r = $r + 1;
433 - if ($r > 10) {
434 - break;
435 - }
436 - $name = explode(delimiter, $res[0]);
437 - $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>';
438 - }
439 - $i = 1;
440 - $content .= '<div id="labsuite" style="display:none;">';
441 - foreach ($json->facet_counts->facet_fields->labStructIdName_fs as $res) {
442 - if ($r < 10) {
443 - break;
444 - }
445 - if ($i < $r) {
446 - $i = $i + 1;
447 - } else {
448 - $name = explode(delimiter, $res[0]);
449 - $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>';
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="lab" onclick="visibilitelab(\'labsuite\'); return false;" >' . __('Liste complète', 'wp-hal');
457 - $content .= '</button>';
458 - }
459 - }
460 - $content .= '</div>
461 - <div class="display" id="depts" style="display: none;">
462 - <h3>' . __('Départements', 'wp-hal') . '</h3>';
463 - if (!is_null($json->facet_counts->facet_fields->deptStructIdName_fs) && !empty($json->facet_counts->facet_fields->deptStructIdName_fs)) {
464 - $content .= '<span id="tridept">';
465 - $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>';
466 - $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>';
467 - $content .= '</span>';
468 - $content .= '<ul class="depts">';
469 - $content .= '<div id="dpt">';
470 - $r = 0;
471 - foreach ($json->facet_counts->facet_fields->deptStructIdName_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=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>';
478 - }
479 - $i = 1;
480 - $content .= '<div id="deptsuite" style="display:none;">';
481 - foreach ($json->facet_counts->facet_fields->deptStructIdName_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=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>';
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="dept" onclick="visibilitedept(\'deptsuite\'); return false;" >' . __('Liste complète', 'wp-hal');
497 - $content .= '</button>';
498 - }
499 - }
500 - $content .= '</div>
501 - <div class="display" id="equipes" style="display: none;">
502 - <h3>' . __('Équipes de recherche', 'wp-hal') . '</h3>';
503 - if (!is_null($json->facet_counts->facet_fields->rteamStructIdName_fs) && !empty($json->facet_counts->facet_fields->rteamStructIdName_fs)) {
504 - $content .= '<span id="triequipe">';
505 - $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>';
506 - $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>';
507 - $content .= '</span>';
508 - $content .= '<ul class="equipes">';
509 - $content .= '<div id="rteam">';
510 -
511 - $r = 0;
512 - foreach ($json->facet_counts->facet_fields->rteamStructIdName_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=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>';
519 - }
520 - $i = 1;
521 - $content .= '<div id="equipesuite" style="display:none;">';
522 - foreach ($json->facet_counts->facet_fields->rteamStructIdName_fs as $res) {
523 - if ($r < 10) {
524 - break;
525 - }
526 - if ($i < $r) {
527 - $i = $i + 1;
528 - } else {
529 - $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>';
530 - }
531 - }
532 - $content .= '</div>';
533 - $content .= '</div>';
534 - $content .= '</ul>';
535 - if ($r > 10) {
536 - $content .= '<button type="button" href="" style="text-decoration: none;" id="equipe" onclick="visibiliteequipe(\'equipesuite\'); return false;" >' . __('Liste complète', 'wp-hal');
537 - $content .= '</button>';
538 - }
539 - }
540 - $content .= '</div>
541 - <div class="display" id="publications">
542 - <h3>' . __('Publications', 'wp-hal') . '</h3>';
543 - $content .= '<div class="counter-doc">' . __('Nombre de documents', 'wp-hal');
544 -
545 - if (get_option('option_groupe') == 'grouper') {
546 -
547 -//LISTE DES DOCUMENTS PAR GROUPE
548 -
549 - $content .= '<h2 class="nbdoc">' . $json->grouped->docType_s->matches . '</h2></div>';
550 - $content .= '<ul style="list-style-type: none;">';
551 - for ($i = 0; $json->grouped->docType_s->groups[$i] != null; $i++) {
552 - for ($d = 0; $jsontype->response->result->doc[$d] != null; $d++) {
553 - if ($json->grouped->docType_s->groups[$i]->groupValue == $jsontype->response->result->doc[$d]->str[0]) {
554 - $titre = $jsontype->response->result->doc[$d]->str[1];
555 - }
556 - }
557 - $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>';
558 - $content .= '<div class="grp-content">';
559 - $content .= '<ul>';
560 - foreach ($json->grouped->docType_s->groups[$i]->doclist->docs as $result) {
561 - $content .= '<li>' . $result->citationFull_s . '</li>';
562 - }
563 - $content .= '</ul></div>';
564 - $content .= '</div></li>';
565 - }
566 - $content .= '</ul>';
567 - } elseif (get_option('option_groupe') == 'paginer') {
568 -
569 -//LISTE DES DOCUMENTS AVEC PAGINATION
570 -
571 - $content .= '<h2 class="nbdoc">' . $json->response->numFound . '</h2></div>';
572 -
573 -//--MODULE PAGINATION--//
574 - $messagesParPage = 10;
575 -
576 - $total = $json->response->numFound;
577 -
578 - $nombreDePages = ceil($total / $messagesParPage);
579 -
580 - if (isset($paged)) {
581 - $pageActuelle = intval($paged);
582 -
583 - if ($pageActuelle > $nombreDePages) {
584 - $pageActuelle = $nombreDePages;
585 - }
586 - } else {
587 - $pageActuelle = 1;
588 - }
589 - $premiereEntree = ($pageActuelle - 1) * $messagesParPage;
590 -
591 - $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';
592 - $ch = curl_init($url);
593 -// Options
594 - $options = array(
595 - CURLOPT_RETURNTRANSFER => true,
596 - CURLOPT_HTTPHEADER => array('Content-type: application/json'),
597 - CURLOPT_TIMEOUT => 10,
598 - CURLOPT_USERAGENT => "HAL Plugin Wordpress"
599 - );
600 -
601 -// Bind des options et de l'objet cURL que l'on va utiliser
602 - curl_setopt_array($ch, $options);
603 -// Récupération du résultat JSON
604 - $json = json_decode(curl_exec($ch));
605 - curl_close($ch);
606 -
607 -
608 -//--MODULE PAGINATION--//
609 -
610 - $content .= '<ul>';
611 - for ($i = 0; $json->response->docs[$i] != ''; $i++) {
612 - $content .= '<li>' . $json->response->docs[$i]->citationFull_s . '</li>';
613 - }
614 - $content .= '</ul>';
615 -
616 -//--AFFICHAGE PAGINATION--//
617 - $precedents = $pageActuelle - 2;
618 - $suivants = $pageActuelle + 2;
619 - $precedent = $pageActuelle - 1;
620 - $suivant = $pageActuelle + 1;
621 - $penultimate = $nombreDePages - 1;
622 -
623 - $content .= '<ul class="pagination">';
624 -//--BOUTON PRECEDENT--//
625 - if ($pageActuelle == 1) {
626 - $content .= '<li class="disabled"><a href="#">&laquo;</a></li>';
627 - } else {
628 - $content .= '<li><a href="?paged=' . $precedent . '">&laquo;</a></li>';
629 - }
630 - if ($nombreDePages <= 6) {// Cas 1 : 6 pages ou moins - Pas de troncature
631 - for ($i = 1; $i <= $nombreDePages; $i++) {
632 - if ($i == $pageActuelle) {
633 - $content .= '<li class="active"><a href="#">' . $i . '</a></li>';
634 - } else {
635 - $content .= ' <li><a href="?paged=' . $i . '">' . $i . '</a></li> ';
636 - }
637 - }
638 - } elseif ($nombreDePages >= 7) {// Cas 2 : 7 pages ou plus - Troncature
639 - if ($pageActuelle <= 3) {// Lorsque l'on est sur les trois premières pages
640 - for ($i = 1; $i <= 4; $i++) {
641 - if ($i == $pageActuelle) {
642 - $content .= '<li class="active"><a href="#">' . $i . '</a></li>';
643 - } else {
644 - $content .= '<li><a href="?paged=' . $i . '">' . $i . '</a></li>';
645 - }
646 - }
647 - $content .= '<li class="disabled"><a href="#">&hellip;</a></li>';
648 - $content .= '<li><a href="?paged=' . $penultimate . '">' . $penultimate . '</a></li>';
649 - $content .= '<li><a href="?paged=' . $nombreDePages . '">' . $nombreDePages . '</a></li>';
650 - }
651 - if ($pageActuelle >= 4 && $pageActuelle <= $penultimate - 2) {//Lorsque l'on arrive sur la quatrième page
652 - $content .= '<li><a href="?paged=">1</a></li>';
653 - $content .= '<li class="disabled"><a href="#">&hellip;</a></li>';
654 - $content .= '<li><a href="?paged=' . $precedents . '">' . $precedents . '</a></li>';
655 - $content .= '<li><a href="?paged=' . $precedent . '">' . $precedent . '</a></li>';
656 - $content .= '<li class="active"><a href="#">' . $pageActuelle . '</a></li>';
657 - $content .= '<li><a href="?paged=' . $suivant . '">' . $suivant . '</a></li>';
658 - $content .= '<li><a href="?paged=' . $suivants . '">' . $suivants . '</a></li>';
659 - $content .= '<li class="disabled"><a href="#">&hellip;</a></li>';
660 - $content .= '<li><a href="?paged=' . $nombreDePages . '">' . $nombreDePages . '</a></li>';
661 - }
662 - if ($pageActuelle >= $penultimate - 1) {
663 - $content .= '<li><a href="?paged=1">1</a></li>';
664 - $content .= '<li><a href="?paged=2">2</a></li>';
665 - $content .= '<li class="disabled"><a href="#">&hellip;</a></li>';
666 - for ($i = $penultimate - 2; $i <= $nombreDePages; $i++) {
667 - if ($i == $pageActuelle) {
668 - $content .= '<li class="active"><a href="#">' . $i . '</a></li>';
669 - } else {
670 - $content .= '<li><a href="?paged=' . $i . '">' . $i . '</a></li>';
671 - }
672 - }
673 - }
674 - }
675 -//--BOUTON SUIVANT--//
676 - if ($pageActuelle < $nombreDePages) {
677 - $content .= '<li><a href="?paged=' . $suivant . '">&raquo;</a></li>';
678 - } else {
679 - $content .= '<li class="disabled"><a href="#">&raquo;</a></li>';
680 - }
681 - $content .= '</ul>';
682 -//--AFFICHAGE PAGINATION--//
683 - }
684 - $content .= '</div>
685 - </div>
686 -</div>';
687 - }
688 - $content .= '<div class="modal-footer">';
689 - $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>';
690 - $content .= '</div>';
691 -
692 - return $content;
693 -}
694 -
695 -function wp_adding_style() {
696 - wp_register_style('wp-hal-style1', plugins_url('/css/style.css', __FILE__));
697 - wp_register_style('wp-hal-style2', plugins_url('/css/jquery.jqplot.css', __FILE__));
698 -
699 - wp_enqueue_style('wp-hal-style1');
700 - wp_enqueue_style('wp-hal-style2');
701 -}
702 -
703 -function wp_adding_script() {
704 - wp_register_script('wp-hal-script1',plugins_url('/js/jquery.jqplot.js', __FILE__));
705 - wp_register_script('wp-hal-script2',plugins_url('/js/jqplot.highlighter.js', __FILE__));
706 - wp_register_script('wp-hal-script3',plugins_url('/js/jqplot.pieRenderer.js', __FILE__));
707 - wp_register_script('wp-hal-script4',plugins_url('/js/cv-hal.js', __FILE__));
708 -
709 -
710 - wp_enqueue_script("jquery");
711 - wp_enqueue_script('wp-hal-script1');
712 - wp_enqueue_script('wp-hal-script2');
713 - wp_enqueue_script('wp-hal-script3');
714 - wp_enqueue_script('wp-hal-script4');
715 -
716 -
717 -
718 - $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';
719 - $ch = curl_init($url);
720 - // Options
721 - $options = array(
722 - CURLOPT_RETURNTRANSFER => true,
723 - CURLOPT_HTTPHEADER => array('Content-type: application/json'),
724 - CURLOPT_TIMEOUT => 10,
725 - );
726 -
727 - // Bind des options et de l'objet cURL que l'on va utiliser
728 - curl_setopt_array($ch, $options);
729 - // Récupération du résultat JSON
730 - $json = json_decode(curl_exec($ch));
731 - curl_close($ch);
732 - if (locale == 'fr_FR') {
733 - $facetdomain = $json->facet_counts->facet_fields->fr_domainAllCodeLabel_fs;
734 - } elseif (locale == 'en_US') {
735 - $facetdomain = $json->facet_counts->facet_fields->en_domainAllCodeLabel_fs;
736 - } elseif (locale == 'es_ES') {
737 - $facetdomain = $json->facet_counts->facet_fields->es_domainAllCodeLabel_fs;
738 - } else {
739 - $facetdomain = $json->facet_counts->facet_fields->eu_domainAllCodeLabel_fs;
740 - }
741 - if(!is_null($facetdomain)){
742 - foreach ($facetdomain as $res){
743 - $name = explode(delimiter,$res[0])[1];
744 - $value = $res[1];
745 - $array[] = array($name,$value);
746 - }
747 - }
748 - wp_localize_script('wp-hal-script4', 'WPWallSettings', json_encode($array));
749 - $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'));
750 - wp_localize_script('wp-hal-script4', 'translate', $translation);
751 -}
752 -
753 -/**
754 - * Récupère les fichiers css et js
755 - */
756 -add_action( 'wp_enqueue_scripts', 'wp_adding_style' );
757 -add_action( 'wp_enqueue_scripts', 'wp_adding_script' );
758 -
759 -/**
760 - * Charge lorsque le plugin est désactivé
761 - */
762 -register_deactivation_hook( __FILE__, 'reset_option' );
763 -
764 -/**
765 - * Ajoute le widget wphal à l'initialisation des widgets
766 - */
767 -add_action('widgets_init','wphal_init');
768 -
769 -/**
770 - * Ajoute le menu à l'initialisation du menu admin
771 - */
772 -add_action( 'admin_menu', 'wphal_menu' );
773 -
774 -/**
775 - * Fonction de création du menu
776 - */
777 -function wphal_menu() {
778 - add_menu_page( 'Options', 'Hal', 'manage_options', 'wp-hal.php', 'wphal_option' , '', 21);
779 -
780 - add_action( 'admin_init', 'register_settings' );
781 -}
782 -
783 -
784 -/**
785 - * Initialise le nouveau widget
786 - */
787 -function wphal_init(){
788 - register_widget("wphal_widget");
789 -}
790 -
791 -/***********************************************************************************************************************
792 - * PLUGIN WIDGET
793 - **********************************************************************************************************************/
794 -
795 -/**
796 - * Classe du widget wphal
797 - */
798 -
799 -class wphal_widget extends WP_widget{
800 -
801 -
802 - /**
803 - * Défini les propriétés du widget
804 - */
805 - function wphal_widget(){
806 - $options = array(
807 - "classname" => "wphal-publications",
808 - "description" => __("Afficher les dernières publications d'un auteur ou d'une structure.", 'wp-hal')
809 - );
810 -
811 - parent::__construct(
812 - 'hal-publications',
813 - __("Publications récentes", 'wp-hal'),
814 - $options
815 - );
816 - }
817 -
818 - /**
819 - * Crée le widget
820 - * @param $args
821 - * @param $instance
822 - */
823 - function widget($args, $instance){
824 - $num = 5;
825 - $url = api .'?q=*:*&fq='.$instance['select'].':' . $instance['idhal'] . '&fl=uri_s,title_s&sort=' . producedDateY . '&rows=' . $num . '&wt=json';
826 -
827 - $ch = curl_init($url);
828 - // Options
829 - $options = array(
830 - CURLOPT_RETURNTRANSFER => true,
831 - CURLOPT_HTTPHEADER => array('Content-type: application/json'),
832 - CURLOPT_TIMEOUT => 10,
833 - CURLOPT_USERAGENT => "HAL Plugin Wordpress"
834 - );
835 -
836 - // Bind des options et de l'objet cURL que l'on va utiliser
837 - curl_setopt_array($ch, $options);
838 - // Récupération du résultat JSON
839 - $json = json_decode(curl_exec($ch));
840 - curl_close($ch);
841 -
842 - $content = '<ul class="ul-widget">';
843 - for ($i = 0; $i < $num; $i++){
844 - $content .= '<li class="li-widget"><a href="' . $json->response->docs[$i]->uri_s . '" target="_blank">' . $json->response->docs[$i]->title_s[0] . '</a></li>';
845 - }
846 - $content .= '</ul>';
847 -
848 - extract($args);
849 - echo $before_widget;
850 - echo $before_title.$instance['titre'].$after_title;
851 - echo $content;
852 - echo $after_widget;
853 - }
854 -
855 - /**
856 - * Sauvegarde des données
857 - * @param $new
858 - * @param $old
859 - */
860 - function update($new, $old){
861 - return $new;
862 - }
863 -
864 - /**
865 - * Formulaire du widget
866 - * @param $instance
867 - */
868 - function form($instance){
869 -
870 - $defaut = array(
871 - 'titre' => __("Publications récentes", 'wp-hal'),
872 - 'select' => "authIdHal_s"
873 - );
874 - $instance = wp_parse_args($instance,$defaut);
875 - ?>
876 - <p>
877 - <label for="<?php echo $this->get_field_id("titre");?>"><?php echo __('Titre :','wp-hal')?></label>
878 - <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"/>
879 - </p>
880 - <p>
881 - <select id="<?php echo $this->get_field_id("select");?>" name="<?php echo $this->get_field_name("select");?>">
882 - <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>
883 - <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>
884 - <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>
885 - <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>
886 - <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>
887 - </select>
888 - </p>
889 - <p>
890 - <label for="<?php echo $this->get_field_id("idhal");?>">Id :</label>
891 - <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"/>
892 - </p>
893 - <?php
894 - }
895 -}
896 -
897 -
898 -function register_settings() {
899 - register_setting( 'wphal_option', 'option_choix' );
900 - register_setting( 'wphal_option', 'option_type' );
901 - register_setting( 'wphal_option', 'option_groupe' );
902 - register_setting( 'wphal_option', 'option_idhal' );
903 - register_setting( 'wphal_option', 'option_lang' );
904 - register_setting( 'wphal_option', 'option_email' );
905 - register_setting( 'wphal_option', 'option_tel' );
906 - register_setting( 'wphal_option', 'option_social0' );
907 - register_setting( 'wphal_option', 'option_social1' );
908 - register_setting( 'wphal_option', 'option_social2' );
909 - register_setting( 'wphal_option', 'option_social3' );
910 -}
911 -
912 -/**
913 - * Crée le menu d'option du plugin
914 - */
915 -function wphal_option() {
916 -
917 - if (get_option('option_type')==''){
918 - update_option('option_type', 'authIdHal_s');
919 - }
920 - if (get_option('option_groupe')==''){
921 - update_option('option_groupe', 'paginer');
922 - }
923 - ?>
924 - <div class="wrap">
925 - <h2><?php echo __('Plugin HAL','wp-hal');?></h2>
926 - <form method="post" enctype="multipart/form-data" action="options.php">
927 - <div id="poststuff">
928 - <div id="post-body" class="metabox-holder columns-2">
929 - <div id="post-body-content">
930 - <?php settings_fields( 'wphal_option' ); ?>
931 - <?php do_settings_sections( 'wphal_option' ); ?>
932 - <table class="form-table">
933 - <tr valign="top">
934 - <th scope="row" style="font-size: 18px;"><?php echo __('Paramètre de la page :','wp-hal');?></th>
935 - </tr>
936 - <tr valign="top">
937 - <th scope="row"><?php echo __('Type d\'Id','wp-hal');?></th>
938 - <td><select name="option_type">
939 - <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>
940 - <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>
941 - <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>
942 - <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>
943 - <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>
944 - </select>
945 - <input type="text" name="option_idhal" id="option_idhal" value="<?php echo get_option('option_idhal'); ?>"/>
946 - </td>
947 - </tr>
948 - <tr valign="top">
949 - <th scope="row"><?php echo __('Affichage des documents','wp-hal');?></th>
950 - <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>
951 - <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>
952 - </td>
953 - </tr>
954 - <tr valign="top">
955 - <th scope="row"><?php echo __('Choix des éléments menu','wp-hal');?></th>
956 - <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/>
957 - <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/>
958 - <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/>
959 - <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/>
960 - <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/>
961 - <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/>
962 - <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/>
963 - <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/>
964 - <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/>
965 - <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>
966 - </td>
967 - </tr>
968 - <tr valign="top">
969 - <th scope="row" style="font-size: 18px;"><?php echo __('Contact :','wp-hal');?></th>
970 - </tr>
971 - <tr valign="top">
972 - <th scope="row"><?php echo __('Email','wp-hal');?></th>
973 - <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>
974 - </tr>
975 - <tr valign="top">
976 - <th scope="row"><?php echo __('Téléphone','wp-hal');?></th>
977 - <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>
978 - </tr>
979 - <tr>
980 - <th>Facebook</th>
981 - <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>
982 - </tr>
983 - <tr>
984 - <th>Twitter</th>
985 - <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>
986 - </tr>
987 - <tr>
988 - <th>Google +</th>
989 - <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>
990 - </tr>
991 - <tr>
992 - <th>LinkedIn</th>
993 - <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>
994 - </tr>
995 - </table>
996 - <?php
997 - $verifsolr = explode(',',get_option('option_idhal'));
998 - $numverif = count($verifsolr);
999 - $idhal = '';
1000 - if ($numverif<1024){
1001 - $idhal = str_replace(',',' OR ',get_option('option_idhal'));
1002 - } else {
1003 - $listidhal = explode(',',get_option('option_idhal'));
1004 - for($i=0;$i<1024;$i++){
1005 - if ($i == 0){
1006 - $idhal = $listidhal[$i];
1007 - } else {
1008 - $idhal .= ' OR ';
1009 - $idhal .= $listidhal[$i];
1010 - }
1011 - }
1012 - }
1013 - update_option('option_idhal', $idhal);
1014 - submit_button(__('Enregistrer','wp-hal'), 'primary large', 'submit', true); ?>
1015 - </div>
1016 - <div id="postbox-container-1" class="postbox-container">
1017 -
1018 - </div>
1019 - </div>
1020 - <br class="clear"><br/>
1021 - </div>
1022 - </form>
1023 -
1024 - </div>
1025 -
1026 -<?php
1027 -}
1028 -
1029 -
1030 -/**
1031 - * Reset les données Hal
1032 - */
1033 -function reset_option() {
1034 - delete_option('option_choix');
1035 - delete_option('option_type');
1036 - delete_option('option_groupe');
1037 - delete_option('option_idhal');
1038 - delete_option('option_lang');
1039 - delete_option('option_email');
1040 - delete_option('option_tel');
1041 - delete_option('option_social0');
1042 - delete_option('option_social1');
1043 - delete_option('option_social2');
1044 - delete_option('option_social3');
1045 -}
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 +}
1046 1143 ?>