mirror of
https://github.com/daledavies/jump.git
synced 2026-01-08 08:22:07 +01:00
76 lines
3.4 KiB
PHP
76 lines
3.4 KiB
PHP
<?php
|
|
/**
|
|
* ██ ██ ██ ███ ███ ██████
|
|
* ██ ██ ██ ████ ████ ██ ██
|
|
* ██ ██ ██ ██ ████ ██ ██████
|
|
* ██ ██ ██ ██ ██ ██ ██ ██
|
|
* █████ ██████ ██ ██ ██
|
|
*
|
|
* @author Dale Davies <dale@daledavies.co.uk>
|
|
* @copyright Copyright (c) 2022, Dale Davies
|
|
* @license MIT
|
|
*/
|
|
|
|
namespace Jump\Pages;
|
|
|
|
class HomePage extends AbstractPage {
|
|
|
|
protected function render_header(): string {
|
|
$template = $this->mustache->loadTemplate('header');
|
|
$greeting = null;
|
|
if (!$this->config->parse_bool($this->config->get('showgreeting'))) {
|
|
$greeting = 'home';
|
|
}
|
|
$csrfsection = $this->session->getSection('csrf');
|
|
$unsplashdata = $this->cache->load('unsplash');
|
|
$templatecontext = [
|
|
'csrftoken' => $csrfsection->get('token'),
|
|
'greeting' => $greeting,
|
|
'noindex' => $this->config->parse_bool($this->config->get('noindex')),
|
|
'title' => $this->config->get('sitename'),
|
|
'owmapikey' => !!$this->config->get('owmapikey', false),
|
|
'metrictemp' => $this->config->parse_bool($this->config->get('metrictemp')),
|
|
'ampmclock' => $this->config->parse_bool($this->config->get('ampmclock', false)),
|
|
'unsplash' => !!$this->config->get('unsplashapikey', false),
|
|
'unsplashcolor' => $unsplashdata?->color,
|
|
'wwwurl' => $this->config->get_wwwurl(),
|
|
];
|
|
if ($this->config->parse_bool($this->config->get('showsearch', false))) {
|
|
$templatecontext = array_merge($templatecontext, [
|
|
'searchengines' => json_encode((new \Jump\SearchEngines($this->config, $this->cache))->get_search_engines()),
|
|
'searchjson' => json_encode((new \Jump\Sites($this->config, $this->cache))->get_sites_for_search()),
|
|
]);
|
|
}
|
|
return $template->render($templatecontext);
|
|
}
|
|
|
|
protected function render_content(): string {
|
|
return $this->cache->load(cachename: 'templates/sites', callback: function() {
|
|
$sites = new \Jump\Sites($this->config, $this->cache);
|
|
$template = $this->mustache->loadTemplate('sites');
|
|
return $template->render([
|
|
'hassites' => !empty($sites->get_sites()),
|
|
'sites' => $sites->get_sites_by_tag('home'),
|
|
'altlayout' => $this->config->parse_bool($this->config->get('altlayout', false)),
|
|
'wwwurl' => $this->config->get_wwwurl(),
|
|
]);
|
|
});
|
|
}
|
|
|
|
protected function render_footer(): string {
|
|
return $this->cache->load(cachename: 'templates/sites', key: 'footer', callback: function() {
|
|
$sites = new \Jump\Sites(config: $this->config, cache: $this->cache);
|
|
$tags = $sites->get_tags_for_template();
|
|
$template = $this->mustache->loadTemplate('footer');
|
|
return $template->render([
|
|
'hastags' => !empty($tags),
|
|
'tags' => $tags,
|
|
'showclock' => $this->config->parse_bool($this->config->get('showclock')),
|
|
'showsearch' => $this->config->parse_bool($this->config->get('showsearch', false)),
|
|
'wwwurl' => $this->config->get_wwwurl(),
|
|
]);
|
|
});
|
|
}
|
|
|
|
}
|