protected function TruncateHTML::domNodeTruncateChars in Smart Trim 8
Truncates a DOMNode by character count.
Parameters
\DOMNode $domnode: Object to be truncated.
1 call to TruncateHTML::domNodeTruncateChars()
- TruncateHTML::truncateChars in src/Truncate/ TruncateHTML.php 
- Truncates HTML text by characters.
File
- src/Truncate/ TruncateHTML.php, line 165 
- Contains trim functionality.
Class
- TruncateHTML
- Class TruncateHTML.
Namespace
Drupal\smart_trim\TruncateCode
protected function domNodeTruncateChars(\DOMNode $domnode) {
  foreach ($domnode->childNodes as $node) {
    if ($this->foundBreakpoint == TRUE) {
      return;
    }
    if ($node
      ->hasChildNodes()) {
      $this
        ->domNodeTruncateChars($node);
    }
    else {
      $text = html_entity_decode($node->nodeValue, ENT_QUOTES, 'UTF-8');
      $length = mb_strlen($text);
      if ($this->charCount + $length >= $this->limit) {
        // We have found our end point.
        $node->nodeValue = Unicode::truncate($text, $this->limit - $this->charCount, TRUE);
        $this
          ->removeTrailingPunctuation($node);
        $this
          ->removeProceedingNodes($node);
        $this
          ->insertEllipsis($node);
        $this->foundBreakpoint = TRUE;
        return;
      }
      else {
        $this->charCount += $length;
      }
    }
  }
}