1 | <?php |
---|
2 | |
---|
3 | // Sécurité |
---|
4 | if (!defined("_ECRIRE_INC_VERSION")) return; |
---|
5 | |
---|
6 | function saisies_header_prive($flux){ |
---|
7 | $js = find_in_path('javascript/saisies.js'); |
---|
8 | $flux .= "\n<script type='text/javascript' src='$js'></script>\n"; |
---|
9 | $css = generer_url_public('saisies.css'); |
---|
10 | $flux .= "\n<link rel='stylesheet' href='$css' type='text/css' media='all' />\n"; |
---|
11 | $css_constructeur = find_in_path('css/formulaires_constructeur.css'); |
---|
12 | $flux .= "\n<link rel='stylesheet' href='$css_constructeur' type='text/css' />\n"; |
---|
13 | return $flux; |
---|
14 | } |
---|
15 | |
---|
16 | function saisies_affichage_final($flux){ |
---|
17 | if (($p = strpos($flux,"<!--!inserer_saisie_editer-->"))!==false){ |
---|
18 | // On insère la CSS devant le premier <link> trouvé |
---|
19 | if (!$pi = strpos($flux, "<link") AND !$pi=strpos($flux, '</head')) |
---|
20 | $pi = $p; // si pas de <link inserer comme un goret entre 2 <li> de saisies |
---|
21 | $css = generer_url_public('saisies.css'); |
---|
22 | $ins_css = "\n<link rel='stylesheet' href='$css' type='text/css' media='all' />\n"; |
---|
23 | |
---|
24 | if (strpos($flux,"saisie_date")!==false){//si on a une saisie de type date, on va charger les css de jquery_ui |
---|
25 | include_spip("jqueryui_pipelines"); |
---|
26 | if (function_exists("jqueryui_dependances")){ |
---|
27 | $ui_plugins = jqueryui_dependances(array("jquery.ui.datepicker")); |
---|
28 | |
---|
29 | array_push($ui_plugins,"jquery.ui.theme"); |
---|
30 | foreach ($ui_plugins as $ui_plug){ |
---|
31 | $ui_plug_css = find_in_path("css/$ui_plug.css"); |
---|
32 | if (strpos($flux,"css/$ui_plug.css")===false){// si pas déjà chargé |
---|
33 | $ins_css .= "\n<link rel='stylesheet' href='$ui_plug_css' type='text/css' media='all' />\n"; |
---|
34 | } |
---|
35 | } |
---|
36 | } |
---|
37 | } |
---|
38 | |
---|
39 | $flux = substr_replace($flux, $ins_css, $pi, 0); |
---|
40 | // On insère le JS à la fin du <head> |
---|
41 | $pos_head = strpos($flux, '</head'); |
---|
42 | $js = find_in_path('javascript/saisies.js'); |
---|
43 | $ins_js = "\n<script type='text/javascript' src='$js'></script>\n"; |
---|
44 | $flux = substr_replace($flux, $ins_js, $pos_head, 0); |
---|
45 | } |
---|
46 | return $flux; |
---|
47 | } |
---|
48 | |
---|
49 | // Déclaration des pipelines |
---|
50 | function saisies_saisies_autonomes($flux) { return $flux; } |
---|
51 | function saisies_formulaire_saisies($flux) { return $flux; } |
---|
52 | |
---|
53 | // Déclarer automatiquement les champs d'un CVT si on les trouve dans un tableau de saisies et s'ils ne sont pas déjà déclarés |
---|
54 | function saisies_formulaire_charger($flux){ |
---|
55 | // Si le flux data est inexistant, on quitte : Le CVT d'origine a décidé de ne pas continuer |
---|
56 | if (!is_array($flux['data'])){ |
---|
57 | return $flux; |
---|
58 | } |
---|
59 | |
---|
60 | // Il faut que la fonction existe et qu'elle retourne bien un tableau |
---|
61 | if (include_spip('inc/saisies') |
---|
62 | and $saisies = saisies_chercher_formulaire($flux['args']['form'], $flux['args']['args']) |
---|
63 | ){ |
---|
64 | // On ajoute au contexte les champs à déclarer |
---|
65 | $contexte = saisies_lister_valeurs_defaut($saisies); |
---|
66 | $flux['data'] = array_merge($contexte, $flux['data']); |
---|
67 | |
---|
68 | // On ajoute le tableau complet des saisies |
---|
69 | $flux['data']['_saisies'] = $saisies; |
---|
70 | } |
---|
71 | return $flux; |
---|
72 | } |
---|
73 | |
---|
74 | // Aiguiller CVT vers un squelette propre à Saisies lorsqu'on a déclaré des saisies et qu'il n'y a pas déjà un HTML |
---|
75 | function saisies_styliser($flux){ |
---|
76 | // Si on cherche un squelette de formulaire |
---|
77 | if (strncmp($flux['args']['fond'],'formulaires/',12)==0 |
---|
78 | // Et qu'il y a des saisies dans le contexte |
---|
79 | and isset($flux['args']['contexte']['_saisies']) |
---|
80 | // Et que le fichier choisi est vide ou n'existe pas |
---|
81 | and include_spip('inc/flock') |
---|
82 | and $ext = $flux['args']['ext'] |
---|
83 | and lire_fichier($flux['data'].'.'.$ext, $contenu_squelette) |
---|
84 | and !trim($contenu_squelette) |
---|
85 | ){ |
---|
86 | $flux['data'] = preg_replace("/\.$ext$/", '', find_in_path("formulaires/inc-saisies-cvt.$ext")); |
---|
87 | } |
---|
88 | |
---|
89 | return $flux; |
---|
90 | } |
---|
91 | |
---|
92 | // Ajouter les vérifications déclarées dans la fonction "saisies" du CVT |
---|
93 | function saisies_formulaire_verifier($flux){ |
---|
94 | // Il faut que la fonction existe et qu'elle retourne bien un tableau |
---|
95 | if (include_spip('inc/saisies') and $saisies = saisies_chercher_formulaire($flux['args']['form'], $flux['args']['args'])){ |
---|
96 | // On ajoute au contexte les champs à déclarer |
---|
97 | $erreurs = saisies_verifier($saisies); |
---|
98 | if ($erreurs and !isset($erreurs['message_erreur'])) |
---|
99 | $erreurs['message_erreur'] = _T('saisies:erreur_generique'); |
---|
100 | $flux['data'] = array_merge($erreurs, $flux['data']); |
---|
101 | } |
---|
102 | |
---|
103 | |
---|
104 | return $flux; |
---|
105 | } |
---|
106 | |
---|
107 | ?> |
---|