aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael <icarus@dabo.de>2012-02-19 21:07:45 +0100
committerMichael <icarus@dabo.de>2012-02-19 21:07:45 +0100
commit064c843119576c1345a61a531dfaa1076a54f3f0 (patch)
treea1ebc4daa503ba96be6ee54951414f83aa2ca7df
parent8c8efbdf644fc645e61ba279ab52617d173cee45 (diff)
downloadvolse-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-xinclude/bbcode.php19
-rwxr-xr-xinclude/html2bbcode.php35
-rwxr-xr-xinclude/poller.php4
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