diff --git a/extensions/apidoc/models/FunctionDoc.php b/extensions/apidoc/models/FunctionDoc.php index 2befe0a..5e6e945 100644 --- a/extensions/apidoc/models/FunctionDoc.php +++ b/extensions/apidoc/models/FunctionDoc.php @@ -73,7 +73,7 @@ class FunctionDoc extends BaseDoc } elseif ($tag instanceof ReturnTag) { $this->returnType = $tag->getType(); $this->returnTypes = $tag->getTypes(); - $this->return = $tag->getDescription(); + $this->return = ucfirst($tag->getDescription()); unset($this->tags[$i]); } } diff --git a/extensions/apidoc/renderers/BaseRenderer.php b/extensions/apidoc/renderers/BaseRenderer.php index ce0d4e0..67e1acf 100644 --- a/extensions/apidoc/renderers/BaseRenderer.php +++ b/extensions/apidoc/renderers/BaseRenderer.php @@ -57,9 +57,10 @@ abstract class BaseRenderer extends Component * @param ClassDoc|InterfaceDoc|TraitDoc|ClassDoc[]|InterfaceDoc[]|TraitDoc[] $types * @param string $title a title to be used for the link TODO check whether [[yii\...|Class]] is supported * @param BaseDoc $context + * @param array $options additional HTML attributes for the link. * @return string */ - public function createTypeLink($types, $context = null, $title = null) + public function createTypeLink($types, $context = null, $title = null, $options = []) { if (!is_array($types)) { $types = [$types]; @@ -103,9 +104,9 @@ abstract class BaseRenderer extends Component // check if it is PHP internal class if (((class_exists($type, false) || interface_exists($type, false) || trait_exists($type, false)) && ($reflection = new \ReflectionClass($type)) && $reflection->isInternal())) { - $links[] = $this->generateLink($linkText, 'http://www.php.net/class.' . strtolower(ltrim($type, '\\'))) . $postfix; + $links[] = $this->generateLink($linkText, 'http://www.php.net/class.' . strtolower(ltrim($type, '\\')), $options) . $postfix; } elseif (in_array($type, $phpTypes)) { - $links[] = $this->generateLink($linkText, 'http://www.php.net/language.types.' . strtolower(ltrim($type, '\\'))) . $postfix; + $links[] = $this->generateLink($linkText, 'http://www.php.net/language.types.' . strtolower(ltrim($type, '\\')), $options) . $postfix; } else { $links[] = $type; } @@ -114,10 +115,10 @@ abstract class BaseRenderer extends Component if ($title !== null) { $linkText = $title; } - $links[] = $this->generateLink($linkText, $this->generateApiUrl($type->name)) . $postfix; + $links[] = $this->generateLink($linkText, $this->generateApiUrl($type->name), $options) . $postfix; } } - return implode(' | ', $links); + return implode('|', $links); } @@ -125,9 +126,10 @@ abstract class BaseRenderer extends Component * creates a link to a subject * @param PropertyDoc|MethodDoc|ConstDoc|EventDoc $subject * @param string $title + * @param array $options additional HTML attributes for the link. * @return string */ - public function createSubjectLink($subject, $title = null) + public function createSubjectLink($subject, $title = null, $options = []) { if ($title === null) { if ($subject instanceof MethodDoc) { @@ -146,7 +148,7 @@ abstract class BaseRenderer extends Component $link .= '#' . $subject->name; } $link .= '-detail'; - return Html::a($title, null, ['href' => $link]); + return $this->generateLink($title, $link, $options); } } @@ -175,9 +177,10 @@ abstract class BaseRenderer extends Component * generate link markup * @param $text * @param $href + * @param array $options additional HTML attributes for the link. * @return mixed */ - protected abstract function generateLink($text, $href); + protected abstract function generateLink($text, $href, $options = []); /** * Generate an url to a type in apidocs diff --git a/extensions/apidoc/templates/bootstrap/assets/css/style.css b/extensions/apidoc/templates/bootstrap/assets/css/style.css index 03c8f19..8833636 100644 --- a/extensions/apidoc/templates/bootstrap/assets/css/style.css +++ b/extensions/apidoc/templates/bootstrap/assets/css/style.css @@ -3,6 +3,10 @@ body { height: 100%; } +.guide-content, .api-content { + max-width: 1250px; +} + .wrap { min-height: 100%; height: auto; @@ -35,9 +39,14 @@ body { color: #fff; } -.signature, .signature2 { - padding: 3px; +.signature, .table-striped > tbody > tr > td.signature { + margin: 10px 0 10px 0; + padding: 8px; + color: #000000; + background: rgba(230, 236, 255, 0.81); + border: 1px rgba(191, 207, 255, 0.81) solid; + font-family: "courier new", "times new roman", monospace; line-height: 1.3em; white-space: pre-line; @@ -45,12 +54,6 @@ body { word-break: break-all; } -.signature { - margin: 10px 0 10px 0; - background: #E6ECFF; - border: 1px #BFCFFF solid; -} - blockquote { font-size: 14px; } @@ -59,7 +62,50 @@ td p { margin: 0; } -table.detailTable .paramNameCol { width: 15%; min-width: 100px; } -table.detailTable .paramTypeCol { width: 15%; min-width: 150px; } -table.detailTable .paramDescCol { width: 70%; } +table.detail-table .param-name-col { width: 15%; min-width: 100px; } +table.detail-table .param-type-col { width: 15%; min-width: 150px; } +table.detail-table .param-desc-col { width: 70%; } + +table.summary-table .col-method { width: 20%; } +table.summary-table .col-property { width: 20%; } +table.summary-table .col-const { width: 20%; } +table.summary-table .col-event { width: 20%; } +table.summary-table .col-defined { width: 15%; } + +.detail-header { + margin-top: 30px; +} + +.doc-description { + border-left: solid 1px #ddd; + border-right: solid 1px #ddd; + padding: 10px 8px; + margin: 0; +} + +.event-doc .doc-description { + border-bottom: solid 1px #ddd; +} + +.doc-description p:last-child { + margin-bottom: 0; +} + +.tool-link { + float: right; + color: #ddd; + margin: 0 8px; +} + +.icon-hash:before { + content: '#'; + font-size: 32px; + font-weight: bold; + /*top: -10px;*/ + line-height: 0.5; +} +.tool-link:hover { + color: #bbb; + text-decoration: none; +} \ No newline at end of file diff --git a/extensions/apidoc/templates/bootstrap/layouts/api.php b/extensions/apidoc/templates/bootstrap/layouts/api.php index d6a0002..b7a5291 100644 --- a/extensions/apidoc/templates/bootstrap/layouts/api.php +++ b/extensions/apidoc/templates/bootstrap/layouts/api.php @@ -44,7 +44,7 @@ $this->beginContent('@yii/apidoc/templates/bootstrap/layouts/main.php'); ?> 'view' => $this, ])?> </div> - <div class="col-md-9" role="main"> + <div class="col-md-9 api-content" role="main"> <?= $content ?> </div> </div> diff --git a/extensions/apidoc/templates/bootstrap/layouts/guide.php b/extensions/apidoc/templates/bootstrap/layouts/guide.php index 0cad275..941dc70 100644 --- a/extensions/apidoc/templates/bootstrap/layouts/guide.php +++ b/extensions/apidoc/templates/bootstrap/layouts/guide.php @@ -32,7 +32,7 @@ $this->beginContent('@yii/apidoc/templates/bootstrap/layouts/main.php'); ?> 'view' => $this, ]) ?> </div> - <div class="col-md-9" role="main"> + <div class="col-md-9 guide-content" role="main"> <?= $content ?> </div> </div> diff --git a/extensions/apidoc/templates/html/ApiRenderer.php b/extensions/apidoc/templates/html/ApiRenderer.php index d78d22e..06dcab5 100644 --- a/extensions/apidoc/templates/html/ApiRenderer.php +++ b/extensions/apidoc/templates/html/ApiRenderer.php @@ -246,8 +246,8 @@ class ApiRenderer extends BaseApiRenderer implements ViewContextInterface return ($method->isReturnByReference ? '<b>&</b>' : '') . ($method->returnType === null ? 'void' : $this->createTypeLink($method->returnTypes)) - . ' ' . $this->createSubjectLink($method, $method->name) - . ApiMarkdown::highlight('( ' . implode(', ', $params) . ' )', 'php'); + . ' <strong>' . $this->createSubjectLink($method, $method->name) . '</strong>' + . ApiMarkdown::highlight(str_replace(' ', ' ', '( ' . implode(', ', $params) . ' )'), 'php'); } public function generateApiUrl($typeName) @@ -271,14 +271,12 @@ class ApiRenderer extends BaseApiRenderer implements ViewContextInterface } /** - * generate link markup - * @param $text - * @param $href - * @return mixed + * @inheritdoc */ - protected function generateLink($text, $href) + protected function generateLink($text, $href, $options = []) { - return Html::a($text, null, ['href' => $href]); + $options['href'] = $href; + return Html::a($text, null, $options); } public function getSourceUrl($type) diff --git a/extensions/apidoc/templates/html/GuideRenderer.php b/extensions/apidoc/templates/html/GuideRenderer.php index a5d4451..2ac7fd1 100644 --- a/extensions/apidoc/templates/html/GuideRenderer.php +++ b/extensions/apidoc/templates/html/GuideRenderer.php @@ -138,14 +138,12 @@ abstract class GuideRenderer extends BaseGuideRenderer } /** - * generate link markup - * @param $text - * @param $href - * @return mixed + * @inheritdoc */ - protected function generateLink($text, $href) + protected function generateLink($text, $href, $options = []) { - return Html::a($text, null, ['href' => $href]); + $options['href'] = $href; + return Html::a($text, null, $options); } /** diff --git a/extensions/apidoc/templates/html/views/constSummary.php b/extensions/apidoc/templates/html/views/constSummary.php index f5c90ec..a85df81 100644 --- a/extensions/apidoc/templates/html/views/constSummary.php +++ b/extensions/apidoc/templates/html/views/constSummary.php @@ -18,27 +18,28 @@ if (empty($type->constants)) { $constants = $type->constants; ArrayHelper::multisort($constants, 'name'); ?> -<div class="summary docConst"> -<h2>Constants</h2> +<div class="summary doc-const"> + <h2>Constants</h2> -<p><a href="#" class="toggle">Hide inherited constants</a></p> + <p><a href="#" class="toggle">Hide inherited constants</a></p> -<table class="summaryTable table table-striped table-bordered table-hover"> -<colgroup> - <col class="col-const" /> - <col class="col-description" /> - <col class="col-defined" /> -</colgroup> -<tr> - <th>Constant</th><th>Value</th><th>Description</th><th>Defined By</th> -</tr> -<?php foreach ($constants as $constant): ?> - <tr<?= $constant->definedBy != $type->name ? ' class="inherited"' : '' ?> id="<?= $constant->name ?>"> - <td><?= $constant->name ?><a name="<?= $constant->name ?>-detail"></a></td> - <td><?= $constant->value ?></td> - <td><?= ApiMarkdown::process($constant->shortDescription . "\n" . $constant->description, $constant->definedBy, true) ?></td> - <td><?= $renderer->createTypeLink($constant->definedBy) ?></td> + <table class="summary-table table table-striped table-bordered table-hover"> + <colgroup> + <col class="col-const" /> + <col class="col-value" /> + <col class="col-description" /> + <col class="col-defined" /> + </colgroup> + <tr> + <th>Constant</th><th>Value</th><th>Description</th><th>Defined By</th> </tr> -<?php endforeach; ?> -</table> + <?php foreach ($constants as $constant): ?> + <tr<?= $constant->definedBy != $type->name ? ' class="inherited"' : '' ?> id="<?= $constant->name ?>"> + <td><?= $constant->name ?><a name="<?= $constant->name ?>-detail"></a></td> + <td><?= $constant->value ?></td> + <td><?= ApiMarkdown::process($constant->shortDescription . "\n" . $constant->description, $constant->definedBy, true) ?></td> + <td><?= $renderer->createTypeLink($constant->definedBy) ?></td> + </tr> + <?php endforeach; ?> + </table> </div> \ No newline at end of file diff --git a/extensions/apidoc/templates/html/views/eventDetails.php b/extensions/apidoc/templates/html/views/eventDetails.php index c2aa217..f3ecb9a 100644 --- a/extensions/apidoc/templates/html/views/eventDetails.php +++ b/extensions/apidoc/templates/html/views/eventDetails.php @@ -7,8 +7,11 @@ use yii\helpers\ArrayHelper; /** * @var ClassDoc $type * @var yii\web\View $this + * @var \yii\apidoc\templates\html\ApiRenderer $renderer */ +$renderer = $this->context; + $events = $type->getNativeEvents(); if (empty($events)) { return; @@ -16,10 +19,24 @@ if (empty($events)) { ArrayHelper::multisort($events, 'name'); ?> <h2>Event Details</h2> + +<div class="event-doc"> <?php foreach ($events as $event): ?> - <div class="detailHeader h3" id="<?= $event->name.'-detail' ?>"> + <div class="detail-header h3" id="<?= $event->name.'-detail' ?>"> + <a href="#" class="tool-link" title="go to top"><span class="glyphicon glyphicon-arrow-up"></span></a> + <?= $renderer->createSubjectLink($event, '<span class="glyphicon icon-hash"></span>', [ + 'title' => 'direct link to this method', + 'class' => 'tool-link hash', + ]) ?> + + <?php if (($sourceUrl = $renderer->getSourceUrl($event->definedBy, $event->startLine)) !== null): ?> + <a href="<?= str_replace('/blob/', '/edit/', $sourceUrl) ?>" class="tool-link" title="edit on github"><span class="glyphicon glyphicon-pencil"></span></a> + <a href="<?= $sourceUrl ?>" class="tool-link" title="view source on github"><span class="glyphicon glyphicon-eye-open"></span></a> + <?php endif; ?> + + <?= $event->name ?> - <span class="detailHeaderTag small"> + <span class="detail-header-tag small"> event <?php if (!empty($event->since)): ?> (available since version <?= $event->since ?>) @@ -27,13 +44,11 @@ ArrayHelper::multisort($events, 'name'); </span> </div> - <?php /* - <div class="signature"> - <?php echo $event->trigger->signature; ?> - </div>*/ ?> + <div class="doc-description"> + <?= ApiMarkdown::process($event->description, $type) ?> - <?= ApiMarkdown::process($event->description, $type) ?> - - <?= $this->render('seeAlso', ['object' => $event]) ?> + <?= $this->render('seeAlso', ['object' => $event]) ?> + </div> <?php endforeach; ?> +</div> diff --git a/extensions/apidoc/templates/html/views/eventSummary.php b/extensions/apidoc/templates/html/views/eventSummary.php index 57fcef4..ce8c0ab 100644 --- a/extensions/apidoc/templates/html/views/eventSummary.php +++ b/extensions/apidoc/templates/html/views/eventSummary.php @@ -18,32 +18,33 @@ if (empty($type->events)) { $events = $type->events; ArrayHelper::multisort($events, 'name'); ?> -<div class="summary docEvent"> -<h2>Events</h2> +<div class="summary doc-event"> + <h2>Events</h2> -<p><a href="#" class="toggle">Hide inherited events</a></p> + <p><a href="#" class="toggle">Hide inherited events</a></p> -<table class="summaryTable table table-striped table-bordered table-hover"> -<colgroup> - <col class="col-event" /> - <col class="col-description" /> - <col class="col-defined" /> -</colgroup> -<tr> - <th>Event</th><th>Type</th><th>Description</th><th>Defined By</th> -</tr> -<?php foreach ($events as $event): ?> -<tr<?= $event->definedBy != $type->name ? ' class="inherited"' : '' ?> id="<?= $event->name ?>"> - <td><?= $renderer->createSubjectLink($event) ?></td> - <td><?= $renderer->createTypeLink($event->types) ?></td> - <td> - <?= ApiMarkdown::process($event->shortDescription, $event->definedBy, true) ?> - <?php if (!empty($event->since)): ?> - (available since version <?= $event->since ?>) - <?php endif; ?> - </td> - <td><?= $renderer->createTypeLink($event->definedBy) ?></td> -</tr> -<?php endforeach; ?> -</table> + <table class="summary-table table table-striped table-bordered table-hover"> + <colgroup> + <col class="col-event" /> + <col class="col-type" /> + <col class="col-description" /> + <col class="col-defined" /> + </colgroup> + <tr> + <th>Event</th><th>Type</th><th>Description</th><th>Defined By</th> + </tr> + <?php foreach ($events as $event): ?> + <tr<?= $event->definedBy != $type->name ? ' class="inherited"' : '' ?> id="<?= $event->name ?>"> + <td><?= $renderer->createSubjectLink($event) ?></td> + <td><?= $renderer->createTypeLink($event->types) ?></td> + <td> + <?= ApiMarkdown::process($event->shortDescription, $event->definedBy, true) ?> + <?php if (!empty($event->since)): ?> + (available since version <?= $event->since ?>) + <?php endif; ?> + </td> + <td><?= $renderer->createTypeLink($event->definedBy) ?></td> + </tr> + <?php endforeach; ?> + </table> </div> diff --git a/extensions/apidoc/templates/html/views/methodDetails.php b/extensions/apidoc/templates/html/views/methodDetails.php index 4e60668..a3db465 100644 --- a/extensions/apidoc/templates/html/views/methodDetails.php +++ b/extensions/apidoc/templates/html/views/methodDetails.php @@ -21,11 +21,23 @@ ArrayHelper::multisort($methods, 'name'); ?> <h2>Method Details</h2> +<div class="method-doc"> <?php foreach ($methods as $method): ?> - <div class="detailHeader h3" id="<?= $method->name . '()-detail' ?>"> + <div class="detail-header h3" id="<?= $method->name . '()-detail' ?>"> + <a href="#" class="tool-link" title="go to top"><span class="glyphicon glyphicon-arrow-up"></span></a> + <?= $renderer->createSubjectLink($method, '<span class="glyphicon icon-hash"></span>', [ + 'title' => 'direct link to this method', + 'class' => 'tool-link hash', + ]) ?> + + <?php if (($sourceUrl = $renderer->getSourceUrl($method->definedBy, $method->startLine)) !== null): ?> + <a href="<?= str_replace('/blob/', '/edit/', $sourceUrl) ?>" class="tool-link" title="edit on github"><span class="glyphicon glyphicon-pencil"></span></a> + <a href="<?= $sourceUrl ?>" class="tool-link" title="view source on github"><span class="glyphicon glyphicon-eye-open"></span></a> + <?php endif; ?> + <?= $method->name ?>() - <span class="detailHeaderTag small"> + <span class="detail-header-tag small"> <?= $method->visibility ?> method <?php if (!empty($method->since)): ?> @@ -34,45 +46,42 @@ ArrayHelper::multisort($methods, 'name'); </span> </div> - <table class="detailTable table table-striped table-bordered table-hover"> - <tr><td colspan="3"> - <div class="signature2"><?= $renderer->renderMethodSignature($method) ?></div> - </td></tr> + <div class="doc-description"> + <p><strong><?= ApiMarkdown::process($method->shortDescription, $type, true) ?></strong></p> + + <?= ApiMarkdown::process($method->description, $type) ?> + + <?= $this->render('seeAlso', ['object' => $method]) ?> + </div> + + <table class="detail-table table table-striped table-bordered table-hover"> + <tr><td colspan="3" class="signature"><?= $renderer->renderMethodSignature($method) ?></td></tr> <?php if (!empty($method->params) || !empty($method->return) || !empty($method->exceptions)): ?> <?php foreach ($method->params as $param): ?> <tr> - <td class="paramNameCol"><?= ApiMarkdown::highlight($param->name, 'php') ?></td> - <td class="paramTypeCol"><?= $renderer->createTypeLink($param->types) ?></td> - <td class="paramDescCol"><?= ApiMarkdown::process($param->description, $type) ?></td> + <td class="param-name-col"><?= ApiMarkdown::highlight($param->name, 'php') ?></td> + <td class="param-type-col"><?= $renderer->createTypeLink($param->types) ?></td> + <td class="param-desc-col"><?= ApiMarkdown::process($param->description, $type) ?></td> </tr> <?php endforeach; ?> <?php if (!empty($method->return)): ?> <tr> - <th class="paramNameCol"><?= 'return' ?></th> - <td class="paramTypeCol"><?= $renderer->createTypeLink($method->returnTypes) ?></td> - <td class="paramDescCol"><?= ApiMarkdown::process($method->return, $type) ?></td> + <th class="param-name-col">return</th> + <td class="param-type-col"><?= $renderer->createTypeLink($method->returnTypes) ?></td> + <td class="param-desc-col"><?= ApiMarkdown::process($method->return, $type) ?></td> </tr> <?php endif; ?> <?php foreach ($method->exceptions as $exception => $description): ?> <tr> - <th class="paramNameCol"><?= 'throws' ?></th> - <td class="paramTypeCol"><?= $renderer->createTypeLink($exception) ?></td> - <td class="paramDescCol"><?= ApiMarkdown::process($description, $type) ?></td> + <th class="param-name-col">throws</th> + <td class="param-type-col"><?= $renderer->createTypeLink($exception) ?></td> + <td class="param-desc-col"><?= ApiMarkdown::process($description, $type) ?></td> </tr> <?php endforeach; ?> <?php endif; ?> - <?php if (($sourceUrl = $renderer->getSourceUrl($method->definedBy, $method->startLine)) !== null): ?> - <tr> - <td colspan="3">Source Code: <a href="<?= $sourceUrl ?>"><?= $sourceUrl ?></a></td> - </tr> - <?php endif; ?> </table> <!-- --><?php //$this->renderPartial('sourceCode',array('object'=>$method)); ?> - <p><strong><?= ApiMarkdown::process($method->shortDescription, $type, true) ?></strong></p> - <?= ApiMarkdown::process($method->description, $type) ?> - - <?= $this->render('seeAlso', ['object' => $method]) ?> - <?php endforeach; ?> +</div> diff --git a/extensions/apidoc/templates/html/views/methodSummary.php b/extensions/apidoc/templates/html/views/methodSummary.php index b800eb3..9d264aa 100644 --- a/extensions/apidoc/templates/html/views/methodSummary.php +++ b/extensions/apidoc/templates/html/views/methodSummary.php @@ -19,12 +19,12 @@ if ($protected && count($type->getProtectedMethods()) == 0 || !$protected && cou return; } ?> -<div class="summary docMethod"> +<div class="summary doc-method"> <h2><?= $protected ? 'Protected Methods' : 'Public Methods' ?></h2> <p><a href="#" class="toggle">Hide inherited methods</a></p> -<table class="summaryTable table table-striped table-bordered table-hover"> +<table class="summary-table table table-striped table-bordered table-hover"> <colgroup> <col class="col-method" /> <col class="col-description" /> diff --git a/extensions/apidoc/templates/html/views/propertyDetails.php b/extensions/apidoc/templates/html/views/propertyDetails.php index 63ca302..17aa864 100644 --- a/extensions/apidoc/templates/html/views/propertyDetails.php +++ b/extensions/apidoc/templates/html/views/propertyDetails.php @@ -21,9 +21,22 @@ ArrayHelper::multisort($properties, 'name'); ?> <h2>Property Details</h2> +<div class="property-doc"> <?php foreach ($properties as $property): ?> - <div class="detailHeader h3" id="<?= $property->name.'-detail' ?>"> + <div class="detail-header h3" id="<?= $property->name.'-detail' ?>"> + <a href="#" class="tool-link" title="go to top"><span class="glyphicon glyphicon-arrow-up"></span></a> + <?= $renderer->createSubjectLink($property, '<span class="glyphicon icon-hash"></span>', [ + 'title' => 'direct link to this method', + 'class' => 'tool-link hash', + ]) ?> + + <?php if (($sourceUrl = $renderer->getSourceUrl($property->definedBy, $property->startLine)) !== null): ?> + <a href="<?= str_replace('/blob/', '/edit/', $sourceUrl) ?>" class="tool-link" title="edit on github"><span class="glyphicon glyphicon-pencil"></span></a> + <a href="<?= $sourceUrl ?>" class="tool-link" title="view source on github"><span class="glyphicon glyphicon-eye-open"></span></a> + <?php endif; ?> + + <?= $property->name ?> <span class="detailHeaderTag small"> <?= $property->visibility ?> @@ -43,3 +56,4 @@ ArrayHelper::multisort($properties, 'name'); <?= $this->render('seeAlso', ['object' => $property]) ?> <?php endforeach; ?> +</div> diff --git a/extensions/apidoc/templates/html/views/propertySummary.php b/extensions/apidoc/templates/html/views/propertySummary.php index 3fa3131..250c7ea 100644 --- a/extensions/apidoc/templates/html/views/propertySummary.php +++ b/extensions/apidoc/templates/html/views/propertySummary.php @@ -18,12 +18,12 @@ if ($protected && count($type->getProtectedProperties()) == 0 || !$protected && return; } ?> -<div class="summary docProperty"> +<div class="summary doc-property"> <h2><?= $protected ? 'Protected Properties' : 'Public Properties' ?></h2> <p><a href="#" class="toggle">Hide inherited properties</a></p> -<table class="summaryTable table table-striped table-bordered table-hover"> +<table class="summary-table table table-striped table-bordered table-hover"> <colgroup> <col class="col-property" /> <col class="col-type" /> diff --git a/extensions/apidoc/templates/html/views/seeAlso.php b/extensions/apidoc/templates/html/views/seeAlso.php index 3752a4f..4fcbef9 100644 --- a/extensions/apidoc/templates/html/views/seeAlso.php +++ b/extensions/apidoc/templates/html/views/seeAlso.php @@ -11,21 +11,22 @@ foreach ($object->tags as $tag) { if (get_class($tag) == 'phpDocumentor\Reflection\DocBlock\Tag\SeeTag') { $ref = $tag->getReference(); if (strpos($ref, '://') === false) { - $see[] = '[[' . $ref . ']]'; - } else { - $see[] = $ref; + $ref = '[[' . $ref . ']]'; } + $see[] = rtrim(\yii\apidoc\helpers\ApiMarkdown::process($ref . ' ' . $tag->getDescription(), $object->definedBy, true), ". \r\n"); } } if (empty($see)) { return; +} elseif (count($see) == 1) { + echo '<p>See also ' . reset($see) . '.</p>'; +} else { + echo '<p>See also:</p><ul>'; + foreach ($see as $ref) { + if (substr($ref, -1, 1) != '>') { + $ref .= '.'; + } + echo "<li>$ref</li>"; + } + echo '</ul>'; } -?> -<div class="SeeAlso"> -<h4>See Also</h4> -<ul> -<?php foreach ($see as $ref): ?> - <li><?= \yii\apidoc\helpers\ApiMarkdown::process($ref, $object->definedBy, true) ?></li> -<?php endforeach; ?> -</ul> -</div>