Browse Source

On fait une branche expe, pour essayer d'y voir plus clair. Et en premier on déplace la config plus proprement avec une case par id_rubrique, pas mélangé dans le nom des champs genre truc_123. Pour le défaut, on a une clé defaut. Et donc on modifie le code pour appeler ce nouveau rangement.

svn/attic/branches/nettoyage/114008
rastapopoulos@spip.org 4 years ago
parent
commit
2001329f30
  1. 2
      balise/url_auteur_absolu.php
  2. 2
      balise/url_document_absolu.php
  3. 2
      balise/url_mot_absolu.php
  4. 2
      balise/url_page_absolu.php
  5. 12
      formulaires/configurer_multidomaines.html
  6. 36
      multidomaines_administrations.php
  7. 6
      multidomaines_fonctions.php
  8. 26
      multidomaines_options.php
  9. 2
      multidomaines_pipelines.php
  10. 2
      paquet.xml

2
balise/url_auteur_absolu.php

@ -2,7 +2,7 @@
function balise_URL_AUTEUR_ABSOLU_dist($p) {
include_spip('balise/url_');
$p->code = 'lire_config("multidomaines/editer_url").' . generer_generer_url('auteur', $p);
$p->code = 'lire_config("multidomaines/defaut/url").' . generer_generer_url('auteur', $p);
$p->interdire_scripts = false;
return $p;

2
balise/url_document_absolu.php

@ -2,7 +2,7 @@
function balise_URL_DOCUMENT_ABSOLU_dist($p) {
include_spip('balise/url_');
$p->code = 'lire_config("multidomaines/editer_url").' . generer_generer_url('document', $p);
$p->code = 'lire_config("multidomaines/defaut/url").' . generer_generer_url('document', $p);
$p->interdire_scripts = false;
return $p;

2
balise/url_mot_absolu.php

@ -2,7 +2,7 @@
function balise_URL_MOT_ABSOLU_dist($p) {
include_spip('balise/url_');
$p->code = 'lire_config("multidomaines/editer_url").' . generer_generer_url('mot', $p);
$p->code = 'lire_config("multidomaines/defaut/url").' . generer_generer_url('mot', $p);
$p->interdire_scripts = false;
return $p;

2
balise/url_page_absolu.php

@ -8,7 +8,7 @@ function balise_URL_PAGE_ABSOLU_dist($p) {
} else {
$p->code .= ',""';
}
$p->code = 'lire_config("multidomaines/editer_url").generer_url_public(' . $p->code . ',false,true)';
$p->code = 'lire_config("multidomaines/defaut/url").generer_url_public(' . $p->code . ',false,true)';
$p->interdire_scripts = true;
return $p;

12
formulaires/configurer_multidomaines.html

@ -11,13 +11,13 @@
<label for="editer_url">
<:multidomaines:label_editer_url:>
</label>
<input type="text" name="editer_url" class="text" id="editer_url" value="#ENV{editer_url}"/>
<input type="text" name="defaut[url]" class="text" id="editer_url" value="#ENV{defaut/url}"/>
</li>
<li class="editer squelette">
<label for="squelette">
<:multidomaines:label_squelette:>
</label>
<input type="text" name="squelette" class="text" id="squelette" value="#ENV{squelette}"/>
<input type="text" name="defaut[squelette]" class="text" id="squelette" value="#ENV{defaut/squelette}"/>
</li>
<BOUCLE_multiracine(RUBRIQUES){id_parent=#VAL{_MULTIDOMAINE_RACINE}|constant|sinon{0}}{tous} {par num titre, titre}>
<li class="fieldset">
@ -28,13 +28,13 @@
<label for="editer_url">
<:multidomaines:label_editer_url_secteur:>
</label>
<input type="text" name="editer_url_#ID_RUBRIQUE" class="text" id="editer_url_#ID_RUBRIQUE" value="#ENV{editer_url_#ID_RUBRIQUE}"/>
<input type="text" name="#ID_RUBRIQUE[url]" class="text" id="editer_url_#ID_RUBRIQUE" value="#ENV{#ID_RUBRIQUE/url}"/>
</li>
<li class="editer squelette">
<label for="squelette">
<:multidomaines:label_squelette_secteur:>
</label>
<input type="text" name="squelette_#ID_RUBRIQUE" class="text" id="squelette_#ID_RUBRIQUE" value="#ENV{squelette_#ID_RUBRIQUE}"/>
<input type="text" name="#ID_RUBRIQUE[squelette]" class="text" id="squelette_#ID_RUBRIQUE" value="#ENV{#ID_RUBRIQUE/squelette}"/>
</li>
</ul>
</fieldset>
@ -49,13 +49,13 @@
<label for="editer_url">
<:multidomaines:label_editer_url_rubrique:>
</label>
<input type="text" name="editer_url_#ID_RUBRIQUE" class="text" id="editer_url_#ID_RUBRIQUE" value="#ENV{editer_url_#ID_RUBRIQUE}"/>
<input type="text" name="#ID_RUBRIQUE[url]" class="text" id="editer_url_#ID_RUBRIQUE" value="#ENV{#ID_RUBRIQUE/url}"/>
</li>
<li class="editer squelette">
<label for="squelette">
<:multidomaines:label_squelette_rubrique:>
</label>
<input type="text" name="squelette_#ID_RUBRIQUE" class="text" id="squelette_#ID_RUBRIQUE" value="#ENV{squelette_#ID_RUBRIQUE}"/>
<input type="text" name="#ID_RUBRIQUE[squelette]" class="text" id="squelette_#ID_RUBRIQUE" value="#ENV{#ID_RUBRIQUE/squelette}"/>
</li>
</ul>
</fieldset>

36
multidomaines_administrations.php

@ -9,11 +9,47 @@ include_spip('base/multidomaines');
function multidomaines_upgrade($nom_meta_base_version, $version_cible) {
$maj = array();
$maj['0.1.0'] = array(
array('multidomaines_maj_0_1_0'),
);
include_spip('base/upgrade');
maj_plugin($nom_meta_base_version, $version_cible, $maj);
}
function multidomaines_maj_0_1_0() {
include_spip('inc/config');
$config = lire_config('multidomaines');
$nouvelle_config = array();
if (isset($config['editer_url'])) {
$nouvelle_config['defaut']['url'] = $config['editer_url'];
unset($config['editer_url']);
}
if (isset($config['squelette'])) {
$nouvelle_config['defaut']['squelette'] = $config['squelette'];
unset($config['squelette']);
}
foreach ($config as $champ => $valeur) {
if ($valeur and strpos($champ, 'editer_url_') === 0) {
$id_rubrique = explode('_', $champ);
$id_rubrique = array_pop($id_rubrique);
$nouvelle_config[$id_rubrique]['url'] = $valeur;
}
elseif ($valeur and strpos($champ, 'squelette_') === 0) {
$id_rubrique = explode('_', $champ);
$id_rubrique = array_pop($id_rubrique);
$nouvelle_config[$id_rubrique]['squelette'] = $valeur;
}
}
effacer_meta('multidomaines');
ecrire_config('multidomaines', $nouvelle_config);
}
function multidomaines_vider_tables($nom_meta_base_version) {
effacer_meta($nom_meta_base_version);
}

6
multidomaines_fonctions.php

@ -26,17 +26,17 @@ function calculer_URL_SECTEUR($id_rubrique) {
// remonter les rubriques jusqu'à trouver une url multidomaine
include_spip('inc/config');
$url = lire_config('multidomaines/editer_url_' . $id_rubrique);
$url = lire_config("multidomaines/$id_rubrique/url");
$id_rubrique_courante = $id_rubrique;
while (!$url && $id_rubrique_courante) {
$id_parent = sql_getfetsel("id_parent", "spip_rubriques", "id_rubrique=" . intval($id_rubrique_courante));
$url = lire_config('multidomaines/editer_url_' . $id_parent);
$url = lire_config("multidomaines/$id_parent/url");
$id_rubrique_courante = $id_parent;
}
// sinon, url par défaut
if (empty($url)) {
$url = lire_config('multidomaines/editer_url');
$url = lire_config('multidomaines/defaut/url');
}
if (empty($url)) {
$url = lire_config('adresse_site');

26
multidomaines_options.php

@ -18,20 +18,23 @@ if (!defined('_SECTEUR_URL')) {
}
if (is_array($options)) {
foreach ($options as $cle => $valeur) {
if (strpos($cle, 'editer_url_') === 0) {
if (empty($valeur)) {
$valeur = $options['editer_url'];
foreach ($options as $id_rubrique => $config) {
if ($id_rubrique != 'defaut') {
if (!isset($config['url']) or !$config['url']) {
$url = $options['defaut']['url'];
}
list(, , $id_secteur) = explode('_', $cle);
$partie_url = parse_url($valeur);
else {
$url = $config['url'];
}
$partie_url = parse_url($url);
if (!isset($partie_url['port'])) {
$partie_url['port'] = $partie_url['scheme'] == 'https' ? 443 : 80;
}
if ($partie_url['host'] == $_SERVER['HTTP_HOST'] AND $partie_url['port'] == $_SERVER['SERVER_PORT']) {
if ($options['squelette_' . $id_secteur]) {
$GLOBALS['multidomaine_id_secteur_courant'] = $id_secteur;
$GLOBALS['dossier_squelettes'] = trim($GLOBALS['dossier_squelettes'] . ':' . $options['squelette_' . $id_secteur], ':');
if (isset($config['squelette']) and $config['squelette']) {
$GLOBALS['multidomaine_id_secteur_courant'] = $id_rubrique;
$GLOBALS['dossier_squelettes'] = trim($GLOBALS['dossier_squelettes'] . ':' . $config['squelette'], ':');
$GLOBALS["multidomaine_site_principal"] = false;
}
}
@ -43,7 +46,6 @@ if (is_array($options)) {
}
function multidomaines_squelettespardefaut_dist() {
if (function_exists('multidomaines_squelettespardefaut')) {
return multidomaines_squelettespardefaut();
}
@ -52,12 +54,12 @@ function multidomaines_squelettespardefaut_dist() {
if (strpos($_SERVER['HTTP_HOST'], '.') === false) {
// ex: localhost
$dossiers = ':' . lire_config('multidomaines/squelette') . '/' . $_SERVER['HTTP_HOST'];
$dossiers = ':' . lire_config('multidomaines/defaut/squelette') . '/' . $_SERVER['HTTP_HOST'];
} else {
$parties_domaine = explode('.', $_SERVER['HTTP_HOST']);
$extention = array_pop($parties_domaine);
do {
$base = ':' . lire_config('multidomaines/squelette') . '/' . implode('.', $parties_domaine);
$base = ':' . lire_config('multidomaines/defaut/squelette') . '/' . implode('.', $parties_domaine);
$dossiers_port .= $base . '.' . $extention . '.' . $_SERVER['SERVER_PORT'];
$dossiers_port .= $base . '.' . $_SERVER['SERVER_PORT'];
$dossiers .= $base . '.' . $extention;

2
multidomaines_pipelines.php

@ -55,7 +55,7 @@ function multidomaines_pre_liens($texte) {
$id_rubrique = sql_getfetsel("id_rubrique", "spip_articles", "id_article=" . intval($objet_num));
$url_multidom = calculer_URL_SECTEUR($id_rubrique);
if (!$url_multidom) {
$url_multidom = lire_config('multidomaines/editer_url');
$url_multidom = lire_config('multidomaines/defaut/url');
}
$url_spip = generer_url_entite_absolue($objet_num, 'article');
$domaine_spip = explode('/', $url_spip);

2
paquet.xml

@ -6,7 +6,7 @@
compatibilite="[3.0.0;3.2.*]"
logo="prive/themes/spip/images/multidomaines-72.png"
documentation="https://contrib.spip.net/?article4182"
schema="0.0.2"
schema="0.1.0"
>
<nom>Multidomaines</nom>

Loading…
Cancel
Save