PluginProbe
HAL / 2.3
HAL v2.3
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 +1098 -749 1.02.3 View file →
@@ -1,15 +1,15 @@
1 1 <?php
2 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.0
7 -* Author: Baptiste Blondelle
8 -* Author URI: http://www.ccsd.cnrs.fr
9 -* Text Domain: wp-hal
10 -* Domain Path: /lang/
11 -*/
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.3
7 + * Author: CCSD
8 + * Author URI: http://www.ccsd.cnrs.fr
9 + * Text Domain: wp-hal
10 + * Domain Path: /lang/
11 + */
12 12
13 13
14 14 // Traduction de la description
15 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");
@@ -17,27 +17,38 @@
17 17 //Récupère les constantes
18 18 require_once("constantes.php");
19 19
20 20
21 -if (locale == 'fr_FR') {
22 - define('lang', 'fr_');
23 -} elseif (locale == 'es_ES') {
24 - define('lang', 'es_');
21 +if (wphal_locale == 'fr_FR') {
22 + define('wphal_lang', 'fr');
23 +} elseif (wphal_locale == 'es_ES') {
24 + define('wphal_lang', 'es');
25 25 } else {
26 - define('lang', 'en_');
26 + define('wphal_lang', 'en');
27 27 }
28 28
29 +function wphal_is_curl_installed() {
30 + $loaded_extentions = get_loaded_extensions();
31 + if (in_array ('curl', $loaded_extentions)) {
32 + return true;
33 + }
34 + else {
35 + return false;
36 + }
37 +}
38 +
29 39 // Création du shortcode ('nom du shortcode', 'fonction appelée')
30 -add_shortcode( 'cv-hal', 'cv_hal' );
40 +add_shortcode( 'cv-hal', 'wphal_cv_hal' );
41 +add_shortcode( 'nb-doc', 'wphal_nb_doc' );
31 42
32 43
33 -function charger_languages() {
44 +function wphal_charger_languages() {
34 45 load_plugin_textdomain('wp-hal', false, dirname(plugin_basename(__FILE__)) . '/lang/');
35 46 }
36 47
37 -add_action('plugins_loaded', 'charger_languages');
48 +add_action('plugins_loaded', 'wphal_charger_languages');
38 49
39 -function hal_plugin_action_links( $links, $file ) {
50 +function wphal_action_links( $links, $file ) {
40 51 if ( $file != plugin_basename( __FILE__ ))
41 52 return $links;
42 53
43 54 $settings_link = '<a href="admin.php?page=wp-hal.php">' . __( 'Paramètres', 'wp-hal' ) . '</a>';
@@ -46,724 +57,923 @@
46 57
47 58 return $links;
48 59 }
49 60
61 +add_filter( 'query_vars', 'wphal_query_vars' );
62 +function wphal_query_vars( $query_vars ) {
63 + $query_vars[] = 'hal_page';
64 + return $query_vars;
65 +}
50 66
51 -add_filter( 'plugin_action_links', 'hal_plugin_action_links',10,2);
67 +add_filter( 'plugin_action_links', 'wphal_action_links',10,2);
68 +/**
69 + * @param $url
70 + * @return object
71 + */
72 +function wphal_do_common_curl_call($url) {
73 + $response = wp_remote_get($url, [
74 + 'timeout'=>20,
75 + 'user-agent'=>"HAL Plugin Wordpress " . wphal_version,
76 + 'headers' => ['Content-type'=> 'application/json']
77 + ]);
78 + // we could ve parsed the response but if in general if no results then we get empty content
79 + $body = wp_remote_retrieve_body($response);
80 + // Récupération du résultat JSON
81 + $json = json_decode($body);
82 + return $json;
83 +}
52 84
85 +function wphal_clear_transients()
86 +{
87 + global $wpdb;
88 + // delete all "hal namespace" transients
89 + $sql = "
90 + DELETE
91 + FROM {$wpdb->options}
92 + WHERE option_name like '\_transient\_hal\_%'
93 + OR option_name like '\_transient\_timeout\_hal\_%'
94 + ";
53 95
54 -/***********************************************************************************************************************
55 - * PLUGIN SHORTCODE
56 - **********************************************************************************************************************/
57 -function cv_hal(){
96 + $wpdb->query($sql);
97 +}
58 98
59 - if (get_option('option_groupe')=='grouper'){
60 - //cURL sur l'API pour récupérer les données
61 - $url = api . '?q=*:*&fq='.get_option('option_type').':('. urlencode(get_option('option_idhal')).')&group=true&group.field=docType_s&group.limit=1000&fl=docid,citationFull_s&facet.field=' . lang .'domainAllCodeLabel_fs&facet.field=keyword_s&facet.field=journalIdTitle_fs&facet.field=producedDateY_i&facet.field=authIdLastNameFirstName_fs&facet.field=instStructIdName_fs&facet.field=labStructIdName_fs&facet.field=deptStructIdName_fs&facet.field=rteamStructIdName_fs&facet.mincount=1&facet=true&sort=' . producedDateY . '&wt=json&json.nl=arrarr';
62 - } elseif (get_option('option_groupe')=='paginer'){
63 - $url = api . '?q=*:*&fq='.get_option('option_type').':('.urlencode(get_option('option_idhal')).')&fl=docid,citationFull_s&facet.field=' . lang .'domainAllCodeLabel_fs&facet.field=keyword_s&facet.field=journalIdTitle_fs&facet.field=producedDateY_i&facet.field=authIdLastNameFirstName_fs&facet.field=instStructIdName_fs&facet.field=labStructIdName_fs&facet.field=deptStructIdName_fs&facet.field=rteamStructIdName_fs&facet.mincount=1&facet=true&sort=' . producedDateY . '&wt=json&json.nl=arrarr';
64 - }
99 +/**
100 + * fetches data from cache or download data from HAL API
101 + * @param $url
102 + * @return object
103 + */
104 +function wphal_do_get_data($url) {
105 + $transient_id = 'hal_'.md5($url);
106 + if(!empty(get_option('option_erase_cache'))){
107 + // we reset cache transient for hal namespace
108 + wphal_clear_transients();
109 + update_option('option_erase_cache', '');
110 + }
111 + $cache_expiration = empty(get_option('option_cache_timeout')) ? 1 * DAY_IN_SECONDS : intval(get_option('option_cache_timeout')) * MINUTE_IN_SECONDS;
112 + if ( false === ( $value = get_transient( $transient_id ) ) ) {
113 + $json = wphal_do_common_curl_call($url);
114 + if($json)
115 + set_transient( $transient_id, $json, $cache_expiration);
116 + return $json;
117 + } else{
118 + return $value;
119 + }
120 +}
65 121
66 - $ch = curl_init($url);
67 - // Options
68 - $options = array(
69 - CURLOPT_RETURNTRANSFER => true,
70 - CURLOPT_HTTPHEADER => array('Content-type: application/json'),
71 - CURLOPT_TIMEOUT => 10,
72 - );
122 +/**
123 + * PLUGIN SHORTCODE ND-DOC
124 + * @param $param
125 + * @return int
126 +*/
127 +function wphal_nb_doc($param)
128 +{
129 + $idhal = wphal_verifSolr(get_option('option_idhal'));
130 + extract(shortcode_atts(array(
131 + 'type' => get_option('option_type'),
132 + 'id' => $idhal
133 + ),
134 + $param
135 + ));
136 + /**
137 + * @var $id : defined by extract
138 + * @var string $type : defined by extract
139 + */
140 + $id = wphal_verifSolr($id);
73 141
74 - // Bind des options et de l'objet cURL que l'on va utiliser
75 - curl_setopt_array($ch, $options);
76 - // Récupération du résultat JSON
77 - $json = json_decode(curl_exec($ch));
78 - curl_close($ch);
142 + $url = wphal_api . '?q=*:*&fq=' . $type . ':(' . urlencode($id) . ')&rows=0&wt=json';
79 143
80 - //cURL sur l'API doctype pour récupérer les labels des docType
81 - $chtype = curl_init(urltype);
82 - // Options
83 - $options = array(
84 - CURLOPT_RETURNTRANSFER => true,
85 - CURLOPT_HTTPHEADER => array('Content-type: application/json'),
86 - CURLOPT_TIMEOUT => 10,
87 - );
144 + $json =wphal_do_get_data($url);
145 + return $json->response->numFound;
146 +}
147 +/**
148 + * PLUGIN SHORTCODE CV-HAL
149 + * @param $param
150 + * @return string
151 + */
152 +function wphal_cv_hal($param){
153 + $content = '';
154 + if ( !wphal_is_curl_installed() ) {
155 + $content = 'CURL not installed, please check the <a href="https://wordpress.org/plugins/hal/faq/" target="_blank" id="curl">FAQ</a> with the code : CURL';
156 + } else {
157 + $possible_ids = ["authIdHal_s", "structId_i", "authStructId_i", "anrProjectId_i", "europeanProjectId_i", "collCode_s"];
158 + $option_choix = !empty(get_option('option_choix')) ? get_option('option_choix') : [];
159 + if(in_array('disciplines', $option_choix)){ //Lance les scripts pour le Graphique
160 + wp_enqueue_style('wp-hal-style2');
88 161
89 - // Bind des options et de l'objet cURL que l'on va utiliser
90 - curl_setopt_array($chtype, $options);
91 - // Récupération du résultat JSON
92 - $jsontype = json_decode(curl_exec($chtype));
93 - curl_close($chtype);
162 + wp_enqueue_script('wp-hal-script1');
163 + wp_enqueue_script('wp-hal-script2');
164 + wp_enqueue_script('wp-hal-script3');
165 + }
166 + $facetdomain = null;
94 167
95 - $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
168 + // those parameters are configured from plusing settings
169 + $default_id = wphal_verifSolr(get_option('option_idhal'));
170 + $default_type = get_option('option_type');
171 + $default_contact = get_option('option_infocontact');
172 + // here we merge with shortcode parameters
173 + extract(shortcode_atts(array(
174 + 'type' => $default_type,
175 + 'id' => $default_id,
176 + 'contact' => $default_contact
177 + ),
178 + $param
179 + ));
96 180
97 - $content = '
98 -<div id="content-plugin">
99 - <ul id="tabs" class="nav nav-pills">';
100 - $content .= '<li class="active"><a href="#publications" data-toggle="tab" style="font-size:18px; text-decoration: none;">' . __('Publications', 'wp-hal'). '</a></li>';
101 - $content .= '<li><a href="#filtres" data-toggle="collapse" style="font-size:18px; text-decoration: none;">' . __('Filtres', 'wp-hal'). '<span class="caret"></span></a></li><li>';
102 - $content .= '<ul class="nav nav-pills collapse" id="filtres">';
103 - if (get_option('option_choix')[1] == 'contact') {
104 - $content .= '<li><a class="subnavtab" href="#contact" data-toggle="tab" style="margin:1px; text-decoration: none;">' . __('Contact', 'wp-hal');
105 - $content .= '</a></li>';}
106 - if (get_option('option_choix')[2] == 'disciplines') {
107 - $content .= '<li><a class="subnavtab" href="#disciplines" data-toggle="tab" style="margin:1px; text-decoration: none;">' . __('Disciplines', 'wp-hal');
108 - $content .= '</a></li>';}
109 - if (get_option('option_choix')[3] == 'mots-clefs') {
110 - $content .= '<li><a class="subnavtab" href="#keywords" data-toggle="tab" style="margin:1px; text-decoration: none;">' . __('Mots-clefs', 'wp-hal');
111 - $content .= '</a></li>';}
112 - if (get_option('option_choix')[4] == 'auteurs') {
113 - $content .= '<li><a class="subnavtab" href="#auteurs" data-toggle="tab" style="margin:1px; text-decoration: none;">' . __('Auteurs', 'wp-hal');
114 - $content .= '</a></li>';}
115 - if (get_option('option_choix')[5] == 'revues') {
116 - $content .= '<li><a class="subnavtab" href="#revues" data-toggle="tab" style="margin:1px; text-decoration: none;">' . __('Revues', 'wp-hal');
117 - $content .= '</a></li>';}
118 - if (get_option('option_choix')[6] == 'annee') {
119 - $content .= '<li><a class="subnavtab" href="#annees" data-toggle="tab" style="margin:1px; text-decoration: none;">' . __('Année de production', 'wp-hal');
120 - $content .= '</a></li>';}
121 - if (get_option('option_choix')[7] == 'institution') {
122 - $content .= '<li><a class="subnavtab" href="#insts" data-toggle="tab" style="margin:1px; text-decoration: none;">' . __('Institutions', 'wp-hal');
123 - $content .= '</a></li>';}
124 - if (get_option('option_choix')[8] == 'laboratoire') {
125 - $content .= '<li><a class="subnavtab" href="#labs" data-toggle="tab" style="margin:1px; text-decoration: none;">' . __('Laboratoires', 'wp-hal');
126 - $content .= '</a></li>';}
127 - if (get_option('option_choix')[9] == 'departement') {
128 - $content .= '<li><a class="subnavtab" href="#depts" data-toggle="tab" style="margin:1px; text-decoration: none;">' . __('Départements', 'wp-hal');
129 - $content .= '</a></li>';}
130 - if (get_option('option_choix')[10] == 'equipe') {
131 - $content .= '<li><a class="subnavtab" href="#equipes" data-toggle="tab" style="margin:1px; text-decoration: none;">' . __('Équipes de recherche', 'wp-hal');
132 - $content .= '</a></li>';}
133 - $content .= '</ul></li>';
134 - $content .= '</ul><br/><hr>';
181 + /** @var $id : defined by extract
182 + * @var string $type : defined by extract
183 + * @var string $contact : defined by extract
184 + */
185 + if (!empty($id) && in_array($type, $possible_ids)) {
186 + $id = wphal_verifSolr($id);
135 187
136 - $content .= '<div id="my-tab-content" class="tab-content">
137 - <div class="tab-pane" id="contact">
138 - <h3>' . __('Contact','wp-hal'); $content .= '</h3>
188 + if (get_option('option_groupe') == 'grouper') {
189 + //cURL sur l'API pour récupérer les données
190 + $url = wphal_api . '?q=*:*&fq=' . $type . ':(' . urlencode($id) . ')&group=true&group.field=docType_s&group.limit=1000&fl=docid,citationFull_s&facet.field=' . wphal_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=' . wphal_producedDateY . '&wt=json&json.nl=arrarr';
191 + } elseif (get_option('option_groupe') == 'paginer') {
192 + $url = wphal_api . '?q=*:*&fq=' . $type . ':(' . urlencode($id) . ')&fl=docid,citationFull_s&facet.field=' . wphal_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=' . wphal_producedDateY . '&wt=json&json.nl=arrarr';
193 + }
139 194
140 - <ul style="list-style-type: none;">';
141 - if (get_option('option_email') != ''){
142 - $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>';
195 + $json = wphal_do_get_data($url);
196 + $hal_page = (get_query_var('hal_page')) ? get_query_var('hal_page') : 1;
197 +
198 + $content = '<div id="wphal-content">';
199 + if (is_array($option_choix) && !empty($option_choix)){
200 + $content .= '<ul id="wphal-menu">';
201 + $content .= '<li><a href="#publications" onclick="displayElem(\'publications\'); return false;" style="font-size:18px; text-decoration: none;">' . __('Publications', 'wp-hal') . '</a></li>';
202 +
203 + $content .= '<li><a href="#filtres" onclick="return false;" style="font-size:18px; text-decoration: none; cursor:default;">' . __('Filtres', 'wp-hal') . '</a>';
204 + $content .= '<ul id="wphal-filtres">';
205 + foreach ($option_choix as $option) {
206 + if ($option == 'contact') {
207 + $content .= '<li><a href="#contact" onclick="displayElem(\'wphal-contact\'); return false;" style="margin:1px; text-decoration: none;">' . __('Contact', 'wp-hal');
208 + $content .= '</a></li>';
209 + }
210 + if ($option == 'disciplines') {
211 + $content .= '<li><a href="#disciplines" onclick="displayElem(\'wphal-disciplines\'); return false;" style="margin:1px; text-decoration: none;">' . __('Disciplines', 'wp-hal');
212 + $content .= '</a></li>';
213 + }
214 + if ($option == 'mots-clefs') {
215 + $content .= '<li><a href="#keywords" onclick="displayElem(\'wphal-keywords\'); return false;" style="margin:1px; text-decoration: none;">' . __('Mots-clefs', 'wp-hal');
216 + $content .= '</a></li>';
217 + }
218 + if ($option == 'auteurs') {
219 + $content .= '<li><a href="#auteurs" onclick="displayElem(\'wphal-auteurs\'); return false;" style="margin:1px; text-decoration: none;">' . __('Auteurs', 'wp-hal');
220 + $content .= '</a></li>';
221 + }
222 + if ($option == 'revues') {
223 + $content .= '<li><a href="#revues" onclick="displayElem(\'wphal-revues\'); return false;" style="margin:1px; text-decoration: none;">' . __('Revues', 'wp-hal');
224 + $content .= '</a></li>';
225 + }
226 + if ($option == 'annee') {
227 + $content .= '<li><a href="#annees" onclick="displayElem(\'wphal-annees\'); return false;" style="margin:1px; text-decoration: none;">' . __('Année de production', 'wp-hal');
228 + $content .= '</a></li>';
229 + }
230 + if ($option == 'institution') {
231 + $content .= '<li><a href="#insts" onclick="displayElem(\'wphal-insts\'); return false;" style="margin:1px; text-decoration: none;">' . __('Institutions', 'wp-hal');
232 + $content .= '</a></li>';
233 + }
234 + if ($option == 'laboratoire') {
235 + $content .= '<li><a href="#labs" onclick="displayElem(\'wphal-labs\'); return false;" style="margin:1px; text-decoration: none;">' . __('Laboratoires', 'wp-hal');
236 + $content .= '</a></li>';
237 + }
238 + if ($option == 'departement') {
239 + $content .= '<li><a href="#depts" onclick="displayElem(\'wphal-depts\'); return false;" style="margin:1px; text-decoration: none;">' . __('Départements', 'wp-hal');
240 + $content .= '</a></li>';
241 + }
242 + if ($option == 'equipe') {
243 + $content .= '<li><a href="#equipes" onclick="displayElem(\'wphal-equipes\'); return false;" style="margin:1px; text-decoration: none;">' . __('Équipes de recherche', 'wp-hal');
244 + $content .= '</a></li>';
245 + }
143 246 }
144 - if (get_option('option_tel') != ''){
145 - $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>';
146 - }
147 - if (get_option('option_social0') != ''){
148 - $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>';
149 - }
150 - if (get_option('option_social1') != ''){
151 - $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>';
152 - }
153 - if (get_option('option_social2') != ''){
154 - $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>';
155 - }
156 - if (get_option('option_social3') != ''){
157 - $content .= '<a href="http://sa.linkedin.com/pub/' . get_option('option_social3') . '" target="_blank"><img src=" ' . plugin_dir_url( __FILE__ ) . 'img/linkedin.svg" style="width:32px; margin:4px;"/></a></li>';
158 - }
159 - $content .= '</ul>
160 - </div>
161 - <div class="tab-pane" id="disciplines">
162 - <h3>' . __('Disciplines','wp-hal').'</h3>';
247 + $content .= '</ul></li>';
163 248
164 - if (locale == 'fr_FR') {
165 - $facetdomain = $json->facet_counts->facet_fields->fr_domainAllCodeLabel_fs;
166 - } elseif (locale == 'es_ES') {
167 - $facetdomain = $json->facet_counts->facet_fields->es_domainAllCodeLabel_fs;
168 - } else {
169 - $facetdomain = $json->facet_counts->facet_fields->en_domainAllCodeLabel_fs;
170 - }
249 + $content .= '</ul><br/><hr>';
250 + }
171 251
172 - if(!is_null($facetdomain) && !empty($facetdomain)){
252 + $content .= '<div id="meta">
253 + <div class="display" id="wphal-contact" style="display: none;">
254 + <h3 class="wphal-titre">' . __('Contact', 'wp-hal');
255 + $content .= '</h3>
173 256
174 - $content .= '<div id="listdisci">';
175 - $content .= '<ul class="discipline list-group">';
176 - $content .= '<li class="list-group-item">';
177 - $content .= '<span id="tridisciplines">';
178 - $content .= '<a class="btn btn-default btn-xs" data-placement="bottom" data-toggle="tooltip" data-original-title="Tri Alphabétique" href="" id="tridisci" onclick="javascript:toggleSort(this, true, \'discipline\', \'discipline\', \'tridisci\'); return false;" style="font-size:16px; text-decoration: none;" ><span class="glyphicon glyphicon-sort-by-alphabet"></span></a>';
179 - $content .= '<a class="pull-right btn btn-default btn-xs" data-placement="bottom" data-toggle="tooltip" data-original-title="Tri par Nombre d\'Occurences" href="" id="trinbdisci" onclick="javascript:toggleSort(this, false, \'discipline\', \'discipline\', \'trinbdisci\'); return false;" style="font-size:16px; text-decoration: none;"><span class="glyphicon glyphicon-sort-by-order"></span></a>';
180 - $content .= '</span>';
181 - $content .= '</li>';
182 - $content .= '<div id="discipline">';
183 - foreach ($facetdomain as $res){
184 - $name = explode(delimiter,$res[0]);
185 - $content .= '<li class="test list-group-item" 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="badge badge-default">' .$res[1]. '</span></li>';
186 - }
187 - $content .= '</div>';
188 - $content .= '</ul>';
189 - $content .= '</div>';
257 + <ul id="wphal-cont" style="list-style-type: none;">';
190 258
191 - $content .= '<div id="graph" style="display:none;">';
192 - $content .= '<div id="toto"></div>';
193 - $content .= '</div>';
194 - $content .= '<a class="btn btn-default btn-sm" href="" style="text-decoration: none;" id="disci" onclick="javascript:visibilitedisci(\'listdisci\',\'graph\',\'tridisciplines\'); return false;" >' . __('Graphique','wp-hal'); $content .= '</a> ';
195 - }
196 - $content .= '</div>
197 - <div class="tab-pane" id="keywords">
198 - <h3>' . __('Mots-clefs','wp-hal').'</h3>';
199 - if(!is_null($json->facet_counts->facet_fields->keyword_s) && !empty($json->facet_counts->facet_fields->keyword_s)){
200 - $content .= '<div id="keys">';
201 - $r = 0;
202 - // CSS Nuage de mots
203 - $maxsize=25;
204 - $minsize=10;
205 - $maxval=max(array_values($json->facet_counts->facet_fields->keyword_s[1]));
206 - $minval=min(array_values($json->facet_counts->facet_fields->keyword_s[1]));
207 - $spread=($maxval-$minval);
208 - $step=($maxsize-$minsize)/$spread;
209 - $tab = array();
210 - foreach ($json->facet_counts->facet_fields->keyword_s as $res){
211 - $r = $r+1;
212 - if ($r > 20){
213 - break;
259 + if ($contact == 'yes' && $type == 'authIdHal_s') {
260 + $urlauthor = wphal_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);
261 + $jsonauthor = wphal_do_get_data($urlauthor);
262 +
263 + for ($i = 0; $jsonauthor->response->docs[$i] != ''; $i++) {
264 + $content .= '<div class="wphal-infocontact" id="wphal-infocontact'.$i.'">';
265 + if ($jsonauthor->response->docs[$i]->fullName_s != '') {
266 + $content .= '<li class="wphal-fullname"><span>Nom : </span><span>'. $jsonauthor->response->docs[$i]->fullName_s .'</span></li>';
267 + }
268 + if ($jsonauthor->response->docs[$i]->email_s != '') {
269 + $content .= '<li class="wphal-email"><span>Email : </span><span><a href="'.esc_url('mailto:'. $jsonauthor->response->docs[$i]->email_s) .'">' . $jsonauthor->response->docs[$i]->email_s . '</a></span></li>';
270 + }
271 + if ($jsonauthor->response->docs[$i]->idHal_s != '') {
272 + $content .= '<li class="wphal-idhal"><span>IdHAL : </span><span>' . $jsonauthor->response->docs[$i]->idHal_s . '</span></li>';
273 + }
274 + if ($jsonauthor->response->docs[$i]->hasCV_bool == true){
275 + $content .= '<li class="wphal-cvhal"><span>CV HAL : </span><a href="'.esc_url(cvhal. $jsonauthor->response->docs[$i]->idHal_s).'" target="_blank">CV de '.$jsonauthor->response->docs[$i]->fullName_s.'</a></li>';
276 + }
277 + if ($jsonauthor->response->docs[$i]->arxiv_s != '') {
278 + $content .= '<li class="wphal-"><span>arXiv : </span><span><a href="' . esc_url($jsonauthor->response->docs[$i]->arxiv_s) . '" target="_blank">' . substr(strrchr($jsonauthor->response->docs[$i]->arxiv_s, "/"), 1) . '</a></span></li>';
279 + }
280 + if ($jsonauthor->response->docs[$i]->idref_s != '') {
281 + $content .= '<li class="wphal-"><span>IdRef : </span><span><a href="' . esc_url($jsonauthor->response->docs[$i]->idref_s) . '" target="_blank">' . substr(strrchr($jsonauthor->response->docs[$i]->idref_s, "/"), 1) . '</a></span></li>';
282 + }
283 + if ($jsonauthor->response->docs[$i]->orcid_s != '') {
284 + $content .= '<li class="wphal-"><span>ORCID : </span><span><a href="' . esc_url($jsonauthor->response->docs[$i]->orcid_s) . '" target="_blank">' . substr(strrchr($jsonauthor->response->docs[$i]->orcid_s, "/"), 1) . '</a></span></li>';
285 + }
286 + if ($jsonauthor->response->docs[$i]->viaf_s != '') {
287 + $content .= '<li class="wphal-"><span>VIAF : </span><span><a href="' . esc_url($jsonauthor->response->docs[$i]->viaf_s) . '" target="_blank">' . substr(strrchr($jsonauthor->response->docs[$i]->viaf_s, "/"), 1) . '</a></span></li>';
288 + }
289 + if ($jsonauthor->response->docs[$i]->isni_s != '') {
290 + $content .= '<li class="wphal-"><span>ISNI : </span><span><a href="' . esc_url($jsonauthor->response->docs[$i]->isni_s) . '" target="_blank">' . substr(strrchr($jsonauthor->response->docs[$i]->isni_s, "/"), 1) . '</a></span></li>';
291 + }
292 + $content .= '</div>';
293 + }
214 294 }
215 - $tab[] = $res;
216 - }
217 - asort($tab); // Tri du tableau par ordre alphabétique
218 - foreach ($tab as $res){
219 - $size= round($minsize + (($res[1]- $minval)*$step));
220 - $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;';
221 - }
222 - $content .= '</div>';
223 - $content .= '<div id="keysuite" style="display:none;">';
224 - $content .= '<ul class="keyword list-group">';
225 - $content .= '<li class="list-group-item">';
226 - $content .= '<span id="trikeywords">';
227 - $content .= '<a class="btn btn-default btn-xs" data-placement="bottom" data-toggle="tooltip" data-original-title="Tri Alphabétique" href="" id="trikey" onclick="javascript:toggleSort(this, true, \'keyw\', \'keyword\', \'trikey\'); return false;" style="font-size:16px; text-decoration: none;" ><span class="glyphicon glyphicon-sort-by-alphabet"></span></a>';
228 - $content .= '<a class="pull-right btn btn-default btn-xs" data-placement="bottom" data-toggle="tooltip" data-original-title="Tri par Nombre d\'Occurences" href="" id="trinbkey" onclick="javascript:toggleSort(this, false, \'keyw\', \'keyword\', \'trinbkey\'); return false;" style="font-size:16px; text-decoration: none;"><span class="glyphicon glyphicon-sort-by-order"></span></a>';
229 - $content .= '</span>';
230 - $content .= '</li>';
231 - $content .= '<div id="keyw">';
232 - foreach ($json->facet_counts->facet_fields->keyword_s as $res){
233 - $content .= '<li class="test list-group-item" 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="badge badge-default">' .$res[1]. '</span></li>';
234 - }
235 - $content .= '</div>';
236 - $content .= '</ul>';
237 - $content .= '</div>';
238 - $content .= '<a class="btn btn-default btn-sm" href="" style="text-decoration: none;" id="key" onclick="javascript:visibilitekey(\'keys\',\'keysuite\', \'trikeywords\'); return false;" >' . __('Liste complète','wp-hal'); $content .= '</a> ';
239 - }
240 - $content .= '</div>
241 - <div class="tab-pane" id="auteurs">
242 - <h3>' . __('Auteurs','wp-hal').'</h3>';
243 - if(!is_null($json->facet_counts->facet_fields->authIdLastNameFirstName_fs) && !empty($json->facet_counts->facet_fields->authIdLastNameFirstName_fs)){
244 - $content .= '<ul class="auteurs list-group" style="list-style-type: none;">';
245 - $content .= '<li class="list-group-item">';
246 - $content .= '<span id="triauteurs">';
247 - $content .= '<a class="btn btn-default btn-xs" data-placement="bottom" data-toggle="tooltip" data-original-title="Tri Alphabétique" href="" id="triaut" onclick="javascript:toggleSort(this, true, \'aut\', \'auteursuite\', \'triaut\'); return false;" style="font-size:16px; text-decoration: none;" ><span class="glyphicon glyphicon-sort-by-alphabet"></span></a>';
248 - $content .= '<a class="pull-right btn btn-default btn-xs" data-placement="bottom" data-toggle="tooltip" data-original-title="Tri par Nombre d\'Occurences" href="" id="trinbaut" onclick="javascript:toggleSort(this, false, \'aut\', \'auteursuite\', \'trinbaut\'); return false;" style="font-size:16px; text-decoration: none;"><span class="glyphicon glyphicon-sort-by-order"></span></a>';
249 - $content .= '</span>';
250 - $content .= '</li>';
251 - $content .= '<div id="aut">';
252 - $r = 0;
253 - foreach ($json->facet_counts->facet_fields->authIdLastNameFirstName_fs as $res){
254 - $r = $r+1;
255 - if ($r > 10){
256 - break;
295 + if (get_option('option_email') != '') {
296 + $content .= '<li><img alt="mail" src=" ' . esc_url(plugin_dir_url(__FILE__) . 'img/mail.svg').' " style=" width:16px; margin-left:2px; margin-right:2px;"/><a href="'.esc_url('mailto:' . get_option('option_email')) . '" target="_blank">' . get_option('option_email') . '</a></li>';
257 297 }
258 - $name = explode(delimiter,$res[0]);
259 - $content .= '<li class="test list-group-item" 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="badge badge-default">' .$res[1]. '</span></li>';
260 - }
261 - $i = 1;
262 - $content .= '<div id="auteursuite" style="display:none;">';
263 - foreach ($json->facet_counts->facet_fields->authIdLastNameFirstName_fs as $res){
264 - if($r < 10){
265 - break;
298 + if (get_option('option_tel') != '') {
299 + $content .= '<li><img alt="phone" src=" ' . esc_url(plugin_dir_url(__FILE__) . 'img/phone.svg'). '" style="width:16px; margin-left:2px; margin-right:2px;"/>' . get_option('option_tel') . '</li>';
266 300 }
267 - if ($i < $r){
268 - $i = $i+1;
269 - } else {
270 - $name = explode(delimiter,$res[0]);
271 - $content .= '<li class="test list-group-item" 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="badge badge-default">' .$res[1]. '</span></li>';
301 + if (get_option('option_social0') != '') {
302 + $content .= '<li><a href="'.esc_url('http://www.facebook.com/' . get_option('option_social0')) . '" target="_blank"><img
303 + alt="Facebook" src=" ' . esc_url(plugin_dir_url(__FILE__) . 'img/facebook.svg').'" style="width:32px; margin:4px;"/></a></li>';
272 304 }
273 - }
274 - $content .= '</div>';
275 - $content .= '</div>';
276 - $content .= '</ul>';
277 - if ($r > 10){
278 - $content .= '<a class="btn btn-default btn-sm" href="" style="text-decoration: none;" id="auteur" onclick="javascript:visibilite(\'auteursuite\'); return false;" >' . __('Liste complète','wp-hal'); $content .= '</a> ';
279 - }
280 - }
281 - $content .= '</div>
282 - <div class="tab-pane" id="revues">
283 - <h3>' . __('Revues','wp-hal').'</h3>';
284 - if(!is_null($json->facet_counts->facet_fields->journalIdTitle_fs) && !empty($json->facet_counts->facet_fields->journalIdTitle_fs)){
285 - $content .= '<ul class="revues list-group">';
286 - $content .= '<li class="list-group-item">';
287 - $content .= '<span id="trirevues">';
288 - $content .= '<a class="btn btn-default btn-xs" data-placement="bottom" data-toggle="tooltip" data-original-title="Tri Alphabétique" href="" id="trirev" onclick="javascript:toggleSort(this, true, \'rev\', \'revuesuite\', \'trirev\'); return false;" style="font-size:16px; text-decoration: none;" ><span class="glyphicon glyphicon-sort-by-alphabet"></span></a>';
289 - $content .= '<a class="pull-right btn btn-default btn-xs" data-placement="bottom" data-toggle="tooltip" data-original-title="Tri par Nombre d\'Occurences" href="" id="trinbrev" onclick="javascript:toggleSort(this, false, \'rev\', \'revuesuite\', \'trinbrev\'); return false;" style="font-size:16px; text-decoration: none;"><span class="glyphicon glyphicon-sort-by-order"></span></a>';
290 - $content .= '</span>';
291 - $content .= '</li>';
292 - $content .= '<div id="rev">';
293 - $r = 0;
294 - foreach ($json->facet_counts->facet_fields->journalIdTitle_fs as $res){
295 - $r = $r+1;
296 - if ($r > 10){
297 - break;
305 + if (get_option('option_social1') != '') {
306 + $content .= '<li><a href="'.esc_url('http://www.twitter.com/' . get_option('option_social1')) . '" target="_blank"><img
307 + alt="Twitter" src=" ' . esc_url(plugin_dir_url(__FILE__) . 'img/twitter.svg').'" style="width:32px; margin:4px;"/></a></li>';
298 308 }
299 - $name = explode(delimiter,$res[0]);
300 - $content .= '<li class="test list-group-item" 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="badge badge-default">' .$res[1]. '</span></li>';
301 - }
302 - $i = 1;
303 - $content .= '<div id="revuesuite" style="display:none;">';
304 - foreach ($json->facet_counts->facet_fields->journalIdTitle_fs as $res){
305 - if($r < 10){
306 - break;
309 + if (get_option('option_social2') != '') {
310 + $content .= '<li><a href="'.esc_url('https://plus.google.com/u/0/+' . get_option('option_social2')) . '" target="_blank"><img
311 + alt="Google+" src=" ' . esc_url(plugin_dir_url(__FILE__) . 'img/google-plus.svg').'" style="width:32px; margin:4px;"/></a></li>';
307 312 }
308 - if ($i < $r){
309 - $i = $i+1;
310 - } else {
311 - $name = explode(delimiter,$res[0]);
312 - $content .= '<li class="test list-group-item" 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="badge badge-default">' .$res[1]. '</span></li>';
313 + if (get_option('option_social3') != '') {
314 + $content .= '<li><a href="'.esc_url('https://www.linkedin.com/in/' . get_option('option_social3')) . '" target="_blank"><img
315 + alt="LinkedIn" src=" ' . esc_url(plugin_dir_url(__FILE__) . 'img/linkedin.svg').'" style="width:32px; margin:4px;"/></a></li>';
313 316 }
314 - }
315 - $content .= '</div>';
316 - $content .= '</div>';
317 - $content .= '</ul>';
318 - if ($r > 10){
319 - $content .= '<a class="btn btn-default btn-sm" href="" style="text-decoration: none;" id="revue" onclick="javascript:visibiliterevues(\'revuesuite\'); return false;" >' . __('Liste complète','wp-hal'); $content .= '</a> ';
320 - }
321 - }
322 - $content .= '</div>
323 - <div class="tab-pane" id="annees">
324 - <h3>' . __('Année de production','wp-hal').'</h3>';
325 - if(!is_null($json->facet_counts->facet_fields->producedDateY_i) && !empty($json->facet_counts->facet_fields->producedDateY_i)){
326 - $content .= '<ul class="annees list-group">';
327 - $content .= '<li class="list-group-item">';
328 - $content .= '<span id="triannees">';
329 - $content .= '<a class="btn btn-default btn-xs" data-placement="bottom" data-toggle="tooltip" data-original-title="Tri Chronologique" href="" id="trian" onclick="javascript:toggleSort(this, true, \'an\', \'annees\', \'trian\'); return false;" style="font-size:16px; text-decoration: none;" ><span class="glyphicon glyphicon-sort-by-order"></span></a>';
330 - $content .= '<a class="pull-right btn btn-default btn-xs" data-placement="bottom" data-toggle="tooltip" data-original-title="Tri par Nombre d\'Occurences" href="" id="trinban" onclick="javascript:toggleSort(this, false, \'an\', \'annees\', \'trinban\'); return false;" style="font-size:16px; text-decoration: none;"><span class="glyphicon glyphicon-sort-by-order"></span></a>';
331 - $content .= '</span>';
332 - $content .= '</li>';
333 - $content .= '<div id="an">';
317 + $content .= '</ul>
318 + </div>
319 + <div class="display" id="wphal-disciplines" style="display: none;">
320 + <h3 class="wphal-titre">' . __('Disciplines', 'wp-hal') . '</h3>';
334 321
335 - rsort($json->facet_counts->facet_fields->producedDateY_i);
336 - $r = 0;
337 - foreach ($json->facet_counts->facet_fields->producedDateY_i as $res){
338 - $r = $r+1;
339 - if ($r > 10){
340 - break;
341 - }
342 - $content .= '<li class="test list-group-item" 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="badge badge-default">' .$res[1]. '</span></li>';
343 - }
344 - $i = 1;
345 - $content .= '<div id="anneesuite" style="display:none;">';
346 - foreach ($json->facet_counts->facet_fields->producedDateY_i as $res){
347 - if($r < 10){
348 - break;
349 - }
350 - if ($i < $r){
351 - $i = $i+1;
322 + if (wphal_locale == 'fr_FR') {
323 + $facetdomain = $json->facet_counts->facet_fields->fr_domainAllCodeLabel_fs;
324 + } elseif (wphal_locale == 'es_ES') {
325 + $facetdomain = $json->facet_counts->facet_fields->es_domainAllCodeLabel_fs;
352 326 } else {
353 - $content .= '<li class="test list-group-item" 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="badge badge-default">' .$res[1]. '</span></li>';
327 + $facetdomain = $json->facet_counts->facet_fields->en_domainAllCodeLabel_fs;
354 328 }
355 - }
356 - $content .= '</div>';
357 - $content .= '</div>';
358 - $content .= '</ul>';
359 - if ($r > 10){
360 - $content .= '<a class="btn btn-default btn-sm" href="" style="text-decoration: none;" id="annee" onclick="javascript:visibiliteannee(\'anneesuite\'); return false;" >' . __('Liste complète','wp-hal'); $content .= '</a> ';
361 - }
362 - }
363 - $content .= '</div>
364 - <div class="tab-pane" id="insts">
365 - <h3>' . __('Institutions','wp-hal').'</h3>';
366 - if(!is_null($json->facet_counts->facet_fields->instStructIdName_fs) && !empty($json->facet_counts->facet_fields->instStructIdName_fs)){
367 - $content .= '<ul class="insts list-group">';
368 - $content .= '<li class="list-group-item">';
369 - $content .= '<span id="triinsts">';
370 - $content .= '<a class="btn btn-default btn-xs" data-placement="bottom" data-toggle="tooltip" data-original-title="Tri Alphabétique" href="" id="triinst" onclick="javascript:toggleSort(this, true, \'institu\', \'instsuite\', \'triinst\'); return false;" style="font-size:16px; text-decoration: none;" ><span class="glyphicon glyphicon-sort-by-alphabet"></span></a>';
371 - $content .= '<a class="pull-right btn btn-default btn-xs" data-placement="bottom" data-toggle="tooltip" data-original-title="Tri par Nombre d\'Occurences" href="" id="trinbinst" onclick="javascript:toggleSort(this, false, \'institu\', \'instsuite\', \'trinbinst\'); return false;" style="font-size:16px; text-decoration: none;"><span class="glyphicon glyphicon-sort-by-order"></span></a>';
372 - $content .= '</span>';
373 - $content .= '</li>';
374 - $content .= '<div id="institu">';
375 - $r = 0;
376 - foreach ($json->facet_counts->facet_fields->instStructIdName_fs as $res){
377 - $r = $r+1;
378 - if ($r > 10){
379 - break;
380 - }
381 - $name = explode(delimiter,$res[0]);
382 - $content .= '<li class="test list-group-item" 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="badge badge-default">' .$res[1]. '</span></li>';
383 - }
384 - $i = 1;
385 - $content .= '<div id="instsuite" style="display:none;">';
386 - foreach ($json->facet_counts->facet_fields->instStructIdName_fs as $res){
387 - if($r < 10){
388 - break;
389 - }
390 - if ($i < $r){
391 - $i = $i+1;
392 - } else {
393 - $name = explode(delimiter,$res[0]);
394 - $content .= '<li class="test list-group-item" 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="badge badge-default">' .$res[1]. '</span></li>';
395 - }
396 - }
397 - $content .= '</div>';
398 - $content .= '</div>';
399 - $content .= '</ul>';
400 - if ($r > 10){
401 - $content .= '<a class="btn btn-default btn-sm" href="" style="text-decoration: none;" id="inst" onclick="javascript:visibiliteinst(\'instsuite\'); return false;" >' . __('Liste complète','wp-hal'); $content .= '</a> ';
402 - }
403 - }
404 - $content .= '</div>
405 - <div class="tab-pane" id="labs">
406 - <h3>' . __('Laboratoires','wp-hal').'</h3>';
407 - if(!is_null($json->facet_counts->facet_fields->labStructIdName_fs) && !empty($json->facet_counts->facet_fields->labStructIdName_fs)){
408 - $content .= '<ul class="labs list-group">';
409 - $content .= '<li class="list-group-item">';
410 - $content .= '<span id="trilabs">';
411 - $content .= '<a class="btn btn-default btn-xs" data-placement="bottom" data-toggle="tooltip" data-original-title="Tri Alphabétique" href="" id="trilab" onclick="javascript:toggleSort(this, true, \'labo\', \'labsuite\', \'trilab\'); return false;" style="font-size:16px; text-decoration: none;" ><span class="glyphicon glyphicon-sort-by-alphabet"></span></a>';
412 - $content .= '<a class="pull-right btn btn-default btn-xs" data-placement="bottom" data-toggle="tooltip" data-original-title="Tri par Nombre d\'Occurences" href="" id="trinblab" onclick="javascript:toggleSort(this, false, \'labo\', \'labsuite\', \'trinblab\'); return false;" style="font-size:16px; text-decoration: none;"><span class="glyphicon glyphicon-sort-by-order"></span></a>';
413 - $content .= '</span>';
414 - $content .= '</li>';
415 - $content .= '<div id="labo">';
416 329
417 - $r = 0;
418 - foreach ($json->facet_counts->facet_fields->labStructIdName_fs as $res){
419 - $r = $r+1;
420 - if ($r > 10){
421 - break;
330 + if (!is_null($facetdomain) && !empty($facetdomain)) {
331 + $content .= '<div id="listdisci">';
332 + $content .= '<span id="tridisciplines">';
333 + $content .= '<button type="button" class="trial" id="tridisci" onclick="toggleSort(this, true, \'wphal-discipline\', \'wphal-discipline\', \'tridisci\'); return false;" style="font-size:16px; text-decoration: none;" >Tri Alphabétique</button>';
334 + $content .= '<button type="button" class="trioc" id="trinbdisci" onclick="toggleSort(this, false, \'wphal-discipline\', \'wphal-discipline\', \'trinbdisci\'); return false;" style="font-size:16px; text-decoration: none;">Tri Occurrence</button>';
335 + $content .= '</span>';
336 + $content .= '<ul id="wphal-discipline" class="wphal-discipline">';
337 + foreach ($facetdomain as $res) {
338 + $name = explode(wphal_delimiter, $res[0]);
339 + $content .= '<li class="metadata" data-percentage="' . $res[1] . '"><a href="' . esc_url(halv3 . '?q=domainAllCode_s:' . urlencode($name[0]) . "+AND+" . $type . ':(' . $id . ')').'" target="_blank">' . $name[1] . '</a><span class="wphal-nbmetadata">' . $res[1] . '</span></li>';
340 + }
341 + $content .= '</ul>';
342 + $content .= '</div>';
343 +
344 + $content .= '<div id="wphal-graph" style="display:none;">';
345 + $content .= '<div id="wphal-piedisci"></div>';
346 + $content .= '</div>';
347 + $content .= '<button type="button" style="text-decoration: none;" id="wphal-disci" onclick="visibilitedisci(\'listdisci\',\'wphal-graph\',\'tridisciplines\'); return false;" >' . __('Graphique', 'wp-hal');
348 + $content .= '</button>';
422 349 }
423 - $name = explode(delimiter,$res[0]);
424 - $content .= '<li class="test list-group-item" 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="badge badge-default">' .$res[1]. '</span></li>';
425 - }
426 - $i = 1;
427 - $content .= '<div id="labsuite" style="display:none;">';
428 - foreach ($json->facet_counts->facet_fields->labStructIdName_fs as $res){
429 - if($r < 10){
430 - break;
350 + $content .= '</div>
351 + <div class="display" id="wphal-keywords" style="display: none;">
352 + <h3 class="wphal-titre">' . __('Mots-clefs', 'wp-hal') . '</h3>';
353 + if (!is_null($json->facet_counts->facet_fields->keyword_s) && !empty($json->facet_counts->facet_fields->keyword_s)) {
354 + $content .= '<div id="wphal-keys">';
355 + $r = 0;
356 + // CSS Nuage de mots
357 + $maxsize = 25;
358 + $minsize = 10;
359 + $maxval = max(array_values($json->facet_counts->facet_fields->keyword_s[1]));
360 + $minval = min(array_values($json->facet_counts->facet_fields->keyword_s[1]));
361 + if(!is_numeric($minval)) {$minval = 0;}
362 + if(!is_numeric($maxval)) {$maxval = 0;}
363 + $spread = ($maxval - $minval);
364 + $step = ($maxsize - $minsize) / $spread;
365 + $tab = array();
366 + foreach ($json->facet_counts->facet_fields->keyword_s as $res) {
367 + $r = $r + 1;
368 + if ($r > 20) {
369 + break;
370 + }
371 + $tab[] = $res;
372 + }
373 + asort($tab); // Tri du tableau par ordre alphabétique
374 + foreach ($tab as $res) {
375 + $size = round($minsize + (($res[1] - $minval) * $step));
376 + $content .= '<a style="display: inline-block; font-size:' . $size . 'px" href="' . esc_url(halv3 . '?q=keyword_s:' . urlencode('"' . $res[0] . '"') . "+AND+" . $type . ':(' . $id . ')').'" target="_blank">' . $res[0] . '</a>&nbsp;';
377 + }
378 + $content .= '</div>';
379 + $content .= '<div id="keysuite" style="display:none;">';
380 + $content .= '<span id="trikeywords">';
381 + $content .= '<button type="button" class="trial" id="trikey" onclick="toggleSort(this, true, \'wphal-keyw\', \'wphal-keyword\', \'trikey\'); return false;" style="font-size:16px; text-decoration: none;" >Tri Alphabétique</button>';
382 + $content .= '<button type="button" class="trioc" id="trinbkey" onclick="toggleSort(this, false, \'wphal-keyw\', \'wphal-keyword\', \'trinbkey\'); return false;" style="font-size:16px; text-decoration: none;">Tri Occurrence</button>';
383 + $content .= '</span>';
384 + $content .= '<ul class="wphal-keyword">';
385 + $content .= '<div id="wphal-keyw">';
386 + foreach ($json->facet_counts->facet_fields->keyword_s as $res) {
387 + $content .= '<li class="metadata" data-percentage="' . $res[1] . '"><a href="' . esc_url(halv3 . '?q=keyword_s:' . urlencode('"' . $res[0] . '"') . "+AND+" . $type . ':(' . $id . ')').'" target="_blank">' . $res[0] . '</a><span class="wphal-nbmetadata">' . $res[1] . '</span></li>';
388 + }
389 + $content .= '</div>';
390 + $content .= '</ul>';
391 + $content .= '</div>';
392 + $content .= '<button type="button" style="text-decoration: none;" id="wphal-key" onclick="visibilitekey(\'wphal-keys\',\'keysuite\', \'trikeywords\'); return false;" >' . __('Liste complète', 'wp-hal');
393 + $content .= '</button>';
431 394 }
432 - if ($i < $r){
433 - $i = $i+1;
434 - } else {
435 - $name = explode(delimiter,$res[0]);
436 - $content .= '<li class="test list-group-item" 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="badge badge-default">' .$res[1]. '</span></li>';
395 + $content .= '</div>
396 + <div class="display" id="wphal-auteurs" style="display: none;">
397 + <h3 class="wphal-titre">' . __('Auteurs', 'wp-hal') . '</h3>';
398 + if (!is_null($json->facet_counts->facet_fields->authIdLastNameFirstName_fs) && !empty($json->facet_counts->facet_fields->authIdLastNameFirstName_fs)) {
399 + $content .= '<span id="triauteurs">';
400 + $content .= '<button type="button" class="trial" id="triaut" onclick="toggleSort(this, true, \'wphal-aut\', \'auteursuite\', \'triaut\'); return false;" style="font-size:16px; text-decoration: none;" >Tri Alphabétique</button>';
401 + $content .= '<button type="button" class="trioc" id="trinbaut" onclick="toggleSort(this, false, \'wphal-aut\', \'auteursuite\', \'trinbaut\'); return false;" style="font-size:16px; text-decoration: none;">Tri Occurrence</button>';
402 + $content .= '</span>';
403 + $content .= '<ul class="wphal-auteurs" style="list-style-type: none;">';
404 + $content .= '<div id="wphal-aut">';
405 + $r = 0;
406 + foreach ($json->facet_counts->facet_fields->authIdLastNameFirstName_fs as $res) {
407 + $r = $r + 1;
408 + if ($r > 10) {
409 + break;
410 + }
411 + $name = explode(wphal_delimiter, $res[0]);
412 + if($name[0] == 0){
413 + $q = 'authLastNameFirstName_s:'.urlencode("\"".$name[1]."\"");
414 + }else{
415 + $q = "authIdPerson_i:$name[0]";
416 + }
417 + $content .= '<li class="metadata" data-percentage="' . $res[1] . '"><img alt="user" src=" ' . esc_url(plugin_dir_url(__FILE__) . '/img/user.svg').'" style="width:16px; margin-left:2px; margin-right:2px;"/><a href="' . esc_url(halv3 . '?q='. $q . "+AND+" . $type . ':(' . $id . ')').'" target="_blank">' . $name[1] . '</a><span class="wphal-nbmetadata">' . $res[1] . '</span></li>';
418 + }
419 + $i = 1;
420 + $content .= '<div id="auteursuite" style="display:none;">';
421 + foreach ($json->facet_counts->facet_fields->authIdLastNameFirstName_fs as $res) {
422 + if ($r < 10) {
423 + break;
424 + }
425 + if ($i < $r) {
426 + $i = $i + 1;
427 + } else {
428 + $name = explode(wphal_delimiter, $res[0]);
429 + if($name[0] == 0){
430 + $q = 'authLastNameFirstName_s:'.urlencode("\"".$name[1]."\"");
431 + }else{
432 + $q = "authIdPerson_i:$name[0]";
433 + }
434 + $content .= '<li class="metadata" data-percentage="' . $res[1] . '"><img alt="user" src=" ' . esc_url(plugin_dir_url(__FILE__) . '/img/user.svg').'" style="width:16px; margin-left:2px; margin-right:2px;"/><a href="' . esc_url(halv3 . '?q='. $q . "+AND+" . $type . ':(' . $id . ')').'" target="_blank">' . $name[1] . '</a><span class="wphal-nbmetadata">' . $res[1] . '</span></li>';
435 + }
436 + }
437 + $content .= '</div>';
438 + $content .= '</div>';
439 + $content .= '</ul>';
440 + if ($r > 10) {
441 + $content .= '<button type="button" style="text-decoration: none;" id="wphal-auteur" onclick="visibilite(\'auteursuite\'); return false;" >' . __('Liste complète', 'wp-hal');
442 + $content .= '</button>';
443 + }
437 444 }
438 - }
439 - $content .= '</div>';
440 - $content .= '</div>';
441 - $content .= '</ul>';
442 - if ($r > 10){
443 - $content .= '<a class="btn btn-default btn-sm" href="" style="text-decoration: none;" id="lab" onclick="javascript:visibilitelab(\'labsuite\'); return false;" >' . __('Liste complète','wp-hal'); $content .= '</a> ';
444 - }
445 - }
446 - $content .= '</div>
447 - <div class="tab-pane" id="depts">
448 - <h3>' . __('Départements','wp-hal').'</h3>';
449 - if(!is_null($json->facet_counts->facet_fields->deptStructIdName_fs) && !empty($json->facet_counts->facet_fields->deptStructIdName_fs)){
450 - $content .= '<ul class="depts list-group">';
451 - $content .= '<li class="list-group-item">';
452 - $content .= '<span id="tridept">';
453 - $content .= '<a class="btn btn-default btn-xs" data-placement="bottom" data-toggle="tooltip" data-original-title="Tri Alphabétique" href="" id="tridept" onclick="javascript:toggleSort(this, true, \'dpt\', \'deptsuite\', \'tridept\'); return false;" style="font-size:16px; text-decoration: none;" ><span class="glyphicon glyphicon-sort-by-alphabet"></span></a>';
454 - $content .= '<a class="pull-right btn btn-default btn-xs" data-placement="bottom" data-toggle="tooltip" data-original-title="Tri par Nombre d\'Occurences" href="" id="trinbdept" onclick="javascript:toggleSort(this, false, \'dpt\', \'deptsuite\', \'trinbdept\'); return false;" style="font-size:16px; text-decoration: none;"><span class="glyphicon glyphicon-sort-by-order"></span></a>';
455 - $content .= '</span>';
456 - $content .= '</li>';
457 - $content .= '<div id="dpt">';
458 - $r = 0;
459 - foreach ($json->facet_counts->facet_fields->deptStructIdName_fs as $res){
460 - $r = $r+1;
461 - if ($r > 10){
462 - break;
445 + $content .= '</div>
446 + <div class="display" id="wphal-revues" style="display: none;">
447 + <h3 class="wphal-titre">' . __('Revues', 'wp-hal') . '</h3>';
448 + if (!is_null($json->facet_counts->facet_fields->journalIdTitle_fs) && !empty($json->facet_counts->facet_fields->journalIdTitle_fs)) {
449 + $content .= '<span id="trirevues">';
450 + $content .= '<button type="button" class="trial" id="trirev" onclick="toggleSort(this, true, \'wphal-rev\', \'revuesuite\', \'trirev\'); return false;" style="font-size:16px; text-decoration: none;" >Tri Alphabétique</button>';
451 + $content .= '<button type="button" class="trioc" id="trinbrev" onclick="toggleSort(this, false, \'wphal-rev\', \'revuesuite\', \'trinbrev\'); return false;" style="font-size:16px; text-decoration: none;">Tri Occurrence</button>';
452 + $content .= '</span>';
453 + $content .= '<ul class="wphal-revues">';
454 + $content .= '<div id="wphal-rev">';
455 + $r = 0;
456 + foreach ($json->facet_counts->facet_fields->journalIdTitle_fs as $res) {
457 + $r = $r + 1;
458 + if ($r > 10) {
459 + break;
460 + }
461 + $name = explode(wphal_delimiter, $res[0]);
462 + $content .= '<li class="metadata" data-percentage="' . $res[1] . '"><a href="' . esc_url(halv3 . '?q=journalId_i:' . urlencode($name[0]) . "+AND+" . $type . ':(' . $id . ')').'" target="_blank">' . $name[1] . '</a><span class="wphal-nbmetadata">' . $res[1] . '</span></li>';
463 + }
464 + $i = 1;
465 + $content .= '<div id="revuesuite" style="display:none;">';
466 + foreach ($json->facet_counts->facet_fields->journalIdTitle_fs as $res) {
467 + if ($r < 10) {
468 + break;
469 + }
470 + if ($i < $r) {
471 + $i = $i + 1;
472 + } else {
473 + $name = explode(wphal_delimiter, $res[0]);
474 + $content .= '<li class="metadata" data-percentage="' . $res[1] . '"><a href="' . esc_url(halv3 . '?q=journalId_i:' . urlencode($name[0]) . "+AND+" . $type . ':(' . $id . ')').'" target="_blank">' . $name[1] . '</a><span class="wphal-nbmetadata">' . $res[1] . '</span></li>';
475 + }
476 + }
477 + $content .= '</div>';
478 + $content .= '</div>';
479 + $content .= '</ul>';
480 + if ($r > 10) {
481 + $content .= '<button type="button" style="text-decoration: none;" id="wphal-revue" onclick="visibiliterevues(\'revuesuite\'); return false;" >' . __('Liste complète', 'wp-hal');
482 + $content .= '</button>';
483 + }
463 484 }
464 - $name = explode(delimiter,$res[0]);
465 - $content .= '<li class="test list-group-item" 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="badge badge-default">' .$res[1]. '</span></li>';
466 - }
467 - $i = 1;
468 - $content .= '<div id="deptsuite" style="display:none;">';
469 - foreach ($json->facet_counts->facet_fields->deptStructIdName_fs as $res){
470 - if($r < 10){
471 - break;
485 + $content .= '</div>
486 + <div class="display" id="wphal-annees" style="display: none;">
487 + <h3 class="wphal-titre">' . __('Année de production', 'wp-hal') . '</h3>';
488 + if (!is_null($json->facet_counts->facet_fields->producedDateY_i) && !empty($json->facet_counts->facet_fields->producedDateY_i)) {
489 + $content .= '<span id="triannees">';
490 + $content .= '<button type="button" class="trial" id="trian" onclick="toggleSort(this, true, \'wphal-an\', \'anneesuite\', \'trian\'); return false;" style="font-size:16px; text-decoration: none;" >Tri Alphabétique</button>';
491 + $content .= '<button type="button" class="trioc" id="trinban" onclick="toggleSort(this, false, \'wphal-an\', \'anneesuite\', \'trinban\'); return false;" style="font-size:16px; text-decoration: none;">Tri Occurrence</button>';
492 + $content .= '</span>';
493 + $content .= '<ul class="wphal-annees">';
494 + $content .= '<div id="wphal-an">';
495 +
496 + rsort($json->facet_counts->facet_fields->producedDateY_i);
497 + $r = 0;
498 + foreach ($json->facet_counts->facet_fields->producedDateY_i as $res) {
499 + $r = $r + 1;
500 + if ($r > 10) {
501 + break;
502 + }
503 + $content .= '<li class="metadata" data-percentage="' . $res[1] . '"><a href="' . esc_url(halv3 . '?q=producedDateY_i:' . urlencode($res[0]) . "+AND+" . $type . ':(' . $id . ')').'" target="_blank">' . $res[0] . '</a><span class="wphal-nbmetadata">' . $res[1] . '</span></li>';
504 + }
505 + $i = 1;
506 + $content .= '<div id="anneesuite" style="display:none;">';
507 + foreach ($json->facet_counts->facet_fields->producedDateY_i as $res) {
508 + if ($r < 10) {
509 + break;
510 + }
511 + if ($i < $r) {
512 + $i = $i + 1;
513 + } else {
514 + $content .= '<li class="metadata" data-percentage="' . $res[1] . '"><a href="' . esc_url(halv3 . '?q=producedDateY_i:' . urlencode($res[0]) . "+AND+" . $type . ':(' . $id . ')').'" target="_blank">' . $res[0] . '</a><span class="wphal-nbmetadata">' . $res[1] . '</span></li>';
515 + }
516 + }
517 + $content .= '</div>';
518 + $content .= '</div>';
519 + $content .= '</ul>';
520 + if ($r > 10) {
521 + $content .= '<button type="button" style="text-decoration: none;" id="wphal-annee" onclick="visibiliteannee(\'anneesuite\'); return false;" >' . __('Liste complète', 'wp-hal');
522 + $content .= '</button>';
523 + }
472 524 }
473 - if ($i < $r){
474 - $i = $i+1;
475 - } else {
476 - $name = explode(delimiter,$res[0]);
477 - $content .= '<li class="test list-group-item" 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="badge badge-default">' .$res[1]. '</span></li>';
525 + $content .= '</div>
526 + <div class="display" id="wphal-insts" style="display: none;">
527 + <h3 class="wphal-titre">' . __('Institutions', 'wp-hal') . '</h3>';
528 + if (!is_null($json->facet_counts->facet_fields->instStructIdName_fs) && !empty($json->facet_counts->facet_fields->instStructIdName_fs)) {
529 + $content .= '<span id="triinsts">';
530 + $content .= '<button type="button" class="trial" id="triinst" onclick="toggleSort(this, true, \'wphal-institu\', \'instsuite\', \'triinst\'); return false;" style="font-size:16px; text-decoration: none;" >Tri Alphabétique</button>';
531 + $content .= '<button type="button" class="trioc" id="trinbinst" onclick="toggleSort(this, false, \'wphal-institu\', \'instsuite\', \'trinbinst\'); return false;" style="font-size:16px; text-decoration: none;">Tri Occurrence</button>';
532 + $content .= '</span>';
533 + $content .= '<ul class="wphal-insts">';
534 + $content .= '<div id="wphal-institu">';
535 + $r = 0;
536 + foreach ($json->facet_counts->facet_fields->instStructIdName_fs as $res) {
537 + $r = $r + 1;
538 + if ($r > 10) {
539 + break;
540 + }
541 + $name = explode(wphal_delimiter, $res[0]);
542 + $content .= '<li class="metadata" data-percentage="' . $res[1] . '"><a href="' . esc_url(halv3 . '?q=instStructId_i:' . urlencode($name[0]) . "+AND+" . $type . ':(' . $id . ')').'" target="_blank">' . $name[1] . '</a><span class="wphal-nbmetadata">' . $res[1] . '</span></li>';
543 + }
544 + $i = 1;
545 + $content .= '<div id="instsuite" style="display:none;">';
546 + foreach ($json->facet_counts->facet_fields->instStructIdName_fs as $res) {
547 + if ($r < 10) {
548 + break;
549 + }
550 + if ($i < $r) {
551 + $i = $i + 1;
552 + } else {
553 + $name = explode(wphal_delimiter, $res[0]);
554 + $content .= '<li class="metadata" data-percentage="' . $res[1] . '"><a href="' . esc_url(halv3 . '?q=instStructId_i:' . urlencode($name[0]) . "+AND+" . $type . ':(' . $id . ')').'" target="_blank">' . $name[1] . '</a><span class="wphal-nbmetadata">' . $res[1] . '</span></li>';
555 + }
556 + }
557 + $content .= '</div>';
558 + $content .= '</div>';
559 + $content .= '</ul>';
560 + if ($r > 10) {
561 + $content .= '<button type="button" style="text-decoration: none;" id="wphal-inst" onclick="visibiliteinst(\'instsuite\'); return false;" >' . __('Liste complète', 'wp-hal');
562 + $content .= '</button>';
563 + }
478 564 }
479 - }
480 - $content .= '</div>';
481 - $content .= '</div>';
482 - $content .= '</ul>';
483 - if ($r > 10){
484 - $content .= '<a class="btn btn-default btn-sm" href="" style="text-decoration: none;" id="dept" onclick="javascript:visibilitedept(\'deptsuite\'); return false;" >' . __('Liste complète','wp-hal'); $content .= '</a> ';
485 - }
486 - }
487 - $content .= '</div>
488 - <div class="tab-pane" id="equipes">
489 - <h3>' . __('Équipes de recherche','wp-hal').'</h3>';
490 - if(!is_null($json->facet_counts->facet_fields->rteamStructIdName_fs) && !empty($json->facet_counts->facet_fields->rteamStructIdName_fs)){
491 - $content .= '<ul class="equipes list-group">';
492 - $content .= '<li class="list-group-item">';
493 - $content .= '<span id="triequipe">';
494 - $content .= '<a class="btn btn-default btn-xs" data-placement="bottom" data-toggle="tooltip" data-original-title="Tri Alphabétique" href="" id="triequipe" onclick="javascript:toggleSort(this, true, \'rteam\', \'equipesuite\', \'triequipe\'); return false;" style="font-size:16px;text-decoration: none;" ><span class="glyphicon glyphicon-sort-by-alphabet"></span></a>';
495 - $content .= '<a class="pull-right btn btn-default btn-xs" data-placement="bottom" data-toggle="tooltip" data-original-title="Tri par Nombre d\'Occurences" href="" id="trinbequipe" onclick="javascript:toggleSort(this, false, \'rteam\', \'equipesuite\', \'trinbequipe\'); return false;" style="font-size:16px; text-decoration: none;"><span class="glyphicon glyphicon-sort-by-order"></span></a>';
496 - $content .= '</span>';
497 - $content .= '</li>';
498 - $content .= '<div id="rteam">';
565 + $content .= '</div>
566 + <div class="display" id="wphal-labs" style="display: none;">
567 + <h3 class="wphal-titre">' . __('Laboratoires', 'wp-hal') . '</h3>';
568 + if (!is_null($json->facet_counts->facet_fields->labStructIdName_fs) && !empty($json->facet_counts->facet_fields->labStructIdName_fs)) {
569 + $content .= '<span id="trilabs">';
570 + $content .= '<button type="button" class="trial" id="trilab" onclick="toggleSort(this, true, \'wphal-labo\', \'labsuite\', \'trilab\'); return false;" style="font-size:16px; text-decoration: none;" >Tri Alphabétique</button>';
571 + $content .= '<button type="button" class="trioc" id="trinblab" onclick="toggleSort(this, false, \'wphal-labo\', \'labsuite\', \'trinblab\'); return false;" style="font-size:16px; text-decoration: none;">Tri Occurrence</button>';
572 + $content .= '</span>';
573 + $content .= '<ul class="wphal-labs">';
574 + $content .= '<div id="wphal-labo">';
499 575
500 - $r = 0;
501 - foreach ($json->facet_counts->facet_fields->rteamStructIdName_fs as $res){
502 - $r = $r+1;
503 - if ($r > 10){
504 - break;
576 + $r = 0;
577 + foreach ($json->facet_counts->facet_fields->labStructIdName_fs as $res) {
578 + $r = $r + 1;
579 + if ($r > 10) {
580 + break;
581 + }
582 + $name = explode(wphal_delimiter, $res[0]);
583 + $content .= '<li class="metadata" data-percentage="' . $res[1] . '"><a href="' . esc_url(halv3 . '?q=labStructId_i:' . urlencode($name[0]) . "+AND+" . $type . ':(' . $id . ')').'" target="_blank">' . $name[1] . '</a><span class="wphal-nbmetadata">' . $res[1] . '</span></li>';
584 + }
585 + $i = 1;
586 + $content .= '<div id="labsuite" style="display:none;">';
587 + foreach ($json->facet_counts->facet_fields->labStructIdName_fs as $res) {
588 + if ($r < 10) {
589 + break;
590 + }
591 + if ($i < $r) {
592 + $i = $i + 1;
593 + } else {
594 + $name = explode(wphal_delimiter, $res[0]);
595 + $content .= '<li class="metadata" data-percentage="' . $res[1] . '"><a href="' . esc_url(halv3 . '?q=labStructId_i:' . urlencode($name[0]) . "+AND+" . $type . ':(' . $id . ')').'" target="_blank">' . $name[1] . '</a><span class="wphal-nbmetadata">' . $res[1] . '</span></li>';
596 + }
597 + }
598 + $content .= '</div>';
599 + $content .= '</div>';
600 + $content .= '</ul>';
601 + if ($r > 10) {
602 + $content .= '<button type="button" style="text-decoration: none;" id="wphal-lab" onclick="visibilitelab(\'labsuite\'); return false;" >' . __('Liste complète', 'wp-hal');
603 + $content .= '</button>';
604 + }
505 605 }
506 - $name = explode(delimiter,$res[0]);
507 - $content .= '<li class="test list-group-item" 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="badge badge-default">' .$res[1]. '</span></li>';
508 - }
509 - $i = 1;
510 - $content .= '<div id="equipesuite" style="display:none;">';
511 - foreach ($json->facet_counts->facet_fields->rteamStructIdName_fs as $res){
512 - if($r < 10){
513 - break;
606 + $content .= '</div>
607 + <div class="display" id="wphal-depts" style="display: none;">
608 + <h3 class="wphal-titre">' . __('Départements', 'wp-hal') . '</h3>';
609 + if (!is_null($json->facet_counts->facet_fields->deptStructIdName_fs) && !empty($json->facet_counts->facet_fields->deptStructIdName_fs)) {
610 + $content .= '<span id="tridept">';
611 + $content .= '<button type="button" class="trial" id="tridept" onclick="toggleSort(this, true, \'wphal-dpt\', \'deptsuite\', \'tridept\'); return false;" style="font-size:16px; text-decoration: none;" >Tri Alphabétique</button>';
612 + $content .= '<button type="button" class="trioc" id="trinbdept" onclick="toggleSort(this, false, \'wphal-dpt\', \'deptsuite\', \'trinbdept\'); return false;" style="font-size:16px; text-decoration: none;">Tri Occurrence</button>';
613 + $content .= '</span>';
614 + $content .= '<ul class="wphal-depts">';
615 + $content .= '<div id="wphal-dpt">';
616 + $r = 0;
617 + foreach ($json->facet_counts->facet_fields->deptStructIdName_fs as $res) {
618 + $r = $r + 1;
619 + if ($r > 10) {
620 + break;
621 + }
622 + $name = explode(wphal_delimiter, $res[0]);
623 + $content .= '<li class="metadata" data-percentage="' . $res[1] . '"><a href="' . esc_url(halv3 . '?q=deptStructId_i:' . urlencode($name[0]) . "+AND+" . $type . ':(' . $id . ')').'" target="_blank">' . $name[1] . '</a><span class="wphal-nbmetadata">' . $res[1] . '</span></li>';
624 + }
625 + $i = 1;
626 + $content .= '<div id="deptsuite" style="display:none;">';
627 + foreach ($json->facet_counts->facet_fields->deptStructIdName_fs as $res) {
628 + if ($r < 10) {
629 + break;
630 + }
631 + if ($i < $r) {
632 + $i = $i + 1;
633 + } else {
634 + $name = explode(wphal_delimiter, $res[0]);
635 + $content .= '<li class="metadata" data-percentage="' . $res[1] . '"><a href="' . esc_url(halv3 . '?q=deptStructId_i:' . urlencode($name[0]) . "+AND+" . $type . ':(' . $id . ')').'" target="_blank">' . $name[1] . '</a><span class="wphal-nbmetadata">' . $res[1] . '</span></li>';
636 + }
637 + }
638 + $content .= '</div>';
639 + $content .= '</div>';
640 + $content .= '</ul>';
641 + if ($r > 10) {
642 + $content .= '<button type="button" style="text-decoration: none;" id="wphal-dept" onclick="visibilitedept(\'deptsuite\'); return false;" >' . __('Liste complète', 'wp-hal');
643 + $content .= '</button>';
644 + }
514 645 }
515 - if ($i < $r){
516 - $i = $i+1;
517 - } else {
518 - $content .= '<li class="test list-group-item" 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="badge badge-default">' .$res[1]. '</span></li>';
646 + $content .= '</div>
647 + <div class="display" id="wphal-equipes" style="display: none;">
648 + <h3 class="wphal-titre">' . __('Équipes de recherche', 'wp-hal') . '</h3>';
649 + if (!is_null($json->facet_counts->facet_fields->rteamStructIdName_fs) && !empty($json->facet_counts->facet_fields->rteamStructIdName_fs)) {
650 + $content .= '<span id="triequipe">';
651 + $content .= '<button type="button" class="trial" id="triequipe" onclick="toggleSort(this, true, \'wphal-rteam\', \'equipesuite\', \'triequipe\'); return false;" style="font-size:16px;text-decoration: none;" >Tri Alphabétique</button>';
652 + $content .= '<button type="button" class="trioc" id="trinbequipe" onclick="toggleSort(this, false, \'wphal-rteam\', \'equipesuite\', \'trinbequipe\'); return false;" style="font-size:16px; text-decoration: none;">Tri Occurrence</button>';
653 + $content .= '</span>';
654 + $content .= '<ul class="wphal-equipes">';
655 + $content .= '<div id="wphal-rteam">';
656 +
657 + $r = 0;
658 + $name=[];
659 + foreach ($json->facet_counts->facet_fields->rteamStructIdName_fs as $res) {
660 + $r = $r + 1;
661 + if ($r > 10) {
662 + break;
663 + }
664 + $name = explode(wphal_delimiter, $res[0]);
665 + $content .= '<li class="metadata" data-percentage="' . $res[1] . '"><a href="' . esc_url(halv3 . '?q=rteamStructId_i:' . urlencode($name[0]) . "+AND+" . $type . ':(' . $id . ')').'" target="_blank">' . $name[1] . '</a><span class="wphal-nbmetadata">' . $res[1] . '</span></li>';
666 + }
667 + $i = 1;
668 + $content .= '<div id="equipesuite" style="display:none;">';
669 + foreach ($json->facet_counts->facet_fields->rteamStructIdName_fs as $res) {
670 + if ($r < 10) {
671 + break;
672 + }
673 + if ($i < $r) {
674 + $i = $i + 1;
675 + } else {
676 + $name = explode(wphal_delimiter, $res[0]);
677 + $content .= '<li class="metadata" data-percentage="' . $res[1] . '"><a href="' . esc_url(halv3 . '?q=rteamStructId_i:' . urlencode($name[0]) . "+AND+" . $type . ':(' . $id . ')').'" target="_blank">' . $name[1] . '</a><span class="wphal-nbmetadata">' . $res[1] . '</span></li>';
678 + }
679 + }
680 + $content .= '</div>';
681 + $content .= '</div>';
682 + $content .= '</ul>';
683 + if ($r > 10) {
684 + $content .= '<button type="button" style="text-decoration: none;" id="wphal-equipe" onclick="visibiliteequipe(\'equipesuite\'); return false;" >' . __('Liste complète', 'wp-hal');
685 + $content .= '</button>';
686 + }
519 687 }
520 - }
521 - $content .= '</div>';
522 - $content .= '</div>';
523 - $content .= '</ul>';
524 - if ($r > 10){
525 - $content .= '<a class="btn btn-default btn-sm" href="" style="text-decoration: none;" id="equipe" onclick="javascript:visibiliteequipe(\'equipesuite\'); return false;" >' . __('Liste complète','wp-hal'); $content .= '</a> ';
526 - }
527 - }
528 - $content .= '</div>
529 - <div class="tab-pane active" id="publications">
530 - <h3>' . __('Publications','wp-hal'); $content .= '</h3>';
688 + $content .= '</div>
689 + <div class="display" id="publications">';
690 + if (get_option('option_groupe') == 'grouper') {
691 + $doctype = file_get_contents(plugin_dir_path( __FILE__ ).'json'. DIRECTORY_SEPARATOR .'doctype_fr.json');
692 + $jsontype = json_decode($doctype);
531 693
532 - if (get_option('option_groupe')=='grouper'){
533 -
534 694 //LISTE DES DOCUMENTS PAR GROUPE
535 695
536 - $content .= '<div class="counter-doc">
537 -' . __('Nombre de documents', 'wp-hal') . '
538 -<h2 class="nbdoc"><span class="label label-primary">' . $json->grouped->docType_s->matches . '</span></h2><br/>
539 -</div>';
540 -
541 - $content .= '<ul style="list-style-type: none;">';
542 - for($i=0; $json->grouped->docType_s->groups[$i] != null ; $i++){
543 - for($d=0; $jsontype->response->result->doc[$d] != null; $d++ ){
544 - if ($json->grouped->docType_s->groups[$i]->groupValue == $jsontype->response->result->doc[$d]->str[0]){
545 - $titre=$jsontype->response->result->doc[$d]->str[1];
696 + $content .= '<div class="counter-doc"><span class="wphal-nbtot">' . $json->grouped->docType_s->matches . ' </span>';
697 + $content .= __('documents', 'wp-hal'). '</div><br>';
698 + for ($i = 0; !empty($jsontype->response->result->doc[$i]); $i++) {
699 + for ($d = 0; !empty($json->grouped->docType_s->groups[$d]); $d++) {
700 + if ($json->grouped->docType_s->groups[$d]->groupValue == $jsontype->response->result->doc[$i]->str[0]){
701 + $titre = $jsontype->response->result->doc[$i]->str[1];
702 + $content .= '<div class="grp-div"><h3 class="wphal-titre-groupe">' . __($titre, 'wp-hal') . '<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>';
703 + $content .= '<div class="grp-content">';
704 + $content .= '<ul>';
705 + foreach ($json->grouped->docType_s->groups[$d]->doclist->docs as $result) {
706 + $content .= '<li>' . $result->citationFull_s . '</li>';
707 + }
708 + $content .= '</ul></div>';
709 + $content .= '</div><br>';
710 + break;
711 + }
712 + }
546 713 }
547 - }
548 - $content .= '<li><div class="doc-group"><h3 class="doc-header">' . $titre . '<small class="doc-nb">' . $json->grouped->docType_s->groups[$i]->doclist->numFound .' ' . _n('document','documents',$json->grouped->docType_s->groups[$i]->doclist->numFound,'wp-hal') .'</small></h3>';
549 - $content .= '<div class="doc-content">';
550 - $content .= '<ul>';
551 - foreach ($json->grouped->docType_s->groups[$i]->doclist->docs as $result){
552 - $content .= '<li>' . $result->citationFull_s . '</li>';
553 - }
554 - $content .= '</ul></div>';
555 - $content .= '</div></li>';
556 - }
557 - $content .= '</ul>';
558 - } elseif(get_option('option_groupe')=='paginer'){
714 + } elseif (get_option('option_groupe') == 'paginer') {
559 715
560 716 //LISTE DES DOCUMENTS AVEC PAGINATION
717 + $content .= '<div class="counter-doc"><span class="wphal-nbtot">' . $json->response->numFound . ' </span>';
718 + $content .= __('documents', 'wp-hal'). '</div><br>';
561 719
562 - $content .= '<div class="counter-doc">
563 -' . __('Nombre de documents', 'wp-hal');
564 - $content .='<h2 class="nbdoc"><span class="label label-primary">' . $json->response->numFound . '</span></h2><br/>
565 -</div>';
566 -
567 720 //--MODULE PAGINATION--//
568 - $messagesParPage = 10;
721 + $messagesParPage = 10;
569 722
570 - $total = $json->response->numFound;
723 + $total = $json->response->numFound;
571 724
572 - $nombreDePages = ceil($total / $messagesParPage);
725 + $nombreDePages = ceil($total / $messagesParPage);
573 726
574 - if (isset($paged)) {
575 - $pageActuelle = intval($paged);
727 + if (isset($hal_page)) {
728 + $pageActuelle = intval($hal_page);
576 729
577 - if ($pageActuelle > $nombreDePages) {
578 - $pageActuelle = $nombreDePages;
579 - }
580 - } else {
581 - $pageActuelle = 1;
582 - }
583 - $premiereEntree = ($pageActuelle - 1) * $messagesParPage;
730 + if ($pageActuelle > $nombreDePages) {
731 + $pageActuelle = $nombreDePages;
732 + }
733 + } else {
734 + $pageActuelle = 1;
735 + }
736 + $premiereEntree = ($pageActuelle - 1) * $messagesParPage;
584 737
585 - $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';
586 - $ch = curl_init($url);
587 -// Options
588 - $options = array(
589 - CURLOPT_RETURNTRANSFER => true,
590 - CURLOPT_HTTPHEADER => array('Content-type: application/json'),
591 - CURLOPT_TIMEOUT => 10,
592 - );
738 + $url = wphal_api . '?q=*:*&fq=' . $type . ':(' . urlencode($id) . ')&fl=docid,citationFull_s,keyword_s,bookTitle_s,producedDate_s,authFullName_s&start=' . $premiereEntree . '&rows=' . $messagesParPage . '&sort=' . wphal_producedDateY . '&wt=json';
739 + $json = wphal_do_get_data($url);
593 740
594 -// Bind des options et de l'objet cURL que l'on va utiliser
595 - curl_setopt_array($ch, $options);
596 -// Récupération du résultat JSON
597 - $json = json_decode(curl_exec($ch));
598 - curl_close($ch);
599 -
600 -
601 741 //--MODULE PAGINATION--//
742 + $count_results = count($json->response->docs);
743 + if($count_results>0) {
744 + $content .= '<ul>';
745 + for ( $i = 0; $i <= $count_results - 1; $i ++ ) {
746 + $content .= '<li>' . $json->response->docs[ $i ]->citationFull_s . '</li>';
747 + }
748 + $content .= '</ul>';
749 + } else {
750 + $content = '<div> no results !</div>';
751 + }
752 + if($total> $messagesParPage) {
753 + $base_url = ( isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on' ? 'https' : 'http' ) . '://' . $_SERVER['HTTP_HOST'];
754 + $url = $base_url . $_SERVER["REQUEST_URI"];
755 + $explodedURL= explode('?', $url);
756 + $queryString = $explodedURL[1];
757 + $pagedHref = $explodedURL[0];
758 + if(!empty($queryString)){
759 + $parsedQueryString = [];
760 + parse_str($queryString, $parsedQueryString);
761 + if(isset($parsedQueryString["hal_page"])){
762 + unset($parsedQueryString["hal_page"]);
763 + }
764 + $pagedHref .= '?';
765 + foreach($parsedQueryString as $name => $value){
766 + $pagedHref .= $name.'='.$value.'&';
767 + }
768 + // we add it back..
769 + $pagedHref .= 'hal_page=';
770 + }else {
771 + $pagedHref .= '?hal_page=';
772 + }
602 773
603 - $content .= '<ul>';
604 - for ($i = 0; $json->response->docs[$i]!= ''; $i++){
605 - $content .= '<li>' . $json->response->docs[$i]->citationFull_s . '</li>';
606 - }
607 - $content .= '</ul>';
774 + //--AFFICHAGE PAGINATION--//
775 + $precedents = $pageActuelle - 2;
776 + $suivants = $pageActuelle + 2;
777 + $precedent = $pageActuelle - 1;
778 + $suivant = $pageActuelle + 1;
779 + $penultimate = $nombreDePages - 1;
608 780
609 -//--AFFICHAGE PAGINATION--//
610 - $precedents=$pageActuelle-2;
611 - $suivants= $pageActuelle+2;
612 - $precedent=$pageActuelle-1;
613 - $suivant= $pageActuelle+1;
614 - $penultimate = $nombreDePages - 1;
615 -
616 - $content .= '<div class="pagination_module">';
617 - $content .= '<ul class="pagination">';
618 -//--BOUTON PRECEDENT--//
619 - if($pageActuelle == 1){
620 - $content .= '<li class="disabled"><a href="#">&laquo;</a></li>';
621 - }
622 - else{
623 - $content .= '<li><a href="?paged='.$precedent.'">&laquo;</a></li>';
624 - }
625 - if($nombreDePages <= 6){// Cas 1 : 6 pages ou moins - Pas de troncature
626 - for ($i = 1; $i <= $nombreDePages; $i++) {
627 - if ($i == $pageActuelle) {
628 - $content .= '<li class="active"><a href="#">'.$i.'</a></li>';
629 - }
630 - else {
631 - $content .= ' <li><a href="?paged='.$i.'">' . $i . '</a></li> ';
632 - }
633 - }
634 - }
635 - elseif($nombreDePages >= 7){// Cas 2 : 7 pages ou plus - Troncature
636 - if($pageActuelle <= 3){// Lorsque l'on est sur les trois premières pages
637 - for($i = 1; $i <= 4; $i++){
638 - if ($i == $pageActuelle) {
639 - $content .= '<li class="active"><a href="#">'.$i.'</a></li>';
781 + $content .= '<ul class="wphal-pagination">';
782 + //--BOUTON PRECEDENT--//
783 + if ( $pageActuelle != 1 ) {
784 + $content .= '<li><a href="'. $pagedHref . $precedent . '">&laquo;</a></li>';
640 785 }
641 - else {
642 - $content .= '<li><a href="?paged='.$i.'">'.$i.'</a></li>';
786 + if ( $nombreDePages <= 6 ) {// Cas 1 : 6 pages ou moins - Pas de troncature
787 + for ( $i = 1; $i <= $nombreDePages; $i ++ ) {
788 + if ( $i == $pageActuelle ) {
789 + $content .= '<li class="active"><a href="#">' . $i . '</a></li>';
790 + } else {
791 + $content .= ' <li><a href="'. $pagedHref . $i . '">' . $i . '</a></li> ';
792 + }
793 + }
794 + } elseif ( $nombreDePages >= 7 ) {// Cas 2 : 7 pages ou plus - Troncature
795 + if ( $pageActuelle <= 3 ) {// Lorsque l'on est sur les trois premières pages
796 + for ( $i = 1; $i <= 4; $i ++ ) {
797 + if ( $i == $pageActuelle ) {
798 + $content .= '<li class="active"><a href="#">' . $i . '</a></li>';
799 + } else {
800 + $content .= '<li><a href="'. $pagedHref . $i . '">' . $i . '</a></li>';
801 + }
802 + }
803 + $content .= '<li class="disabled"><a href="#">&hellip;</a></li>';
804 + $content .= '<li><a href="'. $pagedHref . $penultimate . '">' . $penultimate . '</a></li>';
805 + $content .= '<li><a href="'. $pagedHref . $nombreDePages . '">' . $nombreDePages . '</a></li>';
806 + }
807 + if ( $pageActuelle >= 4 && $pageActuelle <= $penultimate - 2 ) {//Lorsque l'on arrive sur la quatrième page
808 + $content .= '<li><a href="'.$pagedHref.'1">1</a></li>';
809 + $content .= '<li class="disabled"><a href="#">&hellip;</a></li>';
810 + $content .= '<li><a href="'. $pagedHref . $precedents . '">' . $precedents . '</a></li>';
811 + $content .= '<li><a href="'. $pagedHref . $precedent . '">' . $precedent . '</a></li>';
812 + $content .= '<li class="active"><a href="#">' . $pageActuelle . '</a></li>';
813 + $content .= '<li><a href="'. $pagedHref . $suivant . '">' . $suivant . '</a></li>';
814 + $content .= '<li><a href="'. $pagedHref . $suivants . '">' . $suivants . '</a></li>';
815 + $content .= '<li class="disabled"><a href="#">&hellip;</a></li>';
816 + $content .= '<li><a href="'. $pagedHref . $nombreDePages . '">' . $nombreDePages . '</a></li>';
817 + }
818 + if ( $pageActuelle >= $penultimate - 1 ) {
819 + $content .= '<li><a href="'.$pagedHref.'1">1</a></li>';
820 + $content .= '<li><a href="'.$pagedHref.'2">2</a></li>';
821 + $content .= '<li class="disabled"><a href="#">&hellip;</a></li>';
822 + for ( $i = $penultimate - 2; $i <= $nombreDePages; $i ++ ) {
823 + if ( $i == $pageActuelle ) {
824 + $content .= '<li class="active"><a href="#">' . $i . '</a></li>';
825 + } else {
826 + $content .= '<li><a href="'. $pagedHref . $i . '">' . $i . '</a></li>';
827 + }
828 + }
829 + }
643 830 }
644 - }
645 - $content .= '<li class="disabled"><a href="#">&hellip;</a></li>';
646 - $content .= '<li><a href="?paged='.$penultimate.'">'.$penultimate.'</a></li>';
647 - $content .= '<li><a href="?paged='.$nombreDePages.'">'.$nombreDePages.'</a></li>';
648 - }
649 - if($pageActuelle >=4 && $pageActuelle <= $penultimate-2){//Lorsque l'on arrive sur la quatrième page
650 - $content .= '<li><a href="?paged=">1</a></li>';
651 - $content .= '<li class="disabled"><a href="#">&hellip;</a></li>';
652 - $content .= '<li><a href="?paged='.$precedents.'">'.$precedents.'</a></li>';
653 - $content .= '<li><a href="?paged='.$precedent.'">'.$precedent.'</a></li>';
654 - $content .= '<li class="active"><a href="#">'.$pageActuelle.'</a></li>';
655 - $content .= '<li><a href="?paged='.$suivant.'">'.$suivant.'</a></li>';
656 - $content .= '<li><a href="?paged='.$suivants.'">'.$suivants.'</a></li>';
657 - $content .= '<li class="disabled"><a href="#">&hellip;</a></li>';
658 - $content .= '<li><a href="?paged='.$nombreDePages.'">'.$nombreDePages.'</a></li>';
659 - }
660 - if($pageActuelle >= $penultimate-1){
661 - $content .= '<li><a href="?paged=1">1</a></li>';
662 - $content .= '<li><a href="?paged=2">2</a></li>';
663 - $content .= '<li class="disabled"><a href="#">&hellip;</a></li>';
664 - for($i = $penultimate-2; $i <= $nombreDePages; $i++){
665 - if ($i == $pageActuelle) {
666 - $content .= '<li class="active"><a href="#">'.$i.'</a></li>';
831 + //--BOUTON SUIVANT--//
832 + if ( $pageActuelle < $nombreDePages ) {
833 + $content .= '<li><a href="'. $pagedHref . $suivant . '">&raquo;</a></li>';
667 834 }
668 - else {
669 - $content .= '<li><a href="?paged='.$i.'">'.$i.'</a></li>';
670 - }
835 + $content .= '</ul>';
836 + //--AFFICHAGE PAGINATION--//
671 837 }
672 838 }
839 + $content .= '</div>
840 + </div>
841 +</div>';
842 + }else{
843 + $content = 'Plugin is not configured correctly or shortcode parameters are not valid, please check the <a href="https://doc.archives-ouvertes.fr/afficher-une-liste-de-publications-dans-wordpress/" target="_blank" id="wrong_params">documentation</a>';
673 844 }
674 -//--BOUTON SUIVANT--//
675 - if($pageActuelle<$nombreDePages){
676 - $content .= '<li><a href="?paged='.$suivant.'">&raquo;</a></li>';
845 + $content .= '<div class="wphal-footer">';
846 + $content .= '<p style="color:#B3B2B0">' . __("Documents récupérés de l'archive ouverte HAL", 'wp-hal') . '&nbsp;<a href="' . wphal_site . '" target="_blank"><img alt="logo" src=" ' . esc_url(plugin_dir_url(__FILE__) . 'img/logo-hal.png').'" style="width:90px;"></a></p>';
847 + $content .= '</div>';
848 +
849 +//--AFFICHAGE GRAPHIQUE DOMAINE--//
850 + if (!is_null($facetdomain)) {
851 + foreach ($facetdomain as $res) {
852 + $name = explode(wphal_delimiter, $res[0])[1];
853 + $value = $res[1];
854 + $array[] = array($name, $value);
855 + }
856 + wp_localize_script('wp-hal-script4', 'WPWallSettings', $array);
677 857 }
678 - else{
679 - $content .= '<li class="disabled"><a href="#">&raquo;</a></li>';
858 + $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'));
859 + wp_localize_script('wp-hal-script4', 'translate', $translation);
860 + }
861 + // tags other that those will be stripped
862 + $allowed_html_tags = array(
863 + 'div' => array(
864 + 'class' => array(),
865 + 'id' => array(),
866 + 'style' => array(),
867 + ),
868 + "span"=> array(
869 + 'class' => array(),
870 + 'id' => array(),
871 + 'style' => array(),
872 + ),
873 + "img"=> array(
874 + 'alt' => array(),
875 + 'src' => array(),
876 + 'style' => array(),
877 +
878 + ),
879 + 'p' => array(
880 + 'style' => array(),
881 + 'id' => array(),
882 + ),
883 + 'h3' => array(
884 + 'id' => array(),
885 + 'class' => array(),
886 + 'style' => array()
887 + ),
888 + 'a' => array(
889 + 'href' => array(),
890 + 'target' => array(),
891 + 'title' => array(),
892 + 'id' => array(),
893 + 'class' => array(),
894 + 'style' => array(),
895 + 'onclick' => array(),
896 + ),
897 + 'ul' => array(
898 + 'class' => array(),
899 + 'id' => array(),
900 + 'style' => array(),
901 + ),
902 + 'li' => array(
903 + 'class' => array(),
904 + 'id' => array(),
905 + 'data-percentage' => array()
906 + ),
907 + 'button' => array(
908 + 'class' => array(),
909 + 'id' => array(),
910 + 'type' => array(),
911 + 'style' => array(),
912 + 'onclick' => array()
913 + )
914 + ,'br' => array()
915 + ,'hr' => array()
916 + ,'i' => array(),
917 + );
918 + add_filter( 'safe_style_css', function( $styles ) {
919 + $styles[] = 'display';
920 + return $styles;
921 + } );
922 + return wp_kses($content, $allowed_html_tags);
923 +}
924 +
925 +function wphal_verifSolr($values){
926 + $verifsolr = explode(',',$values);
927 + $numverif = count($verifsolr);
928 + $solrsql = '';
929 + if ($numverif<1024){
930 + $solrsql = str_replace(',',' OR ',$values);
931 + } else {
932 + $listsolrsql = explode(',',$values);
933 + for($i=0;$i<1024;$i++){
934 + if ($i == 0){
935 + $solrsql = $listsolrsql[$i];
936 + } else {
937 + $solrsql .= ' OR ';
938 + $solrsql .= $listsolrsql[$i];
939 + }
680 940 }
681 - $content .= '</ul>';
682 - $content .= '</div>';
683 -//--AFFICHAGE PAGINATION--//
684 941 }
685 - $content .='</div>
686 - </div>
687 -</div>';
688 942
689 - $content .= '<div class="modal-footer">';
690 - $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>';
691 - $content .= '</div>';
692 -
693 - return $content;
943 + return $solrsql;
694 944 }
695 945
696 -function wp_adding_style() {
697 - wp_register_style('wp-hal-style1', plugins_url('/css/bootstrap.css', __FILE__));
698 - wp_register_style('wp-hal-style2', plugins_url('/css/style.css', __FILE__));
699 - wp_register_style('wp-hal-style3', plugins_url('/css/jquery.jqplot.css', __FILE__));
946 +function wphal_adding_style() {
947 + wp_register_style('wp-hal-style1', plugins_url('/css/style.css', __FILE__));
948 + wp_register_style('wp-hal-style2', plugins_url('/css/jquery.jqplot.css', __FILE__));
700 949
701 950 wp_enqueue_style('wp-hal-style1');
702 - wp_enqueue_style('wp-hal-style2');
703 - wp_enqueue_style('wp-hal-style3');
704 951 }
705 952
706 -function wp_adding_script() {
707 - wp_register_script('wp-hal-script1', plugins_url('/js/bootstrap.js', __FILE__));
708 - wp_register_script('wp-hal-script2',plugins_url('/js/highcharts.js', __FILE__));
709 - wp_register_script('wp-hal-script3',plugins_url('/js/jquery.jqplot.js', __FILE__));
710 - wp_register_script('wp-hal-script4',plugins_url('/js/jqplot.pieRenderer.js', __FILE__));
711 - wp_register_script('wp-hal-script5',plugins_url('/js/cv-hal.js', __FILE__));
953 +function wphal_adding_script() {
954 + wp_register_script('wp-hal-script1',plugins_url('/js/jquery.jqplot.js', __FILE__));
955 + wp_register_script('wp-hal-script2',plugins_url('/js/jqplot.highlighter.js', __FILE__));
956 + wp_register_script('wp-hal-script3',plugins_url('/js/jqplot.pieRenderer.js', __FILE__));
957 + wp_register_script('wp-hal-script4',plugins_url('/js/cv-hal.js', __FILE__));
712 958
959 +
713 960 wp_enqueue_script("jquery");
714 - wp_enqueue_script('wp-hal-script1');
715 - wp_enqueue_script('wp-hal-script2');
716 - wp_enqueue_script('wp-hal-script3');
717 - wp_enqueue_script('wp-hal-script4');
718 - wp_enqueue_script('wp-hal-script5');
719 -
720 -
721 - $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';
722 - $ch = curl_init($url);
723 - // Options
724 - $options = array(
725 - CURLOPT_RETURNTRANSFER => true,
726 - CURLOPT_HTTPHEADER => array('Content-type: application/json'),
727 - CURLOPT_TIMEOUT => 10,
728 - );
729 -
730 - // Bind des options et de l'objet cURL que l'on va utiliser
731 - curl_setopt_array($ch, $options);
732 - // Récupération du résultat JSON
733 - $json = json_decode(curl_exec($ch));
734 - curl_close($ch);
735 - if (locale == 'fr_FR') {
736 - $facetdomain = $json->facet_counts->facet_fields->fr_domainAllCodeLabel_fs;
737 - } elseif (locale == 'en_US') {
738 - $facetdomain = $json->facet_counts->facet_fields->en_domainAllCodeLabel_fs;
739 - } elseif (locale == 'es_ES') {
740 - $facetdomain = $json->facet_counts->facet_fields->es_domainAllCodeLabel_fs;
741 - } else {
742 - $facetdomain = $json->facet_counts->facet_fields->eu_domainAllCodeLabel_fs;
743 - }
744 - if(!is_null($facetdomain)){
745 - foreach ($facetdomain as $res){
746 - $name = explode(delimiter,$res[0])[1];
747 - $value = $res[1];
748 - $array[] = array($name,$value);
749 - }
750 - }
751 - wp_localize_script('wp-hal-script5', 'WPWallSettings', json_encode($array));
752 - $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'));
753 - wp_localize_script('wp-hal-script5', 'translate', $translation);
961 + wp_enqueue_script('wp-hal-script4', false, array(), false, true);
754 962 }
755 963
756 964 /**
757 965 * Récupère les fichiers css et js
758 966 */
759 -add_action( 'wp_enqueue_scripts', 'wp_adding_style' );
760 -add_action( 'wp_enqueue_scripts', 'wp_adding_script' );
967 +if ( wphal_is_curl_installed() ) {
968 + add_action('wp_enqueue_scripts', 'wphal_adding_style');
969 + add_action('wp_enqueue_scripts', 'wphal_adding_script');
970 +}
761 971
762 972 /**
763 973 * Charge lorsque le plugin est désactivé
764 974 */
765 -register_deactivation_hook( __FILE__, 'reset_option' );
975 +register_deactivation_hook( __FILE__, 'wphal_reset_option' );
766 976
767 977 /**
768 978 * Ajoute le widget wphal à l'initialisation des widgets
769 979 */
@@ -779,9 +989,9 @@
779 989 */
780 990 function wphal_menu() {
781 991 add_menu_page( 'Options', 'Hal', 'manage_options', 'wp-hal.php', 'wphal_option' , '', 21);
782 992
783 - add_action( 'admin_init', 'register_settings' );
993 + add_action( 'admin_init', 'wphal_register_settings' );
784 994 }
785 995
786 996
787 997 /**
@@ -799,20 +1009,22 @@
799 1009 * Classe du widget wphal
800 1010 */
801 1011
802 1012 class wphal_widget extends WP_widget{
803 -
804 -
805 1013 /**
806 1014 * Défini les propriétés du widget
807 1015 */
808 - function wphal_widget(){
1016 + function __construct(){
809 1017 $options = array(
810 1018 "classname" => "wphal-publications",
811 1019 "description" => __("Afficher les dernières publications d'un auteur ou d'une structure.", 'wp-hal')
812 1020 );
813 1021
814 - $this->WP_widget("hal-publications", __("Publications récentes", 'wp-hal'), $options);
1022 + parent::__construct(
1023 + 'hal-publications',
1024 + __("Publications HAL", 'wp-hal'),
1025 + $options
1026 + );
815 1027 }
816 1028
817 1029 /**
818 1030 * Crée le widget
@@ -819,36 +1031,72 @@
819 1031 * @param $args
820 1032 * @param $instance
821 1033 */
822 1034 function widget($args, $instance){
823 - $num = 5;
824 - $url = api .'?q=*:*&fq='.$instance['select'].':' . $instance['idhal'] . '&fl=uri_s,title_s&sort=' . producedDateY . '&rows=' . $num . '&wt=json';
1035 + if(isset($instance['idhal']) && !empty($instance['idhal'])) {
1036 + $content = '';
1037 + extract($args);
1038 + /**
1039 + * @var $before_widget : defined by extract
1040 + * @var $before_title : defined by extract
1041 + * @var $after_title : defined by extract
1042 + * @var $after_widget : defined by extract
1043 + */
1044 + if (!wphal_is_curl_installed()) {
1045 + $content = 'Please check the <a href="https://wordpress.org/plugins/hal/faq/" target="_blank" id="FAQ">FAQ</a> with the code : CURL';
825 1046
826 - $ch = curl_init($url);
827 - // Options
828 - $options = array(
829 - CURLOPT_RETURNTRANSFER => true,
830 - CURLOPT_HTTPHEADER => array('Content-type: application/json'),
831 - CURLOPT_TIMEOUT => 10,
832 - );
1047 + } else {
1048 + $instance['idhal'] = wphal_verifSolr($instance['idhal']);
833 1049
834 - // Bind des options et de l'objet cURL que l'on va utiliser
835 - curl_setopt_array($ch, $options);
836 - // Récupération du résultat JSON
837 - $json = json_decode(curl_exec($ch));
838 - curl_close($ch);
1050 + $url = wphal_api . '?q=*:*&fq=' . $instance['select'] . ':' . urlencode($instance['idhal']) . '&fl=uri_s,' . $instance['typetext'] . '&sort=' . wphal_producedDateY . '&rows=' . $instance['nbdoc'] . '&wt=json';
1051 + $json = wphal_do_get_data($url);
839 1052
840 - $content = '<ul>';
841 - for ($i = 0; $i < $num; $i++){
842 - $content .= '<li><a href="' . $json->response->docs[$i]->uri_s . '" target="_blank">' . $json->response->docs[$i]->title_s[0] . '</a></li>';
1053 + $count_results = count($json->response->docs);
1054 + if ($count_results > 0) {
1055 + $content = '<ul class="widhal-ul">';
1056 + for ($i = 0; $i < $count_results - 1; $i++) {
1057 + if ($instance['typetext'] == 'citationRef_s') {
1058 + $typetext = $json->response->docs[$i]->citationRef_s;
1059 + } else {
1060 + $typetext = $json->response->docs[$i]->title_s[0];
1061 + }
1062 + $content .= '<li class="widhal-li"><a href="' . esc_url($json->response->docs[$i]->uri_s) . '" target="_blank">' . $typetext . '</a></li>';
1063 + }
1064 + $content .= '</ul>';
1065 + } else {
1066 + $content = '<div> no results !</div>';
1067 + }
1068 + }
1069 + // tags other that those will be stripped
1070 + $allowed_html_tags = array(
1071 + 'div' => array(
1072 + 'class' => array(),
1073 + 'id' => array(),
1074 + ),
1075 + 'h2' => array(),
1076 + 'section' => array(),
1077 + 'a' => array(
1078 + 'href' => array(),
1079 + 'target' => array(),
1080 + 'title' => array(),
1081 + 'id' => array(),
1082 + 'class' => array(),
1083 + ),
1084 + 'ul' => array(
1085 + 'class' => array(),
1086 + 'id' => array(),
1087 + ),
1088 + 'li' => array(
1089 + 'class' => array(),
1090 + 'id' => array(),
1091 + )
1092 + );
1093 + $widget_block = $before_widget;
1094 + $widget_block .= $before_title . $instance['titre'] . $after_title;
1095 + $widget_block .= $content;
1096 + $widget_block .= $after_widget;
1097 + echo wp_kses($widget_block, $allowed_html_tags);
843 1098 }
844 - $content .= '</ul>';
845 -
846 - extract($args);
847 - echo $before_widget;
848 - echo $before_title.$instance['titre'].$after_title;
849 - echo $content;
850 - echo $after_widget;
851 1099 }
852 1100
853 1101 /**
854 1102 * Sauvegarde des données
@@ -855,9 +1103,15 @@
855 1103 * @param $new
856 1104 * @param $old
857 1105 */
858 1106 function update($new, $old){
859 - return $new;
1107 + //the id must be provided
1108 + if(isset($new['idhal']) && !empty($new['idhal'])) {
1109 + $new['idhal'] = wphal_sanitize_username($new['idhal']);
1110 + $new['nbdoc'] = wphal_sanitize_id($new['nbdoc']);
1111 + return $new;
1112 + }else
1113 + return false;
860 1114 }
861 1115
862 1116 /**
863 1117 * Formulaire du widget
@@ -865,47 +1119,122 @@
865 1119 */
866 1120 function form($instance){
867 1121
868 1122 $defaut = array(
869 - 'titre' => __("Publications récentes", 'wp-hal'),
870 - 'select' => "authIdHal_s"
1123 + 'titre' => __("Publications Hal", 'wp-hal'),
1124 + 'select' => "authIdHal_s",
1125 + 'typetext' => "title_s",
1126 + 'idhal' => "",
1127 + 'nbdoc' => 5
871 1128 );
872 1129 $instance = wp_parse_args($instance,$defaut);
873 1130 ?>
874 1131 <p>
875 - <label for="<?php echo $this->get_field_id("titre");?>"><?php echo __('Titre :','wp-hal')?></label>
876 - <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"/>
1132 + <label for="<?php echo esc_attr($this->get_field_id("titre"));?>"><?php echo esc_html(__('Titre','wp-hal')) .' :'?></label>
1133 + <input value="<?php echo esc_js($instance['titre']);?>" name="<?php echo esc_attr($this->get_field_name("titre"));?>" id="<?php echo esc_attr($this->get_field_id("titre"));?>" class="widefat" type="text"/>
877 1134 </p>
878 1135 <p>
879 - <select id="<?php echo $this->get_field_id("select");?>" name="<?php echo $this->get_field_name("select");?>">
880 - <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>
881 - <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>
882 - <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>
883 - <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>
884 - <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>
1136 + <label for="<?php echo esc_attr($this->get_field_id("nbdoc"));?>"><?php echo esc_html(__("Nombre de documents affichés",'wp-hal')) .' :'?></label>
1137 + <input class="tiny-text" id="<?php echo esc_attr($this->get_field_id("nbdoc"));?>" name="<?php echo esc_attr($this->get_field_name("nbdoc"));?>" type="number" step="1" min="1" max="10" value="<?php echo esc_js($instance['nbdoc']);?>" size="3">
1138 + </p>
1139 + <p>
1140 + <label for="<?php echo esc_attr($this->get_field_id("typetext"));?>"><?php echo esc_html(__("Type d'affichage",'wp-hal')) .' :'?></label>
1141 + <select id="<?php echo esc_attr($this->get_field_id("typetext"));?>" name="<?php echo esc_attr($this->get_field_name("typetext"));?>">
1142 + <option id="<?php echo esc_attr($this->get_field_id("Title"));?>" value="title_s" <?php echo esc_attr(($instance["typetext"] == "title_s")?'selected':''); ?>><label for="<?php echo wp_kses($this->get_field_id("Title"), []);?>"><?php echo esc_html(__("Titre", 'wp-hal'))?></label></option>
1143 + <option id="<?php echo esc_attr($this->get_field_id("Citation"));?>" value="citationRef_s" <?php echo esc_attr(($instance["typetext"] == "citationRef_s")?'selected':''); ?>><label for="<?php echo esc_attr($this->get_field_id("Citation"));?>"><?php echo esc_html(__("Citation", 'wp-hal'), [])?></label></option>
885 1144 </select>
886 1145 </p>
887 1146 <p>
888 - <label for="<?php echo $this->get_field_id("idhal");?>">Id :</label>
889 - <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"/>
1147 + <label for="<?php echo esc_attr($this->get_field_id("select"));?>"><?php echo esc_html(__("Type d'Id",'wp-hal') .' :')?></label>
1148 + <select id="<?php echo esc_attr($this->get_field_id("select"));?>" name="<?php echo esc_attr($this->get_field_name("select"));?>">
1149 + <option id="<?php echo esc_attr($this->get_field_id("Idhal"));?>" value="authIdHal_s" <?php echo esc_attr(($instance["select"] == "authIdHal_s")?'selected':''); ?>><label for="<?php echo esc_attr($this->get_field_id("Idhal"));?>">Id Hal</label><span style="font-style: italic;"> <?php echo esc_html(__('(Exemple : laurent-capelli)','wp-hal'));?></span></option>
1150 + <option id="<?php echo esc_attr($this->get_field_id("StructId"));?>" value="structId_i" <?php echo esc_attr(($instance["select"] == "structId_i")?'selected':''); ?>><label for="<?php echo esc_attr($this->get_field_id("StructId"));?>">Struct Id</label><span style="font-style: italic;"> <?php echo esc_html(__('(Exemple : 413106)','wp-hal'));?></span></option>
1151 + <option id="<?php echo esc_attr($this->get_field_id("AuthorStructId"));?>" value="authStructId_i" <?php echo esc_attr(($instance["select"] == "authStructId_i")?'selected':''); ?>><label for="<?php echo esc_attr($this->get_field_id("AuthorStructId"));?>">AuthorStruct Id</label><span style="font-style: italic;"> <?php echo esc_html(__('(Exemple : 413106)','wp-hal'));?></span></option>
1152 + <option id="<?php echo esc_attr($this->get_field_id("Anrproject"));?>" value="anrProjectId_i" <?php echo esc_attr(($instance["select"] == "anrProjectId_i")?'selected':''); ?>><label for="<?php echo esc_attr($this->get_field_id("Anrproject"));?>">anrProject Id</label><span style="font-style: italic;"> <?php echo esc_html(__('(Exemple : 1646)','wp-hal'));?></span></option>
1153 + <option id="<?php echo esc_attr($this->get_field_id("Europeanproject"));?>" value="europeanProjectId_i" <?php echo esc_attr(($instance["select"] == "europeanProjectId_i")?'selected':''); ?>><label for="<?php echo esc_attr($this->get_field_id("Europeanproject"));?>">europeanProject Id</label><span style="font-style: italic;"> <?php echo esc_html(__('(Exemple : 17877)','wp-hal'));?></span></option>
1154 + <option id="<?php echo esc_attr($this->get_field_id("Collection"));?>" value="collCode_s" <?php echo esc_attr(($instance["select"] == "collCode_s")?'selected':''); ?>><label for="<?php echo esc_attr($this->get_field_id("Collection"));?>">Collection</label><span style="font-style: italic;"> <?php echo esc_html(__('(Exemple : TICE2014)','wp-hal'));?></span></option>
1155 + </select>
890 1156 </p>
891 - <?php
1157 + <p>
1158 + <label for="<?php echo esc_attr($this->get_field_id("idhal"));?>"><?php echo esc_html(__("Id",'wp-hal')) .' :'?></label>
1159 + <input value="<?php echo esc_js($instance['idhal']);?>" name="<?php echo esc_attr($this->get_field_name("idhal"));?>" id="<?php echo esc_attr($this->get_field_id("idhal"));?>" type="text"/>
1160 + </p>
1161 + <?php
892 1162 }
893 1163 }
894 1164
895 1165
896 -function register_settings() {
1166 +function wphal_sanitize_id( $input ){
1167 + if(is_numeric($input)){
1168 + return $input;
1169 + }
1170 +}
1171 +
1172 +function wphal_sanitize_username($input)
1173 +{
1174 + $allowed = array(".", "-", "_"); // you can add here more value, you want to allow.
1175 + if(ctype_alnum(str_replace($allowed, '', $input ))) {
1176 + return $input;
1177 + }
1178 +}
1179 +
1180 +function wphal_sanitize_phone( $input ){
1181 + $phone_num = $input;
1182 + $phone_num = preg_replace('/[^0-9]/', '', $phone_num);
1183 + if(strlen($phone_num) === 10) {
1184 + //Phone is 10 characters in length
1185 + return $input;
1186 + }
1187 +}
1188 +
1189 +
1190 +function wphal_register_settings() {
897 1191 register_setting( 'wphal_option', 'option_choix' );
898 1192 register_setting( 'wphal_option', 'option_type' );
899 1193 register_setting( 'wphal_option', 'option_groupe' );
900 - register_setting( 'wphal_option', 'option_idhal' );
1194 + register_setting( 'wphal_option', 'option_idhal' , array(
1195 + 'type' => 'string',
1196 + 'sanitize_callback' => 'wphal_sanitize_username',
1197 + 'default' => NULL,
1198 + ));
901 1199 register_setting( 'wphal_option', 'option_lang' );
902 - register_setting( 'wphal_option', 'option_email' );
903 - register_setting( 'wphal_option', 'option_tel' );
904 - register_setting( 'wphal_option', 'option_social0' );
905 - register_setting( 'wphal_option', 'option_social1' );
906 - register_setting( 'wphal_option', 'option_social2' );
907 - register_setting( 'wphal_option', 'option_social3' );
1200 + register_setting( 'wphal_option', 'option_infocontact' );
1201 + register_setting( 'wphal_option', 'option_email' , array(
1202 + 'type' => 'string',
1203 + 'sanitize_callback' => 'sanitize_email',
1204 + 'default' => NULL,
1205 + ));
1206 + register_setting( 'wphal_option', 'option_tel' , array(
1207 + 'type' => 'string',
1208 + 'sanitize_callback' => 'wphal_sanitize_phone',
1209 + 'default' => NULL,
1210 + ));
1211 + register_setting( 'wphal_option', 'option_social0' , array(
1212 + 'type' => 'string',
1213 + 'sanitize_callback' => 'wphal_sanitize_username',
1214 + 'default' => NULL,
1215 + ));
1216 + register_setting( 'wphal_option', 'option_social1' , array(
1217 + 'type' => 'string',
1218 + 'sanitize_callback' => 'wphal_sanitize_username',
1219 + 'default' => NULL,
1220 + ));
1221 + register_setting( 'wphal_option', 'option_social2' , array(
1222 + 'type' => 'string',
1223 + 'sanitize_callback' => 'wphal_sanitize_username',
1224 + 'default' => NULL,
1225 + ));
1226 + register_setting( 'wphal_option', 'option_social3' , array(
1227 + 'type' => 'string',
1228 + 'sanitize_callback' => 'wphal_sanitize_username',
1229 + 'default' => NULL,
1230 + ));
1231 + register_setting( 'wphal_option', 'option_cache_timeout' , array(
1232 + 'type' => 'string',
1233 + 'sanitize_callback' => 'wphal_sanitize_id',
1234 + 'default' => NULL,
1235 + ));
1236 + register_setting( 'wphal_option', 'option_erase_cache' );
908 1237 }
909 1238
910 1239 /**
911 1240 * Crée le menu d'option du plugin
@@ -919,9 +1248,9 @@
919 1248 update_option('option_groupe', 'paginer');
920 1249 }
921 1250 ?>
922 1251 <div class="wrap">
923 - <h2><?php echo __('Plugin HAL','wp-hal');?></h2>
1252 + <h2><?php echo esc_html(__('Plugin HAL','wp-hal'));?></h2>
924 1253 <form method="post" enctype="multipart/form-data" action="options.php">
925 1254 <div id="poststuff">
926 1255 <div id="post-body" class="metabox-holder columns-2">
927 1256 <div id="post-body-content">
@@ -927,74 +1256,89 @@
927 1256 <div id="post-body-content">
928 1257 <?php settings_fields( 'wphal_option' ); ?>
929 1258 <?php do_settings_sections( 'wphal_option' ); ?>
930 1259 <table class="form-table">
931 - <tr valign="top">
932 - <th scope="row" style="font-size: 18px;"><?php echo __('Paramètre de la page :','wp-hal');?></th>
1260 + <tr style="vertical-align:top;">
1261 + <th scope="row" style="font-size: 18px;"><?php echo esc_html(__('Paramètre de la page :','wp-hal'));?></th>
933 1262 </tr>
934 - <tr valign="top">
935 - <th scope="row"><?php echo __('Type d\'Id','wp-hal');?></th>
1263 + <tr style="vertical-align:top;">
1264 + <th scope="row"><label for="option_type"><?php echo esc_html(__('Type d\'Id','wp-hal'));?></label></th>
936 1265 <td><select name="option_type">
937 - <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>
938 - <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>
939 - <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>
940 - <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>
941 - <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>
1266 + <option id="Idhal" value="authIdHal_s" <?php echo esc_attr(((get_option('option_type') == "authIdHal_s")?'selected':'')); ?>><label for="Idhal">Id Hal</label><span style="font-style: italic;"> <?php echo esc_html(__('(Exemple : laurent-capelli)','wp-hal'));?></span></option>
1267 + <option id="StructId" value="structId_i" <?php echo esc_attr(((get_option('option_type') == "structId_i")?'selected':'')); ?>><label for="StructId">Struct Id</label><span style="font-style: italic;"> <?php echo esc_html(__('(Exemple : 413106)','wp-hal'));?></span></option>
1268 + <option id="AuthorStructId" value="authStructId_i" <?php echo esc_attr(((get_option('option_type') == "authStructId_i")?'selected':'')); ?>><label for="AuthorStructId">AuthorStruct Id</label><span style="font-style: italic;"> <?php echo esc_html(__('(Exemple : 413106)','wp-hal'));?></span></option>
1269 + <option id="Anrproject" value="anrProjectId_i" <?php echo esc_attr(((get_option('option_type') == "anrProjectId_i")?'selected':'')); ?>><label for="Anrproject">anrProject Id</label><span style="font-style: italic;"> <?php echo esc_html(__('(Exemple : 1646)','wp-hal'));?></span></option>
1270 + <option id="Europeanproject" value="europeanProjectId_i" <?php echo esc_attr(((get_option('option_type') == "europeanProjectId_i")?'selected':'')); ?>><label for="Europeanproject">europeanProject Id</label><span style="font-style: italic;"> <?php echo esc_html(__('(Exemple : 17877)','wp-hal'));?></span></option>
1271 + <option id="Collection" value="collCode_s" <?php echo esc_attr(((get_option('option_type') == "collCode_s")?'selected':'')); ?>><label for="Collection">Collection</label><span style="font-style: italic;"> <?php echo esc_html(__('(Exemple : TICE2014)','wp-hal'));?></span></option>
942 1272 </select>
943 - <input type="text" name="option_idhal" id="option_idhal" value="<?php echo get_option('option_idhal'); ?>"/>
1273 + <input type="text" name="option_idhal" id="option_idhal" value="<?php echo esc_js(get_option('option_idhal')); ?>"/>
944 1274 </td>
945 1275 </tr>
946 - <tr valign="top">
947 - <th scope="row"><?php echo __('Affichage des documents','wp-hal');?></th>
948 - <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>
949 - <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>
1276 + <tr style="vertical-align:top;">
1277 + <th scope="row"><?php echo esc_html(__('Affichage des documents','wp-hal'));?></th>
1278 + <td><input type="radio" name="option_groupe" id="paginer" value="paginer" <?php echo esc_attr((get_option('option_groupe') == "paginer")?'checked':''); ?>><label for="paginer"><?php echo esc_html(__('Documents avec pagination','wp-hal'));?></label><br>
1279 + <input type="radio" name="option_groupe" id="grouper" value="grouper" <?php echo esc_js((get_option('option_groupe') == "grouper")?'checked':''); ?>><label for="grouper"><?php echo esc_html(__('Documents groupés par type','wp-hal'));?></label><br>
950 1280 </td>
951 1281 </tr>
952 - <tr valign="top">
953 - <th scope="row"><?php echo __('Choix des éléments menu','wp-hal');?></th>
954 - <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/>
955 - <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/>
956 - <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/>
957 - <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/>
958 - <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/>
959 - <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/>
960 - <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/>
961 - <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/>
962 - <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/>
963 - <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>
1282 + <tr style="vertical-align:top;">
1283 + <th scope="row"><?php echo esc_html(__('Choix des éléments menu','wp-hal'));?></th>
1284 + <?php $option_choix = get_option('option_choix'); ?>
1285 + <td><input type="checkbox" name="option_choix[1]" id="Contact" value="contact" <?php echo esc_attr((isset($option_choix[1]) && $option_choix[1] == "contact")?'checked':''); ?>><label for="Contact"><?php echo esc_html(__('Contact','wp-hal'));?></label><br/>
1286 + <input type="checkbox" name="option_choix[2]" id="Disciplines" value="disciplines" <?php echo esc_attr((isset($option_choix[2]) && $option_choix[2] == "disciplines")?'checked':''); ?>><label for="Disciplines"><?php echo esc_html(__('Disciplines','wp-hal'));?></label><br/>
1287 + <input type="checkbox" name="option_choix[3]" id="Mots-clefs" value="mots-clefs" <?php echo esc_attr((isset($option_choix[3]) && $option_choix[3] == "mots-clefs")?'checked':''); ?>><label for="Mots-clefs"><?php echo esc_html(__('Mots-clefs','wp-hal'));?></label><br/>
1288 + <input type="checkbox" name="option_choix[4]" id="Auteurs" value="auteurs" <?php echo esc_attr((isset($option_choix[4]) && $option_choix[4] == "auteurs")?'checked':''); ?>><label for="Auteurs"><?php echo esc_html(__('Auteurs','wp-hal'));?></label><br/>
1289 + <input type="checkbox" name="option_choix[5]" id="Revues" value="revues" <?php echo esc_attr((isset($option_choix[5]) && $option_choix[5] == "revues")?'checked':''); ?>><label for="Revues"><?php echo esc_html(__('Revues','wp-hal'));?></label><br/>
1290 + <input type="checkbox" name="option_choix[6]" id="Annee" value="annee" <?php echo esc_attr((isset($option_choix[6]) && $option_choix[6] == "annee")?'checked':''); ?>><label for="Annee"><?php echo esc_html(__('Année de production','wp-hal'));?></label><br/>
1291 + <input type="checkbox" name="option_choix[7]" id="Institution" value="institution" <?php echo esc_attr((isset($option_choix[7]) && $option_choix[7] == "institution")?'checked':''); ?>><label for="Institution"><?php echo esc_html(__('Institutions','wp-hal'));?></label><br/>
1292 + <input type="checkbox" name="option_choix[8]" id="Laboratoire" value="laboratoire" <?php echo esc_attr((isset($option_choix[8]) && $option_choix[8] == "laboratoire")?'checked':''); ?>><label for="Laboratoire"><?php echo esc_html(__('Laboratoires','wp-hal'));?></label><br/>
1293 + <input type="checkbox" name="option_choix[9]" id="Departement" value="departement" <?php echo esc_attr((isset($option_choix[9]) && $option_choix[9] == "departement")?'checked':''); ?>><label for="Departement"><?php echo esc_html(__('Départements','wp-hal'));?></label><br/>
1294 + <input type="checkbox" name="option_choix[10]" id="Equipe" value="equipe" <?php echo esc_attr((isset($option_choix[10]) && $option_choix[10] == "equipe")?'checked':''); ?>><label for="Equipe"><?php echo esc_html(__('Équipes de recherche','wp-hal'));?></label>
964 1295 </td>
965 1296 </tr>
966 - <tr valign="top">
967 - <th scope="row" style="font-size: 18px;"><?php echo __('Contact :','wp-hal');?></th>
1297 + <tr style="vertical-align:top;">
1298 + <th scope="row" style="font-size: 18px;"><?php echo esc_html(__('Contact :','wp-hal'));?></th>
968 1299 </tr>
969 - <tr valign="top">
970 - <th scope="row"><?php echo __('Email','wp-hal');?></th>
971 - <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>
1300 + <tr>
1301 + <th scope="row"><?php echo esc_html(__("Afficher les informations d'un chercheur ayant un IdHal ?",'wp-hal'));?></th>
1302 + <td><input type="radio" name="option_infocontact" id="wphal-yes" value="yes" <?php echo esc_attr((get_option('option_infocontact') == "yes")?'checked':''); ?>><label for="wphal-yes"><?php echo esc_html(__("Oui",'wp-hal'))?></label><br>
1303 + <input type="radio" name="option_infocontact" id="wphal-no" value="no" <?php echo esc_attr((get_option('option_infocontact') == "no")?'checked':''); ?>><label for="wphal-no"><?php echo esc_html(__("Non",'wp-hal'))?></label><br>
1304 + </td>
972 1305 </tr>
973 - <tr valign="top">
974 - <th scope="row"><?php echo __('Téléphone','wp-hal');?></th>
975 - <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>
1306 + <tr>
1307 + <th scope="row"><label for="option_cache_timeout"><?php echo esc_html(__('Expiration cache (minutes)','wp-hal'));?></label></th>
1308 + <td><input type="number" min="1440" style="width:300px;" placeholder="Default(1 day) : 1440" name="option_cache_timeout" id="option_cache_timeout" value="<?php echo esc_js(get_option('option_cache_timeout')); ?>"/><img alt="cache" src="<?php echo esc_url(plugin_dir_url( __FILE__ ).'img/clock.svg'); ?>" style="vertical-align:middle; width:32px; margin-left:2px; margin-right:2px;"/></td>
976 1309 </tr>
977 1310 <tr>
978 - <th>Facebook</th>
979 - <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>
1311 + <th scope="row"><label for="option_erase_cache"><?php echo esc_html(__('Reinitialiser le cache','wp-hal'));?></label></th>
1312 + <td><input type="checkbox" name="option_erase_cache" id="option_erase_cache" value="1"/><img alt="option_erase_cache" src="<?php echo esc_url(plugin_dir_url( __FILE__ )."img/groom.svg"); ?>" style="vertical-align:middle; width:32px; margin-left:2px; margin-right:2px;"/></td>
980 1313 </tr>
981 1314 <tr>
982 - <th>Twitter</th>
983 - <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>
1315 + <th scope="row"><label for="option_email"><?php echo esc_html(__('Email','wp-hal'));?></label></th>
1316 + <td><input type="text" style="width:300px;" placeholder="Exemple : hi@mail.com" name="option_email" id="option_email" value="<?php echo esc_js(get_option('option_email')); ?>"/><img alt="email" src="<?php echo esc_url(plugin_dir_url( __FILE__ )."img/mail.svg"); ?>" style="vertical-align:middle; width:32px; margin-left:2px; margin-right:2px;"/></td>
984 1317 </tr>
985 1318 <tr>
986 - <th>Google +</th>
987 - <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>
1319 + <th scope="row"><label for="option_tel"><?php echo esc_html(__('Téléphone','wp-hal'));?></label></th>
1320 + <td><input type="text" style="width:300px;" placeholder="Exemple : 06-01-02-03-04" name="option_tel" id="option_tel" value="<?php echo esc_js(get_option('option_tel'));?>"/><img alt="phone" src="<?php echo esc_url(plugin_dir_url( __FILE__ )."img/phone.svg"); ?>" style="vertical-align:middle; width:32px; margin-left:2px; margin-right:2px;"/></td>
988 1321 </tr>
989 1322 <tr>
990 - <th>LinkedIn</th>
991 - <td>http://sa.linkedin.com/pub/<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>
1323 + <th><label for="option_social0">Facebook (http://www.facebook.com/)</label></th>
1324 + <td><input type="text" style="width:300px;" placeholder="Exemple : fa.book" name="option_social0" id="option_social0" value="<?php echo esc_js(get_option('option_social0')); ?>"/><img alt="facebook" src="<?php echo esc_url(plugin_dir_url( __FILE__ )."img/facebook.svg"); ?>" style="vertical-align:middle; width:32px; margin-left:2px; margin-right:2px;"/></td>
992 1325 </tr>
1326 + <tr>
1327 + <th><label for="option_social1">Twitter (http://www.twitter.com/)</label></th>
1328 + <td><input type="text" style="width:300px;" placeholder="Exemple : tweet_heure" name="option_social1" id="option_social1" value="<?php echo esc_js(get_option('option_social1')); ?>"/><img alt="twitter" src="<?php echo esc_url(plugin_dir_url( __FILE__ )."img/twitter.svg"); ?>" style="vertical-align:middle; width:32px; margin-left:2px; margin-right:2px;"/></td>
1329 + </tr>
1330 + <tr>
1331 + <th><label for="option_social2">Google + (https://plus.google.com/u/0/+)</label></th>
1332 + <td><input type="text" style="width:300px;" placeholder="Exemple : goo.plus" name="option_social2" id="option_social2" value="<?php echo esc_js(get_option('option_social2')); ?>"/><img alt="google" src="<?php echo esc_url(plugin_dir_url( __FILE__ )."img/google-plus.svg"); ?>" style="vertical-align:middle; width:32px; margin-left:2px; margin-right:2px;"/></td>
1333 + </tr>
1334 + <tr>
1335 + <th><label for="option_social3">LinkedIn (https://www.linkedin.com/in/)</label></th>
1336 + <td><input type="text" style="width:300px;" placeholder="Exemple : link.dine" name="option_social3" id="option_social3" value="<?php echo esc_js(get_option('option_social3')); ?>"/><img alt="linkedin" src="<?php echo esc_url(plugin_dir_url( __FILE__ )."img/linkedin.svg"); ?>" style="vertical-align:middle; width:32px; margin-left:2px; margin-right:2px;"/></td>
1337 + </tr>
993 1338 </table>
994 1339 <?php
995 - update_option('option_idhal', str_replace(',',' OR ',get_option('option_idhal')));
996 - submit_button(__('Enregistrer','wp-hal'), 'primary large', 'submit', true); ?>
1340 + submit_button(__('Enregistrer','wp-hal'), 'primary large', 'submit', true); ?>
997 1341 </div>
998 1342 <div id="postbox-container-1" class="postbox-container">
999 1343
1000 1344 </div>
@@ -1011,14 +1355,15 @@
1011 1355
1012 1356 /**
1013 1357 * Reset les données Hal
1014 1358 */
1015 -function reset_option() {
1359 +function wphal_reset_option() {
1016 1360 delete_option('option_choix');
1017 1361 delete_option('option_type');
1018 1362 delete_option('option_groupe');
1019 1363 delete_option('option_idhal');
1020 1364 delete_option('option_lang');
1365 + delete_option('option_infocontact');
1021 1366 delete_option('option_email');
1022 1367 delete_option('option_tel');
1023 1368 delete_option('option_social0');
1024 1369 delete_option('option_social1');
@@ -1023,5 +1368,9 @@
1023 1368 delete_option('option_social0');
1024 1369 delete_option('option_social1');
1025 1370 delete_option('option_social2');
1026 1371 delete_option('option_social3');
1372 + delete_option('option_cache_timeout');
1373 + delete_option('option_erase_cache');
1027 1374 }
1375 +
1376 +?>