Example #1
0
function debut_admin($script, $action = '', $corps = '')
{
    if (!$action || !(autoriser('webmestre') or autoriser('chargerftp'))) {
        include_spip('inc/minipres');
        return minipres();
    } else {
        $dir = dir_admin();
        $signal = fichier_admin($script);
        if (@file_exists($dir . $signal)) {
            spip_log("Action admin: {$action}");
            return '';
        }
        include_spip('inc/minipres');
        // Si on est un super-admin, un bouton de validation suffit
        // sauf dans les cas destroy
        if ((autoriser('webmestre') or $script === 'repair') and $script != 'delete_all') {
            if (_request('validation_admin') == $signal) {
                spip_log("Action super-admin: {$action}");
                return '';
            }
            $corps .= '<input type="hidden" name="validation_admin" value="' . $signal . '" />';
            $suivant = _T('bouton_valider');
            $js = '';
        } else {
            // cet appel permet d'assurer un copier-coller du nom du repertoire a creer dans tmp (esj)
            // l'insertion du script a cet endroit n'est pas xhtml licite mais evite de l'embarquer dans toutes les pages minipres
            $corps .= http_script('', "spip_barre.js");
            $corps .= "<fieldset><legend>" . _T('info_authentification_ftp') . aide("ftp_auth") . "</legend>\n<label for='fichier'>" . _T('info_creer_repertoire') . "</label>\n" . "<span id='signal' class='formo'>" . $signal . "</span>" . "<input type='hidden' id='fichier' name='fichier' value='" . $signal . "' />" . _T('info_creer_repertoire_2', array('repertoire' => joli_repertoire($dir))) . "</fieldset>";
            $suivant = _T('bouton_recharger_page');
            // code volontairement tordu:
            // provoquer la copie dans le presse papier du nom du repertoire
            // en remettant a vide le champ pour que ca marche aussi en cas
            // de JavaScript inactif.
            $js = " onload='var range=document.createRange(); var signal = document.getElementById(\"signal\"); var userSelection = window.getSelection(); range.setStart(signal,0); range.setEnd(signal,1); userSelection.addRange(range);'";
        }
        // admin/xxx correspond
        // a exec/base_xxx de preference
        // et exec/xxx sinon (compat)
        if (tester_url_ecrire("base_{$script}")) {
            $script = "base_{$script}";
        }
        $form = copy_request($script, $corps, $suivant);
        $info_action = _T('info_action', array('action' => "{$action}"));
        return minipres($info_action, $form, $js);
    }
}
Example #2
0
// si le cookie n'est pas pose correctement dans l'action
if (!$var_auth AND isset($_COOKIE['spip_lang_ecrire'])
  AND $_COOKIE['spip_lang_ecrire'] <> $GLOBALS['visiteur_session']['lang']) {
  	include_spip('action/converser');
  	action_converser_post($GLOBALS['visiteur_session']['lang'],true);
}


// Passer la main aux outils XML a la demande (meme les redac s'ils veulent).
// mais seulement si on a bien ete auhentifie
if ($var_f = _request('transformer_xml')) {
	set_request('var_url', $exec);
	$exec = $var_f;
}

if ($var_f = tester_url_ecrire($exec)) {
	$var_f = charger_fonction ($var_f);
	$var_f(); // at last
}
else {
// Rien de connu: rerouter vers exec=404 au lieu d'echouer
// ce qui permet de laisser la main a un plugin
	$var_f = charger_fonction('404');
	$var_f($exec);
}

$debug = ((_request('var_mode') == 'debug') OR !empty($tableau_des_temps)) ? array(1) : array();
if ($debug) {
	$var_mode_affiche = _request('var_mode_affiche');
	$GLOBALS['debug_objets'][$var_mode_affiche][$var_mode_objet . 'tout'] = ($var_mode_affiche== 'validation' ? $page['texte'] :"");
	echo erreur_squelette();
Example #3
0
function valider_xml_ok($url, $req_ext, $limit, $rec)
{
	$url = urldecode(trim($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);
				$mode = (($ext === 'html') AND substr_count($dir, '/') <= 1);
				list($err, $terr, $res) = valider_resultats($res, $mode);
				$err = '<br /><h2>' . $terr . " " . _T('erreur_texte') . " ($err/" . count($files) .')</h2>';
				$res = $err . $res;
			} else {
				$res = _T('texte_vide');
				$err = '';
			}
			$bandeau = $dir . '*' . $ext ;
		} 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)) {
				if (($dir=='exec') AND (tester_url_ecrire($url) == 'fond')) {
					include_spip('exec/fond');
					$args = array($url, array());
					$url = 'fond_args';
				}
				$res = valider_script($transformer_xml, $script, $dir, $ext, $args);
				$url_aff = $res[3];
			} else {
				$res = $transformer_xml(recuperer_page($url));
				$url_aff = entites_html($url);
			}
			if ($res[1]) {
				list($texte, $err) = emboite_texte($res);
			}
			else {
				$err = '<h3>' . _T('spip_conforme_dtd') . '</h3>x';
				list($texte, ) = emboite_texte($res);
			}

			$res =
			"<div style='text-align: center'>" . $err . "</div>" .
			"<div style='margin: 10px; text-align: left'>" . $texte . '</div>';
			$bandeau = "<a href='$url_aff'>$url</a>";
		}
	}
	$titre .= ' ' . $url_aff; 
	$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();
}