| 
<?php /* Display a code block for all frames in the stack.* @todo: This should PROBABLY be done on-demand, lest
 * we get 200 frames to process. */ ?>
 <div class="frame-code-container <?php echo (!$has_frames ? 'empty' : '') ?>">
 <?php foreach ($frames as $i => $frame): ?>
 <?php $line = $frame->getLine(); ?>
 <div class="frame-code <?php echo ($i == 0 ) ? 'active' : '' ?>" id="frame-code-<?php echo $i ?>">
 <div class="frame-file">
 <?php $filePath = $frame->getFile(); ?>
 <?php if ($filePath && $editorHref = $handler->getEditorHref($filePath, (int) $line)): ?>
 <a href="<?php echo $editorHref ?>" class="editor-link"<?php echo ($handler->getEditorAjax($filePath, (int) $line) ? ' data-ajax' : '') ?>>
 Open:
 <strong><?php echo $tpl->breakOnDelimiter('/', $tpl->escape($filePath ?: '<#unknown>')) ?></strong>
 </a>
 <?php else: ?>
 <strong><?php echo $tpl->breakOnDelimiter('/', $tpl->escape($filePath ?: '<#unknown>')) ?></strong>
 <?php endif ?>
 </div>
 <?php
 // Do nothing if there's no line to work off
 if ($line !== null):
 
 // the $line is 1-indexed, we nab -1 where needed to account for this
 $range = $frame->getFileLines($line - 20, 40);
 
 // getFileLines can return null if there is no source code
 if ($range):
 $range = array_map(function ($line) { return empty($line) ? ' ' : $line;}, $range);
 $start = key($range) + 1;
 $code  = join("\n", $range);
 ?>
 <pre class="code-block line-numbers"
 data-line="<?php echo $line ?>"
 data-line-offset="<?php echo $start ?>"
 data-start="<?php echo $start ?>"
 ><code class="language-php"><?php echo $tpl->escape($code) ?></code></pre>
 
 <?php endif ?>
 <?php endif ?>
 
 <?php $frameArgs = $tpl->dumpArgs($frame); ?>
 <?php if ($frameArgs): ?>
 <div class="frame-file">
 Arguments
 </div>
 <div id="frame-code-args-<?=$i?>" class="code-block frame-args">
 <?php echo $frameArgs; ?>
 </div>
 <?php endif ?>
 
 <?php
 // Append comments for this frame
 $comments = $frame->getComments();
 ?>
 <div class="frame-comments <?php echo empty($comments) ? 'empty' : '' ?>">
 <?php foreach ($comments as $commentNo => $comment): ?>
 <?php extract($comment) ?>
 <div class="frame-comment" id="comment-<?php echo $i . '-' . $commentNo ?>">
 <span class="frame-comment-context"><?php echo $tpl->escape($context) ?></span>
 <?php echo $tpl->escapeButPreserveUris($comment) ?>
 </div>
 <?php endforeach ?>
 </div>
 
 </div>
 <?php endforeach ?>
 </div>
 
 |