| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 | 
							- <?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;
 
- }
 
 
  |