XOOPS 2.5.6  Final
 All Classes Namespaces Files Functions Variables Pages
YouTube.php
Go to the documentation of this file.
1 <?php
2 
4 {
5 
6  public $name = 'YouTube';
7 
8  public function preFilter($html, $config, $context) {
9  $pre_regex = '#<object[^>]+>.+?'.
10  'http://www.youtube.com/((?:v|cp)/[A-Za-z0-9\-_=]+).+?</object>#s';
11  $pre_replace = '<span class="youtube-embed">\1</span>';
12  return preg_replace($pre_regex, $pre_replace, $html);
13  }
14 
15  public function postFilter($html, $config, $context) {
16  $post_regex = '#<span class="youtube-embed">((?:v|cp)/[A-Za-z0-9\-_=]+)</span>#';
17  return preg_replace_callback($post_regex, array($this, 'postFilterCallback'), $html);
18  }
19 
20  protected function armorUrl($url) {
21  return str_replace('--', '-&#45;', $url);
22  }
23 
24  protected function postFilterCallback($matches) {
25  $url = $this->armorUrl($matches[1]);
26  return '<object width="425" height="350" type="application/x-shockwave-flash" '.
27  'data="http://www.youtube.com/'.$url.'">'.
28  '<param name="movie" value="http://www.youtube.com/'.$url.'"></param>'.
29  '<!--[if IE]>'.
30  '<embed src="http://www.youtube.com/'.$url.'"'.
31  'type="application/x-shockwave-flash"'.
32  'wmode="transparent" width="425" height="350" />'.
33  '<![endif]-->'.
34  '</object>';
35 
36  }
37 }
38 
39 // vim: et sw=4 sts=4