Hello web interface (winter remix for David)

This commit is contained in:
markseu 2014-11-14 10:24:07 +01:00
parent 11424b3635
commit 77cf31de60
5 changed files with 27 additions and 11 deletions

View file

@ -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).

View file

@ -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

View file

@ -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;
}

View file

@ -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)
{