Changeset 118152 in spip-zone for _plugins_/spip-bonux-3


Ignore:
Timestamp:
Oct 15, 2019, 3:31:30 PM (8 weeks ago)
Author:
marcimat@…
Message:

On se synchronise un peu avec les fonctions du Core afin de faciliter l’identification au grand jeu des 7 différences !

Location:
_plugins_/spip-bonux-3/inc
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/spip-bonux-3/inc/exporter_csv.php

    r109638 r118152  
    2323 * Exporter un champ pour un export CSV : pas de retour a la ligne,
    2424 * et echapper les guillements par des doubles guillemets
     25 *
    2526 * @param string $champ
    2627 * @return string
     
    3233        $champ = preg_replace(',[\s]+,ms', ' ', $champ);
    3334        $champ = str_replace('"', '""', $champ);
    34         return '"'.$champ.'"';
     35
     36        return '"' . $champ . '"';
    3537}
    3638
    3739/**
    3840 * Exporter une ligne complete au format CSV, avec delimiteur fourni
     41 *
     42 * @uses exporter_csv_champ()
     43 *
    3944 * @param array $ligne
    4045 * @param string $delim
     46 * @param string|null $importer_charset
     47 *     Si défini exporte dans le charset indiqué
    4148 * @return string
    4249 */
    4350function exporter_csv_ligne($ligne, $delim = ',', $importer_charset = null) {
    44         $output = join($delim, array_map('exporter_csv_champ', $ligne))."\r\n";
     51        $output = join($delim, array_map('exporter_csv_champ', $ligne)) . "\r\n";
    4552        if ($importer_charset) {
    4653                $output = str_replace('’', '\'', $output);
     
    5057}
    5158
    52 
    53 function inc_exporter_csv_dist($titre, $resource, $delim = ',', $entetes = null, $envoyer = true) {
     59/**
     60 * Exporte une ressource sous forme de fichier CSV
     61 *
     62 * La ressource peut etre un tableau ou une resource SQL issue d'une requete
     63 * L'extension est choisie en fonction du delimiteur :
     64 * - si on utilise ',' c'est un vrai csv avec extension csv
     65 * - si on utilise ';' ou tabulation c'est pour E*cel, et on exporte en iso-truc, avec une extension .xls
     66 *
     67 * @uses exporter_csv_ligne()
     68 *
     69 * @param string $titre
     70 *   titre utilise pour nommer le fichier
     71 * @param array|resource $resource
     72 * @param string $delim
     73 *   delimiteur
     74 * @param array $entetes
     75 *   tableau d'en-tetes pour nommer les colonnes (genere la premiere ligne)
     76 * @param bool $envoyer
     77 *   pour envoyer le fichier exporte (permet le telechargement)
     78 * @return string
     79 */
     80function inc_exporter_csv_dist($titre, $resource, $delim = ', ', $entetes = null, $envoyer = true) {
    5481
    5582        $filename = preg_replace(',[^-_\w]+,', '_', translitteration(textebrut(typo($titre))));
     
    89116        }
    90117        fclose($fp);
     118
    91119        if ($envoyer) {
    92120                ob_start();
    93                 Header("Content-Type: text/comma-separated-values; charset=$charset");
    94                 Header("Content-Disposition: attachment; filename=$filename");
     121                header("Content-Type: text/comma-separated-values; charset=$charset");
     122                header("Content-Disposition: attachment; filename=$filename");
    95123                //non supporte
    96                 //Header("Content-Type: text/plain; charset=$charset");
    97                 Header("Content-Length: $length");
     124                //header("Content-Type: text/plain; charset=$charset");
     125                header("Content-Length: $length");
    98126                ob_clean();
    99127                flush();
  • _plugins_/spip-bonux-3/inc/importer_csv.php

    r102584 r118152  
    2020 * Returns a multi-dimensional array from a CSV file optionally using the
    2121 * first row as a header to create the underlying data as associative arrays.
     22 *
    2223 * @param string $file Filepath including filename
    2324 * @param bool $head Use first row as header.
     
    6869function importer_csv_nettoie_key($key) {
    6970        return translitteration($key);
    70         /*$accents=array('�','�','�','�','�',"�","�","'");
    71         $accents_rep=array('e','e','e','a','u',"o","c","_");
    72         return str_replace($accents,$accents_rep,$key);*/
    7371}
    7472
     
    102100                                foreach ($header as $heading) {
    103101                                        if (!isset($header_type[$heading])) {
    104                                                 $header_type[$heading] = 'scalar';
     102                                                $header_type[$heading] = "scalar";
    105103                                        } else {
    106                                                 $header_type[$heading] = 'array';
     104                                                $header_type[$heading] = "array";
    107105                                        }
    108106                                }
     
    114112                                $row = array();
    115113                                foreach ($header as $key => $heading) {
    116                                         if ($header_type[$heading] == 'array') {
     114                                        if ($header_type[$heading] == "array") {
    117115                                                if (!isset($row[$heading])) {
    118116                                                        $row[$heading] = array();
    119117                                                }
    120118                                                if (isset($data[$key]) and strlen($data[$key])) {
    121                                                         $row[$heading][]= $data[$key];
     119                                                        $row[$heading][] = $data[$key];
    122120                                                }
    123121                                        } else {
    124                                                 $row[$heading]=(isset($data[$key])) ? $data[$key] : '';
     122                                                $row[$heading] = (isset($data[$key])) ? $data[$key] : '';
    125123                                        }
    126124                                }
    127                                 $return[]=$row;
     125                                $return[] = $row;
    128126                        } else {
    129                                 $return[]=$data;
     127                                $return[] = $data;
    130128                        }
    131129                }
     
    134132                }
    135133        }
     134
    136135        return $return;
    137136}
Note: See TracChangeset for help on using the changeset viewer.