]> git.mxchange.org Git - friendica.git/commitdiff
Handling nested bbcodes. Some small design changes in html2bbcode. Change in poller...
authorMichael <icarus@dabo.de>
Sun, 19 Feb 2012 20:07:45 +0000 (21:07 +0100)
committerMichael <icarus@dabo.de>
Sun, 19 Feb 2012 20:07:45 +0000 (21:07 +0100)
include/bbcode.php
include/html2bbcode.php
include/poller.php

index 528df33ec416c8c408843af7f06df3d2c43713eb..d639b0c39a9f15931bdcb9a3abdb3cb6ae0d1e0a 100755 (executable)
@@ -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);
index 1b4b5e99ab7eb006638a92edc9e33d630ef18612..4297ff2f9d18812972281d5598c310cb9fc64c5f 100755 (executable)
@@ -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);
index 7d42c63b5f8d1731ce57e6c280d9ab67cbd58376..0297eeabc1b5d4fdf7578aa1b5a4296a3e7110d0 100755 (executable)
@@ -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