mikuli.cz

:)
git clone https://git.sr.ht/~ashymad/mikuli.cz
Log | Files | Refs

commit 115839bcf15fb69eaf1803729222d36a4929f096
parent f0b35969fa4dcc296692773465b28e30ff57cee3
Author: markseu <mark2011@mayberg.se>
Date:   Wed, 11 Dec 2013 15:13:38 +0100

Code cleanup (gingerbread remix)

Diffstat:
Msystem/config/error424.txt | 4++--
Msystem/core/core-markdownextra.php | 11+++++++----
Msystem/core/core-webinterface.php | 10+++++-----
Msystem/core/core.php | 49+++++++++++++++++++++++++++++--------------------
4 files changed, 43 insertions(+), 31 deletions(-)

diff --git a/system/config/error424.txt b/system/config/error424.txt @@ -1,4 +1,4 @@ --- Title: Page does not exist --- -You can [create this page](javascript:yellow.onShow('yellow-paneedit');). -\ No newline at end of file +You can [create this page](javascript:yellow.onShow('yellow-pane-edit');). +\ No newline at end of file diff --git a/system/core/core-markdownextra.php b/system/core/core-markdownextra.php @@ -5,7 +5,7 @@ // Markdown extra parser core plugin class YellowMarkdownExtra { - const Version = "0.2.1"; + const Version = "0.2.2"; var $yellow; //access to API var $textHtml; //generated text (HTML format) @@ -92,9 +92,12 @@ class YellowMarkdownExtraParser extends MarkdownExtra_Parser // Handle inline images function _doImages_inline_callback($matches) { - $path = $matches[3]=="" ? $matches[4] : $matches[3]; - $src = $this->yellow->config->get("serverBase").$this->yellow->config->get("imageLocation").$path; - list($width, $height) = $this->yellow->toolbox->detectImageDimensions($this->yellow->config->get("imageDir").$path); + $src = $matches[3]=="" ? $matches[4] : $matches[3]; + if(!preg_match("/^\w+:/", $src)) + { + list($width, $height) = $this->yellow->toolbox->detectImageDimensions($this->yellow->config->get("imageDir").$src); + $src = $this->yellow->config->get("serverBase").$this->yellow->config->get("imageLocation").$src; + } $alt = $matches[2]; $title = $matches[7]; $attr = $this->doExtraAttributes("img", $dummy =& $matches[8]); 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.2.2"; + const Version = "0.2.3"; var $yellow; //access to API var $users; //web interface users var $activeLocation; //web interface location? (boolean) @@ -58,15 +58,15 @@ class YellowWebinterface "<a$1href=\"$serverBase/$webinterfaceLocation/$2\"$3>", $text); if($page == $this->yellow->page) { + if(empty($this->rawDataOriginal)) $this->rawDataOriginal = $page->rawData; switch($page->statusCode) { - case 200: $this->rawDataOriginal = $page->rawData; break; case 424: $language = $this->isUser() ? $this->users->getLanguage($this->activeUserEmail) : $page->get("language"); $page->rawData = "---\r\n"; - $page->rawData .= "Title: ".$this->yellow->text->getLanguageText($language, "webinterface424Title")."\r\n"; + $page->rawData .= "Title: ".$this->yellow->text->getText("webinterface424Title", $language)."\r\n"; $page->rawData .= "Author: ".$this->users->getName($this->activeUserEmail)."\r\n"; $page->rawData .= "---\r\n"; - $page->rawData .= $this->yellow->text->getLanguageText($language, "webinterface424Text"); + $page->rawData .= $this->yellow->text->getText("webinterface424Text", $language); break; case 500: $page->rawData = $this->rawDataOriginal; break; } @@ -93,7 +93,7 @@ class YellowWebinterface $header .= "yellow.pages = ".json_encode($this->getPagesData()).";\n"; $header .= "yellow.config = ".json_encode($this->getConfigData($this->activeUserEmail)).";\n"; } - $header .= "yellow.text = ".json_encode($this->yellow->text->getData($language, "webinterface")).";\n"; + $header .= "yellow.text = ".json_encode($this->yellow->text->getData("webinterface", $language)).";\n"; if(defined("DEBUG")) $header .= "yellow.debug = ".json_encode(DEBUG).";\n"; $header .= "// ]]>\n"; $header .= "</script>\n"; diff --git a/system/core/core.php b/system/core/core.php @@ -5,7 +5,7 @@ // Yellow main class class Yellow { - const Version = "0.2.1"; + const Version = "0.2.2"; var $page; //current page data var $pages; //current page tree from file system var $config; //configuration @@ -154,11 +154,11 @@ class Yellow $this->pages->serverBase = $serverBase; $this->page = new YellowPage($this, $location); $this->page->parseData($fileName, $fileData, $cacheable, $statusCode, $pageError); - $this->page->parseContent(); $this->page->setHeader("Content-Type", "text/html; charset=UTF-8"); $this->page->setHeader("Last-Modified", $this->page->getModified(true)); if(!$this->page->isCacheable()) $this->page->setHeader("Cache-Control", "no-cache, must-revalidate"); $this->text->setLanguage($this->page->get("language")); + $this->page->parseContent(); return $fileName; } @@ -240,7 +240,7 @@ class Yellow return $this->page->isExisting("pageError"); } - // Execute a template + // Execute template function template($name) { $fileNameTemplate = $this->config->get("templateDir")."$name.php"; @@ -253,7 +253,7 @@ class Yellow } } - // Execute a template snippet + // Execute code snippet function snippet($name, $args = NULL) { $this->pages->snippetArgs = func_get_args(); @@ -267,7 +267,7 @@ class Yellow } } - // Return template snippet arguments + // Return snippet arguments function getSnippetArgs() { return $this->pages->snippetArgs; @@ -307,7 +307,7 @@ class Yellow $this->config->get("contentDir"), $this->config->get("contentHomeDir"), "", ""); } - // Execute a plugin command + // Execute plugin command function plugin($name, $args = NULL) { $statusCode = 0; @@ -328,11 +328,10 @@ class Yellow $this->plugins->register($name, $class, $version); } - // Set a response header + // Add page response header, OBSOLETE DON'T USE function header($responseHeader) { - $tokens = explode(':', $responseHeader, 2); - $this->page->setHeader(trim($tokens[0]), trim($tokens[1])); + $this->page->header($responseHeader); } } @@ -406,9 +405,10 @@ class YellowPage $titleHeader = $this->location!="/" ? $this->get("title")." - ".$this->get("sitename") : $this->get("sitename"); if(!$this->isExisting("titleHeader")) $this->set("titleHeader", $titleHeader); if(!$this->isExisting("titleNavigation")) $this->set("titleNavigation", $this->get("title")); - $this->set("pageRead", $this->yellow->config->get("serverBase").$this->location); - $this->set("pageEdit", $this->yellow->config->get("serverBase"). - rtrim($this->yellow->config->get("webinterfaceLocation"), '/').$this->location); + $this->set("pageRead", $this->yellow->toolbox->getHttpUrl($this->yellow->config->get("serverName"), + $this->yellow->config->get("serverBase"), $this->location)); + $this->set("pageEdit", $this->yellow->toolbox->getHttpUrl($this->yellow->config->get("serverName"), + $this->yellow->config->get("serverBase"), rtrim($this->yellow->config->get("webinterfaceLocation"), '/').$this->location)); foreach($this->yellow->plugins->plugins as $key=>$value) { if(method_exists($value["obj"], "onParseMeta")) @@ -483,6 +483,7 @@ class YellowPage if(!is_null($output)) break; } } + if(defined("DEBUG") && DEBUG>=2 && !empty($name)) echo "YellowPage::parseType name:$name shortcut:$typeShortcut<br/>\n"; return $output; } @@ -503,11 +504,18 @@ class YellowPage { $this->statusCode = $statusCode; $this->headerData = array(); - if(!empty($responseHeader)) $this->yellow->header($responseHeader); + if(!empty($responseHeader)) $this->header($responseHeader); $this->set("pageClean", (string)$statusCode); } } + // Add page response header, HTTP format + function header($responseHeader) + { + $tokens = explode(':', $responseHeader, 2); + $this->setHeader(trim($tokens[0]), trim($tokens[1])); + } + // Set page response header function setHeader($key, $value) { @@ -1098,7 +1106,7 @@ class YellowText preg_match("/^\s*(.*?)\s*=\s*(.*?)\s*$/", $line, $matches); if(!empty($language) && !empty($matches[1]) && !strempty($matches[2])) { - $this->setLanguageText($language, $matches[1], $matches[2]); + $this->setText($matches[1], $matches[2], $language); if(defined("DEBUG") && DEBUG>=3) echo "YellowText::load key:$matches[1] $matches[2]<br/>\n"; } } @@ -1113,16 +1121,16 @@ class YellowText } // Set text string for specific language - function setLanguageText($language, $key, $value) + function setText($key, $value, $language) { if(is_null($this->text[$language])) $this->text[$language] = array(); $this->text[$language][$key] = $value; } // Return text string for specific language - function getLanguageText($language, $key) + function getText($key, $language) { - return ($this->isLanguageText($language, $key)) ? $this->text[$language][$key] : "[$key]"; + return ($this->isText($key, $language)) ? $this->text[$language][$key] : "[$key]"; } // Return text string @@ -1137,10 +1145,11 @@ class YellowText return htmlspecialchars($this->get($key)); } - // Return text strings for specific language - function getData($language, $filterStart = "") + // Return text strings + function getData($filterStart = "", $language = "") { $text = array(); + if(empty($language)) $language = $this->language; if(!is_null($this->text[$language])) { if(empty($filterStart)) @@ -1164,7 +1173,7 @@ class YellowText } // Check if text string for specific language exists - function isLanguageText($language, $key) + function isText($key, $language) { return !is_null($this->text[$language]) && !is_null($this->text[$language][$key]); }