@@ -10,65 +10,65 @@ |
||
| 10 | 10 | \***************************************************************************/ |
| 11 | 11 | |
| 12 | 12 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 13 | - return; |
|
| 13 | + return; |
|
| 14 | 14 | } |
| 15 | 15 | |
| 16 | 16 | function formulaires_configurer_articles_charger_dist() { |
| 17 | - $valeurs = []; |
|
| 18 | - foreach ( |
|
| 19 | - [ |
|
| 20 | - 'articles_surtitre', |
|
| 21 | - 'articles_soustitre', |
|
| 22 | - 'articles_descriptif', |
|
| 23 | - 'articles_chapeau', |
|
| 24 | - 'articles_texte', |
|
| 25 | - 'articles_ps', |
|
| 26 | - 'articles_redac', |
|
| 27 | - 'articles_urlref', |
|
| 28 | - 'post_dates', |
|
| 29 | - 'articles_redirection', |
|
| 30 | - ] as $m |
|
| 31 | - ) { |
|
| 32 | - $valeurs[$m] = $GLOBALS['meta'][$m]; |
|
| 33 | - } |
|
| 17 | + $valeurs = []; |
|
| 18 | + foreach ( |
|
| 19 | + [ |
|
| 20 | + 'articles_surtitre', |
|
| 21 | + 'articles_soustitre', |
|
| 22 | + 'articles_descriptif', |
|
| 23 | + 'articles_chapeau', |
|
| 24 | + 'articles_texte', |
|
| 25 | + 'articles_ps', |
|
| 26 | + 'articles_redac', |
|
| 27 | + 'articles_urlref', |
|
| 28 | + 'post_dates', |
|
| 29 | + 'articles_redirection', |
|
| 30 | + ] as $m |
|
| 31 | + ) { |
|
| 32 | + $valeurs[$m] = $GLOBALS['meta'][$m]; |
|
| 33 | + } |
|
| 34 | 34 | |
| 35 | - return $valeurs; |
|
| 35 | + return $valeurs; |
|
| 36 | 36 | } |
| 37 | 37 | |
| 38 | 38 | |
| 39 | 39 | function formulaires_configurer_articles_traiter_dist() { |
| 40 | - $res = ['editable' => true]; |
|
| 41 | - $purger_skel = false; |
|
| 42 | - // Purger les squelettes si un changement de meta les affecte |
|
| 43 | - if (($i = _request('post_dates')) && $i != $GLOBALS['meta']['post_dates']) { |
|
| 44 | - $purger_skel = true; |
|
| 45 | - } |
|
| 40 | + $res = ['editable' => true]; |
|
| 41 | + $purger_skel = false; |
|
| 42 | + // Purger les squelettes si un changement de meta les affecte |
|
| 43 | + if (($i = _request('post_dates')) && $i != $GLOBALS['meta']['post_dates']) { |
|
| 44 | + $purger_skel = true; |
|
| 45 | + } |
|
| 46 | 46 | |
| 47 | - foreach ( |
|
| 48 | - [ |
|
| 49 | - 'articles_surtitre', |
|
| 50 | - 'articles_soustitre', |
|
| 51 | - 'articles_descriptif', |
|
| 52 | - 'articles_chapeau', |
|
| 53 | - 'articles_texte', |
|
| 54 | - 'articles_ps', |
|
| 55 | - 'articles_redac', |
|
| 56 | - 'articles_urlref', |
|
| 57 | - 'post_dates', |
|
| 58 | - 'articles_redirection', |
|
| 59 | - ] as $m |
|
| 60 | - ) { |
|
| 61 | - if (!is_null($v = _request($m))) { |
|
| 62 | - ecrire_meta($m, $v == 'oui' ? 'oui' : 'non'); |
|
| 63 | - } |
|
| 64 | - } |
|
| 47 | + foreach ( |
|
| 48 | + [ |
|
| 49 | + 'articles_surtitre', |
|
| 50 | + 'articles_soustitre', |
|
| 51 | + 'articles_descriptif', |
|
| 52 | + 'articles_chapeau', |
|
| 53 | + 'articles_texte', |
|
| 54 | + 'articles_ps', |
|
| 55 | + 'articles_redac', |
|
| 56 | + 'articles_urlref', |
|
| 57 | + 'post_dates', |
|
| 58 | + 'articles_redirection', |
|
| 59 | + ] as $m |
|
| 60 | + ) { |
|
| 61 | + if (!is_null($v = _request($m))) { |
|
| 62 | + ecrire_meta($m, $v == 'oui' ? 'oui' : 'non'); |
|
| 63 | + } |
|
| 64 | + } |
|
| 65 | 65 | |
| 66 | - if ($purger_skel) { |
|
| 67 | - include_spip('inc/invalideur'); |
|
| 68 | - purger_repertoire(_DIR_SKELS); |
|
| 69 | - } |
|
| 66 | + if ($purger_skel) { |
|
| 67 | + include_spip('inc/invalideur'); |
|
| 68 | + purger_repertoire(_DIR_SKELS); |
|
| 69 | + } |
|
| 70 | 70 | |
| 71 | - $res['message_ok'] = _T('config_info_enregistree'); |
|
| 71 | + $res['message_ok'] = _T('config_info_enregistree'); |
|
| 72 | 72 | |
| 73 | - return $res; |
|
| 73 | + return $res; |
|
| 74 | 74 | } |
@@ -15,7 +15,7 @@ discard block |
||
| 15 | 15 | * @package SPIP\Core\Fonctions |
| 16 | 16 | **/ |
| 17 | 17 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 18 | - return; |
|
| 18 | + return; |
|
| 19 | 19 | } |
| 20 | 20 | |
| 21 | 21 | /** |
@@ -28,29 +28,29 @@ discard block |
||
| 28 | 28 | * @param bool $left |
| 29 | 29 | */ |
| 30 | 30 | function critere_compteur_articles_filtres_dist($idb, &$boucles, $crit, $left = false) { |
| 31 | - $boucle = &$boucles[$idb]; |
|
| 31 | + $boucle = &$boucles[$idb]; |
|
| 32 | 32 | |
| 33 | - $_statut = calculer_liste($crit->param[0], [], $boucles, $boucle->id_parent); |
|
| 33 | + $_statut = calculer_liste($crit->param[0], [], $boucles, $boucle->id_parent); |
|
| 34 | 34 | |
| 35 | - $not = ''; |
|
| 36 | - if ($crit->not) { |
|
| 37 | - $not = ", 'NOT'"; |
|
| 38 | - } |
|
| 39 | - $boucle->from['LAA'] = 'spip_auteurs_liens'; |
|
| 40 | - $boucle->from_type['LAA'] = 'left'; |
|
| 41 | - $boucle->join['LAA'] = ["'auteurs'", "'id_auteur'", "'id_auteur'", "'LAA.objet=\'article\''"]; |
|
| 35 | + $not = ''; |
|
| 36 | + if ($crit->not) { |
|
| 37 | + $not = ", 'NOT'"; |
|
| 38 | + } |
|
| 39 | + $boucle->from['LAA'] = 'spip_auteurs_liens'; |
|
| 40 | + $boucle->from_type['LAA'] = 'left'; |
|
| 41 | + $boucle->join['LAA'] = ["'auteurs'", "'id_auteur'", "'id_auteur'", "'LAA.objet=\'article\''"]; |
|
| 42 | 42 | |
| 43 | - $boucle->from['articles'] = 'spip_articles'; |
|
| 44 | - $boucle->from_type['articles'] = 'left'; |
|
| 45 | - $boucle->join['articles'] = [ |
|
| 46 | - "'LAA'", |
|
| 47 | - "'id_article'", |
|
| 48 | - "'id_objet'", |
|
| 49 | - "'(articles.statut IS NULL OR '.sql_in_quote('articles.statut',[$_statut]$not).')'" |
|
| 50 | - ]; |
|
| 43 | + $boucle->from['articles'] = 'spip_articles'; |
|
| 44 | + $boucle->from_type['articles'] = 'left'; |
|
| 45 | + $boucle->join['articles'] = [ |
|
| 46 | + "'LAA'", |
|
| 47 | + "'id_article'", |
|
| 48 | + "'id_objet'", |
|
| 49 | + "'(articles.statut IS NULL OR '.sql_in_quote('articles.statut',[$_statut]$not).')'" |
|
| 50 | + ]; |
|
| 51 | 51 | |
| 52 | - $boucle->select[] = 'COUNT(articles.id_article) AS compteur_articles'; |
|
| 53 | - $boucle->group[] = 'auteurs.id_auteur'; |
|
| 52 | + $boucle->select[] = 'COUNT(articles.id_article) AS compteur_articles'; |
|
| 53 | + $boucle->group[] = 'auteurs.id_auteur'; |
|
| 54 | 54 | } |
| 55 | 55 | |
| 56 | 56 | /** |
@@ -68,7 +68,7 @@ discard block |
||
| 68 | 68 | * Pile complétée par le code à générer |
| 69 | 69 | */ |
| 70 | 70 | function balise_COMPTEUR_ARTICLES_dist($p) { |
| 71 | - return rindex_pile($p, 'compteur_articles', 'compteur_articles_filtres'); |
|
| 71 | + return rindex_pile($p, 'compteur_articles', 'compteur_articles_filtres'); |
|
| 72 | 72 | } |
| 73 | 73 | |
| 74 | 74 | |
@@ -84,37 +84,37 @@ discard block |
||
| 84 | 84 | * @return string |
| 85 | 85 | */ |
| 86 | 86 | function afficher_initiale($url, $initiale, $compteur, $debut, $pas) { |
| 87 | - static $memo = null; |
|
| 88 | - static $res = []; |
|
| 89 | - $out = ''; |
|
| 90 | - if (!$memo || !$initiale && !$url || $initiale !== $memo['initiale']) { |
|
| 91 | - $newcompt = (int) (floor(($compteur - 1) / $pas) * $pas); |
|
| 92 | - // si fin de la pagination et une seule entree, ne pas l'afficher, ca ne sert a rien |
|
| 93 | - if (!$initiale && !$url && !$memo['compteur']) { |
|
| 94 | - $memo = null; |
|
| 95 | - } |
|
| 96 | - if ($memo) { |
|
| 97 | - $on = ($memo['compteur'] <= $debut && ($newcompt > $debut || $newcompt == $debut && $newcompt == $memo['compteur'])); |
|
| 98 | - $res[] = "<li class='pagination-item'>" . lien_ou_expose($memo['url'], $memo['initiale'], $on ? 'span.pagination-item-label' : '', 'pagination-item-label lien_pagination') . '</li>'; |
|
| 99 | - } |
|
| 100 | - if ($initiale) { |
|
| 101 | - $memo = [ |
|
| 102 | - 'entree' => isset($memo['entree']) ? $memo['entree'] + 1 : 0, |
|
| 103 | - 'initiale' => $initiale, |
|
| 104 | - 'url' => parametre_url($url, 'i', $initiale), |
|
| 105 | - 'compteur' => $newcompt |
|
| 106 | - ]; |
|
| 107 | - } |
|
| 108 | - } |
|
| 109 | - if (!$initiale && !$url) { |
|
| 110 | - if ((is_countable($res) ? count($res) : 0) > 1) { |
|
| 111 | - $out = "<ul class='pagination-items'>" . implode(' ', $res) . '</ul>'; |
|
| 112 | - } |
|
| 113 | - $memo = null; |
|
| 114 | - $res = []; |
|
| 115 | - } |
|
| 87 | + static $memo = null; |
|
| 88 | + static $res = []; |
|
| 89 | + $out = ''; |
|
| 90 | + if (!$memo || !$initiale && !$url || $initiale !== $memo['initiale']) { |
|
| 91 | + $newcompt = (int) (floor(($compteur - 1) / $pas) * $pas); |
|
| 92 | + // si fin de la pagination et une seule entree, ne pas l'afficher, ca ne sert a rien |
|
| 93 | + if (!$initiale && !$url && !$memo['compteur']) { |
|
| 94 | + $memo = null; |
|
| 95 | + } |
|
| 96 | + if ($memo) { |
|
| 97 | + $on = ($memo['compteur'] <= $debut && ($newcompt > $debut || $newcompt == $debut && $newcompt == $memo['compteur'])); |
|
| 98 | + $res[] = "<li class='pagination-item'>" . lien_ou_expose($memo['url'], $memo['initiale'], $on ? 'span.pagination-item-label' : '', 'pagination-item-label lien_pagination') . '</li>'; |
|
| 99 | + } |
|
| 100 | + if ($initiale) { |
|
| 101 | + $memo = [ |
|
| 102 | + 'entree' => isset($memo['entree']) ? $memo['entree'] + 1 : 0, |
|
| 103 | + 'initiale' => $initiale, |
|
| 104 | + 'url' => parametre_url($url, 'i', $initiale), |
|
| 105 | + 'compteur' => $newcompt |
|
| 106 | + ]; |
|
| 107 | + } |
|
| 108 | + } |
|
| 109 | + if (!$initiale && !$url) { |
|
| 110 | + if ((is_countable($res) ? count($res) : 0) > 1) { |
|
| 111 | + $out = "<ul class='pagination-items'>" . implode(' ', $res) . '</ul>'; |
|
| 112 | + } |
|
| 113 | + $memo = null; |
|
| 114 | + $res = []; |
|
| 115 | + } |
|
| 116 | 116 | |
| 117 | - return $out; |
|
| 117 | + return $out; |
|
| 118 | 118 | } |
| 119 | 119 | |
| 120 | 120 | /** |
@@ -133,24 +133,24 @@ discard block |
||
| 133 | 133 | * @return string |
| 134 | 134 | */ |
| 135 | 135 | function auteur_lien_messagerie($id_auteur, $en_ligne, $statut, $imessage, $email = '') { |
| 136 | - static $time = null; |
|
| 137 | - if (!in_array($statut, ['0minirezo', '1comite'])) { |
|
| 138 | - return ''; |
|
| 139 | - } |
|
| 136 | + static $time = null; |
|
| 137 | + if (!in_array($statut, ['0minirezo', '1comite'])) { |
|
| 138 | + return ''; |
|
| 139 | + } |
|
| 140 | 140 | |
| 141 | - if (is_null($time)) { |
|
| 142 | - $time = time(); |
|
| 143 | - } |
|
| 144 | - $parti = (($time - strtotime($en_ligne)) > 15 * 60); |
|
| 141 | + if (is_null($time)) { |
|
| 142 | + $time = time(); |
|
| 143 | + } |
|
| 144 | + $parti = (($time - strtotime($en_ligne)) > 15 * 60); |
|
| 145 | 145 | |
| 146 | - if ( |
|
| 147 | - $imessage != 'non' && !$parti // historique : est-ce que ca a encore un sens de limiter vu qu'on a la notification par email ? |
|
| 148 | - && $GLOBALS['meta']['messagerie_agenda'] != 'non' |
|
| 149 | - ) { |
|
| 150 | - return parametre_url(parametre_url(generer_url_ecrire('message_edit', 'new=oui'), 'to', $id_auteur), 'redirect', self()); |
|
| 151 | - } elseif (strlen($email) && autoriser('voir', 'auteur', $id_auteur)) { |
|
| 152 | - return 'mailto:' . $email; |
|
| 153 | - } else { |
|
| 154 | - return ''; |
|
| 155 | - } |
|
| 146 | + if ( |
|
| 147 | + $imessage != 'non' && !$parti // historique : est-ce que ca a encore un sens de limiter vu qu'on a la notification par email ? |
|
| 148 | + && $GLOBALS['meta']['messagerie_agenda'] != 'non' |
|
| 149 | + ) { |
|
| 150 | + return parametre_url(parametre_url(generer_url_ecrire('message_edit', 'new=oui'), 'to', $id_auteur), 'redirect', self()); |
|
| 151 | + } elseif (strlen($email) && autoriser('voir', 'auteur', $id_auteur)) { |
|
| 152 | + return 'mailto:' . $email; |
|
| 153 | + } else { |
|
| 154 | + return ''; |
|
| 155 | + } |
|
| 156 | 156 | } |
@@ -95,7 +95,7 @@ discard block |
||
| 95 | 95 | } |
| 96 | 96 | if ($memo) { |
| 97 | 97 | $on = ($memo['compteur'] <= $debut && ($newcompt > $debut || $newcompt == $debut && $newcompt == $memo['compteur'])); |
| 98 | - $res[] = "<li class='pagination-item'>" . lien_ou_expose($memo['url'], $memo['initiale'], $on ? 'span.pagination-item-label' : '', 'pagination-item-label lien_pagination') . '</li>'; |
|
| 98 | + $res[] = "<li class='pagination-item'>".lien_ou_expose($memo['url'], $memo['initiale'], $on ? 'span.pagination-item-label' : '', 'pagination-item-label lien_pagination').'</li>'; |
|
| 99 | 99 | } |
| 100 | 100 | if ($initiale) { |
| 101 | 101 | $memo = [ |
@@ -108,7 +108,7 @@ discard block |
||
| 108 | 108 | } |
| 109 | 109 | if (!$initiale && !$url) { |
| 110 | 110 | if ((is_countable($res) ? count($res) : 0) > 1) { |
| 111 | - $out = "<ul class='pagination-items'>" . implode(' ', $res) . '</ul>'; |
|
| 111 | + $out = "<ul class='pagination-items'>".implode(' ', $res).'</ul>'; |
|
| 112 | 112 | } |
| 113 | 113 | $memo = null; |
| 114 | 114 | $res = []; |
@@ -149,7 +149,7 @@ discard block |
||
| 149 | 149 | ) { |
| 150 | 150 | return parametre_url(parametre_url(generer_url_ecrire('message_edit', 'new=oui'), 'to', $id_auteur), 'redirect', self()); |
| 151 | 151 | } elseif (strlen($email) && autoriser('voir', 'auteur', $id_auteur)) { |
| 152 | - return 'mailto:' . $email; |
|
| 152 | + return 'mailto:'.$email; |
|
| 153 | 153 | } else { |
| 154 | 154 | return ''; |
| 155 | 155 | } |
@@ -10,24 +10,24 @@ |
||
| 10 | 10 | \***************************************************************************/ |
| 11 | 11 | |
| 12 | 12 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 13 | - return; |
|
| 13 | + return; |
|
| 14 | 14 | } |
| 15 | 15 | |
| 16 | 16 | function lister_traductions($id_trad, $objet) { |
| 17 | - $table_objet_sql = table_objet_sql($objet); |
|
| 18 | - $primary = id_table_objet($objet); |
|
| 17 | + $table_objet_sql = table_objet_sql($objet); |
|
| 18 | + $primary = id_table_objet($objet); |
|
| 19 | 19 | |
| 20 | - $select = "$primary as id,lang"; |
|
| 21 | - $where = 'id_trad=' . (int) $id_trad; |
|
| 22 | - $trouver_table = charger_fonction('trouver_table', 'base'); |
|
| 23 | - $desc = $trouver_table($table_objet_sql); |
|
| 24 | - if (isset($desc['field']['statut'])) { |
|
| 25 | - $select .= ',statut'; |
|
| 26 | - $where .= ' AND statut!=' . sql_quote('poubelle'); |
|
| 27 | - } |
|
| 20 | + $select = "$primary as id,lang"; |
|
| 21 | + $where = 'id_trad=' . (int) $id_trad; |
|
| 22 | + $trouver_table = charger_fonction('trouver_table', 'base'); |
|
| 23 | + $desc = $trouver_table($table_objet_sql); |
|
| 24 | + if (isset($desc['field']['statut'])) { |
|
| 25 | + $select .= ',statut'; |
|
| 26 | + $where .= ' AND statut!=' . sql_quote('poubelle'); |
|
| 27 | + } |
|
| 28 | 28 | |
| 29 | - $rows = sql_allfetsel($select, $table_objet_sql, $where); |
|
| 30 | - lang_select(); |
|
| 29 | + $rows = sql_allfetsel($select, $table_objet_sql, $where); |
|
| 30 | + lang_select(); |
|
| 31 | 31 | |
| 32 | - return $rows; |
|
| 32 | + return $rows; |
|
| 33 | 33 | } |
@@ -18,12 +18,12 @@ |
||
| 18 | 18 | $primary = id_table_objet($objet); |
| 19 | 19 | |
| 20 | 20 | $select = "$primary as id,lang"; |
| 21 | - $where = 'id_trad=' . (int) $id_trad; |
|
| 21 | + $where = 'id_trad='.(int) $id_trad; |
|
| 22 | 22 | $trouver_table = charger_fonction('trouver_table', 'base'); |
| 23 | 23 | $desc = $trouver_table($table_objet_sql); |
| 24 | 24 | if (isset($desc['field']['statut'])) { |
| 25 | 25 | $select .= ',statut'; |
| 26 | - $where .= ' AND statut!=' . sql_quote('poubelle'); |
|
| 26 | + $where .= ' AND statut!='.sql_quote('poubelle'); |
|
| 27 | 27 | } |
| 28 | 28 | |
| 29 | 29 | $rows = sql_allfetsel($select, $table_objet_sql, $where); |
@@ -10,7 +10,7 @@ discard block |
||
| 10 | 10 | \***************************************************************************/ |
| 11 | 11 | |
| 12 | 12 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 13 | - return; |
|
| 13 | + return; |
|
| 14 | 14 | } |
| 15 | 15 | |
| 16 | 16 | /** |
@@ -23,9 +23,9 @@ discard block |
||
| 23 | 23 | */ |
| 24 | 24 | function deplacement_restreint($objet, $statut) { |
| 25 | 25 | |
| 26 | - return match ($objet) { |
|
| 27 | - 'rubrique' => !$GLOBALS['connect_toutes_rubriques'], |
|
| 28 | - 'article', 'site', 'syndic', 'breve' => $statut == 'publie', |
|
| 29 | - default => $statut ? $statut == 'publie' : false, |
|
| 30 | - }; |
|
| 26 | + return match ($objet) { |
|
| 27 | + 'rubrique' => !$GLOBALS['connect_toutes_rubriques'], |
|
| 28 | + 'article', 'site', 'syndic', 'breve' => $statut == 'publie', |
|
| 29 | + default => $statut ? $statut == 'publie' : false, |
|
| 30 | + }; |
|
| 31 | 31 | } |
@@ -10,77 +10,77 @@ |
||
| 10 | 10 | \***************************************************************************/ |
| 11 | 11 | |
| 12 | 12 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 13 | - return; |
|
| 13 | + return; |
|
| 14 | 14 | } |
| 15 | 15 | |
| 16 | 16 | function install_etape_ldap3_dist() { |
| 17 | - $info = []; |
|
| 18 | - $adresse_ldap = _request('adresse_ldap'); |
|
| 19 | - $login_ldap = _request('login_ldap'); |
|
| 20 | - $pass_ldap = _request('pass_ldap'); |
|
| 21 | - $port_ldap = _request('port_ldap'); |
|
| 17 | + $info = []; |
|
| 18 | + $adresse_ldap = _request('adresse_ldap'); |
|
| 19 | + $login_ldap = _request('login_ldap'); |
|
| 20 | + $pass_ldap = _request('pass_ldap'); |
|
| 21 | + $port_ldap = _request('port_ldap'); |
|
| 22 | 22 | |
| 23 | - $base_ldap_text = defined('_INSTALL_BASE_LDAP') |
|
| 24 | - ? _INSTALL_BASE_LDAP |
|
| 25 | - : 'ou=users, dc=mon-domaine, dc=com'; |
|
| 23 | + $base_ldap_text = defined('_INSTALL_BASE_LDAP') |
|
| 24 | + ? _INSTALL_BASE_LDAP |
|
| 25 | + : 'ou=users, dc=mon-domaine, dc=com'; |
|
| 26 | 26 | |
| 27 | - $minipage = new Spip\Afficher\Minipage\Installation(); |
|
| 28 | - echo $minipage->installDebutPage(['onload' => 'document.getElementById(\'suivant\').focus();return false;']); |
|
| 27 | + $minipage = new Spip\Afficher\Minipage\Installation(); |
|
| 28 | + echo $minipage->installDebutPage(['onload' => 'document.getElementById(\'suivant\').focus();return false;']); |
|
| 29 | 29 | |
| 30 | - echo info_etape( |
|
| 31 | - _T('info_chemin_acces_1'), |
|
| 32 | - info_progression_etape(3, 'etape_ldap', 'install/') |
|
| 33 | - ), |
|
| 34 | - _T('info_chemin_acces_2'); |
|
| 30 | + echo info_etape( |
|
| 31 | + _T('info_chemin_acces_1'), |
|
| 32 | + info_progression_etape(3, 'etape_ldap', 'install/') |
|
| 33 | + ), |
|
| 34 | + _T('info_chemin_acces_2'); |
|
| 35 | 35 | |
| 36 | - $ldap_link = @ldap_connect("$adresse_ldap", "$port_ldap"); |
|
| 37 | - if ($ldap_link) { |
|
| 38 | - @ldap_bind($ldap_link, "$login_ldap", "$pass_ldap"); |
|
| 39 | - $result = @ldap_read($ldap_link, '', 'objectclass=*', ['namingContexts']); |
|
| 40 | - $info = @ldap_get_entries($ldap_link, $result); |
|
| 41 | - @ldap_close($ldap_link); |
|
| 42 | - } |
|
| 36 | + $ldap_link = @ldap_connect("$adresse_ldap", "$port_ldap"); |
|
| 37 | + if ($ldap_link) { |
|
| 38 | + @ldap_bind($ldap_link, "$login_ldap", "$pass_ldap"); |
|
| 39 | + $result = @ldap_read($ldap_link, '', 'objectclass=*', ['namingContexts']); |
|
| 40 | + $info = @ldap_get_entries($ldap_link, $result); |
|
| 41 | + @ldap_close($ldap_link); |
|
| 42 | + } |
|
| 43 | 43 | |
| 44 | - $checked = false; |
|
| 45 | - $res = ''; |
|
| 46 | - if (is_array($info) && $info['count'] > 0) { |
|
| 47 | - $res .= '<p>' . _T('info_selection_chemin_acces') . '</p>'; |
|
| 48 | - $res .= '<ul>'; |
|
| 49 | - $n = 0; |
|
| 50 | - for ($i = 0; $i < $info['count']; $i++) { |
|
| 51 | - $names = $info[$i]['namingcontexts']; |
|
| 52 | - if (is_array($names)) { |
|
| 53 | - for ($j = 0; $j < $names['count']; $j++) { |
|
| 54 | - $n++; |
|
| 55 | - $res .= '<li><input name="base_ldap" value="' . spip_htmlspecialchars($names[$j]) . "\" type='radio' id='tab$n'"; |
|
| 56 | - if (!$checked) { |
|
| 57 | - $res .= ' checked="checked"'; |
|
| 58 | - $checked = true; |
|
| 59 | - } |
|
| 60 | - $res .= ' />'; |
|
| 61 | - $res .= "<label for='tab$n'>" . spip_htmlspecialchars($names[$j]) . "</label></li>\n"; |
|
| 62 | - } |
|
| 63 | - } |
|
| 64 | - } |
|
| 65 | - $res .= '</ul>'; |
|
| 66 | - $res .= _T('info_ou') . ' '; |
|
| 67 | - } |
|
| 68 | - $res .= "<br />\n<input name=\"base_ldap\" value=\"\" type='radio' id='manuel'"; |
|
| 69 | - if (!$checked) { |
|
| 70 | - $res .= ' checked="checked"'; |
|
| 71 | - $checked = true; |
|
| 72 | - } |
|
| 44 | + $checked = false; |
|
| 45 | + $res = ''; |
|
| 46 | + if (is_array($info) && $info['count'] > 0) { |
|
| 47 | + $res .= '<p>' . _T('info_selection_chemin_acces') . '</p>'; |
|
| 48 | + $res .= '<ul>'; |
|
| 49 | + $n = 0; |
|
| 50 | + for ($i = 0; $i < $info['count']; $i++) { |
|
| 51 | + $names = $info[$i]['namingcontexts']; |
|
| 52 | + if (is_array($names)) { |
|
| 53 | + for ($j = 0; $j < $names['count']; $j++) { |
|
| 54 | + $n++; |
|
| 55 | + $res .= '<li><input name="base_ldap" value="' . spip_htmlspecialchars($names[$j]) . "\" type='radio' id='tab$n'"; |
|
| 56 | + if (!$checked) { |
|
| 57 | + $res .= ' checked="checked"'; |
|
| 58 | + $checked = true; |
|
| 59 | + } |
|
| 60 | + $res .= ' />'; |
|
| 61 | + $res .= "<label for='tab$n'>" . spip_htmlspecialchars($names[$j]) . "</label></li>\n"; |
|
| 62 | + } |
|
| 63 | + } |
|
| 64 | + } |
|
| 65 | + $res .= '</ul>'; |
|
| 66 | + $res .= _T('info_ou') . ' '; |
|
| 67 | + } |
|
| 68 | + $res .= "<br />\n<input name=\"base_ldap\" value=\"\" type='radio' id='manuel'"; |
|
| 69 | + if (!$checked) { |
|
| 70 | + $res .= ' checked="checked"'; |
|
| 71 | + $checked = true; |
|
| 72 | + } |
|
| 73 | 73 | |
| 74 | - $res .= ' />' |
|
| 75 | - . "\n<label for='manuel'>" . _T('entree_chemin_acces') . '</label> ' |
|
| 76 | - . "\n<fieldset>" |
|
| 77 | - . "<input type='text' name='base_ldap_text' class='text' value=\"$base_ldap_text\" size='40' />" |
|
| 78 | - . "\n</fieldset>" |
|
| 79 | - . "\n<input type='hidden' name='etape' value='ldap4' />" |
|
| 80 | - . install_propager(['adresse_ldap', 'port_ldap', 'login_ldap', 'pass_ldap', 'protocole_ldap', 'tls_ldap']) |
|
| 81 | - . bouton_suivant(); |
|
| 74 | + $res .= ' />' |
|
| 75 | + . "\n<label for='manuel'>" . _T('entree_chemin_acces') . '</label> ' |
|
| 76 | + . "\n<fieldset>" |
|
| 77 | + . "<input type='text' name='base_ldap_text' class='text' value=\"$base_ldap_text\" size='40' />" |
|
| 78 | + . "\n</fieldset>" |
|
| 79 | + . "\n<input type='hidden' name='etape' value='ldap4' />" |
|
| 80 | + . install_propager(['adresse_ldap', 'port_ldap', 'login_ldap', 'pass_ldap', 'protocole_ldap', 'tls_ldap']) |
|
| 81 | + . bouton_suivant(); |
|
| 82 | 82 | |
| 83 | - echo generer_form_ecrire('install', $res); |
|
| 83 | + echo generer_form_ecrire('install', $res); |
|
| 84 | 84 | |
| 85 | - echo $minipage->installFinPage(); |
|
| 85 | + echo $minipage->installFinPage(); |
|
| 86 | 86 | } |
@@ -44,7 +44,7 @@ discard block |
||
| 44 | 44 | $checked = false; |
| 45 | 45 | $res = ''; |
| 46 | 46 | if (is_array($info) && $info['count'] > 0) { |
| 47 | - $res .= '<p>' . _T('info_selection_chemin_acces') . '</p>'; |
|
| 47 | + $res .= '<p>'._T('info_selection_chemin_acces').'</p>'; |
|
| 48 | 48 | $res .= '<ul>'; |
| 49 | 49 | $n = 0; |
| 50 | 50 | for ($i = 0; $i < $info['count']; $i++) { |
@@ -52,18 +52,18 @@ discard block |
||
| 52 | 52 | if (is_array($names)) { |
| 53 | 53 | for ($j = 0; $j < $names['count']; $j++) { |
| 54 | 54 | $n++; |
| 55 | - $res .= '<li><input name="base_ldap" value="' . spip_htmlspecialchars($names[$j]) . "\" type='radio' id='tab$n'"; |
|
| 55 | + $res .= '<li><input name="base_ldap" value="'.spip_htmlspecialchars($names[$j])."\" type='radio' id='tab$n'"; |
|
| 56 | 56 | if (!$checked) { |
| 57 | 57 | $res .= ' checked="checked"'; |
| 58 | 58 | $checked = true; |
| 59 | 59 | } |
| 60 | 60 | $res .= ' />'; |
| 61 | - $res .= "<label for='tab$n'>" . spip_htmlspecialchars($names[$j]) . "</label></li>\n"; |
|
| 61 | + $res .= "<label for='tab$n'>".spip_htmlspecialchars($names[$j])."</label></li>\n"; |
|
| 62 | 62 | } |
| 63 | 63 | } |
| 64 | 64 | } |
| 65 | 65 | $res .= '</ul>'; |
| 66 | - $res .= _T('info_ou') . ' '; |
|
| 66 | + $res .= _T('info_ou').' '; |
|
| 67 | 67 | } |
| 68 | 68 | $res .= "<br />\n<input name=\"base_ldap\" value=\"\" type='radio' id='manuel'"; |
| 69 | 69 | if (!$checked) { |
@@ -72,7 +72,7 @@ discard block |
||
| 72 | 72 | } |
| 73 | 73 | |
| 74 | 74 | $res .= ' />' |
| 75 | - . "\n<label for='manuel'>" . _T('entree_chemin_acces') . '</label> ' |
|
| 75 | + . "\n<label for='manuel'>"._T('entree_chemin_acces').'</label> ' |
|
| 76 | 76 | . "\n<fieldset>" |
| 77 | 77 | . "<input type='text' name='base_ldap_text' class='text' value=\"$base_ldap_text\" size='40' />" |
| 78 | 78 | . "\n</fieldset>" |
@@ -10,96 +10,96 @@ |
||
| 10 | 10 | \***************************************************************************/ |
| 11 | 11 | |
| 12 | 12 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 13 | - return; |
|
| 13 | + return; |
|
| 14 | 14 | } |
| 15 | 15 | |
| 16 | 16 | include_spip('auth/ldap'); |
| 17 | 17 | |
| 18 | 18 | function install_etape_ldap4_dist() { |
| 19 | - $adresse_ldap = _request('adresse_ldap'); |
|
| 20 | - $login_ldap = _request('login_ldap'); |
|
| 21 | - $pass_ldap = _request('pass_ldap'); |
|
| 22 | - $port_ldap = _request('port_ldap'); |
|
| 23 | - $base_ldap = _request('base_ldap'); |
|
| 24 | - $base_ldap_text = _request('base_ldap_text'); |
|
| 25 | - if (!$base_ldap) { |
|
| 26 | - $base_ldap = $base_ldap_text; |
|
| 27 | - } |
|
| 28 | - |
|
| 29 | - $minipage = new Spip\Afficher\Minipage\Installation(); |
|
| 30 | - echo $minipage->installDebutPage(['onload' => 'document.getElementById(\'suivant\').focus();return false;']); |
|
| 31 | - |
|
| 32 | - $ldap_link = ldap_connect($adresse_ldap, $port_ldap); |
|
| 33 | - @ldap_bind($ldap_link, $login_ldap, $pass_ldap); |
|
| 34 | - |
|
| 35 | - // Essayer de verifier le chemin fourni |
|
| 36 | - $r = @ldap_compare($ldap_link, $base_ldap, 'objectClass', ''); |
|
| 37 | - $fail = (ldap_errno($ldap_link) == 32); |
|
| 38 | - |
|
| 39 | - if ($fail) { |
|
| 40 | - echo info_etape(_T('info_chemin_acces_annuaire')), |
|
| 41 | - info_progression_etape(3, 'etape_ldap', 'install/', true), |
|
| 42 | - "<div class='error'><p><b>" . _T('avis_operation_echec') . '</b></p><p>' . _T('avis_chemin_invalide_1'), |
|
| 43 | - ' (<tt>' . spip_htmlspecialchars($base_ldap) . '</tt>) ' . _T('avis_chemin_invalide_2') . '</p></div>'; |
|
| 44 | - } else { |
|
| 45 | - info_etape(_T('info_reglage_ldap')); |
|
| 46 | - echo info_progression_etape(4, 'etape_ldap', 'install/'); |
|
| 47 | - |
|
| 48 | - $statuts = liste_statuts_ldap(); |
|
| 49 | - $statut_ldap = defined('_INSTALL_STATUT_LDAP') |
|
| 50 | - ? _INSTALL_STATUT_LDAP |
|
| 51 | - : $GLOBALS['liste_des_statuts']['info_redacteurs']; |
|
| 52 | - |
|
| 53 | - |
|
| 54 | - $res = install_propager(['adresse_ldap', 'port_ldap', 'login_ldap', 'pass_ldap', 'protocole_ldap', 'tls_ldap']) |
|
| 55 | - . "<input type='hidden' name='etape' value='ldap5' />" |
|
| 56 | - . "<input type='hidden' name='base_ldap' value='" . spip_htmlentities($base_ldap) . "' />" |
|
| 57 | - . fieldset( |
|
| 58 | - _T('info_statut_utilisateurs_1'), |
|
| 59 | - [ |
|
| 60 | - 'statut_ldap' => [ |
|
| 61 | - 'label' => _T('info_statut_utilisateurs_2') . '<br />', |
|
| 62 | - 'valeur' => $statut_ldap, |
|
| 63 | - 'alternatives' => $statuts |
|
| 64 | - ] |
|
| 65 | - ] |
|
| 66 | - ) |
|
| 67 | - . install_ldap_correspondances() |
|
| 68 | - . bouton_suivant(); |
|
| 69 | - |
|
| 70 | - echo generer_form_ecrire('install', $res); |
|
| 71 | - } |
|
| 72 | - |
|
| 73 | - echo $minipage->installFinPage(); |
|
| 19 | + $adresse_ldap = _request('adresse_ldap'); |
|
| 20 | + $login_ldap = _request('login_ldap'); |
|
| 21 | + $pass_ldap = _request('pass_ldap'); |
|
| 22 | + $port_ldap = _request('port_ldap'); |
|
| 23 | + $base_ldap = _request('base_ldap'); |
|
| 24 | + $base_ldap_text = _request('base_ldap_text'); |
|
| 25 | + if (!$base_ldap) { |
|
| 26 | + $base_ldap = $base_ldap_text; |
|
| 27 | + } |
|
| 28 | + |
|
| 29 | + $minipage = new Spip\Afficher\Minipage\Installation(); |
|
| 30 | + echo $minipage->installDebutPage(['onload' => 'document.getElementById(\'suivant\').focus();return false;']); |
|
| 31 | + |
|
| 32 | + $ldap_link = ldap_connect($adresse_ldap, $port_ldap); |
|
| 33 | + @ldap_bind($ldap_link, $login_ldap, $pass_ldap); |
|
| 34 | + |
|
| 35 | + // Essayer de verifier le chemin fourni |
|
| 36 | + $r = @ldap_compare($ldap_link, $base_ldap, 'objectClass', ''); |
|
| 37 | + $fail = (ldap_errno($ldap_link) == 32); |
|
| 38 | + |
|
| 39 | + if ($fail) { |
|
| 40 | + echo info_etape(_T('info_chemin_acces_annuaire')), |
|
| 41 | + info_progression_etape(3, 'etape_ldap', 'install/', true), |
|
| 42 | + "<div class='error'><p><b>" . _T('avis_operation_echec') . '</b></p><p>' . _T('avis_chemin_invalide_1'), |
|
| 43 | + ' (<tt>' . spip_htmlspecialchars($base_ldap) . '</tt>) ' . _T('avis_chemin_invalide_2') . '</p></div>'; |
|
| 44 | + } else { |
|
| 45 | + info_etape(_T('info_reglage_ldap')); |
|
| 46 | + echo info_progression_etape(4, 'etape_ldap', 'install/'); |
|
| 47 | + |
|
| 48 | + $statuts = liste_statuts_ldap(); |
|
| 49 | + $statut_ldap = defined('_INSTALL_STATUT_LDAP') |
|
| 50 | + ? _INSTALL_STATUT_LDAP |
|
| 51 | + : $GLOBALS['liste_des_statuts']['info_redacteurs']; |
|
| 52 | + |
|
| 53 | + |
|
| 54 | + $res = install_propager(['adresse_ldap', 'port_ldap', 'login_ldap', 'pass_ldap', 'protocole_ldap', 'tls_ldap']) |
|
| 55 | + . "<input type='hidden' name='etape' value='ldap5' />" |
|
| 56 | + . "<input type='hidden' name='base_ldap' value='" . spip_htmlentities($base_ldap) . "' />" |
|
| 57 | + . fieldset( |
|
| 58 | + _T('info_statut_utilisateurs_1'), |
|
| 59 | + [ |
|
| 60 | + 'statut_ldap' => [ |
|
| 61 | + 'label' => _T('info_statut_utilisateurs_2') . '<br />', |
|
| 62 | + 'valeur' => $statut_ldap, |
|
| 63 | + 'alternatives' => $statuts |
|
| 64 | + ] |
|
| 65 | + ] |
|
| 66 | + ) |
|
| 67 | + . install_ldap_correspondances() |
|
| 68 | + . bouton_suivant(); |
|
| 69 | + |
|
| 70 | + echo generer_form_ecrire('install', $res); |
|
| 71 | + } |
|
| 72 | + |
|
| 73 | + echo $minipage->installFinPage(); |
|
| 74 | 74 | } |
| 75 | 75 | |
| 76 | 76 | function liste_statuts_ldap() { |
| 77 | - $recom = [ |
|
| 78 | - 'info_administrateurs' => ('<b>' . _T('info_administrateur_1') . '</b> ' . _T('info_administrateur_2') . '<br />'), |
|
| 79 | - 'info_redacteurs' => ('<b>' . _T('info_redacteur_1') . '</b> ' . _T('info_redacteur_2') . '<br />'), |
|
| 80 | - 'info_visiteurs' => ('<b>' . _T('info_visiteur_1') . '</b> ' . _T('info_visiteur_2') . '<br />') |
|
| 81 | - ]; |
|
| 82 | - |
|
| 83 | - $res = []; |
|
| 84 | - foreach ($GLOBALS['liste_des_statuts'] as $k => $v) { |
|
| 85 | - if (isset($recom[$k])) { |
|
| 86 | - $res[$v] = $recom[$k]; |
|
| 87 | - } |
|
| 88 | - } |
|
| 89 | - |
|
| 90 | - return $res; |
|
| 77 | + $recom = [ |
|
| 78 | + 'info_administrateurs' => ('<b>' . _T('info_administrateur_1') . '</b> ' . _T('info_administrateur_2') . '<br />'), |
|
| 79 | + 'info_redacteurs' => ('<b>' . _T('info_redacteur_1') . '</b> ' . _T('info_redacteur_2') . '<br />'), |
|
| 80 | + 'info_visiteurs' => ('<b>' . _T('info_visiteur_1') . '</b> ' . _T('info_visiteur_2') . '<br />') |
|
| 81 | + ]; |
|
| 82 | + |
|
| 83 | + $res = []; |
|
| 84 | + foreach ($GLOBALS['liste_des_statuts'] as $k => $v) { |
|
| 85 | + if (isset($recom[$k])) { |
|
| 86 | + $res[$v] = $recom[$k]; |
|
| 87 | + } |
|
| 88 | + } |
|
| 89 | + |
|
| 90 | + return $res; |
|
| 91 | 91 | } |
| 92 | 92 | |
| 93 | 93 | function install_ldap_correspondances() { |
| 94 | - $champs = []; |
|
| 95 | - foreach (is_array($GLOBALS['ldap_attributes']) ? $GLOBALS['ldap_attributes'] : [] as $champ => $v) { |
|
| 96 | - $nom = 'ldap_' . $champ; |
|
| 97 | - $val = is_array($v) ? implode(',', $v) : (string) $v; |
|
| 98 | - $champs[$nom] = [ |
|
| 99 | - 'label' => _T('ldap_correspondance', ['champ' => "<tt>$champ</tt>"]) . '<br />', |
|
| 100 | - 'valeur' => $val |
|
| 101 | - ]; |
|
| 102 | - } |
|
| 103 | - |
|
| 104 | - return $champs ? fieldset(_T('ldap_correspondance_1'), $champs, '', _T('ldap_correspondance_2') . '<br /><br />') : ''; |
|
| 94 | + $champs = []; |
|
| 95 | + foreach (is_array($GLOBALS['ldap_attributes']) ? $GLOBALS['ldap_attributes'] : [] as $champ => $v) { |
|
| 96 | + $nom = 'ldap_' . $champ; |
|
| 97 | + $val = is_array($v) ? implode(',', $v) : (string) $v; |
|
| 98 | + $champs[$nom] = [ |
|
| 99 | + 'label' => _T('ldap_correspondance', ['champ' => "<tt>$champ</tt>"]) . '<br />', |
|
| 100 | + 'valeur' => $val |
|
| 101 | + ]; |
|
| 102 | + } |
|
| 103 | + |
|
| 104 | + return $champs ? fieldset(_T('ldap_correspondance_1'), $champs, '', _T('ldap_correspondance_2') . '<br /><br />') : ''; |
|
| 105 | 105 | } |
@@ -39,8 +39,8 @@ discard block |
||
| 39 | 39 | if ($fail) { |
| 40 | 40 | echo info_etape(_T('info_chemin_acces_annuaire')), |
| 41 | 41 | info_progression_etape(3, 'etape_ldap', 'install/', true), |
| 42 | - "<div class='error'><p><b>" . _T('avis_operation_echec') . '</b></p><p>' . _T('avis_chemin_invalide_1'), |
|
| 43 | - ' (<tt>' . spip_htmlspecialchars($base_ldap) . '</tt>) ' . _T('avis_chemin_invalide_2') . '</p></div>'; |
|
| 42 | + "<div class='error'><p><b>"._T('avis_operation_echec').'</b></p><p>'._T('avis_chemin_invalide_1'), |
|
| 43 | + ' (<tt>'.spip_htmlspecialchars($base_ldap).'</tt>) '._T('avis_chemin_invalide_2').'</p></div>'; |
|
| 44 | 44 | } else { |
| 45 | 45 | info_etape(_T('info_reglage_ldap')); |
| 46 | 46 | echo info_progression_etape(4, 'etape_ldap', 'install/'); |
@@ -53,12 +53,12 @@ discard block |
||
| 53 | 53 | |
| 54 | 54 | $res = install_propager(['adresse_ldap', 'port_ldap', 'login_ldap', 'pass_ldap', 'protocole_ldap', 'tls_ldap']) |
| 55 | 55 | . "<input type='hidden' name='etape' value='ldap5' />" |
| 56 | - . "<input type='hidden' name='base_ldap' value='" . spip_htmlentities($base_ldap) . "' />" |
|
| 56 | + . "<input type='hidden' name='base_ldap' value='".spip_htmlentities($base_ldap)."' />" |
|
| 57 | 57 | . fieldset( |
| 58 | 58 | _T('info_statut_utilisateurs_1'), |
| 59 | 59 | [ |
| 60 | 60 | 'statut_ldap' => [ |
| 61 | - 'label' => _T('info_statut_utilisateurs_2') . '<br />', |
|
| 61 | + 'label' => _T('info_statut_utilisateurs_2').'<br />', |
|
| 62 | 62 | 'valeur' => $statut_ldap, |
| 63 | 63 | 'alternatives' => $statuts |
| 64 | 64 | ] |
@@ -75,9 +75,9 @@ discard block |
||
| 75 | 75 | |
| 76 | 76 | function liste_statuts_ldap() { |
| 77 | 77 | $recom = [ |
| 78 | - 'info_administrateurs' => ('<b>' . _T('info_administrateur_1') . '</b> ' . _T('info_administrateur_2') . '<br />'), |
|
| 79 | - 'info_redacteurs' => ('<b>' . _T('info_redacteur_1') . '</b> ' . _T('info_redacteur_2') . '<br />'), |
|
| 80 | - 'info_visiteurs' => ('<b>' . _T('info_visiteur_1') . '</b> ' . _T('info_visiteur_2') . '<br />') |
|
| 78 | + 'info_administrateurs' => ('<b>'._T('info_administrateur_1').'</b> '._T('info_administrateur_2').'<br />'), |
|
| 79 | + 'info_redacteurs' => ('<b>'._T('info_redacteur_1').'</b> '._T('info_redacteur_2').'<br />'), |
|
| 80 | + 'info_visiteurs' => ('<b>'._T('info_visiteur_1').'</b> '._T('info_visiteur_2').'<br />') |
|
| 81 | 81 | ]; |
| 82 | 82 | |
| 83 | 83 | $res = []; |
@@ -93,13 +93,13 @@ discard block |
||
| 93 | 93 | function install_ldap_correspondances() { |
| 94 | 94 | $champs = []; |
| 95 | 95 | foreach (is_array($GLOBALS['ldap_attributes']) ? $GLOBALS['ldap_attributes'] : [] as $champ => $v) { |
| 96 | - $nom = 'ldap_' . $champ; |
|
| 96 | + $nom = 'ldap_'.$champ; |
|
| 97 | 97 | $val = is_array($v) ? implode(',', $v) : (string) $v; |
| 98 | 98 | $champs[$nom] = [ |
| 99 | - 'label' => _T('ldap_correspondance', ['champ' => "<tt>$champ</tt>"]) . '<br />', |
|
| 99 | + 'label' => _T('ldap_correspondance', ['champ' => "<tt>$champ</tt>"]).'<br />', |
|
| 100 | 100 | 'valeur' => $val |
| 101 | 101 | ]; |
| 102 | 102 | } |
| 103 | 103 | |
| 104 | - return $champs ? fieldset(_T('ldap_correspondance_1'), $champs, '', _T('ldap_correspondance_2') . '<br /><br />') : ''; |
|
| 104 | + return $champs ? fieldset(_T('ldap_correspondance_1'), $champs, '', _T('ldap_correspondance_2').'<br /><br />') : ''; |
|
| 105 | 105 | } |
@@ -48,7 +48,7 @@ discard block |
||
| 48 | 48 | $GLOBALS['connexions'][$server_db] = $link; |
| 49 | 49 | |
| 50 | 50 | $GLOBALS['connexions'][$server_db][$GLOBALS['spip_sql_version']] |
| 51 | - = $GLOBALS['spip_' . $server_db . '_functions_' . $GLOBALS['spip_sql_version']]; |
|
| 51 | + = $GLOBALS['spip_'.$server_db.'_functions_'.$GLOBALS['spip_sql_version']]; |
|
| 52 | 52 | |
| 53 | 53 | $minipage = new Spip\Afficher\Minipage\Installation(); |
| 54 | 54 | echo $minipage->installDebutPage(); |
@@ -68,18 +68,18 @@ discard block |
||
| 68 | 68 | //echo "\n-->\n"; |
| 69 | 69 | |
| 70 | 70 | if (($db_connect == '0') && $link) { |
| 71 | - echo "<div class='success'><b>" . _T('info_connexion_ok') . '</b></div>'; |
|
| 71 | + echo "<div class='success'><b>"._T('info_connexion_ok').'</b></div>'; |
|
| 72 | 72 | echo info_progression_etape(2, 'etape_', 'install/'); |
| 73 | 73 | |
| 74 | - echo info_etape(_T('menu_aide_installation_choix_base') . aider('install2', true)); |
|
| 74 | + echo info_etape(_T('menu_aide_installation_choix_base').aider('install2', true)); |
|
| 75 | 75 | |
| 76 | 76 | echo "\n", '<!-- ', sql_version($server_db), ' -->'; |
| 77 | 77 | [$checked, $res] = install_etape_2_bases($login_db, $server_db); |
| 78 | 78 | |
| 79 | 79 | $hidden = (defined('_SPIP_CHMOD') |
| 80 | 80 | ? '' |
| 81 | - : ("\n<input type='hidden' name='chmod' value='" . spip_htmlspecialchars($chmod) . "' />")) |
|
| 82 | - . predef_ou_cache($adresse_db . ($port ? ':' . $port : ''), $login_db, $pass_db, $server_db); |
|
| 81 | + : ("\n<input type='hidden' name='chmod' value='".spip_htmlspecialchars($chmod)."' />")) |
|
| 82 | + . predef_ou_cache($adresse_db.($port ? ':'.$port : ''), $login_db, $pass_db, $server_db); |
|
| 83 | 83 | |
| 84 | 84 | echo install_etape_2_form($hidden, $checked, $res, 3); |
| 85 | 85 | } else { |
@@ -87,8 +87,8 @@ discard block |
||
| 87 | 87 | |
| 88 | 88 | echo "<div class='error'>"; |
| 89 | 89 | echo info_etape(_T('info_connexion_base')); |
| 90 | - echo '<h3>' . _T('avis_connexion_echec_1') . '</h3>'; |
|
| 91 | - echo '<p>' . _T('avis_connexion_echec_2') . '</p>'; |
|
| 90 | + echo '<h3>'._T('avis_connexion_echec_1').'</h3>'; |
|
| 91 | + echo '<p>'._T('avis_connexion_echec_2').'</p>'; |
|
| 92 | 92 | |
| 93 | 93 | echo "<p style='font-size: small;'>", |
| 94 | 94 | _T('avis_connexion_echec_3'), |
@@ -120,8 +120,8 @@ discard block |
||
| 120 | 120 | . ' ' |
| 121 | 121 | ]; |
| 122 | 122 | } |
| 123 | - $res = '<b>' . _T('avis_lecture_noms_bases_1') . '</b> |
|
| 124 | - ' . _T('avis_lecture_noms_bases_2') . '<p>'; |
|
| 123 | + $res = '<b>'._T('avis_lecture_noms_bases_1').'</b> |
|
| 124 | + ' . _T('avis_lecture_noms_bases_2').'<p>'; |
|
| 125 | 125 | |
| 126 | 126 | $checked = false; |
| 127 | 127 | if ($login_db) { |
@@ -138,10 +138,10 @@ discard block |
||
| 138 | 138 | if ($ok) { |
| 139 | 139 | $res .= _T('avis_lecture_noms_bases_3') |
| 140 | 140 | . '<ul>' |
| 141 | - . '<li><input name="choix_db" value="' . $test_base . "\" type='radio' id='stand' checked='checked' />" |
|
| 142 | - . "<label for='stand'>" . $test_base . "</label></li>\n" |
|
| 141 | + . '<li><input name="choix_db" value="'.$test_base."\" type='radio' id='stand' checked='checked' />" |
|
| 142 | + . "<label for='stand'>".$test_base."</label></li>\n" |
|
| 143 | 143 | . '</ul>' |
| 144 | - . '<p>' . _T('info_ou') . ' '; |
|
| 144 | + . '<p>'._T('info_ou').' '; |
|
| 145 | 145 | $checked = true; |
| 146 | 146 | } |
| 147 | 147 | } |
@@ -154,19 +154,19 @@ discard block |
||
| 154 | 154 | "\n<input type='hidden' name='etape' value='$etape' />" |
| 155 | 155 | . $hidden |
| 156 | 156 | . (defined('_INSTALL_NAME_DB') |
| 157 | - ? '<h3>' . _T('install_nom_base_hebergeur') . ' <tt>' . _INSTALL_NAME_DB . '</tt>' . '</h3>' |
|
| 158 | - : "\n<fieldset><legend>" . _T('texte_choix_base_1') . "</legend>\n" |
|
| 157 | + ? '<h3>'._T('install_nom_base_hebergeur').' <tt>'._INSTALL_NAME_DB.'</tt>'.'</h3>' |
|
| 158 | + : "\n<fieldset><legend>"._T('texte_choix_base_1')."</legend>\n" |
|
| 159 | 159 | . $res |
| 160 | 160 | . "\n<input name=\"choix_db\" value=\"new_spip\" type='radio' id='nou'" |
| 161 | 161 | . ($checked ? '' : " checked='checked'") |
| 162 | - . " />\n<label for='nou'>" . _T('info_creer_base') . "</label></p>\n<p>" |
|
| 162 | + . " />\n<label for='nou'>"._T('info_creer_base')."</label></p>\n<p>" |
|
| 163 | 163 | . "\n<input type='text' name='table_new' class='text' value=\"spip\" size='20' /></p></fieldset>\n" |
| 164 | 164 | ) |
| 165 | 165 | |
| 166 | 166 | . ((defined('_INSTALL_TABLE_PREFIX') || $GLOBALS['table_prefix'] != 'spip') |
| 167 | - ? '<h3>' . _T('install_table_prefix_hebergeur') . ' <tt>' . $GLOBALS['table_prefix'] . '</tt>' . '</h3>' |
|
| 168 | - : '<fieldset><legend>' . _T('texte_choix_table_prefix') . "</legend>\n" |
|
| 169 | - . "<p><label for='table_prefix'>" . _T('info_table_prefix') . '</label></p><p>' |
|
| 167 | + ? '<h3>'._T('install_table_prefix_hebergeur').' <tt>'.$GLOBALS['table_prefix'].'</tt>'.'</h3>' |
|
| 168 | + : '<fieldset><legend>'._T('texte_choix_table_prefix')."</legend>\n" |
|
| 169 | + . "<p><label for='table_prefix'>"._T('info_table_prefix').'</label></p><p>' |
|
| 170 | 170 | . "\n<input type='text' id='tprefix' name='tprefix' class='text' value='" |
| 171 | 171 | . 'spip' # valeur par defaut |
| 172 | 172 | . "' size='20' /></p></fieldset>" |
@@ -10,167 +10,167 @@ |
||
| 10 | 10 | \***************************************************************************/ |
| 11 | 11 | |
| 12 | 12 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 13 | - return; |
|
| 13 | + return; |
|
| 14 | 14 | } |
| 15 | 15 | |
| 16 | 16 | include_spip('base/abstract_sql'); |
| 17 | 17 | |
| 18 | 18 | function install_etape_2_dist() { |
| 19 | - $adresse_db = defined('_INSTALL_HOST_DB') |
|
| 20 | - ? _INSTALL_HOST_DB |
|
| 21 | - : _request('adresse_db'); |
|
| 19 | + $adresse_db = defined('_INSTALL_HOST_DB') |
|
| 20 | + ? _INSTALL_HOST_DB |
|
| 21 | + : _request('adresse_db'); |
|
| 22 | 22 | |
| 23 | - if (preg_match(',(.*):(.*),', (string) $adresse_db, $r)) { |
|
| 24 | - [, $adresse_db, $port] = $r; |
|
| 25 | - } else { |
|
| 26 | - $port = ''; |
|
| 27 | - } |
|
| 23 | + if (preg_match(',(.*):(.*),', (string) $adresse_db, $r)) { |
|
| 24 | + [, $adresse_db, $port] = $r; |
|
| 25 | + } else { |
|
| 26 | + $port = ''; |
|
| 27 | + } |
|
| 28 | 28 | |
| 29 | - $login_db = defined('_INSTALL_USER_DB') |
|
| 30 | - ? _INSTALL_USER_DB |
|
| 31 | - : _request('login_db'); |
|
| 29 | + $login_db = defined('_INSTALL_USER_DB') |
|
| 30 | + ? _INSTALL_USER_DB |
|
| 31 | + : _request('login_db'); |
|
| 32 | 32 | |
| 33 | - $pass_db = defined('_INSTALL_PASS_DB') |
|
| 34 | - ? _INSTALL_PASS_DB |
|
| 35 | - : _request('pass_db'); |
|
| 33 | + $pass_db = defined('_INSTALL_PASS_DB') |
|
| 34 | + ? _INSTALL_PASS_DB |
|
| 35 | + : _request('pass_db'); |
|
| 36 | 36 | |
| 37 | - $server_db = defined('_INSTALL_SERVER_DB') |
|
| 38 | - ? _INSTALL_SERVER_DB |
|
| 39 | - : _request('server_db'); |
|
| 37 | + $server_db = defined('_INSTALL_SERVER_DB') |
|
| 38 | + ? _INSTALL_SERVER_DB |
|
| 39 | + : _request('server_db'); |
|
| 40 | 40 | |
| 41 | - $name_db = defined('_INSTALL_NAME_DB') |
|
| 42 | - ? _INSTALL_NAME_DB |
|
| 43 | - : ''; |
|
| 41 | + $name_db = defined('_INSTALL_NAME_DB') |
|
| 42 | + ? _INSTALL_NAME_DB |
|
| 43 | + : ''; |
|
| 44 | 44 | |
| 45 | - $chmod = _request('chmod'); |
|
| 45 | + $chmod = _request('chmod'); |
|
| 46 | 46 | |
| 47 | - $link = spip_connect_db($adresse_db, $port, $login_db, $pass_db, $name_db, $server_db); |
|
| 48 | - $GLOBALS['connexions'][$server_db] = $link; |
|
| 47 | + $link = spip_connect_db($adresse_db, $port, $login_db, $pass_db, $name_db, $server_db); |
|
| 48 | + $GLOBALS['connexions'][$server_db] = $link; |
|
| 49 | 49 | |
| 50 | - $GLOBALS['connexions'][$server_db][$GLOBALS['spip_sql_version']] |
|
| 51 | - = $GLOBALS['spip_' . $server_db . '_functions_' . $GLOBALS['spip_sql_version']]; |
|
| 50 | + $GLOBALS['connexions'][$server_db][$GLOBALS['spip_sql_version']] |
|
| 51 | + = $GLOBALS['spip_' . $server_db . '_functions_' . $GLOBALS['spip_sql_version']]; |
|
| 52 | 52 | |
| 53 | - $minipage = new Spip\Afficher\Minipage\Installation(); |
|
| 54 | - echo $minipage->installDebutPage(); |
|
| 53 | + $minipage = new Spip\Afficher\Minipage\Installation(); |
|
| 54 | + echo $minipage->installDebutPage(); |
|
| 55 | 55 | |
| 56 | 56 | |
| 57 | 57 | // prenons toutes les dispositions possibles pour que rien ne s'affiche ! |
| 58 | 58 | |
| 59 | - /* |
|
| 59 | + /* |
|
| 60 | 60 | * /!\ sqlite3/PDO : erreur sur join(', ', $link) |
| 61 | 61 | * L'objet PDO ne peut pas etre transformee en chaine |
| 62 | 62 | * Un echo $link ne fonctionne pas non plus |
| 63 | 63 | * Il faut utiliser par exemple print_r($link) |
| 64 | 64 | */ |
| 65 | - //echo "\n<!--\n", join(', ', $link), " $login_db "; |
|
| 66 | - $db_connect = 0; // revoirfunction_exists($ferrno) ? $ferrno() : 0; |
|
| 67 | - //echo join(', ', $GLOBALS['connexions'][$server_db]); |
|
| 68 | - //echo "\n-->\n"; |
|
| 65 | + //echo "\n<!--\n", join(', ', $link), " $login_db "; |
|
| 66 | + $db_connect = 0; // revoirfunction_exists($ferrno) ? $ferrno() : 0; |
|
| 67 | + //echo join(', ', $GLOBALS['connexions'][$server_db]); |
|
| 68 | + //echo "\n-->\n"; |
|
| 69 | 69 | |
| 70 | - if (($db_connect == '0') && $link) { |
|
| 71 | - echo "<div class='success'><b>" . _T('info_connexion_ok') . '</b></div>'; |
|
| 72 | - echo info_progression_etape(2, 'etape_', 'install/'); |
|
| 70 | + if (($db_connect == '0') && $link) { |
|
| 71 | + echo "<div class='success'><b>" . _T('info_connexion_ok') . '</b></div>'; |
|
| 72 | + echo info_progression_etape(2, 'etape_', 'install/'); |
|
| 73 | 73 | |
| 74 | - echo info_etape(_T('menu_aide_installation_choix_base') . aider('install2', true)); |
|
| 74 | + echo info_etape(_T('menu_aide_installation_choix_base') . aider('install2', true)); |
|
| 75 | 75 | |
| 76 | - echo "\n", '<!-- ', sql_version($server_db), ' -->'; |
|
| 77 | - [$checked, $res] = install_etape_2_bases($login_db, $server_db); |
|
| 76 | + echo "\n", '<!-- ', sql_version($server_db), ' -->'; |
|
| 77 | + [$checked, $res] = install_etape_2_bases($login_db, $server_db); |
|
| 78 | 78 | |
| 79 | - $hidden = (defined('_SPIP_CHMOD') |
|
| 80 | - ? '' |
|
| 81 | - : ("\n<input type='hidden' name='chmod' value='" . spip_htmlspecialchars($chmod) . "' />")) |
|
| 82 | - . predef_ou_cache($adresse_db . ($port ? ':' . $port : ''), $login_db, $pass_db, $server_db); |
|
| 79 | + $hidden = (defined('_SPIP_CHMOD') |
|
| 80 | + ? '' |
|
| 81 | + : ("\n<input type='hidden' name='chmod' value='" . spip_htmlspecialchars($chmod) . "' />")) |
|
| 82 | + . predef_ou_cache($adresse_db . ($port ? ':' . $port : ''), $login_db, $pass_db, $server_db); |
|
| 83 | 83 | |
| 84 | - echo install_etape_2_form($hidden, $checked, $res, 3); |
|
| 85 | - } else { |
|
| 86 | - echo info_progression_etape(1, 'etape_', 'install/', true); |
|
| 84 | + echo install_etape_2_form($hidden, $checked, $res, 3); |
|
| 85 | + } else { |
|
| 86 | + echo info_progression_etape(1, 'etape_', 'install/', true); |
|
| 87 | 87 | |
| 88 | - echo "<div class='error'>"; |
|
| 89 | - echo info_etape(_T('info_connexion_base')); |
|
| 90 | - echo '<h3>' . _T('avis_connexion_echec_1') . '</h3>'; |
|
| 91 | - echo '<p>' . _T('avis_connexion_echec_2') . '</p>'; |
|
| 88 | + echo "<div class='error'>"; |
|
| 89 | + echo info_etape(_T('info_connexion_base')); |
|
| 90 | + echo '<h3>' . _T('avis_connexion_echec_1') . '</h3>'; |
|
| 91 | + echo '<p>' . _T('avis_connexion_echec_2') . '</p>'; |
|
| 92 | 92 | |
| 93 | - echo "<p style='font-size: small;'>", |
|
| 94 | - _T('avis_connexion_echec_3'), |
|
| 95 | - '</p></div>'; |
|
| 96 | - } |
|
| 93 | + echo "<p style='font-size: small;'>", |
|
| 94 | + _T('avis_connexion_echec_3'), |
|
| 95 | + '</p></div>'; |
|
| 96 | + } |
|
| 97 | 97 | |
| 98 | - echo $minipage->installFinPage(); |
|
| 98 | + echo $minipage->installFinPage(); |
|
| 99 | 99 | } |
| 100 | 100 | |
| 101 | 101 | // Liste les bases accessibles, |
| 102 | 102 | // avec une heuristique pour preselectionner la plus probable |
| 103 | 103 | |
| 104 | 104 | function install_etape_2_bases($login_db, $server_db) { |
| 105 | - $res = install_etape_liste_bases($server_db, $login_db); |
|
| 106 | - if ($res) { |
|
| 107 | - [$checked, $bases] = $res; |
|
| 108 | - |
|
| 109 | - return [ |
|
| 110 | - $checked, |
|
| 111 | - "<label for='choix_db'><b>" |
|
| 112 | - . _T('texte_choix_base_2') |
|
| 113 | - . '</b><br />' |
|
| 114 | - . _T('texte_choix_base_3') |
|
| 115 | - . '</label>' |
|
| 116 | - . "<ul>\n<li>" |
|
| 117 | - . implode("</li>\n<li>", $bases) |
|
| 118 | - . "</li>\n</ul><p>" |
|
| 119 | - . _T('info_ou') |
|
| 120 | - . ' ' |
|
| 121 | - ]; |
|
| 122 | - } |
|
| 123 | - $res = '<b>' . _T('avis_lecture_noms_bases_1') . '</b> |
|
| 105 | + $res = install_etape_liste_bases($server_db, $login_db); |
|
| 106 | + if ($res) { |
|
| 107 | + [$checked, $bases] = $res; |
|
| 108 | + |
|
| 109 | + return [ |
|
| 110 | + $checked, |
|
| 111 | + "<label for='choix_db'><b>" |
|
| 112 | + . _T('texte_choix_base_2') |
|
| 113 | + . '</b><br />' |
|
| 114 | + . _T('texte_choix_base_3') |
|
| 115 | + . '</label>' |
|
| 116 | + . "<ul>\n<li>" |
|
| 117 | + . implode("</li>\n<li>", $bases) |
|
| 118 | + . "</li>\n</ul><p>" |
|
| 119 | + . _T('info_ou') |
|
| 120 | + . ' ' |
|
| 121 | + ]; |
|
| 122 | + } |
|
| 123 | + $res = '<b>' . _T('avis_lecture_noms_bases_1') . '</b> |
|
| 124 | 124 | ' . _T('avis_lecture_noms_bases_2') . '<p>'; |
| 125 | 125 | |
| 126 | - $checked = false; |
|
| 127 | - if ($login_db) { |
|
| 128 | - // Si un login comporte un point, le nom de la base est plus |
|
| 129 | - // probablement le login sans le point -- testons pour savoir |
|
| 130 | - $test_base = $login_db; |
|
| 131 | - $ok = sql_selectdb($test_base, $server_db); |
|
| 132 | - $test_base2 = str_replace('.', '_', (string) $test_base); |
|
| 133 | - if (sql_selectdb($test_base2, $server_db)) { |
|
| 134 | - $test_base = $test_base2; |
|
| 135 | - $ok = true; |
|
| 136 | - } |
|
| 137 | - |
|
| 138 | - if ($ok) { |
|
| 139 | - $res .= _T('avis_lecture_noms_bases_3') |
|
| 140 | - . '<ul>' |
|
| 141 | - . '<li><input name="choix_db" value="' . $test_base . "\" type='radio' id='stand' checked='checked' />" |
|
| 142 | - . "<label for='stand'>" . $test_base . "</label></li>\n" |
|
| 143 | - . '</ul>' |
|
| 144 | - . '<p>' . _T('info_ou') . ' '; |
|
| 145 | - $checked = true; |
|
| 146 | - } |
|
| 147 | - } |
|
| 148 | - |
|
| 149 | - return [$checked, $res]; |
|
| 126 | + $checked = false; |
|
| 127 | + if ($login_db) { |
|
| 128 | + // Si un login comporte un point, le nom de la base est plus |
|
| 129 | + // probablement le login sans le point -- testons pour savoir |
|
| 130 | + $test_base = $login_db; |
|
| 131 | + $ok = sql_selectdb($test_base, $server_db); |
|
| 132 | + $test_base2 = str_replace('.', '_', (string) $test_base); |
|
| 133 | + if (sql_selectdb($test_base2, $server_db)) { |
|
| 134 | + $test_base = $test_base2; |
|
| 135 | + $ok = true; |
|
| 136 | + } |
|
| 137 | + |
|
| 138 | + if ($ok) { |
|
| 139 | + $res .= _T('avis_lecture_noms_bases_3') |
|
| 140 | + . '<ul>' |
|
| 141 | + . '<li><input name="choix_db" value="' . $test_base . "\" type='radio' id='stand' checked='checked' />" |
|
| 142 | + . "<label for='stand'>" . $test_base . "</label></li>\n" |
|
| 143 | + . '</ul>' |
|
| 144 | + . '<p>' . _T('info_ou') . ' '; |
|
| 145 | + $checked = true; |
|
| 146 | + } |
|
| 147 | + } |
|
| 148 | + |
|
| 149 | + return [$checked, $res]; |
|
| 150 | 150 | } |
| 151 | 151 | |
| 152 | 152 | function install_etape_2_form($hidden, $checked, $res, $etape) { |
| 153 | - return generer_form_ecrire('install', ( |
|
| 154 | - "\n<input type='hidden' name='etape' value='$etape' />" |
|
| 155 | - . $hidden |
|
| 156 | - . (defined('_INSTALL_NAME_DB') |
|
| 157 | - ? '<h3>' . _T('install_nom_base_hebergeur') . ' <tt>' . _INSTALL_NAME_DB . '</tt>' . '</h3>' |
|
| 158 | - : "\n<fieldset><legend>" . _T('texte_choix_base_1') . "</legend>\n" |
|
| 159 | - . $res |
|
| 160 | - . "\n<input name=\"choix_db\" value=\"new_spip\" type='radio' id='nou'" |
|
| 161 | - . ($checked ? '' : " checked='checked'") |
|
| 162 | - . " />\n<label for='nou'>" . _T('info_creer_base') . "</label></p>\n<p>" |
|
| 163 | - . "\n<input type='text' name='table_new' class='text' value=\"spip\" size='20' /></p></fieldset>\n" |
|
| 164 | - ) |
|
| 165 | - |
|
| 166 | - . ((defined('_INSTALL_TABLE_PREFIX') || $GLOBALS['table_prefix'] != 'spip') |
|
| 167 | - ? '<h3>' . _T('install_table_prefix_hebergeur') . ' <tt>' . $GLOBALS['table_prefix'] . '</tt>' . '</h3>' |
|
| 168 | - : '<fieldset><legend>' . _T('texte_choix_table_prefix') . "</legend>\n" |
|
| 169 | - . "<p><label for='table_prefix'>" . _T('info_table_prefix') . '</label></p><p>' |
|
| 170 | - . "\n<input type='text' id='tprefix' name='tprefix' class='text' value='" |
|
| 171 | - . 'spip' # valeur par defaut |
|
| 172 | - . "' size='20' /></p></fieldset>" |
|
| 173 | - ) |
|
| 174 | - |
|
| 175 | - . bouton_suivant())); |
|
| 153 | + return generer_form_ecrire('install', ( |
|
| 154 | + "\n<input type='hidden' name='etape' value='$etape' />" |
|
| 155 | + . $hidden |
|
| 156 | + . (defined('_INSTALL_NAME_DB') |
|
| 157 | + ? '<h3>' . _T('install_nom_base_hebergeur') . ' <tt>' . _INSTALL_NAME_DB . '</tt>' . '</h3>' |
|
| 158 | + : "\n<fieldset><legend>" . _T('texte_choix_base_1') . "</legend>\n" |
|
| 159 | + . $res |
|
| 160 | + . "\n<input name=\"choix_db\" value=\"new_spip\" type='radio' id='nou'" |
|
| 161 | + . ($checked ? '' : " checked='checked'") |
|
| 162 | + . " />\n<label for='nou'>" . _T('info_creer_base') . "</label></p>\n<p>" |
|
| 163 | + . "\n<input type='text' name='table_new' class='text' value=\"spip\" size='20' /></p></fieldset>\n" |
|
| 164 | + ) |
|
| 165 | + |
|
| 166 | + . ((defined('_INSTALL_TABLE_PREFIX') || $GLOBALS['table_prefix'] != 'spip') |
|
| 167 | + ? '<h3>' . _T('install_table_prefix_hebergeur') . ' <tt>' . $GLOBALS['table_prefix'] . '</tt>' . '</h3>' |
|
| 168 | + : '<fieldset><legend>' . _T('texte_choix_table_prefix') . "</legend>\n" |
|
| 169 | + . "<p><label for='table_prefix'>" . _T('info_table_prefix') . '</label></p><p>' |
|
| 170 | + . "\n<input type='text' id='tprefix' name='tprefix' class='text' value='" |
|
| 171 | + . 'spip' # valeur par defaut |
|
| 172 | + . "' size='20' /></p></fieldset>" |
|
| 173 | + ) |
|
| 174 | + |
|
| 175 | + . bouton_suivant())); |
|
| 176 | 176 | } |
@@ -43,7 +43,7 @@ discard block |
||
| 43 | 43 | = spip_connect_db($adresse_db, $port, $login_db, $pass_db, '', $server_db); |
| 44 | 44 | |
| 45 | 45 | $GLOBALS['connexions'][$server_db][$GLOBALS['spip_sql_version']] |
| 46 | - = $GLOBALS['spip_' . $server_db . '_functions_' . $GLOBALS['spip_sql_version']]; |
|
| 46 | + = $GLOBALS['spip_'.$server_db.'_functions_'.$GLOBALS['spip_sql_version']]; |
|
| 47 | 47 | |
| 48 | 48 | $fquery = sql_serveur('query', $server_db); |
| 49 | 49 | if ($choix_db == 'new_spip') { |
@@ -53,13 +53,13 @@ discard block |
||
| 53 | 53 | if (!$ok) { |
| 54 | 54 | $re = "Impossible de creer la base $re"; |
| 55 | 55 | spip_log($re); |
| 56 | - return '<p>' . _T('avis_connexion_erreur_creer_base') . "</p><!--\n$re\n-->"; |
|
| 56 | + return '<p>'._T('avis_connexion_erreur_creer_base')."</p><!--\n$re\n-->"; |
|
| 57 | 57 | } |
| 58 | 58 | } else { |
| 59 | 59 | $re = "Le nom de la base doit correspondre a $re"; |
| 60 | 60 | spip_log($re); |
| 61 | 61 | |
| 62 | - return '<p>' . _T('avis_connexion_erreur_nom_base') . "</p><!--\n$re\n-->"; |
|
| 62 | + return '<p>'._T('avis_connexion_erreur_nom_base')."</p><!--\n$re\n-->"; |
|
| 63 | 63 | } |
| 64 | 64 | } |
| 65 | 65 | |
@@ -70,14 +70,14 @@ discard block |
||
| 70 | 70 | = spip_connect_db($adresse_db, $port, $login_db, $pass_db, $sel_db, $server_db); |
| 71 | 71 | |
| 72 | 72 | $GLOBALS['connexions'][$server_db][$GLOBALS['spip_sql_version']] |
| 73 | - = $GLOBALS['spip_' . $server_db . '_functions_' . $GLOBALS['spip_sql_version']]; |
|
| 73 | + = $GLOBALS['spip_'.$server_db.'_functions_'.$GLOBALS['spip_sql_version']]; |
|
| 74 | 74 | |
| 75 | 75 | // Completer le tableau decrivant la connexion |
| 76 | 76 | |
| 77 | 77 | $GLOBALS['connexions'][$server_db]['prefixe'] = $table_prefix; |
| 78 | 78 | $GLOBALS['connexions'][$server_db]['db'] = $sel_db; |
| 79 | 79 | |
| 80 | - $old = sql_showbase($table_prefix . '_meta', $server_db); |
|
| 80 | + $old = sql_showbase($table_prefix.'_meta', $server_db); |
|
| 81 | 81 | if ($old) { |
| 82 | 82 | $old = sql_fetch($old, $server_db); |
| 83 | 83 | } |
@@ -96,7 +96,7 @@ discard block |
||
| 96 | 96 | $charset['charset']; |
| 97 | 97 | $charsetbase = $charset['charset']; |
| 98 | 98 | } else { |
| 99 | - spip_log(_DEFAULT_CHARSET . ' inconnu du serveur SQL'); |
|
| 99 | + spip_log(_DEFAULT_CHARSET.' inconnu du serveur SQL'); |
|
| 100 | 100 | $charsetbase = 'standard'; |
| 101 | 101 | } |
| 102 | 102 | spip_log("Creation des tables. Codage $charsetbase"); |
@@ -146,7 +146,7 @@ discard block |
||
| 146 | 146 | if ($r) { |
| 147 | 147 | $r = sql_fetch($r, $server_db); |
| 148 | 148 | } |
| 149 | - $version_installee = $r ? (double)$r['valeur'] : 0; |
|
| 149 | + $version_installee = $r ? (double) $r['valeur'] : 0; |
|
| 150 | 150 | if (!$version_installee || $GLOBALS['spip_version_base'] < $version_installee) { |
| 151 | 151 | $fupdateq( |
| 152 | 152 | 'spip_meta', |
@@ -155,7 +155,7 @@ discard block |
||
| 155 | 155 | '', |
| 156 | 156 | $server_db |
| 157 | 157 | ); |
| 158 | - spip_log('nouvelle version installee: ' . $GLOBALS['spip_version_base']); |
|
| 158 | + spip_log('nouvelle version installee: '.$GLOBALS['spip_version_base']); |
|
| 159 | 159 | } |
| 160 | 160 | // eliminer la derniere operation d'admin mal terminee |
| 161 | 161 | // notamment la mise a jour |
@@ -182,7 +182,7 @@ discard block |
||
| 182 | 182 | if ($chmod_db) { |
| 183 | 183 | install_fichier_connexion( |
| 184 | 184 | _FILE_CHMOD_TMP, |
| 185 | - "if (!defined('_SPIP_CHMOD')) define('_SPIP_CHMOD', " . sprintf('0%3o', $chmod_db) . ");\n" |
|
| 185 | + "if (!defined('_SPIP_CHMOD')) define('_SPIP_CHMOD', ".sprintf('0%3o', $chmod_db).");\n" |
|
| 186 | 186 | ); |
| 187 | 187 | } |
| 188 | 188 | |
@@ -245,16 +245,16 @@ discard block |
||
| 245 | 245 | |
| 246 | 246 | |
| 247 | 247 | function install_premier_auteur($email, $login, $nom, #[\SensitiveParameter] $pass, $hidden, $auteur_obligatoire) { |
| 248 | - return info_progression_etape(3, 'etape_', 'install/') . |
|
| 248 | + return info_progression_etape(3, 'etape_', 'install/'). |
|
| 249 | 249 | info_etape( |
| 250 | 250 | _T('info_informations_personnelles'), |
| 251 | - '<b>' . _T('texte_informations_personnelles_1') . '</b>' . |
|
| 252 | - aider('install5', true) . |
|
| 253 | - '<p>' . |
|
| 251 | + '<b>'._T('texte_informations_personnelles_1').'</b>'. |
|
| 252 | + aider('install5', true). |
|
| 253 | + '<p>'. |
|
| 254 | 254 | ($auteur_obligatoire ? |
| 255 | 255 | '' |
| 256 | 256 | : |
| 257 | - _T('texte_informations_personnelles_2') . ' ' . _T('info_laisser_champs_vides') |
|
| 257 | + _T('texte_informations_personnelles_2').' '._T('info_laisser_champs_vides') |
|
| 258 | 258 | ) |
| 259 | 259 | ) |
| 260 | 260 | . generer_form_ecrire('install', ( |
@@ -264,12 +264,12 @@ discard block |
||
| 264 | 264 | _T('info_identification_publique'), |
| 265 | 265 | [ |
| 266 | 266 | 'nom' => [ |
| 267 | - 'label' => '<b>' . _T('entree_signature') . "</b><br />\n" . _T('entree_nom_pseudo_1') . "\n", |
|
| 267 | + 'label' => '<b>'._T('entree_signature')."</b><br />\n"._T('entree_nom_pseudo_1')."\n", |
|
| 268 | 268 | 'valeur' => $nom, |
| 269 | 269 | 'required' => $auteur_obligatoire, |
| 270 | 270 | ], |
| 271 | 271 | 'email' => [ |
| 272 | - 'label' => '<b>' . _T('entree_adresse_email') . "</b>\n", |
|
| 272 | + 'label' => '<b>'._T('entree_adresse_email')."</b>\n", |
|
| 273 | 273 | 'valeur' => $email, |
| 274 | 274 | ] |
| 275 | 275 | ] |
@@ -279,23 +279,23 @@ discard block |
||
| 279 | 279 | _T('entree_identifiants_connexion'), |
| 280 | 280 | [ |
| 281 | 281 | 'login' => [ |
| 282 | - 'label' => '<b>' . _T('entree_login') . "</b><br />\n" . _T( |
|
| 282 | + 'label' => '<b>'._T('entree_login')."</b><br />\n"._T( |
|
| 283 | 283 | 'info_login_trop_court_car_pluriel', |
| 284 | 284 | ['nb' => _LOGIN_TROP_COURT] |
| 285 | - ) . "\n", |
|
| 285 | + )."\n", |
|
| 286 | 286 | 'valeur' => $login, |
| 287 | 287 | 'required' => $auteur_obligatoire, |
| 288 | 288 | ], |
| 289 | 289 | 'pass' => [ |
| 290 | - 'label' => '<b>' . _T('entree_mot_passe') . "</b><br />\n" . _T( |
|
| 290 | + 'label' => '<b>'._T('entree_mot_passe')."</b><br />\n"._T( |
|
| 291 | 291 | 'info_passe_trop_court_car_pluriel', |
| 292 | 292 | ['nb' => _PASS_LONGUEUR_MINI] |
| 293 | - ) . "\n", |
|
| 293 | + )."\n", |
|
| 294 | 294 | 'valeur' => $pass, |
| 295 | 295 | 'required' => $auteur_obligatoire, |
| 296 | 296 | ], |
| 297 | 297 | 'pass_verif' => [ |
| 298 | - 'label' => '<b>' . _T('info_confirmer_passe') . "</b><br />\n", |
|
| 298 | + 'label' => '<b>'._T('info_confirmer_passe')."</b><br />\n", |
|
| 299 | 299 | 'valeur' => $pass, |
| 300 | 300 | 'required' => $auteur_obligatoire, |
| 301 | 301 | ] |
@@ -339,9 +339,9 @@ discard block |
||
| 339 | 339 | |
| 340 | 340 | if ($res) { |
| 341 | 341 | $res = info_progression_etape(2, 'etape_', 'install/', true) |
| 342 | - . "<div class='error'><h3>" . _T('avis_operation_echec') . '</h3>' |
|
| 342 | + . "<div class='error'><h3>"._T('avis_operation_echec').'</h3>' |
|
| 343 | 343 | . $res |
| 344 | - . '<p>' . _T('texte_operation_echec') . '</p>' |
|
| 344 | + . '<p>'._T('texte_operation_echec').'</p>' |
|
| 345 | 345 | . '</div>'; |
| 346 | 346 | } |
| 347 | 347 | } else { |
@@ -365,7 +365,7 @@ discard block |
||
| 365 | 365 | |
| 366 | 366 | $hidden = predef_ou_cache($adresse_db, $login_db, $pass_db, $server_db) |
| 367 | 367 | . (defined('_INSTALL_NAME_DB') ? '' |
| 368 | - : "\n<input type='hidden' name='sel_db' value=\"" . spip_htmlspecialchars($sel_db) . '" />'); |
|
| 368 | + : "\n<input type='hidden' name='sel_db' value=\"".spip_htmlspecialchars($sel_db).'" />'); |
|
| 369 | 369 | |
| 370 | 370 | $auteur_obligatoire = ($ldap_present ? 0 : !sql_countsel('spip_auteurs', '', '', '', $server_db)); |
| 371 | 371 | |
@@ -10,7 +10,7 @@ discard block |
||
| 10 | 10 | \***************************************************************************/ |
| 11 | 11 | |
| 12 | 12 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 13 | - return; |
|
| 13 | + return; |
|
| 14 | 14 | } |
| 15 | 15 | |
| 16 | 16 | include_spip('inc/headers'); |
@@ -18,199 +18,199 @@ discard block |
||
| 18 | 18 | |
| 19 | 19 | function install_bases($adresse_db, $login_db, $pass_db, $server_db, $choix_db, $sel_db, $chmod_db) { |
| 20 | 20 | |
| 21 | - // Prefix des tables : |
|
| 22 | - // S'il n'est pas defini par mes_options/inc/mutualiser, on va le creer |
|
| 23 | - // a partir de ce qui est envoye a l'installation |
|
| 24 | - if (!defined('_INSTALL_TABLE_PREFIX')) { |
|
| 25 | - $table_prefix = ($GLOBALS['table_prefix'] != 'spip') |
|
| 26 | - ? $GLOBALS['table_prefix'] |
|
| 27 | - : preparer_prefixe_tables(_request('tprefix')); |
|
| 28 | - // S'il est vide on remet spip |
|
| 29 | - if (!$table_prefix) { |
|
| 30 | - $table_prefix = 'spip'; |
|
| 31 | - } |
|
| 32 | - } else { |
|
| 33 | - $table_prefix = _INSTALL_TABLE_PREFIX; |
|
| 34 | - } |
|
| 35 | - |
|
| 36 | - if (preg_match(',(.*):(.*),', (string) $adresse_db, $r)) { |
|
| 37 | - [, $adresse_db, $port] = $r; |
|
| 38 | - } else { |
|
| 39 | - $port = ''; |
|
| 40 | - } |
|
| 41 | - |
|
| 42 | - $GLOBALS['connexions'][$server_db] |
|
| 43 | - = spip_connect_db($adresse_db, $port, $login_db, $pass_db, '', $server_db); |
|
| 44 | - |
|
| 45 | - $GLOBALS['connexions'][$server_db][$GLOBALS['spip_sql_version']] |
|
| 46 | - = $GLOBALS['spip_' . $server_db . '_functions_' . $GLOBALS['spip_sql_version']]; |
|
| 47 | - |
|
| 48 | - $fquery = sql_serveur('query', $server_db); |
|
| 49 | - if ($choix_db == 'new_spip') { |
|
| 50 | - $re = ',^[a-z_][a-z_0-9-]*$,i'; |
|
| 51 | - if (preg_match($re, (string) $sel_db)) { |
|
| 52 | - $ok = sql_create_base($sel_db, $server_db); |
|
| 53 | - if (!$ok) { |
|
| 54 | - $re = "Impossible de creer la base $re"; |
|
| 55 | - spip_log($re); |
|
| 56 | - return '<p>' . _T('avis_connexion_erreur_creer_base') . "</p><!--\n$re\n-->"; |
|
| 57 | - } |
|
| 58 | - } else { |
|
| 59 | - $re = "Le nom de la base doit correspondre a $re"; |
|
| 60 | - spip_log($re); |
|
| 61 | - |
|
| 62 | - return '<p>' . _T('avis_connexion_erreur_nom_base') . "</p><!--\n$re\n-->"; |
|
| 63 | - } |
|
| 64 | - } |
|
| 65 | - |
|
| 66 | - // on rejoue la connexion apres avoir teste si il faut lui indiquer |
|
| 67 | - // un sql_mode |
|
| 68 | - install_mode_appel($server_db, false); |
|
| 69 | - $GLOBALS['connexions'][$server_db] |
|
| 70 | - = spip_connect_db($adresse_db, $port, $login_db, $pass_db, $sel_db, $server_db); |
|
| 71 | - |
|
| 72 | - $GLOBALS['connexions'][$server_db][$GLOBALS['spip_sql_version']] |
|
| 73 | - = $GLOBALS['spip_' . $server_db . '_functions_' . $GLOBALS['spip_sql_version']]; |
|
| 74 | - |
|
| 75 | - // Completer le tableau decrivant la connexion |
|
| 76 | - |
|
| 77 | - $GLOBALS['connexions'][$server_db]['prefixe'] = $table_prefix; |
|
| 78 | - $GLOBALS['connexions'][$server_db]['db'] = $sel_db; |
|
| 79 | - |
|
| 80 | - $old = sql_showbase($table_prefix . '_meta', $server_db); |
|
| 81 | - if ($old) { |
|
| 82 | - $old = sql_fetch($old, $server_db); |
|
| 83 | - } |
|
| 84 | - if (!$old) { |
|
| 85 | - // Si possible, demander au serveur d'envoyer les textes |
|
| 86 | - // dans le codage std de SPIP, |
|
| 87 | - $charset = sql_get_charset(_DEFAULT_CHARSET, $server_db); |
|
| 88 | - |
|
| 89 | - if ($charset) { |
|
| 90 | - sql_set_charset($charset['charset'], $server_db); |
|
| 91 | - $GLOBALS['meta']['charset_sql_base'] = |
|
| 92 | - $charset['charset']; |
|
| 93 | - $GLOBALS['meta']['charset_collation_sql_base'] = |
|
| 94 | - $charset['collation']; |
|
| 95 | - $GLOBALS['meta']['charset_sql_connexion'] = |
|
| 96 | - $charset['charset']; |
|
| 97 | - $charsetbase = $charset['charset']; |
|
| 98 | - } else { |
|
| 99 | - spip_log(_DEFAULT_CHARSET . ' inconnu du serveur SQL'); |
|
| 100 | - $charsetbase = 'standard'; |
|
| 101 | - } |
|
| 102 | - spip_log("Creation des tables. Codage $charsetbase"); |
|
| 103 | - creer_base($server_db); // AT LAST |
|
| 104 | - // memoriser avec quel charset on l'a creee |
|
| 105 | - |
|
| 106 | - if ($charset) { |
|
| 107 | - $t = [ |
|
| 108 | - 'nom' => 'charset_sql_base', |
|
| 109 | - 'valeur' => $charset['charset'], |
|
| 110 | - 'impt' => 'non' |
|
| 111 | - ]; |
|
| 112 | - @sql_insertq('spip_meta', $t, [], $server_db); |
|
| 113 | - $t['nom'] = 'charset_collation_sql_base'; |
|
| 114 | - $t['valeur'] = $charset['collation']; |
|
| 115 | - @sql_insertq('spip_meta', $t, [], $server_db); |
|
| 116 | - $t['nom'] = 'charset_sql_connexion'; |
|
| 117 | - $t['valeur'] = $charset['charset']; |
|
| 118 | - @sql_insertq('spip_meta', $t, [], $server_db); |
|
| 119 | - } |
|
| 120 | - $t = [ |
|
| 121 | - 'nom' => 'version_installee', |
|
| 122 | - 'valeur' => $GLOBALS['spip_version_base'], |
|
| 123 | - 'impt' => 'non' |
|
| 124 | - ]; |
|
| 125 | - @sql_insertq('spip_meta', $t, [], $server_db); |
|
| 126 | - $t['nom'] = 'nouvelle_install'; |
|
| 127 | - $t['valeur'] = 1; |
|
| 128 | - @sql_insertq('spip_meta', $t, [], $server_db); |
|
| 129 | - // positionner la langue par defaut du site si un cookie de lang a ete mis |
|
| 130 | - if (isset($_COOKIE['spip_lang_ecrire'])) { |
|
| 131 | - @sql_insertq( |
|
| 132 | - 'spip_meta', |
|
| 133 | - ['nom' => 'langue_site', 'valeur' => $_COOKIE['spip_lang_ecrire']], |
|
| 134 | - [], |
|
| 135 | - $server_db |
|
| 136 | - ); |
|
| 137 | - } |
|
| 138 | - } else { |
|
| 139 | - // pour recreer les tables disparues au besoin |
|
| 140 | - spip_log('Table des Meta deja la. Verification des autres.'); |
|
| 141 | - creer_base($server_db); |
|
| 142 | - $fupdateq = sql_serveur('updateq', $server_db); |
|
| 143 | - |
|
| 144 | - $r = $fquery("SELECT valeur FROM spip_meta WHERE nom='version_installee'", $server_db); |
|
| 145 | - |
|
| 146 | - if ($r) { |
|
| 147 | - $r = sql_fetch($r, $server_db); |
|
| 148 | - } |
|
| 149 | - $version_installee = $r ? (double)$r['valeur'] : 0; |
|
| 150 | - if (!$version_installee || $GLOBALS['spip_version_base'] < $version_installee) { |
|
| 151 | - $fupdateq( |
|
| 152 | - 'spip_meta', |
|
| 153 | - ['valeur' => $GLOBALS['spip_version_base'], 'impt' => 'non'], |
|
| 154 | - "nom='version_installee'", |
|
| 155 | - '', |
|
| 156 | - $server_db |
|
| 157 | - ); |
|
| 158 | - spip_log('nouvelle version installee: ' . $GLOBALS['spip_version_base']); |
|
| 159 | - } |
|
| 160 | - // eliminer la derniere operation d'admin mal terminee |
|
| 161 | - // notamment la mise a jour |
|
| 162 | - @$fquery("DELETE FROM spip_meta WHERE nom='import_all' OR nom='admin'", $server_db); |
|
| 163 | - } |
|
| 164 | - |
|
| 165 | - // recuperer le charset de la connexion dans les meta |
|
| 166 | - $charset = ''; |
|
| 167 | - $r = $fquery("SELECT valeur FROM spip_meta WHERE nom='charset_sql_connexion'", $server_db); |
|
| 168 | - if ($r) { |
|
| 169 | - $r = sql_fetch($r, $server_db); |
|
| 170 | - } |
|
| 171 | - if ($r) { |
|
| 172 | - $charset = $r['valeur']; |
|
| 173 | - } |
|
| 174 | - |
|
| 175 | - $ligne_rappel = install_mode_appel($server_db); |
|
| 176 | - |
|
| 177 | - $result_ok = @$fquery('SELECT COUNT(*) FROM spip_meta', $server_db); |
|
| 178 | - if (!$result_ok) { |
|
| 179 | - return "<!--\nvielle = $old rappel= $ligne_rappel\n-->"; |
|
| 180 | - } |
|
| 181 | - |
|
| 182 | - if ($chmod_db) { |
|
| 183 | - install_fichier_connexion( |
|
| 184 | - _FILE_CHMOD_TMP, |
|
| 185 | - "if (!defined('_SPIP_CHMOD')) define('_SPIP_CHMOD', " . sprintf('0%3o', $chmod_db) . ");\n" |
|
| 186 | - ); |
|
| 187 | - } |
|
| 188 | - |
|
| 189 | - // si ce fichier existe a cette etape c'est qu'il provient |
|
| 190 | - // d'une installation qui ne l'a pas cree correctement. |
|
| 191 | - // Le supprimer pour que _FILE_CONNECT_TMP prime. |
|
| 192 | - |
|
| 193 | - if (_FILE_CONNECT && file_exists(_FILE_CONNECT)) { |
|
| 194 | - spip_unlink(_FILE_CONNECT); |
|
| 195 | - } |
|
| 196 | - |
|
| 197 | - install_fichier_connexion( |
|
| 198 | - _FILE_CONNECT_TMP, |
|
| 199 | - $ligne_rappel |
|
| 200 | - . install_connexion( |
|
| 201 | - $adresse_db, |
|
| 202 | - $port, |
|
| 203 | - $login_db, |
|
| 204 | - $pass_db, |
|
| 205 | - $sel_db, |
|
| 206 | - $server_db, |
|
| 207 | - $table_prefix, |
|
| 208 | - '', |
|
| 209 | - $charset |
|
| 210 | - ) |
|
| 211 | - ); |
|
| 212 | - |
|
| 213 | - return ''; |
|
| 21 | + // Prefix des tables : |
|
| 22 | + // S'il n'est pas defini par mes_options/inc/mutualiser, on va le creer |
|
| 23 | + // a partir de ce qui est envoye a l'installation |
|
| 24 | + if (!defined('_INSTALL_TABLE_PREFIX')) { |
|
| 25 | + $table_prefix = ($GLOBALS['table_prefix'] != 'spip') |
|
| 26 | + ? $GLOBALS['table_prefix'] |
|
| 27 | + : preparer_prefixe_tables(_request('tprefix')); |
|
| 28 | + // S'il est vide on remet spip |
|
| 29 | + if (!$table_prefix) { |
|
| 30 | + $table_prefix = 'spip'; |
|
| 31 | + } |
|
| 32 | + } else { |
|
| 33 | + $table_prefix = _INSTALL_TABLE_PREFIX; |
|
| 34 | + } |
|
| 35 | + |
|
| 36 | + if (preg_match(',(.*):(.*),', (string) $adresse_db, $r)) { |
|
| 37 | + [, $adresse_db, $port] = $r; |
|
| 38 | + } else { |
|
| 39 | + $port = ''; |
|
| 40 | + } |
|
| 41 | + |
|
| 42 | + $GLOBALS['connexions'][$server_db] |
|
| 43 | + = spip_connect_db($adresse_db, $port, $login_db, $pass_db, '', $server_db); |
|
| 44 | + |
|
| 45 | + $GLOBALS['connexions'][$server_db][$GLOBALS['spip_sql_version']] |
|
| 46 | + = $GLOBALS['spip_' . $server_db . '_functions_' . $GLOBALS['spip_sql_version']]; |
|
| 47 | + |
|
| 48 | + $fquery = sql_serveur('query', $server_db); |
|
| 49 | + if ($choix_db == 'new_spip') { |
|
| 50 | + $re = ',^[a-z_][a-z_0-9-]*$,i'; |
|
| 51 | + if (preg_match($re, (string) $sel_db)) { |
|
| 52 | + $ok = sql_create_base($sel_db, $server_db); |
|
| 53 | + if (!$ok) { |
|
| 54 | + $re = "Impossible de creer la base $re"; |
|
| 55 | + spip_log($re); |
|
| 56 | + return '<p>' . _T('avis_connexion_erreur_creer_base') . "</p><!--\n$re\n-->"; |
|
| 57 | + } |
|
| 58 | + } else { |
|
| 59 | + $re = "Le nom de la base doit correspondre a $re"; |
|
| 60 | + spip_log($re); |
|
| 61 | + |
|
| 62 | + return '<p>' . _T('avis_connexion_erreur_nom_base') . "</p><!--\n$re\n-->"; |
|
| 63 | + } |
|
| 64 | + } |
|
| 65 | + |
|
| 66 | + // on rejoue la connexion apres avoir teste si il faut lui indiquer |
|
| 67 | + // un sql_mode |
|
| 68 | + install_mode_appel($server_db, false); |
|
| 69 | + $GLOBALS['connexions'][$server_db] |
|
| 70 | + = spip_connect_db($adresse_db, $port, $login_db, $pass_db, $sel_db, $server_db); |
|
| 71 | + |
|
| 72 | + $GLOBALS['connexions'][$server_db][$GLOBALS['spip_sql_version']] |
|
| 73 | + = $GLOBALS['spip_' . $server_db . '_functions_' . $GLOBALS['spip_sql_version']]; |
|
| 74 | + |
|
| 75 | + // Completer le tableau decrivant la connexion |
|
| 76 | + |
|
| 77 | + $GLOBALS['connexions'][$server_db]['prefixe'] = $table_prefix; |
|
| 78 | + $GLOBALS['connexions'][$server_db]['db'] = $sel_db; |
|
| 79 | + |
|
| 80 | + $old = sql_showbase($table_prefix . '_meta', $server_db); |
|
| 81 | + if ($old) { |
|
| 82 | + $old = sql_fetch($old, $server_db); |
|
| 83 | + } |
|
| 84 | + if (!$old) { |
|
| 85 | + // Si possible, demander au serveur d'envoyer les textes |
|
| 86 | + // dans le codage std de SPIP, |
|
| 87 | + $charset = sql_get_charset(_DEFAULT_CHARSET, $server_db); |
|
| 88 | + |
|
| 89 | + if ($charset) { |
|
| 90 | + sql_set_charset($charset['charset'], $server_db); |
|
| 91 | + $GLOBALS['meta']['charset_sql_base'] = |
|
| 92 | + $charset['charset']; |
|
| 93 | + $GLOBALS['meta']['charset_collation_sql_base'] = |
|
| 94 | + $charset['collation']; |
|
| 95 | + $GLOBALS['meta']['charset_sql_connexion'] = |
|
| 96 | + $charset['charset']; |
|
| 97 | + $charsetbase = $charset['charset']; |
|
| 98 | + } else { |
|
| 99 | + spip_log(_DEFAULT_CHARSET . ' inconnu du serveur SQL'); |
|
| 100 | + $charsetbase = 'standard'; |
|
| 101 | + } |
|
| 102 | + spip_log("Creation des tables. Codage $charsetbase"); |
|
| 103 | + creer_base($server_db); // AT LAST |
|
| 104 | + // memoriser avec quel charset on l'a creee |
|
| 105 | + |
|
| 106 | + if ($charset) { |
|
| 107 | + $t = [ |
|
| 108 | + 'nom' => 'charset_sql_base', |
|
| 109 | + 'valeur' => $charset['charset'], |
|
| 110 | + 'impt' => 'non' |
|
| 111 | + ]; |
|
| 112 | + @sql_insertq('spip_meta', $t, [], $server_db); |
|
| 113 | + $t['nom'] = 'charset_collation_sql_base'; |
|
| 114 | + $t['valeur'] = $charset['collation']; |
|
| 115 | + @sql_insertq('spip_meta', $t, [], $server_db); |
|
| 116 | + $t['nom'] = 'charset_sql_connexion'; |
|
| 117 | + $t['valeur'] = $charset['charset']; |
|
| 118 | + @sql_insertq('spip_meta', $t, [], $server_db); |
|
| 119 | + } |
|
| 120 | + $t = [ |
|
| 121 | + 'nom' => 'version_installee', |
|
| 122 | + 'valeur' => $GLOBALS['spip_version_base'], |
|
| 123 | + 'impt' => 'non' |
|
| 124 | + ]; |
|
| 125 | + @sql_insertq('spip_meta', $t, [], $server_db); |
|
| 126 | + $t['nom'] = 'nouvelle_install'; |
|
| 127 | + $t['valeur'] = 1; |
|
| 128 | + @sql_insertq('spip_meta', $t, [], $server_db); |
|
| 129 | + // positionner la langue par defaut du site si un cookie de lang a ete mis |
|
| 130 | + if (isset($_COOKIE['spip_lang_ecrire'])) { |
|
| 131 | + @sql_insertq( |
|
| 132 | + 'spip_meta', |
|
| 133 | + ['nom' => 'langue_site', 'valeur' => $_COOKIE['spip_lang_ecrire']], |
|
| 134 | + [], |
|
| 135 | + $server_db |
|
| 136 | + ); |
|
| 137 | + } |
|
| 138 | + } else { |
|
| 139 | + // pour recreer les tables disparues au besoin |
|
| 140 | + spip_log('Table des Meta deja la. Verification des autres.'); |
|
| 141 | + creer_base($server_db); |
|
| 142 | + $fupdateq = sql_serveur('updateq', $server_db); |
|
| 143 | + |
|
| 144 | + $r = $fquery("SELECT valeur FROM spip_meta WHERE nom='version_installee'", $server_db); |
|
| 145 | + |
|
| 146 | + if ($r) { |
|
| 147 | + $r = sql_fetch($r, $server_db); |
|
| 148 | + } |
|
| 149 | + $version_installee = $r ? (double)$r['valeur'] : 0; |
|
| 150 | + if (!$version_installee || $GLOBALS['spip_version_base'] < $version_installee) { |
|
| 151 | + $fupdateq( |
|
| 152 | + 'spip_meta', |
|
| 153 | + ['valeur' => $GLOBALS['spip_version_base'], 'impt' => 'non'], |
|
| 154 | + "nom='version_installee'", |
|
| 155 | + '', |
|
| 156 | + $server_db |
|
| 157 | + ); |
|
| 158 | + spip_log('nouvelle version installee: ' . $GLOBALS['spip_version_base']); |
|
| 159 | + } |
|
| 160 | + // eliminer la derniere operation d'admin mal terminee |
|
| 161 | + // notamment la mise a jour |
|
| 162 | + @$fquery("DELETE FROM spip_meta WHERE nom='import_all' OR nom='admin'", $server_db); |
|
| 163 | + } |
|
| 164 | + |
|
| 165 | + // recuperer le charset de la connexion dans les meta |
|
| 166 | + $charset = ''; |
|
| 167 | + $r = $fquery("SELECT valeur FROM spip_meta WHERE nom='charset_sql_connexion'", $server_db); |
|
| 168 | + if ($r) { |
|
| 169 | + $r = sql_fetch($r, $server_db); |
|
| 170 | + } |
|
| 171 | + if ($r) { |
|
| 172 | + $charset = $r['valeur']; |
|
| 173 | + } |
|
| 174 | + |
|
| 175 | + $ligne_rappel = install_mode_appel($server_db); |
|
| 176 | + |
|
| 177 | + $result_ok = @$fquery('SELECT COUNT(*) FROM spip_meta', $server_db); |
|
| 178 | + if (!$result_ok) { |
|
| 179 | + return "<!--\nvielle = $old rappel= $ligne_rappel\n-->"; |
|
| 180 | + } |
|
| 181 | + |
|
| 182 | + if ($chmod_db) { |
|
| 183 | + install_fichier_connexion( |
|
| 184 | + _FILE_CHMOD_TMP, |
|
| 185 | + "if (!defined('_SPIP_CHMOD')) define('_SPIP_CHMOD', " . sprintf('0%3o', $chmod_db) . ");\n" |
|
| 186 | + ); |
|
| 187 | + } |
|
| 188 | + |
|
| 189 | + // si ce fichier existe a cette etape c'est qu'il provient |
|
| 190 | + // d'une installation qui ne l'a pas cree correctement. |
|
| 191 | + // Le supprimer pour que _FILE_CONNECT_TMP prime. |
|
| 192 | + |
|
| 193 | + if (_FILE_CONNECT && file_exists(_FILE_CONNECT)) { |
|
| 194 | + spip_unlink(_FILE_CONNECT); |
|
| 195 | + } |
|
| 196 | + |
|
| 197 | + install_fichier_connexion( |
|
| 198 | + _FILE_CONNECT_TMP, |
|
| 199 | + $ligne_rappel |
|
| 200 | + . install_connexion( |
|
| 201 | + $adresse_db, |
|
| 202 | + $port, |
|
| 203 | + $login_db, |
|
| 204 | + $pass_db, |
|
| 205 | + $sel_db, |
|
| 206 | + $server_db, |
|
| 207 | + $table_prefix, |
|
| 208 | + '', |
|
| 209 | + $charset |
|
| 210 | + ) |
|
| 211 | + ); |
|
| 212 | + |
|
| 213 | + return ''; |
|
| 214 | 214 | } |
| 215 | 215 | |
| 216 | 216 | /** |
@@ -225,166 +225,166 @@ discard block |
||
| 225 | 225 | * @return string Le préfixe corrigé |
| 226 | 226 | */ |
| 227 | 227 | function preparer_prefixe_tables($prefixe) { |
| 228 | - return trim(preg_replace(',^\d+,', '', preg_replace(',[^a-z0-9],', '', strtolower($prefixe)))); |
|
| 228 | + return trim(preg_replace(',^\d+,', '', preg_replace(',[^a-z0-9],', '', strtolower($prefixe)))); |
|
| 229 | 229 | } |
| 230 | 230 | |
| 231 | 231 | function install_propose_ldap() { |
| 232 | - return generer_form_ecrire('install', ( |
|
| 233 | - fieldset( |
|
| 234 | - _T('info_authentification_externe'), |
|
| 235 | - [ |
|
| 236 | - 'etape' => [ |
|
| 237 | - 'label' => _T('texte_annuaire_ldap_1'), |
|
| 238 | - 'valeur' => 'ldap1', |
|
| 239 | - 'hidden' => true |
|
| 240 | - ] |
|
| 241 | - ], |
|
| 242 | - bouton_suivant(_T('bouton_acces_ldap')) |
|
| 243 | - ))); |
|
| 232 | + return generer_form_ecrire('install', ( |
|
| 233 | + fieldset( |
|
| 234 | + _T('info_authentification_externe'), |
|
| 235 | + [ |
|
| 236 | + 'etape' => [ |
|
| 237 | + 'label' => _T('texte_annuaire_ldap_1'), |
|
| 238 | + 'valeur' => 'ldap1', |
|
| 239 | + 'hidden' => true |
|
| 240 | + ] |
|
| 241 | + ], |
|
| 242 | + bouton_suivant(_T('bouton_acces_ldap')) |
|
| 243 | + ))); |
|
| 244 | 244 | } |
| 245 | 245 | |
| 246 | 246 | |
| 247 | 247 | function install_premier_auteur($email, $login, $nom, #[\SensitiveParameter] $pass, $hidden, $auteur_obligatoire) { |
| 248 | - return info_progression_etape(3, 'etape_', 'install/') . |
|
| 249 | - info_etape( |
|
| 250 | - _T('info_informations_personnelles'), |
|
| 251 | - '<b>' . _T('texte_informations_personnelles_1') . '</b>' . |
|
| 252 | - aider('install5', true) . |
|
| 253 | - '<p>' . |
|
| 254 | - ($auteur_obligatoire ? |
|
| 255 | - '' |
|
| 256 | - : |
|
| 257 | - _T('texte_informations_personnelles_2') . ' ' . _T('info_laisser_champs_vides') |
|
| 258 | - ) |
|
| 259 | - ) |
|
| 260 | - . generer_form_ecrire('install', ( |
|
| 261 | - "\n<input type='hidden' name='etape' value='3b' />" |
|
| 262 | - . $hidden |
|
| 263 | - . fieldset( |
|
| 264 | - _T('info_identification_publique'), |
|
| 265 | - [ |
|
| 266 | - 'nom' => [ |
|
| 267 | - 'label' => '<b>' . _T('entree_signature') . "</b><br />\n" . _T('entree_nom_pseudo_1') . "\n", |
|
| 268 | - 'valeur' => $nom, |
|
| 269 | - 'required' => $auteur_obligatoire, |
|
| 270 | - ], |
|
| 271 | - 'email' => [ |
|
| 272 | - 'label' => '<b>' . _T('entree_adresse_email') . "</b>\n", |
|
| 273 | - 'valeur' => $email, |
|
| 274 | - ] |
|
| 275 | - ] |
|
| 276 | - ) |
|
| 277 | - |
|
| 278 | - . fieldset( |
|
| 279 | - _T('entree_identifiants_connexion'), |
|
| 280 | - [ |
|
| 281 | - 'login' => [ |
|
| 282 | - 'label' => '<b>' . _T('entree_login') . "</b><br />\n" . _T( |
|
| 283 | - 'info_login_trop_court_car_pluriel', |
|
| 284 | - ['nb' => _LOGIN_TROP_COURT] |
|
| 285 | - ) . "\n", |
|
| 286 | - 'valeur' => $login, |
|
| 287 | - 'required' => $auteur_obligatoire, |
|
| 288 | - ], |
|
| 289 | - 'pass' => [ |
|
| 290 | - 'label' => '<b>' . _T('entree_mot_passe') . "</b><br />\n" . _T( |
|
| 291 | - 'info_passe_trop_court_car_pluriel', |
|
| 292 | - ['nb' => _PASS_LONGUEUR_MINI] |
|
| 293 | - ) . "\n", |
|
| 294 | - 'valeur' => $pass, |
|
| 295 | - 'required' => $auteur_obligatoire, |
|
| 296 | - ], |
|
| 297 | - 'pass_verif' => [ |
|
| 298 | - 'label' => '<b>' . _T('info_confirmer_passe') . "</b><br />\n", |
|
| 299 | - 'valeur' => $pass, |
|
| 300 | - 'required' => $auteur_obligatoire, |
|
| 301 | - ] |
|
| 302 | - ] |
|
| 303 | - ) |
|
| 304 | - . bouton_suivant())); |
|
| 248 | + return info_progression_etape(3, 'etape_', 'install/') . |
|
| 249 | + info_etape( |
|
| 250 | + _T('info_informations_personnelles'), |
|
| 251 | + '<b>' . _T('texte_informations_personnelles_1') . '</b>' . |
|
| 252 | + aider('install5', true) . |
|
| 253 | + '<p>' . |
|
| 254 | + ($auteur_obligatoire ? |
|
| 255 | + '' |
|
| 256 | + : |
|
| 257 | + _T('texte_informations_personnelles_2') . ' ' . _T('info_laisser_champs_vides') |
|
| 258 | + ) |
|
| 259 | + ) |
|
| 260 | + . generer_form_ecrire('install', ( |
|
| 261 | + "\n<input type='hidden' name='etape' value='3b' />" |
|
| 262 | + . $hidden |
|
| 263 | + . fieldset( |
|
| 264 | + _T('info_identification_publique'), |
|
| 265 | + [ |
|
| 266 | + 'nom' => [ |
|
| 267 | + 'label' => '<b>' . _T('entree_signature') . "</b><br />\n" . _T('entree_nom_pseudo_1') . "\n", |
|
| 268 | + 'valeur' => $nom, |
|
| 269 | + 'required' => $auteur_obligatoire, |
|
| 270 | + ], |
|
| 271 | + 'email' => [ |
|
| 272 | + 'label' => '<b>' . _T('entree_adresse_email') . "</b>\n", |
|
| 273 | + 'valeur' => $email, |
|
| 274 | + ] |
|
| 275 | + ] |
|
| 276 | + ) |
|
| 277 | + |
|
| 278 | + . fieldset( |
|
| 279 | + _T('entree_identifiants_connexion'), |
|
| 280 | + [ |
|
| 281 | + 'login' => [ |
|
| 282 | + 'label' => '<b>' . _T('entree_login') . "</b><br />\n" . _T( |
|
| 283 | + 'info_login_trop_court_car_pluriel', |
|
| 284 | + ['nb' => _LOGIN_TROP_COURT] |
|
| 285 | + ) . "\n", |
|
| 286 | + 'valeur' => $login, |
|
| 287 | + 'required' => $auteur_obligatoire, |
|
| 288 | + ], |
|
| 289 | + 'pass' => [ |
|
| 290 | + 'label' => '<b>' . _T('entree_mot_passe') . "</b><br />\n" . _T( |
|
| 291 | + 'info_passe_trop_court_car_pluriel', |
|
| 292 | + ['nb' => _PASS_LONGUEUR_MINI] |
|
| 293 | + ) . "\n", |
|
| 294 | + 'valeur' => $pass, |
|
| 295 | + 'required' => $auteur_obligatoire, |
|
| 296 | + ], |
|
| 297 | + 'pass_verif' => [ |
|
| 298 | + 'label' => '<b>' . _T('info_confirmer_passe') . "</b><br />\n", |
|
| 299 | + 'valeur' => $pass, |
|
| 300 | + 'required' => $auteur_obligatoire, |
|
| 301 | + ] |
|
| 302 | + ] |
|
| 303 | + ) |
|
| 304 | + . bouton_suivant())); |
|
| 305 | 305 | } |
| 306 | 306 | |
| 307 | 307 | function install_etape_3_dist() { |
| 308 | - $ldap_present = _request('ldap_present'); |
|
| 309 | - |
|
| 310 | - if (!$ldap_present) { |
|
| 311 | - $adresse_db = defined('_INSTALL_HOST_DB') |
|
| 312 | - ? _INSTALL_HOST_DB |
|
| 313 | - : _request('adresse_db'); |
|
| 314 | - |
|
| 315 | - $login_db = defined('_INSTALL_USER_DB') |
|
| 316 | - ? _INSTALL_USER_DB |
|
| 317 | - : _request('login_db'); |
|
| 318 | - |
|
| 319 | - $pass_db = defined('_INSTALL_PASS_DB') |
|
| 320 | - ? _INSTALL_PASS_DB |
|
| 321 | - : _request('pass_db'); |
|
| 322 | - |
|
| 323 | - $server_db = defined('_INSTALL_SERVER_DB') |
|
| 324 | - ? _INSTALL_SERVER_DB |
|
| 325 | - : _request('server_db'); |
|
| 326 | - |
|
| 327 | - $chmod_db = defined('_SPIP_CHMOD') |
|
| 328 | - ? _SPIP_CHMOD |
|
| 329 | - : _request('chmod'); |
|
| 330 | - |
|
| 331 | - $choix_db = defined('_INSTALL_NAME_DB') |
|
| 332 | - ? _INSTALL_NAME_DB |
|
| 333 | - : _request('choix_db'); |
|
| 334 | - |
|
| 335 | - $sel_db = ($choix_db == 'new_spip') |
|
| 336 | - ? _request('table_new') : $choix_db; |
|
| 337 | - |
|
| 338 | - $res = install_bases($adresse_db, $login_db, $pass_db, $server_db, $choix_db, $sel_db, $chmod_db); |
|
| 339 | - |
|
| 340 | - if ($res) { |
|
| 341 | - $res = info_progression_etape(2, 'etape_', 'install/', true) |
|
| 342 | - . "<div class='error'><h3>" . _T('avis_operation_echec') . '</h3>' |
|
| 343 | - . $res |
|
| 344 | - . '<p>' . _T('texte_operation_echec') . '</p>' |
|
| 345 | - . '</div>'; |
|
| 346 | - } |
|
| 347 | - } else { |
|
| 348 | - $res = ''; |
|
| 349 | - [$adresse_db, $login_db, $pass_db, $sel_db, $server_db] = analyse_fichier_connection(_FILE_CONNECT_TMP); |
|
| 350 | - $GLOBALS['connexions'][$server_db] = spip_connect_db($adresse_db, $sel_db, $login_db, $pass_db, $sel_db, $server_db); |
|
| 351 | - } |
|
| 352 | - |
|
| 353 | - if (!$res) { |
|
| 354 | - if (file_exists(_FILE_CONNECT_TMP)) { |
|
| 355 | - include(_FILE_CONNECT_TMP); |
|
| 356 | - } else { |
|
| 357 | - redirige_url_ecrire('install'); |
|
| 358 | - } |
|
| 359 | - |
|
| 360 | - if (file_exists(_FILE_CHMOD_TMP)) { |
|
| 361 | - include(_FILE_CHMOD_TMP); |
|
| 362 | - } else { |
|
| 363 | - redirige_url_ecrire('install'); |
|
| 364 | - } |
|
| 365 | - |
|
| 366 | - $hidden = predef_ou_cache($adresse_db, $login_db, $pass_db, $server_db) |
|
| 367 | - . (defined('_INSTALL_NAME_DB') ? '' |
|
| 368 | - : "\n<input type='hidden' name='sel_db' value=\"" . spip_htmlspecialchars($sel_db) . '" />'); |
|
| 369 | - |
|
| 370 | - $auteur_obligatoire = ($ldap_present ? 0 : !sql_countsel('spip_auteurs', '', '', '', $server_db)); |
|
| 371 | - |
|
| 372 | - $res = "<div class='success'><b>" |
|
| 373 | - . _T('info_base_installee') |
|
| 374 | - . '</b></div>' |
|
| 375 | - . install_premier_auteur( |
|
| 376 | - _request('email'), |
|
| 377 | - _request('login'), |
|
| 378 | - _request('nom'), |
|
| 379 | - _request('pass'), |
|
| 380 | - $hidden, |
|
| 381 | - $auteur_obligatoire |
|
| 382 | - ) |
|
| 383 | - . (($ldap_present || !function_exists('ldap_connect')) |
|
| 384 | - ? '' : install_propose_ldap()); |
|
| 385 | - } |
|
| 386 | - |
|
| 387 | - |
|
| 388 | - $minipage = new Spip\Afficher\Minipage\Installation(); |
|
| 389 | - echo $minipage->page($res); |
|
| 308 | + $ldap_present = _request('ldap_present'); |
|
| 309 | + |
|
| 310 | + if (!$ldap_present) { |
|
| 311 | + $adresse_db = defined('_INSTALL_HOST_DB') |
|
| 312 | + ? _INSTALL_HOST_DB |
|
| 313 | + : _request('adresse_db'); |
|
| 314 | + |
|
| 315 | + $login_db = defined('_INSTALL_USER_DB') |
|
| 316 | + ? _INSTALL_USER_DB |
|
| 317 | + : _request('login_db'); |
|
| 318 | + |
|
| 319 | + $pass_db = defined('_INSTALL_PASS_DB') |
|
| 320 | + ? _INSTALL_PASS_DB |
|
| 321 | + : _request('pass_db'); |
|
| 322 | + |
|
| 323 | + $server_db = defined('_INSTALL_SERVER_DB') |
|
| 324 | + ? _INSTALL_SERVER_DB |
|
| 325 | + : _request('server_db'); |
|
| 326 | + |
|
| 327 | + $chmod_db = defined('_SPIP_CHMOD') |
|
| 328 | + ? _SPIP_CHMOD |
|
| 329 | + : _request('chmod'); |
|
| 330 | + |
|
| 331 | + $choix_db = defined('_INSTALL_NAME_DB') |
|
| 332 | + ? _INSTALL_NAME_DB |
|
| 333 | + : _request('choix_db'); |
|
| 334 | + |
|
| 335 | + $sel_db = ($choix_db == 'new_spip') |
|
| 336 | + ? _request('table_new') : $choix_db; |
|
| 337 | + |
|
| 338 | + $res = install_bases($adresse_db, $login_db, $pass_db, $server_db, $choix_db, $sel_db, $chmod_db); |
|
| 339 | + |
|
| 340 | + if ($res) { |
|
| 341 | + $res = info_progression_etape(2, 'etape_', 'install/', true) |
|
| 342 | + . "<div class='error'><h3>" . _T('avis_operation_echec') . '</h3>' |
|
| 343 | + . $res |
|
| 344 | + . '<p>' . _T('texte_operation_echec') . '</p>' |
|
| 345 | + . '</div>'; |
|
| 346 | + } |
|
| 347 | + } else { |
|
| 348 | + $res = ''; |
|
| 349 | + [$adresse_db, $login_db, $pass_db, $sel_db, $server_db] = analyse_fichier_connection(_FILE_CONNECT_TMP); |
|
| 350 | + $GLOBALS['connexions'][$server_db] = spip_connect_db($adresse_db, $sel_db, $login_db, $pass_db, $sel_db, $server_db); |
|
| 351 | + } |
|
| 352 | + |
|
| 353 | + if (!$res) { |
|
| 354 | + if (file_exists(_FILE_CONNECT_TMP)) { |
|
| 355 | + include(_FILE_CONNECT_TMP); |
|
| 356 | + } else { |
|
| 357 | + redirige_url_ecrire('install'); |
|
| 358 | + } |
|
| 359 | + |
|
| 360 | + if (file_exists(_FILE_CHMOD_TMP)) { |
|
| 361 | + include(_FILE_CHMOD_TMP); |
|
| 362 | + } else { |
|
| 363 | + redirige_url_ecrire('install'); |
|
| 364 | + } |
|
| 365 | + |
|
| 366 | + $hidden = predef_ou_cache($adresse_db, $login_db, $pass_db, $server_db) |
|
| 367 | + . (defined('_INSTALL_NAME_DB') ? '' |
|
| 368 | + : "\n<input type='hidden' name='sel_db' value=\"" . spip_htmlspecialchars($sel_db) . '" />'); |
|
| 369 | + |
|
| 370 | + $auteur_obligatoire = ($ldap_present ? 0 : !sql_countsel('spip_auteurs', '', '', '', $server_db)); |
|
| 371 | + |
|
| 372 | + $res = "<div class='success'><b>" |
|
| 373 | + . _T('info_base_installee') |
|
| 374 | + . '</b></div>' |
|
| 375 | + . install_premier_auteur( |
|
| 376 | + _request('email'), |
|
| 377 | + _request('login'), |
|
| 378 | + _request('nom'), |
|
| 379 | + _request('pass'), |
|
| 380 | + $hidden, |
|
| 381 | + $auteur_obligatoire |
|
| 382 | + ) |
|
| 383 | + . (($ldap_present || !function_exists('ldap_connect')) |
|
| 384 | + ? '' : install_propose_ldap()); |
|
| 385 | + } |
|
| 386 | + |
|
| 387 | + |
|
| 388 | + $minipage = new Spip\Afficher\Minipage\Installation(); |
|
| 389 | + echo $minipage->page($res); |
|
| 390 | 390 | } |
@@ -19,178 +19,178 @@ discard block |
||
| 19 | 19 | **/ |
| 20 | 20 | |
| 21 | 21 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 22 | - return; |
|
| 22 | + return; |
|
| 23 | 23 | } |
| 24 | 24 | |
| 25 | 25 | // En cas de modification, il faut aussi actualiser la regexp de nettoyer_uri_var() dans inc/utils.php |
| 26 | 26 | if (!defined('_CONTEXTE_IGNORE_VARIABLES')) { |
| 27 | - define('_CONTEXTE_IGNORE_VARIABLES', '/(^var_|^PHPSESSID$|^fbclid$|^utm_)/'); |
|
| 27 | + define('_CONTEXTE_IGNORE_VARIABLES', '/(^var_|^PHPSESSID$|^fbclid$|^utm_)/'); |
|
| 28 | 28 | } |
| 29 | 29 | |
| 30 | 30 | function assembler($fond, string $connect = '') { |
| 31 | 31 | |
| 32 | - $chemin_cache = null; |
|
| 33 | - $lastmodified = null; |
|
| 34 | - $res = null; |
|
| 35 | - // flag_preserver est modifie ici, et utilise en globale |
|
| 36 | - // use_cache sert a informer le bouton d'admin pr savoir s'il met un * |
|
| 37 | - // contexte est utilise en globale dans le formulaire d'admin |
|
| 38 | - |
|
| 39 | - $GLOBALS['contexte'] = calculer_contexte(); |
|
| 40 | - $page = ['contexte_implicite' => calculer_contexte_implicite()]; |
|
| 41 | - $page['contexte_implicite']['cache'] = $fond . preg_replace( |
|
| 42 | - ',\.[a-zA-Z0-9]*$,', |
|
| 43 | - '', |
|
| 44 | - preg_replace('/[?].*$/', '', $GLOBALS['REQUEST_URI']) |
|
| 45 | - ); |
|
| 46 | - // Cette fonction est utilisee deux fois |
|
| 47 | - $cacher = charger_fonction('cacher', 'public', true); |
|
| 48 | - // Les quatre derniers parametres sont modifies par la fonction: |
|
| 49 | - // emplacement, validite, et, s'il est valide, contenu & age |
|
| 50 | - if ($cacher) { |
|
| 51 | - $res = $cacher($GLOBALS['contexte'], $GLOBALS['use_cache'], $chemin_cache, $page, $lastmodified); |
|
| 52 | - } else { |
|
| 53 | - $GLOBALS['use_cache'] = -1; |
|
| 54 | - } |
|
| 55 | - // Si un resultat est retourne, c'est un message d'impossibilite |
|
| 56 | - if ($res) { |
|
| 57 | - return ['texte' => $res]; |
|
| 58 | - } |
|
| 59 | - |
|
| 60 | - if (!$chemin_cache || !$lastmodified) { |
|
| 61 | - $lastmodified = time(); |
|
| 62 | - } |
|
| 63 | - |
|
| 64 | - $headers_only = ($_SERVER['REQUEST_METHOD'] == 'HEAD'); |
|
| 65 | - $calculer_page = true; |
|
| 66 | - |
|
| 67 | - // Pour les pages non-dynamiques (indiquees par #CACHE{duree,cache-client}) |
|
| 68 | - // une perennite valide a meme reponse qu'une requete HEAD (par defaut les |
|
| 69 | - // pages sont dynamiques) |
|
| 70 | - if ( |
|
| 71 | - isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) |
|
| 72 | - and (!defined('_VAR_MODE') or !_VAR_MODE) |
|
| 73 | - and $chemin_cache |
|
| 74 | - and isset($page['entetes']) |
|
| 75 | - and isset($page['entetes']['Cache-Control']) |
|
| 76 | - and strstr($page['entetes']['Cache-Control'], 'max-age=') |
|
| 77 | - and !strstr($_SERVER['SERVER_SOFTWARE'], 'IIS/') |
|
| 78 | - ) { |
|
| 79 | - $since = preg_replace( |
|
| 80 | - '/;.*/', |
|
| 81 | - '', |
|
| 82 | - $_SERVER['HTTP_IF_MODIFIED_SINCE'] |
|
| 83 | - ); |
|
| 84 | - $since = str_replace('GMT', '', $since); |
|
| 85 | - if (trim($since) == gmdate('D, d M Y H:i:s', $lastmodified)) { |
|
| 86 | - $page['status'] = 304; |
|
| 87 | - $headers_only = true; |
|
| 88 | - $calculer_page = false; |
|
| 89 | - } |
|
| 90 | - } |
|
| 91 | - |
|
| 92 | - // Si requete HEAD ou Last-modified compatible, ignorer le texte |
|
| 93 | - // et pas de content-type (pour contrer le bouton admin de inc-public) |
|
| 94 | - if (!$calculer_page) { |
|
| 95 | - $page['texte'] = ''; |
|
| 96 | - } else { |
|
| 97 | - // si la page est prise dans le cache |
|
| 98 | - if (!$GLOBALS['use_cache']) { |
|
| 99 | - // Informer les boutons d'admin du contexte |
|
| 100 | - // (fourni par urls_decoder_url ci-dessous lors de la mise en cache) |
|
| 101 | - $GLOBALS['contexte'] = $page['contexte']; |
|
| 102 | - |
|
| 103 | - // vider les globales url propres qui ne doivent plus etre utilisees en cas |
|
| 104 | - // d'inversion url => objet |
|
| 105 | - // plus necessaire si on utilise bien la fonction urls_decoder_url |
|
| 106 | - #unset($_SERVER['REDIRECT_url_propre']); |
|
| 107 | - #unset($_ENV['url_propre']); |
|
| 108 | - } else { |
|
| 109 | - // Compat ascendante : |
|
| 110 | - // 1. $contexte est global |
|
| 111 | - // (a evacuer car urls_decoder_url gere ce probleme ?) |
|
| 112 | - // et calculer la page |
|
| 113 | - if (!test_espace_prive()) { |
|
| 114 | - include_spip('inc/urls'); |
|
| 115 | - [$fond, $GLOBALS['contexte'], $url_redirect] = urls_decoder_url( |
|
| 116 | - nettoyer_uri(), |
|
| 117 | - $fond, |
|
| 118 | - $GLOBALS['contexte'], |
|
| 119 | - true |
|
| 120 | - ); |
|
| 121 | - } |
|
| 122 | - // squelette par defaut |
|
| 123 | - if (!strlen($fond ?? '')) { |
|
| 124 | - $fond = 'sommaire'; |
|
| 125 | - } |
|
| 126 | - |
|
| 127 | - // produire la page : peut mettre a jour $lastmodified |
|
| 128 | - $produire_page = charger_fonction('produire_page', 'public'); |
|
| 129 | - $page = $produire_page( |
|
| 130 | - $fond, |
|
| 131 | - $GLOBALS['contexte'], |
|
| 132 | - $GLOBALS['use_cache'], |
|
| 133 | - $chemin_cache, |
|
| 134 | - null, |
|
| 135 | - $page, |
|
| 136 | - $lastmodified, |
|
| 137 | - $connect |
|
| 138 | - ); |
|
| 139 | - if ($page === '') { |
|
| 140 | - $erreur = _T( |
|
| 141 | - 'info_erreur_squelette2', |
|
| 142 | - ['fichier' => spip_htmlspecialchars($fond) . '.' . _EXTENSION_SQUELETTES] |
|
| 143 | - ); |
|
| 144 | - erreur_squelette($erreur); |
|
| 145 | - // eviter des erreurs strictes ensuite sur $page['cle'] en PHP >= 5.4 |
|
| 146 | - $page = ['texte' => '', 'erreur' => $erreur]; |
|
| 147 | - } |
|
| 148 | - } |
|
| 149 | - |
|
| 150 | - if ($page and $chemin_cache) { |
|
| 151 | - $page['cache'] = $chemin_cache; |
|
| 152 | - } |
|
| 153 | - |
|
| 154 | - auto_content_type($page); |
|
| 155 | - |
|
| 156 | - $GLOBALS['flag_preserver'] |= headers_sent(); |
|
| 157 | - |
|
| 158 | - // Definir les entetes si ce n'est fait |
|
| 159 | - if (!$GLOBALS['flag_preserver']) { |
|
| 160 | - // Si la page est vide, produire l'erreur 404 ou message d'erreur pour les inclusions |
|
| 161 | - if ( |
|
| 162 | - trim($page['texte']) === '' |
|
| 163 | - and _VAR_MODE !== 'debug' |
|
| 164 | - and !isset($page['entetes']['Location']) // cette page realise une redirection, donc pas d'erreur |
|
| 165 | - ) { |
|
| 166 | - $GLOBALS['contexte']['fond_erreur'] = $fond; |
|
| 167 | - $page = message_page_indisponible($page, $GLOBALS['contexte']); |
|
| 168 | - } |
|
| 169 | - // pas de cache client en mode 'observation' |
|
| 170 | - if (defined('_VAR_MODE') and _VAR_MODE) { |
|
| 171 | - $page['entetes']['Cache-Control'] = 'no-cache,must-revalidate'; |
|
| 172 | - $page['entetes']['Pragma'] = 'no-cache'; |
|
| 173 | - } |
|
| 174 | - } |
|
| 175 | - } |
|
| 176 | - |
|
| 177 | - // Entete Last-Modified: |
|
| 178 | - // eviter d'etre incoherent en envoyant un lastmodified identique |
|
| 179 | - // a celui qu'on a refuse d'honorer plus haut (cf. #655) |
|
| 180 | - if ( |
|
| 181 | - $lastmodified |
|
| 182 | - and !isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) |
|
| 183 | - and !isset($page['entetes']['Last-Modified']) |
|
| 184 | - ) { |
|
| 185 | - $page['entetes']['Last-Modified'] = gmdate('D, d M Y H:i:s', $lastmodified) . ' GMT'; |
|
| 186 | - } |
|
| 187 | - |
|
| 188 | - // fermer la connexion apres les headers si requete HEAD |
|
| 189 | - if ($headers_only) { |
|
| 190 | - $page['entetes']['Connection'] = 'close'; |
|
| 191 | - } |
|
| 192 | - |
|
| 193 | - return $page; |
|
| 32 | + $chemin_cache = null; |
|
| 33 | + $lastmodified = null; |
|
| 34 | + $res = null; |
|
| 35 | + // flag_preserver est modifie ici, et utilise en globale |
|
| 36 | + // use_cache sert a informer le bouton d'admin pr savoir s'il met un * |
|
| 37 | + // contexte est utilise en globale dans le formulaire d'admin |
|
| 38 | + |
|
| 39 | + $GLOBALS['contexte'] = calculer_contexte(); |
|
| 40 | + $page = ['contexte_implicite' => calculer_contexte_implicite()]; |
|
| 41 | + $page['contexte_implicite']['cache'] = $fond . preg_replace( |
|
| 42 | + ',\.[a-zA-Z0-9]*$,', |
|
| 43 | + '', |
|
| 44 | + preg_replace('/[?].*$/', '', $GLOBALS['REQUEST_URI']) |
|
| 45 | + ); |
|
| 46 | + // Cette fonction est utilisee deux fois |
|
| 47 | + $cacher = charger_fonction('cacher', 'public', true); |
|
| 48 | + // Les quatre derniers parametres sont modifies par la fonction: |
|
| 49 | + // emplacement, validite, et, s'il est valide, contenu & age |
|
| 50 | + if ($cacher) { |
|
| 51 | + $res = $cacher($GLOBALS['contexte'], $GLOBALS['use_cache'], $chemin_cache, $page, $lastmodified); |
|
| 52 | + } else { |
|
| 53 | + $GLOBALS['use_cache'] = -1; |
|
| 54 | + } |
|
| 55 | + // Si un resultat est retourne, c'est un message d'impossibilite |
|
| 56 | + if ($res) { |
|
| 57 | + return ['texte' => $res]; |
|
| 58 | + } |
|
| 59 | + |
|
| 60 | + if (!$chemin_cache || !$lastmodified) { |
|
| 61 | + $lastmodified = time(); |
|
| 62 | + } |
|
| 63 | + |
|
| 64 | + $headers_only = ($_SERVER['REQUEST_METHOD'] == 'HEAD'); |
|
| 65 | + $calculer_page = true; |
|
| 66 | + |
|
| 67 | + // Pour les pages non-dynamiques (indiquees par #CACHE{duree,cache-client}) |
|
| 68 | + // une perennite valide a meme reponse qu'une requete HEAD (par defaut les |
|
| 69 | + // pages sont dynamiques) |
|
| 70 | + if ( |
|
| 71 | + isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) |
|
| 72 | + and (!defined('_VAR_MODE') or !_VAR_MODE) |
|
| 73 | + and $chemin_cache |
|
| 74 | + and isset($page['entetes']) |
|
| 75 | + and isset($page['entetes']['Cache-Control']) |
|
| 76 | + and strstr($page['entetes']['Cache-Control'], 'max-age=') |
|
| 77 | + and !strstr($_SERVER['SERVER_SOFTWARE'], 'IIS/') |
|
| 78 | + ) { |
|
| 79 | + $since = preg_replace( |
|
| 80 | + '/;.*/', |
|
| 81 | + '', |
|
| 82 | + $_SERVER['HTTP_IF_MODIFIED_SINCE'] |
|
| 83 | + ); |
|
| 84 | + $since = str_replace('GMT', '', $since); |
|
| 85 | + if (trim($since) == gmdate('D, d M Y H:i:s', $lastmodified)) { |
|
| 86 | + $page['status'] = 304; |
|
| 87 | + $headers_only = true; |
|
| 88 | + $calculer_page = false; |
|
| 89 | + } |
|
| 90 | + } |
|
| 91 | + |
|
| 92 | + // Si requete HEAD ou Last-modified compatible, ignorer le texte |
|
| 93 | + // et pas de content-type (pour contrer le bouton admin de inc-public) |
|
| 94 | + if (!$calculer_page) { |
|
| 95 | + $page['texte'] = ''; |
|
| 96 | + } else { |
|
| 97 | + // si la page est prise dans le cache |
|
| 98 | + if (!$GLOBALS['use_cache']) { |
|
| 99 | + // Informer les boutons d'admin du contexte |
|
| 100 | + // (fourni par urls_decoder_url ci-dessous lors de la mise en cache) |
|
| 101 | + $GLOBALS['contexte'] = $page['contexte']; |
|
| 102 | + |
|
| 103 | + // vider les globales url propres qui ne doivent plus etre utilisees en cas |
|
| 104 | + // d'inversion url => objet |
|
| 105 | + // plus necessaire si on utilise bien la fonction urls_decoder_url |
|
| 106 | + #unset($_SERVER['REDIRECT_url_propre']); |
|
| 107 | + #unset($_ENV['url_propre']); |
|
| 108 | + } else { |
|
| 109 | + // Compat ascendante : |
|
| 110 | + // 1. $contexte est global |
|
| 111 | + // (a evacuer car urls_decoder_url gere ce probleme ?) |
|
| 112 | + // et calculer la page |
|
| 113 | + if (!test_espace_prive()) { |
|
| 114 | + include_spip('inc/urls'); |
|
| 115 | + [$fond, $GLOBALS['contexte'], $url_redirect] = urls_decoder_url( |
|
| 116 | + nettoyer_uri(), |
|
| 117 | + $fond, |
|
| 118 | + $GLOBALS['contexte'], |
|
| 119 | + true |
|
| 120 | + ); |
|
| 121 | + } |
|
| 122 | + // squelette par defaut |
|
| 123 | + if (!strlen($fond ?? '')) { |
|
| 124 | + $fond = 'sommaire'; |
|
| 125 | + } |
|
| 126 | + |
|
| 127 | + // produire la page : peut mettre a jour $lastmodified |
|
| 128 | + $produire_page = charger_fonction('produire_page', 'public'); |
|
| 129 | + $page = $produire_page( |
|
| 130 | + $fond, |
|
| 131 | + $GLOBALS['contexte'], |
|
| 132 | + $GLOBALS['use_cache'], |
|
| 133 | + $chemin_cache, |
|
| 134 | + null, |
|
| 135 | + $page, |
|
| 136 | + $lastmodified, |
|
| 137 | + $connect |
|
| 138 | + ); |
|
| 139 | + if ($page === '') { |
|
| 140 | + $erreur = _T( |
|
| 141 | + 'info_erreur_squelette2', |
|
| 142 | + ['fichier' => spip_htmlspecialchars($fond) . '.' . _EXTENSION_SQUELETTES] |
|
| 143 | + ); |
|
| 144 | + erreur_squelette($erreur); |
|
| 145 | + // eviter des erreurs strictes ensuite sur $page['cle'] en PHP >= 5.4 |
|
| 146 | + $page = ['texte' => '', 'erreur' => $erreur]; |
|
| 147 | + } |
|
| 148 | + } |
|
| 149 | + |
|
| 150 | + if ($page and $chemin_cache) { |
|
| 151 | + $page['cache'] = $chemin_cache; |
|
| 152 | + } |
|
| 153 | + |
|
| 154 | + auto_content_type($page); |
|
| 155 | + |
|
| 156 | + $GLOBALS['flag_preserver'] |= headers_sent(); |
|
| 157 | + |
|
| 158 | + // Definir les entetes si ce n'est fait |
|
| 159 | + if (!$GLOBALS['flag_preserver']) { |
|
| 160 | + // Si la page est vide, produire l'erreur 404 ou message d'erreur pour les inclusions |
|
| 161 | + if ( |
|
| 162 | + trim($page['texte']) === '' |
|
| 163 | + and _VAR_MODE !== 'debug' |
|
| 164 | + and !isset($page['entetes']['Location']) // cette page realise une redirection, donc pas d'erreur |
|
| 165 | + ) { |
|
| 166 | + $GLOBALS['contexte']['fond_erreur'] = $fond; |
|
| 167 | + $page = message_page_indisponible($page, $GLOBALS['contexte']); |
|
| 168 | + } |
|
| 169 | + // pas de cache client en mode 'observation' |
|
| 170 | + if (defined('_VAR_MODE') and _VAR_MODE) { |
|
| 171 | + $page['entetes']['Cache-Control'] = 'no-cache,must-revalidate'; |
|
| 172 | + $page['entetes']['Pragma'] = 'no-cache'; |
|
| 173 | + } |
|
| 174 | + } |
|
| 175 | + } |
|
| 176 | + |
|
| 177 | + // Entete Last-Modified: |
|
| 178 | + // eviter d'etre incoherent en envoyant un lastmodified identique |
|
| 179 | + // a celui qu'on a refuse d'honorer plus haut (cf. #655) |
|
| 180 | + if ( |
|
| 181 | + $lastmodified |
|
| 182 | + and !isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) |
|
| 183 | + and !isset($page['entetes']['Last-Modified']) |
|
| 184 | + ) { |
|
| 185 | + $page['entetes']['Last-Modified'] = gmdate('D, d M Y H:i:s', $lastmodified) . ' GMT'; |
|
| 186 | + } |
|
| 187 | + |
|
| 188 | + // fermer la connexion apres les headers si requete HEAD |
|
| 189 | + if ($headers_only) { |
|
| 190 | + $page['entetes']['Connection'] = 'close'; |
|
| 191 | + } |
|
| 192 | + |
|
| 193 | + return $page; |
|
| 194 | 194 | } |
| 195 | 195 | |
| 196 | 196 | /** |
@@ -207,19 +207,19 @@ discard block |
||
| 207 | 207 | */ |
| 208 | 208 | function calculer_contexte() { |
| 209 | 209 | |
| 210 | - $contexte = []; |
|
| 211 | - foreach ($_GET as $var => $val) { |
|
| 212 | - if (!preg_match(_CONTEXTE_IGNORE_VARIABLES, $var)) { |
|
| 213 | - $contexte[$var] = $val; |
|
| 214 | - } |
|
| 215 | - } |
|
| 216 | - foreach ($_POST as $var => $val) { |
|
| 217 | - if (!preg_match(_CONTEXTE_IGNORE_VARIABLES, $var)) { |
|
| 218 | - $contexte[$var] = $val; |
|
| 219 | - } |
|
| 220 | - } |
|
| 221 | - |
|
| 222 | - return $contexte; |
|
| 210 | + $contexte = []; |
|
| 211 | + foreach ($_GET as $var => $val) { |
|
| 212 | + if (!preg_match(_CONTEXTE_IGNORE_VARIABLES, $var)) { |
|
| 213 | + $contexte[$var] = $val; |
|
| 214 | + } |
|
| 215 | + } |
|
| 216 | + foreach ($_POST as $var => $val) { |
|
| 217 | + if (!preg_match(_CONTEXTE_IGNORE_VARIABLES, $var)) { |
|
| 218 | + $contexte[$var] = $val; |
|
| 219 | + } |
|
| 220 | + } |
|
| 221 | + |
|
| 222 | + return $contexte; |
|
| 223 | 223 | } |
| 224 | 224 | |
| 225 | 225 | /** |
@@ -230,25 +230,25 @@ discard block |
||
| 230 | 230 | * @return array |
| 231 | 231 | */ |
| 232 | 232 | function calculer_contexte_implicite() { |
| 233 | - static $notes = null; |
|
| 234 | - if (is_null($notes)) { |
|
| 235 | - $notes = charger_fonction('notes', 'inc', true); |
|
| 236 | - } |
|
| 237 | - $contexte_implicite = [ |
|
| 238 | - 'squelettes' => $GLOBALS['dossier_squelettes'], // devrait etre 'chemin' => $GLOBALS['path_sig'], ? |
|
| 239 | - 'host' => ($_SERVER['HTTP_HOST'] ?? null), |
|
| 240 | - 'https' => ($_SERVER['HTTPS'] ?? ''), |
|
| 241 | - 'espace' => test_espace_prive(), |
|
| 242 | - 'marqueur' => ($GLOBALS['marqueur'] ?? ''), |
|
| 243 | - 'marqueur_skel' => ($GLOBALS['marqueur_skel'] ?? ''), |
|
| 244 | - 'notes' => $notes ? $notes('', 'contexter_cache') : '', |
|
| 245 | - 'spip_version_code' => $GLOBALS['spip_version_code'], |
|
| 246 | - ]; |
|
| 247 | - if (isset($_SERVER['HTTP_X_FORWARDED_HOST'])) { |
|
| 248 | - $contexte_implicite['host'] .= '|' . $_SERVER['HTTP_X_FORWARDED_HOST']; |
|
| 249 | - } |
|
| 250 | - |
|
| 251 | - return $contexte_implicite; |
|
| 233 | + static $notes = null; |
|
| 234 | + if (is_null($notes)) { |
|
| 235 | + $notes = charger_fonction('notes', 'inc', true); |
|
| 236 | + } |
|
| 237 | + $contexte_implicite = [ |
|
| 238 | + 'squelettes' => $GLOBALS['dossier_squelettes'], // devrait etre 'chemin' => $GLOBALS['path_sig'], ? |
|
| 239 | + 'host' => ($_SERVER['HTTP_HOST'] ?? null), |
|
| 240 | + 'https' => ($_SERVER['HTTPS'] ?? ''), |
|
| 241 | + 'espace' => test_espace_prive(), |
|
| 242 | + 'marqueur' => ($GLOBALS['marqueur'] ?? ''), |
|
| 243 | + 'marqueur_skel' => ($GLOBALS['marqueur_skel'] ?? ''), |
|
| 244 | + 'notes' => $notes ? $notes('', 'contexter_cache') : '', |
|
| 245 | + 'spip_version_code' => $GLOBALS['spip_version_code'], |
|
| 246 | + ]; |
|
| 247 | + if (isset($_SERVER['HTTP_X_FORWARDED_HOST'])) { |
|
| 248 | + $contexte_implicite['host'] .= '|' . $_SERVER['HTTP_X_FORWARDED_HOST']; |
|
| 249 | + } |
|
| 250 | + |
|
| 251 | + return $contexte_implicite; |
|
| 252 | 252 | } |
| 253 | 253 | |
| 254 | 254 | // |
@@ -257,55 +257,55 @@ discard block |
||
| 257 | 257 | |
| 258 | 258 | function auto_content_type($page) { |
| 259 | 259 | |
| 260 | - if (!isset($GLOBALS['flag_preserver'])) { |
|
| 261 | - $GLOBALS['flag_preserver'] = ($page && preg_match( |
|
| 262 | - '/header\s*\(\s*.content\-type:/isx', |
|
| 263 | - $page['texte'] |
|
| 264 | - ) || (isset($page['entetes']['Content-Type']))); |
|
| 265 | - } |
|
| 260 | + if (!isset($GLOBALS['flag_preserver'])) { |
|
| 261 | + $GLOBALS['flag_preserver'] = ($page && preg_match( |
|
| 262 | + '/header\s*\(\s*.content\-type:/isx', |
|
| 263 | + $page['texte'] |
|
| 264 | + ) || (isset($page['entetes']['Content-Type']))); |
|
| 265 | + } |
|
| 266 | 266 | } |
| 267 | 267 | |
| 268 | 268 | function inclure_page($fond, $contexte, string $connect = '') { |
| 269 | - $use_cache = null; |
|
| 270 | - $chemin_cache = null; |
|
| 271 | - $lastinclude = null; |
|
| 272 | - $res = null; |
|
| 273 | - static $cacher, $produire_page; |
|
| 274 | - |
|
| 275 | - // enlever le fond de contexte inclus car sinon il prend la main |
|
| 276 | - // dans les sous inclusions -> boucle infinie d'inclusion identique |
|
| 277 | - // (cette precaution n'est probablement plus utile) |
|
| 278 | - unset($contexte['fond']); |
|
| 279 | - $page = ['contexte_implicite' => calculer_contexte_implicite()]; |
|
| 280 | - $page['contexte_implicite']['cache'] = $fond; |
|
| 281 | - if (is_null($cacher)) { |
|
| 282 | - $cacher = charger_fonction('cacher', 'public', true); |
|
| 283 | - } |
|
| 284 | - // Les quatre derniers parametres sont modifies par la fonction: |
|
| 285 | - // emplacement, validite, et, s'il est valide, contenu & age |
|
| 286 | - if ($cacher) { |
|
| 287 | - $res = $cacher($contexte, $use_cache, $chemin_cache, $page, $lastinclude); |
|
| 288 | - } else { |
|
| 289 | - $use_cache = -1; |
|
| 290 | - } |
|
| 291 | - // $res = message d'erreur : on sort de la |
|
| 292 | - if ($res) { |
|
| 293 | - return ['texte' => $res]; |
|
| 294 | - } |
|
| 295 | - |
|
| 296 | - // Si use_cache ne vaut pas 0, la page doit etre calculee |
|
| 297 | - // produire la page : peut mettre a jour $lastinclude |
|
| 298 | - // le contexte_cache envoye a cacher() a ete conserve et est passe a produire |
|
| 299 | - if ($use_cache) { |
|
| 300 | - if (is_null($produire_page)) { |
|
| 301 | - $produire_page = charger_fonction('produire_page', 'public'); |
|
| 302 | - } |
|
| 303 | - $page = $produire_page($fond, $contexte, $use_cache, $chemin_cache, $contexte, $page, $lastinclude, $connect); |
|
| 304 | - } |
|
| 305 | - // dans tous les cas, mettre a jour $GLOBALS['lastmodified'] |
|
| 306 | - $GLOBALS['lastmodified'] = max(($GLOBALS['lastmodified'] ?? 0), $lastinclude); |
|
| 307 | - |
|
| 308 | - return $page; |
|
| 269 | + $use_cache = null; |
|
| 270 | + $chemin_cache = null; |
|
| 271 | + $lastinclude = null; |
|
| 272 | + $res = null; |
|
| 273 | + static $cacher, $produire_page; |
|
| 274 | + |
|
| 275 | + // enlever le fond de contexte inclus car sinon il prend la main |
|
| 276 | + // dans les sous inclusions -> boucle infinie d'inclusion identique |
|
| 277 | + // (cette precaution n'est probablement plus utile) |
|
| 278 | + unset($contexte['fond']); |
|
| 279 | + $page = ['contexte_implicite' => calculer_contexte_implicite()]; |
|
| 280 | + $page['contexte_implicite']['cache'] = $fond; |
|
| 281 | + if (is_null($cacher)) { |
|
| 282 | + $cacher = charger_fonction('cacher', 'public', true); |
|
| 283 | + } |
|
| 284 | + // Les quatre derniers parametres sont modifies par la fonction: |
|
| 285 | + // emplacement, validite, et, s'il est valide, contenu & age |
|
| 286 | + if ($cacher) { |
|
| 287 | + $res = $cacher($contexte, $use_cache, $chemin_cache, $page, $lastinclude); |
|
| 288 | + } else { |
|
| 289 | + $use_cache = -1; |
|
| 290 | + } |
|
| 291 | + // $res = message d'erreur : on sort de la |
|
| 292 | + if ($res) { |
|
| 293 | + return ['texte' => $res]; |
|
| 294 | + } |
|
| 295 | + |
|
| 296 | + // Si use_cache ne vaut pas 0, la page doit etre calculee |
|
| 297 | + // produire la page : peut mettre a jour $lastinclude |
|
| 298 | + // le contexte_cache envoye a cacher() a ete conserve et est passe a produire |
|
| 299 | + if ($use_cache) { |
|
| 300 | + if (is_null($produire_page)) { |
|
| 301 | + $produire_page = charger_fonction('produire_page', 'public'); |
|
| 302 | + } |
|
| 303 | + $page = $produire_page($fond, $contexte, $use_cache, $chemin_cache, $contexte, $page, $lastinclude, $connect); |
|
| 304 | + } |
|
| 305 | + // dans tous les cas, mettre a jour $GLOBALS['lastmodified'] |
|
| 306 | + $GLOBALS['lastmodified'] = max(($GLOBALS['lastmodified'] ?? 0), $lastinclude); |
|
| 307 | + |
|
| 308 | + return $page; |
|
| 309 | 309 | } |
| 310 | 310 | |
| 311 | 311 | /** |
@@ -323,41 +323,41 @@ discard block |
||
| 323 | 323 | * @return array |
| 324 | 324 | */ |
| 325 | 325 | function public_produire_page_dist( |
| 326 | - $fond, |
|
| 327 | - $contexte, |
|
| 328 | - $use_cache, |
|
| 329 | - $chemin_cache, |
|
| 330 | - $contexte_cache, |
|
| 331 | - &$page, |
|
| 332 | - &$lastinclude, |
|
| 333 | - $connect = '' |
|
| 326 | + $fond, |
|
| 327 | + $contexte, |
|
| 328 | + $use_cache, |
|
| 329 | + $chemin_cache, |
|
| 330 | + $contexte_cache, |
|
| 331 | + &$page, |
|
| 332 | + &$lastinclude, |
|
| 333 | + $connect = '' |
|
| 334 | 334 | ) { |
| 335 | - static $parametrer, $cacher; |
|
| 336 | - if (!$parametrer) { |
|
| 337 | - $parametrer = charger_fonction('parametrer', 'public'); |
|
| 338 | - } |
|
| 339 | - $page = $parametrer($fond, $contexte, $chemin_cache, $connect); |
|
| 340 | - // et on l'enregistre sur le disque |
|
| 341 | - if ( |
|
| 342 | - $chemin_cache |
|
| 343 | - and $use_cache > -1 |
|
| 344 | - and is_array($page) |
|
| 345 | - and count($page) |
|
| 346 | - and isset($page['entetes']['X-Spip-Cache']) |
|
| 347 | - and $page['entetes']['X-Spip-Cache'] > 0 |
|
| 348 | - ) { |
|
| 349 | - if (is_null($cacher)) { |
|
| 350 | - $cacher = charger_fonction('cacher', 'public', true); |
|
| 351 | - } |
|
| 352 | - $lastinclude = time(); |
|
| 353 | - if ($cacher) { |
|
| 354 | - $cacher($contexte_cache, $use_cache, $chemin_cache, $page, $lastinclude); |
|
| 355 | - } else { |
|
| 356 | - $use_cache = -1; |
|
| 357 | - } |
|
| 358 | - } |
|
| 359 | - |
|
| 360 | - return $page; |
|
| 335 | + static $parametrer, $cacher; |
|
| 336 | + if (!$parametrer) { |
|
| 337 | + $parametrer = charger_fonction('parametrer', 'public'); |
|
| 338 | + } |
|
| 339 | + $page = $parametrer($fond, $contexte, $chemin_cache, $connect); |
|
| 340 | + // et on l'enregistre sur le disque |
|
| 341 | + if ( |
|
| 342 | + $chemin_cache |
|
| 343 | + and $use_cache > -1 |
|
| 344 | + and is_array($page) |
|
| 345 | + and count($page) |
|
| 346 | + and isset($page['entetes']['X-Spip-Cache']) |
|
| 347 | + and $page['entetes']['X-Spip-Cache'] > 0 |
|
| 348 | + ) { |
|
| 349 | + if (is_null($cacher)) { |
|
| 350 | + $cacher = charger_fonction('cacher', 'public', true); |
|
| 351 | + } |
|
| 352 | + $lastinclude = time(); |
|
| 353 | + if ($cacher) { |
|
| 354 | + $cacher($contexte_cache, $use_cache, $chemin_cache, $page, $lastinclude); |
|
| 355 | + } else { |
|
| 356 | + $use_cache = -1; |
|
| 357 | + } |
|
| 358 | + } |
|
| 359 | + |
|
| 360 | + return $page; |
|
| 361 | 361 | } |
| 362 | 362 | |
| 363 | 363 | // Fonction inseree par le compilateur dans le code compile. |
@@ -371,14 +371,14 @@ discard block |
||
| 371 | 371 | // 4: langue |
| 372 | 372 | |
| 373 | 373 | function inserer_balise_dynamique($contexte_exec, $contexte_compil) { |
| 374 | - arguments_balise_dyn_depuis_modele(null, 'reset'); |
|
| 375 | - |
|
| 376 | - if (!is_array($contexte_exec)) { |
|
| 377 | - echo $contexte_exec; |
|
| 378 | - } // message d'erreur etc |
|
| 379 | - else { |
|
| 380 | - inclure_balise_dynamique($contexte_exec, true, $contexte_compil); |
|
| 381 | - } |
|
| 374 | + arguments_balise_dyn_depuis_modele(null, 'reset'); |
|
| 375 | + |
|
| 376 | + if (!is_array($contexte_exec)) { |
|
| 377 | + echo $contexte_exec; |
|
| 378 | + } // message d'erreur etc |
|
| 379 | + else { |
|
| 380 | + inclure_balise_dynamique($contexte_exec, true, $contexte_compil); |
|
| 381 | + } |
|
| 382 | 382 | } |
| 383 | 383 | |
| 384 | 384 | /** |
@@ -391,101 +391,101 @@ discard block |
||
| 391 | 391 | * @return string|void |
| 392 | 392 | */ |
| 393 | 393 | function inclure_balise_dynamique($texte, $echo = true, $contexte_compil = []) { |
| 394 | - if (is_array($texte)) { |
|
| 395 | - [$fond, $delainc, $contexte_inclus] = $texte; |
|
| 396 | - |
|
| 397 | - // delais a l'ancienne, c'est pratiquement mort |
|
| 398 | - $d = $GLOBALS['delais'] ?? null; |
|
| 399 | - $GLOBALS['delais'] = $delainc; |
|
| 400 | - |
|
| 401 | - $page = recuperer_fond( |
|
| 402 | - $fond, |
|
| 403 | - $contexte_inclus, |
|
| 404 | - ['trim' => false, 'raw' => true, 'compil' => $contexte_compil] |
|
| 405 | - ); |
|
| 406 | - |
|
| 407 | - $texte = $page['texte']; |
|
| 408 | - |
|
| 409 | - $GLOBALS['delais'] = $d; |
|
| 410 | - // Faire remonter les entetes |
|
| 411 | - if ( |
|
| 412 | - isset($page['entetes']) |
|
| 413 | - and is_array($page['entetes']) |
|
| 414 | - ) { |
|
| 415 | - // mais pas toutes |
|
| 416 | - unset($page['entetes']['X-Spip-Cache']); |
|
| 417 | - unset($page['entetes']['Content-Type']); |
|
| 418 | - if (isset($GLOBALS['page']) and is_array($GLOBALS['page'])) { |
|
| 419 | - if (!is_array($GLOBALS['page']['entetes'])) { |
|
| 420 | - $GLOBALS['page']['entetes'] = []; |
|
| 421 | - } |
|
| 422 | - $GLOBALS['page']['entetes'] = |
|
| 423 | - array_merge($GLOBALS['page']['entetes'], $page['entetes']); |
|
| 424 | - } |
|
| 425 | - } |
|
| 426 | - // _pipelines au pluriel array('nom_pipeline' => $args...) avec une syntaxe permettant plusieurs pipelines |
|
| 427 | - if ( |
|
| 428 | - isset($page['contexte']['_pipelines']) |
|
| 429 | - and is_array($page['contexte']['_pipelines']) |
|
| 430 | - and count($page['contexte']['_pipelines']) |
|
| 431 | - ) { |
|
| 432 | - foreach ($page['contexte']['_pipelines'] as $pipe => $args) { |
|
| 433 | - $args['contexte'] = $page['contexte']; |
|
| 434 | - unset($args['contexte']['_pipelines']); // par precaution, meme si le risque de boucle infinie est a priori nul |
|
| 435 | - $texte = pipeline( |
|
| 436 | - $pipe, |
|
| 437 | - [ |
|
| 438 | - 'data' => $texte, |
|
| 439 | - 'args' => $args |
|
| 440 | - ] |
|
| 441 | - ); |
|
| 442 | - } |
|
| 443 | - } |
|
| 444 | - } |
|
| 445 | - |
|
| 446 | - if (defined('_VAR_MODE') and _VAR_MODE == 'debug') { |
|
| 447 | - // compatibilite : avant on donnait le numero de ligne ou rien. |
|
| 448 | - $ligne = intval($contexte_compil[3] ?? $contexte_compil); |
|
| 449 | - $GLOBALS['debug_objets']['resultat'][$ligne] = $texte; |
|
| 450 | - } |
|
| 451 | - if ($echo) { |
|
| 452 | - echo $texte; |
|
| 453 | - } else { |
|
| 454 | - return $texte; |
|
| 455 | - } |
|
| 394 | + if (is_array($texte)) { |
|
| 395 | + [$fond, $delainc, $contexte_inclus] = $texte; |
|
| 396 | + |
|
| 397 | + // delais a l'ancienne, c'est pratiquement mort |
|
| 398 | + $d = $GLOBALS['delais'] ?? null; |
|
| 399 | + $GLOBALS['delais'] = $delainc; |
|
| 400 | + |
|
| 401 | + $page = recuperer_fond( |
|
| 402 | + $fond, |
|
| 403 | + $contexte_inclus, |
|
| 404 | + ['trim' => false, 'raw' => true, 'compil' => $contexte_compil] |
|
| 405 | + ); |
|
| 406 | + |
|
| 407 | + $texte = $page['texte']; |
|
| 408 | + |
|
| 409 | + $GLOBALS['delais'] = $d; |
|
| 410 | + // Faire remonter les entetes |
|
| 411 | + if ( |
|
| 412 | + isset($page['entetes']) |
|
| 413 | + and is_array($page['entetes']) |
|
| 414 | + ) { |
|
| 415 | + // mais pas toutes |
|
| 416 | + unset($page['entetes']['X-Spip-Cache']); |
|
| 417 | + unset($page['entetes']['Content-Type']); |
|
| 418 | + if (isset($GLOBALS['page']) and is_array($GLOBALS['page'])) { |
|
| 419 | + if (!is_array($GLOBALS['page']['entetes'])) { |
|
| 420 | + $GLOBALS['page']['entetes'] = []; |
|
| 421 | + } |
|
| 422 | + $GLOBALS['page']['entetes'] = |
|
| 423 | + array_merge($GLOBALS['page']['entetes'], $page['entetes']); |
|
| 424 | + } |
|
| 425 | + } |
|
| 426 | + // _pipelines au pluriel array('nom_pipeline' => $args...) avec une syntaxe permettant plusieurs pipelines |
|
| 427 | + if ( |
|
| 428 | + isset($page['contexte']['_pipelines']) |
|
| 429 | + and is_array($page['contexte']['_pipelines']) |
|
| 430 | + and count($page['contexte']['_pipelines']) |
|
| 431 | + ) { |
|
| 432 | + foreach ($page['contexte']['_pipelines'] as $pipe => $args) { |
|
| 433 | + $args['contexte'] = $page['contexte']; |
|
| 434 | + unset($args['contexte']['_pipelines']); // par precaution, meme si le risque de boucle infinie est a priori nul |
|
| 435 | + $texte = pipeline( |
|
| 436 | + $pipe, |
|
| 437 | + [ |
|
| 438 | + 'data' => $texte, |
|
| 439 | + 'args' => $args |
|
| 440 | + ] |
|
| 441 | + ); |
|
| 442 | + } |
|
| 443 | + } |
|
| 444 | + } |
|
| 445 | + |
|
| 446 | + if (defined('_VAR_MODE') and _VAR_MODE == 'debug') { |
|
| 447 | + // compatibilite : avant on donnait le numero de ligne ou rien. |
|
| 448 | + $ligne = intval($contexte_compil[3] ?? $contexte_compil); |
|
| 449 | + $GLOBALS['debug_objets']['resultat'][$ligne] = $texte; |
|
| 450 | + } |
|
| 451 | + if ($echo) { |
|
| 452 | + echo $texte; |
|
| 453 | + } else { |
|
| 454 | + return $texte; |
|
| 455 | + } |
|
| 456 | 456 | } |
| 457 | 457 | |
| 458 | 458 | function message_page_indisponible($page, $contexte) { |
| 459 | - static $deja = false; |
|
| 460 | - if ($deja) { |
|
| 461 | - return 'erreur'; |
|
| 462 | - } |
|
| 463 | - $codes = [ |
|
| 464 | - '404' => '404 Not Found', |
|
| 465 | - '503' => '503 Service Unavailable', |
|
| 466 | - ]; |
|
| 467 | - |
|
| 468 | - $contexte['status'] = ($page !== false) ? '404' : '503'; |
|
| 469 | - $contexte['code'] = $codes[$contexte['status']]; |
|
| 470 | - $contexte['fond'] = '404'; // gere les 2 erreurs |
|
| 471 | - if (!isset($contexte['lang'])) { |
|
| 472 | - include_spip('inc/lang'); |
|
| 473 | - $contexte['lang'] = $GLOBALS['spip_lang']; |
|
| 474 | - } |
|
| 475 | - |
|
| 476 | - $deja = true; |
|
| 477 | - // passer aux plugins qui peuvent decider d'une page d'erreur plus pertinent |
|
| 478 | - // ex restriction d'acces => 401 |
|
| 479 | - $contexte = pipeline('page_indisponible', $contexte); |
|
| 480 | - |
|
| 481 | - // produire la page d'erreur |
|
| 482 | - $page = inclure_page($contexte['fond'], $contexte); |
|
| 483 | - if (!$page) { |
|
| 484 | - $page = inclure_page('404', $contexte); |
|
| 485 | - } |
|
| 486 | - $page['status'] = $contexte['status']; |
|
| 487 | - |
|
| 488 | - return $page; |
|
| 459 | + static $deja = false; |
|
| 460 | + if ($deja) { |
|
| 461 | + return 'erreur'; |
|
| 462 | + } |
|
| 463 | + $codes = [ |
|
| 464 | + '404' => '404 Not Found', |
|
| 465 | + '503' => '503 Service Unavailable', |
|
| 466 | + ]; |
|
| 467 | + |
|
| 468 | + $contexte['status'] = ($page !== false) ? '404' : '503'; |
|
| 469 | + $contexte['code'] = $codes[$contexte['status']]; |
|
| 470 | + $contexte['fond'] = '404'; // gere les 2 erreurs |
|
| 471 | + if (!isset($contexte['lang'])) { |
|
| 472 | + include_spip('inc/lang'); |
|
| 473 | + $contexte['lang'] = $GLOBALS['spip_lang']; |
|
| 474 | + } |
|
| 475 | + |
|
| 476 | + $deja = true; |
|
| 477 | + // passer aux plugins qui peuvent decider d'une page d'erreur plus pertinent |
|
| 478 | + // ex restriction d'acces => 401 |
|
| 479 | + $contexte = pipeline('page_indisponible', $contexte); |
|
| 480 | + |
|
| 481 | + // produire la page d'erreur |
|
| 482 | + $page = inclure_page($contexte['fond'], $contexte); |
|
| 483 | + if (!$page) { |
|
| 484 | + $page = inclure_page('404', $contexte); |
|
| 485 | + } |
|
| 486 | + $page['status'] = $contexte['status']; |
|
| 487 | + |
|
| 488 | + return $page; |
|
| 489 | 489 | } |
| 490 | 490 | |
| 491 | 491 | /** |
@@ -497,44 +497,44 @@ discard block |
||
| 497 | 497 | * @return mixed |
| 498 | 498 | */ |
| 499 | 499 | function arguments_balise_dyn_depuis_modele($arg, $operation = 'set') { |
| 500 | - static $balise_dyn_appellee_par_modele = null; |
|
| 501 | - switch ($operation) { |
|
| 502 | - case 'read': |
|
| 503 | - return $balise_dyn_appellee_par_modele; |
|
| 504 | - case 'reset': |
|
| 505 | - $balise_dyn_appellee_par_modele = null; |
|
| 506 | - return null; |
|
| 507 | - case 'set': |
|
| 508 | - default: |
|
| 509 | - $balise_dyn_appellee_par_modele = $arg; |
|
| 510 | - return $arg; |
|
| 511 | - } |
|
| 500 | + static $balise_dyn_appellee_par_modele = null; |
|
| 501 | + switch ($operation) { |
|
| 502 | + case 'read': |
|
| 503 | + return $balise_dyn_appellee_par_modele; |
|
| 504 | + case 'reset': |
|
| 505 | + $balise_dyn_appellee_par_modele = null; |
|
| 506 | + return null; |
|
| 507 | + case 'set': |
|
| 508 | + default: |
|
| 509 | + $balise_dyn_appellee_par_modele = $arg; |
|
| 510 | + return $arg; |
|
| 511 | + } |
|
| 512 | 512 | } |
| 513 | 513 | |
| 514 | 514 | // temporairement ici : a mettre dans le futur inc/modeles |
| 515 | 515 | // creer_contexte_de_modele('left', 'autostart=true', ...) renvoie un array() |
| 516 | 516 | function creer_contexte_de_modele($args) { |
| 517 | - $contexte = []; |
|
| 518 | - foreach ($args as $var => $val) { |
|
| 519 | - if (is_int($var)) { // argument pas formate |
|
| 520 | - if (in_array($val, ['left', 'right', 'center'])) { |
|
| 521 | - $var = 'align'; |
|
| 522 | - $contexte[$var] = $val; |
|
| 523 | - } else { |
|
| 524 | - $args = explode('=', $val); |
|
| 525 | - if (count($args) >= 2) { // Flashvars=arg1=machin&arg2=truc genere plus de deux args |
|
| 526 | - $contexte[trim($args[0])] = substr($val, strlen($args[0]) + 1); |
|
| 527 | - } else // notation abregee |
|
| 528 | - { |
|
| 529 | - $contexte[trim($val)] = trim($val); |
|
| 530 | - } |
|
| 531 | - } |
|
| 532 | - } else { |
|
| 533 | - $contexte[$var] = $val; |
|
| 534 | - } |
|
| 535 | - } |
|
| 536 | - |
|
| 537 | - return $contexte; |
|
| 517 | + $contexte = []; |
|
| 518 | + foreach ($args as $var => $val) { |
|
| 519 | + if (is_int($var)) { // argument pas formate |
|
| 520 | + if (in_array($val, ['left', 'right', 'center'])) { |
|
| 521 | + $var = 'align'; |
|
| 522 | + $contexte[$var] = $val; |
|
| 523 | + } else { |
|
| 524 | + $args = explode('=', $val); |
|
| 525 | + if (count($args) >= 2) { // Flashvars=arg1=machin&arg2=truc genere plus de deux args |
|
| 526 | + $contexte[trim($args[0])] = substr($val, strlen($args[0]) + 1); |
|
| 527 | + } else // notation abregee |
|
| 528 | + { |
|
| 529 | + $contexte[trim($val)] = trim($val); |
|
| 530 | + } |
|
| 531 | + } |
|
| 532 | + } else { |
|
| 533 | + $contexte[$var] = $val; |
|
| 534 | + } |
|
| 535 | + } |
|
| 536 | + |
|
| 537 | + return $contexte; |
|
| 538 | 538 | } |
| 539 | 539 | |
| 540 | 540 | /** |
@@ -549,43 +549,43 @@ discard block |
||
| 549 | 549 | * @return string |
| 550 | 550 | */ |
| 551 | 551 | function styliser_modele($modele, $id, $contexte = null) { |
| 552 | - static $styliseurs = null; |
|
| 553 | - if (is_null($styliseurs)) { |
|
| 554 | - $tables_objet = lister_tables_objets_sql(); |
|
| 555 | - foreach ($tables_objet as $table => $desc) { |
|
| 556 | - if ( |
|
| 557 | - isset($desc['modeles']) and $desc['modeles'] |
|
| 558 | - and isset($desc['modeles_styliser']) and $desc['modeles_styliser'] |
|
| 559 | - and function_exists($desc['modeles_styliser']) |
|
| 560 | - ) { |
|
| 561 | - $primary = id_table_objet($table); |
|
| 562 | - foreach ($desc['modeles'] as $m) { |
|
| 563 | - $styliseurs[$m] = ['primary' => $primary, 'callback' => $desc['modeles_styliser']]; |
|
| 564 | - } |
|
| 565 | - } |
|
| 566 | - } |
|
| 567 | - } |
|
| 568 | - |
|
| 569 | - if (isset($styliseurs[$modele])) { |
|
| 570 | - $styliseur = $styliseurs[$modele]['callback']; |
|
| 571 | - $primary = $styliseurs[$modele]['primary']; |
|
| 572 | - if (is_null($id) and $contexte) { |
|
| 573 | - if (isset($contexte['id'])) { |
|
| 574 | - $id = $contexte['id']; |
|
| 575 | - } elseif (isset($contexte[$primary])) { |
|
| 576 | - $id = $contexte[$primary]; |
|
| 577 | - } |
|
| 578 | - } |
|
| 579 | - if (is_null($id)) { |
|
| 580 | - $msg = "modeles/$modele : " . _T('zbug_parametres_inclus_incorrects', ['param' => "id/$primary"]); |
|
| 581 | - erreur_squelette($msg); |
|
| 582 | - // on passe id=0 au routeur pour tomber sur le modele par defaut et eviter une seconde erreur sur un modele inexistant |
|
| 583 | - $id = 0; |
|
| 584 | - } |
|
| 585 | - $modele = $styliseur($modele, $id); |
|
| 586 | - } |
|
| 587 | - |
|
| 588 | - return $modele; |
|
| 552 | + static $styliseurs = null; |
|
| 553 | + if (is_null($styliseurs)) { |
|
| 554 | + $tables_objet = lister_tables_objets_sql(); |
|
| 555 | + foreach ($tables_objet as $table => $desc) { |
|
| 556 | + if ( |
|
| 557 | + isset($desc['modeles']) and $desc['modeles'] |
|
| 558 | + and isset($desc['modeles_styliser']) and $desc['modeles_styliser'] |
|
| 559 | + and function_exists($desc['modeles_styliser']) |
|
| 560 | + ) { |
|
| 561 | + $primary = id_table_objet($table); |
|
| 562 | + foreach ($desc['modeles'] as $m) { |
|
| 563 | + $styliseurs[$m] = ['primary' => $primary, 'callback' => $desc['modeles_styliser']]; |
|
| 564 | + } |
|
| 565 | + } |
|
| 566 | + } |
|
| 567 | + } |
|
| 568 | + |
|
| 569 | + if (isset($styliseurs[$modele])) { |
|
| 570 | + $styliseur = $styliseurs[$modele]['callback']; |
|
| 571 | + $primary = $styliseurs[$modele]['primary']; |
|
| 572 | + if (is_null($id) and $contexte) { |
|
| 573 | + if (isset($contexte['id'])) { |
|
| 574 | + $id = $contexte['id']; |
|
| 575 | + } elseif (isset($contexte[$primary])) { |
|
| 576 | + $id = $contexte[$primary]; |
|
| 577 | + } |
|
| 578 | + } |
|
| 579 | + if (is_null($id)) { |
|
| 580 | + $msg = "modeles/$modele : " . _T('zbug_parametres_inclus_incorrects', ['param' => "id/$primary"]); |
|
| 581 | + erreur_squelette($msg); |
|
| 582 | + // on passe id=0 au routeur pour tomber sur le modele par defaut et eviter une seconde erreur sur un modele inexistant |
|
| 583 | + $id = 0; |
|
| 584 | + } |
|
| 585 | + $modele = $styliseur($modele, $id); |
|
| 586 | + } |
|
| 587 | + |
|
| 588 | + return $modele; |
|
| 589 | 589 | } |
| 590 | 590 | |
| 591 | 591 | /** |
@@ -602,102 +602,102 @@ discard block |
||
| 602 | 602 | */ |
| 603 | 603 | function inclure_modele($type, $id, $params, $lien, string $connect = '', $env = []) { |
| 604 | 604 | |
| 605 | - static $compteur; |
|
| 606 | - if (++$compteur > 10) { |
|
| 607 | - return ''; |
|
| 608 | - } # ne pas boucler indefiniment |
|
| 609 | - |
|
| 610 | - $type = strtolower($type); |
|
| 611 | - $type = styliser_modele($type, $id); |
|
| 612 | - |
|
| 613 | - $fond = $class = ''; |
|
| 614 | - |
|
| 615 | - $params = array_filter(explode('|', $params)); |
|
| 616 | - if ($params) { |
|
| 617 | - $soustype = current($params); |
|
| 618 | - $soustype = strtolower(trim($soustype)); |
|
| 619 | - if (in_array($soustype, ['left', 'right', 'center', 'ajax'])) { |
|
| 620 | - $soustype = next($params); |
|
| 621 | - $soustype = strtolower($soustype); |
|
| 622 | - } |
|
| 623 | - |
|
| 624 | - if (preg_match(',^[a-z0-9_]+$,', $soustype)) { |
|
| 625 | - if (!trouve_modele($fond = ($type . '_' . $soustype))) { |
|
| 626 | - $fond = ''; |
|
| 627 | - $class = $soustype; |
|
| 628 | - } |
|
| 629 | - // enlever le sous type des params |
|
| 630 | - $params = array_diff($params, [$soustype]); |
|
| 631 | - } |
|
| 632 | - } |
|
| 633 | - |
|
| 634 | - // Si ca marche pas en precisant le sous-type, prendre le type |
|
| 635 | - if (!$fond and !trouve_modele($fond = $type)) { |
|
| 636 | - spip_log("Modele $type introuvable", _LOG_INFO_IMPORTANTE); |
|
| 637 | - |
|
| 638 | - return false; |
|
| 639 | - } |
|
| 640 | - $fond = 'modeles/' . $fond; |
|
| 641 | - // Creer le contexte |
|
| 642 | - $contexte = $env; |
|
| 643 | - $contexte['dir_racine'] = _DIR_RACINE; # eviter de mixer un cache racine et un cache ecrire (meme si pour l'instant les modeles ne sont pas caches, le resultat etant different il faut que le contexte en tienne compte |
|
| 644 | - |
|
| 645 | - // Le numero du modele est mis dans l'environnement |
|
| 646 | - // d'une part sous l'identifiant "id" |
|
| 647 | - // et d'autre part sous l'identifiant de la cle primaire |
|
| 648 | - // par la fonction id_table_objet, |
|
| 649 | - // (<article1> =>> article =>> id_article =>> id_article=1) |
|
| 650 | - $_id = id_table_objet($type); |
|
| 651 | - $contexte['id'] = $contexte[$_id] = $id; |
|
| 652 | - |
|
| 653 | - if (isset($class)) { |
|
| 654 | - $contexte['class'] = $class; |
|
| 655 | - } |
|
| 656 | - |
|
| 657 | - // Si un lien a ete passe en parametre, ex: [<modele1>->url] ou [<modele1|title_du_lien{hreflang}->url] |
|
| 658 | - if ($lien) { |
|
| 659 | - # un eventuel guillemet (") sera reechappe par #ENV |
|
| 660 | - $contexte['lien'] = str_replace('"', '"', $lien['href']); |
|
| 661 | - $contexte['lien_class'] = $lien['class']; |
|
| 662 | - $contexte['lien_mime'] = $lien['mime']; |
|
| 663 | - $contexte['lien_title'] = $lien['title']; |
|
| 664 | - $contexte['lien_hreflang'] = $lien['hreflang']; |
|
| 665 | - } |
|
| 666 | - |
|
| 667 | - // Traiter les parametres |
|
| 668 | - // par exemple : <img1|center>, <emb12|autostart=true> ou <doc1|lang=en> |
|
| 669 | - $arg_list = creer_contexte_de_modele($params); |
|
| 670 | - $contexte['args'] = $arg_list; // on passe la liste des arguments du modeles dans une variable args |
|
| 671 | - $contexte = array_merge($contexte, $arg_list); |
|
| 672 | - |
|
| 673 | - // Appliquer le modele avec le contexte |
|
| 674 | - $retour = recuperer_fond($fond, $contexte, [], $connect); |
|
| 675 | - |
|
| 676 | - // Regarder si le modele tient compte des liens (il *doit* alors indiquer |
|
| 677 | - // spip_lien_ok dans les classes de son conteneur de premier niveau ; |
|
| 678 | - // sinon, s'il y a un lien, on l'ajoute classiquement |
|
| 679 | - if ( |
|
| 680 | - strstr( |
|
| 681 | - ' ' . ($classes = extraire_attribut($retour, 'class')) . ' ', |
|
| 682 | - 'spip_lien_ok' |
|
| 683 | - ) |
|
| 684 | - ) { |
|
| 685 | - $retour = inserer_attribut( |
|
| 686 | - $retour, |
|
| 687 | - 'class', |
|
| 688 | - trim(str_replace(' spip_lien_ok ', ' ', " $classes ")) |
|
| 689 | - ); |
|
| 690 | - } else { |
|
| 691 | - if ($lien) { |
|
| 692 | - $retour = '<a href="' . $lien['href'] . '" class="' . $lien['class'] . '">' . $retour . '</a>'; |
|
| 693 | - } |
|
| 694 | - } |
|
| 695 | - |
|
| 696 | - $compteur--; |
|
| 697 | - |
|
| 698 | - return (isset($arg_list['ajax']) and $arg_list['ajax'] == 'ajax') |
|
| 699 | - ? encoder_contexte_ajax($contexte, '', $retour) |
|
| 700 | - : $retour; |
|
| 605 | + static $compteur; |
|
| 606 | + if (++$compteur > 10) { |
|
| 607 | + return ''; |
|
| 608 | + } # ne pas boucler indefiniment |
|
| 609 | + |
|
| 610 | + $type = strtolower($type); |
|
| 611 | + $type = styliser_modele($type, $id); |
|
| 612 | + |
|
| 613 | + $fond = $class = ''; |
|
| 614 | + |
|
| 615 | + $params = array_filter(explode('|', $params)); |
|
| 616 | + if ($params) { |
|
| 617 | + $soustype = current($params); |
|
| 618 | + $soustype = strtolower(trim($soustype)); |
|
| 619 | + if (in_array($soustype, ['left', 'right', 'center', 'ajax'])) { |
|
| 620 | + $soustype = next($params); |
|
| 621 | + $soustype = strtolower($soustype); |
|
| 622 | + } |
|
| 623 | + |
|
| 624 | + if (preg_match(',^[a-z0-9_]+$,', $soustype)) { |
|
| 625 | + if (!trouve_modele($fond = ($type . '_' . $soustype))) { |
|
| 626 | + $fond = ''; |
|
| 627 | + $class = $soustype; |
|
| 628 | + } |
|
| 629 | + // enlever le sous type des params |
|
| 630 | + $params = array_diff($params, [$soustype]); |
|
| 631 | + } |
|
| 632 | + } |
|
| 633 | + |
|
| 634 | + // Si ca marche pas en precisant le sous-type, prendre le type |
|
| 635 | + if (!$fond and !trouve_modele($fond = $type)) { |
|
| 636 | + spip_log("Modele $type introuvable", _LOG_INFO_IMPORTANTE); |
|
| 637 | + |
|
| 638 | + return false; |
|
| 639 | + } |
|
| 640 | + $fond = 'modeles/' . $fond; |
|
| 641 | + // Creer le contexte |
|
| 642 | + $contexte = $env; |
|
| 643 | + $contexte['dir_racine'] = _DIR_RACINE; # eviter de mixer un cache racine et un cache ecrire (meme si pour l'instant les modeles ne sont pas caches, le resultat etant different il faut que le contexte en tienne compte |
|
| 644 | + |
|
| 645 | + // Le numero du modele est mis dans l'environnement |
|
| 646 | + // d'une part sous l'identifiant "id" |
|
| 647 | + // et d'autre part sous l'identifiant de la cle primaire |
|
| 648 | + // par la fonction id_table_objet, |
|
| 649 | + // (<article1> =>> article =>> id_article =>> id_article=1) |
|
| 650 | + $_id = id_table_objet($type); |
|
| 651 | + $contexte['id'] = $contexte[$_id] = $id; |
|
| 652 | + |
|
| 653 | + if (isset($class)) { |
|
| 654 | + $contexte['class'] = $class; |
|
| 655 | + } |
|
| 656 | + |
|
| 657 | + // Si un lien a ete passe en parametre, ex: [<modele1>->url] ou [<modele1|title_du_lien{hreflang}->url] |
|
| 658 | + if ($lien) { |
|
| 659 | + # un eventuel guillemet (") sera reechappe par #ENV |
|
| 660 | + $contexte['lien'] = str_replace('"', '"', $lien['href']); |
|
| 661 | + $contexte['lien_class'] = $lien['class']; |
|
| 662 | + $contexte['lien_mime'] = $lien['mime']; |
|
| 663 | + $contexte['lien_title'] = $lien['title']; |
|
| 664 | + $contexte['lien_hreflang'] = $lien['hreflang']; |
|
| 665 | + } |
|
| 666 | + |
|
| 667 | + // Traiter les parametres |
|
| 668 | + // par exemple : <img1|center>, <emb12|autostart=true> ou <doc1|lang=en> |
|
| 669 | + $arg_list = creer_contexte_de_modele($params); |
|
| 670 | + $contexte['args'] = $arg_list; // on passe la liste des arguments du modeles dans une variable args |
|
| 671 | + $contexte = array_merge($contexte, $arg_list); |
|
| 672 | + |
|
| 673 | + // Appliquer le modele avec le contexte |
|
| 674 | + $retour = recuperer_fond($fond, $contexte, [], $connect); |
|
| 675 | + |
|
| 676 | + // Regarder si le modele tient compte des liens (il *doit* alors indiquer |
|
| 677 | + // spip_lien_ok dans les classes de son conteneur de premier niveau ; |
|
| 678 | + // sinon, s'il y a un lien, on l'ajoute classiquement |
|
| 679 | + if ( |
|
| 680 | + strstr( |
|
| 681 | + ' ' . ($classes = extraire_attribut($retour, 'class')) . ' ', |
|
| 682 | + 'spip_lien_ok' |
|
| 683 | + ) |
|
| 684 | + ) { |
|
| 685 | + $retour = inserer_attribut( |
|
| 686 | + $retour, |
|
| 687 | + 'class', |
|
| 688 | + trim(str_replace(' spip_lien_ok ', ' ', " $classes ")) |
|
| 689 | + ); |
|
| 690 | + } else { |
|
| 691 | + if ($lien) { |
|
| 692 | + $retour = '<a href="' . $lien['href'] . '" class="' . $lien['class'] . '">' . $retour . '</a>'; |
|
| 693 | + } |
|
| 694 | + } |
|
| 695 | + |
|
| 696 | + $compteur--; |
|
| 697 | + |
|
| 698 | + return (isset($arg_list['ajax']) and $arg_list['ajax'] == 'ajax') |
|
| 699 | + ? encoder_contexte_ajax($contexte, '', $retour) |
|
| 700 | + : $retour; |
|
| 701 | 701 | } |
| 702 | 702 | |
| 703 | 703 | // Un inclure_page qui marche aussi pour l'espace prive |
@@ -706,105 +706,105 @@ discard block |
||
| 706 | 706 | // recuperer_fond($fond,$contexte,array('raw'=>true)) |
| 707 | 707 | function evaluer_fond($fond, $contexte = [], string $connect = '') { |
| 708 | 708 | |
| 709 | - $page = inclure_page($fond, $contexte, $connect); |
|
| 710 | - |
|
| 711 | - if (!$page) { |
|
| 712 | - return $page; |
|
| 713 | - } |
|
| 714 | - // eval $page et affecte $res |
|
| 715 | - include _ROOT_RESTREINT . 'public/evaluer_page.php'; |
|
| 716 | - |
|
| 717 | - // Lever un drapeau (global) si le fond utilise #SESSION |
|
| 718 | - // a destination de public/parametrer |
|
| 719 | - // pour remonter vers les inclusions appelantes |
|
| 720 | - // il faut bien lever ce drapeau apres avoir evalue le fond |
|
| 721 | - // pour ne pas faire descendre le flag vers les inclusions appelees |
|
| 722 | - if ( |
|
| 723 | - isset($page['invalideurs']) |
|
| 724 | - and isset($page['invalideurs']['session']) |
|
| 725 | - ) { |
|
| 726 | - $GLOBALS['cache_utilise_session'] = $page['invalideurs']['session']; |
|
| 727 | - } |
|
| 728 | - |
|
| 729 | - return $page; |
|
| 709 | + $page = inclure_page($fond, $contexte, $connect); |
|
| 710 | + |
|
| 711 | + if (!$page) { |
|
| 712 | + return $page; |
|
| 713 | + } |
|
| 714 | + // eval $page et affecte $res |
|
| 715 | + include _ROOT_RESTREINT . 'public/evaluer_page.php'; |
|
| 716 | + |
|
| 717 | + // Lever un drapeau (global) si le fond utilise #SESSION |
|
| 718 | + // a destination de public/parametrer |
|
| 719 | + // pour remonter vers les inclusions appelantes |
|
| 720 | + // il faut bien lever ce drapeau apres avoir evalue le fond |
|
| 721 | + // pour ne pas faire descendre le flag vers les inclusions appelees |
|
| 722 | + if ( |
|
| 723 | + isset($page['invalideurs']) |
|
| 724 | + and isset($page['invalideurs']['session']) |
|
| 725 | + ) { |
|
| 726 | + $GLOBALS['cache_utilise_session'] = $page['invalideurs']['session']; |
|
| 727 | + } |
|
| 728 | + |
|
| 729 | + return $page; |
|
| 730 | 730 | } |
| 731 | 731 | |
| 732 | 732 | |
| 733 | 733 | function page_base_href(&$texte) { |
| 734 | - static $set_html_base = null; |
|
| 735 | - if (is_null($set_html_base)) { |
|
| 736 | - if (!defined('_SET_HTML_BASE')) { |
|
| 737 | - // si la profondeur est superieure a 1 |
|
| 738 | - // est que ce n'est pas une url page ni une url action |
|
| 739 | - // activer par defaut |
|
| 740 | - $set_html_base = (( |
|
| 741 | - $GLOBALS['profondeur_url'] >= (_DIR_RESTREINT ? 1 : 2) |
|
| 742 | - and _request(_SPIP_PAGE) !== 'login' |
|
| 743 | - and !_request('action')) ? true : false); |
|
| 744 | - } else { |
|
| 745 | - $set_html_base = _SET_HTML_BASE; |
|
| 746 | - } |
|
| 747 | - } |
|
| 748 | - |
|
| 749 | - if ( |
|
| 750 | - $set_html_base |
|
| 751 | - and isset($GLOBALS['html']) and $GLOBALS['html'] |
|
| 752 | - and $GLOBALS['profondeur_url'] > 0 |
|
| 753 | - and ($poshead = strpos($texte, '</head>')) !== false |
|
| 754 | - ) { |
|
| 755 | - $head = substr($texte, 0, $poshead); |
|
| 756 | - $insert = false; |
|
| 757 | - $href_base = false; |
|
| 758 | - if (strpos($head, '<base') === false) { |
|
| 759 | - $insert = true; |
|
| 760 | - } else { |
|
| 761 | - // si aucun <base ...> n'a de href il faut en inserer un |
|
| 762 | - // sinon juste re-ecrire les ancres si besoin |
|
| 763 | - $insert = true; |
|
| 764 | - include_spip('inc/filtres'); |
|
| 765 | - $bases = extraire_balises($head, 'base'); |
|
| 766 | - foreach ($bases as $base) { |
|
| 767 | - if ($href_base = extraire_attribut($base, 'href')) { |
|
| 768 | - $insert = false; |
|
| 769 | - break; |
|
| 770 | - } |
|
| 771 | - } |
|
| 772 | - } |
|
| 773 | - |
|
| 774 | - if ($insert) { |
|
| 775 | - include_spip('inc/filtres_mini'); |
|
| 776 | - // ajouter un base qui reglera tous les liens relatifs |
|
| 777 | - $href_base = url_absolue('./'); |
|
| 778 | - $base = "\n<base href=\"$href_base\" />"; |
|
| 779 | - if (($pos = strpos($head, '<head>')) !== false) { |
|
| 780 | - $head = substr_replace($head, $base, $pos + 6, 0); |
|
| 781 | - } elseif (preg_match(',<head[^>]*>,i', $head, $r)) { |
|
| 782 | - $head = str_replace($r[0], $r[0] . $base, $head); |
|
| 783 | - } |
|
| 784 | - $texte = $head . substr($texte, $poshead); |
|
| 785 | - } |
|
| 786 | - if ($href_base) { |
|
| 787 | - // gerer les ancres |
|
| 788 | - $base = $_SERVER['REQUEST_URI']; |
|
| 789 | - // pas de guillemets ni < dans l'URL qu'on insere dans le HTML |
|
| 790 | - if (strpos($base, "'") or strpos($base, '"') or strpos($base, '<')) { |
|
| 791 | - $base = str_replace(["'",'"','<'], ['%27','%22','%3C'], $base); |
|
| 792 | - } |
|
| 793 | - if (strpos($texte, "href='#") !== false) { |
|
| 794 | - $texte = str_replace("href='#", "href='$base#", $texte); |
|
| 795 | - } |
|
| 796 | - if (strpos($texte, 'href="#') !== false) { |
|
| 797 | - $texte = str_replace('href="#', "href=\"$base#", $texte); |
|
| 798 | - } |
|
| 799 | - } |
|
| 800 | - } |
|
| 734 | + static $set_html_base = null; |
|
| 735 | + if (is_null($set_html_base)) { |
|
| 736 | + if (!defined('_SET_HTML_BASE')) { |
|
| 737 | + // si la profondeur est superieure a 1 |
|
| 738 | + // est que ce n'est pas une url page ni une url action |
|
| 739 | + // activer par defaut |
|
| 740 | + $set_html_base = (( |
|
| 741 | + $GLOBALS['profondeur_url'] >= (_DIR_RESTREINT ? 1 : 2) |
|
| 742 | + and _request(_SPIP_PAGE) !== 'login' |
|
| 743 | + and !_request('action')) ? true : false); |
|
| 744 | + } else { |
|
| 745 | + $set_html_base = _SET_HTML_BASE; |
|
| 746 | + } |
|
| 747 | + } |
|
| 748 | + |
|
| 749 | + if ( |
|
| 750 | + $set_html_base |
|
| 751 | + and isset($GLOBALS['html']) and $GLOBALS['html'] |
|
| 752 | + and $GLOBALS['profondeur_url'] > 0 |
|
| 753 | + and ($poshead = strpos($texte, '</head>')) !== false |
|
| 754 | + ) { |
|
| 755 | + $head = substr($texte, 0, $poshead); |
|
| 756 | + $insert = false; |
|
| 757 | + $href_base = false; |
|
| 758 | + if (strpos($head, '<base') === false) { |
|
| 759 | + $insert = true; |
|
| 760 | + } else { |
|
| 761 | + // si aucun <base ...> n'a de href il faut en inserer un |
|
| 762 | + // sinon juste re-ecrire les ancres si besoin |
|
| 763 | + $insert = true; |
|
| 764 | + include_spip('inc/filtres'); |
|
| 765 | + $bases = extraire_balises($head, 'base'); |
|
| 766 | + foreach ($bases as $base) { |
|
| 767 | + if ($href_base = extraire_attribut($base, 'href')) { |
|
| 768 | + $insert = false; |
|
| 769 | + break; |
|
| 770 | + } |
|
| 771 | + } |
|
| 772 | + } |
|
| 773 | + |
|
| 774 | + if ($insert) { |
|
| 775 | + include_spip('inc/filtres_mini'); |
|
| 776 | + // ajouter un base qui reglera tous les liens relatifs |
|
| 777 | + $href_base = url_absolue('./'); |
|
| 778 | + $base = "\n<base href=\"$href_base\" />"; |
|
| 779 | + if (($pos = strpos($head, '<head>')) !== false) { |
|
| 780 | + $head = substr_replace($head, $base, $pos + 6, 0); |
|
| 781 | + } elseif (preg_match(',<head[^>]*>,i', $head, $r)) { |
|
| 782 | + $head = str_replace($r[0], $r[0] . $base, $head); |
|
| 783 | + } |
|
| 784 | + $texte = $head . substr($texte, $poshead); |
|
| 785 | + } |
|
| 786 | + if ($href_base) { |
|
| 787 | + // gerer les ancres |
|
| 788 | + $base = $_SERVER['REQUEST_URI']; |
|
| 789 | + // pas de guillemets ni < dans l'URL qu'on insere dans le HTML |
|
| 790 | + if (strpos($base, "'") or strpos($base, '"') or strpos($base, '<')) { |
|
| 791 | + $base = str_replace(["'",'"','<'], ['%27','%22','%3C'], $base); |
|
| 792 | + } |
|
| 793 | + if (strpos($texte, "href='#") !== false) { |
|
| 794 | + $texte = str_replace("href='#", "href='$base#", $texte); |
|
| 795 | + } |
|
| 796 | + if (strpos($texte, 'href="#') !== false) { |
|
| 797 | + $texte = str_replace('href="#', "href=\"$base#", $texte); |
|
| 798 | + } |
|
| 799 | + } |
|
| 800 | + } |
|
| 801 | 801 | } |
| 802 | 802 | |
| 803 | 803 | |
| 804 | 804 | // Envoyer les entetes, en retenant ceux qui sont a usage interne |
| 805 | 805 | // et demarrent par X-Spip-... |
| 806 | 806 | function envoyer_entetes($entetes) { |
| 807 | - foreach ($entetes as $k => $v) { # if (strncmp($k, 'X-Spip-', 7)) |
|
| 808 | - @header(strlen($v) ? "$k: $v" : $k); |
|
| 809 | - } |
|
| 807 | + foreach ($entetes as $k => $v) { # if (strncmp($k, 'X-Spip-', 7)) |
|
| 808 | + @header(strlen($v) ? "$k: $v" : $k); |
|
| 809 | + } |
|
| 810 | 810 | } |
@@ -38,7 +38,7 @@ discard block |
||
| 38 | 38 | |
| 39 | 39 | $GLOBALS['contexte'] = calculer_contexte(); |
| 40 | 40 | $page = ['contexte_implicite' => calculer_contexte_implicite()]; |
| 41 | - $page['contexte_implicite']['cache'] = $fond . preg_replace( |
|
| 41 | + $page['contexte_implicite']['cache'] = $fond.preg_replace( |
|
| 42 | 42 | ',\.[a-zA-Z0-9]*$,', |
| 43 | 43 | '', |
| 44 | 44 | preg_replace('/[?].*$/', '', $GLOBALS['REQUEST_URI']) |
@@ -139,7 +139,7 @@ discard block |
||
| 139 | 139 | if ($page === '') { |
| 140 | 140 | $erreur = _T( |
| 141 | 141 | 'info_erreur_squelette2', |
| 142 | - ['fichier' => spip_htmlspecialchars($fond) . '.' . _EXTENSION_SQUELETTES] |
|
| 142 | + ['fichier' => spip_htmlspecialchars($fond).'.'._EXTENSION_SQUELETTES] |
|
| 143 | 143 | ); |
| 144 | 144 | erreur_squelette($erreur); |
| 145 | 145 | // eviter des erreurs strictes ensuite sur $page['cle'] en PHP >= 5.4 |
@@ -182,7 +182,7 @@ discard block |
||
| 182 | 182 | and !isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) |
| 183 | 183 | and !isset($page['entetes']['Last-Modified']) |
| 184 | 184 | ) { |
| 185 | - $page['entetes']['Last-Modified'] = gmdate('D, d M Y H:i:s', $lastmodified) . ' GMT'; |
|
| 185 | + $page['entetes']['Last-Modified'] = gmdate('D, d M Y H:i:s', $lastmodified).' GMT'; |
|
| 186 | 186 | } |
| 187 | 187 | |
| 188 | 188 | // fermer la connexion apres les headers si requete HEAD |
@@ -245,7 +245,7 @@ discard block |
||
| 245 | 245 | 'spip_version_code' => $GLOBALS['spip_version_code'], |
| 246 | 246 | ]; |
| 247 | 247 | if (isset($_SERVER['HTTP_X_FORWARDED_HOST'])) { |
| 248 | - $contexte_implicite['host'] .= '|' . $_SERVER['HTTP_X_FORWARDED_HOST']; |
|
| 248 | + $contexte_implicite['host'] .= '|'.$_SERVER['HTTP_X_FORWARDED_HOST']; |
|
| 249 | 249 | } |
| 250 | 250 | |
| 251 | 251 | return $contexte_implicite; |
@@ -577,7 +577,7 @@ discard block |
||
| 577 | 577 | } |
| 578 | 578 | } |
| 579 | 579 | if (is_null($id)) { |
| 580 | - $msg = "modeles/$modele : " . _T('zbug_parametres_inclus_incorrects', ['param' => "id/$primary"]); |
|
| 580 | + $msg = "modeles/$modele : "._T('zbug_parametres_inclus_incorrects', ['param' => "id/$primary"]); |
|
| 581 | 581 | erreur_squelette($msg); |
| 582 | 582 | // on passe id=0 au routeur pour tomber sur le modele par defaut et eviter une seconde erreur sur un modele inexistant |
| 583 | 583 | $id = 0; |
@@ -622,7 +622,7 @@ discard block |
||
| 622 | 622 | } |
| 623 | 623 | |
| 624 | 624 | if (preg_match(',^[a-z0-9_]+$,', $soustype)) { |
| 625 | - if (!trouve_modele($fond = ($type . '_' . $soustype))) { |
|
| 625 | + if (!trouve_modele($fond = ($type.'_'.$soustype))) { |
|
| 626 | 626 | $fond = ''; |
| 627 | 627 | $class = $soustype; |
| 628 | 628 | } |
@@ -637,7 +637,7 @@ discard block |
||
| 637 | 637 | |
| 638 | 638 | return false; |
| 639 | 639 | } |
| 640 | - $fond = 'modeles/' . $fond; |
|
| 640 | + $fond = 'modeles/'.$fond; |
|
| 641 | 641 | // Creer le contexte |
| 642 | 642 | $contexte = $env; |
| 643 | 643 | $contexte['dir_racine'] = _DIR_RACINE; # eviter de mixer un cache racine et un cache ecrire (meme si pour l'instant les modeles ne sont pas caches, le resultat etant different il faut que le contexte en tienne compte |
@@ -678,7 +678,7 @@ discard block |
||
| 678 | 678 | // sinon, s'il y a un lien, on l'ajoute classiquement |
| 679 | 679 | if ( |
| 680 | 680 | strstr( |
| 681 | - ' ' . ($classes = extraire_attribut($retour, 'class')) . ' ', |
|
| 681 | + ' '.($classes = extraire_attribut($retour, 'class')).' ', |
|
| 682 | 682 | 'spip_lien_ok' |
| 683 | 683 | ) |
| 684 | 684 | ) { |
@@ -689,7 +689,7 @@ discard block |
||
| 689 | 689 | ); |
| 690 | 690 | } else { |
| 691 | 691 | if ($lien) { |
| 692 | - $retour = '<a href="' . $lien['href'] . '" class="' . $lien['class'] . '">' . $retour . '</a>'; |
|
| 692 | + $retour = '<a href="'.$lien['href'].'" class="'.$lien['class'].'">'.$retour.'</a>'; |
|
| 693 | 693 | } |
| 694 | 694 | } |
| 695 | 695 | |
@@ -712,7 +712,7 @@ discard block |
||
| 712 | 712 | return $page; |
| 713 | 713 | } |
| 714 | 714 | // eval $page et affecte $res |
| 715 | - include _ROOT_RESTREINT . 'public/evaluer_page.php'; |
|
| 715 | + include _ROOT_RESTREINT.'public/evaluer_page.php'; |
|
| 716 | 716 | |
| 717 | 717 | // Lever un drapeau (global) si le fond utilise #SESSION |
| 718 | 718 | // a destination de public/parametrer |
@@ -779,16 +779,16 @@ discard block |
||
| 779 | 779 | if (($pos = strpos($head, '<head>')) !== false) { |
| 780 | 780 | $head = substr_replace($head, $base, $pos + 6, 0); |
| 781 | 781 | } elseif (preg_match(',<head[^>]*>,i', $head, $r)) { |
| 782 | - $head = str_replace($r[0], $r[0] . $base, $head); |
|
| 782 | + $head = str_replace($r[0], $r[0].$base, $head); |
|
| 783 | 783 | } |
| 784 | - $texte = $head . substr($texte, $poshead); |
|
| 784 | + $texte = $head.substr($texte, $poshead); |
|
| 785 | 785 | } |
| 786 | 786 | if ($href_base) { |
| 787 | 787 | // gerer les ancres |
| 788 | 788 | $base = $_SERVER['REQUEST_URI']; |
| 789 | 789 | // pas de guillemets ni < dans l'URL qu'on insere dans le HTML |
| 790 | 790 | if (strpos($base, "'") or strpos($base, '"') or strpos($base, '<')) { |
| 791 | - $base = str_replace(["'",'"','<'], ['%27','%22','%3C'], $base); |
|
| 791 | + $base = str_replace(["'", '"', '<'], ['%27', '%22', '%3C'], $base); |
|
| 792 | 792 | } |
| 793 | 793 | if (strpos($texte, "href='#") !== false) { |
| 794 | 794 | $texte = str_replace("href='#", "href='$base#", $texte); |