source: spip-zone/_plugins_/zippeur/trunk/zippeur_pipelines.php @ 76407

Last change on this file since 76407 was 76407, checked in by maieul@…, 6 years ago

limité la porter des regexp, sinon cela donne des résultats moches

File size: 1.9 KB
Line 
1<?php
2if (!defined("_ECRIRE_INC_VERSION")) return;
3function zippeur_declarer_tables_principales($table){
4        $table['spip_zippeur'] = array(
5                'field'=>array(
6                        'id_zip'                => "INT",
7                        'nom'                   => "text",
8                        'date_modif'    => "datetime",
9                        'date_zip'              => "datetime",
10                        'delai_suppression'=>"INT",
11                        'fichiers'=>"INT"
12                        ),
13                       
14                'key'=> array('PRIMARY KEY'=>'id_zip')
15               
16                );     
17        return $table;
18}
19
20function zippeur_taches_generales_cron($taches){
21        $taches['zippeur_effacer_zip'] = _ZIPPEUR_EFFACER_ZIP; 
22        return $taches;
23}
24function zippeur_pre_liens($txt){
25    $match = array();
26    $regexp = "#\[(.*)->(zip_doc_article|zip_doc_album)(\d*)\]#U";
27    preg_match_all($regexp,$txt,$match,PREG_SET_ORDER);
28    foreach ($match as $lien){
29        // construires les ≠ paramètres
30        $objet      = str_replace('zip_doc_','',$lien[2]);
31        $id_objet   = $lien[3];
32        $texte      = $lien[1]!=''?$lien[1] : generer_info_entite($id_objet,$objet,'titre',true) .' - '. _T('zippeur:ensemble_fichier');
33        $nom_zip    = $objet."_".$id_objet;
34       
35        // constuire la liste des fichiers
36        $fichiers   = array();
37        $sql        = sql_select('maj,fichier','spip_documents INNER JOIN spip_documents_liens as L1',"spip_documents.statut='publie' AND L1.id_objet='$id_objet' AND L1.objet='$objet'",'','spip_documents.maj DESC');
38        $first = True;
39        while ($r = sql_fetch($sql)) {
40            if ($first == True){
41                $maj = $r['maj'];
42                $first=False;}
43            $fichiers[] = copie_locale(get_spip_doc($r['fichier']));
44        }
45        // construire le zip
46        $url_zip    = zippeur($fichiers,$maj,lire_config('zippeur/zippeur_cmd'),$nom_zip);
47
48        // constuitre le lien
49        $replace    = "<a href='$url_zip' type='application/zip' class='spip_in zippeur' title='$texte (". taille_en_octets(filesize($url_zip)).")'>$texte</a>";
50        $txt      = str_replace($lien[0],$replace,$txt);
51       
52   
53    }
54    return $txt;
55}
56?>
Note: See TracBrowser for help on using the repository browser.