← Back to team overview

mahara-contributors team mailing list archive

[Bug 1836588] Re: Multibyte comments broken

 

Thank you Mits. We'll add this to our code review.

If you like, you can connect to the Mahara code review yourself in order
to submit your patches straight into it. Instructions are available at
https://wiki.mahara.org/wiki/Developer_Area/Contributing_Code

** Changed in: mahara
       Status: New => In Progress

-- 
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:
  In Progress

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