aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFriendika <info@friendika.com>2010-12-30 18:32:49 -0800
committerFriendika <info@friendika.com>2010-12-30 18:32:49 -0800
commit9296d178b3696a0cf408d006b7fb9832a3344dcb (patch)
treefa7f18fca6285406d9af097180a91b99baeda13c
parent98dcc195117bab35363c75e14af08858b6dbba3d (diff)
downloadvolse-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.php7
-rw-r--r--include/html2bbcode.php102
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