← Back to team overview

mahara-contributors team mailing list archive

[Bug 1836588] Re: Multibyte comments broken

 

Thank you Kristina.

I'll try the Mahara code review
(https://wiki.mahara.org/wiki/Developer_Area/Contributing_Code) next
time.

-- 
You received this bug notification because you are a member of Mahara
Contributors, which is subscribed to Mahara.
Matching subscriptions: Subscription for all Mahara Contributors -- please ask on #mahara-dev or mahara.org forum before editing or unsubscribing it!
https://bugs.launchpad.net/bugs/1836588

Title:
  Multibyte comments broken

Status in Mahara:
  Fix Committed
Status in Mahara 19.04 series:
  Fix Committed
Status in Mahara 19.10 series:
  Fix Committed

Bug description:
  When we post English and Japanese comments on a page "Add comment"
  field, only Japanese characters are corrupted as the attached
  screenshot (mahara_comment.png).

  We can fix the issue using mb_convert_encoding function as below.
  Hopefully this fix helps Mahara multibyte character users.

  ---------------------------

  Program file to modify:
  artefact/comment/lib.php

  Line number to modify;
  1184

  [ Before ]
      /*
       * Removes the classes from the text of the comment that could interfere
       * with the comment display
       * @param string $comment the text content of the comment
       */
      public static function remove_comments_classes($comment) {

          if (empty($comment)) {
              return "";
          }
          $dom = new DOMDocument();
          $dom->preserveWhiteSpace = false;
          $dom->formatOutput = true;
          $dom->loadHTML($comment, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
          $xpath = new DOMXPath($dom);

  [ After ]
      /*
       * Removes the classes from the text of the comment that could interfere
       * with the comment display
       * @param string $comment the text content of the comment
       */
      public static function remove_comments_classes($comment) {

          if (empty($comment)) {
              return "";
          }
          $dom = new DOMDocument();
          $dom->preserveWhiteSpace = false;
          $dom->formatOutput = true;
  //        $dom->loadHTML($comment, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
          if (function_exists('mb_convert_encoding')) {
              $dom->loadHTML(mb_convert_encoding($comment, 'HTML-ENTITIES', 'UTF-8'));
          } else {
              $dom->loadHTML($comment, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
          }
          $xpath = new DOMXPath($dom);

To manage notifications about this bug go to:
https://bugs.launchpad.net/mahara/+bug/1836588/+subscriptions


References