Exemple #1
0
/**
 * Vérifie le formatage d'un xml
 *
 * @see valider_resultats()
 * @see valider_dir()
 * @see valider_pseudo_url()
 *
 * @param string $url
 * @param string $req_ext
 * @param int $limit
 * @param array|bool $rec
 *
 **/
function valider_xml_ok($url, $req_ext, $limit, $rec)
{
    $url = urldecode($url);
    $rec = !$rec ? false : array();
    if (!$limit) {
        $limit = 200;
    }
    $titre = _T('analyse_xml');
    if (!$url) {
        $url_aff = 'http://';
        $onfocus = "this.value='';";
        $texte = $bandeau = $err = '';
    } else {
        include_spip('inc/distant');
        if (is_dir($url)) {
            $dir = substr($url, -1, 1) === '/' ? $url : "{$url}/";
            $ext = !preg_match('/^[.*\\w]+$/', $req_ext) ? 'php' : $req_ext;
            $files = preg_files($dir, "{$ext}\$", $limit, $rec);
            if (!$files and $ext !== 'html') {
                $files = preg_files($dir, 'html$', $limit, $rec);
                if ($files) {
                    $ext = 'html';
                }
            }
            if ($files) {
                $res = valider_dir($files, $ext, $url);
                list($err, $res) = valider_resultats($res, $ext === 'html');
                $err = ' (' . $err . '/' . count($files) . ')';
            } else {
                $res = _T('texte_vide');
                $err = '';
            }
            $bandeau = $dir . '*' . $ext . $err;
        } else {
            if (preg_match('@^((?:[.]/)?[^?]*)[?]([0-9a-z_]+)=([^&]*)(.*)$@', $url, $r)) {
                list(, $server, $dir, $script, $args) = $r;
                if ((!$server or $server == './' or strpos($server, url_de_base()) === 0) and is_dir($dir)) {
                    $url = $script;
                    // Pour quand le validateur saura simuler
                    // une query-string...
                    // $args = preg_split('/&(amp;)?[a-z0-9_]+=/', $args);
                    $args = true;
                }
            } else {
                $dir = 'exec';
                $script = $url;
                $args = true;
            }
            $transformer_xml = charger_fonction('valider', 'xml');
            $onfocus = "this.value='" . addslashes($url) . "';";
            if (preg_match(',^[a-z][0-9a-z_]*$,i', $url)) {
                $res = $transformer_xml(charger_fonction($url, $dir), $args);
                $url_aff = valider_pseudo_url($dir, $script);
            } else {
                $res = $transformer_xml(recuperer_page($url));
                $url_aff = entites_html($url);
            }
            list($texte, $err) = emboite_texte($res);
            if (!$err) {
                $err = '<h3>' . _T('spip_conforme_dtd') . '</h3>';
            }
            $res = "<div style='text-align: center'>" . $err . "</div>" . "<div style='margin: 10px; text-align: left'>" . $texte . '</div>';
            $bandeau = "<a href='{$url_aff}'>{$url}</a>";
        }
    }
    $commencer_page = charger_fonction('commencer_page', 'inc');
    $debut = $commencer_page($titre);
    $jq = http_script("", 'jquery.js');
    echo str_replace('<head>', "<head>{$jq}", $debut);
    $onfocus = '<input type="text" size="70" value="' . $url_aff . '" name="var_url" id="var_url" onfocus="' . $onfocus . '" />';
    $onfocus = generer_form_ecrire('valider_xml', $onfocus, " method='get'");
    echo "<h1>", $titre, '<br>', $bandeau, '</h1>', "<div style='text-align: center'>", $onfocus, "</div>", $res, fin_page();
}
Exemple #2
0
function debusquer_squelette ($fonc, $mode, $self) {
	global $debug_objets;

	if ($mode !== 'validation') {
		if ($debug_objets['sourcefile']) {
			$res = "<div id='spip-boucles'>\n" 
			. debusquer_navigation_squelettes($self)
			. "</div>";
		} else $res = '';
		if ($fonc) {
			$id = " id='$fonc'";
			if (!empty($GLOBALS['debug_objets'][$mode][$fonc])) {
				list($legend, $texte, $res2) = debusquer_source($fonc, $mode);
				$texte .= $res2;
			} elseif (!empty($debug_objets[$mode][$fonc . 'tout'])) {
			  $legend = _T('zbug_' . $mode);
			  $texte = $debug_objets[$mode][$fonc . 'tout'];
			  $texte = ancre_texte($texte, array('',''));
			}
		} else return strlen(trim($res))
				? "<div id='spip-debug'>$res</div>"
			 // cas de l'appel sur erreur: montre la page
				: $GLOBALS['debug_objets']['resultat']['tout'];
	} else {
		$valider = charger_fonction('valider', 'xml');
		$val = $valider($debug_objets['validation'][$fonc . 'tout']);
		// Si erreur, signaler leur nombre dans le formulaire admin
		$debug_objets['validation'] = $val[1] ? count($val[1]):'';
		list($texte, $err) = emboite_texte($val, $fonc, $self);
		if ($err === false)
			$err = _T('impossible');
		elseif ($err === true)
		  $err = _T('correcte');
		else $err = ": $err";
		$legend = _T('validation') . ' ' . $err;
		$res = $id = '';
	}
	return !trim($texte) ? '' : (
		"<div id='spip-debug'>$res"
		. "<div id='debug_boucle'><fieldset$id><legend>"
		. $legend
		. "</legend>"
		. $texte
		. "</fieldset></div>"
		. "</div>");
}
Exemple #3
0
function debusquer_squelette($fonc, $mode, $self)
{
    global $debug_objets;
    if ($mode !== 'validation') {
        if (isset($debug_objets['sourcefile']) and $debug_objets['sourcefile']) {
            $res = "<div id='spip-boucles'>\n" . debusquer_navigation_squelettes($self) . "</div>";
        } else {
            $res = '';
        }
        if ($fonc) {
            $id = " id='{$fonc}'";
            if (!empty($GLOBALS['debug_objets'][$mode][$fonc])) {
                list($legend, $texte, $res2) = debusquer_source($fonc, $mode);
                $texte .= $res2;
            } elseif (!empty($debug_objets[$mode][$fonc . 'tout'])) {
                $legend = _T('zbug_' . $mode);
                $texte = $debug_objets[$mode][$fonc . 'tout'];
                $texte = ancre_texte($texte, array('', ''));
            }
        } else {
            if (strlen(trim($res))) {
                return "<img src='" . chemin_image('compat-16.png') . "' alt='afficher-masquer le debug' id='spip-debug-toggle' onclick=\"var x = document.getElementById('spip-debug'); (x.style.display == '' ? x.style.display = 'none' : x.style.display = '');\" /><div id='spip-debug'>{$res}</div>";
            } else {
                // cas de l'appel sur erreur: montre la page
                return isset($GLOBALS['debug_objets']['resultat']['tout']) ? $GLOBALS['debug_objets']['resultat']['tout'] : '';
            }
        }
    } else {
        $valider = charger_fonction('valider', 'xml');
        $val = $valider($debug_objets['validation'][$fonc . 'tout']);
        // Si erreur, signaler leur nombre dans le formulaire admin
        $debug_objets['validation'] = $val->err ? count($val->err) : '';
        list($texte, $err) = emboite_texte($val, $fonc, $self);
        if ($err === false) {
            $err = _T('impossible');
        } elseif ($err === true) {
            $err = _T('correcte');
        } else {
            $err = ": {$err}";
        }
        $legend = _T('validation') . ' ' . $err;
        $res = $id = '';
    }
    return !trim($texte) ? '' : "<img src='" . chemin_image('compat-16.png') . "' alt='afficher-masquer le debug' id='spip-debug-toggle' onclick=\"var x = document.getElementById('spip-debug'); (x.style.display == '' ? x.style.display = 'none' : x.style.display = '');\" /><div id='spip-debug'>{$res}" . "<div id='debug_boucle'><fieldset{$id}><legend>" . "<a href='" . $self . "#f_" . substr($fonc, 0, 37) . "'> &#8593; " . ($legend ? $legend : $mode) . "</a></legend>" . $texte . "</fieldset></div>" . "</div>";
}
Exemple #4
0
function debusquer_squelette($fonc, $mode, $self)
{
    global $debug_objets;
    if ($mode !== 'validation') {
        if (isset($debug_objets['sourcefile']) and $debug_objets['sourcefile']) {
            $res = "<div id='spip-boucles'>\n" . debusquer_navigation_squelettes($self) . "</div>";
        } else {
            $res = '';
        }
        if ($fonc) {
            $id = " id='{$fonc}'";
            if (!empty($GLOBALS['debug_objets'][$mode][$fonc])) {
                list($legend, $texte, $res2) = debusquer_source($fonc, $mode);
                $texte .= $res2;
            } elseif (!empty($debug_objets[$mode][$fonc . 'tout'])) {
                $legend = _T('zbug_' . $mode);
                $texte = $debug_objets[$mode][$fonc . 'tout'];
                $texte = ancre_texte($texte, array('', ''));
            }
        } else {
            return strlen(trim($res)) ? "<div id='spip-debug'>{$res}</div>" : $GLOBALS['debug_objets']['resultat']['tout'];
        }
    } else {
        $valider = charger_fonction('valider', 'xml');
        $val = $valider($debug_objets['validation'][$fonc . 'tout']);
        // Si erreur, signaler leur nombre dans le formulaire admin
        $debug_objets['validation'] = $val->err ? count($val->err) : '';
        list($texte, $err) = emboite_texte($val, $fonc, $self);
        if ($err === false) {
            $err = _T('impossible');
        } elseif ($err === true) {
            $err = _T('correcte');
        } else {
            $err = ": {$err}";
        }
        $legend = _T('validation') . ' ' . $err;
        $res = $id = '';
    }
    return !trim($texte) ? '' : "<div id='spip-debug'>{$res}" . "<div id='debug_boucle'><fieldset{$id}><legend>" . "<a href='" . $self . "#f_" . substr($fonc, 0, 37) . "'> &#8593; " . ($legend ? $legend : $mode) . "</a></legend>" . $texte . "</fieldset></div>" . "</div>";
}