html5 video/audio support - still needs multiple source

selection,  and check that it isn't blocked by html purifier
This commit is contained in:
Friendika 2010-12-30 18:32:49 -08:00
parent 98dcc19511
commit 9296d178b3
2 changed files with 58 additions and 41 deletions

View file

@ -77,6 +77,13 @@ function bbcode($Text) {
// Images // Images
// [img]pathtoimage[/img] // [img]pathtoimage[/img]
$Text = preg_replace("/\[img\](.+?)\[\/img\]/", '<img src="$1">', $Text); $Text = preg_replace("/\[img\](.+?)\[\/img\]/", '<img src="$1">', $Text);
// html5 video and audio
$Text = preg_replace("/\[video\](.+?)\[\/video\]/", '<video src="$1" controls="controls" width="425" height="350">$1</video>', $Text);
$Text = preg_replace("/\[audio\](.+?)\[\/audio\]/", '<audio src="$1" controls="controls">$1</audio>', $Text);
// [img=widthxheight]image source[/img] // [img=widthxheight]image source[/img]
$Text = preg_replace("/\[img\=([0-9]*)x([0-9]*)\](.+?)\[\/img\]/", '<img src="$3" height="$2" width="$1">', $Text); $Text = preg_replace("/\[img\=([0-9]*)x([0-9]*)\](.+?)\[\/img\]/", '<img src="$3" height="$2" width="$1">', $Text);

View file

@ -1,52 +1,62 @@
<?php <?php
/**
* html2bbcode
*/
function html2bbcode($s) { function html2bbcode($s) {
// Tags to Find
// Tags to Find $htmltags = array(
$htmltags = array( '/\n/is',
'/\n/is', '/\<b\>(.*?)\<\/b\>/is',
'/\<b\>(.*?)\<\/b\>/is', '/\<i\>(.*?)\<\/i\>/is',
'/\<i\>(.*?)\<\/i\>/is', '/\<u\>(.*?)\<\/u\>/is',
'/\<u\>(.*?)\<\/u\>/is', '/\<ul\>(.*?)\<\/ul\>/is',
'/\<ul\>(.*?)\<\/ul\>/is', '/\<li\>(.*?)\<\/li\>/is',
'/\<li\>(.*?)\<\/li\>/is', '/\<img(.*?) src=\"(.*?)\" (.*?)\>/is',
'/\<img(.*?) src=\"(.*?)\" (.*?)\>/is', '/\<div(.*?)\>(.*?)\<\/div\>/is',
'/\<div(.*?)\>(.*?)\<\/div\>/is', '/\<br(.*?)\>/is',
'/\<br(.*?)\>/is', '/\<strong\>(.*?)\<\/strong\>/is',
'/\<strong\>(.*?)\<\/strong\>/is', '/\<a href=\"(.*?)\"(.*?)\>(.*?)\<\/a\>/is',
'/\<a href=\"(.*?)\"(.*?)\>(.*?)\<\/a\>/is', '/\<code\>(.*?)\<\/code\>/is',
'/\<code\>(.*?)\<\/code\>/is', '/\<span style=\"color:(.*?)\"\>(.*?)\<\/span\>/is',
'/\<span style=\"color:(.*?)\"\>(.*?)\<\/span\>/is', '/\<blockquote\>(.*?)\<\/blockquote\>/is',
'/\<blockquote\>(.*?)\<\/blockquote\>/is', '/\<video(.*?) src=\"(.*?)\" (.*?)\>(.*?)</video>/is',
'/\<audio(.*?) src=\"(.*?)\" (.*?)\>(.*?)</audio>/is',
); );
// Replace with // Replace with
$bbtags = array(
'',
'[b]$1[/b]',
'[i]$1[/i]',
'[u]$1[/u]',
'[list]$1[/list]',
'[*]$1',
'[img]$2[/img]',
'$2',
"\n",
'[b]$1[/b]',
'[url=$1]$3[/url]',
'[code]$1[/code]',
'[color="$1"]$2[/color]',
'[quote]$1[/quote]',
);
// Replace $htmltags in $text with $bbtags $bbtags = array(
$text = preg_replace ($htmltags, $bbtags, $s); '',
'[b]$1[/b]',
'[i]$1[/i]',
'[u]$1[/u]',
'[list]$1[/list]',
'[*]$1',
'[img]$2[/img]',
'$2',
"\n",
'[b]$1[/b]',
'[url=$1]$3[/url]',
'[code]$1[/code]',
'[color="$1"]$2[/color]',
'[quote]$1[/quote]',
'[video]$1[/video]',
'[audio]$1[/audio]',
);
call_hooks('html2bbcode', $text); // Replace $htmltags in $text with $bbtags
$text = preg_replace ($htmltags, $bbtags, $s);
call_hooks('html2bbcode', $text);
// Strip all other HTML tags
$text = strip_tags($text);
return $text;
}
// Strip all other HTML tags
$text = strip_tags($text);
return $text;
}