commit 77cf31de60a3392ce5241dc5271e67427a0b0de2
parent 11424b363521ae6f6f6903b588377abc4952fc3f
Author: markseu <mark2011@mayberg.se>
Date: Fri, 14 Nov 2014 10:24:07 +0100
Hello web interface (winter remix for David)
Diffstat:
5 files changed, 27 insertions(+), 11 deletions(-)
diff --git a/README.md b/README.md
@@ -1,4 +1,4 @@
-Yellow 0.4.8
+Yellow 0.4.9
============
Yellow is for people who make websites. [Visit website](http://datenstrom.se/yellow).
diff --git a/system/config/config.ini b/system/config/config.ini
@@ -29,6 +29,7 @@ contentPagination = page
contentExtension = .txt
configExtension = .ini
errorPageFile = error(.*).txt
+newPageFile = new(.*).txt
textStringFile = text(.*).ini
parser = markdownextra
parserSafeMode = 0
@@ -38,7 +39,6 @@ webinterfaceServerScheme = http
webinterfaceUserHashAlgorithm = bcrypt
webinterfaceUserHashCost = 10
webinterfaceUserFile = user.ini
-webinterfaceNewPage = default
webinterfaceFilePrefix = published
commandlineDefaultFile = index.html
commandlineErrorFile = error404.html
diff --git a/system/config/default.txt b/system/config/newpage.txt
diff --git a/system/core/core-webinterface.php b/system/core/core-webinterface.php
@@ -5,7 +5,7 @@
// Web interface core plugin
class YellowWebinterface
{
- const Version = "0.4.4";
+ const Version = "0.4.5";
var $yellow; //access to API
var $active; //web interface is active? (boolean)
var $userLoginFailed; //web interface login failed? (boolean)
@@ -27,7 +27,6 @@ class YellowWebinterface
$this->yellow->config->setDefault("webinterfaceUserHashAlgorithm", "bcrypt");
$this->yellow->config->setDefault("webinterfaceUserHashCost", "10");
$this->yellow->config->setDefault("webinterfaceUserFile", "user.ini");
- $this->yellow->config->setDefault("webinterfaceNewPage", "default");
$this->yellow->config->setDefault("webinterfaceFilePrefix", "published");
$this->users->load($this->yellow->config->get("configDir").$this->yellow->config->get("webinterfaceUserFile"));
}
@@ -475,10 +474,13 @@ class YellowWebinterface
$this->yellow->page->location, $this->yellow->config->get("contentDir"),
$this->yellow->config->get("contentRootDir"), $this->yellow->config->get("contentHomeDir"),
$this->yellow->config->get("contentDefaultFile"), $this->yellow->config->get("contentExtension"));
- $fileName = $this->yellow->toolbox->findNameFromFile($fileName,
- $this->yellow->config->get("configDir"), $this->yellow->config->get("webinterfaceNewPage"),
- $this->yellow->config->get("contentExtension"), true);
+ $fileName = $this->yellow->toolbox->findFileNew($fileName,
+ $this->yellow->config->get("configDir"), $this->yellow->config->get("newPageFile"),
+ $this->yellow->config->get("contentDefaultFile"));
$fileData = $this->yellow->toolbox->getFileData($fileName);
+ $fileData = preg_replace("/@date/i", date("Y-m-d"), $fileData);
+ $fileData = preg_replace("/@username/i", $this->users->getName(), $fileData);
+ $fileData = preg_replace("/@userlanguage/i", $this->users->getLanguage(), $fileData);
if(!empty($title)) $fileData = $this->updateDataTitle($fileData, $title);
return $fileData;
}
diff --git a/system/core/core.php b/system/core/core.php
@@ -5,7 +5,7 @@
// Yellow main class
class Yellow
{
- const Version = "0.4.8";
+ const Version = "0.4.9";
var $page; //current page
var $pages; //pages from file system
var $config; //configuration
@@ -48,6 +48,7 @@ class Yellow
$this->config->setDefault("configExtension", ".ini");
$this->config->setDefault("configFile", "config.ini");
$this->config->setDefault("errorPageFile", "error(.*).txt");
+ $this->config->setDefault("newPageFile", "new(.*).txt");
$this->config->setDefault("textStringFile", "text(.*).ini");
$this->config->setDefault("parser", "markdownextra");
$this->config->setDefault("parserSafeMode", "0");
@@ -1740,13 +1741,13 @@ class YellowToolbox
return $fileNames;
}
- // Return file/theme/template name from file path
- function findNameFromFile($fileName, $pathBase, $nameDefault, $fileExtension, $includeFileName = false)
+ // Return theme/template name from file path
+ function findNameFromFile($fileName, $pathBase, $nameDefault, $fileExtension)
{
$name = "";
if(preg_match("/^.*\/(.+?)$/", dirname($fileName), $matches)) $name = $this->normaliseName($matches[1]);
if(!is_file("$pathBase$name$fileExtension")) $name = $this->normaliseName($nameDefault);
- return $includeFileName ? "$pathBase$name$fileExtension" : $name;
+ return $name;
}
// Return language from file path
@@ -1762,6 +1763,19 @@ class YellowToolbox
return $language;
}
+ // Return file path for new page
+ function findFileNew($fileName, $pathBase, $fileNew, $fileDefault)
+ {
+ if(preg_match("/^.*\/(.+?)$/", dirname($fileName), $matches)) $name = $this->normaliseName($matches[1]);
+ $fileName = strreplaceu("(.*)", $name, $pathBase.$fileNew);
+ if(!is_file($fileName))
+ {
+ $name = $this->normaliseName($fileDefault, true, true);
+ $fileName = strreplaceu("(.*)", $name, $pathBase.$fileNew);
+ }
+ return $fileName;
+ }
+
// Return file path from title
function findFileFromTitle($titlePrefix, $titleText, $fileName, $fileDefault, $fileExtension)
{