Changeset 55017 in spip-zone


Ignore:
Timestamp:
Nov 30, 2011, 9:36:34 PM (8 years ago)
Author:
cedric@…
Message:

utiliser autoembed lorsqu'il connait le site et peut embed
sinon se replier sur readability

Location:
_plugins_/oeproxy
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/oeproxy

  • _plugins_/oeproxy/oeproxy/default.php

    r54724 r55017  
    1111if (!defined("_ECRIRE_INC_VERSION")) return;
    1212
    13 
    1413function oeproxy_default_dist($url,$options,$html=null){
    1514
     
    3130        }
    3231
     32        $res = oeproxy_default_autoembed($url, $options, $html);
     33        if (!is_array($res))
     34                $res = oeproxy_default_readability($url, $options, $html);
     35
     36        return $res;
     37
     38}
     39
     40function oeproxy_default_readability($url,$options,$html=null){
     41
    3342        include_spip('inc/readability');
    3443        $res = readability_html($html,'array');
     
    93102        return $result;
    94103}
     104
     105
     106function oeproxy_default_autoembed($url,$options,$html=null){
     107
     108        if (!include_spip('autoembed/AutoEmbed.class'))
     109                return 404;
     110
     111        global $AutoEmbed_stubs;
     112        include_once _DIR_PLUGIN_OEPROXY . 'autoembed/stubs.php';
     113
     114        $AE = new AutoEmbed();
     115        // load the embed source from a remote url
     116        if (!$AE->parseUrl($url, $html))
     117                return 404;
     118
     119
     120        $AE->setParam('autoplay','false');
     121
     122        $attributs = $AE->getObjectAttribs();
     123        $w = $attributs["width"];
     124        $h = $attributs["height"];
     125
     126        $rapport = 1.0;
     127        if (isset($options['maxwidth'])
     128                AND $w > $options['maxwidth'])
     129                $rapport = $w / $options['maxwidth'];
     130        if (isset($options['maxheight'])
     131                AND $h > $options['maxheight'])
     132                $rapport = min($h / $options['maxheight'],$rapport);
     133
     134        if ($rapport<1.0){
     135                $w = round($w / $rapport);
     136                $h = round($h / $rapport);
     137
     138                $AE->setWidth($w);
     139                $AE->setHeight($h);
     140        }
     141
     142        $embed = $AE->getEmbedCode();
     143        #$vignette = $AE->getImageURL();
     144
     145        #$source = $AE->getStub("title");
     146        #$code_ae = "<div class='oembed-container'>".$embed."</div>";
     147
     148        $p = stripos($html,'</head>');
     149        include_spip('inc/filtres');
     150        $title = extraire_balise($p?substr($html,0,$p):$html,"title");
     151        $title = strip_tags($title);
     152
     153
     154        $result = array(
     155                // type (required)
     156    // The resource type. Valid values, along with value-specific parameters, are described below.
     157                'type' => 'rich',
     158
     159                // version (required)
     160    // The oEmbed version number. This must be 1.0.
     161                'version' => '1.0',
     162
     163                // title (optional)
     164    // A text title, describing the resource.
     165                'title' => $title,
     166
     167                // html (required)
     168    // The HTML required to display the resource. The HTML should have no padding or margins. Consumers may wish to load the HTML in an off-domain iframe to avoid XSS vulnerabilities. The markup should be valid XHTML 1.0 Basic.
     169                'html' => oeproxy_cite($url,$title,$embed),
     170
     171                // width (required)
     172    // The width in pixels required to display the HTML.
     173                'width' => $w,
     174
     175                // height (required)
     176    // The height in pixels required to display the HTML.
     177                'height' => $h,
     178
     179                // author_name (optional)
     180    // The name of the author/owner of the resource.
     181                // NIY
     182                // 'author_name' => '',
     183
     184                // author_url (optional)
     185    // A URL for the author/owner of the resource.
     186                // NIY
     187                // 'author_url' => '',
     188
     189
     190                // thumbnail_url (optional)
     191    // A URL to a thumbnail image representing the resource. The thumbnail must respect any maxwidth and maxheight parameters. If this paramater is present, thumbnail_width and thumbnail_height must also be present.
     192                // NIY
     193                // 'thumbnail_url' => '',
     194
     195                // thumbnail_width (optional)
     196    // The width of the optional thumbnail. If this paramater is present, thumbnail_url and thumbnail_height must also be present.
     197                // NIY
     198                // 'thumbnail_width' => '',
     199
     200                // thumbnail_height (optional)
     201    // The height of the optional thumbnail. If this paramater is present, thumbnail_url and thumbnail_width must also be present.
     202                // NIY
     203                // 'thumbnail_height' => '',
     204
     205        );
     206
     207        return $result;
     208}
  • _plugins_/oeproxy/paquet.xml

    r54761 r55017  
    22        prefix="oeproxy"
    33        categorie="outil"
    4         version="0.6.0"
     4        version="0.7.0"
    55        etat="experimental"
    66        compatibilite="[3.0.0-beta;["
Note: See TracChangeset for help on using the changeset viewer.