siteSidebar();
$isSearch = (strpos($out, 'plugin-search') !== false);
$isNav = (strpos($out, 'plugin-navigation') !== false || strpos($out, 'plugin-pages') !== false);
// Fixed sidebar order (lower = higher up). Unknown plugins such as
// the Hit Counter default to 90, i.e. pinned to the bottom.
$priority = 90;
if (strpos($out, 'plugin-about') !== false) $priority = 10; // Blog / About
elseif ($isSearch) $priority = 20; // Search
elseif ($isNav) $priority = 30; // Navigation
elseif (strpos($out, 'plugin-categories') !== false) $priority = 40; // Category
if ($isSearch) {
$sidebarSearchHtml .= $out;
}
// Mark the navigation / pages plugin so its list can be shuffled
// client-side (see the script near the body end).
if ($isNav) {
$out = '
' . $out . '
';
}
$sidebarItems[] = array(
'priority' => $priority,
'index' => $sidebarIndex++,
'search' => $isSearch,
'html' => $out,
);
}
}
// Stable sort by priority, then original order (PHP < 8 usort isn't stable).
usort($sidebarItems, function ($a, $b) {
if ($a['priority'] === $b['priority']) {
return $a['index'] - $b['index'];
}
return $a['priority'] - $b['priority'];
});
$sidebarFullHtml = ''; // all plugins, ordered (used off the homepage)
$sidebarNoSearchHtml = ''; // same, minus search (used on the homepage)
foreach ($sidebarItems as $item) {
$sidebarFullHtml .= $item['html'];
if (!$item['search']) {
$sidebarNoSearchHtml .= $item['html'];
}
}
// The hero (and the relocated search) only appear on the blog front page.
$heroVisible = ($WHERE_AM_I === 'home' && Paginator::currentPage() == 1);
?>
viewing a single page/post
// "home" -> viewing the front page
if ($WHERE_AM_I == 'page') {
include(THEME_DIR_PHP.'page.php');
} else {
include(THEME_DIR_PHP.'home.php');
}
?>