diff options
author | Silvio Rhatto <rhatto@riseup.net> | 2013-12-29 20:45:58 -0200 |
---|---|---|
committer | Silvio Rhatto <rhatto@riseup.net> | 2013-12-29 20:45:58 -0200 |
commit | 97e689213ff4e829f251af526ed4e796a3cc2b71 (patch) | |
tree | b04d03ec56305041216b72328fc9b5afde27bc76 /mod/videolist/lib/videolist.php | |
parent | 0ab6351abb7a602d96c62b0ad35413c88113a6cf (diff) | |
parent | 69e2d8c5d8732042c9319aef1fdea45a82b63e42 (diff) | |
download | elgg-97e689213ff4e829f251af526ed4e796a3cc2b71.tar.gz elgg-97e689213ff4e829f251af526ed4e796a3cc2b71.tar.bz2 |
Merge branch 'master' into saravea
Conflicts:
.gitmodules
mod/admins
mod/assemblies
mod/audio_html5
mod/beechat
mod/crud
mod/elgg-activitystreams
mod/elggman
mod/elggpg
mod/favorites
mod/federated-objects
mod/friendly_time
mod/group_alias
mod/group_operators
mod/languages
mod/lightpics
mod/openid_client
mod/spotlight
mod/suicide
mod/tasks
mod/videolist
Diffstat (limited to 'mod/videolist/lib/videolist.php')
-rw-r--r-- | mod/videolist/lib/videolist.php | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/mod/videolist/lib/videolist.php b/mod/videolist/lib/videolist.php new file mode 100644 index 000000000..b86db99cf --- /dev/null +++ b/mod/videolist/lib/videolist.php @@ -0,0 +1,46 @@ +<?php + +/** + * @return array + */ +function videolist_get_default_platforms() { + static $platforms = array(); + if (! $platforms) { + require dirname(__FILE__) . '/Videolist/PlatformInterface.php'; + $path = dirname(__FILE__) . '/Videolist/Platform'; + foreach (scandir($path) as $filename) { + if (preg_match('/^(\\w+)\\.php$/', $filename, $m)) { + require "$path/$filename"; + $class = 'Videolist_Platform_' . $m[1]; + $platform = new $class(); + if ($platform instanceof Videolist_PlatformInterface) { + /* @var Videolist_PlatformInterface $platform */ + $platforms[$platform->getType()][] = $platform; + } + } + } + } + return $platforms; +} + +/** + * @param string $url + * @return array [parsed, platform] + */ +function videolist_parse_url($url) { + $params = array( + 'url' => $url, + ); + $platforms = videolist_get_default_platforms(); + $platforms = elgg_trigger_plugin_hook('videolist:prepare', 'platforms', $params, $platforms); + foreach ($platforms as $list) { + foreach ($list as $platform) { + /* @var Videolist_PlatformInterface $platform */ + $parsed = $platform->parseUrl($url); + if ($parsed) { + return array($parsed, $platform); + } + } + } + return false; +} |