Changeset 54447 in spip-zone


Ignore:
Timestamp:
Nov 14, 2011, 3:24:06 PM (8 years ago)
Author:
cedric@…
Message:

permettre de configurer maxwidth et maxheight dans la config du plugin
inverser les 2 forms de config sur la page de config (les providers sont moins important car presumes pre-configures)
modifier la fonction oembed_recuperer_data :

  • si on ne lui fournit pas de maxheight/maxwidth : utiliser ceux par defaut (ou TODO du provider si precises)
  • si on fournit , ne pas demander maxheight/maxwidth
  • cacher la requete pour eviter de la faire 2 fois (principale et pour vignette)

version a 3 digits

Location:
_plugins_/oembed
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/oembed/formulaires/configurer_oembed.html

    r47868 r54447  
    22<!-- nom=oembed -->
    33<div class="formulaire_spip formulaire_cfg formulaire_configurer formulaire_#FORM">
    4 <h3 class='titrem'><:oembed:titre_configurer_oembed:></h3>
     4<h3 class='titrem'><img src="#CHEMIN_IMAGE{oembed-24.png}" class="cadre-icone" /><:oembed:titre_configurer_oembed:></h3>
    55[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
    66[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
     
    88        #ACTION_FORMULAIRE{#ENV{action}}
    99        <ul>
     10                #SET{fl,oembed}
     11                #SET{name,maxwidth}#SET{obli,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
     12                <li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
     13                        <label for="#GET{name}">[(#GET{fl}|concat{':label_',#GET{name}}|_T)]</label>[
     14                        <span class='erreur_message'>(#GET{erreurs})</span>
     15                        ]<input type="text" name="#GET{name}" class="text" value="#ENV*{#GET{name},600}" id="#GET{name}"/>
     16                </li>
     17                #SET{name,maxheight}#SET{obli,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
     18                <li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
     19                        <label for="#GET{name}">[(#GET{fl}|concat{':label_',#GET{name}}|_T)]</label>[
     20                        <span class='erreur_message'>(#GET{erreurs})</span>
     21                        ]<input type="text" name="#GET{name}" class="text" value="#ENV*{#GET{name},400}" id="#GET{name}"/>
     22                </li>
    1023                #SET{name,embed_auto}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
    1124                <li class="long_label editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
  • _plugins_/oembed/formulaires/configurer_providers.html

    r47797 r54447  
    11<div class="formulaire_spip formulaire_configurer formulaire_#FORM" id="formulaire_#FORM">
    2 <h3 class='titrem'><img src="#CHEMIN_IMAGE{oembed-24.png}" class="cadre-icone" /><:oembed:titre_configurer_providers:></h3>
     2<h3 class='titrem'><:oembed:titre_configurer_providers:></h3>
    33<INCLURE{fond=prive/objets/liste/oembed_providers,sinon=<:oembed:aucun_provider:>,env} />
    44<h3 class='titrem'><:oembed:titre_ajouter_provider:></h3>
  • _plugins_/oembed/inc/oembed.php

    r47868 r54447  
    99 * @param string $url url de la page qui contient le document à récupérer avec oembed
    1010 * @param int $maxwidth largeur max du document
     11 *   null : la valeur configuree par defaut ou pour le provider est utilisee
     12 *   '' : pas de valeur max
    1113 * @param int $maxheight hauteur max du document
     14 *   null : la valeur configuree par defaut ou pour le provider est utilisee
     15 *   '' : pas de valeur max
    1216 * @param string $format format à utiliser pour la requete oembed (json ou xml)
    1317 * @param string $detecter_lien tenter la détection automatique de lien oembed dans la page indiquée
    1418 * @return bool|array false si aucun retour ou erreur ; tableau des éléménents de la réponse oembed
    1519 */
    16 function oembed_recuperer_data($url, $maxwidth = '', $maxheight = '', $format = 'json', $detecter_lien = 'non') {
     20function oembed_recuperer_data($url, $maxwidth = null, $maxheight = null, $format = 'json', $detecter_lien = 'non') {
     21        static $cache = array();
    1722        $provider = false;
    1823       
    1924        $provider = oembed_verifier_provider($url);
    2025        $data_url = parametre_url($provider,'url',$url,'&');
    21        
     26
     27        include_spip('inc/config');
     28        if (is_null($maxwidth)){
     29                $maxwidth = lire_config('oembed/maxwidth','600');
     30        }
     31        if (is_null($maxheight)){
     32                $maxheight = lire_config('oembed/maxheight','400');
     33        }
     34
    2235        if ((!$provider) AND (($detecter_lien != 'non') OR lire_config('oembed/detecter_lien','non')=='oui')) {
    2336                $provider = oembed_detecter_lien($url);
     
    2841        $data_url = parametre_url($data_url,'maxheight',$maxheight,'&');
    2942        $data_url = parametre_url($data_url,'format',$format,'&');
     43
     44        if (isset($cache[$data_url]))
     45                return $cache[$data_url];
    3046       
    3147        // on recupere le contenu de la page
     
    3349        if ($data = recuperer_page($data_url)) {
    3450                if ($format == 'json')
    35                         return json_decode($data,true);
     51                        return $cache[$data_url] = json_decode($data,true);
     52                // TODO : format xml
    3653                if ($format == 'xml')
    37                         return false;
     54                        return $cache[$data_url] = false;
    3855        }
    3956
    40         return false;
     57        return $cache[$data_url] = false;
    4158}
    4259
  • _plugins_/oembed/lang/oembed_fr.php

    r47868 r54447  
    2020'label_endpoint'=>'Endpoint',
    2121'label_scheme'=>'Scheme',
     22'label_maxwidth' => 'Largeur maxi. par défaut (px)',
     23'label_maxheight' => 'Hauteur maxi. par défaut (px)',
    2224
    2325'supprimer_provider'=>'Supprimer',
  • _plugins_/oembed/modeles/oembed.html

    r47709 r54447  
    1 [(#SET{data,#ENV**{url}|oembed_recuperer_data{#ENV{largeur,#CONFIG{oembed/maxwidth,480}},#ENV{hauteur,#CONFIG{oembed/maxheight,295}}}})
     1[(#SET{data,#ENV**{url}|oembed_recuperer_data})
    22][(#GET{data}|oui)
    33        [(#INCLURE{fond=modeles/oembed_[(#GET{data}|table_valeur{type})],data=#GET{data},url})]
  • _plugins_/oembed/oembed_pipelines.php

    r50934 r54447  
    1818        include_spip('inc/oembed');
    1919        // on tente de récupérer les données oembed
    20         if ($data = oembed_recuperer_data($flux['source'],lire_config('oembed/maxwidth','480'),lire_config('oembed/maxheight','295'))){
     20        if ($data = oembed_recuperer_data($flux['source'])){
    2121                if ($data['type']=='photo') {
    2222                        // on recupere les infos du document distant
     
    5959        if($flux['args']['action']=='ajouter_document' AND $flux['data']['oembed']){
    6060                $id_document = $flux['args']['id_objet'];
    61                 if ($data = oembed_recuperer_data($flux['data']['oembed'],lire_config('oembed/maxwidth'),lire_config('oembed/maxheight'))){
     61                if ($data = oembed_recuperer_data($flux['data']['oembed'])){
    6262                        // vignette disponible ? la recupérer et l'associer au document
    6363                        if ($data['thumbnail_url']) {
  • _plugins_/oembed/paquet.xml

    r54441 r54447  
    22        prefix="oembed"
    33        categorie="multimedia"
    4         version="0.1"
     4        version="0.2.0"
    55        etat="dev"
    66        compatibilite="[3.0.0-dev;["
    77        logo="prive/themes/spip/images/oembed-32.png"
    88        schema="0.2"
    9 >       
     9>
    1010
    1111        <nom>oEmbed</nom>
  • _plugins_/oembed/prive/squelettes/contenu/configurer_oembed.html

    r47868 r54447  
    11<h1><:oembed:titre_oembed:></h1>
     2
     3<div class='ajax'>
     4#FORMULAIRE_CONFIGURER_OEMBED
     5</div>
    26
    37<div class='ajax'>
     
    59</div>
    610
    7 <div class='ajax'>
    8 #FORMULAIRE_CONFIGURER_OEMBED
    9 </div>
Note: See TracChangeset for help on using the changeset viewer.