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("&","&",urldecode($redirect))); }
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("&", "&", urldecode($redirect))); }
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; }