Valider 5a389a87 rédigé par esj's avatar esj
Parcourir les fichiers

La fusion d'aide repère maintenant une section de niveau h1 déjà présente, et...

La fusion d'aide repère maintenant une section de niveau h1 déjà présente, et lui ajoute ses sections h2, supposées différentes (donc c'est un progrès, mais c'est encore insuffisant).
parent bf0f877c
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+28 −14
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -50,7 +50,7 @@ function help_fichier($lang_aide, $path, $help_server) {
	foreach ($help_server as $k => $server) {
		// Remplacer les liens aux images par leur gestionnaire de cache
		$url = "$server/$path";
		$page = help_replace_img(translitteration(recuperer_page($url)),$k);
		$page = help_replace_img(recuperer_page($url),$k);
		// les liens internes ne doivent pas etre deguises en externes
		$url = parse_url($url);
		$re = '@(<a\b[^>]*\s+href=["\'])' .
@@ -59,19 +59,32 @@ function help_fichier($lang_aide, $path, $help_server) {
		$page = preg_replace($re,'\\1\\2', $page);

		preg_match_all(_SECTIONS_AIDE, $page, $sections, PREG_SET_ORDER);
		// Fusionner les aides
		// Fusionner les aides ayant meme nom de section
		$vus = array();
		foreach ($sections as $section) {
			list($tout,$prof, $sujet,) = $section;
			if (in_array($sujet, $vus)) continue;
			$corps = help_section($sujet, $page, $prof);

			foreach ($contenu as $k => $s) {
			  if ($sujet == $k) {
			    // Section deja vue qu'il faut completer
			    // Si le complement a des sous-sections,
			    // ne pas en tenir compte quand on les rencontrera
			    // lors des prochains passages dans la boucle
			    preg_match_all(_SECTIONS_AIDE, $corps, $s, PREG_PATTERN_ORDER);
			    if ($s) {$vus = array_merge($vus, $s[2]);}
			    $contenu[$k] .= $corps;
			    $corps = '';
			    break;
			  }
			}
		    if ($corps) $contenu[$sujet] = $tout . "\n" . $corps;
			// Si totalement nouveau, inserer le titre
			// mais pas le corps s'il contient des sous-sections:
			// elles vont venir dans les passages suivants
			if ($corps) {
			  $corps = help_section($sujet, $page);
			  $contenu[$sujet] = $tout . "\n" . $corps;
			}
		}
	}

@@ -178,8 +191,9 @@ function help_body($aide) {

function help_section($aide, $contenu, $prof=2)
{
	$maxprof = ($prof >=2) ? "12" : "1";
	$r = "@<h$prof" . '(?: class="spip")?' . '>\s*' . $aide 
	  ."\s*(?:/.+?)?</h$prof>(.*?)<(?:(?:h[12])|/body)@ism";
	  ."\s*(?:/.+?)?</h$prof>(.*?)<(?:(?:h[$maxprof])|/body)@ism";

	if (preg_match($r, $contenu, $m))
	  return $m[1];