commit d3c6b1d1ba162720a4e6718fcf7aac7e86e55914
parent 1e45a4975fc0ed5919abd752701f1c19e5ee1641
Author: markseu <mark2011@mayberg.se>
Date: Fri, 28 Aug 2015 16:12:19 +0200
Core update (better sidebar)
Diffstat:
6 files changed, 41 insertions(+), 17 deletions(-)
diff --git a/README.md b/README.md
@@ -1,4 +1,4 @@
-Yellow 0.5.31
+Yellow 0.5.32
=============
[](http://datenstrom.se/yellow)
diff --git a/system/config/config.ini b/system/config/config.ini
@@ -38,6 +38,7 @@ robotsFile = robots.txt
iconFile = icon.png
template = default
navigation = navigation
+sidebar = sidebar
parser = markdown
parserSafeMode = 0
multiLanguageMode = 0
diff --git a/system/core/core.php b/system/core/core.php
@@ -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
diff --git a/system/themes/snippets/content-sidebar.php b/system/themes/snippets/content-sidebar.php
@@ -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 ?>
diff --git a/system/themes/snippets/header.php b/system/themes/snippets/header.php
@@ -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>
diff --git a/system/themes/snippets/navigation-sidebar.php b/system/themes/snippets/navigation-sidebar.php
@@ -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 ?>
+\ No newline at end of file