Example #1
0
function action_snippet_exporte(){
	global $auteur_session;
	$arg = _request('arg');
	$args = explode(":",$arg);
	$hash = _request('hash');
	$id_auteur = $auteur_session['id_auteur'];
	$redirect = _request('redirect');
	if ($redirect==NULL) $redirect="";
	include_spip("inc/securiser_action");
	if (verifier_action_auteur("snippet_exporte-$arg",$hash,$id_auteur)==TRUE) {
		$table = $args[0];
		$id = $args[1];
		
		$f = snippets_fond_exporter($table, false);
			
		if ($f) {
			include_spip('public/assembler');
			$out = recuperer_fond($f,array('id'=>intval($id)));
			//$out = preg_replace(",\n\n[\s]*(?=\n),","",$out);
			
			$filename=str_replace(":","_",$arg);
			if (preg_match(",<titre>(.*)</titre>,Uims",$out,$regs))
				$filename = preg_replace(',[^-_\w]+,', '_', trim(translitteration(textebrut(typo($regs[1])))));
			$extension = "xml";
			
			Header("Content-Type: text/xml; charset=".$GLOBALS['meta']['charset']);
			Header("Content-Disposition: attachment; filename=$filename.$extension");
			Header("Content-Length: ".strlen($out));
			echo $out;
			exit();
		}
	}	
	redirige_par_entete(str_replace("&amp;","&",urldecode($redirect)));
}
Example #2
0
function action_exporter()
{
    //global $auteur_session;
    $arg = _request('arg');
    $args = explode(":", $arg);
    $hash = _request('hash');
    //$id_auteur = $auteur_session['id_auteur'];
    $redirect = _request('redirect');
    if ($redirect == NULL) {
        $redirect = "";
    }
    //include_spip("inc/securiser_action");
    //if (verifier_action_auteur("snippet_exporte-$arg",$hash,$id_auteur)==TRUE) {
    $table = array_shift($args);
    $id = $args;
    $f = snippets_fond_exporter($table, false);
    spip_log('f ' . $f, 'export');
    if ($f) {
        include_spip('public/assembler');
        $out = recuperer_fond($f, array('id' => $id));
        //$out = preg_replace(",\n\n[\s]*(?=\n),","",$out);
        // $filename=str_replace(":","_",$arg);
        $today = date(Ymd);
        $filename = $table . '_export_' . $today;
        if (preg_match(",<titre>(.*)</titre>,Uims", $out, $regs)) {
            $filename = preg_replace(',[^-_\\w]+,', '_', trim(translitteration(textebrut(typo($regs[1])))));
        }
        $extension = "csv";
        Header("Content-Type: text/csv; charset=" . $GLOBALS['meta']['charset']);
        Header("Content-Disposition: attachment; filename={$filename}.{$extension}");
        Header("Content-Length: " . strlen($out));
        echo $out;
        exit;
        //	}
    }
    redirige_par_entete(str_replace("&amp;", "&", urldecode($redirect)));
}
Example #3
0
function boite_snippets($titre,$icone,$table,$id,$contexte="",$retour = ""){
	include_spip('inc/autoriser');
	if (!strlen($retour))
		$retour = self();
	$out = "";
	
	// verifier les droits
	$auth = false;
	$type = snippets_type_de_table($table);
	if (intval($id)==$id) {
		$auth = autoriser('modifier',$type,$id);
	}
	else {
		$auth = true;
		if ( (count($t = explode('=',$contexte))==2) AND ($id_contexte=intval($t[1])) ) {
			$type_contexte = $t[0];
			if (substr($type_contexte,0,3)=="id_") $type_contexte = substr($type_contexte,3);
			$auth = autoriser('modifier',$type_contexte,$id_contexte);
		}
		$auth &= autoriser('creer',$type,$id);
	}
	if (!$auth) return "";
	
	// verifier le support de l'objet pour l'import/export
	$export_possible = (intval($id) AND $f = snippets_fond_exporter($table));
	$import_possible = ($f=snippets_fonction_importer($table));
	$import_creation = ($id !== intval($id));
	if (!$import_possible && !$export_possible) return "";

	$idbox="snippet_$table_$id";
	$out .= icone_horizontale($titre, "#", $icone, _DIR_PLUGIN_SNIPPETS."images/import".($export_possible?"_export":"").".gif", false, "onclick='$(\"#$idbox\").slideToggle(\"fast\");'");
	$out .= "<div id='$idbox' style='display:none;' >\n";
	$out .= debut_cadre_relief('',true);

	// icone d'export
	if (intval($id) AND $f = snippets_fond_exporter($table)){
		$action = generer_action_auteur('snippet_exporte',"$table:$id",$retour);
		$out .= icone_horizontale(_T('snippets:exporter'), $action, $icone, _DIR_PLUGIN_SNIPPETS."images/export.gif", false);
		$out .= "<hr/>";
	}

	// liste des snippets disponibles pour import
	$liste = snippets_liste_imports($table);
	foreach($liste as $snippet){
		if (!_DIR_RESTREINT) $snippet = substr($snippet,strlen(_DIR_RACINE));
		$action = generer_action_auteur('snippet_importe',"$table:$id:$contexte:$snippet",$retour);
		$out .= icone_horizontale(basename($snippet,".xml"), $action, $icone, $import_creation?"creer.gif":_DIR_PLUGIN_SNIPPETS."images/import.gif", false);
	}
	
	// formulaire d'upload d'un snippet
	$action = generer_action_auteur('snippet_importe',"$table:$id:$contexte",$retour);
	$out .= "<form action='$action' method='POST' enctype='multipart/form-data'>";
	$out .= form_hidden($action);
	$out .= "<strong><label for='file_name'>"._T("snippets:importer_fichier")."</label></strong> ";
	$out .= "<br />";
	$out .= "<input type='file' name='snippet_xml' id='file_name' class='formo'>";
	$out .= "<div style='text-align:$spip_lang_right'>";
	$out .= "<input type='submit' name='Valider' value='"._T('bouton_valider')."' class='fondo'>";
	$out .= "</div>";
	$out .= "</form>\n";
	

	$out .= fin_cadre_relief(true)."</div>";
	return $out;
}