commit 15e21f35c405b403849bb634f748b4ccc9e28707
parent 5d1d1c0a70ebfd89f24bfeb3b4abf18b77da4d1e
Author: markseu <mark2011@mayberg.se>
Date: Fri, 27 Jun 2014 11:36:30 +0200
Core update (file handling remix)
Diffstat:
3 files changed, 28 insertions(+), 11 deletions(-)
diff --git a/README.md b/README.md
@@ -1,4 +1,4 @@
-Yellow 0.3.5
+Yellow 0.3.6
============
Yellow is for people who make websites.
diff --git a/system/core/core-markdownextra.php b/system/core/core-markdownextra.php
@@ -5,7 +5,7 @@
// Markdown extra core plugin
class YellowMarkdownExtra
{
- const Version = "0.3.2";
+ const Version = "0.3.3";
var $yellow; //access to API
// Handle plugin initialisation
@@ -138,7 +138,7 @@ class YellowMarkdownExtraParser extends MarkdownExtraParser
$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);
+ list($width, $height) = $this->yellow->toolbox->detectImageInfo($this->yellow->config->get("imageDir").$src);
$src = $this->yellow->config->get("serverBase").$this->yellow->config->get("imageLocation").$src;
}
$alt = $matches[2];
diff --git a/system/core/core.php b/system/core/core.php
@@ -5,7 +5,7 @@
// Yellow main class
class Yellow
{
- const Version = "0.3.5";
+ const Version = "0.3.6";
var $page; //current page
var $pages; //pages from file system
var $config; //configuration
@@ -1105,7 +1105,7 @@ class YellowText
function load($fileName)
{
$path = dirname($fileName);
- $regex = "/".basename($fileName)."/";
+ $regex = "/^".basename($fileName)."$/";
foreach($this->yellow->toolbox->getDirectoryEntries($path, $regex, true, false) as $entry)
{
$fileData = @file($entry);
@@ -1520,7 +1520,7 @@ class YellowToolbox
if(!empty($location))
{
$fileFolder = $this->normaliseName(basename($path)).$fileExtension;
- $regex = "/.*\\".$fileExtension."/";
+ $regex = "/^.*\\".$fileExtension."$/";
foreach($this->getDirectoryEntries($path, $regex, true, false, false) as $entry)
{
if($this->normaliseName($entry) == $fileDefault) continue;
@@ -1703,12 +1703,26 @@ class YellowToolbox
return @copy($fileNameSource, $fileNameDest);
}
+ // Delete file
+ function deleteFile($fileName)
+ {
+ return @unlink($fileName);
+ }
+
// Set file modification time, Unix time
function modifyFile($fileName, $modified)
{
return @touch($fileName, $modified);
}
+ // Return arguments from text string
+ function getTextArgs($text, $optional = "-")
+ {
+ $tokens = str_getcsv(trim($text), ' ', '"');
+ foreach($tokens as $key=>$value) if($value == $optional) $tokens[$key] = "";
+ return $tokens;
+ }
+
// Create description from text string
function createTextDescription($text, $lengthMax, $removeHtml = true, $endMarker = "", $endMarkerText = "")
{
@@ -1859,10 +1873,11 @@ class YellowToolbox
return $ok;
}
- // Detect image dimensions, PNG or JPG
- function detectImageDimensions($fileName)
+ // Detect image dimensions and type, png or jpg
+ function detectImageInfo($fileName)
{
$width = $height = 0;
+ $type = "";
$fileHandle = @fopen($fileName, "rb");
if($fileHandle)
{
@@ -1874,6 +1889,7 @@ class YellowToolbox
{
$width = (ord($dataHeader[10])<<8) + ord($dataHeader[11]);
$height = (ord($dataHeader[14])<<8) + ord($dataHeader[15]);
+ $type = "png";
}
} else if(substru($fileName, -3) == "jpg") {
$dataBufferSize = min(filesize($fileName), 8192);
@@ -1888,6 +1904,7 @@ class YellowToolbox
{
$width = (ord($dataBuffer[$pos+7])<<8) + ord($dataBuffer[$pos+8]);
$height = (ord($dataBuffer[$pos+5])<<8) + ord($dataBuffer[$pos+6]);
+ $type = "jpg";
break;
}
$length = (ord($dataBuffer[$pos+2])<<8) + ord($dataBuffer[$pos+3]) + 2;
@@ -1896,7 +1913,7 @@ class YellowToolbox
}
fclose($fileHandle);
}
- return array($width, $height);
+ return array($width, $height, $type);
}
// Start timer
@@ -1927,9 +1944,9 @@ class YellowPlugins
{
global $yellow;
$path = dirname(__FILE__);
- foreach($yellow->toolbox->getDirectoryEntries($path, "/core-.*\.php/", true, false) as $entry) require_once($entry);
+ foreach($yellow->toolbox->getDirectoryEntries($path, "/^core-.*\.php$/", true, false) as $entry) require_once($entry);
$path = $yellow->config->get("pluginDir");
- foreach($yellow->toolbox->getDirectoryEntries($path, "/.*\.php/", true, false) as $entry) require_once($entry);
+ foreach($yellow->toolbox->getDirectoryEntries($path, "/^.*\.php$/", true, false) as $entry) require_once($entry);
foreach($this->plugins as $key=>$value)
{
$this->plugins[$key]["obj"] = new $value["class"];