diff options
author | Friendika <info@friendika.com> | 2010-12-30 18:32:49 -0800 |
---|---|---|
committer | Friendika <info@friendika.com> | 2010-12-30 18:32:49 -0800 |
commit | 9296d178b3696a0cf408d006b7fb9832a3344dcb (patch) | |
tree | fa7f18fca6285406d9af097180a91b99baeda13c | |
parent | 98dcc195117bab35363c75e14af08858b6dbba3d (diff) | |
download | volse-hubzilla-9296d178b3696a0cf408d006b7fb9832a3344dcb.tar.gz volse-hubzilla-9296d178b3696a0cf408d006b7fb9832a3344dcb.tar.bz2 volse-hubzilla-9296d178b3696a0cf408d006b7fb9832a3344dcb.zip |
html5 video/audio support - still needs multiple source
selection, and check that it isn't blocked by html purifier
-rw-r--r-- | include/bbcode.php | 7 | ||||
-rw-r--r-- | include/html2bbcode.php | 102 |
2 files changed, 63 insertions, 46 deletions
diff --git a/include/bbcode.php b/include/bbcode.php index 7e901bd41..646401ddb 100644 --- a/include/bbcode.php +++ b/include/bbcode.php @@ -77,6 +77,13 @@ function bbcode($Text) { // Images // [img]pathtoimage[/img] $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] $Text = preg_replace("/\[img\=([0-9]*)x([0-9]*)\](.+?)\[\/img\]/", '<img src="$3" height="$2" width="$1">', $Text); diff --git a/include/html2bbcode.php b/include/html2bbcode.php index 1f3d63a0d..b99329230 100644 --- a/include/html2bbcode.php +++ b/include/html2bbcode.php @@ -1,52 +1,62 @@ <?php +/** + * html2bbcode + */ + function html2bbcode($s) { + // Tags to Find + + $htmltags = array( + '/\n/is', + '/\<b\>(.*?)\<\/b\>/is', + '/\<i\>(.*?)\<\/i\>/is', + '/\<u\>(.*?)\<\/u\>/is', + '/\<ul\>(.*?)\<\/ul\>/is', + '/\<li\>(.*?)\<\/li\>/is', + '/\<img(.*?) src=\"(.*?)\" (.*?)\>/is', + '/\<div(.*?)\>(.*?)\<\/div\>/is', + '/\<br(.*?)\>/is', + '/\<strong\>(.*?)\<\/strong\>/is', + '/\<a href=\"(.*?)\"(.*?)\>(.*?)\<\/a\>/is', + '/\<code\>(.*?)\<\/code\>/is', + '/\<span style=\"color:(.*?)\"\>(.*?)\<\/span\>/is', + '/\<blockquote\>(.*?)\<\/blockquote\>/is', + '/\<video(.*?) src=\"(.*?)\" (.*?)\>(.*?)</video>/is', + '/\<audio(.*?) src=\"(.*?)\" (.*?)\>(.*?)</audio>/is', + + ); + + // 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]', + '[video]$1[/video]', + '[audio]$1[/audio]', + ); + + // 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; +} -// Tags to Find -$htmltags = array( - '/\n/is', - '/\<b\>(.*?)\<\/b\>/is', - '/\<i\>(.*?)\<\/i\>/is', - '/\<u\>(.*?)\<\/u\>/is', - '/\<ul\>(.*?)\<\/ul\>/is', - '/\<li\>(.*?)\<\/li\>/is', - '/\<img(.*?) src=\"(.*?)\" (.*?)\>/is', - '/\<div(.*?)\>(.*?)\<\/div\>/is', - '/\<br(.*?)\>/is', - '/\<strong\>(.*?)\<\/strong\>/is', - '/\<a href=\"(.*?)\"(.*?)\>(.*?)\<\/a\>/is', - '/\<code\>(.*?)\<\/code\>/is', - '/\<span style=\"color:(.*?)\"\>(.*?)\<\/span\>/is', - '/\<blockquote\>(.*?)\<\/blockquote\>/is', - - ); - -// 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 -$text = preg_replace ($htmltags, $bbtags, $s); - -call_hooks('html2bbcode', $text); - -// Strip all other HTML tags -$text = strip_tags($text); -return $text; -}
\ No newline at end of file |