You are here

public static function Kint_Decorators_Rich::decorate in Devel 8.2

Same name and namespace in other branches
  1. 8 kint/kint/decorators/rich.php \Kint_Decorators_Rich::decorate()
2 calls to Kint_Decorators_Rich::decorate()
kintParser::_decorateCell in kint/kint/inc/kintParser.class.php
Kint_Decorators_Rich::decorateTrace in kint/kint/decorators/rich.php

File

kint/kint/decorators/rich.php, line 8

Class

Kint_Decorators_Rich

Code

public static function decorate(kintVariableData $kintVar) {
  $output = '<dl>';
  $extendedPresent = $kintVar->extendedValue !== null || $kintVar->_alternatives !== null;
  if ($extendedPresent) {
    $class = 'kint-parent';
    if (Kint::$expandedByDefault) {
      $class .= ' kint-show';
    }
    $output .= '<dt class="' . $class . '">';
  }
  else {
    $output .= '<dt>';
  }
  if ($extendedPresent) {
    $output .= '<span class="kint-popup-trigger" title="Open in new window">&rarr;</span><nav></nav>';
  }
  $output .= self::_drawHeader($kintVar) . $kintVar->value . '</dt>';
  if ($extendedPresent) {
    $output .= '<dd>';
  }
  if (isset($kintVar->extendedValue)) {
    if (is_array($kintVar->extendedValue)) {
      foreach ($kintVar->extendedValue as $v) {
        $output .= self::decorate($v);
      }
    }
    elseif (is_string($kintVar->extendedValue)) {
      $output .= '<pre>' . $kintVar->extendedValue . '</pre>';
    }
    else {
      $output .= self::decorate($kintVar->extendedValue);

      //it's kint's container
    }
  }
  elseif (isset($kintVar->_alternatives)) {
    $output .= "<ul class=\"kint-tabs\">";
    foreach ($kintVar->_alternatives as $k => $var) {
      $active = $k === 0 ? ' class="kint-active-tab"' : '';
      $output .= "<li{$active}>" . self::_drawHeader($var, false) . '</li>';
    }
    $output .= "</ul><ul>";
    foreach ($kintVar->_alternatives as $var) {
      $output .= "<li>";
      $var = $var->value;
      if (is_array($var)) {
        foreach ($var as $v) {
          $output .= is_string($v) ? '<pre>' . $v . '</pre>' : self::decorate($v);
        }
      }
      elseif (is_string($var)) {
        $output .= '<pre>' . $var . '</pre>';
      }
      elseif (isset($var)) {
        throw new Exception('Kint has encountered an error, ' . 'please paste this report to https://github.com/raveren/kint/issues<br>' . 'Error encountered at ' . basename(__FILE__) . ':' . __LINE__ . '<br>' . ' variables: ' . htmlspecialchars(var_export($kintVar->_alternatives, true), ENT_QUOTES));
      }
      $output .= "</li>";
    }
    $output .= "</ul>";
  }
  if ($extendedPresent) {
    $output .= '</dd>';
  }
  $output .= '</dl>';
  return $output;
}