Changeset 54486 in spip-zone


Ignore:
Timestamp:
Nov 15, 2011, 11:07:58 AM (8 years ago)
Author:
cedric@…
Message:

PHPDoc
ne pas modifier le type de oembed car ca casse l'insertion auto dans pre_propre
a la place on specifie un media si connu, et on le prend en compte lors de l'insertion en base du document
ajouter un cache sur le mode oembed (mais inactif dans l'espace prive, et n'empeche pas de multiples hit aux providers sur une page invalidee dans le public)

Location:
_plugins_/oembed
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/oembed/modeles/oembed.html

    r54447 r54486  
     1#CACHE{7*24*3600}
    12[(#SET{data,#ENV**{url}|oembed_recuperer_data})
    23][(#GET{data}|oui)
  • _plugins_/oembed/oembed/posttraite_soundcloud_rich.php

    r54471 r54486  
    1010function oembed_posttraite_soundcloud_rich_dist($data){
    1111
    12         $data['type'] = 'sound';
     12        $data['media'] = 'sound';
    1313        $data['html'] = preg_replace(",width=['\"][0-9]+['\"],i",'width="100%"',$data['html']);
    1414
  • _plugins_/oembed/oembed_pipelines.php

    r54485 r54486  
    5757}
    5858
    59 // insertion des traitements oembed dans l'ajout des documents distants
     59/**
     60 * insertion des traitements oembed dans l'ajout des documents distants
     61 * reconnaitre une URL oembed (car provider declare ou decouverte automatique active)
     62 * et la pre-traiter pour recuperer le vrai document a partir de l'url concernee
     63 *
     64 * @param array $flux
     65 * @return array
     66 */
    6067function oembed_renseigner_document_distant($flux) {
    61         $medias = array('photo' => 'image','video' => 'video', 'sound' => 'audio');
     68        $medias = array('photo' => 'image','video' => 'video');
    6269        include_spip('inc/config');
    6370        include_spip('inc/oembed');
     
    7683                                $doc['titre'] = $data['title'];
    7784                                $doc['credits'] = $data['author_name'];
    78                                 if (isset($medias[$data['type']]))
     85                                if (isset($data['media']))
     86                                        $doc['media'] = $data['media'];
     87                                elseif (isset($medias[$data['type']]))
    7988                                        $doc['media'] = $medias[$data['type']];
    8089                                return $doc;
     
    97106                        $doc['titre'] = $data['title'];
    98107                        $doc['credits'] = $data['author_name'];
    99                         if (isset($medias[$data['type']]))
     108                        if (isset($data['media']))
     109                                $doc['media'] = $data['media'];
     110                        elseif (isset($medias[$data['type']]))
    100111                                $doc['media'] = $medias[$data['type']];
    101112                        return $doc;
     
    105116}
    106117
    107 // attacher la vignette si disponible pour les documents oembed
     118/**
     119 * attacher la vignette si disponible pour les documents oembed
     120 * on les reconnait via la presence d'un oembed non vide
     121 * on relance un appel a oembed_recuperer_data qui a garde la requete precendente en cache
     122 *
     123 * @param array $flux
     124 * @return array
     125 */
    108126function oembed_post_edition($flux) {
    109127        if($flux['args']['action']=='ajouter_document' AND $flux['data']['oembed']){
     
    115133                                // cf formulaires_illustrer_document_traiter_dist()
    116134                                $ajouter_documents = charger_fonction('ajouter_documents', 'action');
     135                                $files = false;
    117136                                if (preg_match(",^\w+://,",$data['thumbnail_url'])){
    118                                         include_spip('inc/joindre_document');
    119                                         set_request('url',$data['thumbnail_url']);
    120                                         set_request('joindre_distant','oui');
    121                                         $files = joindre_trouver_fichier_envoye();
     137                                        $files = array(
     138                                                array(
     139                                                        'name' => basename($data['thumbnail_url']),
     140                                                        'tmp_name' => $data['thumbnail_url'],
     141                                                        'distant' => true,
     142                                                )
     143                                        );
    122144                                }
    123145                                elseif (file_exists($data['thumbnail_url'])) {
     
    127149                                        ));
    128150                                }
    129                                 $ajoute = action_ajouter_documents_dist('new',$files,'',0,'vignette');
    130                                 if (is_int(reset($ajoute))){
     151                                if ($files
     152                                        AND $ajoute = action_ajouter_documents_dist('new',$files,'',0,'vignette')
     153                                  AND is_int(reset($ajoute))){
    131154                                        $id_vignette = reset($ajoute);
    132155                                        include_spip('action/editer_document');
    133                                         document_set($id_document,array("id_vignette" => $id_vignette,'mode'=>'document'));
    134                                         // pour ne pas se retrouver avec l'url de la vignette dans l'input du formulaire au retour
    135                                         set_request('url','');
     156                                        document_modifier($id_document,array("id_vignette" => $id_vignette,'mode'=>'document'));
    136157                                }
    137158                        }
     
    143164}
    144165
     166/**
     167 * Transformation auto des liens vers contenu oembed correspondant : trop la classe
     168 *
     169 * @param string $texte
     170 * @return mixed
     171 */
    145172function oembed_pre_propre($texte) {
    146173        include_spip('inc/config');
  • _plugins_/oembed/paquet.xml

    r54485 r54486  
    22        prefix="oembed"
    33        categorie="multimedia"
    4         version="0.3.4"
     4        version="0.3.5"
    55        etat="dev"
    66        compatibilite="[3.0.0-dev;["
Note: See TracChangeset for help on using the changeset viewer.