@@ -9,13 +9,13 @@ |
||
| 9 | 9 | <h1>Index des icones de <a href='https://www.spip.net'>Spip</a></h1> |
| 10 | 10 | <table> |
| 11 | 11 | <?php |
| 12 | - $myDir = opendir('.'); |
|
| 13 | - while ($file = readdir($myDir)) { |
|
| 14 | - if (preg_match(',\.(png|gif)$,i', $file)) { |
|
| 15 | - echo " <tr><td>$file</td><td><img src='$file' alt='$file' /></td></tr>\n"; |
|
| 16 | - } |
|
| 17 | - } |
|
| 18 | - ?> |
|
| 12 | + $myDir = opendir('.'); |
|
| 13 | + while ($file = readdir($myDir)) { |
|
| 14 | + if (preg_match(',\.(png|gif)$,i', $file)) { |
|
| 15 | + echo " <tr><td>$file</td><td><img src='$file' alt='$file' /></td></tr>\n"; |
|
| 16 | + } |
|
| 17 | + } |
|
| 18 | + ?> |
|
| 19 | 19 | </table> |
| 20 | 20 | </center> |
| 21 | 21 | </body> |
@@ -11,7 +11,7 @@ discard block |
||
| 11 | 11 | \***************************************************************************/ |
| 12 | 12 | |
| 13 | 13 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 14 | - return; |
|
| 14 | + return; |
|
| 15 | 15 | } |
| 16 | 16 | |
| 17 | 17 | |
@@ -22,19 +22,19 @@ discard block |
||
| 22 | 22 | |
| 23 | 23 | // https://code.spip.net/@req_sqlite3_dist |
| 24 | 24 | function req_sqlite3_dist($addr, $port, $login, $pass, $db = '', $prefixe = '') { |
| 25 | - return req_sqlite_dist($addr, $port, $login, $pass, $db, $prefixe, $sqlite_version = 3); |
|
| 25 | + return req_sqlite_dist($addr, $port, $login, $pass, $db, $prefixe, $sqlite_version = 3); |
|
| 26 | 26 | } |
| 27 | 27 | |
| 28 | 28 | |
| 29 | 29 | // https://code.spip.net/@spip_sqlite3_constantes |
| 30 | 30 | function spip_sqlite3_constantes() { |
| 31 | - if (!defined('SPIP_SQLITE3_ASSOC')) { |
|
| 32 | - define('SPIP_SQLITE3_ASSOC', PDO::FETCH_ASSOC); |
|
| 33 | - define('SPIP_SQLITE3_NUM', PDO::FETCH_NUM); |
|
| 34 | - define('SPIP_SQLITE3_BOTH', PDO::FETCH_BOTH); |
|
| 35 | - } |
|
| 31 | + if (!defined('SPIP_SQLITE3_ASSOC')) { |
|
| 32 | + define('SPIP_SQLITE3_ASSOC', PDO::FETCH_ASSOC); |
|
| 33 | + define('SPIP_SQLITE3_NUM', PDO::FETCH_NUM); |
|
| 34 | + define('SPIP_SQLITE3_BOTH', PDO::FETCH_BOTH); |
|
| 35 | + } |
|
| 36 | 36 | } |
| 37 | 37 | |
| 38 | 38 | function spip_versions_sqlite3() { |
| 39 | - return _sqlite_charger_version(3) ? 3 : false; |
|
| 39 | + return _sqlite_charger_version(3) ? 3 : false; |
|
| 40 | 40 | } |
@@ -16,7 +16,7 @@ discard block |
||
| 16 | 16 | * @package SPIP\Core\Affichage |
| 17 | 17 | **/ |
| 18 | 18 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 19 | - return; |
|
| 19 | + return; |
|
| 20 | 20 | } |
| 21 | 21 | |
| 22 | 22 | /** |
@@ -45,7 +45,7 @@ discard block |
||
| 45 | 45 | * @return string Code HTML |
| 46 | 46 | */ |
| 47 | 47 | function debut_gauche() { |
| 48 | - return "<div id = 'conteneur' class = ''>\n<div id = 'navigation' class = 'lat' role = 'contentinfo'>\n"; |
|
| 48 | + return "<div id = 'conteneur' class = ''>\n<div id = 'navigation' class = 'lat' role = 'contentinfo'>\n"; |
|
| 49 | 49 | } |
| 50 | 50 | |
| 51 | 51 | /** |
@@ -61,13 +61,13 @@ discard block |
||
| 61 | 61 | * @return string Code HTML |
| 62 | 62 | */ |
| 63 | 63 | function creer_colonne_droite() { |
| 64 | - static $deja_colonne_droite; |
|
| 65 | - if ($deja_colonne_droite) { |
|
| 66 | - return ''; |
|
| 67 | - } |
|
| 68 | - $deja_colonne_droite = true; |
|
| 64 | + static $deja_colonne_droite; |
|
| 65 | + if ($deja_colonne_droite) { |
|
| 66 | + return ''; |
|
| 67 | + } |
|
| 68 | + $deja_colonne_droite = true; |
|
| 69 | 69 | |
| 70 | - return "\n</div><div id='extra' class='lat' role='complementary'>"; |
|
| 70 | + return "\n</div><div id='extra' class='lat' role='complementary'>"; |
|
| 71 | 71 | } |
| 72 | 72 | |
| 73 | 73 | /** |
@@ -76,10 +76,10 @@ discard block |
||
| 76 | 76 | * @return string Code HTML |
| 77 | 77 | */ |
| 78 | 78 | function debut_droite() { |
| 79 | - return liste_objets_bloques(_request('exec')) |
|
| 80 | - . creer_colonne_droite() |
|
| 81 | - . "</div>" |
|
| 82 | - . "\n<div id='contenu'>"; |
|
| 79 | + return liste_objets_bloques(_request('exec')) |
|
| 80 | + . creer_colonne_droite() |
|
| 81 | + . "</div>" |
|
| 82 | + . "\n<div id='contenu'>"; |
|
| 83 | 83 | } |
| 84 | 84 | |
| 85 | 85 | /** |
@@ -101,30 +101,30 @@ discard block |
||
| 101 | 101 | * Code HTML |
| 102 | 102 | **/ |
| 103 | 103 | function liste_objets_bloques($exec, $contexte = array(), $auteur = null) { |
| 104 | - $res = ''; |
|
| 105 | - if ($GLOBALS['meta']["articles_modif"] != "non") { |
|
| 106 | - include_spip('inc/drapeau_edition'); |
|
| 107 | - if (is_null($auteur)) { |
|
| 108 | - $auteur = $GLOBALS['visiteur_session']; |
|
| 109 | - } |
|
| 110 | - if ($en_cours = trouver_objet_exec($exec) |
|
| 111 | - and $en_cours['edition'] |
|
| 112 | - and $type = $en_cours['type'] |
|
| 113 | - and ((isset($contexte[$en_cours['id_table_objet']]) and $id = $contexte[$en_cours['id_table_objet']]) |
|
| 114 | - or $id = _request($en_cours['id_table_objet'])) |
|
| 115 | - ) { |
|
| 116 | - // marquer le fait que l'objet est ouvert en edition par toto |
|
| 117 | - // a telle date ; une alerte sera donnee aux autres redacteurs |
|
| 118 | - signale_edition($id, $auteur, $type); |
|
| 119 | - } |
|
| 120 | - |
|
| 121 | - $objets_ouverts = liste_drapeau_edition($auteur['id_auteur']); |
|
| 122 | - if (count($objets_ouverts)) { |
|
| 123 | - $res .= recuperer_fond('prive/objets/liste/objets-en-edition', array(), array('ajax' => true)); |
|
| 124 | - } |
|
| 125 | - } |
|
| 126 | - |
|
| 127 | - return $res; |
|
| 104 | + $res = ''; |
|
| 105 | + if ($GLOBALS['meta']["articles_modif"] != "non") { |
|
| 106 | + include_spip('inc/drapeau_edition'); |
|
| 107 | + if (is_null($auteur)) { |
|
| 108 | + $auteur = $GLOBALS['visiteur_session']; |
|
| 109 | + } |
|
| 110 | + if ($en_cours = trouver_objet_exec($exec) |
|
| 111 | + and $en_cours['edition'] |
|
| 112 | + and $type = $en_cours['type'] |
|
| 113 | + and ((isset($contexte[$en_cours['id_table_objet']]) and $id = $contexte[$en_cours['id_table_objet']]) |
|
| 114 | + or $id = _request($en_cours['id_table_objet'])) |
|
| 115 | + ) { |
|
| 116 | + // marquer le fait que l'objet est ouvert en edition par toto |
|
| 117 | + // a telle date ; une alerte sera donnee aux autres redacteurs |
|
| 118 | + signale_edition($id, $auteur, $type); |
|
| 119 | + } |
|
| 120 | + |
|
| 121 | + $objets_ouverts = liste_drapeau_edition($auteur['id_auteur']); |
|
| 122 | + if (count($objets_ouverts)) { |
|
| 123 | + $res .= recuperer_fond('prive/objets/liste/objets-en-edition', array(), array('ajax' => true)); |
|
| 124 | + } |
|
| 125 | + } |
|
| 126 | + |
|
| 127 | + return $res; |
|
| 128 | 128 | } |
| 129 | 129 | |
| 130 | 130 | |
@@ -138,20 +138,20 @@ discard block |
||
| 138 | 138 | * @return string Code HTML |
| 139 | 139 | **/ |
| 140 | 140 | function fin_page() { |
| 141 | - include_spip('inc/pipelines'); |
|
| 142 | - // avec &var_profile=1 on a le tableau de mesures SQL |
|
| 143 | - $debug = ((_request('exec') !== 'valider_xml') |
|
| 144 | - and ((_request('var_mode') == 'debug') |
|
| 145 | - or (isset($GLOBALS['tableau_des_temps']) and $GLOBALS['tableau_des_temps']) |
|
| 146 | - and isset($_COOKIE['spip_admin']))); |
|
| 147 | - $t = '</div><div id="pied"><div class="largeur">' |
|
| 148 | - . recuperer_fond('prive/squelettes/inclure/pied') |
|
| 149 | - . "</div>" |
|
| 150 | - . "</div></div>" // cf. div#page et div.largeur ouvertes dans conmmencer_page() |
|
| 151 | - . ($debug ? erreur_squelette() : '') |
|
| 152 | - . "</body></html>\n"; |
|
| 153 | - |
|
| 154 | - return f_queue($t); |
|
| 141 | + include_spip('inc/pipelines'); |
|
| 142 | + // avec &var_profile=1 on a le tableau de mesures SQL |
|
| 143 | + $debug = ((_request('exec') !== 'valider_xml') |
|
| 144 | + and ((_request('var_mode') == 'debug') |
|
| 145 | + or (isset($GLOBALS['tableau_des_temps']) and $GLOBALS['tableau_des_temps']) |
|
| 146 | + and isset($_COOKIE['spip_admin']))); |
|
| 147 | + $t = '</div><div id="pied"><div class="largeur">' |
|
| 148 | + . recuperer_fond('prive/squelettes/inclure/pied') |
|
| 149 | + . "</div>" |
|
| 150 | + . "</div></div>" // cf. div#page et div.largeur ouvertes dans conmmencer_page() |
|
| 151 | + . ($debug ? erreur_squelette() : '') |
|
| 152 | + . "</body></html>\n"; |
|
| 153 | + |
|
| 154 | + return f_queue($t); |
|
| 155 | 155 | } |
| 156 | 156 | |
| 157 | 157 | /** |
@@ -166,20 +166,20 @@ discard block |
||
| 166 | 166 | * @return string Code HTML |
| 167 | 167 | **/ |
| 168 | 168 | function html_tests_js() { |
| 169 | - if (_SPIP_AJAX and !defined('_TESTER_NOSCRIPT')) { |
|
| 170 | - // pour le pied de page (deja defini si on est validation XML) |
|
| 171 | - define('_TESTER_NOSCRIPT', |
|
| 172 | - "<noscript>\n<div style='display:none;'><img src='" |
|
| 173 | - . generer_url_ecrire('test_ajax', 'js=-1') |
|
| 174 | - . "' width='1' height='1' alt='' /></div></noscript>\n"); |
|
| 175 | - } |
|
| 176 | - |
|
| 177 | - $rejouer = ''; |
|
| 178 | - if (defined('_SESSION_REJOUER')) { |
|
| 179 | - $rejouer = (_SESSION_REJOUER === true) ? rejouer_session() : _SESSION_REJOUER; |
|
| 180 | - } |
|
| 181 | - |
|
| 182 | - return $rejouer . (defined('_TESTER_NOSCRIPT') ? _TESTER_NOSCRIPT : ''); |
|
| 169 | + if (_SPIP_AJAX and !defined('_TESTER_NOSCRIPT')) { |
|
| 170 | + // pour le pied de page (deja defini si on est validation XML) |
|
| 171 | + define('_TESTER_NOSCRIPT', |
|
| 172 | + "<noscript>\n<div style='display:none;'><img src='" |
|
| 173 | + . generer_url_ecrire('test_ajax', 'js=-1') |
|
| 174 | + . "' width='1' height='1' alt='' /></div></noscript>\n"); |
|
| 175 | + } |
|
| 176 | + |
|
| 177 | + $rejouer = ''; |
|
| 178 | + if (defined('_SESSION_REJOUER')) { |
|
| 179 | + $rejouer = (_SESSION_REJOUER === true) ? rejouer_session() : _SESSION_REJOUER; |
|
| 180 | + } |
|
| 181 | + |
|
| 182 | + return $rejouer . (defined('_TESTER_NOSCRIPT') ? _TESTER_NOSCRIPT : ''); |
|
| 183 | 183 | } |
| 184 | 184 | |
| 185 | 185 | /** |
@@ -189,25 +189,25 @@ discard block |
||
| 189 | 189 | **/ |
| 190 | 190 | function info_maj_spip() { |
| 191 | 191 | |
| 192 | - $maj = isset($GLOBALS['meta']['info_maj_spip']) ? $GLOBALS['meta']['info_maj_spip'] : null; |
|
| 193 | - if (!$maj) { |
|
| 194 | - return ""; |
|
| 195 | - } |
|
| 192 | + $maj = isset($GLOBALS['meta']['info_maj_spip']) ? $GLOBALS['meta']['info_maj_spip'] : null; |
|
| 193 | + if (!$maj) { |
|
| 194 | + return ""; |
|
| 195 | + } |
|
| 196 | 196 | |
| 197 | - $maj = explode('|', $maj); |
|
| 198 | - // c'est une ancienne notif, on a fait la maj depuis ! |
|
| 199 | - if ($GLOBALS['spip_version_branche'] !== reset($maj)) { |
|
| 200 | - return ""; |
|
| 201 | - } |
|
| 197 | + $maj = explode('|', $maj); |
|
| 198 | + // c'est une ancienne notif, on a fait la maj depuis ! |
|
| 199 | + if ($GLOBALS['spip_version_branche'] !== reset($maj)) { |
|
| 200 | + return ""; |
|
| 201 | + } |
|
| 202 | 202 | |
| 203 | - if (!autoriser('webmestre')) { |
|
| 204 | - return ""; |
|
| 205 | - } |
|
| 203 | + if (!autoriser('webmestre')) { |
|
| 204 | + return ""; |
|
| 205 | + } |
|
| 206 | 206 | |
| 207 | - array_shift($maj); |
|
| 208 | - $maj = implode('|', $maj); |
|
| 207 | + array_shift($maj); |
|
| 208 | + $maj = implode('|', $maj); |
|
| 209 | 209 | |
| 210 | - return "$maj<br />"; |
|
| 210 | + return "$maj<br />"; |
|
| 211 | 211 | } |
| 212 | 212 | |
| 213 | 213 | /** |
@@ -218,43 +218,43 @@ discard block |
||
| 218 | 218 | **/ |
| 219 | 219 | function info_copyright() { |
| 220 | 220 | |
| 221 | - $version = $GLOBALS['spip_version_affichee']; |
|
| 222 | - |
|
| 223 | - // |
|
| 224 | - // Mention, le cas echeant, de la revision SVN courante |
|
| 225 | - // |
|
| 226 | - if ($vcs = version_vcs_courante(_DIR_RACINE, true)) { |
|
| 227 | - if ($vcs['vcs'] === 'GIT') { |
|
| 228 | - $url = 'https://git.spip.net/spip/spip/commit/' . $vcs['commit']; |
|
| 229 | - } elseif ($vcs['vcs'] === 'SVN') { |
|
| 230 | - $url = 'https://core.spip.net/projects/spip/repository/revisions/' . $vcs['commit']; |
|
| 231 | - } else { |
|
| 232 | - $url = ''; |
|
| 233 | - } |
|
| 234 | - // affichage "GIT [master: abcdef]" |
|
| 235 | - $commit = isset($vcs['commit_short']) ? $vcs['commit_short'] : $vcs['commit']; |
|
| 236 | - if ($url) { |
|
| 237 | - $commit = "<a href=\"$url\" target=\"_blank\" rel=\"noopener noreferrer\">$commit</a>"; |
|
| 238 | - } |
|
| 239 | - if ($vcs['branch']) { |
|
| 240 | - $commit = $vcs['branch'] . ': ' . $commit; |
|
| 241 | - } |
|
| 242 | - $version .= " {$vcs['vcs']} [$commit]"; |
|
| 243 | - } |
|
| 244 | - |
|
| 245 | - // et la version de l'ecran de securite |
|
| 246 | - $secu = defined('_ECRAN_SECURITE') |
|
| 247 | - ? "<br />" . _T('ecran_securite', array('version' => _ECRAN_SECURITE)) |
|
| 248 | - : ''; |
|
| 249 | - |
|
| 250 | - return _T('info_copyright', |
|
| 251 | - array( |
|
| 252 | - 'spip' => "<b>SPIP $version</b> ", |
|
| 253 | - 'lien_gpl' => |
|
| 254 | - "<a href='" . generer_url_ecrire("aide", |
|
| 255 | - "aide=licence&var_lang=" . $GLOBALS['spip_lang']) . "' class=\"aide popin\">" . _T('info_copyright_gpl') . "</a>" |
|
| 256 | - )) |
|
| 257 | - . $secu; |
|
| 221 | + $version = $GLOBALS['spip_version_affichee']; |
|
| 222 | + |
|
| 223 | + // |
|
| 224 | + // Mention, le cas echeant, de la revision SVN courante |
|
| 225 | + // |
|
| 226 | + if ($vcs = version_vcs_courante(_DIR_RACINE, true)) { |
|
| 227 | + if ($vcs['vcs'] === 'GIT') { |
|
| 228 | + $url = 'https://git.spip.net/spip/spip/commit/' . $vcs['commit']; |
|
| 229 | + } elseif ($vcs['vcs'] === 'SVN') { |
|
| 230 | + $url = 'https://core.spip.net/projects/spip/repository/revisions/' . $vcs['commit']; |
|
| 231 | + } else { |
|
| 232 | + $url = ''; |
|
| 233 | + } |
|
| 234 | + // affichage "GIT [master: abcdef]" |
|
| 235 | + $commit = isset($vcs['commit_short']) ? $vcs['commit_short'] : $vcs['commit']; |
|
| 236 | + if ($url) { |
|
| 237 | + $commit = "<a href=\"$url\" target=\"_blank\" rel=\"noopener noreferrer\">$commit</a>"; |
|
| 238 | + } |
|
| 239 | + if ($vcs['branch']) { |
|
| 240 | + $commit = $vcs['branch'] . ': ' . $commit; |
|
| 241 | + } |
|
| 242 | + $version .= " {$vcs['vcs']} [$commit]"; |
|
| 243 | + } |
|
| 244 | + |
|
| 245 | + // et la version de l'ecran de securite |
|
| 246 | + $secu = defined('_ECRAN_SECURITE') |
|
| 247 | + ? "<br />" . _T('ecran_securite', array('version' => _ECRAN_SECURITE)) |
|
| 248 | + : ''; |
|
| 249 | + |
|
| 250 | + return _T('info_copyright', |
|
| 251 | + array( |
|
| 252 | + 'spip' => "<b>SPIP $version</b> ", |
|
| 253 | + 'lien_gpl' => |
|
| 254 | + "<a href='" . generer_url_ecrire("aide", |
|
| 255 | + "aide=licence&var_lang=" . $GLOBALS['spip_lang']) . "' class=\"aide popin\">" . _T('info_copyright_gpl') . "</a>" |
|
| 256 | + )) |
|
| 257 | + . $secu; |
|
| 258 | 258 | |
| 259 | 259 | } |
| 260 | 260 | |
@@ -270,17 +270,17 @@ discard block |
||
| 270 | 270 | * @return string Code HTML |
| 271 | 271 | **/ |
| 272 | 272 | function formulaire_recherche($page, $complement = "") { |
| 273 | - $recherche = _request('recherche'); |
|
| 274 | - $recherche_aff = entites_html($recherche); |
|
| 275 | - if (!strlen($recherche)) { |
|
| 276 | - $recherche_aff = _T('info_rechercher'); |
|
| 277 | - $onfocus = " onfocus=\"this.value='';\""; |
|
| 278 | - } else { |
|
| 279 | - $onfocus = ''; |
|
| 280 | - } |
|
| 281 | - |
|
| 282 | - $form = '<input type="text" size="10" value="' . $recherche_aff . '" name="recherche" class="recherche" accesskey="r"' . $onfocus . ' />'; |
|
| 283 | - $form .= "<input type='image' src='" . chemin_image('rechercher-20.png') . "' name='submit' class='submit' alt='" . _T('info_rechercher') . "' />"; |
|
| 284 | - |
|
| 285 | - return "<div class='spip_recherche'>" . generer_form_ecrire($page, $form . $complement, " method='get'") . "</div>"; |
|
| 273 | + $recherche = _request('recherche'); |
|
| 274 | + $recherche_aff = entites_html($recherche); |
|
| 275 | + if (!strlen($recherche)) { |
|
| 276 | + $recherche_aff = _T('info_rechercher'); |
|
| 277 | + $onfocus = " onfocus=\"this.value='';\""; |
|
| 278 | + } else { |
|
| 279 | + $onfocus = ''; |
|
| 280 | + } |
|
| 281 | + |
|
| 282 | + $form = '<input type="text" size="10" value="' . $recherche_aff . '" name="recherche" class="recherche" accesskey="r"' . $onfocus . ' />'; |
|
| 283 | + $form .= "<input type='image' src='" . chemin_image('rechercher-20.png') . "' name='submit' class='submit' alt='" . _T('info_rechercher') . "' />"; |
|
| 284 | + |
|
| 285 | + return "<div class='spip_recherche'>" . generer_form_ecrire($page, $form . $complement, " method='get'") . "</div>"; |
|
| 286 | 286 | } |
@@ -179,7 +179,7 @@ discard block |
||
| 179 | 179 | $rejouer = (_SESSION_REJOUER === true) ? rejouer_session() : _SESSION_REJOUER; |
| 180 | 180 | } |
| 181 | 181 | |
| 182 | - return $rejouer . (defined('_TESTER_NOSCRIPT') ? _TESTER_NOSCRIPT : ''); |
|
| 182 | + return $rejouer.(defined('_TESTER_NOSCRIPT') ? _TESTER_NOSCRIPT : ''); |
|
| 183 | 183 | } |
| 184 | 184 | |
| 185 | 185 | /** |
@@ -225,9 +225,9 @@ discard block |
||
| 225 | 225 | // |
| 226 | 226 | if ($vcs = version_vcs_courante(_DIR_RACINE, true)) { |
| 227 | 227 | if ($vcs['vcs'] === 'GIT') { |
| 228 | - $url = 'https://git.spip.net/spip/spip/commit/' . $vcs['commit']; |
|
| 228 | + $url = 'https://git.spip.net/spip/spip/commit/'.$vcs['commit']; |
|
| 229 | 229 | } elseif ($vcs['vcs'] === 'SVN') { |
| 230 | - $url = 'https://core.spip.net/projects/spip/repository/revisions/' . $vcs['commit']; |
|
| 230 | + $url = 'https://core.spip.net/projects/spip/repository/revisions/'.$vcs['commit']; |
|
| 231 | 231 | } else { |
| 232 | 232 | $url = ''; |
| 233 | 233 | } |
@@ -237,22 +237,22 @@ discard block |
||
| 237 | 237 | $commit = "<a href=\"$url\" target=\"_blank\" rel=\"noopener noreferrer\">$commit</a>"; |
| 238 | 238 | } |
| 239 | 239 | if ($vcs['branch']) { |
| 240 | - $commit = $vcs['branch'] . ': ' . $commit; |
|
| 240 | + $commit = $vcs['branch'].': '.$commit; |
|
| 241 | 241 | } |
| 242 | 242 | $version .= " {$vcs['vcs']} [$commit]"; |
| 243 | 243 | } |
| 244 | 244 | |
| 245 | 245 | // et la version de l'ecran de securite |
| 246 | 246 | $secu = defined('_ECRAN_SECURITE') |
| 247 | - ? "<br />" . _T('ecran_securite', array('version' => _ECRAN_SECURITE)) |
|
| 247 | + ? "<br />"._T('ecran_securite', array('version' => _ECRAN_SECURITE)) |
|
| 248 | 248 | : ''; |
| 249 | 249 | |
| 250 | 250 | return _T('info_copyright', |
| 251 | 251 | array( |
| 252 | 252 | 'spip' => "<b>SPIP $version</b> ", |
| 253 | 253 | 'lien_gpl' => |
| 254 | - "<a href='" . generer_url_ecrire("aide", |
|
| 255 | - "aide=licence&var_lang=" . $GLOBALS['spip_lang']) . "' class=\"aide popin\">" . _T('info_copyright_gpl') . "</a>" |
|
| 254 | + "<a href='".generer_url_ecrire("aide", |
|
| 255 | + "aide=licence&var_lang=".$GLOBALS['spip_lang'])."' class=\"aide popin\">"._T('info_copyright_gpl')."</a>" |
|
| 256 | 256 | )) |
| 257 | 257 | . $secu; |
| 258 | 258 | |
@@ -279,8 +279,8 @@ discard block |
||
| 279 | 279 | $onfocus = ''; |
| 280 | 280 | } |
| 281 | 281 | |
| 282 | - $form = '<input type="text" size="10" value="' . $recherche_aff . '" name="recherche" class="recherche" accesskey="r"' . $onfocus . ' />'; |
|
| 283 | - $form .= "<input type='image' src='" . chemin_image('rechercher-20.png') . "' name='submit' class='submit' alt='" . _T('info_rechercher') . "' />"; |
|
| 282 | + $form = '<input type="text" size="10" value="'.$recherche_aff.'" name="recherche" class="recherche" accesskey="r"'.$onfocus.' />'; |
|
| 283 | + $form .= "<input type='image' src='".chemin_image('rechercher-20.png')."' name='submit' class='submit' alt='"._T('info_rechercher')."' />"; |
|
| 284 | 284 | |
| 285 | - return "<div class='spip_recherche'>" . generer_form_ecrire($page, $form . $complement, " method='get'") . "</div>"; |
|
| 285 | + return "<div class='spip_recherche'>".generer_form_ecrire($page, $form.$complement, " method='get'")."</div>"; |
|
| 286 | 286 | } |
@@ -11,7 +11,7 @@ discard block |
||
| 11 | 11 | \***************************************************************************/ |
| 12 | 12 | |
| 13 | 13 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 14 | - return; |
|
| 14 | + return; |
|
| 15 | 15 | } |
| 16 | 16 | |
| 17 | 17 | /** |
@@ -26,41 +26,41 @@ discard block |
||
| 26 | 26 | * @return string Code HTML du cadre dépliable |
| 27 | 27 | **/ |
| 28 | 28 | function cadre_depliable($icone, $titre, $deplie, $contenu, $ids = '', $style_cadre = 'r') { |
| 29 | - $bouton = bouton_block_depliable($titre, $deplie, $ids); |
|
| 30 | - |
|
| 31 | - return |
|
| 32 | - debut_cadre($style_cadre, $icone, '', $bouton, '', '', false) |
|
| 33 | - . debut_block_depliable($deplie, $ids) |
|
| 34 | - . "<div class='cadre_padding'>\n" |
|
| 35 | - . $contenu |
|
| 36 | - . "</div>\n" |
|
| 37 | - . fin_block() |
|
| 38 | - . fin_cadre(); |
|
| 29 | + $bouton = bouton_block_depliable($titre, $deplie, $ids); |
|
| 30 | + |
|
| 31 | + return |
|
| 32 | + debut_cadre($style_cadre, $icone, '', $bouton, '', '', false) |
|
| 33 | + . debut_block_depliable($deplie, $ids) |
|
| 34 | + . "<div class='cadre_padding'>\n" |
|
| 35 | + . $contenu |
|
| 36 | + . "</div>\n" |
|
| 37 | + . fin_block() |
|
| 38 | + . fin_cadre(); |
|
| 39 | 39 | } |
| 40 | 40 | |
| 41 | 41 | // https://code.spip.net/@block_parfois_visible |
| 42 | 42 | function block_parfois_visible($nom, $invite, $masque, $style = '', $visible = false) { |
| 43 | - return "\n" |
|
| 44 | - . bouton_block_depliable($invite, $visible, $nom) |
|
| 45 | - . debut_block_depliable($visible, $nom) |
|
| 46 | - . $masque |
|
| 47 | - . fin_block(); |
|
| 43 | + return "\n" |
|
| 44 | + . bouton_block_depliable($invite, $visible, $nom) |
|
| 45 | + . debut_block_depliable($visible, $nom) |
|
| 46 | + . $masque |
|
| 47 | + . fin_block(); |
|
| 48 | 48 | } |
| 49 | 49 | |
| 50 | 50 | // https://code.spip.net/@debut_block_depliable |
| 51 | 51 | function debut_block_depliable($deplie, $id = "") { |
| 52 | - $class = ' blocdeplie'; |
|
| 53 | - // si on n'accepte pas js, ne pas fermer |
|
| 54 | - if (!$deplie) { |
|
| 55 | - $class = " blocreplie"; |
|
| 56 | - } |
|
| 52 | + $class = ' blocdeplie'; |
|
| 53 | + // si on n'accepte pas js, ne pas fermer |
|
| 54 | + if (!$deplie) { |
|
| 55 | + $class = " blocreplie"; |
|
| 56 | + } |
|
| 57 | 57 | |
| 58 | - return "<div " . ($id ? "id='$id' " : "") . "class='bloc_depliable$class'>"; |
|
| 58 | + return "<div " . ($id ? "id='$id' " : "") . "class='bloc_depliable$class'>"; |
|
| 59 | 59 | } |
| 60 | 60 | |
| 61 | 61 | // https://code.spip.net/@fin_block |
| 62 | 62 | function fin_block() { |
| 63 | - return "<div class='nettoyeur'></div>\n</div>"; |
|
| 63 | + return "<div class='nettoyeur'></div>\n</div>"; |
|
| 64 | 64 | } |
| 65 | 65 | |
| 66 | 66 | // $texte : texte du bouton |
@@ -68,32 +68,32 @@ discard block |
||
| 68 | 68 | // $ids : id des div lies au bouton (facultatif, par defaut c'est le div.bloc_depliable qui suit) |
| 69 | 69 | // https://code.spip.net/@bouton_block_depliable |
| 70 | 70 | function bouton_block_depliable($texte, $deplie, $ids = "") { |
| 71 | - $bouton_id = 'b' . substr(md5($texte . microtime()), 0, 8); |
|
| 72 | - |
|
| 73 | - $class = ($deplie === true) ? " deplie" : (($deplie == -1) ? " impliable" : " replie"); |
|
| 74 | - if (strlen($ids)) { |
|
| 75 | - $cible = explode(',', $ids); |
|
| 76 | - $cible = '#' . implode(",#", $cible); |
|
| 77 | - } else { |
|
| 78 | - $cible = "#$bouton_id + div.bloc_depliable"; |
|
| 79 | - } |
|
| 80 | - |
|
| 81 | - $b = (strpos($texte, "<h") === false ? 'h3' : 'div'); |
|
| 82 | - |
|
| 83 | - return "<$b " |
|
| 84 | - . ($bouton_id ? "id='$bouton_id' " : "") |
|
| 85 | - . "class='titrem$class'" |
|
| 86 | - . (($deplie === -1) |
|
| 87 | - ? "" |
|
| 88 | - : " onmouseover=\"jQuery(this).depliant('$cible');\"" |
|
| 89 | - ) |
|
| 90 | - . ">" |
|
| 91 | - // une ancre pour rendre accessible au clavier le depliage du sous bloc |
|
| 92 | - . "<a href='#' onclick=\"return jQuery(this).depliant_clicancre('$cible');\" class='titremancre'></a>" |
|
| 93 | - . "$texte</$b>" |
|
| 94 | - . http_script(($deplie === 'incertain') |
|
| 95 | - ? "jQuery(function($){if ($('$cible').is(':visible')) { $('#$bouton_id').addClass('deplie').removeClass('replie'); }});" |
|
| 96 | - : ''); |
|
| 71 | + $bouton_id = 'b' . substr(md5($texte . microtime()), 0, 8); |
|
| 72 | + |
|
| 73 | + $class = ($deplie === true) ? " deplie" : (($deplie == -1) ? " impliable" : " replie"); |
|
| 74 | + if (strlen($ids)) { |
|
| 75 | + $cible = explode(',', $ids); |
|
| 76 | + $cible = '#' . implode(",#", $cible); |
|
| 77 | + } else { |
|
| 78 | + $cible = "#$bouton_id + div.bloc_depliable"; |
|
| 79 | + } |
|
| 80 | + |
|
| 81 | + $b = (strpos($texte, "<h") === false ? 'h3' : 'div'); |
|
| 82 | + |
|
| 83 | + return "<$b " |
|
| 84 | + . ($bouton_id ? "id='$bouton_id' " : "") |
|
| 85 | + . "class='titrem$class'" |
|
| 86 | + . (($deplie === -1) |
|
| 87 | + ? "" |
|
| 88 | + : " onmouseover=\"jQuery(this).depliant('$cible');\"" |
|
| 89 | + ) |
|
| 90 | + . ">" |
|
| 91 | + // une ancre pour rendre accessible au clavier le depliage du sous bloc |
|
| 92 | + . "<a href='#' onclick=\"return jQuery(this).depliant_clicancre('$cible');\" class='titremancre'></a>" |
|
| 93 | + . "$texte</$b>" |
|
| 94 | + . http_script(($deplie === 'incertain') |
|
| 95 | + ? "jQuery(function($){if ($('$cible').is(':visible')) { $('#$bouton_id').addClass('deplie').removeClass('replie'); }});" |
|
| 96 | + : ''); |
|
| 97 | 97 | } |
| 98 | 98 | |
| 99 | 99 | // |
@@ -102,62 +102,62 @@ discard block |
||
| 102 | 102 | // https://code.spip.net/@verif_butineur |
| 103 | 103 | function verif_butineur() { |
| 104 | 104 | |
| 105 | - preg_match(",^([A-Za-z]+)/([0-9]+\.[0-9]+) (.*)$,", $_SERVER['HTTP_USER_AGENT'], $match); |
|
| 106 | - $GLOBALS['browser_name'] = $match[1]; |
|
| 107 | - $GLOBALS['browser_version'] = $match[2]; |
|
| 108 | - $GLOBALS['browser_description'] = $match[3]; |
|
| 109 | - $GLOBALS['browser_layer'] = ' '; // compat avec vieux scripts qui testent la valeur |
|
| 110 | - $GLOBALS['browser_barre'] = ''; |
|
| 111 | - |
|
| 112 | - if (!preg_match(",opera,i", $GLOBALS['browser_description']) && preg_match(",opera,i", $GLOBALS['browser_name'])) { |
|
| 113 | - $GLOBALS['browser_name'] = "Opera"; |
|
| 114 | - $GLOBALS['browser_version'] = $match[2]; |
|
| 115 | - $GLOBALS['browser_barre'] = ($GLOBALS['browser_version'] >= 8.5); |
|
| 116 | - } else { |
|
| 117 | - if (preg_match(",opera,i", $GLOBALS['browser_description'])) { |
|
| 118 | - preg_match(",Opera ([^\ ]*),i", $GLOBALS['browser_description'], $match); |
|
| 119 | - $GLOBALS['browser_name'] = "Opera"; |
|
| 120 | - $GLOBALS['browser_version'] = $match[1]; |
|
| 121 | - $GLOBALS['browser_barre'] = ($GLOBALS['browser_version'] >= 8.5); |
|
| 122 | - } else { |
|
| 123 | - if (preg_match(",msie,i", $GLOBALS['browser_description'])) { |
|
| 124 | - preg_match(",MSIE ([^;]*),i", $GLOBALS['browser_description'], $match); |
|
| 125 | - $GLOBALS['browser_name'] = "MSIE"; |
|
| 126 | - $GLOBALS['browser_version'] = $match[1]; |
|
| 127 | - $GLOBALS['browser_barre'] = ($GLOBALS['browser_version'] >= 5.5); |
|
| 128 | - } else { |
|
| 129 | - if (preg_match(",KHTML,i", $GLOBALS['browser_description']) && |
|
| 130 | - preg_match(",Safari/([^;]*),", $GLOBALS['browser_description'], $match) |
|
| 131 | - ) { |
|
| 132 | - $GLOBALS['browser_name'] = "Safari"; |
|
| 133 | - $GLOBALS['browser_version'] = $match[1]; |
|
| 134 | - $GLOBALS['browser_barre'] = ($GLOBALS['browser_version'] >= 5.0); |
|
| 135 | - } else { |
|
| 136 | - if (preg_match(",mozilla,i", $GLOBALS['browser_name']) and $GLOBALS['browser_version'] >= 5) { |
|
| 137 | - // Numero de version pour Mozilla "authentique" |
|
| 138 | - if (preg_match(",rv:([0-9]+\.[0-9]+),", $GLOBALS['browser_description'], $match)) { |
|
| 139 | - $GLOBALS['browser_rev'] = doubleval($match[1]); |
|
| 140 | - } // Autres Gecko => equivalents 1.4 par defaut (Galeon, etc.) |
|
| 141 | - else { |
|
| 142 | - if (strpos($GLOBALS['browser_description'], "Gecko") and !strpos($GLOBALS['browser_description'], |
|
| 143 | - "KHTML") |
|
| 144 | - ) { |
|
| 145 | - $GLOBALS['browser_rev'] = 1.4; |
|
| 146 | - } // Machins quelconques => equivalents 1.0 par defaut (Konqueror, etc.) |
|
| 147 | - else { |
|
| 148 | - $GLOBALS['browser_rev'] = 1.0; |
|
| 149 | - } |
|
| 150 | - } |
|
| 151 | - $GLOBALS['browser_barre'] = $GLOBALS['browser_rev'] >= 1.3; |
|
| 152 | - } |
|
| 153 | - } |
|
| 154 | - } |
|
| 155 | - } |
|
| 156 | - } |
|
| 157 | - |
|
| 158 | - if (!$GLOBALS['browser_name']) { |
|
| 159 | - $GLOBALS['browser_name'] = "Mozilla"; |
|
| 160 | - } |
|
| 105 | + preg_match(",^([A-Za-z]+)/([0-9]+\.[0-9]+) (.*)$,", $_SERVER['HTTP_USER_AGENT'], $match); |
|
| 106 | + $GLOBALS['browser_name'] = $match[1]; |
|
| 107 | + $GLOBALS['browser_version'] = $match[2]; |
|
| 108 | + $GLOBALS['browser_description'] = $match[3]; |
|
| 109 | + $GLOBALS['browser_layer'] = ' '; // compat avec vieux scripts qui testent la valeur |
|
| 110 | + $GLOBALS['browser_barre'] = ''; |
|
| 111 | + |
|
| 112 | + if (!preg_match(",opera,i", $GLOBALS['browser_description']) && preg_match(",opera,i", $GLOBALS['browser_name'])) { |
|
| 113 | + $GLOBALS['browser_name'] = "Opera"; |
|
| 114 | + $GLOBALS['browser_version'] = $match[2]; |
|
| 115 | + $GLOBALS['browser_barre'] = ($GLOBALS['browser_version'] >= 8.5); |
|
| 116 | + } else { |
|
| 117 | + if (preg_match(",opera,i", $GLOBALS['browser_description'])) { |
|
| 118 | + preg_match(",Opera ([^\ ]*),i", $GLOBALS['browser_description'], $match); |
|
| 119 | + $GLOBALS['browser_name'] = "Opera"; |
|
| 120 | + $GLOBALS['browser_version'] = $match[1]; |
|
| 121 | + $GLOBALS['browser_barre'] = ($GLOBALS['browser_version'] >= 8.5); |
|
| 122 | + } else { |
|
| 123 | + if (preg_match(",msie,i", $GLOBALS['browser_description'])) { |
|
| 124 | + preg_match(",MSIE ([^;]*),i", $GLOBALS['browser_description'], $match); |
|
| 125 | + $GLOBALS['browser_name'] = "MSIE"; |
|
| 126 | + $GLOBALS['browser_version'] = $match[1]; |
|
| 127 | + $GLOBALS['browser_barre'] = ($GLOBALS['browser_version'] >= 5.5); |
|
| 128 | + } else { |
|
| 129 | + if (preg_match(",KHTML,i", $GLOBALS['browser_description']) && |
|
| 130 | + preg_match(",Safari/([^;]*),", $GLOBALS['browser_description'], $match) |
|
| 131 | + ) { |
|
| 132 | + $GLOBALS['browser_name'] = "Safari"; |
|
| 133 | + $GLOBALS['browser_version'] = $match[1]; |
|
| 134 | + $GLOBALS['browser_barre'] = ($GLOBALS['browser_version'] >= 5.0); |
|
| 135 | + } else { |
|
| 136 | + if (preg_match(",mozilla,i", $GLOBALS['browser_name']) and $GLOBALS['browser_version'] >= 5) { |
|
| 137 | + // Numero de version pour Mozilla "authentique" |
|
| 138 | + if (preg_match(",rv:([0-9]+\.[0-9]+),", $GLOBALS['browser_description'], $match)) { |
|
| 139 | + $GLOBALS['browser_rev'] = doubleval($match[1]); |
|
| 140 | + } // Autres Gecko => equivalents 1.4 par defaut (Galeon, etc.) |
|
| 141 | + else { |
|
| 142 | + if (strpos($GLOBALS['browser_description'], "Gecko") and !strpos($GLOBALS['browser_description'], |
|
| 143 | + "KHTML") |
|
| 144 | + ) { |
|
| 145 | + $GLOBALS['browser_rev'] = 1.4; |
|
| 146 | + } // Machins quelconques => equivalents 1.0 par defaut (Konqueror, etc.) |
|
| 147 | + else { |
|
| 148 | + $GLOBALS['browser_rev'] = 1.0; |
|
| 149 | + } |
|
| 150 | + } |
|
| 151 | + $GLOBALS['browser_barre'] = $GLOBALS['browser_rev'] >= 1.3; |
|
| 152 | + } |
|
| 153 | + } |
|
| 154 | + } |
|
| 155 | + } |
|
| 156 | + } |
|
| 157 | + |
|
| 158 | + if (!$GLOBALS['browser_name']) { |
|
| 159 | + $GLOBALS['browser_name'] = "Mozilla"; |
|
| 160 | + } |
|
| 161 | 161 | } |
| 162 | 162 | |
| 163 | 163 | verif_butineur(); |
@@ -55,7 +55,7 @@ discard block |
||
| 55 | 55 | $class = " blocreplie"; |
| 56 | 56 | } |
| 57 | 57 | |
| 58 | - return "<div " . ($id ? "id='$id' " : "") . "class='bloc_depliable$class'>"; |
|
| 58 | + return "<div ".($id ? "id='$id' " : "")."class='bloc_depliable$class'>"; |
|
| 59 | 59 | } |
| 60 | 60 | |
| 61 | 61 | // https://code.spip.net/@fin_block |
@@ -68,12 +68,12 @@ discard block |
||
| 68 | 68 | // $ids : id des div lies au bouton (facultatif, par defaut c'est le div.bloc_depliable qui suit) |
| 69 | 69 | // https://code.spip.net/@bouton_block_depliable |
| 70 | 70 | function bouton_block_depliable($texte, $deplie, $ids = "") { |
| 71 | - $bouton_id = 'b' . substr(md5($texte . microtime()), 0, 8); |
|
| 71 | + $bouton_id = 'b'.substr(md5($texte.microtime()), 0, 8); |
|
| 72 | 72 | |
| 73 | 73 | $class = ($deplie === true) ? " deplie" : (($deplie == -1) ? " impliable" : " replie"); |
| 74 | 74 | if (strlen($ids)) { |
| 75 | 75 | $cible = explode(',', $ids); |
| 76 | - $cible = '#' . implode(",#", $cible); |
|
| 76 | + $cible = '#'.implode(",#", $cible); |
|
| 77 | 77 | } else { |
| 78 | 78 | $cible = "#$bouton_id + div.bloc_depliable"; |
| 79 | 79 | } |
@@ -11,7 +11,7 @@ discard block |
||
| 11 | 11 | \***************************************************************************/ |
| 12 | 12 | |
| 13 | 13 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 14 | - return; |
|
| 14 | + return; |
|
| 15 | 15 | } |
| 16 | 16 | |
| 17 | 17 | /** |
@@ -75,24 +75,24 @@ discard block |
||
| 75 | 75 | * @return |
| 76 | 76 | **/ |
| 77 | 77 | function inc_genie_dist($taches = array()) { |
| 78 | - include_spip('inc/queue'); |
|
| 79 | - |
|
| 80 | - if (_request('exec') == 'job_queue') { |
|
| 81 | - return false; |
|
| 82 | - } |
|
| 83 | - |
|
| 84 | - $force_jobs = array(); |
|
| 85 | - // l'ancienne facon de lancer une tache cron immediatement |
|
| 86 | - // etait de la passer en parametre a ing_genie_dist |
|
| 87 | - // on reroute en ajoutant simplement le job a la queue, ASAP |
|
| 88 | - foreach ($taches as $function => $period) { |
|
| 89 | - $force_jobs[] = queue_add_job($function, _T('tache_cron_asap', array('function' => $function)), |
|
| 90 | - array(time() - abs($period)), "genie/"); |
|
| 91 | - } |
|
| 92 | - |
|
| 93 | - // et on passe la main a la gestion de la queue ! |
|
| 94 | - // en forcant eventuellement les jobs ajoute a l'instant |
|
| 95 | - return queue_schedule(count($force_jobs) ? $force_jobs : null); |
|
| 78 | + include_spip('inc/queue'); |
|
| 79 | + |
|
| 80 | + if (_request('exec') == 'job_queue') { |
|
| 81 | + return false; |
|
| 82 | + } |
|
| 83 | + |
|
| 84 | + $force_jobs = array(); |
|
| 85 | + // l'ancienne facon de lancer une tache cron immediatement |
|
| 86 | + // etait de la passer en parametre a ing_genie_dist |
|
| 87 | + // on reroute en ajoutant simplement le job a la queue, ASAP |
|
| 88 | + foreach ($taches as $function => $period) { |
|
| 89 | + $force_jobs[] = queue_add_job($function, _T('tache_cron_asap', array('function' => $function)), |
|
| 90 | + array(time() - abs($period)), "genie/"); |
|
| 91 | + } |
|
| 92 | + |
|
| 93 | + // et on passe la main a la gestion de la queue ! |
|
| 94 | + // en forcant eventuellement les jobs ajoute a l'instant |
|
| 95 | + return queue_schedule(count($force_jobs) ? $force_jobs : null); |
|
| 96 | 96 | } |
| 97 | 97 | |
| 98 | 98 | // |
@@ -106,32 +106,32 @@ discard block |
||
| 106 | 106 | // https://code.spip.net/@taches_generales |
| 107 | 107 | function taches_generales($taches_generales = array()) { |
| 108 | 108 | |
| 109 | - // verifier que toutes les taches cron sont planifiees |
|
| 110 | - // c'est une tache cron ! |
|
| 111 | - $taches_generales['queue_watch'] = 3600 * 24; |
|
| 109 | + // verifier que toutes les taches cron sont planifiees |
|
| 110 | + // c'est une tache cron ! |
|
| 111 | + $taches_generales['queue_watch'] = 3600 * 24; |
|
| 112 | 112 | |
| 113 | - // MAJ des rubriques publiques (cas de la publication post-datee) |
|
| 114 | - // est fait au coup par coup a present |
|
| 115 | - // $taches_generales['rubriques'] = 3600; |
|
| 113 | + // MAJ des rubriques publiques (cas de la publication post-datee) |
|
| 114 | + // est fait au coup par coup a present |
|
| 115 | + // $taches_generales['rubriques'] = 3600; |
|
| 116 | 116 | |
| 117 | - // Optimisation de la base |
|
| 118 | - $taches_generales['optimiser'] = 3600 * 48; |
|
| 117 | + // Optimisation de la base |
|
| 118 | + $taches_generales['optimiser'] = 3600 * 48; |
|
| 119 | 119 | |
| 120 | - // nouveautes |
|
| 121 | - if (isset($GLOBALS['meta']['adresse_neuf']) and $GLOBALS['meta']['adresse_neuf'] |
|
| 122 | - and $GLOBALS['meta']['jours_neuf'] |
|
| 123 | - and ($GLOBALS['meta']['quoi_de_neuf'] == 'oui') |
|
| 124 | - ) { |
|
| 125 | - $taches_generales['mail'] = 3600 * 24 * $GLOBALS['meta']['jours_neuf']; |
|
| 126 | - } |
|
| 120 | + // nouveautes |
|
| 121 | + if (isset($GLOBALS['meta']['adresse_neuf']) and $GLOBALS['meta']['adresse_neuf'] |
|
| 122 | + and $GLOBALS['meta']['jours_neuf'] |
|
| 123 | + and ($GLOBALS['meta']['quoi_de_neuf'] == 'oui') |
|
| 124 | + ) { |
|
| 125 | + $taches_generales['mail'] = 3600 * 24 * $GLOBALS['meta']['jours_neuf']; |
|
| 126 | + } |
|
| 127 | 127 | |
| 128 | - // maintenance (ajax, verifications diverses) |
|
| 129 | - $taches_generales['maintenance'] = 3600 * 2; |
|
| 128 | + // maintenance (ajax, verifications diverses) |
|
| 129 | + $taches_generales['maintenance'] = 3600 * 2; |
|
| 130 | 130 | |
| 131 | - // verifier si une mise a jour de spip est disponible (2 fois par semaine suffit largement) |
|
| 132 | - $taches_generales['mise_a_jour'] = 3 * 24 * 3600; |
|
| 131 | + // verifier si une mise a jour de spip est disponible (2 fois par semaine suffit largement) |
|
| 132 | + $taches_generales['mise_a_jour'] = 3 * 24 * 3600; |
|
| 133 | 133 | |
| 134 | - return pipeline('taches_generales_cron', $taches_generales); |
|
| 134 | + return pipeline('taches_generales_cron', $taches_generales); |
|
| 135 | 135 | } |
| 136 | 136 | |
| 137 | 137 | /** |
@@ -147,22 +147,22 @@ discard block |
||
| 147 | 147 | * @return int |
| 148 | 148 | */ |
| 149 | 149 | function genie_queue_watch_dist() { |
| 150 | - static $deja_la = false; |
|
| 151 | - if ($deja_la) { |
|
| 152 | - return; |
|
| 153 | - } // re-entrance si l'insertion des jobs echoue (pas de table spip_jobs a l'upgrade par exemple) |
|
| 154 | - $deja_la = true; |
|
| 155 | - $taches = taches_generales(); |
|
| 156 | - $programmees = sql_allfetsel('fonction', 'spip_jobs', sql_in('fonction', array_keys($taches))); |
|
| 157 | - $programmees = array_column($programmees, 'fonction'); |
|
| 158 | - foreach ($taches as $tache => $periode) { |
|
| 159 | - if (!in_array($tache, $programmees)) { |
|
| 160 | - queue_genie_replan_job($tache, $periode, time() - round(rand(1, $periode)), 0); |
|
| 161 | - } |
|
| 162 | - } |
|
| 163 | - $deja_la = false; |
|
| 164 | - |
|
| 165 | - return 1; |
|
| 150 | + static $deja_la = false; |
|
| 151 | + if ($deja_la) { |
|
| 152 | + return; |
|
| 153 | + } // re-entrance si l'insertion des jobs echoue (pas de table spip_jobs a l'upgrade par exemple) |
|
| 154 | + $deja_la = true; |
|
| 155 | + $taches = taches_generales(); |
|
| 156 | + $programmees = sql_allfetsel('fonction', 'spip_jobs', sql_in('fonction', array_keys($taches))); |
|
| 157 | + $programmees = array_column($programmees, 'fonction'); |
|
| 158 | + foreach ($taches as $tache => $periode) { |
|
| 159 | + if (!in_array($tache, $programmees)) { |
|
| 160 | + queue_genie_replan_job($tache, $periode, time() - round(rand(1, $periode)), 0); |
|
| 161 | + } |
|
| 162 | + } |
|
| 163 | + $deja_la = false; |
|
| 164 | + |
|
| 165 | + return 1; |
|
| 166 | 166 | } |
| 167 | 167 | |
| 168 | 168 | /** |
@@ -183,25 +183,25 @@ discard block |
||
| 183 | 183 | * @return void |
| 184 | 184 | */ |
| 185 | 185 | function queue_genie_replan_job($function, $period, $last = 0, $time = null, $priority = 0) { |
| 186 | - static $done = array(); |
|
| 187 | - if (isset($done[$function])) { |
|
| 188 | - return; |
|
| 189 | - } |
|
| 190 | - $done[$function] = true; |
|
| 191 | - if (is_null($time)) { |
|
| 192 | - $time = time(); |
|
| 193 | - if ($last) { |
|
| 194 | - $time = max($last + $period, $time); |
|
| 195 | - } |
|
| 196 | - } |
|
| 197 | - if (!$last) { |
|
| 198 | - $last = $time - $period; |
|
| 199 | - } |
|
| 200 | - spip_log("replan_job $function $period $last $time $priority", 'queue'); |
|
| 201 | - include_spip('inc/queue'); |
|
| 202 | - // on replanifie un job cron |
|
| 203 | - // uniquement si il n'y en a pas deja un avec le meme nom |
|
| 204 | - // independament de l'argument |
|
| 205 | - queue_add_job($function, _T('tache_cron_secondes', array('function' => $function, 'nb' => $period)), array($last), |
|
| 206 | - "genie/", 'function_only', $time, $priority); |
|
| 186 | + static $done = array(); |
|
| 187 | + if (isset($done[$function])) { |
|
| 188 | + return; |
|
| 189 | + } |
|
| 190 | + $done[$function] = true; |
|
| 191 | + if (is_null($time)) { |
|
| 192 | + $time = time(); |
|
| 193 | + if ($last) { |
|
| 194 | + $time = max($last + $period, $time); |
|
| 195 | + } |
|
| 196 | + } |
|
| 197 | + if (!$last) { |
|
| 198 | + $last = $time - $period; |
|
| 199 | + } |
|
| 200 | + spip_log("replan_job $function $period $last $time $priority", 'queue'); |
|
| 201 | + include_spip('inc/queue'); |
|
| 202 | + // on replanifie un job cron |
|
| 203 | + // uniquement si il n'y en a pas deja un avec le meme nom |
|
| 204 | + // independament de l'argument |
|
| 205 | + queue_add_job($function, _T('tache_cron_secondes', array('function' => $function, 'nb' => $period)), array($last), |
|
| 206 | + "genie/", 'function_only', $time, $priority); |
|
| 207 | 207 | } |
@@ -16,7 +16,7 @@ discard block |
||
| 16 | 16 | * @package SPIP\Core\Presentation |
| 17 | 17 | **/ |
| 18 | 18 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 19 | - return; |
|
| 19 | + return; |
|
| 20 | 20 | } |
| 21 | 21 | |
| 22 | 22 | include_spip('inc/presentation_mini'); |
@@ -31,44 +31,44 @@ discard block |
||
| 31 | 31 | |
| 32 | 32 | // https://code.spip.net/@debut_cadre |
| 33 | 33 | function debut_cadre($style, $icone = "", $fonction = "", $titre = "", $id = "", $class = "", $padding = true) { |
| 34 | - $style_mapping = array( |
|
| 35 | - 'r' => 'simple', |
|
| 36 | - 'e' => 'raccourcis', |
|
| 37 | - 'couleur' => 'basic highlight', |
|
| 38 | - 'couleur-foncee' => 'basic highlight', |
|
| 39 | - 'trait-couleur' => 'important', |
|
| 40 | - 'alerte' => 'notice', |
|
| 41 | - 'info' => 'info', |
|
| 42 | - 'sous_rub' => 'simple sous-rub' |
|
| 43 | - ); |
|
| 44 | - $style_titre_mapping = array('couleur' => 'topper', 'trait-couleur' => 'section'); |
|
| 45 | - $c = isset($style_mapping[$style]) ? $style_mapping[$style] : 'simple'; |
|
| 46 | - $class = $c . ($class ? " $class" : ""); |
|
| 47 | - if (!$padding) { |
|
| 48 | - $class .= ($class ? " " : "") . "no-padding"; |
|
| 49 | - } |
|
| 50 | - |
|
| 51 | - //($id?"id='$id' ":"") |
|
| 52 | - if (strlen($icone) > 1) { |
|
| 53 | - if ($icone_renommer = charger_fonction('icone_renommer', 'inc', true)) { |
|
| 54 | - list($fond, $fonction) = $icone_renommer($icone, $fonction); |
|
| 55 | - } |
|
| 56 | - $size = 24; |
|
| 57 | - if (preg_match("/-([0-9]{1,3})[.](gif|png)$/i", $fond, $match)) { |
|
| 58 | - $size = $match[1]; |
|
| 59 | - } |
|
| 60 | - if ($fonction) { |
|
| 61 | - // 2 images pour composer l'icone : le fond (article) en background, |
|
| 62 | - // la fonction (new) en image |
|
| 63 | - $icone = http_img_pack($fonction, "", "class='cadre-icone' width='$size' height='$size'\n" . |
|
| 64 | - http_style_background($fond, "no-repeat center center", $size)); |
|
| 65 | - } else { |
|
| 66 | - $icone = http_img_pack($fond, "", "class='cadre-icone' width='$size' height='$size'"); |
|
| 67 | - } |
|
| 68 | - $titre = $icone . $titre; |
|
| 69 | - } |
|
| 70 | - |
|
| 71 | - return boite_ouvrir($titre, $class, isset($style_titre_mapping[$style]) ? $style_titre_mapping[$style] : '', $id); |
|
| 34 | + $style_mapping = array( |
|
| 35 | + 'r' => 'simple', |
|
| 36 | + 'e' => 'raccourcis', |
|
| 37 | + 'couleur' => 'basic highlight', |
|
| 38 | + 'couleur-foncee' => 'basic highlight', |
|
| 39 | + 'trait-couleur' => 'important', |
|
| 40 | + 'alerte' => 'notice', |
|
| 41 | + 'info' => 'info', |
|
| 42 | + 'sous_rub' => 'simple sous-rub' |
|
| 43 | + ); |
|
| 44 | + $style_titre_mapping = array('couleur' => 'topper', 'trait-couleur' => 'section'); |
|
| 45 | + $c = isset($style_mapping[$style]) ? $style_mapping[$style] : 'simple'; |
|
| 46 | + $class = $c . ($class ? " $class" : ""); |
|
| 47 | + if (!$padding) { |
|
| 48 | + $class .= ($class ? " " : "") . "no-padding"; |
|
| 49 | + } |
|
| 50 | + |
|
| 51 | + //($id?"id='$id' ":"") |
|
| 52 | + if (strlen($icone) > 1) { |
|
| 53 | + if ($icone_renommer = charger_fonction('icone_renommer', 'inc', true)) { |
|
| 54 | + list($fond, $fonction) = $icone_renommer($icone, $fonction); |
|
| 55 | + } |
|
| 56 | + $size = 24; |
|
| 57 | + if (preg_match("/-([0-9]{1,3})[.](gif|png)$/i", $fond, $match)) { |
|
| 58 | + $size = $match[1]; |
|
| 59 | + } |
|
| 60 | + if ($fonction) { |
|
| 61 | + // 2 images pour composer l'icone : le fond (article) en background, |
|
| 62 | + // la fonction (new) en image |
|
| 63 | + $icone = http_img_pack($fonction, "", "class='cadre-icone' width='$size' height='$size'\n" . |
|
| 64 | + http_style_background($fond, "no-repeat center center", $size)); |
|
| 65 | + } else { |
|
| 66 | + $icone = http_img_pack($fond, "", "class='cadre-icone' width='$size' height='$size'"); |
|
| 67 | + } |
|
| 68 | + $titre = $icone . $titre; |
|
| 69 | + } |
|
| 70 | + |
|
| 71 | + return boite_ouvrir($titre, $class, isset($style_titre_mapping[$style]) ? $style_titre_mapping[$style] : '', $id); |
|
| 72 | 72 | } |
| 73 | 73 | |
| 74 | 74 | // https://code.spip.net/@fin_cadre |
@@ -76,66 +76,66 @@ discard block |
||
| 76 | 76 | |
| 77 | 77 | |
| 78 | 78 | function debut_cadre_relief( |
| 79 | - $icone = '', |
|
| 80 | - $dummy = '', |
|
| 81 | - $fonction = '', |
|
| 82 | - $titre = '', |
|
| 83 | - $id = "", |
|
| 84 | - $class = "" |
|
| 79 | + $icone = '', |
|
| 80 | + $dummy = '', |
|
| 81 | + $fonction = '', |
|
| 82 | + $titre = '', |
|
| 83 | + $id = "", |
|
| 84 | + $class = "" |
|
| 85 | 85 | ) { |
| 86 | - return debut_cadre('r', $icone, $fonction, $titre, $id, $class); |
|
| 86 | + return debut_cadre('r', $icone, $fonction, $titre, $id, $class); |
|
| 87 | 87 | } |
| 88 | 88 | |
| 89 | 89 | function fin_cadre_relief() { return fin_cadre('r'); } |
| 90 | 90 | |
| 91 | 91 | function debut_cadre_enfonce( |
| 92 | - $icone = '', |
|
| 93 | - $dummy = '', |
|
| 94 | - $fonction = '', |
|
| 95 | - $titre = '', |
|
| 96 | - $id = "", |
|
| 97 | - $class = "" |
|
| 92 | + $icone = '', |
|
| 93 | + $dummy = '', |
|
| 94 | + $fonction = '', |
|
| 95 | + $titre = '', |
|
| 96 | + $id = "", |
|
| 97 | + $class = "" |
|
| 98 | 98 | ) { |
| 99 | - return debut_cadre('e', $icone, $fonction, $titre, $id, $class); |
|
| 99 | + return debut_cadre('e', $icone, $fonction, $titre, $id, $class); |
|
| 100 | 100 | } |
| 101 | 101 | |
| 102 | 102 | function fin_cadre_enfonce() { return fin_cadre('e'); } |
| 103 | 103 | |
| 104 | 104 | function debut_cadre_sous_rub( |
| 105 | - $icone = '', |
|
| 106 | - $dummy = '', |
|
| 107 | - $fonction = '', |
|
| 108 | - $titre = '', |
|
| 109 | - $id = "", |
|
| 110 | - $class = "" |
|
| 105 | + $icone = '', |
|
| 106 | + $dummy = '', |
|
| 107 | + $fonction = '', |
|
| 108 | + $titre = '', |
|
| 109 | + $id = "", |
|
| 110 | + $class = "" |
|
| 111 | 111 | ) { |
| 112 | - return debut_cadre('sous_rub', $icone, $fonction, $titre, $id, $class); |
|
| 112 | + return debut_cadre('sous_rub', $icone, $fonction, $titre, $id, $class); |
|
| 113 | 113 | } |
| 114 | 114 | |
| 115 | 115 | function fin_cadre_sous_rub() { return fin_cadre('sous_rub'); } |
| 116 | 116 | |
| 117 | 117 | function debut_cadre_couleur( |
| 118 | - $icone = '', |
|
| 119 | - $dummy = '', |
|
| 120 | - $fonction = '', |
|
| 121 | - $titre = '', |
|
| 122 | - $id = "", |
|
| 123 | - $class = "" |
|
| 118 | + $icone = '', |
|
| 119 | + $dummy = '', |
|
| 120 | + $fonction = '', |
|
| 121 | + $titre = '', |
|
| 122 | + $id = "", |
|
| 123 | + $class = "" |
|
| 124 | 124 | ) { |
| 125 | - return debut_cadre('couleur', $icone, $fonction, $titre, $id, $class); |
|
| 125 | + return debut_cadre('couleur', $icone, $fonction, $titre, $id, $class); |
|
| 126 | 126 | } |
| 127 | 127 | |
| 128 | 128 | function fin_cadre_couleur() { return fin_cadre('couleur'); } |
| 129 | 129 | |
| 130 | 130 | function debut_cadre_trait_couleur( |
| 131 | - $icone = '', |
|
| 132 | - $dummy = '', |
|
| 133 | - $fonction = '', |
|
| 134 | - $titre = '', |
|
| 135 | - $id = "", |
|
| 136 | - $class = "" |
|
| 131 | + $icone = '', |
|
| 132 | + $dummy = '', |
|
| 133 | + $fonction = '', |
|
| 134 | + $titre = '', |
|
| 135 | + $id = "", |
|
| 136 | + $class = "" |
|
| 137 | 137 | ) { |
| 138 | - return debut_cadre('trait-couleur', $icone, $fonction, $titre, $id, $class); |
|
| 138 | + return debut_cadre('trait-couleur', $icone, $fonction, $titre, $id, $class); |
|
| 139 | 139 | } |
| 140 | 140 | |
| 141 | 141 | function fin_cadre_trait_couleur() { return fin_cadre('trait-couleur'); } |
@@ -156,18 +156,18 @@ discard block |
||
| 156 | 156 | * @return string Code PHP. |
| 157 | 157 | **/ |
| 158 | 158 | function gros_titre( |
| 159 | - $titre, |
|
| 160 | - $ze_logo = '' |
|
| 159 | + $titre, |
|
| 160 | + $ze_logo = '' |
|
| 161 | 161 | ) { |
| 162 | - return "<h1 class = 'grostitre'>" . $ze_logo . ' ' . typo($titre) . "</h1>\n"; |
|
| 162 | + return "<h1 class = 'grostitre'>" . $ze_logo . ' ' . typo($titre) . "</h1>\n"; |
|
| 163 | 163 | } |
| 164 | 164 | |
| 165 | 165 | // La boite des raccourcis |
| 166 | 166 | // Se place a droite si l'ecran est en mode panoramique. |
| 167 | 167 | // https://code.spip.net/@bloc_des_raccourcis |
| 168 | 168 | function bloc_des_raccourcis($bloc) { |
| 169 | - return creer_colonne_droite() |
|
| 170 | - . boite_ouvrir(_T('titre_cadre_raccourcis'), 'raccourcis') . $bloc . boite_fermer(); |
|
| 169 | + return creer_colonne_droite() |
|
| 170 | + . boite_ouvrir(_T('titre_cadre_raccourcis'), 'raccourcis') . $bloc . boite_fermer(); |
|
| 171 | 171 | } |
| 172 | 172 | |
| 173 | 173 | // |
@@ -184,10 +184,10 @@ discard block |
||
| 184 | 184 | |
| 185 | 185 | // https://code.spip.net/@onglet |
| 186 | 186 | function onglet($texte, $lien, $onglet_ref, $onglet, $icone = "") { |
| 187 | - return "<li>" |
|
| 188 | - . ($icone ? http_img_pack($icone, '', " class='cadre-icone'") : '') |
|
| 189 | - . lien_ou_expose($lien, $texte, $onglet == $onglet_ref) |
|
| 190 | - . "</li>"; |
|
| 187 | + return "<li>" |
|
| 188 | + . ($icone ? http_img_pack($icone, '', " class='cadre-icone'") : '') |
|
| 189 | + . lien_ou_expose($lien, $texte, $onglet == $onglet_ref) |
|
| 190 | + . "</li>"; |
|
| 191 | 191 | } |
| 192 | 192 | |
| 193 | 193 | /** |
@@ -219,14 +219,14 @@ discard block |
||
| 219 | 219 | * Code HTML du lien |
| 220 | 220 | **/ |
| 221 | 221 | function icone_verticale($texte, $lien, $fond, $fonction = "", $align = "", $javascript = "") { |
| 222 | - // cas d'ajax_action_auteur: faut defaire le boulot |
|
| 223 | - // (il faudrait fusionner avec le cas $javascript) |
|
| 224 | - if (preg_match(",^<a\shref='([^']*)'([^>]*)>(.*)</a>$,i", $lien, $r)) { |
|
| 225 | - list($x, $lien, $atts, $texte) = $r; |
|
| 226 | - $javascript .= $atts; |
|
| 227 | - } |
|
| 228 | - |
|
| 229 | - return icone_base($lien, $texte, $fond, $fonction, "verticale $align", $javascript); |
|
| 222 | + // cas d'ajax_action_auteur: faut defaire le boulot |
|
| 223 | + // (il faudrait fusionner avec le cas $javascript) |
|
| 224 | + if (preg_match(",^<a\shref='([^']*)'([^>]*)>(.*)</a>$,i", $lien, $r)) { |
|
| 225 | + list($x, $lien, $atts, $texte) = $r; |
|
| 226 | + $javascript .= $atts; |
|
| 227 | + } |
|
| 228 | + |
|
| 229 | + return icone_base($lien, $texte, $fond, $fonction, "verticale $align", $javascript); |
|
| 230 | 230 | } |
| 231 | 231 | |
| 232 | 232 | /** |
@@ -251,15 +251,15 @@ discard block |
||
| 251 | 251 | * Code HTML du lien |
| 252 | 252 | **/ |
| 253 | 253 | function icone_horizontale($texte, $lien, $fond, $fonction = "", $dummy = "", $javascript = "") { |
| 254 | - $retour = ''; |
|
| 255 | - // cas d'ajax_action_auteur: faut defaire le boulot |
|
| 256 | - // (il faudrait fusionner avec le cas $javascript) |
|
| 257 | - if (preg_match(",^<a\shref='([^']*)'([^>]*)>(.*)</a>$,i", $lien, $r)) { |
|
| 258 | - list($x, $lien, $atts, $texte) = $r; |
|
| 259 | - $javascript .= $atts; |
|
| 260 | - } |
|
| 254 | + $retour = ''; |
|
| 255 | + // cas d'ajax_action_auteur: faut defaire le boulot |
|
| 256 | + // (il faudrait fusionner avec le cas $javascript) |
|
| 257 | + if (preg_match(",^<a\shref='([^']*)'([^>]*)>(.*)</a>$,i", $lien, $r)) { |
|
| 258 | + list($x, $lien, $atts, $texte) = $r; |
|
| 259 | + $javascript .= $atts; |
|
| 260 | + } |
|
| 261 | 261 | |
| 262 | - $retour = icone_base($lien, $texte, $fond, $fonction, "horizontale", $javascript); |
|
| 262 | + $retour = icone_base($lien, $texte, $fond, $fonction, "horizontale", $javascript); |
|
| 263 | 263 | |
| 264 | - return $retour; |
|
| 264 | + return $retour; |
|
| 265 | 265 | } |
@@ -43,9 +43,9 @@ discard block |
||
| 43 | 43 | ); |
| 44 | 44 | $style_titre_mapping = array('couleur' => 'topper', 'trait-couleur' => 'section'); |
| 45 | 45 | $c = isset($style_mapping[$style]) ? $style_mapping[$style] : 'simple'; |
| 46 | - $class = $c . ($class ? " $class" : ""); |
|
| 46 | + $class = $c.($class ? " $class" : ""); |
|
| 47 | 47 | if (!$padding) { |
| 48 | - $class .= ($class ? " " : "") . "no-padding"; |
|
| 48 | + $class .= ($class ? " " : "")."no-padding"; |
|
| 49 | 49 | } |
| 50 | 50 | |
| 51 | 51 | //($id?"id='$id' ":"") |
@@ -60,12 +60,12 @@ discard block |
||
| 60 | 60 | if ($fonction) { |
| 61 | 61 | // 2 images pour composer l'icone : le fond (article) en background, |
| 62 | 62 | // la fonction (new) en image |
| 63 | - $icone = http_img_pack($fonction, "", "class='cadre-icone' width='$size' height='$size'\n" . |
|
| 63 | + $icone = http_img_pack($fonction, "", "class='cadre-icone' width='$size' height='$size'\n". |
|
| 64 | 64 | http_style_background($fond, "no-repeat center center", $size)); |
| 65 | 65 | } else { |
| 66 | 66 | $icone = http_img_pack($fond, "", "class='cadre-icone' width='$size' height='$size'"); |
| 67 | 67 | } |
| 68 | - $titre = $icone . $titre; |
|
| 68 | + $titre = $icone.$titre; |
|
| 69 | 69 | } |
| 70 | 70 | |
| 71 | 71 | return boite_ouvrir($titre, $class, isset($style_titre_mapping[$style]) ? $style_titre_mapping[$style] : '', $id); |
@@ -159,7 +159,7 @@ discard block |
||
| 159 | 159 | $titre, |
| 160 | 160 | $ze_logo = '' |
| 161 | 161 | ) { |
| 162 | - return "<h1 class = 'grostitre'>" . $ze_logo . ' ' . typo($titre) . "</h1>\n"; |
|
| 162 | + return "<h1 class = 'grostitre'>".$ze_logo.' '.typo($titre)."</h1>\n"; |
|
| 163 | 163 | } |
| 164 | 164 | |
| 165 | 165 | // La boite des raccourcis |
@@ -167,7 +167,7 @@ discard block |
||
| 167 | 167 | // https://code.spip.net/@bloc_des_raccourcis |
| 168 | 168 | function bloc_des_raccourcis($bloc) { |
| 169 | 169 | return creer_colonne_droite() |
| 170 | - . boite_ouvrir(_T('titre_cadre_raccourcis'), 'raccourcis') . $bloc . boite_fermer(); |
|
| 170 | + . boite_ouvrir(_T('titre_cadre_raccourcis'), 'raccourcis').$bloc.boite_fermer(); |
|
| 171 | 171 | } |
| 172 | 172 | |
| 173 | 173 | // |
@@ -31,6 +31,9 @@ discard block |
||
| 31 | 31 | include_spip('inc/filtres_alertes'); |
| 32 | 32 | |
| 33 | 33 | // https://code.spip.net/@debut_cadre |
| 34 | +/** |
|
| 35 | + * @param string $style |
|
| 36 | + */ |
|
| 34 | 37 | function debut_cadre($style, $icone = "", $fonction = "", $titre = "", $id = "", $class = "", $padding = true) { |
| 35 | 38 | $style_mapping = array( |
| 36 | 39 | 'r' => 'simple', |
@@ -184,6 +187,10 @@ discard block |
||
| 184 | 187 | function fin_onglet() { return "</ul></div>\n"; } |
| 185 | 188 | |
| 186 | 189 | // https://code.spip.net/@onglet |
| 190 | +/** |
|
| 191 | + * @param string $texte |
|
| 192 | + * @param string $onglet |
|
| 193 | + */ |
|
| 187 | 194 | function onglet($texte, $lien, $onglet_ref, $onglet, $icone = "") { |
| 188 | 195 | return "<li>" |
| 189 | 196 | . ($icone ? http_img_pack($icone, '', " class='cadre-icone'") : '') |
@@ -11,98 +11,98 @@ |
||
| 11 | 11 | \***************************************************************************/ |
| 12 | 12 | |
| 13 | 13 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 14 | - return; |
|
| 14 | + return; |
|
| 15 | 15 | } |
| 16 | 16 | |
| 17 | 17 | include_spip('auth/ldap'); |
| 18 | 18 | |
| 19 | 19 | // https://code.spip.net/@install_etape_ldap4_dist |
| 20 | 20 | function install_etape_ldap4_dist() { |
| 21 | - $adresse_ldap = _request('adresse_ldap'); |
|
| 22 | - $login_ldap = _request('login_ldap'); |
|
| 23 | - $pass_ldap = _request('pass_ldap'); |
|
| 24 | - $port_ldap = _request('port_ldap'); |
|
| 25 | - $base_ldap = _request('base_ldap'); |
|
| 26 | - $base_ldap_text = _request('base_ldap_text'); |
|
| 27 | - if (!$base_ldap) { |
|
| 28 | - $base_ldap = $base_ldap_text; |
|
| 29 | - } |
|
| 30 | - |
|
| 31 | - echo install_debut_html('AUTO', ' onload="document.getElementById(\'suivant\').focus();return false;"'); |
|
| 32 | - |
|
| 33 | - $ldap_link = ldap_connect($adresse_ldap, $port_ldap); |
|
| 34 | - @ldap_bind($ldap_link, $login_ldap, $pass_ldap); |
|
| 35 | - |
|
| 36 | - // Essayer de verifier le chemin fourni |
|
| 37 | - $r = @ldap_compare($ldap_link, $base_ldap, 'objectClass', ''); |
|
| 38 | - $fail = (ldap_errno($ldap_link) == 32); |
|
| 39 | - |
|
| 40 | - if ($fail) { |
|
| 41 | - echo info_etape(_T('info_chemin_acces_annuaire')), |
|
| 42 | - info_progression_etape(3, 'etape_ldap', 'install/', true), |
|
| 43 | - "<div class='error'><p><b>" . _T('avis_operation_echec') . '</b></p><p>' . _T('avis_chemin_invalide_1'), |
|
| 44 | - ' (<tt>' . spip_htmlspecialchars($base_ldap) . '</tt>) ' . _T('avis_chemin_invalide_2') . '</p></div>'; |
|
| 45 | - } else { |
|
| 46 | - info_etape(_T('info_reglage_ldap')); |
|
| 47 | - echo info_progression_etape(4, 'etape_ldap', 'install/'); |
|
| 48 | - |
|
| 49 | - $statuts = liste_statuts_ldap(); |
|
| 50 | - $statut_ldap = defined('_INSTALL_STATUT_LDAP') |
|
| 51 | - ? _INSTALL_STATUT_LDAP |
|
| 52 | - : $GLOBALS['liste_des_statuts']['info_redacteurs']; |
|
| 53 | - |
|
| 54 | - |
|
| 55 | - $res = install_propager(array('adresse_ldap', 'port_ldap', 'login_ldap', 'pass_ldap', 'protocole_ldap', 'tls_ldap')) |
|
| 56 | - . "<input type='hidden' name='etape' value='ldap5' />" |
|
| 57 | - . "<input type='hidden' name='base_ldap' value='" . spip_htmlentities($base_ldap) . "' />" |
|
| 58 | - . fieldset( |
|
| 59 | - _T('info_statut_utilisateurs_1'), |
|
| 60 | - array( |
|
| 61 | - 'statut_ldap' => array( |
|
| 62 | - 'label' => _T('info_statut_utilisateurs_2') . '<br />', |
|
| 63 | - 'valeur' => $statut_ldap, |
|
| 64 | - 'alternatives' => $statuts |
|
| 65 | - ) |
|
| 66 | - ) |
|
| 67 | - ) |
|
| 68 | - . install_ldap_correspondances() |
|
| 69 | - . bouton_suivant(); |
|
| 70 | - |
|
| 71 | - echo generer_form_ecrire('install', $res); |
|
| 72 | - } |
|
| 73 | - |
|
| 74 | - echo install_fin_html(); |
|
| 21 | + $adresse_ldap = _request('adresse_ldap'); |
|
| 22 | + $login_ldap = _request('login_ldap'); |
|
| 23 | + $pass_ldap = _request('pass_ldap'); |
|
| 24 | + $port_ldap = _request('port_ldap'); |
|
| 25 | + $base_ldap = _request('base_ldap'); |
|
| 26 | + $base_ldap_text = _request('base_ldap_text'); |
|
| 27 | + if (!$base_ldap) { |
|
| 28 | + $base_ldap = $base_ldap_text; |
|
| 29 | + } |
|
| 30 | + |
|
| 31 | + echo install_debut_html('AUTO', ' onload="document.getElementById(\'suivant\').focus();return false;"'); |
|
| 32 | + |
|
| 33 | + $ldap_link = ldap_connect($adresse_ldap, $port_ldap); |
|
| 34 | + @ldap_bind($ldap_link, $login_ldap, $pass_ldap); |
|
| 35 | + |
|
| 36 | + // Essayer de verifier le chemin fourni |
|
| 37 | + $r = @ldap_compare($ldap_link, $base_ldap, 'objectClass', ''); |
|
| 38 | + $fail = (ldap_errno($ldap_link) == 32); |
|
| 39 | + |
|
| 40 | + if ($fail) { |
|
| 41 | + echo info_etape(_T('info_chemin_acces_annuaire')), |
|
| 42 | + info_progression_etape(3, 'etape_ldap', 'install/', true), |
|
| 43 | + "<div class='error'><p><b>" . _T('avis_operation_echec') . '</b></p><p>' . _T('avis_chemin_invalide_1'), |
|
| 44 | + ' (<tt>' . spip_htmlspecialchars($base_ldap) . '</tt>) ' . _T('avis_chemin_invalide_2') . '</p></div>'; |
|
| 45 | + } else { |
|
| 46 | + info_etape(_T('info_reglage_ldap')); |
|
| 47 | + echo info_progression_etape(4, 'etape_ldap', 'install/'); |
|
| 48 | + |
|
| 49 | + $statuts = liste_statuts_ldap(); |
|
| 50 | + $statut_ldap = defined('_INSTALL_STATUT_LDAP') |
|
| 51 | + ? _INSTALL_STATUT_LDAP |
|
| 52 | + : $GLOBALS['liste_des_statuts']['info_redacteurs']; |
|
| 53 | + |
|
| 54 | + |
|
| 55 | + $res = install_propager(array('adresse_ldap', 'port_ldap', 'login_ldap', 'pass_ldap', 'protocole_ldap', 'tls_ldap')) |
|
| 56 | + . "<input type='hidden' name='etape' value='ldap5' />" |
|
| 57 | + . "<input type='hidden' name='base_ldap' value='" . spip_htmlentities($base_ldap) . "' />" |
|
| 58 | + . fieldset( |
|
| 59 | + _T('info_statut_utilisateurs_1'), |
|
| 60 | + array( |
|
| 61 | + 'statut_ldap' => array( |
|
| 62 | + 'label' => _T('info_statut_utilisateurs_2') . '<br />', |
|
| 63 | + 'valeur' => $statut_ldap, |
|
| 64 | + 'alternatives' => $statuts |
|
| 65 | + ) |
|
| 66 | + ) |
|
| 67 | + ) |
|
| 68 | + . install_ldap_correspondances() |
|
| 69 | + . bouton_suivant(); |
|
| 70 | + |
|
| 71 | + echo generer_form_ecrire('install', $res); |
|
| 72 | + } |
|
| 73 | + |
|
| 74 | + echo install_fin_html(); |
|
| 75 | 75 | } |
| 76 | 76 | |
| 77 | 77 | // https://code.spip.net/@liste_statuts_ldap |
| 78 | 78 | function liste_statuts_ldap() { |
| 79 | - $recom = array( |
|
| 80 | - 'info_administrateurs' => ('<b>' . _T('info_administrateur_1') . '</b> ' . _T('info_administrateur_2') . '<br />'), |
|
| 81 | - 'info_redacteurs' => ('<b>' . _T('info_redacteur_1') . '</b> ' . _T('info_redacteur_2') . '<br />'), |
|
| 82 | - 'info_visiteurs' => ('<b>' . _T('info_visiteur_1') . '</b> ' . _T('info_visiteur_2') . '<br />') |
|
| 83 | - ); |
|
| 84 | - |
|
| 85 | - $res = array(); |
|
| 86 | - foreach ($GLOBALS['liste_des_statuts'] as $k => $v) { |
|
| 87 | - if (isset($recom[$k])) { |
|
| 88 | - $res[$v] = $recom[$k]; |
|
| 89 | - } |
|
| 90 | - } |
|
| 91 | - |
|
| 92 | - return $res; |
|
| 79 | + $recom = array( |
|
| 80 | + 'info_administrateurs' => ('<b>' . _T('info_administrateur_1') . '</b> ' . _T('info_administrateur_2') . '<br />'), |
|
| 81 | + 'info_redacteurs' => ('<b>' . _T('info_redacteur_1') . '</b> ' . _T('info_redacteur_2') . '<br />'), |
|
| 82 | + 'info_visiteurs' => ('<b>' . _T('info_visiteur_1') . '</b> ' . _T('info_visiteur_2') . '<br />') |
|
| 83 | + ); |
|
| 84 | + |
|
| 85 | + $res = array(); |
|
| 86 | + foreach ($GLOBALS['liste_des_statuts'] as $k => $v) { |
|
| 87 | + if (isset($recom[$k])) { |
|
| 88 | + $res[$v] = $recom[$k]; |
|
| 89 | + } |
|
| 90 | + } |
|
| 91 | + |
|
| 92 | + return $res; |
|
| 93 | 93 | } |
| 94 | 94 | |
| 95 | 95 | function install_ldap_correspondances() { |
| 96 | - $champs = array(); |
|
| 97 | - foreach (is_array($GLOBALS['ldap_attributes']) ? $GLOBALS['ldap_attributes'] : array() as $champ => $v) { |
|
| 98 | - $nom = 'ldap_' . $champ; |
|
| 99 | - $val = is_array($v) ? join(',', $v) : strval($v); |
|
| 100 | - $champs[$nom] = array( |
|
| 101 | - 'label' => _T('ldap_correspondance', array('champ' => "<tt>$champ</tt>")) . '<br />', |
|
| 102 | - 'valeur' => $val |
|
| 103 | - ); |
|
| 104 | - } |
|
| 105 | - |
|
| 106 | - return !$champs ? |
|
| 107 | - '' : fieldset(_T('ldap_correspondance_1'), $champs, '', _T('ldap_correspondance_2') . '<br /><br />'); |
|
| 96 | + $champs = array(); |
|
| 97 | + foreach (is_array($GLOBALS['ldap_attributes']) ? $GLOBALS['ldap_attributes'] : array() as $champ => $v) { |
|
| 98 | + $nom = 'ldap_' . $champ; |
|
| 99 | + $val = is_array($v) ? join(',', $v) : strval($v); |
|
| 100 | + $champs[$nom] = array( |
|
| 101 | + 'label' => _T('ldap_correspondance', array('champ' => "<tt>$champ</tt>")) . '<br />', |
|
| 102 | + 'valeur' => $val |
|
| 103 | + ); |
|
| 104 | + } |
|
| 105 | + |
|
| 106 | + return !$champs ? |
|
| 107 | + '' : fieldset(_T('ldap_correspondance_1'), $champs, '', _T('ldap_correspondance_2') . '<br /><br />'); |
|
| 108 | 108 | } |
@@ -40,8 +40,8 @@ discard block |
||
| 40 | 40 | if ($fail) { |
| 41 | 41 | echo info_etape(_T('info_chemin_acces_annuaire')), |
| 42 | 42 | info_progression_etape(3, 'etape_ldap', 'install/', true), |
| 43 | - "<div class='error'><p><b>" . _T('avis_operation_echec') . '</b></p><p>' . _T('avis_chemin_invalide_1'), |
|
| 44 | - ' (<tt>' . spip_htmlspecialchars($base_ldap) . '</tt>) ' . _T('avis_chemin_invalide_2') . '</p></div>'; |
|
| 43 | + "<div class='error'><p><b>"._T('avis_operation_echec').'</b></p><p>'._T('avis_chemin_invalide_1'), |
|
| 44 | + ' (<tt>'.spip_htmlspecialchars($base_ldap).'</tt>) '._T('avis_chemin_invalide_2').'</p></div>'; |
|
| 45 | 45 | } else { |
| 46 | 46 | info_etape(_T('info_reglage_ldap')); |
| 47 | 47 | echo info_progression_etape(4, 'etape_ldap', 'install/'); |
@@ -54,12 +54,12 @@ discard block |
||
| 54 | 54 | |
| 55 | 55 | $res = install_propager(array('adresse_ldap', 'port_ldap', 'login_ldap', 'pass_ldap', 'protocole_ldap', 'tls_ldap')) |
| 56 | 56 | . "<input type='hidden' name='etape' value='ldap5' />" |
| 57 | - . "<input type='hidden' name='base_ldap' value='" . spip_htmlentities($base_ldap) . "' />" |
|
| 57 | + . "<input type='hidden' name='base_ldap' value='".spip_htmlentities($base_ldap)."' />" |
|
| 58 | 58 | . fieldset( |
| 59 | 59 | _T('info_statut_utilisateurs_1'), |
| 60 | 60 | array( |
| 61 | 61 | 'statut_ldap' => array( |
| 62 | - 'label' => _T('info_statut_utilisateurs_2') . '<br />', |
|
| 62 | + 'label' => _T('info_statut_utilisateurs_2').'<br />', |
|
| 63 | 63 | 'valeur' => $statut_ldap, |
| 64 | 64 | 'alternatives' => $statuts |
| 65 | 65 | ) |
@@ -77,9 +77,9 @@ discard block |
||
| 77 | 77 | // https://code.spip.net/@liste_statuts_ldap |
| 78 | 78 | function liste_statuts_ldap() { |
| 79 | 79 | $recom = array( |
| 80 | - 'info_administrateurs' => ('<b>' . _T('info_administrateur_1') . '</b> ' . _T('info_administrateur_2') . '<br />'), |
|
| 81 | - 'info_redacteurs' => ('<b>' . _T('info_redacteur_1') . '</b> ' . _T('info_redacteur_2') . '<br />'), |
|
| 82 | - 'info_visiteurs' => ('<b>' . _T('info_visiteur_1') . '</b> ' . _T('info_visiteur_2') . '<br />') |
|
| 80 | + 'info_administrateurs' => ('<b>'._T('info_administrateur_1').'</b> '._T('info_administrateur_2').'<br />'), |
|
| 81 | + 'info_redacteurs' => ('<b>'._T('info_redacteur_1').'</b> '._T('info_redacteur_2').'<br />'), |
|
| 82 | + 'info_visiteurs' => ('<b>'._T('info_visiteur_1').'</b> '._T('info_visiteur_2').'<br />') |
|
| 83 | 83 | ); |
| 84 | 84 | |
| 85 | 85 | $res = array(); |
@@ -95,14 +95,14 @@ discard block |
||
| 95 | 95 | function install_ldap_correspondances() { |
| 96 | 96 | $champs = array(); |
| 97 | 97 | foreach (is_array($GLOBALS['ldap_attributes']) ? $GLOBALS['ldap_attributes'] : array() as $champ => $v) { |
| 98 | - $nom = 'ldap_' . $champ; |
|
| 98 | + $nom = 'ldap_'.$champ; |
|
| 99 | 99 | $val = is_array($v) ? join(',', $v) : strval($v); |
| 100 | 100 | $champs[$nom] = array( |
| 101 | - 'label' => _T('ldap_correspondance', array('champ' => "<tt>$champ</tt>")) . '<br />', |
|
| 101 | + 'label' => _T('ldap_correspondance', array('champ' => "<tt>$champ</tt>")).'<br />', |
|
| 102 | 102 | 'valeur' => $val |
| 103 | 103 | ); |
| 104 | 104 | } |
| 105 | 105 | |
| 106 | 106 | return !$champs ? |
| 107 | - '' : fieldset(_T('ldap_correspondance_1'), $champs, '', _T('ldap_correspondance_2') . '<br /><br />'); |
|
| 107 | + '' : fieldset(_T('ldap_correspondance_1'), $champs, '', _T('ldap_correspondance_2').'<br /><br />'); |
|
| 108 | 108 | } |
@@ -16,7 +16,7 @@ discard block |
||
| 16 | 16 | * @package SPIP\Core\Installation |
| 17 | 17 | **/ |
| 18 | 18 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 19 | - return; |
|
| 19 | + return; |
|
| 20 | 20 | } |
| 21 | 21 | |
| 22 | 22 | include_spip('inc/acces'); |
@@ -33,18 +33,18 @@ discard block |
||
| 33 | 33 | * @return bool |
| 34 | 34 | */ |
| 35 | 35 | function base_determine_autoinc($table, $desc = array()) { |
| 36 | - if ($t = lister_tables_principales() and isset($t[$table])) { |
|
| 37 | - $autoinc = true; |
|
| 38 | - } elseif ($t = lister_tables_auxiliaires() and isset($t[$table])) { |
|
| 39 | - $autoinc = false; |
|
| 40 | - } else { |
|
| 41 | - // essayer de faire au mieux ! |
|
| 42 | - $autoinc = (isset($desc['key']['PRIMARY KEY']) |
|
| 43 | - and strpos($desc['key']['PRIMARY KEY'], ',') === false |
|
| 44 | - and strpos($desc['field'][$desc['key']['PRIMARY KEY']], 'default') === false); |
|
| 45 | - } |
|
| 36 | + if ($t = lister_tables_principales() and isset($t[$table])) { |
|
| 37 | + $autoinc = true; |
|
| 38 | + } elseif ($t = lister_tables_auxiliaires() and isset($t[$table])) { |
|
| 39 | + $autoinc = false; |
|
| 40 | + } else { |
|
| 41 | + // essayer de faire au mieux ! |
|
| 42 | + $autoinc = (isset($desc['key']['PRIMARY KEY']) |
|
| 43 | + and strpos($desc['key']['PRIMARY KEY'], ',') === false |
|
| 44 | + and strpos($desc['field'][$desc['key']['PRIMARY KEY']], 'default') === false); |
|
| 45 | + } |
|
| 46 | 46 | |
| 47 | - return $autoinc; |
|
| 47 | + return $autoinc; |
|
| 48 | 48 | } |
| 49 | 49 | |
| 50 | 50 | /** |
@@ -61,59 +61,59 @@ discard block |
||
| 61 | 61 | * @return void |
| 62 | 62 | */ |
| 63 | 63 | function creer_ou_upgrader_table($table, $desc, $autoinc, $upgrade = false, $serveur = '') { |
| 64 | - #spip_log("creer_ou_upgrader_table table=$table autoinc=$autoinc upgrade=$upgrade","dbinstall"._LOG_INFO_IMPORTANTE); |
|
| 65 | - $sql_desc = $upgrade ? sql_showtable($table, true, $serveur) : false; |
|
| 66 | - #if (!$sql_desc) $sql_desc = false; |
|
| 67 | - #spip_log("table=$table sql_desc:$sql_desc","dbinstall"._LOG_INFO_IMPORTANTE); |
|
| 68 | - if (!$sql_desc) { |
|
| 69 | - if ($autoinc === 'auto') { |
|
| 70 | - $autoinc = base_determine_autoinc($table, $desc); |
|
| 71 | - } |
|
| 72 | - #spip_log("sql_create $table autoinc=$autoinc","dbinstall"._LOG_INFO_IMPORTANTE); |
|
| 73 | - if (isset($desc['field']) and isset($desc['key'])) { |
|
| 74 | - sql_create($table, $desc['field'], $desc['key'], $autoinc, false, $serveur); |
|
| 75 | - } |
|
| 76 | - // verifier la bonne installation de la table (php-fpm es-tu la ?) |
|
| 77 | - $sql_desc = sql_showtable($table, true, $serveur); |
|
| 78 | - #if (!$sql_desc) $sql_desc = false; |
|
| 79 | - #spip_log("Resultat table=$table sql_desc:$sql_desc","dbinstall"._LOG_INFO_IMPORTANTE); |
|
| 80 | - if (!$sql_desc) { |
|
| 81 | - // on retente avec un sleep ? |
|
| 82 | - sleep(1); |
|
| 83 | - sql_create($table, $desc['field'], $desc['key'], $autoinc, false, $serveur); |
|
| 84 | - $sql_desc = sql_showtable($table, true, $serveur); |
|
| 85 | - #if (!$sql_desc) $sql_desc = false; |
|
| 86 | - #spip_log("Resultat table=$table sql_desc:$sql_desc","dbinstall"._LOG_INFO_IMPORTANTE); |
|
| 87 | - if (!$sql_desc) { |
|
| 88 | - spip_log("Echec creation table $table", "maj" . _LOG_CRITIQUE); |
|
| 89 | - } |
|
| 90 | - } |
|
| 91 | - } else { |
|
| 92 | - #spip_log("sql_alter $table ... (on s'en fiche)","dbinstall"._LOG_INFO_IMPORTANTE); |
|
| 93 | - // ajouter les champs manquants |
|
| 94 | - // on ne supprime jamais les champs, car c'est dangereux |
|
| 95 | - // c'est toujours a faire manuellement |
|
| 96 | - $last = ''; |
|
| 97 | - if (isset($desc['field'])) { |
|
| 98 | - foreach ($desc['field'] as $field => $type) { |
|
| 99 | - if (!isset($sql_desc['field'][$field])) { |
|
| 100 | - sql_alter("TABLE $table ADD $field $type" . ($last ? " AFTER $last" : ""), $serveur); |
|
| 101 | - } |
|
| 102 | - $last = $field; |
|
| 103 | - } |
|
| 104 | - } |
|
| 105 | - if (isset($desc['key'])) { |
|
| 106 | - foreach ($desc['key'] as $key => $type) { |
|
| 107 | - // Ne pas oublier les cas des cles non nommees dans la declaration et qui sont retournees |
|
| 108 | - // par le showtable sous la forme d'un index de tableau "KEY $type" et non "KEY" |
|
| 109 | - if (!isset($sql_desc['key'][$key]) and !isset($sql_desc['key']["$key $type"])) { |
|
| 110 | - sql_alter("TABLE $table ADD $key ($type)", $serveur); |
|
| 111 | - } |
|
| 112 | - $last = $field; |
|
| 113 | - } |
|
| 114 | - } |
|
| 64 | + #spip_log("creer_ou_upgrader_table table=$table autoinc=$autoinc upgrade=$upgrade","dbinstall"._LOG_INFO_IMPORTANTE); |
|
| 65 | + $sql_desc = $upgrade ? sql_showtable($table, true, $serveur) : false; |
|
| 66 | + #if (!$sql_desc) $sql_desc = false; |
|
| 67 | + #spip_log("table=$table sql_desc:$sql_desc","dbinstall"._LOG_INFO_IMPORTANTE); |
|
| 68 | + if (!$sql_desc) { |
|
| 69 | + if ($autoinc === 'auto') { |
|
| 70 | + $autoinc = base_determine_autoinc($table, $desc); |
|
| 71 | + } |
|
| 72 | + #spip_log("sql_create $table autoinc=$autoinc","dbinstall"._LOG_INFO_IMPORTANTE); |
|
| 73 | + if (isset($desc['field']) and isset($desc['key'])) { |
|
| 74 | + sql_create($table, $desc['field'], $desc['key'], $autoinc, false, $serveur); |
|
| 75 | + } |
|
| 76 | + // verifier la bonne installation de la table (php-fpm es-tu la ?) |
|
| 77 | + $sql_desc = sql_showtable($table, true, $serveur); |
|
| 78 | + #if (!$sql_desc) $sql_desc = false; |
|
| 79 | + #spip_log("Resultat table=$table sql_desc:$sql_desc","dbinstall"._LOG_INFO_IMPORTANTE); |
|
| 80 | + if (!$sql_desc) { |
|
| 81 | + // on retente avec un sleep ? |
|
| 82 | + sleep(1); |
|
| 83 | + sql_create($table, $desc['field'], $desc['key'], $autoinc, false, $serveur); |
|
| 84 | + $sql_desc = sql_showtable($table, true, $serveur); |
|
| 85 | + #if (!$sql_desc) $sql_desc = false; |
|
| 86 | + #spip_log("Resultat table=$table sql_desc:$sql_desc","dbinstall"._LOG_INFO_IMPORTANTE); |
|
| 87 | + if (!$sql_desc) { |
|
| 88 | + spip_log("Echec creation table $table", "maj" . _LOG_CRITIQUE); |
|
| 89 | + } |
|
| 90 | + } |
|
| 91 | + } else { |
|
| 92 | + #spip_log("sql_alter $table ... (on s'en fiche)","dbinstall"._LOG_INFO_IMPORTANTE); |
|
| 93 | + // ajouter les champs manquants |
|
| 94 | + // on ne supprime jamais les champs, car c'est dangereux |
|
| 95 | + // c'est toujours a faire manuellement |
|
| 96 | + $last = ''; |
|
| 97 | + if (isset($desc['field'])) { |
|
| 98 | + foreach ($desc['field'] as $field => $type) { |
|
| 99 | + if (!isset($sql_desc['field'][$field])) { |
|
| 100 | + sql_alter("TABLE $table ADD $field $type" . ($last ? " AFTER $last" : ""), $serveur); |
|
| 101 | + } |
|
| 102 | + $last = $field; |
|
| 103 | + } |
|
| 104 | + } |
|
| 105 | + if (isset($desc['key'])) { |
|
| 106 | + foreach ($desc['key'] as $key => $type) { |
|
| 107 | + // Ne pas oublier les cas des cles non nommees dans la declaration et qui sont retournees |
|
| 108 | + // par le showtable sous la forme d'un index de tableau "KEY $type" et non "KEY" |
|
| 109 | + if (!isset($sql_desc['key'][$key]) and !isset($sql_desc['key']["$key $type"])) { |
|
| 110 | + sql_alter("TABLE $table ADD $key ($type)", $serveur); |
|
| 111 | + } |
|
| 112 | + $last = $field; |
|
| 113 | + } |
|
| 114 | + } |
|
| 115 | 115 | |
| 116 | - } |
|
| 116 | + } |
|
| 117 | 117 | } |
| 118 | 118 | |
| 119 | 119 | /** |
@@ -135,26 +135,26 @@ discard block |
||
| 135 | 135 | * @return void |
| 136 | 136 | */ |
| 137 | 137 | function alterer_base($tables_inc, $tables_noinc, $up = false, $serveur = '') { |
| 138 | - if ($up === false) { |
|
| 139 | - $old = false; |
|
| 140 | - $up = array(); |
|
| 141 | - } else { |
|
| 142 | - $old = true; |
|
| 143 | - if (!is_array($up)) { |
|
| 144 | - $up = array($up); |
|
| 145 | - } |
|
| 146 | - } |
|
| 147 | - foreach ($tables_inc as $k => $v) { |
|
| 148 | - if (!$old or in_array($k, $up)) { |
|
| 149 | - creer_ou_upgrader_table($k, $v, true, $old, $serveur); |
|
| 150 | - } |
|
| 151 | - } |
|
| 138 | + if ($up === false) { |
|
| 139 | + $old = false; |
|
| 140 | + $up = array(); |
|
| 141 | + } else { |
|
| 142 | + $old = true; |
|
| 143 | + if (!is_array($up)) { |
|
| 144 | + $up = array($up); |
|
| 145 | + } |
|
| 146 | + } |
|
| 147 | + foreach ($tables_inc as $k => $v) { |
|
| 148 | + if (!$old or in_array($k, $up)) { |
|
| 149 | + creer_ou_upgrader_table($k, $v, true, $old, $serveur); |
|
| 150 | + } |
|
| 151 | + } |
|
| 152 | 152 | |
| 153 | - foreach ($tables_noinc as $k => $v) { |
|
| 154 | - if (!$old or in_array($k, $up)) { |
|
| 155 | - creer_ou_upgrader_table($k, $v, false, $old, $serveur); |
|
| 156 | - } |
|
| 157 | - } |
|
| 153 | + foreach ($tables_noinc as $k => $v) { |
|
| 154 | + if (!$old or in_array($k, $up)) { |
|
| 155 | + creer_ou_upgrader_table($k, $v, false, $old, $serveur); |
|
| 156 | + } |
|
| 157 | + } |
|
| 158 | 158 | } |
| 159 | 159 | |
| 160 | 160 | /** |
@@ -174,16 +174,16 @@ discard block |
||
| 174 | 174 | */ |
| 175 | 175 | function creer_base($serveur = '') { |
| 176 | 176 | |
| 177 | - // Note: les mises a jour reexecutent ce code pour s'assurer |
|
| 178 | - // de la conformite de la base |
|
| 179 | - // pas de panique sur "already exists" et "duplicate entry" donc. |
|
| 177 | + // Note: les mises a jour reexecutent ce code pour s'assurer |
|
| 178 | + // de la conformite de la base |
|
| 179 | + // pas de panique sur "already exists" et "duplicate entry" donc. |
|
| 180 | 180 | |
| 181 | - alterer_base( |
|
| 182 | - lister_tables_principales(), |
|
| 183 | - lister_tables_auxiliaires(), |
|
| 184 | - false, |
|
| 185 | - $serveur |
|
| 186 | - ); |
|
| 181 | + alterer_base( |
|
| 182 | + lister_tables_principales(), |
|
| 183 | + lister_tables_auxiliaires(), |
|
| 184 | + false, |
|
| 185 | + $serveur |
|
| 186 | + ); |
|
| 187 | 187 | } |
| 188 | 188 | |
| 189 | 189 | /** |
@@ -203,10 +203,10 @@ discard block |
||
| 203 | 203 | * @return void |
| 204 | 204 | */ |
| 205 | 205 | function maj_tables($upgrade_tables = array(), $serveur = '') { |
| 206 | - alterer_base( |
|
| 207 | - lister_tables_principales(), |
|
| 208 | - lister_tables_auxiliaires(), |
|
| 209 | - $upgrade_tables, |
|
| 210 | - $serveur |
|
| 211 | - ); |
|
| 206 | + alterer_base( |
|
| 207 | + lister_tables_principales(), |
|
| 208 | + lister_tables_auxiliaires(), |
|
| 209 | + $upgrade_tables, |
|
| 210 | + $serveur |
|
| 211 | + ); |
|
| 212 | 212 | } |
@@ -85,7 +85,7 @@ discard block |
||
| 85 | 85 | #if (!$sql_desc) $sql_desc = false; |
| 86 | 86 | #spip_log("Resultat table=$table sql_desc:$sql_desc","dbinstall"._LOG_INFO_IMPORTANTE); |
| 87 | 87 | if (!$sql_desc) { |
| 88 | - spip_log("Echec creation table $table", "maj" . _LOG_CRITIQUE); |
|
| 88 | + spip_log("Echec creation table $table", "maj"._LOG_CRITIQUE); |
|
| 89 | 89 | } |
| 90 | 90 | } |
| 91 | 91 | } else { |
@@ -97,7 +97,7 @@ discard block |
||
| 97 | 97 | if (isset($desc['field'])) { |
| 98 | 98 | foreach ($desc['field'] as $field => $type) { |
| 99 | 99 | if (!isset($sql_desc['field'][$field])) { |
| 100 | - sql_alter("TABLE $table ADD $field $type" . ($last ? " AFTER $last" : ""), $serveur); |
|
| 100 | + sql_alter("TABLE $table ADD $field $type".($last ? " AFTER $last" : ""), $serveur); |
|
| 101 | 101 | } |
| 102 | 102 | $last = $field; |
| 103 | 103 | } |
@@ -17,7 +17,7 @@ discard block |
||
| 17 | 17 | **/ |
| 18 | 18 | |
| 19 | 19 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 20 | - return; |
|
| 20 | + return; |
|
| 21 | 21 | } |
| 22 | 22 | |
| 23 | 23 | |
@@ -34,53 +34,53 @@ discard block |
||
| 34 | 34 | * @package SPIP\Core\Compilateur\AST |
| 35 | 35 | */ |
| 36 | 36 | class Contexte { |
| 37 | - /** |
|
| 38 | - * Description du squelette |
|
| 39 | - * |
|
| 40 | - * Sert pour la gestion d'erreur et la production de code dependant du contexte |
|
| 41 | - * |
|
| 42 | - * Peut contenir les index : |
|
| 43 | - * |
|
| 44 | - * - nom : Nom du fichier de cache |
|
| 45 | - * - gram : Nom de la grammaire du squelette (détermine le phraseur à utiliser) |
|
| 46 | - * - sourcefile : Chemin du squelette |
|
| 47 | - * - squelette : Code du squelette |
|
| 48 | - * - id_mere : Identifiant de la boucle parente |
|
| 49 | - * - documents : Pour embed et img dans les textes |
|
| 50 | - * - session : Pour un cache sessionné par auteur |
|
| 51 | - * - niv : Niveau de tabulation |
|
| 52 | - * |
|
| 53 | - * @var array |
|
| 54 | - */ |
|
| 55 | - public $descr = array(); |
|
| 56 | - |
|
| 57 | - /** |
|
| 58 | - * Identifiant de la boucle |
|
| 59 | - * |
|
| 60 | - * @var string |
|
| 61 | - */ |
|
| 62 | - public $id_boucle = ''; |
|
| 63 | - |
|
| 64 | - /** |
|
| 65 | - * Numéro de ligne dans le code source du squelette |
|
| 66 | - * |
|
| 67 | - * @var int |
|
| 68 | - */ |
|
| 69 | - public $ligne = 0; |
|
| 70 | - |
|
| 71 | - /** |
|
| 72 | - * Langue d'exécution |
|
| 73 | - * |
|
| 74 | - * @var string |
|
| 75 | - */ |
|
| 76 | - public $lang = ''; |
|
| 77 | - |
|
| 78 | - /** |
|
| 79 | - * Résultat de la compilation: toujours une expression PHP |
|
| 80 | - * |
|
| 81 | - * @var string |
|
| 82 | - */ |
|
| 83 | - public $code = ''; |
|
| 37 | + /** |
|
| 38 | + * Description du squelette |
|
| 39 | + * |
|
| 40 | + * Sert pour la gestion d'erreur et la production de code dependant du contexte |
|
| 41 | + * |
|
| 42 | + * Peut contenir les index : |
|
| 43 | + * |
|
| 44 | + * - nom : Nom du fichier de cache |
|
| 45 | + * - gram : Nom de la grammaire du squelette (détermine le phraseur à utiliser) |
|
| 46 | + * - sourcefile : Chemin du squelette |
|
| 47 | + * - squelette : Code du squelette |
|
| 48 | + * - id_mere : Identifiant de la boucle parente |
|
| 49 | + * - documents : Pour embed et img dans les textes |
|
| 50 | + * - session : Pour un cache sessionné par auteur |
|
| 51 | + * - niv : Niveau de tabulation |
|
| 52 | + * |
|
| 53 | + * @var array |
|
| 54 | + */ |
|
| 55 | + public $descr = array(); |
|
| 56 | + |
|
| 57 | + /** |
|
| 58 | + * Identifiant de la boucle |
|
| 59 | + * |
|
| 60 | + * @var string |
|
| 61 | + */ |
|
| 62 | + public $id_boucle = ''; |
|
| 63 | + |
|
| 64 | + /** |
|
| 65 | + * Numéro de ligne dans le code source du squelette |
|
| 66 | + * |
|
| 67 | + * @var int |
|
| 68 | + */ |
|
| 69 | + public $ligne = 0; |
|
| 70 | + |
|
| 71 | + /** |
|
| 72 | + * Langue d'exécution |
|
| 73 | + * |
|
| 74 | + * @var string |
|
| 75 | + */ |
|
| 76 | + public $lang = ''; |
|
| 77 | + |
|
| 78 | + /** |
|
| 79 | + * Résultat de la compilation: toujours une expression PHP |
|
| 80 | + * |
|
| 81 | + * @var string |
|
| 82 | + */ |
|
| 83 | + public $code = ''; |
|
| 84 | 84 | } |
| 85 | 85 | |
| 86 | 86 | |
@@ -90,44 +90,44 @@ discard block |
||
| 90 | 90 | * @package SPIP\Core\Compilateur\AST |
| 91 | 91 | **/ |
| 92 | 92 | class Texte { |
| 93 | - /** |
|
| 94 | - * Type de noeud |
|
| 95 | - * |
|
| 96 | - * @var string |
|
| 97 | - */ |
|
| 98 | - public $type = 'texte'; |
|
| 99 | - |
|
| 100 | - /** |
|
| 101 | - * Le texte |
|
| 102 | - * |
|
| 103 | - * @var string |
|
| 104 | - */ |
|
| 105 | - public $texte; |
|
| 106 | - |
|
| 107 | - /** |
|
| 108 | - * Contenu avant le texte. |
|
| 109 | - * |
|
| 110 | - * Vide ou apostrophe simple ou double si le texte en était entouré |
|
| 111 | - * |
|
| 112 | - * @var string|array |
|
| 113 | - */ |
|
| 114 | - public $avant = ""; |
|
| 115 | - |
|
| 116 | - /** |
|
| 117 | - * Contenu après le texte. |
|
| 118 | - * |
|
| 119 | - * Vide ou apostrophe simple ou double si le texte en était entouré |
|
| 120 | - * |
|
| 121 | - * @var string|array |
|
| 122 | - */ |
|
| 123 | - public $apres = ""; |
|
| 124 | - |
|
| 125 | - /** |
|
| 126 | - * Numéro de ligne dans le code source du squelette |
|
| 127 | - * |
|
| 128 | - * @var int |
|
| 129 | - */ |
|
| 130 | - public $ligne = 0; |
|
| 93 | + /** |
|
| 94 | + * Type de noeud |
|
| 95 | + * |
|
| 96 | + * @var string |
|
| 97 | + */ |
|
| 98 | + public $type = 'texte'; |
|
| 99 | + |
|
| 100 | + /** |
|
| 101 | + * Le texte |
|
| 102 | + * |
|
| 103 | + * @var string |
|
| 104 | + */ |
|
| 105 | + public $texte; |
|
| 106 | + |
|
| 107 | + /** |
|
| 108 | + * Contenu avant le texte. |
|
| 109 | + * |
|
| 110 | + * Vide ou apostrophe simple ou double si le texte en était entouré |
|
| 111 | + * |
|
| 112 | + * @var string|array |
|
| 113 | + */ |
|
| 114 | + public $avant = ""; |
|
| 115 | + |
|
| 116 | + /** |
|
| 117 | + * Contenu après le texte. |
|
| 118 | + * |
|
| 119 | + * Vide ou apostrophe simple ou double si le texte en était entouré |
|
| 120 | + * |
|
| 121 | + * @var string|array |
|
| 122 | + */ |
|
| 123 | + public $apres = ""; |
|
| 124 | + |
|
| 125 | + /** |
|
| 126 | + * Numéro de ligne dans le code source du squelette |
|
| 127 | + * |
|
| 128 | + * @var int |
|
| 129 | + */ |
|
| 130 | + public $ligne = 0; |
|
| 131 | 131 | } |
| 132 | 132 | |
| 133 | 133 | /** |
@@ -136,50 +136,50 @@ discard block |
||
| 136 | 136 | * @package SPIP\Core\Compilateur\AST |
| 137 | 137 | **/ |
| 138 | 138 | class Inclure { |
| 139 | - /** |
|
| 140 | - * Type de noeud |
|
| 141 | - * |
|
| 142 | - * @var string |
|
| 143 | - */ |
|
| 144 | - public $type = 'include'; |
|
| 145 | - |
|
| 146 | - /** |
|
| 147 | - * Nom d'un fichier inclu |
|
| 148 | - * |
|
| 149 | - * - Objet Texte si inclusion d'un autre squelette |
|
| 150 | - * - chaîne si inclusion d'un fichier PHP directement |
|
| 151 | - * |
|
| 152 | - * @var string|Texte |
|
| 153 | - */ |
|
| 154 | - public $texte; |
|
| 155 | - |
|
| 156 | - /** |
|
| 157 | - * Inutilisé, propriété générique de l'AST |
|
| 158 | - * |
|
| 159 | - * @var string|array |
|
| 160 | - */ |
|
| 161 | - public $avant = ''; |
|
| 162 | - |
|
| 163 | - /** |
|
| 164 | - * Inutilisé, propriété générique de l'AST |
|
| 165 | - * |
|
| 166 | - * @var string|array |
|
| 167 | - */ |
|
| 168 | - public $apres = ''; |
|
| 169 | - |
|
| 170 | - /** |
|
| 171 | - * Numéro de ligne dans le code source du squelette |
|
| 172 | - * |
|
| 173 | - * @var int |
|
| 174 | - */ |
|
| 175 | - public $ligne = 0; |
|
| 176 | - |
|
| 177 | - /** |
|
| 178 | - * Valeurs des paramètres |
|
| 179 | - * |
|
| 180 | - * @var array |
|
| 181 | - */ |
|
| 182 | - public $param = array(); |
|
| 139 | + /** |
|
| 140 | + * Type de noeud |
|
| 141 | + * |
|
| 142 | + * @var string |
|
| 143 | + */ |
|
| 144 | + public $type = 'include'; |
|
| 145 | + |
|
| 146 | + /** |
|
| 147 | + * Nom d'un fichier inclu |
|
| 148 | + * |
|
| 149 | + * - Objet Texte si inclusion d'un autre squelette |
|
| 150 | + * - chaîne si inclusion d'un fichier PHP directement |
|
| 151 | + * |
|
| 152 | + * @var string|Texte |
|
| 153 | + */ |
|
| 154 | + public $texte; |
|
| 155 | + |
|
| 156 | + /** |
|
| 157 | + * Inutilisé, propriété générique de l'AST |
|
| 158 | + * |
|
| 159 | + * @var string|array |
|
| 160 | + */ |
|
| 161 | + public $avant = ''; |
|
| 162 | + |
|
| 163 | + /** |
|
| 164 | + * Inutilisé, propriété générique de l'AST |
|
| 165 | + * |
|
| 166 | + * @var string|array |
|
| 167 | + */ |
|
| 168 | + public $apres = ''; |
|
| 169 | + |
|
| 170 | + /** |
|
| 171 | + * Numéro de ligne dans le code source du squelette |
|
| 172 | + * |
|
| 173 | + * @var int |
|
| 174 | + */ |
|
| 175 | + public $ligne = 0; |
|
| 176 | + |
|
| 177 | + /** |
|
| 178 | + * Valeurs des paramètres |
|
| 179 | + * |
|
| 180 | + * @var array |
|
| 181 | + */ |
|
| 182 | + public $param = array(); |
|
| 183 | 183 | } |
| 184 | 184 | |
| 185 | 185 | |
@@ -189,384 +189,384 @@ discard block |
||
| 189 | 189 | * @package SPIP\Core\Compilateur\AST |
| 190 | 190 | **/ |
| 191 | 191 | class Boucle { |
| 192 | - /** |
|
| 193 | - * Type de noeud |
|
| 194 | - * |
|
| 195 | - * @var string |
|
| 196 | - */ |
|
| 197 | - public $type = 'boucle'; |
|
| 198 | - |
|
| 199 | - /** |
|
| 200 | - * Identifiant de la boucle |
|
| 201 | - * |
|
| 202 | - * @var string |
|
| 203 | - */ |
|
| 204 | - public $id_boucle; |
|
| 205 | - |
|
| 206 | - /** |
|
| 207 | - * Identifiant de la boucle parente |
|
| 208 | - * |
|
| 209 | - * @var string |
|
| 210 | - */ |
|
| 211 | - public $id_parent = ''; |
|
| 212 | - |
|
| 213 | - /** |
|
| 214 | - * Partie avant toujours affichee |
|
| 215 | - * |
|
| 216 | - * @var string|array |
|
| 217 | - */ |
|
| 218 | - public $preaff = ''; |
|
| 219 | - |
|
| 220 | - /** |
|
| 221 | - * Partie optionnelle avant |
|
| 222 | - * |
|
| 223 | - * @var string|array |
|
| 224 | - */ |
|
| 225 | - public $avant = ''; |
|
| 226 | - |
|
| 227 | - /** |
|
| 228 | - * Pour chaque élément |
|
| 229 | - * |
|
| 230 | - * @var string|array |
|
| 231 | - */ |
|
| 232 | - public $milieu = ''; |
|
| 233 | - |
|
| 234 | - /** |
|
| 235 | - * Partie optionnelle après |
|
| 236 | - * |
|
| 237 | - * @var string|array |
|
| 238 | - */ |
|
| 239 | - public $apres = ''; |
|
| 240 | - |
|
| 241 | - /** |
|
| 242 | - * Partie alternative, si pas de résultat dans la boucle |
|
| 243 | - * |
|
| 244 | - * @var string|array |
|
| 245 | - */ |
|
| 246 | - public $altern = ''; |
|
| 247 | - |
|
| 248 | - /** |
|
| 249 | - * Partie apres toujours affichee |
|
| 250 | - * |
|
| 251 | - * @var string|array |
|
| 252 | - */ |
|
| 253 | - public $postaff = ''; |
|
| 254 | - |
|
| 255 | - |
|
| 256 | - /** |
|
| 257 | - * La boucle doit-elle sélectionner la langue ? |
|
| 258 | - * |
|
| 259 | - * @var string|null |
|
| 260 | - */ |
|
| 261 | - public $lang_select; |
|
| 262 | - |
|
| 263 | - /** |
|
| 264 | - * Alias de table d'application de la requête ou nom complet de la table SQL |
|
| 265 | - * |
|
| 266 | - * @var string|null |
|
| 267 | - */ |
|
| 268 | - public $type_requete; |
|
| 269 | - |
|
| 270 | - /** |
|
| 271 | - * La table est elle optionnelle ? |
|
| 272 | - * |
|
| 273 | - * Si oui, aucune erreur ne sera générée si la table demandée n'est pas présente |
|
| 274 | - * |
|
| 275 | - * @var bool |
|
| 276 | - */ |
|
| 277 | - public $table_optionnelle = false; |
|
| 278 | - |
|
| 279 | - /** |
|
| 280 | - * Nom du fichier de connexion |
|
| 281 | - * |
|
| 282 | - * @var string |
|
| 283 | - */ |
|
| 284 | - public $sql_serveur = ''; |
|
| 285 | - |
|
| 286 | - /** |
|
| 287 | - * Paramètres de la boucle |
|
| 288 | - * |
|
| 289 | - * Description des paramètres passés à la boucle, qui servent ensuite |
|
| 290 | - * au calcul des critères |
|
| 291 | - * |
|
| 292 | - * @var array |
|
| 293 | - */ |
|
| 294 | - public $param = array(); |
|
| 295 | - |
|
| 296 | - /** |
|
| 297 | - * Critères de la boucle |
|
| 298 | - * |
|
| 299 | - * @var Critere[] |
|
| 300 | - */ |
|
| 301 | - public $criteres = array(); |
|
| 302 | - |
|
| 303 | - /** |
|
| 304 | - * Textes insérés entre 2 éléments de boucle (critère inter) |
|
| 305 | - * |
|
| 306 | - * @var string[] |
|
| 307 | - */ |
|
| 308 | - public $separateur = array(); |
|
| 309 | - |
|
| 310 | - /** |
|
| 311 | - * Liste des jointures possibles avec cette table |
|
| 312 | - * |
|
| 313 | - * Les jointures par défaut de la table sont complétées en priorité |
|
| 314 | - * des jointures déclarées explicitement sur la boucle |
|
| 315 | - * |
|
| 316 | - * @see base_trouver_table_dist() |
|
| 317 | - * @var array |
|
| 318 | - */ |
|
| 319 | - public $jointures = array(); |
|
| 320 | - |
|
| 321 | - /** |
|
| 322 | - * Jointures explicites avec cette table |
|
| 323 | - * |
|
| 324 | - * Ces jointures sont utilisées en priorité par rapport aux jointures |
|
| 325 | - * normales possibles pour retrouver les colonnes demandées extérieures |
|
| 326 | - * à la boucle. |
|
| 327 | - * |
|
| 328 | - * @var string|bool |
|
| 329 | - */ |
|
| 330 | - public $jointures_explicites = false; |
|
| 331 | - |
|
| 332 | - /** |
|
| 333 | - * Nom de la variable PHP stockant le noms de doublons utilisés "$doublons_index" |
|
| 334 | - * |
|
| 335 | - * @var string|null |
|
| 336 | - */ |
|
| 337 | - public $doublons; |
|
| 338 | - |
|
| 339 | - /** |
|
| 340 | - * Code PHP ajouté au début de chaque itération de boucle. |
|
| 341 | - * |
|
| 342 | - * Utilisé entre autre par les critères {pagination}, {n-a,b}, {a/b}... |
|
| 343 | - * |
|
| 344 | - * @var string |
|
| 345 | - */ |
|
| 346 | - public $partie = ""; |
|
| 347 | - |
|
| 348 | - /** |
|
| 349 | - * Nombre de divisions de la boucle, d'éléments à afficher, |
|
| 350 | - * ou de soustractions d'éléments à faire |
|
| 351 | - * |
|
| 352 | - * Dans les critères limitant le nombre d'éléments affichés |
|
| 353 | - * {a,b}, {a,n-b}, {a/b}, {pagination b}, b est affecté à total_parties. |
|
| 354 | - * |
|
| 355 | - * @var string |
|
| 356 | - */ |
|
| 357 | - public $total_parties = ""; |
|
| 358 | - |
|
| 359 | - /** |
|
| 360 | - * Code PHP ajouté avant l'itération de boucle. |
|
| 361 | - * |
|
| 362 | - * Utilisé entre autre par les critères {pagination}, {a,b}, {a/b} |
|
| 363 | - * pour initialiser les variables de début et de fin d'itération. |
|
| 364 | - * |
|
| 365 | - * @var string |
|
| 366 | - */ |
|
| 367 | - public $mode_partie = ''; |
|
| 368 | - |
|
| 369 | - /** |
|
| 370 | - * Identifiant d'une boucle qui appelle celle-ci de manière récursive |
|
| 371 | - * |
|
| 372 | - * Si une boucle est appelée de manière récursive quelque part par |
|
| 373 | - * une autre boucle comme <BOUCLE_rec(boucle_identifiant) />, cette |
|
| 374 | - * boucle (identifiant) reçoit dans cette propriété l'identifiant |
|
| 375 | - * de l'appelant (rec) |
|
| 376 | - * |
|
| 377 | - * @var string |
|
| 378 | - */ |
|
| 379 | - public $externe = ''; |
|
| 380 | - |
|
| 381 | - // champs pour la construction de la requete SQL |
|
| 382 | - |
|
| 383 | - /** |
|
| 384 | - * Liste des champs à récupérer par la boucle |
|
| 385 | - * |
|
| 386 | - * Expression 'table.nom_champ' ou calculée 'nom_champ AS x' |
|
| 387 | - * |
|
| 388 | - * @var string[] |
|
| 389 | - */ |
|
| 390 | - public $select = array(); |
|
| 391 | - |
|
| 392 | - /** |
|
| 393 | - * Liste des alias / tables SQL utilisées dans la boucle |
|
| 394 | - * |
|
| 395 | - * L'index est un identifiant (xx dans spip_xx assez souvent) qui servira |
|
| 396 | - * d'alias au nom de la table ; la valeur est le nom de la table SQL désirée. |
|
| 397 | - * |
|
| 398 | - * L'index 0 peut définir le type de sources de données de l'itérateur DATA |
|
| 399 | - * |
|
| 400 | - * @var string[] |
|
| 401 | - */ |
|
| 402 | - public $from = array(); |
|
| 403 | - |
|
| 404 | - /** |
|
| 405 | - * Liste des alias / type de jointures utilisées dans la boucle |
|
| 406 | - * |
|
| 407 | - * L'index est le nom d'alias (comme pour la propriété $from), et la valeur |
|
| 408 | - * un type de jointure parmi 'INNER', 'LEFT', 'RIGHT', 'OUTER'. |
|
| 409 | - * |
|
| 410 | - * Lorsque le type n'est pas déclaré pour un alias, c'est 'INNER' |
|
| 411 | - * qui sera utilisé par défaut (créant donc un INNER JOIN). |
|
| 412 | - * |
|
| 413 | - * @var string[] |
|
| 414 | - */ |
|
| 415 | - public $from_type = array(); |
|
| 416 | - |
|
| 417 | - /** |
|
| 418 | - * Liste des conditions WHERE de la boucle |
|
| 419 | - * |
|
| 420 | - * Permet de restreindre les éléments retournés par une boucle |
|
| 421 | - * en fonctions des conditions transmises dans ce tableau. |
|
| 422 | - * |
|
| 423 | - * Ce tableau peut avoir plusieurs niveaux de profondeur. |
|
| 424 | - * |
|
| 425 | - * Les éléments du premier niveau sont reliés par des AND, donc |
|
| 426 | - * chaque élément ajouté directement au where par |
|
| 427 | - * $boucle->where[] = array(...) ou $boucle->where[] = "'expression'" |
|
| 428 | - * est une condition AND en plus. |
|
| 429 | - * |
|
| 430 | - * Par contre, lorsqu'on indique un tableau, il peut décrire des relations |
|
| 431 | - * internes différentes. Soit $expr un tableau d'expressions quelconques de 3 valeurs : |
|
| 432 | - * $expr = array(operateur, val1, val2) |
|
| 433 | - * |
|
| 434 | - * Ces 3 valeurs sont des expressions PHP. L'index 0 désigne l'opérateur |
|
| 435 | - * à réaliser tel que : |
|
| 436 | - * |
|
| 437 | - * - "'='" , "'>='", "'<'", "'IN'", "'REGEXP'", "'LIKE'", ... : |
|
| 438 | - * val1 et val2 sont des champs et valeurs à utiliser dans la comparaison |
|
| 439 | - * suivant cet ordre : "val1 operateur val2". |
|
| 440 | - * Exemple : $boucle->where[] = array("'='", "'articles.statut'", "'\"publie\"'"); |
|
| 441 | - * - "'AND'", "'OR'", "'NOT'" : |
|
| 442 | - * dans ce cas val1 et val2 sont également des expressions |
|
| 443 | - * de comparaison complètes, et peuvent être eux-même des tableaux comme $expr |
|
| 444 | - * Exemples : |
|
| 445 | - * $boucle->where[] = array("'OR'", $expr1, $expr2); |
|
| 446 | - * $boucle->where[] = array("'NOT'", $expr); // val2 n'existe pas avec NOT |
|
| 447 | - * |
|
| 448 | - * D'autres noms sont possibles pour l'opérateur (le nombre de valeurs diffère) : |
|
| 449 | - * - "'SELF'", "'SUBSELECT'" : indiquent des sous requêtes |
|
| 450 | - * - "'?'" : indique une condition à faire évaluer (val1 ? val2 : val3) |
|
| 451 | - * |
|
| 452 | - * @var array |
|
| 453 | - */ |
|
| 454 | - public $where = array(); |
|
| 455 | - |
|
| 456 | - public $join = array(); |
|
| 457 | - public $having = array(); |
|
| 458 | - public $limit; |
|
| 459 | - public $group = array(); |
|
| 460 | - public $order = array(); |
|
| 461 | - public $default_order = array(); |
|
| 462 | - public $date = 'date'; |
|
| 463 | - public $hash = ""; |
|
| 464 | - public $in = ""; |
|
| 465 | - public $sous_requete = false; |
|
| 466 | - |
|
| 467 | - /** |
|
| 468 | - * Code PHP qui sera ajouté en tout début de la fonction de boucle |
|
| 469 | - * |
|
| 470 | - * Il sert à insérer le code calculant une hierarchie |
|
| 471 | - * |
|
| 472 | - * @var string |
|
| 473 | - */ |
|
| 474 | - public $hierarchie = ''; |
|
| 475 | - |
|
| 476 | - /** |
|
| 477 | - * Indique la présence d'un critère sur le statut |
|
| 478 | - * |
|
| 479 | - * @deprecated Remplacé par $boucle->modificateur['criteres']['statut'] |
|
| 480 | - * @var bool |
|
| 481 | - */ |
|
| 482 | - public $statut = false; |
|
| 483 | - |
|
| 484 | - // champs pour la construction du corps PHP |
|
| 485 | - |
|
| 486 | - /** |
|
| 487 | - * Description des sources de données de la boucle |
|
| 488 | - * |
|
| 489 | - * Description des données de la boucle issu de trouver_table |
|
| 490 | - * dans le cadre de l'itérateur SQL et contenant au moins l'index 'field'. |
|
| 491 | - * |
|
| 492 | - * @see base_trouver_table_dist() |
|
| 493 | - * @var array |
|
| 494 | - */ |
|
| 495 | - public $show = array(); |
|
| 496 | - |
|
| 497 | - /** |
|
| 498 | - * Nom de la table SQL principale de la boucle, sans son préfixe |
|
| 499 | - * |
|
| 500 | - * @var string |
|
| 501 | - */ |
|
| 502 | - public $id_table; |
|
| 503 | - |
|
| 504 | - /** |
|
| 505 | - * Nom de la clé primaire de la table SQL principale de la boucle |
|
| 506 | - * |
|
| 507 | - * @var string |
|
| 508 | - */ |
|
| 509 | - public $primary; |
|
| 510 | - |
|
| 511 | - /** |
|
| 512 | - * Code PHP compilé de la boucle |
|
| 513 | - * |
|
| 514 | - * @var string |
|
| 515 | - */ |
|
| 516 | - public $return; |
|
| 517 | - |
|
| 518 | - public $numrows = false; |
|
| 519 | - public $cptrows = false; |
|
| 520 | - |
|
| 521 | - /** |
|
| 522 | - * Description du squelette |
|
| 523 | - * |
|
| 524 | - * Sert pour la gestion d'erreur et la production de code dependant du contexte |
|
| 525 | - * |
|
| 526 | - * Peut contenir les index : |
|
| 527 | - * |
|
| 528 | - * - nom : Nom du fichier de cache |
|
| 529 | - * - gram : Nom de la grammaire du squelette (détermine le phraseur à utiliser) |
|
| 530 | - * - sourcefile : Chemin du squelette |
|
| 531 | - * - squelette : Code du squelette |
|
| 532 | - * - id_mere : Identifiant de la boucle parente |
|
| 533 | - * - documents : Pour embed et img dans les textes |
|
| 534 | - * - session : Pour un cache sessionné par auteur |
|
| 535 | - * - niv : Niveau de tabulation |
|
| 536 | - * |
|
| 537 | - * @var array |
|
| 538 | - */ |
|
| 539 | - public $descr = array(); |
|
| 540 | - |
|
| 541 | - /** |
|
| 542 | - * Numéro de ligne dans le code source du squelette |
|
| 543 | - * |
|
| 544 | - * @var int |
|
| 545 | - */ |
|
| 546 | - public $ligne = 0; |
|
| 547 | - |
|
| 548 | - |
|
| 549 | - public $modificateur = array(); // table pour stocker les modificateurs de boucle tels que tout, plat ..., utilisable par les plugins egalement |
|
| 550 | - |
|
| 551 | - /** |
|
| 552 | - * Type d'itérateur utilisé pour cette boucle |
|
| 553 | - * |
|
| 554 | - * - 'SQL' dans le cadre d'une boucle sur une table SQL |
|
| 555 | - * - 'DATA' pour l'itérateur DATA, ... |
|
| 556 | - * |
|
| 557 | - * @var string |
|
| 558 | - */ |
|
| 559 | - public $iterateur = ''; // type d'iterateur |
|
| 560 | - |
|
| 561 | - /** |
|
| 562 | - * @var array $debug Textes qui seront insérés dans l’entête de boucle du mode debug |
|
| 563 | - */ |
|
| 564 | - public $debug = []; |
|
| 565 | - |
|
| 566 | - // obsoletes, conserves provisoirement pour compatibilite |
|
| 567 | - public $tout = false; |
|
| 568 | - public $plat = false; |
|
| 569 | - public $lien = false; |
|
| 192 | + /** |
|
| 193 | + * Type de noeud |
|
| 194 | + * |
|
| 195 | + * @var string |
|
| 196 | + */ |
|
| 197 | + public $type = 'boucle'; |
|
| 198 | + |
|
| 199 | + /** |
|
| 200 | + * Identifiant de la boucle |
|
| 201 | + * |
|
| 202 | + * @var string |
|
| 203 | + */ |
|
| 204 | + public $id_boucle; |
|
| 205 | + |
|
| 206 | + /** |
|
| 207 | + * Identifiant de la boucle parente |
|
| 208 | + * |
|
| 209 | + * @var string |
|
| 210 | + */ |
|
| 211 | + public $id_parent = ''; |
|
| 212 | + |
|
| 213 | + /** |
|
| 214 | + * Partie avant toujours affichee |
|
| 215 | + * |
|
| 216 | + * @var string|array |
|
| 217 | + */ |
|
| 218 | + public $preaff = ''; |
|
| 219 | + |
|
| 220 | + /** |
|
| 221 | + * Partie optionnelle avant |
|
| 222 | + * |
|
| 223 | + * @var string|array |
|
| 224 | + */ |
|
| 225 | + public $avant = ''; |
|
| 226 | + |
|
| 227 | + /** |
|
| 228 | + * Pour chaque élément |
|
| 229 | + * |
|
| 230 | + * @var string|array |
|
| 231 | + */ |
|
| 232 | + public $milieu = ''; |
|
| 233 | + |
|
| 234 | + /** |
|
| 235 | + * Partie optionnelle après |
|
| 236 | + * |
|
| 237 | + * @var string|array |
|
| 238 | + */ |
|
| 239 | + public $apres = ''; |
|
| 240 | + |
|
| 241 | + /** |
|
| 242 | + * Partie alternative, si pas de résultat dans la boucle |
|
| 243 | + * |
|
| 244 | + * @var string|array |
|
| 245 | + */ |
|
| 246 | + public $altern = ''; |
|
| 247 | + |
|
| 248 | + /** |
|
| 249 | + * Partie apres toujours affichee |
|
| 250 | + * |
|
| 251 | + * @var string|array |
|
| 252 | + */ |
|
| 253 | + public $postaff = ''; |
|
| 254 | + |
|
| 255 | + |
|
| 256 | + /** |
|
| 257 | + * La boucle doit-elle sélectionner la langue ? |
|
| 258 | + * |
|
| 259 | + * @var string|null |
|
| 260 | + */ |
|
| 261 | + public $lang_select; |
|
| 262 | + |
|
| 263 | + /** |
|
| 264 | + * Alias de table d'application de la requête ou nom complet de la table SQL |
|
| 265 | + * |
|
| 266 | + * @var string|null |
|
| 267 | + */ |
|
| 268 | + public $type_requete; |
|
| 269 | + |
|
| 270 | + /** |
|
| 271 | + * La table est elle optionnelle ? |
|
| 272 | + * |
|
| 273 | + * Si oui, aucune erreur ne sera générée si la table demandée n'est pas présente |
|
| 274 | + * |
|
| 275 | + * @var bool |
|
| 276 | + */ |
|
| 277 | + public $table_optionnelle = false; |
|
| 278 | + |
|
| 279 | + /** |
|
| 280 | + * Nom du fichier de connexion |
|
| 281 | + * |
|
| 282 | + * @var string |
|
| 283 | + */ |
|
| 284 | + public $sql_serveur = ''; |
|
| 285 | + |
|
| 286 | + /** |
|
| 287 | + * Paramètres de la boucle |
|
| 288 | + * |
|
| 289 | + * Description des paramètres passés à la boucle, qui servent ensuite |
|
| 290 | + * au calcul des critères |
|
| 291 | + * |
|
| 292 | + * @var array |
|
| 293 | + */ |
|
| 294 | + public $param = array(); |
|
| 295 | + |
|
| 296 | + /** |
|
| 297 | + * Critères de la boucle |
|
| 298 | + * |
|
| 299 | + * @var Critere[] |
|
| 300 | + */ |
|
| 301 | + public $criteres = array(); |
|
| 302 | + |
|
| 303 | + /** |
|
| 304 | + * Textes insérés entre 2 éléments de boucle (critère inter) |
|
| 305 | + * |
|
| 306 | + * @var string[] |
|
| 307 | + */ |
|
| 308 | + public $separateur = array(); |
|
| 309 | + |
|
| 310 | + /** |
|
| 311 | + * Liste des jointures possibles avec cette table |
|
| 312 | + * |
|
| 313 | + * Les jointures par défaut de la table sont complétées en priorité |
|
| 314 | + * des jointures déclarées explicitement sur la boucle |
|
| 315 | + * |
|
| 316 | + * @see base_trouver_table_dist() |
|
| 317 | + * @var array |
|
| 318 | + */ |
|
| 319 | + public $jointures = array(); |
|
| 320 | + |
|
| 321 | + /** |
|
| 322 | + * Jointures explicites avec cette table |
|
| 323 | + * |
|
| 324 | + * Ces jointures sont utilisées en priorité par rapport aux jointures |
|
| 325 | + * normales possibles pour retrouver les colonnes demandées extérieures |
|
| 326 | + * à la boucle. |
|
| 327 | + * |
|
| 328 | + * @var string|bool |
|
| 329 | + */ |
|
| 330 | + public $jointures_explicites = false; |
|
| 331 | + |
|
| 332 | + /** |
|
| 333 | + * Nom de la variable PHP stockant le noms de doublons utilisés "$doublons_index" |
|
| 334 | + * |
|
| 335 | + * @var string|null |
|
| 336 | + */ |
|
| 337 | + public $doublons; |
|
| 338 | + |
|
| 339 | + /** |
|
| 340 | + * Code PHP ajouté au début de chaque itération de boucle. |
|
| 341 | + * |
|
| 342 | + * Utilisé entre autre par les critères {pagination}, {n-a,b}, {a/b}... |
|
| 343 | + * |
|
| 344 | + * @var string |
|
| 345 | + */ |
|
| 346 | + public $partie = ""; |
|
| 347 | + |
|
| 348 | + /** |
|
| 349 | + * Nombre de divisions de la boucle, d'éléments à afficher, |
|
| 350 | + * ou de soustractions d'éléments à faire |
|
| 351 | + * |
|
| 352 | + * Dans les critères limitant le nombre d'éléments affichés |
|
| 353 | + * {a,b}, {a,n-b}, {a/b}, {pagination b}, b est affecté à total_parties. |
|
| 354 | + * |
|
| 355 | + * @var string |
|
| 356 | + */ |
|
| 357 | + public $total_parties = ""; |
|
| 358 | + |
|
| 359 | + /** |
|
| 360 | + * Code PHP ajouté avant l'itération de boucle. |
|
| 361 | + * |
|
| 362 | + * Utilisé entre autre par les critères {pagination}, {a,b}, {a/b} |
|
| 363 | + * pour initialiser les variables de début et de fin d'itération. |
|
| 364 | + * |
|
| 365 | + * @var string |
|
| 366 | + */ |
|
| 367 | + public $mode_partie = ''; |
|
| 368 | + |
|
| 369 | + /** |
|
| 370 | + * Identifiant d'une boucle qui appelle celle-ci de manière récursive |
|
| 371 | + * |
|
| 372 | + * Si une boucle est appelée de manière récursive quelque part par |
|
| 373 | + * une autre boucle comme <BOUCLE_rec(boucle_identifiant) />, cette |
|
| 374 | + * boucle (identifiant) reçoit dans cette propriété l'identifiant |
|
| 375 | + * de l'appelant (rec) |
|
| 376 | + * |
|
| 377 | + * @var string |
|
| 378 | + */ |
|
| 379 | + public $externe = ''; |
|
| 380 | + |
|
| 381 | + // champs pour la construction de la requete SQL |
|
| 382 | + |
|
| 383 | + /** |
|
| 384 | + * Liste des champs à récupérer par la boucle |
|
| 385 | + * |
|
| 386 | + * Expression 'table.nom_champ' ou calculée 'nom_champ AS x' |
|
| 387 | + * |
|
| 388 | + * @var string[] |
|
| 389 | + */ |
|
| 390 | + public $select = array(); |
|
| 391 | + |
|
| 392 | + /** |
|
| 393 | + * Liste des alias / tables SQL utilisées dans la boucle |
|
| 394 | + * |
|
| 395 | + * L'index est un identifiant (xx dans spip_xx assez souvent) qui servira |
|
| 396 | + * d'alias au nom de la table ; la valeur est le nom de la table SQL désirée. |
|
| 397 | + * |
|
| 398 | + * L'index 0 peut définir le type de sources de données de l'itérateur DATA |
|
| 399 | + * |
|
| 400 | + * @var string[] |
|
| 401 | + */ |
|
| 402 | + public $from = array(); |
|
| 403 | + |
|
| 404 | + /** |
|
| 405 | + * Liste des alias / type de jointures utilisées dans la boucle |
|
| 406 | + * |
|
| 407 | + * L'index est le nom d'alias (comme pour la propriété $from), et la valeur |
|
| 408 | + * un type de jointure parmi 'INNER', 'LEFT', 'RIGHT', 'OUTER'. |
|
| 409 | + * |
|
| 410 | + * Lorsque le type n'est pas déclaré pour un alias, c'est 'INNER' |
|
| 411 | + * qui sera utilisé par défaut (créant donc un INNER JOIN). |
|
| 412 | + * |
|
| 413 | + * @var string[] |
|
| 414 | + */ |
|
| 415 | + public $from_type = array(); |
|
| 416 | + |
|
| 417 | + /** |
|
| 418 | + * Liste des conditions WHERE de la boucle |
|
| 419 | + * |
|
| 420 | + * Permet de restreindre les éléments retournés par une boucle |
|
| 421 | + * en fonctions des conditions transmises dans ce tableau. |
|
| 422 | + * |
|
| 423 | + * Ce tableau peut avoir plusieurs niveaux de profondeur. |
|
| 424 | + * |
|
| 425 | + * Les éléments du premier niveau sont reliés par des AND, donc |
|
| 426 | + * chaque élément ajouté directement au where par |
|
| 427 | + * $boucle->where[] = array(...) ou $boucle->where[] = "'expression'" |
|
| 428 | + * est une condition AND en plus. |
|
| 429 | + * |
|
| 430 | + * Par contre, lorsqu'on indique un tableau, il peut décrire des relations |
|
| 431 | + * internes différentes. Soit $expr un tableau d'expressions quelconques de 3 valeurs : |
|
| 432 | + * $expr = array(operateur, val1, val2) |
|
| 433 | + * |
|
| 434 | + * Ces 3 valeurs sont des expressions PHP. L'index 0 désigne l'opérateur |
|
| 435 | + * à réaliser tel que : |
|
| 436 | + * |
|
| 437 | + * - "'='" , "'>='", "'<'", "'IN'", "'REGEXP'", "'LIKE'", ... : |
|
| 438 | + * val1 et val2 sont des champs et valeurs à utiliser dans la comparaison |
|
| 439 | + * suivant cet ordre : "val1 operateur val2". |
|
| 440 | + * Exemple : $boucle->where[] = array("'='", "'articles.statut'", "'\"publie\"'"); |
|
| 441 | + * - "'AND'", "'OR'", "'NOT'" : |
|
| 442 | + * dans ce cas val1 et val2 sont également des expressions |
|
| 443 | + * de comparaison complètes, et peuvent être eux-même des tableaux comme $expr |
|
| 444 | + * Exemples : |
|
| 445 | + * $boucle->where[] = array("'OR'", $expr1, $expr2); |
|
| 446 | + * $boucle->where[] = array("'NOT'", $expr); // val2 n'existe pas avec NOT |
|
| 447 | + * |
|
| 448 | + * D'autres noms sont possibles pour l'opérateur (le nombre de valeurs diffère) : |
|
| 449 | + * - "'SELF'", "'SUBSELECT'" : indiquent des sous requêtes |
|
| 450 | + * - "'?'" : indique une condition à faire évaluer (val1 ? val2 : val3) |
|
| 451 | + * |
|
| 452 | + * @var array |
|
| 453 | + */ |
|
| 454 | + public $where = array(); |
|
| 455 | + |
|
| 456 | + public $join = array(); |
|
| 457 | + public $having = array(); |
|
| 458 | + public $limit; |
|
| 459 | + public $group = array(); |
|
| 460 | + public $order = array(); |
|
| 461 | + public $default_order = array(); |
|
| 462 | + public $date = 'date'; |
|
| 463 | + public $hash = ""; |
|
| 464 | + public $in = ""; |
|
| 465 | + public $sous_requete = false; |
|
| 466 | + |
|
| 467 | + /** |
|
| 468 | + * Code PHP qui sera ajouté en tout début de la fonction de boucle |
|
| 469 | + * |
|
| 470 | + * Il sert à insérer le code calculant une hierarchie |
|
| 471 | + * |
|
| 472 | + * @var string |
|
| 473 | + */ |
|
| 474 | + public $hierarchie = ''; |
|
| 475 | + |
|
| 476 | + /** |
|
| 477 | + * Indique la présence d'un critère sur le statut |
|
| 478 | + * |
|
| 479 | + * @deprecated Remplacé par $boucle->modificateur['criteres']['statut'] |
|
| 480 | + * @var bool |
|
| 481 | + */ |
|
| 482 | + public $statut = false; |
|
| 483 | + |
|
| 484 | + // champs pour la construction du corps PHP |
|
| 485 | + |
|
| 486 | + /** |
|
| 487 | + * Description des sources de données de la boucle |
|
| 488 | + * |
|
| 489 | + * Description des données de la boucle issu de trouver_table |
|
| 490 | + * dans le cadre de l'itérateur SQL et contenant au moins l'index 'field'. |
|
| 491 | + * |
|
| 492 | + * @see base_trouver_table_dist() |
|
| 493 | + * @var array |
|
| 494 | + */ |
|
| 495 | + public $show = array(); |
|
| 496 | + |
|
| 497 | + /** |
|
| 498 | + * Nom de la table SQL principale de la boucle, sans son préfixe |
|
| 499 | + * |
|
| 500 | + * @var string |
|
| 501 | + */ |
|
| 502 | + public $id_table; |
|
| 503 | + |
|
| 504 | + /** |
|
| 505 | + * Nom de la clé primaire de la table SQL principale de la boucle |
|
| 506 | + * |
|
| 507 | + * @var string |
|
| 508 | + */ |
|
| 509 | + public $primary; |
|
| 510 | + |
|
| 511 | + /** |
|
| 512 | + * Code PHP compilé de la boucle |
|
| 513 | + * |
|
| 514 | + * @var string |
|
| 515 | + */ |
|
| 516 | + public $return; |
|
| 517 | + |
|
| 518 | + public $numrows = false; |
|
| 519 | + public $cptrows = false; |
|
| 520 | + |
|
| 521 | + /** |
|
| 522 | + * Description du squelette |
|
| 523 | + * |
|
| 524 | + * Sert pour la gestion d'erreur et la production de code dependant du contexte |
|
| 525 | + * |
|
| 526 | + * Peut contenir les index : |
|
| 527 | + * |
|
| 528 | + * - nom : Nom du fichier de cache |
|
| 529 | + * - gram : Nom de la grammaire du squelette (détermine le phraseur à utiliser) |
|
| 530 | + * - sourcefile : Chemin du squelette |
|
| 531 | + * - squelette : Code du squelette |
|
| 532 | + * - id_mere : Identifiant de la boucle parente |
|
| 533 | + * - documents : Pour embed et img dans les textes |
|
| 534 | + * - session : Pour un cache sessionné par auteur |
|
| 535 | + * - niv : Niveau de tabulation |
|
| 536 | + * |
|
| 537 | + * @var array |
|
| 538 | + */ |
|
| 539 | + public $descr = array(); |
|
| 540 | + |
|
| 541 | + /** |
|
| 542 | + * Numéro de ligne dans le code source du squelette |
|
| 543 | + * |
|
| 544 | + * @var int |
|
| 545 | + */ |
|
| 546 | + public $ligne = 0; |
|
| 547 | + |
|
| 548 | + |
|
| 549 | + public $modificateur = array(); // table pour stocker les modificateurs de boucle tels que tout, plat ..., utilisable par les plugins egalement |
|
| 550 | + |
|
| 551 | + /** |
|
| 552 | + * Type d'itérateur utilisé pour cette boucle |
|
| 553 | + * |
|
| 554 | + * - 'SQL' dans le cadre d'une boucle sur une table SQL |
|
| 555 | + * - 'DATA' pour l'itérateur DATA, ... |
|
| 556 | + * |
|
| 557 | + * @var string |
|
| 558 | + */ |
|
| 559 | + public $iterateur = ''; // type d'iterateur |
|
| 560 | + |
|
| 561 | + /** |
|
| 562 | + * @var array $debug Textes qui seront insérés dans l’entête de boucle du mode debug |
|
| 563 | + */ |
|
| 564 | + public $debug = []; |
|
| 565 | + |
|
| 566 | + // obsoletes, conserves provisoirement pour compatibilite |
|
| 567 | + public $tout = false; |
|
| 568 | + public $plat = false; |
|
| 569 | + public $lien = false; |
|
| 570 | 570 | } |
| 571 | 571 | |
| 572 | 572 | /** |
@@ -577,56 +577,56 @@ discard block |
||
| 577 | 577 | * @package SPIP\Core\Compilateur\AST |
| 578 | 578 | **/ |
| 579 | 579 | class Critere { |
| 580 | - /** |
|
| 581 | - * Type de noeud |
|
| 582 | - * |
|
| 583 | - * @var string |
|
| 584 | - */ |
|
| 585 | - public $type = 'critere'; |
|
| 586 | - |
|
| 587 | - /** |
|
| 588 | - * Opérateur (>, <, >=, IN, ...) |
|
| 589 | - * |
|
| 590 | - * @var null|string |
|
| 591 | - */ |
|
| 592 | - public $op; |
|
| 593 | - |
|
| 594 | - /** |
|
| 595 | - * Présence d'une négation (truc !op valeur) |
|
| 596 | - * |
|
| 597 | - * @var null|string |
|
| 598 | - */ |
|
| 599 | - public $not; |
|
| 600 | - |
|
| 601 | - /** |
|
| 602 | - * Présence d'une exclusion (!truc op valeur) |
|
| 603 | - * |
|
| 604 | - * @var null|string |
|
| 605 | - */ |
|
| 606 | - public $exclus; |
|
| 607 | - |
|
| 608 | - /** |
|
| 609 | - * Présence d'une condition dans le critère (truc ?) |
|
| 610 | - * |
|
| 611 | - * @var bool |
|
| 612 | - */ |
|
| 613 | - public $cond = false; |
|
| 614 | - |
|
| 615 | - /** |
|
| 616 | - * Paramètres du critère |
|
| 617 | - * - $param[0] : élément avant l'opérateur |
|
| 618 | - * - $param[1..n] : éléments après l'opérateur |
|
| 619 | - * |
|
| 620 | - * @var array |
|
| 621 | - */ |
|
| 622 | - public $param = array(); |
|
| 623 | - |
|
| 624 | - /** |
|
| 625 | - * Numéro de ligne dans le code source du squelette |
|
| 626 | - * |
|
| 627 | - * @var int |
|
| 628 | - */ |
|
| 629 | - public $ligne = 0; |
|
| 580 | + /** |
|
| 581 | + * Type de noeud |
|
| 582 | + * |
|
| 583 | + * @var string |
|
| 584 | + */ |
|
| 585 | + public $type = 'critere'; |
|
| 586 | + |
|
| 587 | + /** |
|
| 588 | + * Opérateur (>, <, >=, IN, ...) |
|
| 589 | + * |
|
| 590 | + * @var null|string |
|
| 591 | + */ |
|
| 592 | + public $op; |
|
| 593 | + |
|
| 594 | + /** |
|
| 595 | + * Présence d'une négation (truc !op valeur) |
|
| 596 | + * |
|
| 597 | + * @var null|string |
|
| 598 | + */ |
|
| 599 | + public $not; |
|
| 600 | + |
|
| 601 | + /** |
|
| 602 | + * Présence d'une exclusion (!truc op valeur) |
|
| 603 | + * |
|
| 604 | + * @var null|string |
|
| 605 | + */ |
|
| 606 | + public $exclus; |
|
| 607 | + |
|
| 608 | + /** |
|
| 609 | + * Présence d'une condition dans le critère (truc ?) |
|
| 610 | + * |
|
| 611 | + * @var bool |
|
| 612 | + */ |
|
| 613 | + public $cond = false; |
|
| 614 | + |
|
| 615 | + /** |
|
| 616 | + * Paramètres du critère |
|
| 617 | + * - $param[0] : élément avant l'opérateur |
|
| 618 | + * - $param[1..n] : éléments après l'opérateur |
|
| 619 | + * |
|
| 620 | + * @var array |
|
| 621 | + */ |
|
| 622 | + public $param = array(); |
|
| 623 | + |
|
| 624 | + /** |
|
| 625 | + * Numéro de ligne dans le code source du squelette |
|
| 626 | + * |
|
| 627 | + * @var int |
|
| 628 | + */ |
|
| 629 | + public $ligne = 0; |
|
| 630 | 630 | } |
| 631 | 631 | |
| 632 | 632 | /** |
@@ -635,139 +635,139 @@ discard block |
||
| 635 | 635 | * @package SPIP\Core\Compilateur\AST |
| 636 | 636 | **/ |
| 637 | 637 | class Champ { |
| 638 | - /** |
|
| 639 | - * Type de noeud |
|
| 640 | - * |
|
| 641 | - * @var string |
|
| 642 | - */ |
|
| 643 | - public $type = 'champ'; |
|
| 644 | - |
|
| 645 | - /** |
|
| 646 | - * Nom du champ demandé. Exemple 'ID_ARTICLE' |
|
| 647 | - * |
|
| 648 | - * @var string|null |
|
| 649 | - */ |
|
| 650 | - public $nom_champ; |
|
| 651 | - |
|
| 652 | - /** |
|
| 653 | - * Identifiant de la boucle parente si explicité |
|
| 654 | - * |
|
| 655 | - * @var string|null |
|
| 656 | - */ |
|
| 657 | - public $nom_boucle = ''; |
|
| 658 | - |
|
| 659 | - /** |
|
| 660 | - * Partie optionnelle avant |
|
| 661 | - * |
|
| 662 | - * @var null|string|array |
|
| 663 | - */ |
|
| 664 | - public $avant; |
|
| 665 | - |
|
| 666 | - /** |
|
| 667 | - * Partie optionnelle après |
|
| 668 | - * |
|
| 669 | - * @var null|string|array |
|
| 670 | - */ |
|
| 671 | - public $apres; |
|
| 672 | - |
|
| 673 | - /** |
|
| 674 | - * Étoiles : annuler des automatismes |
|
| 675 | - * |
|
| 676 | - * - '*' annule les filtres automatiques |
|
| 677 | - * - '**' annule en plus les protections de scripts |
|
| 678 | - * |
|
| 679 | - * @var null|string |
|
| 680 | - */ |
|
| 681 | - public $etoile; |
|
| 682 | - |
|
| 683 | - /** |
|
| 684 | - * Arguments et filtres explicites sur la balise |
|
| 685 | - * |
|
| 686 | - * - $param[0] contient les arguments de la balise |
|
| 687 | - * - $param[1..n] contient les filtres à appliquer à la balise |
|
| 688 | - * |
|
| 689 | - * @var array |
|
| 690 | - */ |
|
| 691 | - public $param = array(); |
|
| 692 | - |
|
| 693 | - /** |
|
| 694 | - * Source des filtres (compatibilité) (?) |
|
| 695 | - * |
|
| 696 | - * @var array|null |
|
| 697 | - */ |
|
| 698 | - public $fonctions = array(); |
|
| 699 | - |
|
| 700 | - /** |
|
| 701 | - * Identifiant de la boucle |
|
| 702 | - * |
|
| 703 | - * @var string |
|
| 704 | - */ |
|
| 705 | - public $id_boucle = ''; |
|
| 706 | - |
|
| 707 | - /** |
|
| 708 | - * AST du squelette, liste de toutes les boucles |
|
| 709 | - * |
|
| 710 | - * @var Boucles[] |
|
| 711 | - */ |
|
| 712 | - public $boucles; |
|
| 713 | - |
|
| 714 | - /** |
|
| 715 | - * Alias de table d'application de la requête ou nom complet de la table SQL |
|
| 716 | - * |
|
| 717 | - * @var string|null |
|
| 718 | - */ |
|
| 719 | - public $type_requete; |
|
| 720 | - |
|
| 721 | - /** |
|
| 722 | - * Résultat de la compilation: toujours une expression PHP |
|
| 723 | - * |
|
| 724 | - * @var string |
|
| 725 | - */ |
|
| 726 | - public $code = ''; |
|
| 727 | - |
|
| 728 | - /** |
|
| 729 | - * Interdire les scripts |
|
| 730 | - * |
|
| 731 | - * false si on est sûr de cette balise |
|
| 732 | - * |
|
| 733 | - * @see interdire_scripts() |
|
| 734 | - * @var bool |
|
| 735 | - */ |
|
| 736 | - public $interdire_scripts = true; |
|
| 737 | - |
|
| 738 | - /** |
|
| 739 | - * Description du squelette |
|
| 740 | - * |
|
| 741 | - * Sert pour la gestion d'erreur et la production de code dependant du contexte |
|
| 742 | - * |
|
| 743 | - * Peut contenir les index : |
|
| 744 | - * |
|
| 745 | - * - nom : Nom du fichier de cache |
|
| 746 | - * - gram : Nom de la grammaire du squelette (détermine le phraseur à utiliser) |
|
| 747 | - * - sourcefile : Chemin du squelette |
|
| 748 | - * - squelette : Code du squelette |
|
| 749 | - * - id_mere : Identifiant de la boucle parente |
|
| 750 | - * - documents : Pour embed et img dans les textes |
|
| 751 | - * - session : Pour un cache sessionné par auteur |
|
| 752 | - * - niv : Niveau de tabulation |
|
| 753 | - * |
|
| 754 | - * @var array |
|
| 755 | - */ |
|
| 756 | - public $descr = array(); |
|
| 757 | - |
|
| 758 | - /** |
|
| 759 | - * Numéro de ligne dans le code source du squelette |
|
| 760 | - * |
|
| 761 | - * @var int |
|
| 762 | - */ |
|
| 763 | - public $ligne = 0; |
|
| 764 | - |
|
| 765 | - /** |
|
| 766 | - * Drapeau pour reperer les balises calculées par une fonction explicite |
|
| 767 | - * |
|
| 768 | - * @var bool |
|
| 769 | - */ |
|
| 770 | - public $balise_calculee = false; |
|
| 638 | + /** |
|
| 639 | + * Type de noeud |
|
| 640 | + * |
|
| 641 | + * @var string |
|
| 642 | + */ |
|
| 643 | + public $type = 'champ'; |
|
| 644 | + |
|
| 645 | + /** |
|
| 646 | + * Nom du champ demandé. Exemple 'ID_ARTICLE' |
|
| 647 | + * |
|
| 648 | + * @var string|null |
|
| 649 | + */ |
|
| 650 | + public $nom_champ; |
|
| 651 | + |
|
| 652 | + /** |
|
| 653 | + * Identifiant de la boucle parente si explicité |
|
| 654 | + * |
|
| 655 | + * @var string|null |
|
| 656 | + */ |
|
| 657 | + public $nom_boucle = ''; |
|
| 658 | + |
|
| 659 | + /** |
|
| 660 | + * Partie optionnelle avant |
|
| 661 | + * |
|
| 662 | + * @var null|string|array |
|
| 663 | + */ |
|
| 664 | + public $avant; |
|
| 665 | + |
|
| 666 | + /** |
|
| 667 | + * Partie optionnelle après |
|
| 668 | + * |
|
| 669 | + * @var null|string|array |
|
| 670 | + */ |
|
| 671 | + public $apres; |
|
| 672 | + |
|
| 673 | + /** |
|
| 674 | + * Étoiles : annuler des automatismes |
|
| 675 | + * |
|
| 676 | + * - '*' annule les filtres automatiques |
|
| 677 | + * - '**' annule en plus les protections de scripts |
|
| 678 | + * |
|
| 679 | + * @var null|string |
|
| 680 | + */ |
|
| 681 | + public $etoile; |
|
| 682 | + |
|
| 683 | + /** |
|
| 684 | + * Arguments et filtres explicites sur la balise |
|
| 685 | + * |
|
| 686 | + * - $param[0] contient les arguments de la balise |
|
| 687 | + * - $param[1..n] contient les filtres à appliquer à la balise |
|
| 688 | + * |
|
| 689 | + * @var array |
|
| 690 | + */ |
|
| 691 | + public $param = array(); |
|
| 692 | + |
|
| 693 | + /** |
|
| 694 | + * Source des filtres (compatibilité) (?) |
|
| 695 | + * |
|
| 696 | + * @var array|null |
|
| 697 | + */ |
|
| 698 | + public $fonctions = array(); |
|
| 699 | + |
|
| 700 | + /** |
|
| 701 | + * Identifiant de la boucle |
|
| 702 | + * |
|
| 703 | + * @var string |
|
| 704 | + */ |
|
| 705 | + public $id_boucle = ''; |
|
| 706 | + |
|
| 707 | + /** |
|
| 708 | + * AST du squelette, liste de toutes les boucles |
|
| 709 | + * |
|
| 710 | + * @var Boucles[] |
|
| 711 | + */ |
|
| 712 | + public $boucles; |
|
| 713 | + |
|
| 714 | + /** |
|
| 715 | + * Alias de table d'application de la requête ou nom complet de la table SQL |
|
| 716 | + * |
|
| 717 | + * @var string|null |
|
| 718 | + */ |
|
| 719 | + public $type_requete; |
|
| 720 | + |
|
| 721 | + /** |
|
| 722 | + * Résultat de la compilation: toujours une expression PHP |
|
| 723 | + * |
|
| 724 | + * @var string |
|
| 725 | + */ |
|
| 726 | + public $code = ''; |
|
| 727 | + |
|
| 728 | + /** |
|
| 729 | + * Interdire les scripts |
|
| 730 | + * |
|
| 731 | + * false si on est sûr de cette balise |
|
| 732 | + * |
|
| 733 | + * @see interdire_scripts() |
|
| 734 | + * @var bool |
|
| 735 | + */ |
|
| 736 | + public $interdire_scripts = true; |
|
| 737 | + |
|
| 738 | + /** |
|
| 739 | + * Description du squelette |
|
| 740 | + * |
|
| 741 | + * Sert pour la gestion d'erreur et la production de code dependant du contexte |
|
| 742 | + * |
|
| 743 | + * Peut contenir les index : |
|
| 744 | + * |
|
| 745 | + * - nom : Nom du fichier de cache |
|
| 746 | + * - gram : Nom de la grammaire du squelette (détermine le phraseur à utiliser) |
|
| 747 | + * - sourcefile : Chemin du squelette |
|
| 748 | + * - squelette : Code du squelette |
|
| 749 | + * - id_mere : Identifiant de la boucle parente |
|
| 750 | + * - documents : Pour embed et img dans les textes |
|
| 751 | + * - session : Pour un cache sessionné par auteur |
|
| 752 | + * - niv : Niveau de tabulation |
|
| 753 | + * |
|
| 754 | + * @var array |
|
| 755 | + */ |
|
| 756 | + public $descr = array(); |
|
| 757 | + |
|
| 758 | + /** |
|
| 759 | + * Numéro de ligne dans le code source du squelette |
|
| 760 | + * |
|
| 761 | + * @var int |
|
| 762 | + */ |
|
| 763 | + public $ligne = 0; |
|
| 764 | + |
|
| 765 | + /** |
|
| 766 | + * Drapeau pour reperer les balises calculées par une fonction explicite |
|
| 767 | + * |
|
| 768 | + * @var bool |
|
| 769 | + */ |
|
| 770 | + public $balise_calculee = false; |
|
| 771 | 771 | } |
| 772 | 772 | |
| 773 | 773 | |
@@ -775,123 +775,123 @@ discard block |
||
| 775 | 775 | * Description d'une chaîne de langue |
| 776 | 776 | **/ |
| 777 | 777 | class Idiome { |
| 778 | - /** |
|
| 779 | - * Type de noeud |
|
| 780 | - * |
|
| 781 | - * @var string |
|
| 782 | - */ |
|
| 783 | - public $type = 'idiome'; |
|
| 784 | - |
|
| 785 | - /** |
|
| 786 | - * Clé de traduction demandée. Exemple 'item_oui' |
|
| 787 | - * |
|
| 788 | - * @var string |
|
| 789 | - */ |
|
| 790 | - public $nom_champ = ""; |
|
| 791 | - |
|
| 792 | - /** |
|
| 793 | - * Module de langue où chercher la clé de traduction. Exemple 'medias' |
|
| 794 | - * |
|
| 795 | - * @var string |
|
| 796 | - */ |
|
| 797 | - public $module = ""; |
|
| 798 | - |
|
| 799 | - /** |
|
| 800 | - * Arguments à passer à la chaîne |
|
| 801 | - * |
|
| 802 | - * @var array |
|
| 803 | - */ |
|
| 804 | - public $arg = array(); |
|
| 805 | - |
|
| 806 | - /** |
|
| 807 | - * Filtres à appliquer au résultat |
|
| 808 | - * |
|
| 809 | - * @var array |
|
| 810 | - */ |
|
| 811 | - public $param = array(); |
|
| 812 | - |
|
| 813 | - /** |
|
| 814 | - * Source des filtres (compatibilité) (?) |
|
| 815 | - * |
|
| 816 | - * @var array|null |
|
| 817 | - */ |
|
| 818 | - public $fonctions = array(); |
|
| 819 | - |
|
| 820 | - /** |
|
| 821 | - * Inutilisé, propriété générique de l'AST |
|
| 822 | - * |
|
| 823 | - * @var string|array |
|
| 824 | - */ |
|
| 825 | - public $avant = ''; |
|
| 826 | - |
|
| 827 | - /** |
|
| 828 | - * Inutilisé, propriété générique de l'AST |
|
| 829 | - * |
|
| 830 | - * @var string|array |
|
| 831 | - */ |
|
| 832 | - public $apres = ''; |
|
| 833 | - |
|
| 834 | - /** |
|
| 835 | - * Identifiant de la boucle |
|
| 836 | - * |
|
| 837 | - * @var string |
|
| 838 | - */ |
|
| 839 | - public $id_boucle = ''; |
|
| 840 | - |
|
| 841 | - /** |
|
| 842 | - * AST du squelette, liste de toutes les boucles |
|
| 843 | - * |
|
| 844 | - * @var Boucles[] |
|
| 845 | - */ |
|
| 846 | - public $boucles; |
|
| 847 | - |
|
| 848 | - /** |
|
| 849 | - * Alias de table d'application de la requête ou nom complet de la table SQL |
|
| 850 | - * |
|
| 851 | - * @var string|null |
|
| 852 | - */ |
|
| 853 | - public $type_requete; |
|
| 854 | - |
|
| 855 | - /** |
|
| 856 | - * Résultat de la compilation: toujours une expression PHP |
|
| 857 | - * |
|
| 858 | - * @var string |
|
| 859 | - */ |
|
| 860 | - public $code = ''; |
|
| 861 | - |
|
| 862 | - /** |
|
| 863 | - * Interdire les scripts |
|
| 864 | - * |
|
| 865 | - * @see interdire_scripts() |
|
| 866 | - * @var bool |
|
| 867 | - */ |
|
| 868 | - public $interdire_scripts = false; |
|
| 869 | - |
|
| 870 | - /** |
|
| 871 | - * Description du squelette |
|
| 872 | - * |
|
| 873 | - * Sert pour la gestion d'erreur et la production de code dependant du contexte |
|
| 874 | - * |
|
| 875 | - * Peut contenir les index : |
|
| 876 | - * - nom : Nom du fichier de cache |
|
| 877 | - * - gram : Nom de la grammaire du squelette (détermine le phraseur à utiliser) |
|
| 878 | - * - sourcefile : Chemin du squelette |
|
| 879 | - * - squelette : Code du squelette |
|
| 880 | - * - id_mere : Identifiant de la boucle parente |
|
| 881 | - * - documents : Pour embed et img dans les textes |
|
| 882 | - * - session : Pour un cache sessionné par auteur |
|
| 883 | - * - niv : Niveau de tabulation |
|
| 884 | - * |
|
| 885 | - * @var array |
|
| 886 | - */ |
|
| 887 | - public $descr = array(); |
|
| 888 | - |
|
| 889 | - /** |
|
| 890 | - * Numéro de ligne dans le code source du squelette |
|
| 891 | - * |
|
| 892 | - * @var int |
|
| 893 | - */ |
|
| 894 | - public $ligne = 0; |
|
| 778 | + /** |
|
| 779 | + * Type de noeud |
|
| 780 | + * |
|
| 781 | + * @var string |
|
| 782 | + */ |
|
| 783 | + public $type = 'idiome'; |
|
| 784 | + |
|
| 785 | + /** |
|
| 786 | + * Clé de traduction demandée. Exemple 'item_oui' |
|
| 787 | + * |
|
| 788 | + * @var string |
|
| 789 | + */ |
|
| 790 | + public $nom_champ = ""; |
|
| 791 | + |
|
| 792 | + /** |
|
| 793 | + * Module de langue où chercher la clé de traduction. Exemple 'medias' |
|
| 794 | + * |
|
| 795 | + * @var string |
|
| 796 | + */ |
|
| 797 | + public $module = ""; |
|
| 798 | + |
|
| 799 | + /** |
|
| 800 | + * Arguments à passer à la chaîne |
|
| 801 | + * |
|
| 802 | + * @var array |
|
| 803 | + */ |
|
| 804 | + public $arg = array(); |
|
| 805 | + |
|
| 806 | + /** |
|
| 807 | + * Filtres à appliquer au résultat |
|
| 808 | + * |
|
| 809 | + * @var array |
|
| 810 | + */ |
|
| 811 | + public $param = array(); |
|
| 812 | + |
|
| 813 | + /** |
|
| 814 | + * Source des filtres (compatibilité) (?) |
|
| 815 | + * |
|
| 816 | + * @var array|null |
|
| 817 | + */ |
|
| 818 | + public $fonctions = array(); |
|
| 819 | + |
|
| 820 | + /** |
|
| 821 | + * Inutilisé, propriété générique de l'AST |
|
| 822 | + * |
|
| 823 | + * @var string|array |
|
| 824 | + */ |
|
| 825 | + public $avant = ''; |
|
| 826 | + |
|
| 827 | + /** |
|
| 828 | + * Inutilisé, propriété générique de l'AST |
|
| 829 | + * |
|
| 830 | + * @var string|array |
|
| 831 | + */ |
|
| 832 | + public $apres = ''; |
|
| 833 | + |
|
| 834 | + /** |
|
| 835 | + * Identifiant de la boucle |
|
| 836 | + * |
|
| 837 | + * @var string |
|
| 838 | + */ |
|
| 839 | + public $id_boucle = ''; |
|
| 840 | + |
|
| 841 | + /** |
|
| 842 | + * AST du squelette, liste de toutes les boucles |
|
| 843 | + * |
|
| 844 | + * @var Boucles[] |
|
| 845 | + */ |
|
| 846 | + public $boucles; |
|
| 847 | + |
|
| 848 | + /** |
|
| 849 | + * Alias de table d'application de la requête ou nom complet de la table SQL |
|
| 850 | + * |
|
| 851 | + * @var string|null |
|
| 852 | + */ |
|
| 853 | + public $type_requete; |
|
| 854 | + |
|
| 855 | + /** |
|
| 856 | + * Résultat de la compilation: toujours une expression PHP |
|
| 857 | + * |
|
| 858 | + * @var string |
|
| 859 | + */ |
|
| 860 | + public $code = ''; |
|
| 861 | + |
|
| 862 | + /** |
|
| 863 | + * Interdire les scripts |
|
| 864 | + * |
|
| 865 | + * @see interdire_scripts() |
|
| 866 | + * @var bool |
|
| 867 | + */ |
|
| 868 | + public $interdire_scripts = false; |
|
| 869 | + |
|
| 870 | + /** |
|
| 871 | + * Description du squelette |
|
| 872 | + * |
|
| 873 | + * Sert pour la gestion d'erreur et la production de code dependant du contexte |
|
| 874 | + * |
|
| 875 | + * Peut contenir les index : |
|
| 876 | + * - nom : Nom du fichier de cache |
|
| 877 | + * - gram : Nom de la grammaire du squelette (détermine le phraseur à utiliser) |
|
| 878 | + * - sourcefile : Chemin du squelette |
|
| 879 | + * - squelette : Code du squelette |
|
| 880 | + * - id_mere : Identifiant de la boucle parente |
|
| 881 | + * - documents : Pour embed et img dans les textes |
|
| 882 | + * - session : Pour un cache sessionné par auteur |
|
| 883 | + * - niv : Niveau de tabulation |
|
| 884 | + * |
|
| 885 | + * @var array |
|
| 886 | + */ |
|
| 887 | + public $descr = array(); |
|
| 888 | + |
|
| 889 | + /** |
|
| 890 | + * Numéro de ligne dans le code source du squelette |
|
| 891 | + * |
|
| 892 | + * @var int |
|
| 893 | + */ |
|
| 894 | + public $ligne = 0; |
|
| 895 | 895 | } |
| 896 | 896 | |
| 897 | 897 | /** |
@@ -900,28 +900,28 @@ discard block |
||
| 900 | 900 | * @package SPIP\Core\Compilateur\AST |
| 901 | 901 | **/ |
| 902 | 902 | class Polyglotte { |
| 903 | - /** |
|
| 904 | - * Type de noeud |
|
| 905 | - * |
|
| 906 | - * @var string |
|
| 907 | - */ |
|
| 908 | - public $type = 'polyglotte'; |
|
| 909 | - |
|
| 910 | - /** |
|
| 911 | - * Tableau des traductions possibles classées par langue |
|
| 912 | - * |
|
| 913 | - * Tableau code de langue => texte |
|
| 914 | - * |
|
| 915 | - * @var array |
|
| 916 | - */ |
|
| 917 | - public $traductions = array(); |
|
| 918 | - |
|
| 919 | - /** |
|
| 920 | - * Numéro de ligne dans le code source du squelette |
|
| 921 | - * |
|
| 922 | - * @var int |
|
| 923 | - */ |
|
| 924 | - public $ligne = 0; |
|
| 903 | + /** |
|
| 904 | + * Type de noeud |
|
| 905 | + * |
|
| 906 | + * @var string |
|
| 907 | + */ |
|
| 908 | + public $type = 'polyglotte'; |
|
| 909 | + |
|
| 910 | + /** |
|
| 911 | + * Tableau des traductions possibles classées par langue |
|
| 912 | + * |
|
| 913 | + * Tableau code de langue => texte |
|
| 914 | + * |
|
| 915 | + * @var array |
|
| 916 | + */ |
|
| 917 | + public $traductions = array(); |
|
| 918 | + |
|
| 919 | + /** |
|
| 920 | + * Numéro de ligne dans le code source du squelette |
|
| 921 | + * |
|
| 922 | + * @var int |
|
| 923 | + */ |
|
| 924 | + public $ligne = 0; |
|
| 925 | 925 | } |
| 926 | 926 | |
| 927 | 927 | |
@@ -946,86 +946,86 @@ discard block |
||
| 946 | 946 | */ |
| 947 | 947 | function declarer_interfaces() { |
| 948 | 948 | |
| 949 | - $GLOBALS['table_des_tables']['articles'] = 'articles'; |
|
| 950 | - $GLOBALS['table_des_tables']['auteurs'] = 'auteurs'; |
|
| 951 | - $GLOBALS['table_des_tables']['rubriques'] = 'rubriques'; |
|
| 952 | - $GLOBALS['table_des_tables']['hierarchie'] = 'rubriques'; |
|
| 953 | - |
|
| 954 | - // definition des statuts de publication |
|
| 955 | - $GLOBALS['table_statut'] = array(); |
|
| 956 | - |
|
| 957 | - // |
|
| 958 | - // tableau des tables de jointures |
|
| 959 | - // Ex: gestion du critere {id_mot} dans la boucle(ARTICLES) |
|
| 960 | - $GLOBALS['tables_jointures'] = array(); |
|
| 961 | - $GLOBALS['tables_jointures']['spip_jobs'][] = 'jobs_liens'; |
|
| 962 | - |
|
| 963 | - // $GLOBALS['exceptions_des_jointures']['titre_mot'] = array('spip_mots', 'titre'); // pour exemple |
|
| 964 | - $GLOBALS['exceptions_des_jointures']['profondeur'] = array('spip_rubriques', 'profondeur'); |
|
| 965 | - |
|
| 966 | - |
|
| 967 | - if (!defined('_TRAITEMENT_TYPO')) { |
|
| 968 | - define('_TRAITEMENT_TYPO', 'typo(%s, "TYPO", $connect, $Pile[0])'); |
|
| 969 | - } |
|
| 970 | - if (!defined('_TRAITEMENT_RACCOURCIS')) { |
|
| 971 | - define('_TRAITEMENT_RACCOURCIS', 'propre(%s, $connect, $Pile[0])'); |
|
| 972 | - } |
|
| 973 | - if (!defined('_TRAITEMENT_TYPO_SANS_NUMERO')) { |
|
| 974 | - define('_TRAITEMENT_TYPO_SANS_NUMERO', 'supprimer_numero(typo(%s), "TYPO", $connect, $Pile[0])'); |
|
| 975 | - } |
|
| 976 | - $GLOBALS['table_des_traitements']['BIO'][] = _TRAITEMENT_RACCOURCIS; |
|
| 977 | - $GLOBALS['table_des_traitements']['CHAPO'][] = _TRAITEMENT_RACCOURCIS; |
|
| 978 | - $GLOBALS['table_des_traitements']['DATE'][] = 'normaliser_date(%s)'; |
|
| 979 | - $GLOBALS['table_des_traitements']['DATE_REDAC'][] = 'normaliser_date(%s)'; |
|
| 980 | - $GLOBALS['table_des_traitements']['DATE_MODIF'][] = 'normaliser_date(%s)'; |
|
| 981 | - $GLOBALS['table_des_traitements']['DATE_NOUVEAUTES'][] = 'normaliser_date(%s)'; |
|
| 982 | - $GLOBALS['table_des_traitements']['DESCRIPTIF'][] = _TRAITEMENT_RACCOURCIS; |
|
| 983 | - $GLOBALS['table_des_traitements']['INTRODUCTION'][] = _TRAITEMENT_RACCOURCIS; |
|
| 984 | - $GLOBALS['table_des_traitements']['NOM_SITE_SPIP'][] = _TRAITEMENT_TYPO; |
|
| 985 | - $GLOBALS['table_des_traitements']['NOM'][] = _TRAITEMENT_TYPO_SANS_NUMERO; |
|
| 986 | - $GLOBALS['table_des_traitements']['AUTEUR'][] = _TRAITEMENT_TYPO; |
|
| 987 | - $GLOBALS['table_des_traitements']['PS'][] = _TRAITEMENT_RACCOURCIS; |
|
| 988 | - $GLOBALS['table_des_traitements']['SOURCE'][] = _TRAITEMENT_TYPO; |
|
| 989 | - $GLOBALS['table_des_traitements']['SOUSTITRE'][] = _TRAITEMENT_TYPO; |
|
| 990 | - $GLOBALS['table_des_traitements']['SURTITRE'][] = _TRAITEMENT_TYPO; |
|
| 991 | - $GLOBALS['table_des_traitements']['TAGS'][] = '%s'; |
|
| 992 | - $GLOBALS['table_des_traitements']['TEXTE'][] = _TRAITEMENT_RACCOURCIS; |
|
| 993 | - $GLOBALS['table_des_traitements']['TITRE'][] = _TRAITEMENT_TYPO_SANS_NUMERO; |
|
| 994 | - $GLOBALS['table_des_traitements']['TYPE'][] = _TRAITEMENT_TYPO; |
|
| 995 | - $GLOBALS['table_des_traitements']['DESCRIPTIF_SITE_SPIP'][] = _TRAITEMENT_RACCOURCIS; |
|
| 996 | - $GLOBALS['table_des_traitements']['SLOGAN_SITE_SPIP'][] = _TRAITEMENT_TYPO; |
|
| 997 | - $GLOBALS['table_des_traitements']['ENV'][] = 'entites_html(%s,true)'; |
|
| 998 | - |
|
| 999 | - // valeur par defaut pour les balises non listees ci-dessus |
|
| 1000 | - $GLOBALS['table_des_traitements']['*'][] = false; // pas de traitement, mais permet au compilo de trouver la declaration suivante |
|
| 1001 | - // toujours securiser les DATA |
|
| 1002 | - $GLOBALS['table_des_traitements']['*']['DATA'] = 'safehtml(%s)'; |
|
| 1003 | - // expliciter pour VALEUR qui est un champ calcule et ne sera pas protege par le catch-all * |
|
| 1004 | - $GLOBALS['table_des_traitements']['VALEUR']['DATA'] = 'safehtml(%s)'; |
|
| 1005 | - |
|
| 1006 | - |
|
| 1007 | - // gerer l'affectation en 2 temps car si le pipe n'est pas encore declare, on ecrase les globales |
|
| 1008 | - $interfaces = pipeline('declarer_tables_interfaces', |
|
| 1009 | - array( |
|
| 1010 | - 'table_des_tables' => $GLOBALS['table_des_tables'], |
|
| 1011 | - 'exceptions_des_tables' => $GLOBALS['exceptions_des_tables'], |
|
| 1012 | - 'table_date' => $GLOBALS['table_date'], |
|
| 1013 | - 'table_titre' => $GLOBALS['table_titre'], |
|
| 1014 | - 'tables_jointures' => $GLOBALS['tables_jointures'], |
|
| 1015 | - 'exceptions_des_jointures' => $GLOBALS['exceptions_des_jointures'], |
|
| 1016 | - 'table_des_traitements' => $GLOBALS['table_des_traitements'], |
|
| 1017 | - 'table_statut' => $GLOBALS['table_statut'], |
|
| 1018 | - )); |
|
| 1019 | - if ($interfaces) { |
|
| 1020 | - $GLOBALS['table_des_tables'] = $interfaces['table_des_tables']; |
|
| 1021 | - $GLOBALS['exceptions_des_tables'] = $interfaces['exceptions_des_tables']; |
|
| 1022 | - $GLOBALS['table_date'] = $interfaces['table_date']; |
|
| 1023 | - $GLOBALS['table_titre'] = $interfaces['table_titre']; |
|
| 1024 | - $GLOBALS['tables_jointures'] = $interfaces['tables_jointures']; |
|
| 1025 | - $GLOBALS['exceptions_des_jointures'] = $interfaces['exceptions_des_jointures']; |
|
| 1026 | - $GLOBALS['table_des_traitements'] = $interfaces['table_des_traitements']; |
|
| 1027 | - $GLOBALS['table_statut'] = $interfaces['table_statut']; |
|
| 1028 | - } |
|
| 949 | + $GLOBALS['table_des_tables']['articles'] = 'articles'; |
|
| 950 | + $GLOBALS['table_des_tables']['auteurs'] = 'auteurs'; |
|
| 951 | + $GLOBALS['table_des_tables']['rubriques'] = 'rubriques'; |
|
| 952 | + $GLOBALS['table_des_tables']['hierarchie'] = 'rubriques'; |
|
| 953 | + |
|
| 954 | + // definition des statuts de publication |
|
| 955 | + $GLOBALS['table_statut'] = array(); |
|
| 956 | + |
|
| 957 | + // |
|
| 958 | + // tableau des tables de jointures |
|
| 959 | + // Ex: gestion du critere {id_mot} dans la boucle(ARTICLES) |
|
| 960 | + $GLOBALS['tables_jointures'] = array(); |
|
| 961 | + $GLOBALS['tables_jointures']['spip_jobs'][] = 'jobs_liens'; |
|
| 962 | + |
|
| 963 | + // $GLOBALS['exceptions_des_jointures']['titre_mot'] = array('spip_mots', 'titre'); // pour exemple |
|
| 964 | + $GLOBALS['exceptions_des_jointures']['profondeur'] = array('spip_rubriques', 'profondeur'); |
|
| 965 | + |
|
| 966 | + |
|
| 967 | + if (!defined('_TRAITEMENT_TYPO')) { |
|
| 968 | + define('_TRAITEMENT_TYPO', 'typo(%s, "TYPO", $connect, $Pile[0])'); |
|
| 969 | + } |
|
| 970 | + if (!defined('_TRAITEMENT_RACCOURCIS')) { |
|
| 971 | + define('_TRAITEMENT_RACCOURCIS', 'propre(%s, $connect, $Pile[0])'); |
|
| 972 | + } |
|
| 973 | + if (!defined('_TRAITEMENT_TYPO_SANS_NUMERO')) { |
|
| 974 | + define('_TRAITEMENT_TYPO_SANS_NUMERO', 'supprimer_numero(typo(%s), "TYPO", $connect, $Pile[0])'); |
|
| 975 | + } |
|
| 976 | + $GLOBALS['table_des_traitements']['BIO'][] = _TRAITEMENT_RACCOURCIS; |
|
| 977 | + $GLOBALS['table_des_traitements']['CHAPO'][] = _TRAITEMENT_RACCOURCIS; |
|
| 978 | + $GLOBALS['table_des_traitements']['DATE'][] = 'normaliser_date(%s)'; |
|
| 979 | + $GLOBALS['table_des_traitements']['DATE_REDAC'][] = 'normaliser_date(%s)'; |
|
| 980 | + $GLOBALS['table_des_traitements']['DATE_MODIF'][] = 'normaliser_date(%s)'; |
|
| 981 | + $GLOBALS['table_des_traitements']['DATE_NOUVEAUTES'][] = 'normaliser_date(%s)'; |
|
| 982 | + $GLOBALS['table_des_traitements']['DESCRIPTIF'][] = _TRAITEMENT_RACCOURCIS; |
|
| 983 | + $GLOBALS['table_des_traitements']['INTRODUCTION'][] = _TRAITEMENT_RACCOURCIS; |
|
| 984 | + $GLOBALS['table_des_traitements']['NOM_SITE_SPIP'][] = _TRAITEMENT_TYPO; |
|
| 985 | + $GLOBALS['table_des_traitements']['NOM'][] = _TRAITEMENT_TYPO_SANS_NUMERO; |
|
| 986 | + $GLOBALS['table_des_traitements']['AUTEUR'][] = _TRAITEMENT_TYPO; |
|
| 987 | + $GLOBALS['table_des_traitements']['PS'][] = _TRAITEMENT_RACCOURCIS; |
|
| 988 | + $GLOBALS['table_des_traitements']['SOURCE'][] = _TRAITEMENT_TYPO; |
|
| 989 | + $GLOBALS['table_des_traitements']['SOUSTITRE'][] = _TRAITEMENT_TYPO; |
|
| 990 | + $GLOBALS['table_des_traitements']['SURTITRE'][] = _TRAITEMENT_TYPO; |
|
| 991 | + $GLOBALS['table_des_traitements']['TAGS'][] = '%s'; |
|
| 992 | + $GLOBALS['table_des_traitements']['TEXTE'][] = _TRAITEMENT_RACCOURCIS; |
|
| 993 | + $GLOBALS['table_des_traitements']['TITRE'][] = _TRAITEMENT_TYPO_SANS_NUMERO; |
|
| 994 | + $GLOBALS['table_des_traitements']['TYPE'][] = _TRAITEMENT_TYPO; |
|
| 995 | + $GLOBALS['table_des_traitements']['DESCRIPTIF_SITE_SPIP'][] = _TRAITEMENT_RACCOURCIS; |
|
| 996 | + $GLOBALS['table_des_traitements']['SLOGAN_SITE_SPIP'][] = _TRAITEMENT_TYPO; |
|
| 997 | + $GLOBALS['table_des_traitements']['ENV'][] = 'entites_html(%s,true)'; |
|
| 998 | + |
|
| 999 | + // valeur par defaut pour les balises non listees ci-dessus |
|
| 1000 | + $GLOBALS['table_des_traitements']['*'][] = false; // pas de traitement, mais permet au compilo de trouver la declaration suivante |
|
| 1001 | + // toujours securiser les DATA |
|
| 1002 | + $GLOBALS['table_des_traitements']['*']['DATA'] = 'safehtml(%s)'; |
|
| 1003 | + // expliciter pour VALEUR qui est un champ calcule et ne sera pas protege par le catch-all * |
|
| 1004 | + $GLOBALS['table_des_traitements']['VALEUR']['DATA'] = 'safehtml(%s)'; |
|
| 1005 | + |
|
| 1006 | + |
|
| 1007 | + // gerer l'affectation en 2 temps car si le pipe n'est pas encore declare, on ecrase les globales |
|
| 1008 | + $interfaces = pipeline('declarer_tables_interfaces', |
|
| 1009 | + array( |
|
| 1010 | + 'table_des_tables' => $GLOBALS['table_des_tables'], |
|
| 1011 | + 'exceptions_des_tables' => $GLOBALS['exceptions_des_tables'], |
|
| 1012 | + 'table_date' => $GLOBALS['table_date'], |
|
| 1013 | + 'table_titre' => $GLOBALS['table_titre'], |
|
| 1014 | + 'tables_jointures' => $GLOBALS['tables_jointures'], |
|
| 1015 | + 'exceptions_des_jointures' => $GLOBALS['exceptions_des_jointures'], |
|
| 1016 | + 'table_des_traitements' => $GLOBALS['table_des_traitements'], |
|
| 1017 | + 'table_statut' => $GLOBALS['table_statut'], |
|
| 1018 | + )); |
|
| 1019 | + if ($interfaces) { |
|
| 1020 | + $GLOBALS['table_des_tables'] = $interfaces['table_des_tables']; |
|
| 1021 | + $GLOBALS['exceptions_des_tables'] = $interfaces['exceptions_des_tables']; |
|
| 1022 | + $GLOBALS['table_date'] = $interfaces['table_date']; |
|
| 1023 | + $GLOBALS['table_titre'] = $interfaces['table_titre']; |
|
| 1024 | + $GLOBALS['tables_jointures'] = $interfaces['tables_jointures']; |
|
| 1025 | + $GLOBALS['exceptions_des_jointures'] = $interfaces['exceptions_des_jointures']; |
|
| 1026 | + $GLOBALS['table_des_traitements'] = $interfaces['table_des_traitements']; |
|
| 1027 | + $GLOBALS['table_statut'] = $interfaces['table_statut']; |
|
| 1028 | + } |
|
| 1029 | 1029 | } |
| 1030 | 1030 | |
| 1031 | 1031 | declarer_interfaces(); |