From 219f0dfeca0cccc1870ca9da608d5004d43e67fb Mon Sep 17 00:00:00 2001 From: Mario Date: Fri, 3 May 2024 12:04:19 +0200 Subject: also deal with ol and ul tags earlier and add test for double nested lists --- include/html2bbcode.php | 9 +++------ tests/unit/includes/BBCodeTest.php | 8 ++++++++ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/include/html2bbcode.php b/include/html2bbcode.php index e95e498c9..e1c0572f5 100644 --- a/include/html2bbcode.php +++ b/include/html2bbcode.php @@ -126,6 +126,9 @@ function html2bbcode($message) //$message = mb_convert_encoding($message, 'HTML-ENTITIES', "UTF-8"); $message = mb_encode_numericentity($message, [0x80, 0x10FFFF, 0, ~0], 'UTF-8'); + $message = preg_replace('/\/', '[list]', $message); + $message = preg_replace('/\/', '[list=1]', $message); + $message = str_replace(['', ''], '[/list]', $message); $message = str_replace(['
  • ', '

  • '], '[*]', $message); $message = str_replace(['

  • ', ''], '', $message); @@ -147,9 +150,6 @@ function html2bbcode($message) node2bbcode($doc, 'html', array(), "", ""); node2bbcode($doc, 'body', array(), "", ""); - node2bbcode($doc, 'li', array(), "[*]", ""); - - // Outlook-Quote - Variant 1 node2bbcode($doc, 'p', array('class'=>'MsoNormal', 'style'=>'margin-left:35.4pt'), '[quote]', '[/quote]'); @@ -206,9 +206,6 @@ function html2bbcode($message) node2bbcode($doc, 'audio', array('src'=>'/(.+)/'), '[audio]$1', '[/audio]'); // node2bbcode($doc, 'iframe', array('src'=>'/(.+)/'), '[iframe]$1', '[/iframe]'); - node2bbcode($doc, 'ul', array(), "[list]", "[/list]"); - node2bbcode($doc, 'ol', array(), "[list=1]", "[/list]"); - node2bbcode($doc, 'hr', array(), "[hr]", ""); // node2bbcode($doc, 'table', array(), "", ""); diff --git a/tests/unit/includes/BBCodeTest.php b/tests/unit/includes/BBCodeTest.php index 2697c5069..34e127a30 100644 --- a/tests/unit/includes/BBCodeTest.php +++ b/tests/unit/includes/BBCodeTest.php @@ -239,6 +239,10 @@ class BBCodeTest extends UnitTestCase { '
    • list 1
    • list 2
    • list 3
      • list 1
      • list 2
      • list 3
    ', '[list][*]list 1[*]list 2[*]list 3[list][*]list 1[*]list 2[*]list 3[/list][/list]' ], + 'double nested list' => [ + '
    • list 1
    • list 2
    • list 3
      • list 1
      • list 2
      • list 3
        • list 1
        • list 2
        • list 3
    ', + '[list][*]list 1[*]list 2[*]list 3[list][*]list 1[*]list 2[*]list 3[list][*]list 1[*]list 2[*]list 3[/list][/list][/list]' + ], 'list without closing li' => [ '
    • list 1
    • list 2
    • list 3
    ', '[list][*]list 1[*]list 2[*]list 3[/list]' @@ -246,6 +250,10 @@ class BBCodeTest extends UnitTestCase { 'nested list without closing li' => [ '
    • list 1
    • list 2
    • list 3
      • list 1
      • list 2
      • list 3
    ', '[list][*]list 1[*]list 2[*]list 3[list][*]list 1[*]list 2[*]list 3[/list][/list]' + ], + 'double nested list without closing li' => [ + '
    • list 1
    • list 2
    • list 3
      • list 1
      • list 2
      • list 3
        • list 1
        • list 2
        • list 3
    ', + '[list][*]list 1[*]list 2[*]list 3[list][*]list 1[*]list 2[*]list 3[list][*]list 1[*]list 2[*]list 3[/list][/list][/list]' ] ]; } -- cgit v1.2.3