web-dev-qa-db-fra.com

Commentaires tronqués de manière inattendue dans SocialEngine après environ 675 caractères

Lorsqu'un utilisateur poste un commentaire sur notre site Web SocialEngine, les commentaires sont tronqués de manière inattendue après environ 670 caractères.

Quelqu'un at-il déjà expérimenté ce bug?

Les commentaires sont stockés dans la base de données dans leur état d'origine non tronqué. Je suppose donc qu'il s'agit d'un bogue quelque part dans modules/Core/controllers/CommentController.php. Mais après avoir parcouru le code pendant plusieurs heures, je ne suis pas plus près de trouver une réponse.

1
DMCoding

Il semble que le bogue soit dans la nouvelle ligne pour casser les règles minifeature. Modification de la ligne 24 de /application/libraries/Engine/View/Helper/ViewMore.php:

protected $_maxLineBreaks = 4; // Truncate early if more than this nl

à 12; résout le problème pour l'instant sans supprimer entièrement la fonctionnalité. J'ai également remarqué que la nouvelle ligne permettant de rompre la fonctionnalité de règle ne fonctionne pas comme annoncé. Changer de ligne 41 à 55:

// If using line breaks, ensure that there are not too many line breaks
if( $nl2br ) {
  $string = trim(preg_replace('/[\r\n]+/', "\n", $string));
  if( ($c = substr_count($string, "\n")) > $this->_maxLineBreaks) {
    $pos = 0;
    for( $i = 0; $i < $this->_maxLineBreaks; $i++ ) {
      $pos = strpos($string, "\n", $pos + 1);
    }
    if( $pos <= 0 || !is_int($pos) ) {
      $pos = null;
    }
    if( $pos && $pos < $moreLength ) {
      $moreLength = $pos;
    }
  }
}

à

if( $nl2br ) {
    $string = preg_replace('{(<br[^>]*>\s*)+}', '<br>', nl2br($string));
}

et supprimer les lignes 56 à 60 semble entièrement mieux fonctionner.

1
DMCoding