Changeset 90015 in spip-zone


Ignore:
Timestamp:
Jun 8, 2015, 11:50:21 AM (6 years ago)
Author:
arnaud.berard@…
Message:

report des modifs faites sur GitHub?

1.10.15

  • Ajout d'une fonction url_get_contents($url), utilisant en priorité curl, puis file_get_contents ou fopen, principalement pour s'adapter suivant les serveurs et versions de php. Utilisée uniquement pour le service Youtube en test.
  • Ajout d'un test sur le retour des données json.

1.10.14 :

  • Ajoute un champ de configuration API KEY YOUTUBE, et la réception des données json
  • Les vignettes de vidéos sont "mieux" gérées en mutu ou en site seul
  • On n’utilise plus la pipeline affiche_gauche, mais formulaire_fond : le formulaire d’ajout de vidéo est accessible quand on a la présence d’ajouter document, donc plus besoin d’éditer un objet pour ajouter une vidéo : on peut ajouter des vidéos, depuis la médiathèque, ou depuis la page vue de l’objet. Le formulaire reste groupé avec l’ajout de document et donc n'apparait plus en dessous des documents.
  • Ajout de l'export de configuration du plugin avec le plugin IEconfig
Location:
_plugins_/videos/trunk
Files:
3 added
1 deleted
6 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/videos/trunk/formulaires/configurer_videos.html

    r85392 r90015  
    1717[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
    1818[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
    19 
     19               
     20               
     21                <pre><code>
     22                        [(#CONFIG{videos/}|foreach)]
     23                </code></pre>
    2024        <form method="post" action=#ENV{action}><div>
    2125                #ACTION_FORMULAIRE{#ENV{action}}
     
    7882                                </ul>
    7983                        </li>
    80 
     84                        [(#REM) <!-- CFG Youtube -->]
    8185                        <li class="fieldset">
    8286                                <h3 class="legend"><:videos:cfg_titre_configurations_youtube:></h3>
    8387                                <ul>
     88                                        <li>
     89                                                <label for="youtube_api_key"><:videos:cfg_label_youtube_api_key:></label>
     90                                                <p class='explication'><:videos:cfg_explication_youtube_api_key:></p>
     91                                                <input type="text" name="youtube_api_key" id="youtube_api_key" value="#ENV{youtube_api_key}" class="text"/>
     92                                        </li>
     93                                        [(#REM) <!-- En cours : ajout de l'identifiant de chaine a diffuser,
     94                                                pour le skel youtube_channel
     95                                        <li>
     96                                                <label for="youtube_channel"><:videos:cfg_label_youtube_channel:></label>
     97                                                <p class='explication'><:videos:cfg_explication_youtube_channel:></p>
     98                                                <input type="text" name="youtube_channel" id="youtube_channel" value="#ENV{youtube_channel}" class="text"/>
     99                                        </li>
     100                                        -->]
    84101                                        <li>
    85102                                                <label for="liste_definition"><:videos:cfg_label_mode_confidentialite:></label>
  • _plugins_/videos/trunk/formulaires/insertion_video.php

    r77767 r90015  
    6363                include_spip('lib/Videopian'); // http://www.upian.com/upiansource/videopian/
    6464                $Videopian = new Videopian();
     65               
    6566                if($Videopian) {
    6667                        $infosVideo = $Videopian->get($url);
    6768                        $titre = $infosVideo->title;
    6869                        $descriptif = $infosVideo->description;
    69                   $nbVignette = abs(count($infosVideo->thumbnails)-1);  // prendre la plus grande vignette       
    70       $logoDocument = $infosVideo->thumbnails[$nbVignette]->url;
    71       $logoDocument_width = $infosVideo->thumbnails[$nbVignette]->width;
    72       $logoDocument_height = $infosVideo->thumbnails[$nbVignette]->height;     
     70                        $nbVignette = abs(count($infosVideo->thumbnails)-1);  // prendre la plus grande vignette       
     71                        $logoDocument = $infosVideo->thumbnails[$nbVignette]->url;
     72                        $logoDocument_width = $infosVideo->thumbnails[$nbVignette]->width;
     73                        $logoDocument_height = $infosVideo->thumbnails[$nbVignette]->height;     
    7374                } else {
    7475                        //echo 'Exception reçue : ',  $e->getMessage(), "\n";
    75                         spip_log("L'ajout automatique du titre et de la description a echoué","Plugin Vidéo(s)");
     76                        spip_log("L'ajout automatique du titre et de la description a echoué",'Videos');
    7677                }
    7778        }
     
    9495        if(array_key_exists('credits',$desc['field'])) if($infosVideo) $champs['credits'] = $infosVideo->author;
    9596        if(array_key_exists('statut',$desc['field'])) $champs['statut'] = 'publie';
    96   if(array_key_exists('media',$desc['field'])) $champs['media'] = 'video';
     97        if(array_key_exists('media',$desc['field'])) $champs['media'] = 'video';
    9798
    9899        /* Cas de la présence d'une vignette à attacher */
    99100        if($logoDocument){
     101               
    100102                include_spip('inc/distant');
    101                 if($fichier = preg_replace("#IMG/#", '', copie_locale($logoDocument))){ // set_spip_doc ne fonctionne pas... Je ne sais pas pourquoi
     103                // Dans las d'une mutu apparement le chemin n'est pas correct
     104                // on supprime donc tout ce qui peut se trouver avant IMG
     105                // http://lumadis.be/regex/test_regex.php?id=2543
     106                // Dans le cas d'une mutu sites/spip_site.tld/IMG/
     107                // Site spip seul
     108                // IMG/
     109               
     110//var_dump(copie_locale($logoDocument));
     111       
     112                if($fichier = preg_replace("#[a-z0-9/\._-]*IMG/#i", '', copie_locale($logoDocument))){
    102113                        $champsVignette['fichier'] = $fichier;
    103114                        $champsVignette['mode'] = 'vignette';       
    104       // champs extra à intégrer ds SPIP 3
    105       if(array_key_exists('statut',$desc['field'])) $champsVignette['statut'] = 'publie';
    106       if(array_key_exists('media',$desc['field']))  $champsVignette['media'] = 'image';
    107        
    108                        
    109                         // Recuperer les tailles
    110                         $champsVignette['taille'] = @intval(filesize($fichier));
    111                         $size_image = @getimagesize($fichier);
    112                         $champsVignette['largeur'] = intval($size_image[0]);
    113                         $champsVignette['hauteur'] = intval($size_image[1]);
    114                         // $infos['type_image'] = decoder_type_image($size_image[2]);
    115       if ($champsVignette['largeur']==0) {              // en cas d'echec, recuperer les infos videopian
    116            $champsVignette['largeur'] = $logoDocument_width;
    117            $champsVignette['hauteur'] = $logoDocument_height;
    118       }
     115     
     116                        // champs extra à intégrer ds SPIP 3
     117                        if(array_key_exists('statut',$desc['field'])) $champsVignette['statut'] = 'publie';
     118                        if(array_key_exists('media',$desc['field']))  $champsVignette['media'] = 'image';
     119                         
     120                                 
     121                                  // Recuperer les tailles
     122                                  $champsVignette['taille'] = @intval(filesize($fichier));
     123                                  $size_image = @getimagesize($fichier);
     124                                  $champsVignette['largeur'] = intval($size_image[0]);
     125                                  $champsVignette['hauteur'] = intval($size_image[1]);
     126                                  // $infos['type_image'] = decoder_type_image($size_image[2]);
     127                        if ($champsVignette['largeur']==0) {              // en cas d'echec, recuperer les infos videopian
     128                                 $champsVignette['largeur'] = $logoDocument_width;
     129                                 $champsVignette['hauteur'] = $logoDocument_height;
     130                        }
    119131     
    120132                        // Ajouter
    121133                        $id_vignette = sql_insertq('spip_documents',$champsVignette);
    122134                        if($id_vignette) $champs['id_vignette'] = $id_vignette;
    123                 }
    124                 else{ spip_log("Echec de l'insertion du logo $logoDocument pour la video $document","Plugin Vidéo(s)"); }
     135               
     136                }else{
     137                        spip_log("Echec de l'insertion du logo $logoDocument pour la video $document",'Videos'); }
    125138        }
    126139       
    127140        $document = sql_insertq('spip_documents',$champs);
    128         if($document){
     141        if($document AND $id_objet){
    129142                $document_lien = sql_insertq(
    130143                        'spip_documents_liens',
  • _plugins_/videos/trunk/lang/videos_fr.php

    r85398 r90015  
    1818        'cfg_explication_responsive' => 'Rendre les largeurs et hauteurs de la vidéo fluides : permet de mieux l’intégrer au sein d’un site "responsive".',
    1919        'cfg_explication_titre_descriptif' => 'Afficher le titre et la description des vidéos. Cette option reste surchargeable dans l’appel au modèle.',
    20         'cfg_explication_wmode' => 'Choisissez le mode à appliquer pour les objets Flash (fallback Flowplayer, iFrames Dailymotion, Youtube, Vimeo).',
     20        'cfg_explication_youtube_api_key'=> 'Pour pouvoir accéder aux données des vidéos Youtube, vous devez renseigner une API KEY',
     21    'cfg_explication_youtube_channel'=> 'ID de la chaine youtube par défaut que vous souhaitez diffuser',
     22    'cfg_explication_wmode' => 'Choisissez le mode à appliquer pour les objets Flash (fallback Flowplayer, iFrames Dailymotion, Youtube, Vimeo).',
    2123        'cfg_label_afficher_commandes' => 'Commandes du lecteur',
    2224        'cfg_label_afficher_suggestions' => 'Suggestions de vidéos',
     
    2931        'cfg_label_titre_descriptif' => 'Titre et descriptif',
    3032        'cfg_label_wmode' => 'Wmode par défaut',
     33    'cfg_label_youtube_api_key' => 'Youtube API Key',
     34    'cfg_label_youtube_channel' => 'Youtube Channel',
    3135        'cfg_titre_configurations_communes' => 'Configurations communes',
    3236        'cfg_titre_configurations_dailymotion' => 'Configurations Dailymotion',
  • _plugins_/videos/trunk/lib/Videopian.php

    r88166 r90015  
    6363    # Specify here the API keys for the services you want to use.
    6464    # You'll need to request one for each.
    65 
     65   
    6666    const VEOH_API_KEY      = '';
    6767    const FLICKR_API_KEY    = '';
     
    7070    const REVVER_LOGIN      = '';
    7171    const REVVER_PASSWORD   = '';
     72
    7273
    7374
     
    107108            '#viddler\.com/explore/.*/videos/(?P<id>[0-9]*)/?#i'       => 'viddler',
    108109            '#vimeo\.com\/(?P<id>[0-9]*)[\/\?]?#i'                     => 'vimeo',
    109             '#youtu\.be\/([a-zA-Z0-9_-]*)[\/\?]?#i'                    => 'youtube',
     110            '#youtu\.be\/(?P<id>[a-zA-Z0-9_-]*)[\/\?]?#i'               => 'youtube',
    110111            '#youtube\.[a-z]{0,5}/.*[\?&]?v(?:\/|=)?(?P<id>[^&]*)#i'   => 'youtube'
    111112        );
     
    117118                self::$service = $service;
    118119                self::$id = $matches['id'];
     120//var_dump($matches);
    119121            }
    120122        }
    121123    }
    122124
    123     # ======================================================================================================
    124     # Check the availability of an URL, throwing an exception if the resource is unavailable for some reason
    125     # (a bit tricky but working nontheless)
     125    /** checkAvailability
     126     *
     127     * Check the availability of an URL, throwing an exception if the resource is unavailable for some reason
     128     * (a bit tricky but working nontheless)
     129     *
     130     * @param $url
     131    */
    126132    private static function checkAvailability($url) {
    127133
     
    137143    }
    138144
     145   
     146    /**
     147     * url_get_contents
     148     *
     149     * <http://stackoverflow.com/questions/3979802/alternative-to-file-get-contents>
     150     *
     151     * @param $url
     152     *
     153    */
     154    private static function url_get_contents($url) {
     155        if (function_exists('curl_exec')){
     156            $conn = curl_init($url);
     157            curl_setopt($conn, CURLOPT_SSL_VERIFYPEER, true);
     158            curl_setopt($conn, CURLOPT_FRESH_CONNECT,  true);
     159            curl_setopt($conn, CURLOPT_RETURNTRANSFER, 1);
     160            $url_get_contents_data = (curl_exec($conn));
     161            curl_close($conn);
     162        }elseif(function_exists('file_get_contents')){
     163            $url_get_contents_data = file_get_contents($url);
     164        }elseif(function_exists('fopen') && function_exists('stream_get_contents')){
     165            $handle = fopen ($url, "r");
     166            $url_get_contents_data = stream_get_contents($handle);
     167        }else{
     168            $url_get_contents_data = false;
     169        }
     170       
     171        return $url_get_contents_data;
     172    }
     173   
     174   
    139175    # ================================================================================
    140176    # Fetch and return the video data
     
    143179        self::$url = $url;
    144180        self::$oembed = $oembed;
    145         if($format != 'xml' && $format != 'json') throw new Videopian_Exception(Videopian_Exception::WRONG_OEMBED_FORMAT);
    146         else self::$format = $format;
     181        if($format != 'xml' && $format != 'json')
     182            throw new Videopian_Exception(Videopian_Exception::WRONG_OEMBED_FORMAT);
     183        else
     184            self::$format = $format;
     185           
    147186        self::$max_width = $max_width;
    148187        self::$max_height = $max_height;
    149188
    150189        // Detecting PHP Simple HTML DOM Parser
    151         if (class_exists('simple_html_dom')) self::$html_parser = new simple_html_dom();
     190        if (class_exists('simple_html_dom'))
     191            self::$html_parser = new simple_html_dom();
    152192
    153193        self::processUrl();
     
    157197        self::$video->site = self::$service;
    158198       
    159         if(null === self::$service) return self::getPageMetadata();
     199        if(null === self::$service)
     200            return self::getPageMetadata();
    160201
    161202        $method = sprintf('get%s', ucfirst(self::$service));
     203       
    162204        if (!is_callable(array(__CLASS__, $method))) {
    163205            throw new Videopian_Exception(Videopian_Exception::SERVICE_NOT_SUPPORTED);
    164206        }
     207       
    165208        return call_user_func(array(__CLASS__, $method));
    166 
    167209    }
    168210
     
    225267
    226268
     269   
    227270    public static function getAtom() {
    228271       
     
    895938       
    896939       
    897     # --------------------------------------------------------------------------------
     940    // -----------------------------------------------------------
     941    // A revoir ...
     942    // -----------------------------------------------------------
    898943    public static function getVimeo() {
    899944
     
    9681013       
    9691014       
    970     # --------------------------------------------------------------------------------
     1015    /**
     1016     * getYoutube
     1017     *
     1018    */
    9711019    public static function getYoutube() {
    9721020       
    9731021        if(self::$oembed) {
    9741022            $oembed_url = 'http://www.youtube.com/oembed?url='.urlencode(self::$url).'&format='.self::$format;
    975             if(self::checkAvailability($oembed_url)) return @file_get_contents($oembed_url);
    976         }
    977        
    978         # XML data URL
    979         $file_data = 'http://gdata.youtube.com/feeds/api/videos/'.self::$id;
     1023           
     1024            if(self::checkAvailability($oembed_url))
     1025                return @file_get_contents($oembed_url);
     1026        }
     1027       
     1028        # API KEY
     1029        include_spip('inc/config');
     1030        if(!$youtube_api_key = lire_config('videos/youtube_api_key')){
     1031            throw new Videopian_Exception(Videopian_Exception::API_KEY_NEEDED);
     1032        }
     1033        //$file_data = 'http://gdata.youtube.com/feeds/api/videos/'.self::$id;
     1034        $file_data = 'https://www.googleapis.com/youtube/v3/videos?part=snippet,contentDetails&id='.self::$id.'&key='.$youtube_api_key;
     1035       
    9801036        self::checkAvailability($file_data);
    981         self::$video->xml_url = $file_data;
    982        
    983         # XML
    984         $xml = new SimpleXMLElement(file_get_contents($file_data));
    985         $xml->registerXPathNamespace('a', 'http://www.w3.org/2005/Atom');
    986         $xml->registerXPathNamespace('media', 'http://search.yahoo.com/mrss/');
    987         $xml->registerXPathNamespace('yt', 'http://gdata.youtube.com/schemas/2007');
    988        
    989         # Title
    990         $title_query = $xml->xpath('/a:entry/a:title');
    991         self::$video->title = $title_query ? strval($title_query[0]) : false;
    992        
     1037        //self::$video->xml_url = $file_data;
     1038       
     1039        $json_datas = json_decode(self::url_get_contents($file_data), true);
     1040        if(!$json_datas)
     1041            throw new Videopian_Exception(Videopian_Exception::GENERIC_ERROR);
     1042
     1043        $video_infos = $json_datas['items'][0]['snippet'];
     1044
     1045        $content_details = $json_datas['items'][0]['contentDetails'];
     1046       
     1047        #Title
     1048        self::$video->title = $video_infos['title'] ? strval($video_infos['title']) : false ;
    9931049        # Description
    994         $description_query = $xml->xpath('/a:entry/a:content');
    995         self::$video->description = $description_query ? strval(trim($description_query[0])) : false;
    996        
    997         # Tags
    998         $tags_query = $xml->xpath('/a:entry/media:group/media:keywords');
    999         if($tags_query) {
    1000             $tags = explode(',', strval($tags_query[0]));
    1001             foreach($tags as $t) self::$video->tags[] = trim($t);
    1002         }
    1003        
     1050        self::$video->description = $video_infos['description'] ? strval($video_infos['description']) : false ;
     1051
    10041052        # Duration
    1005         $duration_query = $xml->xpath('/a:entry/media:group/yt:duration/@seconds');
    1006         self::$video->duration = $duration_query ? intval($duration_query[0]) : false;
    1007        
    1008         # Author & author URL
    1009         $author_query = $xml->xpath('/a:entry/a:author/a:name');
    1010         self::$video->author = $author_query ? strval($author_query[0]) : false;
    1011         self::$video->author_url = 'http://www.youtube.com/'.self::$video->author;
    1012        
    1013         # Publication date
    1014         $date_published_query = $xml->xpath('/a:entry/a:published');
    1015         self::$video->date_published = $date_published_query ? new DateTime($date_published_query[0]) : false;
    1016        
    1017         # Last update date
    1018         $date_updated_query = $xml->xpath('/a:entry/a:updated');
    1019         self::$video->date_updated = $date_updated_query ? new DateTime($date_updated_query[0]) : false;
     1053        self::$video->duration = $content_details['duration'] ? intval($content_details['duration']) : false ;
     1054       
    10201055       
    10211056        # Thumbnails
    1022         $thumbnail_query = $xml->xpath('/a:entry/media:group/media:thumbnail');
    1023         foreach ($thumbnail_query as $t) {
     1057        $thumbnails = $video_infos['thumbnails'];
     1058       
     1059        foreach ($thumbnails as $t) {
    10241060            $thumbnail = new stdClass;
    1025             $thumbnail_query = $t->attributes();
     1061            $thumbnail_query = $t;
    10261062            $thumbnail->url = strval($thumbnail_query['url']);
    10271063            $thumbnail->width = intval($thumbnail_query['width']);
     
    10301066        }
    10311067       
     1068       
     1069       
     1070       
     1071        // # Tags
     1072        // @todo
     1073        //$tags_query = $xml->xpath('/a:entry/media:group/media:keywords');
     1074        //if($tags_query) {
     1075        //    $tags = explode(',', strval($tags_query[0]));
     1076        //    foreach($tags as $t) self::$video->tags[] = trim($t);
     1077        //}
     1078       
     1079       
     1080       
     1081        # Author & author URL: @todo
     1082        //$author_query = $xml->xpath('/a:entry/a:author/a:name');
     1083        //self::$video->author = $author_query ? strval($author_query[0]) : false;
     1084        //self::$video->author_url = 'http://www.youtube.com/'.self::$video->author;
     1085       
     1086        # Publication date
     1087        //$date_published_query = $xml->xpath('/a:entry/a:published');
     1088        //self::$video->date_published = $date_published_query ? new DateTime($date_published_query[0]) : false;
     1089       
     1090        # Last update date
     1091        //$date_updated_query = $xml->xpath('/a:entry/a:updated');
     1092        //self::$video->date_updated = $date_updated_query ? new DateTime($date_updated_query[0]) : false;
     1093       
     1094       
    10321095        # Player URL
    1033         self::$video->player_url = 'http://www.youtube.com/v/'.self::$id;
     1096        //self::$video->player_url = 'http://www.youtube.com/v/'.self::$id;
    10341097       
    10351098        # Files URL
    1036         self::$video->files = array();
    1037 
    1038         $files_data = 'http://www.youtube.com/get_video_info?&video_id='.self::$id;
    1039         $files = file_get_contents($files_data);
    1040         preg_match('#&token=([^&]*)#', $files, $matches);
    1041         $token = $matches[1];
    1042 
    1043         # FLV file URL
    1044         self::$video->files['video/x-flv'] = 'http://www.youtube.com/get_video?video_id='.self::$id.'&t='.$token;
    1045         self::$video->files['video/mp4'] = 'http://www.youtube.com/get_video?video_id='.self::$id.'&t='.$token.'&fmt=18';
    1046        
     1099        // self::$video->files = array();
     1100        //
     1101        //$files_data = 'http://www.youtube.com/get_video_info?&video_id='.self::$id;
     1102        //$files = file_get_contents($files_data);
     1103        //preg_match('#&token=([^&]*)#', $files, $matches);
     1104        //$token = $matches[1];
     1105        //
     1106        //# FLV file URL
     1107        //self::$video->files['video/x-flv'] = 'http://www.youtube.com/get_video?video_id='.self::$id.'&t='.$token;
     1108        //self::$video->files['video/mp4'] = 'http://www.youtube.com/get_video?video_id='.self::$id.'&t='.$token.'&fmt=18';
     1109
     1110// var_dump(self::$video);       
    10471111        return self::$video;
    10481112    }
    1049 
     1113   
     1114    // -----------------------------------------------------------
     1115
     1116   
    10501117    # --------------------------------------------------------------------------------
    10511118    public static function generateOEmbed() {
  • _plugins_/videos/trunk/paquet.xml

    r88165 r90015  
    22        prefix="videos"
    33        categorie="multimedia"
    4         version="0.10.12"
     4        version="0.10.15"
    55        etat="dev"
    66        compatibilite="[3.0.0;3.1.*]"
     
    1414
    1515        <auteur lien="http://demo.apsulis.com" mail="XDjuj@apsulis.com">XDjuj</auteur>
    16 
     16        <auteur lien="http://www.mister-graphx.com" mail="arnaud@mister-graphx.com">Arnaud B. (Mist. GraphX)</auteur>
     17       
    1718        <copyright>2010</copyright>
    1819
    1920        <licence lien="http://www.gnu.org/licenses/gpl-3.0.html">GPL 3</licence>
    2021
    21         <pipeline nom="insert_head" inclure="videos3_pipelines.php" />
    22         <pipeline nom="insert_head_css" inclure="videos3_pipelines.php" />
    23         <pipeline nom="header_prive" action="insert_head" inclure="videos3_pipelines.php" />
    24         <pipeline nom="jquery_plugins" inclure="videos3_pipelines.php" />
    25         <pipeline nom="affiche_gauche" inclure="videos3_pipelines.php" />
    26 
     22        <pipeline nom="insert_head" inclure="videos_pipelines.php" />
     23        <pipeline nom="insert_head_css" inclure="videos_pipelines.php" />
     24        <pipeline nom="header_prive" action="insert_head" inclure="videos_pipelines.php" />
     25        <pipeline nom="jquery_plugins" inclure="videos_pipelines.php" />
     26    <pipeline nom="formulaire_fond" inclure="videos_pipelines.php" />
     27        <pipeline nom="ieconfig_metas" inclure="videos_pipelines.php" />
     28       
    2729        <necessite nom="medias" compatibilite="[2.7.27;[" />
    2830
  • _plugins_/videos/trunk/videos_pipelines.php

    r64694 r90015  
    22if (!defined("_ECRIRE_INC_VERSION")) return;
    33
     4function videos_ieconfig_metas($table){
     5        $table['videos']['titre'] = _T('paquet-videos:videos_nom');
     6    $table['videos']['icone'] = 'prive/themes/spip/images/videos-16.png';
     7    $table['videos']['metas_serialize'] = 'videos';
     8        return $table;
     9}
     10
    411function videos_insert_head($flux){
     12        include_spip('inc/config');
     13        $flux .="
     14<!-- Variables de configuration pour le plugin Vidéo(s) -->
     15<script type='text/javascript'>var CONFIG_WMODE = '".lire_config('videos/wmode','opaque')."';</script>\n".
     16"<!-- // Vidéo(s) -->"."\n";
     17        return $flux;
     18}
     19
     20function videos_insert_head_css($flux){
    521        include_spip('inc/config');
    622        $css = find_in_path('theme/css/videos.css');
    723        $flux .="
    8 <!-- Variables de configuration pour le plugin Vidéo(s) -->
    9 <script type='text/javascript'>var CONFIG_WMODE = '".lire_config('videos/wmode','opaque')."';</script>\n".
     24<!-- CSS pour le plugin Vidéo(s) -->".
    1025'<link rel="stylesheet" href="'.direction_css($css).'" type="text/css" media="all" />'.
    1126"<!-- // Vidéo(s) -->"."\n";
     
    1833}
    1934
    20 function videos_affiche_gauche($flux) {
     35function videos_formulaire_fond($flux) {
    2136
    22         include_spip('inc/autoriser');
    23                
    24         if (in_array($flux['args']['exec'],$GLOBALS['medias_exec_colonne_document'])
    25                 AND $table = preg_replace(",_edit$,","",$flux['args']['exec'])
    26                 AND $type = objet_type($table)
    27                 AND $id_table_objet = id_table_objet($type)
    28                 AND ($id = intval($flux['args'][$id_table_objet]) OR $id = 0-$GLOBALS['visiteur_session']['id_auteur'])
    29           AND (autoriser('joindredocument',$type,$id))){
    30                 $flux['data'] .= recuperer_fond('prive/contenu/videos_affiche_boite',array('objet'=>$type,'id_objet'=>$id));
     37    if ($flux['args']['form'] == 'joindre_document') {
     38                $videos = recuperer_fond(
     39            'prive/contenu/videos_affiche_boite',
     40            array(
     41                'objet' => $flux['args']['contexte']['objet'],
     42                'id_objet' => $flux['args']['contexte']['id_objet']
     43            )
     44        );
     45                // Injecter videos au dessus du formulaire joindre_document.
     46        $flux['data'] = $flux['data'].$videos;
    3147        }
    32        
     48
    3349        return $flux;
    3450}
    35 
    3651?>
Note: See TracChangeset for help on using the changeset viewer.