Core update (better sidebar)

This commit is contained in:
markseu 2015-08-28 16:12:19 +02:00
parent 1e45a4975f
commit d3c6b1d1ba
6 changed files with 40 additions and 17 deletions

View file

@ -1,4 +1,4 @@
Yellow 0.5.31
Yellow 0.5.32
=============
[![Yellow](https://raw.githubusercontent.com/wiki/datenstrom/yellow/images/yellow.jpg)](http://datenstrom.se/yellow)

View file

@ -38,6 +38,7 @@ robotsFile = robots.txt
iconFile = icon.png
template = default
navigation = navigation
sidebar = sidebar
parser = markdown
parserSafeMode = 0
multiLanguageMode = 0

View file

@ -5,7 +5,7 @@
// Yellow main class
class Yellow
{
const Version = "0.5.31";
const Version = "0.5.32";
var $page; //current page
var $pages; //pages from file system
var $files; //files from file system
@ -62,6 +62,7 @@ class Yellow
$this->config->setDefault("iconFile", "icon.png");
$this->config->setDefault("template", "default");
$this->config->setDefault("navigation", "navigation");
$this->config->setDefault("sidebar", "sidebar");
$this->config->setDefault("parser", "markdown");
$this->config->setDefault("parserSafeMode", "0");
$this->config->setDefault("multiLanguageMode", "0");
@ -370,7 +371,7 @@ class YellowPage
var $headerData; //response header
var $outputData; //response output
var $pages; //page collection
var $relations; //page relations
var $pageRelations; //page relations
var $parser; //content parser
var $parserData; //content data of page
var $parserSafeMode; //page is parsed in safe mode? (boolean)
@ -386,7 +387,7 @@ class YellowPage
$this->metaData = array();
$this->headerData = array();
$this->pages = new YellowPageCollection($yellow);
$this->relations = array();
$this->pageRelations = array();
}
// Set request information
@ -448,6 +449,7 @@ class YellowPage
$this->yellow->config->get("templateDir"), $this->yellow->config->get("template"), ".html"));
$this->set("modified", date("Y-m-d H:i:s", $this->yellow->toolbox->getFileModified($this->fileName)));
$this->set("navigation", $this->yellow->config->get("navigation"));
$this->set("sidebar", $this->yellow->config->get("sidebar"));
$this->set("parser", $this->yellow->config->get("parser"));
if(preg_match("/^(\xEF\xBB\xBF)?\-\-\-[\r\n]+(.+?)[\r\n]+\-\-\-[\r\n]+/s", $this->rawData, $parts))
@ -715,16 +717,16 @@ class YellowPage
return $this->pages;
}
// Set page relation
// Set related page
function setPage($key, $page)
{
$page->relations[$key] = $this;
$this->pageRelations[$key] = $page;
}
// Return related page
function getPage($key)
{
return !is_null($this->relations[$key]) ? $this->relations[$key] : $this;
return !is_null($this->pageRelations[$key]) ? $this->pageRelations[$key] : $this;
}
// Return absolute page location
@ -915,6 +917,12 @@ class YellowPage
{
return !is_null($this->metaData[$key]);
}
// Check if related page exists
function isPage($key)
{
return !is_null($this->pageRelations[$key]);
}
}
// Yellow page collection as array

View file

@ -1,12 +1,14 @@
<?php if($yellow->page->isExisting("sidebar")): ?>
<?php if($yellow->page->isPage("sidebar")): ?>
<div class="content sidebar">
<?php $location = $yellow->lookup->getDirectoryLocation($yellow->page->location).$yellow->page->get("sidebar"); ?>
<?php if($page = $yellow->pages->find($location)): ?>
<?php $yellow->page->setPage("main", $page) ?>
<?php if($yellow->page->get("navigation") == "navigation-sidebar"): ?>
<?php $page = $yellow->page->getParentTop(false) ?>
<?php $pages = $page ? $page->getChildren(!$page->isVisible()): $yellow->pages->clean() ?>
<?php $yellow->snippet("navigation-sidebar", $pages, true) ?>
<?php else: ?>
<?php $page = $yellow->page->getPage("sidebar") ?>
<?php $page->setPage("main", $yellow->page) ?>
<?php $yellow->page->setLastModified($page->getModified()) ?>
<?php echo $page->getContent() ?>
<?php else: ?>
<?php $yellow->snippet("navigation-sidebar") ?>
<?php endif ?>
</div>
<?php endif ?>

View file

@ -14,8 +14,9 @@
<body>
<?php $yellow->page->set("pageClass", "page") ?>
<?php $yellow->page->set("pageClass", $yellow->page->get("pageClass")." ".$yellow->page->get("template")) ?>
<?php if($yellow->page->get("navigation") == "navigation-sidebar") { $yellow->page->set("navigation", "navigation"); $yellow->page->set("sidebar", "navigation-sidebar"); } ?>
<?php if($yellow->page->isExisting("sidebar")) $yellow->page->set("pageClass", $yellow->page->get("pageClass")." with-sidebar") ?>
<?php if($yellow->page->get("navigation") == "navigation-sidebar") $yellow->page->setPage("sidebar", $yellow->page); ?>
<?php if($page = $yellow->pages->find($yellow->lookup->getDirectoryLocation($yellow->page->location).$yellow->page->get("sidebar"))) $yellow->page->setPage("sidebar", $page) ?>
<?php if($yellow->page->isPage("sidebar")) $yellow->page->set("pageClass", $yellow->page->get("pageClass")." with-sidebar") ?>
<div class="<?php echo $yellow->page->getHtml("pageClass") ?>">
<div class="header">
<div class="sitename"><h1><a href="<?php echo $yellow->page->base."/" ?>"><i class="sitename-logo"></i><?php echo $yellow->page->getHtml("sitename") ?></a></h1></div>

View file

@ -1,6 +1,16 @@
<?php $page = $yellow->page->getParentTop(false) ?>
<?php $pages = $page ? $page->getChildren(!$page->isVisible()): $yellow->pages->clean() ?>
<?php list($name, $pages, $sidebar) = $yellow->getSnippetArgs() ?>
<?php if(!$pages) $pages = $yellow->pages->top() ?>
<?php $yellow->page->setLastModified($pages->getModified()) ?>
<?php if(!$sidebar): ?>
<div class="navigation">
<ul>
<?php foreach($pages as $page): ?>
<li><a<?php echo $page->isActive() ? " class=\"active\"" : "" ?> href="<?php echo $page->getLocation() ?>"><?php echo $page->getHtml("titleNavigation") ?></a></li>
<?php endforeach ?>
</ul>
</div>
<div class="navigation-banner"></div>
<?php else: ?>
<div class="navigation-sidebar">
<ul>
<?php foreach($pages as $page): ?>
@ -8,3 +18,4 @@
<?php endforeach ?>
</ul>
</div>
<?php endif ?>