Changeset 35513 in spip-zone for _plugins_/gestion_documents_stockage


Ignore:
Timestamp:
Feb 23, 2010, 11:19:33 PM (10 years ago)
Author:
cedric@…
Message:

nettoyage du plugin de Naxto pour le brancher sur le plugin mediatheque, sans surcharge

Location:
_plugins_/gestion_documents_stockage
Files:
28 deleted
2 edited
6 moved

Legend:

Unmodified
Added
Removed
  • _plugins_/gestion_documents_stockage/action/stockageS3_envoyer.php

    r35480 r35513  
    11<?php
     2/**
     3 * Plugin Stockage S3
     4 * Licence GPL (c) 2010 Natxo, Cedric
     5 *
     6 */
    27
    38if (!defined("_ECRIRE_INC_VERSION")) return;
    49
    5 // http://doc.spip.org/@action_virtualiser_dist
    6 function action_stockage_envoyer_dist() {
    7         if (!autoriser('stocker'))
    8                 die ('non');
    9 
    10 if ($id_document = intval(_request('arg'))
    11 AND $s = spip_query('SELECT * FROM spip_documents WHERE id_document='.$id_document)
    12 AND $t = sql_fetch($s)) {
    13 
    14         if ($t['distant'] == 'non') {
     10function action_stockageS3_envoyer_dist($arg=null) {
     11        if (is_null($arg)){
     12                $securiser_action = charger_fonction('securiser_action','inc');
     13                $arg = $securiser_action();
     14        }
     15       
     16        if ($id_document = intval($arg)
     17                AND autoriser('stocker','document',$id_document)
     18                AND $t = sql_fetsel('*','spip_documents','id_document='.intval($id_document))
     19                AND $t['distant'] == 'non'
     20                ){
    1521
    1622                $cfg = @unserialize($GLOBALS['meta']['stockage']);
     23
    1724                if (strlen($cfg['s3publickey'])
    18                 AND strlen($cfg['s3secretkey'])
    19                 AND strlen($cfg['s3bucket'])
    20                 ) {
     25                  AND strlen($cfg['s3secretkey'])
     26                  AND strlen($cfg['s3bucket'])) {
    2127
    2228                        $BUCKET = $cfg['s3bucket'];
     
    2531                        // charger la librairie Amazon S3
    2632                        // http://code.google.com/p/php-aws/source
    27                         require_once find_in_path('cloudfusion/cloudfusion.class.php');
    28                        
    29                        
     33                        require_once find_in_path('cloudfusion/cloudfusion.class.php');                 
    3034                        $s3 = new AmazonS3($cfg['s3publickey'], $cfg['s3secretkey']);
    31                        
    3235
    3336                        // Creer le bucket s'il n'existe pas deja
     
    4043                        }
    4144
    42 
    4345                        include_spip('inc/documents');
    4446                        include_spip('inc/distant');
    4547                       
    46                         //Size image, for future thumbnails. Now set "original"
    47                        
     48                        //Size image, for future thumbnails. Now set "original"                 
    4849                        $size_image= "original";
    4950
    5051                        // Ou doit-on deposer notre fichier ?
    51                        
    5252                        $path_info = pathinfo(get_spip_doc($t['fichier']));
    5353                       
    54                        
    55                         $src_site =  $GLOBALS['meta']['adresse_site']. "/" .str_replace("../", "" ,get_spip_doc($t['fichier']));
     54                        $src_site =  $GLOBALS['meta']['adresse_site']. "/" .substr(get_spip_doc($t['fichier']),strlen(_DIR_RACINE));
    5655                        $src =  get_spip_doc($t['fichier']);
    5756                        $dest =  $size_image. "-id" .$id_document. "-" .time(). "." .$path_info['extension'];
    58                          
    59                        
    6057
    6158                        // on l'envoie
     
    7067                        echo "enviado $s3_url";
    7168                        */
    72                        
    73                                
    74                                
    75                                 if ($s3_url != ""){
    76                                
    77                                         $url_distante = $s3_url;
    78                                         sql_updateq('spip_documents', array(
    79                                                 'fichier' => $url_distante,
    80                                                 'distant' => 'oui'
    81                                         ), 'id_document='.$id_document);
     69                        if ($s3_url != ""){
    8270
    83                                         rename (get_spip_doc($t['fichier']), "../".fichier_copie_locale($url_distante));
    84                                        
    85                                         //echo "<br><br>$src => $url_distante => ../".fichier_copie_locale($url_distante);
    86                                 }
    87                                
    88                        
    89                 }
     71                                $url_distante = $s3_url;
     72                                include_spip('action/editer_document');
     73                                rename (get_spip_doc($t['fichier']), _DIR_RACINE.fichier_copie_locale($url_distante));
     74                                document_set($id_document, array(
     75                                        'fichier' => $url_distante,
     76                                        'distant' => 'oui'
     77                                ));
     78                                //echo "<br><br>$src => $url_distante => ../".fichier_copie_locale($url_distante);
     79                        }                       
    9080                }
    91                 else {
    92                 include_spip('inc/distant');
    93                 echo $t['fichier'].' => '.fichier_copie_locale($t['fichier']);
    94                
    95                         if ($local = copie_locale($t['fichier'], 'test')) {
    96                                 // remettre en distant S3 un fichier dont on dispose de la copie locale, et qu'on aurait supprime de S3 ?
    97                         }
    98                 }
     81        }
    9982
    100 }
    101 
    102         //echo "\n<hr />fini";
    10383}
    10484
  • _plugins_/gestion_documents_stockage/fonds/cfg_stockage.html

    r35469 r35513  
    11[(#REM) titre=Gestion Documents Stockage]
    2 
    32[(#REM) autor iser=webmestre ]
    43
     
    5756]</select>
    5857
    59 <blockquote>
    60 <small>
    61 Test DNS :
    62 <br />
    63 [(#ENV{s3bucket}|checkdnsrr{CNAME}|?{
    64         <tt>[(#ENV{s3bucket})] CNAME [(#ENV{s3bucket}|dns_get_record{#EVAL{DNS_CNAME}}|var_export{1})]</tt>
    65 ,
    66         [(#ENV{s3bucket}|sinon{$bucket$})] <:gestdoc:registrement_cname_erreur:> <tt>CNAME</tt>
    67 })]
    68 </small></blockquote>
     58[(#ENV{s3bucket,''}|oui)
     59        <blockquote>
     60        <small>
     61        Test DNS :
     62        <br />
     63        [(#ENV{s3bucket}|checkdnsrr{CNAME}|?{
     64                <tt>[(#ENV{s3bucket})] CNAME [(#ENV{s3bucket}|filtrer{dns_get_record,#EVAL{DNS_CNAME}}|var_export{1})]</tt>
     65        ,
     66                [(#ENV{s3bucket}|sinon{$bucket$})] <:gestdoc:registrement_cname_erreur:> <tt>CNAME</tt>
     67        })]
     68        </small></blockquote>
     69]
    6970
    7071</label>
  • _plugins_/gestion_documents_stockage/lang/stockageS3_en.php

    r35480 r35513  
    44
    55$GLOBALS[$GLOBALS['idx_lang']] = array(
    6 
    7         // A
    8         'aucun_document' => 'No document',
    9         'aucun_file'=>'No document',
    10         'aucun_image'=>'No image',
    11         'aucun_audio'=>'No sound',
    12         'aucun_video'=>'No video',
    13         'aucune_utilisation'=>'This document isn\'t used.',
    14         'aucune_vignette' => 'No thumbnail',
    15 
    16        
    17         // B
    18         'bouton_copier_local'=>'Copy on the site',
    19         'bouton_download_depuis'=>'from:',
    20         'bouton_download_local' => 'my computer',
    21         'bouton_download_par_mediatheque' => 'media library',
    22         'bouton_download_par_ftp' => 'the server',
    23         'bouton_download_sur_le_web' => 'internet',
    24         'bouton_attacher_document' => 'Attach',
    25         'bouton_enlever_document' => 'Unlink',
    26         'bouton_enlever_supprimer_document' => 'Delete',
    27         'bouton_modifier_document' => 'Modify',
    28         'bouton_parcourir' => 'Browse...',
    29         'bouton_refresh_document' => 'Refresh document',
    30         'bouton_remplacer_image' => 'Replace this image',
    31         'bouton_remplacer_document' => 'Replace this document',
    32         'bouton_remplacer_image_document' => 'Replace by an image or a document',
    33         'bouton_supprimer' => 'Delete',
    34        
    35        
    36         // D
    37         'documents'=> 'Media library',
    38         'documents_distants'=> 'Remote',
    39         'documents_locaux'=> 'Local',
    40         'documents_non_publies'=> 'Unpublished',
    41         'documents_publies'=> 'Published',
    42         'documents_tous'=> 'All',
    43         'documents_brises' => 'Broken',
    44         'documents_orphelins' => 'Unused',
    45         'descriptif'=>'Description',
    46         'des_documents'=>'@nb@ documents',
    47         'des_files'=>'@nb@ documents',
    48         'des_images'=>'@nb@ images',
    49         'des_audios'=>'@nb@ sounds',
    50         'des_videos'=>'@nb@ videos',
    51         'des_utilisations'=>'@nb@ uses',
    52         'document_installe_succes' => 'The file was successfully uploaded',
    53         'document_copie_locale_succes' => 'The file was successfully copied on the site',
    54         'nb_documents_installe_succes' => '@nb@ files successfully uploaded',
    55         'document_vu' => 'Insert in text',
    56         'document_attache_succes' => 'The document was successfully added',
    576       
    587        // E
    598        'envoyer_s3' => 'Put into S3',
    60         'erreur_indiquez_un_fichier'=>'Specify a file!',
    61         'erreur_aucun_document'=>'This document doesn\'t exist in the media library',
    62         'erreur_aucun_fichier'=>'No file was found',
    63         'erreur_upload_type_interdit'=> "Downloading files of type @nom@ is not allowed",
    64         'erreur_chemin_ftp'=>'The specified file was not found on server',
    65         'erreur_chemin_distant' => 'The remote file @nom@ could not be found',
    66         'erreur_copie_fichier' => 'Unable to copy the file @nom@',
    67         'erreur_format_fichier_image' => 'The format of @nom@ is not suitable for an image',
    68         'erreur_upload_vignette' => 'Error loading thumbnail @nom@',
    69        
    70         // F
    71         'format_date_incorrect' => 'The date or time are incorrect',
    72         'fichier_modifie' => 'The file has been modified. Click save button.',
    73        
    74         // I
    75         'icone_creer_document' => 'Add a document',
    76         'id' => 'ID',
    77         'infos'=>'Technical infos',
    78         'info_modifier_document'=>'Modify the document',
    79         'info_heure' => 'Time',
    80         'info_largeur' => 'Width',
    81         'info_hauteur' => 'Height',
    82         'info_gauche_numero_document'=>'DOCUMENT NUMBER',
    83         'info_statut_document'=> 'This document is:',
    84         'info_illustrations' => 'Illustrations',
    85         'info_doc_max_poids' => 'Documents must necessarily be less than @maxi@ (this file is @actuel@).',
    86         'info_image_max_poids' => 'Images must necessarily be less than @maxi@ (this file is @actuel@).',
     9);
    8710
    88         // L
    89         'logo' => 'Logo',
    90         'label_refdoc_joindre' => 'Document number',
    91         'label_parents' => 'This document is linked to',
    92         'label_fichier' => 'File',
    93         'label_fichier_vignette' => 'Thumbnail',
    94         'label_caracteristiques' => 'Features',
    95         'label_apercu' => 'Overview',
    96         'label_credits' => 'Credits',
    97         'lien_tout_enlever' => 'Remove all',
    98        
    99         // M
    100         'media_audio' => 'Sounds',
    101         'media_video' => 'Videos',
    102         'media_image' => 'Images',
    103         'media_file' => 'Other',
    104        
    105         // P
    106         'par_id' => 'ID',
    107         'par_date' => 'Date',
    108         'par_taille' => 'Weight',
    109         'par_largeur' => 'Width',
    110         'par_hauteur' => 'Height',
    111         'par_titre' => 'Title',
    112        
    113         // T
    114         'tous_les_medias'=>'All media',
    115        
    116         // U
    117         'un_document' => '1 document',
    118         'un_file'=>'1 document',
    119         'un_image'=>'1 image',
    120         'un_audio'=>'1 sound',
    121         'un_video'=>'1 video',
    122         'une_utilisation'=>'1 use',
    123         'upload_info_mode_document' => 'Send to portfolio',
    124         'upload_info_mode_image' => 'Remove from portfolio',
    125        
    126         //
    127         'verifier_documents_brises' => 'Check missing files',
    128         'vignette_supprimee' => 'The thumbnail has been deleted',
    129 
    130        
    131 /*      'affichage' => 'Affichage :',
    132         'attr_alt' => 'Pas de balise alt ?? ',
    133         'conteneur' => 'Conteneur :',
    134         'fichier_introuvable' => 'Fichier introuvable',
    135         'filtrer' => 'Filtrer :',
    136         'info_breve' => 'Breve ',
    137         'info_breves' => 'Breves',
    138         'info_doc' => 'Cette page r&eacute;capitule la liste de tous vos documents. Pour modifier les informations de chaque document, suivez le lien vers la page de sa rubrique.',
    139         'info_reparer' => 'Cette page reconstitue les liens entre documents et articles dans lequel ils sont ins&eacute;r&eacute;s par un tag <code><imgxx> <docxx> ou <embxx></code>',
    140         'info_rubrique' => 'Rubrique ',
    141         'lien_ajoute' => 'lien ajout&eacute;',
    142         'mis_jour_liens' => 'Liens mis a jour',
    143         'mis_jour_tailles' => 'Mettre les tailles a jour',
    144         'par' => 'Par @numero@',
    145         'portfolio' => 'Portfolio',
    146         'reparer_liens' => 'Reparer les liens',
    147         'info_syndication' => 'Syndication',
    148         'sans_titre_descriptif' => 'Sans titre ni descriptif',
    149         'taille_erronee' => 'Taille erron&eacute;e',
    150         'type' => 'Type :',
    151         'tous' => 'Tous',
    152         'tous_doc'  => 'Tous vos documents',
    153         'tous_docs'  => 'Tous les Documents'*/
    154 );
    15511?>
  • _plugins_/gestion_documents_stockage/lang/stockageS3_es.php

    r35480 r35513  
    44
    55$GLOBALS[$GLOBALS['idx_lang']] = array(
    6 
    7         // A
    8         'aucun_document' => 'No hay documento',
    9         'aucun_file'=>'No hay documento',
    10         'aucun_image'=>'No hay imagen',
    11         'aucun_audio'=>'No hay banda sonora',
    12         'aucun_video'=>'No hay secuencia',
    13         'aucune_utilisation'=>'Este documento no se utiliza',
    14         'aucune_vignette' => 'No hay miniatura',
    15 
    16        
    17         // B
    18         'bouton_copier_local'=>'Copia en el sitio',
    19         'bouton_download_depuis'=>'depuis&nbsp;:',
    20         'bouton_download_local' => 'Mi PC',
    21         'bouton_download_par_mediatheque' => 'la biblioteca de medios',
    22         'bouton_download_par_ftp' => 'el servidor',
    23         'bouton_download_sur_le_web' => 'internet',
    24         'bouton_attacher_document' => 'Adjuntar',
    25         'bouton_enlever_document' => 'Separar',
    26         'bouton_enlever_supprimer_document' => 'Eliminar',
    27         'bouton_modifier_document' => 'Editar',
    28         'bouton_parcourir' => 'Navegar..',
    29         'bouton_refresh_document' => 'Actualizar el documento',
    30         'bouton_remplacer_image' => 'Sustituir esto imagen',
    31         'bouton_remplacer_document' => 'Sustituir este documento',
    32         'bouton_remplacer_image_document' => 'Sustituye por una imagen o documento',
    33         'bouton_supprimer' => 'Eliminar',
    34        
    35        
    36         // D
    37         'documents'=> 'Gesti&oacute;n de los documentos',
    38         'documents_distants'=> 'Remoto',
    39         'documents_locaux'=> 'Local',
    40         'documents_non_publies'=> 'Inedito',
    41         'documents_publies'=> 'Publicado',
    42         'documents_tous'=> 'Todo',
    43         'documents_brises' => 'Bris&eacute;s',
    44         'documents_orphelins' => 'No utilizados',
    45         'descriptif'=>'Descripci�n',
    46         'des_documents'=>'@nb@ documentos',
    47         'des_files'=>'@nb@ documentos',
    48         'des_images'=>'@nb@ im&#225;genes',
    49         'des_audios'=>'@nb@ bandas sonoras',
    50         'des_videos'=>'@nb@ secuencias',
    51         'des_utilisations'=>'@nb@ usos',
    52         'document_installe_succes' => 'El archivo ha sido cargado',
    53         'document_copie_locale_succes' => '     El archivo ha sido copiado en el sitio',
    54         'nb_documents_installe_succes' => '@nb@ los archivos cargados con exito',
    55         'document_vu' => 'Introducido en el texto',
    56         'document_attache_succes' => 'El documento ha sido a&#241;adido',
    57        
     6               
    587        // E
    598        'envoyer_s3' => 'Enviar a S3',
    60         'erreur_indiquez_un_fichier'=>'Especifique un archivo!',
    61         'erreur_aucun_document'=>'Este documento no existe en la biblioteca de medios',
    62         'erreur_aucun_fichier'=>'No se encontraron archivos',
    63         'erreur_upload_type_interdit'=> "       La descarga de archivos de tipo @nom@ no permitido",
    64         'erreur_chemin_ftp'=>'El archivo especificado no se encuentra en el servidor',
    65         'erreur_chemin_distant' => 'El archivo remoto @nom@ no se encontr�',
    66         'erreur_copie_fichier' => 'No se puede copiar el archivo @nom@',
    67         'erreur_format_fichier_image' => 'El formato de @nom@ no es adecuado para una imagen',
    68         'erreur_upload_vignette' => 'Error al cargar miniatura @nom@',
    69        
    70         // F
    71         'format_date_incorrect' => 'La fecha o la hora son incorrectas',
    72         'fichier_modifie' => 'El archivo ha sido modificado. Haga clic en Guardar.',
    73        
    74         // I
    75         'icone_creer_document' => 'A&#241;adir documento',
    76         'id' => 'ID',
    77         'infos'=>'Informaci&#243;n T&#233;cnica',
    78         'info_modifier_document'=>'Editar el documento',
    79         'info_heure' => 'Tiempo',
    80         'info_largeur' => 'Anchura',
    81         'info_hauteur' => 'Altura',
    82         'info_gauche_numero_document'=>'DOCUMENTO N&#218;MERO',
    83         'info_statut_document'=> 'Este documento es&nbsp;:',
    84         'info_illustrations' => 'Illustrator',
    85         'info_doc_max_poids' => 'Los documentos deber&#225;n ser inferior a @maxi@ (este archivo se @actuel@).',
    86         'info_image_max_poids' => 'Las im&#225;genes deben ser necesariamente menos @maxi@ (este archivo se @actuel@).',
    879
    88         // L
    89         'logo' => 'Logo',
    90         'label_refdoc_joindre' => 'Documento n&#250;mero',
    91         'label_parents' => 'Este documento est&#225; relacionado con',
    92         'label_fichier' => 'Archivo',
    93         'label_fichier_vignette' => 'Miniatura',
    94         'label_caracteristiques' => 'Caracter&#237;sticas',
    95         'label_apercu' => 'Aper&ccedil;u',
    96         'label_credits' => 'Cr&#233;ditos',
    97         'lien_tout_enlever' => 'Quitar todo',
    98        
    99         // M
    100         'media_audio' => 'Bandas sonoras',
    101         'media_video' => 'Secuencias',
    102         'media_image' => 'Im&#225;genes',
    103         'media_file' => 'Otro',
    104 
    105         // O
    106         'objet_documents'=>'Documentos',
    107        
    108         // P
    109         'par_id' => 'ID',
    110         'par_date' => 'Fecha',
    111         'par_taille' => 'Pesa',
    112         'par_largeur' => 'Anchura',
    113         'par_hauteur' => 'Altura',
    114         'par_titre' => 'Titulo',
    115        
    116         // T
    117         'tous_les_medias'=>'Todos los medios',
    118        
    119         // U
    120         'un_document' => '1 documento',
    121         'un_file'=>'1 documento',
    122         'un_image'=>'1 imagen',
    123         'un_audio'=>'1 banda sonora',
    124         'un_video'=>'1 secuencia',
    125         'une_utilisation'=>'1 usar',
    126         'upload_info_mode_document' => 'Enviar a el portfolio',
    127         'upload_info_mode_image' => 'Eliminar del portfolio',
    128        
    129         //
    130         'verifier_documents_brises' => 'Compruebe los archivos que faltan',
    131         'vignette_supprimee' => 'La miniatura se ha eliminado',
    132 
    133        
    134 /*      'affichage' => 'Affichage :',
    135         'attr_alt' => 'Pas de balise alt ?? ',
    136         'conteneur' => 'Conteneur :',
    137         'fichier_introuvable' => 'Fichier introuvable',
    138         'filtrer' => 'Filtrer :',
    139         'info_breve' => 'Breve ',
    140         'info_breves' => 'Breves',
    141         'info_doc' => 'Cette page r&eacute;capitule la liste de tous vos documents. Pour modifier les informations de chaque document, suivez le lien vers la page de sa rubrique.',
    142         'info_reparer' => 'Cette page reconstitue les liens entre documents et articles dans lequel ils sont ins&eacute;r&eacute;s par un tag <code><imgxx> <docxx> ou <embxx></code>',
    143         'info_rubrique' => 'Rubrique ',
    144         'lien_ajoute' => 'lien ajout&eacute;',
    145         'mis_jour_liens' => 'Liens mis a jour',
    146         'mis_jour_tailles' => 'Mettre les tailles a jour',
    147         'par' => 'Par @numero@',
    148         'portfolio' => 'Portfolio',
    149         'reparer_liens' => 'Reparer les liens',
    150         'info_syndication' => 'Syndication',
    151         'sans_titre_descriptif' => 'Sans titre ni descriptif',
    152         'taille_erronee' => 'Taille erron&eacute;e',
    153         'type' => 'Type :',
    154         'tous' => 'Tous',
    155         'tous_doc'  => 'Tous vos documents',
    156         'tous_docs'  => 'Tous les Documents'*/
    15710);
    15811?>
  • _plugins_/gestion_documents_stockage/lang/stockageS3_fr.php

    r35480 r35513  
    44
    55$GLOBALS[$GLOBALS['idx_lang']] = array(
    6 
    7         // A
    8         'aucun_document' => 'Aucun document',
    9         'aucun_file'=>'Aucun document',
    10         'aucun_image'=>'Aucune image',
    11         'aucun_audio'=>'Aucune bande son',
    12         'aucun_video'=>'Aucune s&eacute;quence',
    13         'aucune_utilisation'=>'Ce document n\'est pas utilis&eacute;',
    14         'aucune_vignette' => 'Aucune vignette',
    15 
    16        
    17         // B
    18         'bouton_copier_local'=>'Copier dans le site',
    19         'bouton_download_depuis'=>'depuis&nbsp;:',
    20         'bouton_download_local' => 'mon ordinateur',
    21         'bouton_download_par_mediatheque' => 'la mediath&egrave;que',
    22         'bouton_download_par_ftp' => 'le serveur',
    23         'bouton_download_sur_le_web' => 'internet',
    24         'bouton_attacher_document' => 'Attacher',
    25         'bouton_enlever_document' => 'Detacher',
    26         'bouton_enlever_supprimer_document' => 'Supprimer',
    27         'bouton_modifier_document' => 'Modifier',
    28         'bouton_parcourir' => 'Parcourir...',
    29         'bouton_refresh_document' => 'Rafraichir le document',
    30         'bouton_remplacer_image' => 'Remplacer cette image',
    31         'bouton_remplacer_document' => 'Remplacer ce document',
    32         'bouton_remplacer_image_document' => 'Remplacer par une image ou un document',
    33         'bouton_supprimer' => 'Supprimer',
    34         'bucket_nom' => 'Le nom du bucket &#224; utiliser (et &#224; cr&#233;er le cas &#233;ch&#233;ant)',
    356       
    367        //C
     
    389        'cle_publuque' => 'Votre clé publique Amazon S3',
    3910        'cle_secrete' => 'Votre cl&#233; secr&#232;te Amazon S3',
    40        
    41        
    42         // D
    43         'documents'=> 'Mediath&egrave;que',
    44         'documents_distants'=> 'Distants',
    45         'documents_locaux'=> 'Locaux',
    46         'documents_non_publies'=> 'Non publies',
    47         'documents_publies'=> 'Publies',
    48         'documents_tous'=> 'Tous',
    49         'documents_brises' => 'Bris&eacute;s',
    50         'documents_orphelins' => 'Inutilis&eacute;s',
    51         'descriptif'=>'Description',
    52         'des_documents'=>'@nb@ documents',
    53         'des_files'=>'@nb@ documents',
    54         'des_images'=>'@nb@ images',
    55         'des_audios'=>'@nb@ bandes sons',
    56         'des_videos'=>'@nb@ s&eacute;quences',
    57         'des_utilisations'=>'@nb@ utilisations',
    58         'document_installe_succes' => 'Le fichier a bien &eacute;t&eacute; charg&eacute;',
    59         'document_copie_locale_succes' => 'Le fichier a bien &eacute;t&eacute; copi&eacute; dans le site',
    60         'nb_documents_installe_succes' => '@nb@ fichiers charg&eacute;s avec succ&egrave;s',
    61         'document_vu' => 'Ins&eacute;r&eacute; dans le texte',
    62         'document_attache_succes' => 'Le document a bien &eacute;t&eacute; ajout&eacute;',
    63        
     11
    6412        // E
    6513        'envoyer_explication' => 'Pour envoyer vos fichiers sur Amazon S3 veuillez indiquer ci-dessous',
    66         'envoyer_s3' => 'Envoyer sur S3',
    67         'erreurs' => '@nb@ erreurs',
    68         'erreurs_voir' => 'Voir les @nb@ erreurs',
    69         'erreur_indiquez_un_fichier'=>'Indiquez un fichier !',
    70         'erreur_aucun_document'=>'Ce document n\'existe pas dans la mediath&egrave;que',
    71         'erreur_aucun_fichier'=>'Aucun fichier n\'a &eacute;t&eacute; trouv&eacute;',
    72         'erreur_upload_type_interdit'=> "Le telechargement des fichiers du type de @nom@ n'est pas autoris&eacute;",
    73         'erreur_chemin_ftp'=>'Le fichier indiqu&eacute; n\'a pas &eacute;t&eacute; trouv&eacute; sur le serveur',
    74         'erreur_chemin_distant' => 'Le fichier distant @nom@ n\'a pas pu &ecirc;tre trouv&eacute;',
    75         'erreur_copie_fichier' => 'Impossible de copier le fichier @nom@',
    76         'erreur_format_fichier_image' => 'Le format de @nom@ ne convient pas pour une image',
    77         'erreur_upload_vignette' => 'Erreur lors du chargement de la vignette @nom@',
    78          
    79        
    80         // F
    81         'format_date_incorrect' => 'La date ou l\'heure sont incorrectes',
    82         'fichier_modifie' => 'Le fichier a &eacute;t&eacute; modifi&eacute;. Cliquez sur enregistrer.',
    83        
    84         // I
    85         'icone_creer_document' => 'Ajouter un document',
    86         'id' => 'ID',
    87         'infos'=>'Infos techniques',
    88         'info_modifier_document'=>'Modifier le document',
    89         'info_heure' => 'Heure',
    90         'info_largeur' => 'Largeur',
    91         'info_hauteur' => 'Hauteur',
    92         'info_gauche_numero_document'=>'DOCUMENT NUM&Eacute;RO',
    93         'info_statut_document'=> 'Ce document est&nbsp;:',
    94         'info_illustrations' => 'Illustrations',
    95         'info_doc_max_poids' => 'Les documents doivent obligatoirement faire moins de @maxi@ (ce fichier fait @actuel@).',
    96         'info_image_max_poids' => 'Les images doivent obligatoirement faire moins de @maxi@ (ce fichier fait @actuel@).',
    97 
    98         // L
    99         'logo' => 'Logo',
    100         'label_refdoc_joindre' => 'Document num&eacute;ro',
    101         'label_parents' => 'Ce document est li&eacute; &agrave;',
    102         'label_fichier' => 'Fichier',
    103         'label_fichier_vignette' => 'Vignette',
    104         'label_caracteristiques' => 'Caract&eacute;ristiques',
    105         'label_apercu' => 'Aper&ccedil;u',
    106         'label_credits' => 'Cr&eacute;dits',
    107         'lien_tout_enlever' => 'Tout enlever',
    108        
    109         // M
    110         'media_audio' => 'Bandes sons',
    111         'media_video' => 'S&eacute;quences',
    112         'media_image' => 'Images',
    113         'media_file' => 'Autres',
    114 
    115         // O
    116         'objet_documents'=>'Documents',
    117        
    118         // P
    119         'par_id' => 'ID',
    120         'par_date' => 'Date',
    121         'par_taille' => 'Poids',
    122         'par_largeur' => 'Largeur',
    123         'par_hauteur' => 'Hauteur',
    124         'par_titre' => 'Titre',
    125        
    126        
     14        'envoyer_s3' => 'Envoyer sur S3',       
     15               
    12716        //R
    128        
    12917        'registre_cname_erreur' => 'n\'a pas d\'enregistrement',
    130        
    131         // T
    132         'tous_les_medias'=>'Tous les medias',
    133         'titre_page_documents_edit' => 'Modifier le document : @titre@',
    134        
    135         // U
    136         'un_document' => '1 document',
    137         'un_file'=>'1 document',
    138         'un_image'=>'1 image',
    139         'un_audio'=>'1 bande son',
    140         'un_video'=>'1 s&eacute;quence',
    141         'une_utilisation'=>'1 utilisation',
    142         'upload_info_mode_document' => 'D&eacute;poser dans le portfolio',
    143         'upload_info_mode_image' => 'Retirer du portfolio',
     18               
    14419        'url_s3' => 'L\'URL de vos fichiers',
    14520       
    146         //
    147         'verifier_documents_brises' => 'V&eacute;rifier les fichiers manquants',
    148         'vignette_supprimee' => 'La vignette a &eacute;t&eacute; supprim&eacute;e',
    149 
    150        
    151 /*      'affichage' => 'Affichage :',
    152         'attr_alt' => 'Pas de balise alt ?? ',
    153         'conteneur' => 'Conteneur :',
    154         'fichier_introuvable' => 'Fichier introuvable',
    155         'filtrer' => 'Filtrer :',
    156         'info_breve' => 'Breve ',
    157         'info_breves' => 'Breves',
    158         'info_doc' => 'Cette page r&eacute;capitule la liste de tous vos documents. Pour modifier les informations de chaque document, suivez le lien vers la page de sa rubrique.',
    159         'info_reparer' => 'Cette page reconstitue les liens entre documents et articles dans lequel ils sont ins&eacute;r&eacute;s par un tag <code><imgxx> <docxx> ou <embxx></code>',
    160         'info_rubrique' => 'Rubrique ',
    161         'lien_ajoute' => 'lien ajout&eacute;',
    162         'mis_jour_liens' => 'Liens mis a jour',
    163         'mis_jour_tailles' => 'Mettre les tailles a jour',
    164         'par' => 'Par @numero@',
    165         'portfolio' => 'Portfolio',
    166         'reparer_liens' => 'Reparer les liens',
    167         'info_syndication' => 'Syndication',
    168         'sans_titre_descriptif' => 'Sans titre ni descriptif',
    169         'taille_erronee' => 'Taille erron&eacute;e',
    170         'type' => 'Type :',
    171         'tous' => 'Tous',
    172         'tous_doc'  => 'Tous vos documents',
    173         'tous_docs'  => 'Tous les Documents'*/
    17421);
    17522?>
  • _plugins_/gestion_documents_stockage/modeles/stockageS3_actions.html

    r35480 r35513  
    66
    77]
    8 #CACHE{3600*100}
    9 <BOUCLE_docslies(DOCUMENTS spip_documents_liens){id_document}{id_objet}{objet}{statut?}>
    10         <div class="item #MODE vu_#VU statut_#STATUT[(#DISTANT|=={oui}|oui)distant]" id="doc#ID_DOCUMENT">
    11                 [(#EXTENSION|match{gif|png|jpg}|oui) #SET{id,#ID_VIGNETTE|?{#ID_VIGNETTE,#ID_DOCUMENT}}
    12                 <div class="tourner">
    13                         [(#BOUTON_ACTION{[(#CHEMIN{img_pack/tourner-gauche.gif}|balise_img{<:gestdoc:tourner_90L:>})],#URL_ACTION_AUTEUR{tourner,#GET{id}|concat{',-90'},#SELF},ajax})]
    14                         [(#BOUTON_ACTION{[(#CHEMIN{img_pack/tourner-droite.gif}|balise_img{<:gestdoc:tourner_90R:>})],#URL_ACTION_AUTEUR{tourner,#GET{id}|concat{',90'},#SELF},ajax})]
    15                         [(#BOUTON_ACTION{[(#CHEMIN{img_pack/tourner-180.gif}|balise_img{<:gestdoc:tourner_180:>})],#URL_ACTION_AUTEUR{tourner,#GET{id}|concat{',180'},#SELF},ajax})]
    16                 </div>]
    17                 [(#LOGO_DOCUMENT{60,60}|#URL_DOCUMENT)]
    18                 <h4 class="titrem">
    19                         [(#VU|=={oui}|oui)<img src='#CHEMIN{images/vu-16-10.png}' width='16' height='10' alt='<:gestdoc:document_vu:>' title='<:gestdoc:document_vu:>'/> ]
    20                         [<span class="fichier">(#FICHIER*|basename)</span>]
    21                         [<span class="#EDIT{titre} titre">(#TITRE|sinon{<i class="sanstitre"><:info_sans_titre:></i>})</span>]
    22                         <span class="image_loading"></span>
    23                 </h4>
    24                 <div class="infos">
    25                 [(#DISTANT|=={oui}|oui)<img src='#CHEMIN{img_pack/distant-16.png}' width='16' height='16' alt='<:gestdoc:fichier_distant:>' title='<:gestdoc:fichier_distant:>'/> <:gestdoc:documents_distants:><br /> ]<:info_numero_abbreviation:>#ID_DOCUMENT - #EXTENSION - [(#TAILLE|taille_en_octets)]
    26                 </div>
    27                 [<div class="mode">(#EXTENSION|match{^(jpg|gif|png)$}|et{#EVAL{_BOUTON_MODE_IMAGE}}|oui)
    28                         [(#MODE|=={image}|oui)
    29                         [(#BOUTON_ACTION{<:gestdoc:upload_info_mode_document:>,#URL_ACTION_AUTEUR{changer_mode_document,#ID_DOCUMENT-document,#SELF},ajax})]
    30                         ][(#MODE|=={image}|non)
    31                         [(#BOUTON_ACTION{<:gestdoc:upload_info_mode_image:>,#URL_ACTION_AUTEUR{changer_mode_document,#ID_DOCUMENT-image,#SELF},ajax})]
    32                         ]
    33                 </div>]
    34                 <div class="actions">
    35                         <a href="[(#SELF|parametre_url{timestamp,#REM|time})]" class="refresh none ajax"><:gestdoc:bouton_refresh_document:></a>
    36                         <BOUCLE_compte(DOCUMENTS_LIENS){id_document}{0,2} />
    37                         [(#TOTAL_BOUCLE|=={1}|et{#AUTORISER{modifier,#OBJET,#ID_OBJET}})[(#BOUTON_ACTION{<:gestdoc:bouton_enlever_supprimer_document:>,#URL_ACTION_AUTEUR{dissocier_document,#ID_OBJET-#OBJET-#ID_DOCUMENT-suppr-safe,#SELF},ajax})]<span>|</span>]
    38                         [(#AUTORISER{modifier,#OBJET,#ID_OBJET})[(#BOUTON_ACTION{<:gestdoc:bouton_enlever_document:>,#URL_ACTION_AUTEUR{dissocier_document,#ID_OBJET-#OBJET-#ID_DOCUMENT--safe,#SELF},ajax})]<span>|</span>]
    39                         <a href="#URL_ECRIRE{documents_edit,id_document=#ID_DOCUMENT}" target="_blank" class="editbox"><:gestdoc:bouton_modifier_document:></a>
    40                         <//B_compte>
    41                        
    42                         [(#DISTANT|=={non}|?{
    43                         <br />[(#BOUTON_ACTION{<:gestdoc:envoyer_s3:>, #URL_ACTION_AUTEUR{stockage_envoyer, #ID_DOCUMENT, #SELF}, ajax})]
    44                         ,
    45                         <br />[(#BOUTON_ACTION{<:gestdoc:bouton_copier_local:>, #URL_ACTION_AUTEUR{copier_local, #ID_DOCUMENT, #SELF}, ajax})]
    46                         })]
    47                        
    48                 </div>
    49                 <div class="nettoyeur"></div>
    50         </div>
    51 </BOUCLE_docslies>
     8<BOUCLE_docs(DOCUMENTS){id_document}{statut?}>
     9[(#DISTANT|=={non}|?{
     10<br />[(#BOUTON_ACTION{<:stockageS3:envoyer_s3:>, #URL_ACTION_AUTEUR{stockageS3_envoyer, #ID_DOCUMENT, #SELF}, ajax})]
     11,
     12<br />[(#BOUTON_ACTION{<:gestdoc:bouton_copier_local:>, #URL_ACTION_AUTEUR{copier_local, #ID_DOCUMENT, #SELF}, ajax})]
     13})]
     14</BOUCLE_docs>
  • _plugins_/gestion_documents_stockage/plugin.xml

    r35469 r35513  
    11<plugin>
    2         <nom>
    3         <multi>[fr]Mediath&egrave;que
    4         [it]Gestione dei documenti
    5         [es]Gesti&oacute;n de los documentos
    6         [ar]&#1605;&#1603;&#1578;&#1576;&#1577; &#1575;&#1604;&#1605;&#1587;&#1578;&#1606;&#1583;&#1575;&#1578;
    7         [en]Media library
    8         </multi>
    9         </nom>
    10         <icon>img_pack/portfolio-64.png</icon>
    11         <auteur>[Cedric MORIN->http://www.yterium.net] &amp; [romy.tetue.net->http://romy.tetue.net] &amp; superyms--(traduction)
    12         </auteur>
    13         <version>1.1.1</version>
    14         <version_base>0.8</version_base>
    15         <etat>stable</etat>
    16         <description><multi>
    17         [fr]Outils de gestion des documents, avec page r&eacute;capitulative listant tous les documents du site.
    18         [it]Utility di gestione dei documenti : una pagina che mostra tutti i documenti.
    19         [es]Utilidad de gesti&oacute;n de los documentos: una p&aacute;gina que resume todos los documentos del sitio.
    20         [ar]&#1571;&#1583;&#1575;&#1577; &#1604;&#1573;&#1583;&#1575;&#1585;&#1577; &#1575;&#1604;&#1605;&#1587;&#1578;&#1606;&#1583;&#1575;&#1578; &#1605;&#1606; &#1582;&#1604;&#1575;&#1604; &#1589;&#1601;&#1581;&#1577; &#1580;&#1575;&#1605;&#1593;&#1577; &#1578;&#1593;&#1585;&#1590; &#1603;&#1604; &#1575;&#1604;&#1605;&#1587;&#1578;&#1606;&#1583;&#1575;&#1578; &#1605;&#1606; &#1589;&#1608;&#1585; &#1608;&#1605;&#1604;&#1601;&#1575;&#1578; &#1605;&#1603;&#1578;&#1576;&#1610;&#1577; &#1608;&#1608;&#1587;&#1575;&#1574;&#1591; &#1605;&#1578;&#1593;&#1583;&#1583;&#1577;.
    21         [en]Document management tools, with summary page listing all the documents on the site.
    22         </multi></description>
    23         <lien>http://www.spip-contrib.net/mediatheque</lien> <!-- URI de documentation -->
    24         <install>base/gestdoc.php</install>
    25         <fonctions>gestdoc_fonctions.php</fonctions>
    26         <prefix>gestdoc</prefix>
     2        <nom>Document Cloud</nom>
     3        <auteur>Natxo</auteur>
     4        <version>0.1.0</version>
     5        <etat>test</etat>
     6        <description>Stockage des documents sur S3</description>
     7        <lien></lien> <!-- URI de documentation -->
     8        <prefix>stockageS3</prefix>
    279        <pipeline>
    28                 <nom>declarer_tables_interfaces</nom>
    29                 <inclure>base/gestdoc.php</inclure>
     10                <nom>document_desc_actions</nom>
     11                <inclure>stockageS3_pipeline.php</inclure>
    3012        </pipeline>
    3113        <pipeline>
    32                 <nom>declarer_tables_principales</nom>
    33                 <inclure>base/gestdoc.php</inclure>
     14                <nom>editer_document_actions</nom>
     15                <inclure>stockageS3_pipeline.php</inclure>
    3416        </pipeline>
    3517        <pipeline>
    36                 <nom>declarer_tables_auxiliaires</nom>
    37                 <inclure>base/gestdoc.php</inclure>
     18                <nom>formulaire_traiter</nom>
     19                <inclure>stockageS3_pipeline.php</inclure>
    3820        </pipeline>
    39         <pipeline>
    40                 <nom>post_edition</nom>
    41                 <inclure>gestdoc_pipelines.php</inclure>
    42         </pipeline>
    43         <pipeline>
    44                 <nom>affiche_gauche</nom>
    45                 <inclure>gestdoc_pipelines.php</inclure>
    46         </pipeline>
    47         <pipeline>
    48                 <nom>header_prive</nom>
    49                 <action>modalbox_insert_head</action>
    50                 <inclure>modalbox/modalbox_pipelines.php</inclure>
    51         </pipeline>
    52 
    53         <pipeline>
    54                 <nom>autoriser</nom>
    55                 <inclure>gestdoc_autoriser.php</inclure>
    56         </pipeline>
    57         <!-- avec plugin champs extras 2 -->
    58         <pipeline>
    59                 <nom>objets_extensibles</nom>
    60                 <inclure>gestdoc_pipelines.php</inclure>
    61         </pipeline>
    62         <bouton id='documents' parent='naviguer'>
    63                 <titre>gestdoc:documents</titre>
    64                 <icone>img_pack/portfolio-24.png</icone>
    65                 <url>portfolio</url>
    66         </bouton>
    67         <bouton id='documents21' parent='bando_edition'>
    68                 <titre>gestdoc:documents</titre>
    69                 <icone>images/portfolio-16.png</icone>
    70                 <url>portfolio</url>
    71         </bouton>
    7221        <necessite id="SPIP" version="[2.0.10;]" />
    73         <necessite id="spip_bonux" version="[1.8;]" />
    74         <utilise id="Z" version="[1.2.1;]" />
     22        <necessite id="gestdoc" version="[1.2.0;]" />
    7523        <categorie>maintenance</categorie>
    7624</plugin>
  • _plugins_/gestion_documents_stockage/stockageS3_pipeline.php

    r35480 r35513  
    11<?php
    22/**
    3  * Plugin Portfolio/Gestion des documents
    4  * Licence GPL (c) 2006-2008 Cedric Morin, romy.tetue.net
     3 * Plugin Stockage S3
     4 * Licence GPL (c) 2010 Natxo, Cedric
    55 *
    66 */
    77
     8function stockageS3_actif(){
     9        $cfg = @unserialize($GLOBALS['meta']['stockage']);
    810
    9 function gestdoc_post_edition($flux){
    10         // si on ajoute un document, mettre son statut a jour
    11         if($flux['args']['operation']=='ajouter_document'){
    12                 include_spip('action/editer_document');
    13                 // mettre a jour le statut si necessaire
    14                 instituer_document($flux['args']['id_objet']);
    15         }
    16         // si on institue un objet, mettre ses documents lies a jour
    17         elseif($flux['args']['operation']=='instituer' OR isset($flux['data']['statut'])){
    18                 if ($flux['args']['table']!=='spip_documents'){
    19                         // verifier d'abord les doublons !
    20                         $marquer_doublons_doc = charger_fonction('marquer_doublons_doc','inc');
    21                         $marquer_doublons_doc($flux['data'],$flux['args']['id_objet'],$flux['args']['type'],id_table_objet($flux['args']['type'], $flux['args']['serveur']),$flux['args']['table_objet'],$flux['args']['spip_table_objet'], '', $flux['args']['serveur']);
    22                         include_spip('base/abstract_sql');
    23                         $type = objet_type($flux['args']['table']);
    24                         $id = $flux['args']['id_objet'];
    25                         $docs = array_map('reset',sql_allfetsel('id_document','spip_documents_liens','id_objet='.intval($id).' AND objet='.sql_quote($type)));
    26                         include_spip('action/editer_document');
    27                         foreach($docs as $id_document)
    28                                 // mettre a jour le statut si necessaire
    29                                 instituer_document($id_document);
    30                 }
    31         }
    32         else {
    33                 if ($flux['args']['table']!=='spip_documents'){
    34                         // verifier les doublons !
    35                         $marquer_doublons_doc = charger_fonction('marquer_doublons_doc','inc');
    36                         $marquer_doublons_doc($flux['data'],$flux['args']['id_objet'],$flux['args']['type'],id_table_objet($flux['args']['type'], $flux['args']['serveur']),$flux['args']['table_objet'],$flux['args']['spip_table_objet'], '', $flux['args']['serveur']);
    37                 }
     11        if (strlen($cfg['s3publickey'])
     12                AND strlen($cfg['s3secretkey'])
     13                AND strlen($cfg['s3bucket']))
     14                return true;
     15        return true;
     16}
     17
     18function stockageS3_document_desc_actions($flux){
     19        if ($id_document = intval($flux['args']['id_document'])
     20                AND stockageS3_actif()){
     21                $flux['data'] .= recuperer_fond('modeles/stockageS3_actions', array('id_document'=>$id_document));
    3822        }
    3923        return $flux;
    4024}
    4125
    42 function gestdoc_affiche_gauche($flux){
    43        
    44         if (in_array($flux['args']['exec'],array('articles_edit','breves_edit','rubriques_edit'))
    45                 AND $table = preg_replace(",_edit$,","",$flux['args']['exec'])
    46                 AND $type = objet_type($table)
    47                 AND $id_table_objet = id_table_objet($type)
    48                 AND ($id = intval($flux['args'][$id_table_objet]) OR $id = 0-$GLOBALS['visiteur_session']['id_auteur'])
    49           AND (autoriser('joindredocument',$type,$id))){
    50                 $flux['data'] .= recuperer_fond('prive/editer/colonne_document',array('objet'=>$type,'id_objet'=>$id));
     26function stockageS3_editer_document_actions($flux){
     27        if ($id_document = intval($flux['args']['id_document'])
     28                AND stockageS3_actif()
     29                AND $distant = sql_getfetsel('distant', 'spip_documents', "id_document=".intval($id_document))
     30                AND $distant == 'non'){
     31                $flux['data'] .=
     32                        "<input type='submit' class='submit' name='stockageS3_envoyer' value='".attribut_html(_T('stockageS3:envoyer_s3'))."' />";
    5133        }
    52        
    5334        return $flux;
    5435}
    5536
    56 function gestdoc_objets_extensibles($objets){
    57         return array_merge($objets, array('document' => _T('gestdoc:objet_documents')));
     37function stockageS3_formulaire_traiter($flux){
     38        if ($flux['args']['form']=='editer_document'
     39                AND _request('stockageS3_envoyer')
     40          AND $id_document = $flux['data']['id_document']
     41                AND $flux['data']['message_ok']){
     42                $stockageS3_envoyer = charger_fonction('stockageS3_envoyer','action');
     43                $stockageS3_envoyer($id_document);
     44        }
     45        return $flux;
    5846}
Note: See TracChangeset for help on using the changeset viewer.