load disqus only on request
[mdref/mdref] / views / sidebar.phtml
index f6dccb455be7bc86d2bd7b769a2b2da5b2e41bc9..2c16424c3f311ec5c55b1659fb3fb2dbad53bd80 100644 (file)
-<?php if (isset($listing)) : ?>
+
 <div class="sidebar">
-       <?php include __DIR__."/edit.phtml" ?>
+       <?php if (isset($entry)) : ?>
+
+       <div class="edit">
+               <a href="<?= $entry->getEditUrl() ?>">Edit</a>
+       </div>
+       <?php endif; ?>
+
+       <?php
+               if (isset($baseUrl) || !isset($entry)) {
+                       $up = "./";
+               } else {
+                       $up = str_repeat("../", count($entry->getParents()));
+               }
+       ?>
+
        <ul>
-               <li>&lsh; <a href="">Home</a></li>
-               <?php if (($entry = $listing->getParent())) : ?>
-                       <li>&uarr; <a href="<?=$entry->formatUrl()?>"><?=$entry->formatLink()?></a></li>
-               <?php endif; ?>
-               <?php if (($entry = $listing->getSelf()) && ($link = $entry->formatLink())) : ?>
-                       <ul><li>&circlearrowright; <?= $link ?>
-               <?php endif; ?>
-               <?php if (count($listing)) : ?>
+               <li>&lsh; <a href="<?= $up ?>">Home</a>
+                       <?php if (isset($entry)) : /* @var \mdref\Entry $entry */ ?>
+
                        <ul>
-                               <?php foreach ($listing as $entry) : ?>
-                               <li>&rdsh; <a href="<?=$entry->formatUrl()?>"><?=$entry->formatLink()?></a></li>
+                               <li>
+                                       <?php foreach ($entry->getParents() as $parent) : ?>
+                                               <?php if ($parent->isFile()) : ?>
+
+                                       &uarr; <a href="<?= $up.$esc($parent->getName()) ?>">
+                                                       <?= $esc($entry->getRepo()->getEntry($parent)) ?>
+
+                                               </a>
+                                               <ul>
+                                                       <li>
+                                               <?php endif; ?>
+                                       <?php endforeach; ?>
+
+                                                       &circlearrowright; <strong><a href="<?= $up.$esc($entry->getName()) ?>"
+                                                       ><?= $esc($entry) ?></a></strong>
+
+                                                       <?php if ($entry->hasIterator()): ?>
+
+                                                       <ul>
+                                                               <?php foreach ($entry as $sub) : /* @var \mdref\Entry $sub */ ?>
+
+                                                               <li>
+                                                                       &rdsh; <a href="<?= $up.$esc($sub->getName()) ?>"
+                                                                       ><?= $esc($sub) ?></a>
+                                                               </li>
+                                                               <?php endforeach; ?>
+
+                                                       </ul>
+                                                       <?php endif; ?>
+
+                                                       <?php if (isset($parent)) : ?>
+                                                               <?php
+                                                               while ($parent && !$parent->isFile()) {
+                                                                       $parent = $parent->getParent();
+                                                               }
+                                                               ?>
+                                                               <?php if ($parent && $parent->hasIterator()) : ?>
+                                                                       <?php
+                                                                       $parent_closed = true;
+                                                                       ?>
+
+                                               </ul>
+                                                                       <?php foreach ($parent as $sub) : ?>
+                                                                               <?php
+                                                                               if ($sub->getName() === $entry->getName()) {
+                                                                                       continue;
+                                                                               }
+                                                                               ?>
+
+                                               <li>&ldsh; <a href="<?= $up.$esc($sub->getName()) ?>"><?= $esc($sub) ?></a></li>
+                                                                       <?php endforeach; ?>
+                                                               <?php endif; ?>
+                                                       <?php endif; ?>
+                                               <?php foreach ($entry->getParents() as $parent) : ?>
+                                                       <?php if (!empty($parent_closed)) : ?>
+                                                               <?php
+                                                               $parent_closed = false;
+                                                               ?>
+                                                       <?php elseif ($parent->isFile()) : ?>
+                                                               <?php if (isset($parent_closed)) : ?>
+                                                                       <?php
+                                                                       unset($parent_closed);
+                                                                       ?>
+                                                               <?php else : ?>
+
+                                               </li>
+                                                               <?php endif; ?>
+
+                                       </ul>
+                                                       <?php endif; ?>
+                                               <?php endforeach; ?>
+
+                               </li>
+                       </ul>
+                       <?php elseif (isset($refs)) : ?>
+
+                       <ul>
+                               <?php foreach ($refs as $repo) : /* @var \mdref\Repo $repo */ ?>
+                                       <?php foreach ($repo as $sub) : /* @var \mdref\Entry $entry */ ?>
+
+                                               <li>
+                                                       &rdsh; <a href="<?= $esc($sub->getName()) ?>"
+                                                       ><?= $esc($sub->getTitle()) ?></a>
+                                               </li>
+                                       <?php endforeach; ?>
                                <?php endforeach; ?>
+
                        </ul>
-               <?php endif; ?>
-               <?php if (isset($link) && strlen($link)) : ?>
-                       </li></ul>
-               <?php endif; ?>
+                       <?php endif; ?>
+
+               </li>
        </ul>
 </div>
-<?php endif; ?>