Changeset 70316 in spip-zone


Ignore:
Timestamp:
Mar 1, 2013, 8:20:39 PM (6 years ago)
Author:
marcimat@…
Message:

Fermer http://core.spip.org/issues/2941 : Prendre en compte les documents attachés qu'ils soient via enclosure, media:content ou les deux !

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _core_/plugins/sites/inc/syndic.php

    r70291 r70316  
    256256                // ou encore les media:content
    257257                if (!afficher_enclosures(join(', ', $tags))) {
     258                        // on prend toutes les pièces jointes possibles, et on essaie de les rendre uniques.
     259                        $enclosures = array();
     260                        # rss 2
    258261                        if (preg_match_all(',<enclosure[[:space:]][^<>]+>,i',
    259262                                $item, $matches, PREG_PATTERN_ORDER)) {
    260                                         $data['enclosures'] = join(', ',
    261                                                 array_map('enclosure2microformat', $matches[0]));
     263                                        $enclosures += array_map('enclosure2microformat', $matches[0]);
    262264                        }
    263                         else if (
    264                                 preg_match_all(',<link\b[^<>]+rel=["\']?enclosure["\']?[^<>]+>,i',
     265                        # atom
     266                        if (preg_match_all(',<link\b[^<>]+rel=["\']?enclosure["\']?[^<>]+>,i',
    265267                                $item, $matches, PREG_PATTERN_ORDER)) {
    266                                         $data['enclosures'] = join(', ',
    267                                                 array_map('enclosure2microformat', $matches[0]));
     268                                        $enclosures += array_map('enclosure2microformat', $matches[0]);
    268269                        }
    269                         else if (
    270                                 preg_match_all(',<media:content\b[^<>]+>,i',
     270                        # media rss
     271                        if (preg_match_all(',<media:content\b[^<>]+>,i',
    271272                                $item, $matches, PREG_PATTERN_ORDER)) {
    272                                         $data['enclosures'] = join(', ',
    273                                                 array_map('enclosure2microformat', $matches[0]));
     273                                        $enclosures += array_map('enclosure2microformat', $matches[0]);
    274274                        }
     275                        $data['enclosures'] = join(', ', array_unique($enclosures));
     276                        unset($enclosures);
    275277                }
    276278                $data['item'] = $item;
Note: See TracChangeset for help on using the changeset viewer.