diff options
author | Michael <icarus@dabo.de> | 2012-02-19 21:07:45 +0100 |
---|---|---|
committer | Michael <icarus@dabo.de> | 2012-02-19 21:07:45 +0100 |
commit | 064c843119576c1345a61a531dfaa1076a54f3f0 (patch) | |
tree | a1ebc4daa503ba96be6ee54951414f83aa2ca7df | |
parent | 8c8efbdf644fc645e61ba279ab52617d173cee45 (diff) | |
download | volse-hubzilla-064c843119576c1345a61a531dfaa1076a54f3f0.tar.gz volse-hubzilla-064c843119576c1345a61a531dfaa1076a54f3f0.tar.bz2 volse-hubzilla-064c843119576c1345a61a531dfaa1076a54f3f0.zip |
Handling nested bbcodes. Some small design changes in html2bbcode. Change in poller.php is just for testing purposes.
-rwxr-xr-x | include/bbcode.php | 19 | ||||
-rwxr-xr-x | include/html2bbcode.php | 35 | ||||
-rwxr-xr-x | include/poller.php | 4 |
3 files changed, 35 insertions, 23 deletions
diff --git a/include/bbcode.php b/include/bbcode.php index 528df33ec..d639b0c39 100755 --- a/include/bbcode.php +++ b/include/bbcode.php @@ -149,15 +149,20 @@ function bbcode($Text,$preserve_nl = false) { $Text = str_replace("[*]", "<li>", $Text); $Text = preg_replace("/\[li\](.*?)\[\/li\]/ism", '<li>$1</li>' ,$Text); - $Text = preg_replace("/\[list\](.*?)\[\/list\]/ism", '<ul class="listbullet" style="list-style-type: circle;">$1</ul>' ,$Text); + // handle nested lists + $endlessloop = 0; + while (strpos($Text, "[/list]") and strpos($Text, "[list") and (++$endlessloop < 20)) { + $Text = preg_replace("/\[list\](.*?)\[\/list\]/ism", '<ul class="listbullet" style="list-style-type: circle;">$1</ul>' ,$Text); + $Text = preg_replace("/\[list=\](.*?)\[\/list\]/ism", '<ul class="listnone" style="list-style-type: none;">$1</ul>' ,$Text); + $Text = preg_replace("/\[list=1\](.*?)\[\/list\]/ism", '<ul class="listdecimal" style="list-style-type: decimal;">$1</ul>' ,$Text); + $Text = preg_replace("/\[list=((?-i)i)\](.*?)\[\/list\]/ism",'<ul class="listlowerroman" style="list-style-type: lower-roman;">$2</ul>' ,$Text); + $Text = preg_replace("/\[list=((?-i)I)\](.*?)\[\/list\]/ism", '<ul class="listupperroman" style="list-style-type: upper-roman;">$2</ul>' ,$Text); + $Text = preg_replace("/\[list=((?-i)a)\](.*?)\[\/list\]/ism", '<ul class="listloweralpha" style="list-style-type: lower-alpha;">$2</ul>' ,$Text); + $Text = preg_replace("/\[list=((?-i)A)\](.*?)\[\/list\]/ism", '<ul class="listupperalpha" style="list-style-type: upper-alpha;">$2</ul>' ,$Text); + } + $Text = preg_replace("/\[ul\](.*?)\[\/ul\]/ism", '<ul class="listbullet" style="list-style-type: circle;">$1</ul>' ,$Text); - $Text = preg_replace("/\[list=\](.*?)\[\/list\]/ism", '<ul class="listnone" style="list-style-type: none;">$1</ul>' ,$Text); - $Text = preg_replace("/\[list=1\](.*?)\[\/list\]/ism", '<ul class="listdecimal" style="list-style-type: decimal;">$1</ul>' ,$Text); $Text = preg_replace("/\[ol\](.*?)\[\/ol\]/ism", '<ul class="listdecimal" style="list-style-type: decimal;">$1</ul>' ,$Text); - $Text = preg_replace("/\[list=((?-i)i)\](.*?)\[\/list\]/ism",'<ul class="listlowerroman" style="list-style-type: lower-roman;">$2</ul>' ,$Text); - $Text = preg_replace("/\[list=((?-i)I)\](.*?)\[\/list\]/ism", '<ul class="listupperroman" style="list-style-type: upper-roman;">$2</ul>' ,$Text); - $Text = preg_replace("/\[list=((?-i)a)\](.*?)\[\/list\]/ism", '<ul class="listloweralpha" style="list-style-type: lower-alpha;">$2</ul>' ,$Text); - $Text = preg_replace("/\[list=((?-i)A)\](.*?)\[\/list\]/ism", '<ul class="listupperalpha" style="list-style-type: upper-alpha;">$2</ul>' ,$Text); $Text = preg_replace("/\[th\](.*?)\[\/th\]/sm", '<th>$1</th>' ,$Text); $Text = preg_replace("/\[td\](.*?)\[\/td\]/sm", '<td>$1</td>' ,$Text); diff --git a/include/html2bbcode.php b/include/html2bbcode.php index 1b4b5e99a..4297ff2f9 100755 --- a/include/html2bbcode.php +++ b/include/html2bbcode.php @@ -187,9 +187,13 @@ function html2bbcode($message) node2bbcode($doc, 'hr', array(), "[hr]", ""); - node2bbcode($doc, 'table', array(), "", ""); - node2bbcode($doc, 'tr', array(), "\n", ""); - node2bbcode($doc, 'td', array(), "\t", ""); + //node2bbcode($doc, 'table', array(), "", ""); + //node2bbcode($doc, 'tr', array(), "\n", ""); + //node2bbcode($doc, 'td', array(), "\t", ""); + node2bbcode($doc, 'table', array(), "[table]", "[/table]"); + node2bbcode($doc, 'th', array(), "[th]", "[/th]"); + node2bbcode($doc, 'tr', array(), "[tr]", "[/tr]"); + node2bbcode($doc, 'td', array(), "[td]", "[/td]"); node2bbcode($doc, 'h1', array(), "\n\n[size=xx-large][b]", "[/b][/size]\n"); node2bbcode($doc, 'h2', array(), "\n\n[size=x-large][b]", "[/b][/size]\n"); @@ -246,27 +250,30 @@ function html2bbcode($message) $message = str_replace("\n\n\n", "\n\n", $message); } while ($oldmessage != $message); - $message = str_replace(array( + do { + $oldmessage = $message; + $message = str_replace(array( "[/size]\n\n", - "\n\n[hr]\n", - "\n[hr]\n\n", - "\n\n[list", - "[/list]\n\n", + "\n[hr]", + "[hr]\n", + "\n[list", + "[/list]\n", "\n[/list]", "[list]\n", "[list=1]\n", - "\n\n[*]"), + "\n[*]"), array( "[/size]\n", - "\n[hr]\n", - "\n[hr]\n", - "\n[list", - "[/list]\n", + "[hr]", + "[hr]", + "[list", + "[/list]", "[/list]", "[list]", "[list=1]", - "\n[*]"), + "[*]"), $message); + } while ($message != $oldmessage); $message = str_replace(array('[b][b]', '[/b][/b]', '[i][i]', '[/i][/i]'), array('[b]', '[/b]', '[i]', '[/i]'), $message); diff --git a/include/poller.php b/include/poller.php index 7d42c63b5..0297eeabc 100755 --- a/include/poller.php +++ b/include/poller.php @@ -194,8 +194,8 @@ function poller_run($argv, $argc){ $update = true; break; } - if((! $update) && (! $force)) - continue; +// if((! $update) && (! $force)) +// continue; } // Check to see if we are running out of memory - if so spawn a new process and kill this one |