Un formulaire pour indiquer où charger le script de chart.js

master
Matthieu Marcillaud 3 years ago
parent 33c95f6f9b
commit 35f0a4070e

@ -7,25 +7,44 @@
if (!defined("_ECRIRE_INC_VERSION")) return;
/**
* Inserer la CSS de chartjs
* Inserer la CSS de chartjs dans le privé
*
* @param $flux
* @return mixed
*/
function chartjs_insert_head_css($flux){
function chartjs_header_prive_css($flux){
return chartjs_insert_head_css($flux, 'prive');
}
function chartjs_header_prive($flux){
return chartjs_insert_head($flux, 'prive');
}
/**
* Inserer la CSS de chartjs dans le public
*
* @param $flux
* @return mixed
*/
function chartjs_insert_head_css($flux, $espace = 'public') {
$flux .= '<link rel="stylesheet" type="text/css" href="'.find_in_path("css/chartjs.css").'" />';
return $flux;
}
/**
* Inserer le javascript de chartjs
*
* @param $flux
* @return mixed
*/
function chartjs_insert_head($flux){
# Todo: moment.js est nécessaire pour gérer correctement les graphiques avec des dates.
#$flux .= "<script type='text/javascript' src='" . find_in_path('lib/moment/moment-with-locales.min.js') . "'></script>";
$flux .= "<script type='text/javascript' src='" . find_in_path('lib/chartjs/Chart.js') . "'></script>";
function chartjs_insert_head($flux, $espace = 'public') {
include_spip('inc/config');
$charger = lire_config('chartjs/charger_scripts');
if ($charger and in_array($espace, $charger)) {
# Todo: moment.js est nécessaire pour gérer correctement les graphiques avec des dates.
#$flux .= "<script type='text/javascript' src='" . find_in_path('lib/moment/moment-with-locales.min.js') . "'></script>";
$flux .= "<script type='text/javascript' src='" . find_in_path('lib/chartjs/Chart.js') . "'></script>";
}
return $flux;
}

@ -0,0 +1,36 @@
<div class="formulaire_spip formulaire_configurer formulaire_#FORM">
<h3 class="titrem"><:chartjs:titre_formulaire_configurer_chartjs:></h3>
[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
<form method="post" action="#ENV{action}">
<div>
#ACTION_FORMULAIRE
<div class="editer-groupe">
#SET{name,charger_scripts}#SET{obli,''}#SET{defaut,0}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
<div class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
<label><:chartjs:champ_charger_scripts_label:></label>
<p class="explication"><:chartjs:champ_charger_scripts_explication:></p>[
<span class='erreur_message'>(#GET{erreurs})</span>
]
<div class="choix">
#SET{val,public}
<input type="checkbox" name="#GET{name}\[\]" class="checkbox" id="#GET{name}_#GET{val}" value="#GET{val}" [(#GET{val}|in_any{#ENV{#GET{name}}}|oui)checked="checked"] />
<label for="#GET{name}_#GET{val}"><:chartjs:champ_charger_scripts_public_case:></label>
</div>
<div class="choix">
#SET{val,prive}
<input type="checkbox" name="#GET{name}\[\]" class="checkbox" id="#GET{name}_#GET{val}" value="#GET{val}" [(#GET{val}|in_any{#ENV{#GET{name}}}|oui)checked="checked"] />
<label for="#GET{name}_#GET{val}"><:chartjs:champ_charger_scripts_prive_case:></label>
</div>
</div>
</div>
<input type="hidden" name="_meta_casier" value="chartjs" />
<p class="boutons"><span class="image_loading">&nbsp;</span><input type="submit" class="submit" value="<:bouton_enregistrer:>" /></p>
</div>
</form>
</div>

@ -5,19 +5,29 @@ if (!defined('_ECRIRE_INC_VERSION')) return;
$GLOBALS[$GLOBALS['idx_lang']] = array(
// D
'demo_titre' => 'Demonstration du plugin Chart.js',
'demo_pie' => 'Camembert',
'demo_doughnut' => 'Beignet',
'demo_polaire' => 'Polaire',
'demo_bar' => 'Barre',
'demo_line' => 'Courbe',
'demo_radar' => 'Radar',
'demo_bubble' => 'Bulles',
'demo_type' => 'Type: @type@',
'demo_spip_data' => 'Graphes dynamiques avec boucle SPIP',
'demo_spip_bigdata' => 'Graphes dynamiques avec boucle SPIP DATAS',
'demo_spip_legend' => 'Cours du Yen en Eur des 30 derniers jours',
'demo_titre_types' => 'Types de graphiques',
'demo_titre_exemples_avances' => 'Exemples avancés',
// C
'champ_charger_scripts_label' => 'Chargement des scripts de Chart.js',
'champ_charger_scripts_explication' => 'Charger systématiquement les scripts Chart.js ? Par défaut, ils sont chargés uniquement lors de lutilisation du modèle <code>chart</code>. Pour des usages plus spécifiques, vous pouvez les charger systématiquement sur toutes les pages.',
'champ_charger_scripts_public_case' => 'Charger Chart.js systématiquement dans lespace public',
'champ_charger_scripts_prive_case' => 'Charger Chart.js systématiquement dans lespace privé',
// D
'demo_titre' => 'Demonstration du plugin Chart.js',
'demo_pie' => 'Camembert',
'demo_doughnut' => 'Beignet',
'demo_polaire' => 'Polaire',
'demo_bar' => 'Barre',
'demo_line' => 'Courbe',
'demo_radar' => 'Radar',
'demo_bubble' => 'Bulles',
'demo_type' => 'Type: @type@',
'demo_spip_data' => 'Graphes dynamiques avec boucle SPIP',
'demo_spip_bigdata' => 'Graphes dynamiques avec boucle SPIP DATAS',
'demo_spip_legend' => 'Cours du Yen en Eur des 30 derniers jours',
'demo_titre_types' => 'Types de graphiques',
'demo_titre_exemples_avances' => 'Exemples avancés',
// T
'titre_formulaire_configurer_chartjs' => 'Configuration',
'titre_page_configurer_chartjs' => 'Configurer Chart.js',
);

@ -14,6 +14,8 @@
<necessite nom="saisies" compatibilite="[3.23.2;]" />
<pipeline nom="insert_head_css" inclure="chartjs_pipelines.php" />
<pipeline nom="insert_head" inclure="chartjs_pipelines.php" />
</paquet>
<pipeline nom="insert_head_css" inclure="chartjs_pipelines.php" />
<pipeline nom="header_prive" inclure="chartjs_pipelines.php" />
<pipeline nom="header_prive_css" inclure="chartjs_pipelines.php" />
</paquet>

@ -0,0 +1,7 @@
[(#AUTORISER{configurer,_chartjs}|sinon_interdire_acces)]
<h1 class="grostitre"><:chartjs:titre_page_configurer_chartjs:></h1>
<div class="ajax">
#FORMULAIRE_CONFIGURER_CHARTJS
</div>
Loading…
Cancel
Save