Browse Source

- Utiliser la configuration dans les pipelines et le JS ;

- Recharger après AJAX ;
- Note sur les identifiants uniques.
pull/1/head
Matthieu Marcillaud 2 years ago
parent
commit
13dda54df3
  1. 1
      Readme.md
  2. 22
      javascript/spip_select2.js
  3. 2
      lang/select2_fr.php
  4. 9
      select2_pipelines.php

1
Readme.md

@ -9,6 +9,7 @@ Select2 est actif dans l’espace privé pour tous les select ayant la classe CS
La configuration (Menu : Squelettes > Select2) permet de compléter les sélecteurs utilisés.
Il est possible d’activer Select2 sur l’espace public depuis cette configuration.
**Important:** L’identifiant (l’attribut `id`) de la balise `select` doit être unique sur la page ; Select2 ne peut s’activer qu’une fois par identifiant (le dernier appelé).
## Compléter la configuration par défaut

22
javascript/spip_select2.js

@ -0,0 +1,22 @@
;jQuery(function($){
spip_select2 = function() {
jQuery('select.select2').select2();
if (typeof select2 !== 'undefined') {
if ((typeof select2.selector !== 'undefined') && !!select2.selector) {
jQuery(select2.selector).select2();
}
}
jQuery('select.select2[data-sort-alpha=true]').select2({
/*'sorter': data => data.sort((a, b) => a.text.localeCompare(b.text))*/
sorter: function (data) {
return data.sort(function (a, b) {
return a.text.localeCompare(b.text);
})
}
});
}
spip_select2();
onAjaxLoad(spip_select2);
});

2
lang/select2_fr.php

@ -13,7 +13,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
// C
'champ_active_label' => 'Activer "Select2" dans le site public',
'champ_selecteur_label' => 'Sélecteur',
'champ_selecteur_explication' => 'Indiquez la cible des éléments qui déclencheront Select2. (Expression CSS ou étendue jQuery)',
'champ_selecteur_explication' => 'Indiquez la cible des éléments qui déclencheront Select2, en plus de la classe CSS <code>.select2</code>. (Expression CSS ou étendue jQuery)',
// T
'titre_page_configurer_select2' => 'Configurer Select2',

9
select2_pipelines.php

@ -49,6 +49,10 @@ function select2_jquery_plugins($flux) {
*/
function select2_header_prive($flux) {
include_spip('inc/config');
$flux .= '<script type="text/javascript">/* <![CDATA[ */
var select2 = select2 || {}
select2.selector = "' . trim(lire_config('select2/selecteur_commun')) . '";
/* ]]> */</script>'."\n";
return $flux;
}
@ -95,7 +99,10 @@ function select2_insert_head($flux) {
include_spip('inc/config');
$config = lire_config('select2', array());
if (isset($config['active']) and $config['active']=='oui') {
$flux .= '<script type="text/javascript">/* <![CDATA[ */
var select2 = select2 || {}
var select2.selector = "' . trim(isset($config['selecteur_commun']) ? $config['selecteur_commun'] : '') . '";
/* ]]> */</script>'."\n";
}
return $flux;
}
Loading…
Cancel
Save