Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. Text.php

function Text::printCodeComparisonBlock

Print a code comparison block found in a standard.

Parameters

\DOMNode $node The DOMNode object for the code comparison block.:

Return value

void

1 call to Text::printCodeComparisonBlock()
Text::processSniff in vendor/squizlabs/php_codesniffer/src/Generators/Text.php
Process the documentation for a single sniff.

File

vendor/squizlabs/php_codesniffer/src/Generators/Text.php, line 128

Class

Text

Namespace

PHP_CodeSniffer\Generators

Code

protected function printCodeComparisonBlock(DOMNode $node) {
    $codeBlocks = $node->getElementsByTagName('code');
    $first = trim($codeBlocks->item(0)->nodeValue);
    $firstTitle = $codeBlocks->item(0)
        ->getAttribute('title');
    $firstTitleLines = [];
    $tempTitle = '';
    $words = explode(' ', $firstTitle);
    foreach ($words as $word) {
        if (strlen($tempTitle . $word) >= 45) {
            if (strlen($tempTitle . $word) === 45) {
                // Adding the extra space will push us to the edge
                // so we are done.
                $firstTitleLines[] = $tempTitle . $word;
                $tempTitle = '';
            }
            else {
                if (strlen($tempTitle . $word) === 46) {
                    // We are already at the edge, so we are done.
                    $firstTitleLines[] = $tempTitle . $word;
                    $tempTitle = '';
                }
                else {
                    $firstTitleLines[] = $tempTitle;
                    $tempTitle = $word . ' ';
                }
            }
        }
        else {
            $tempTitle .= $word . ' ';
        }
    }
    
    //end foreach
    if ($tempTitle !== '') {
        $firstTitleLines[] = $tempTitle;
    }
    $first = str_replace('<em>', '', $first);
    $first = str_replace('</em>', '', $first);
    $firstLines = explode("\n", $first);
    $second = trim($codeBlocks->item(1)->nodeValue);
    $secondTitle = $codeBlocks->item(1)
        ->getAttribute('title');
    $secondTitleLines = [];
    $tempTitle = '';
    $words = explode(' ', $secondTitle);
    foreach ($words as $word) {
        if (strlen($tempTitle . $word) >= 45) {
            if (strlen($tempTitle . $word) === 45) {
                // Adding the extra space will push us to the edge
                // so we are done.
                $secondTitleLines[] = $tempTitle . $word;
                $tempTitle = '';
            }
            else {
                if (strlen($tempTitle . $word) === 46) {
                    // We are already at the edge, so we are done.
                    $secondTitleLines[] = $tempTitle . $word;
                    $tempTitle = '';
                }
                else {
                    $secondTitleLines[] = $tempTitle;
                    $tempTitle = $word . ' ';
                }
            }
        }
        else {
            $tempTitle .= $word . ' ';
        }
    }
    
    //end foreach
    if ($tempTitle !== '') {
        $secondTitleLines[] = $tempTitle;
    }
    $second = str_replace('<em>', '', $second);
    $second = str_replace('</em>', '', $second);
    $secondLines = explode("\n", $second);
    $maxCodeLines = max(count($firstLines), count($secondLines));
    $maxTitleLines = max(count($firstTitleLines), count($secondTitleLines));
    echo str_repeat('-', 41);
    echo ' CODE COMPARISON ';
    echo str_repeat('-', 42) . PHP_EOL;
    for ($i = 0; $i < $maxTitleLines; $i++) {
        if (isset($firstTitleLines[$i]) === true) {
            $firstLineText = $firstTitleLines[$i];
        }
        else {
            $firstLineText = '';
        }
        if (isset($secondTitleLines[$i]) === true) {
            $secondLineText = $secondTitleLines[$i];
        }
        else {
            $secondLineText = '';
        }
        echo '| ';
        echo $firstLineText . str_repeat(' ', 46 - strlen($firstLineText));
        echo ' | ';
        echo $secondLineText . str_repeat(' ', 47 - strlen($secondLineText));
        echo ' |' . PHP_EOL;
    }
    
    //end for
    echo str_repeat('-', 100) . PHP_EOL;
    for ($i = 0; $i < $maxCodeLines; $i++) {
        if (isset($firstLines[$i]) === true) {
            $firstLineText = $firstLines[$i];
        }
        else {
            $firstLineText = '';
        }
        if (isset($secondLines[$i]) === true) {
            $secondLineText = $secondLines[$i];
        }
        else {
            $secondLineText = '';
        }
        echo '| ';
        echo $firstLineText . str_repeat(' ', max(0, 47 - strlen($firstLineText)));
        echo '| ';
        echo $secondLineText . str_repeat(' ', max(0, 48 - strlen($secondLineText)));
        echo '|' . PHP_EOL;
    }
    
    //end for
    echo str_repeat('-', 100) . PHP_EOL . PHP_EOL;
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal