ソースを参照

System update (summer remix)

markseu 9 年 前
コミット
e8f26e4fdb
1 ファイル変更32 行追加4 行削除
  1. 32 4
      system/plugins/core.php

+ 32 - 4
system/plugins/core.php

@@ -2262,19 +2262,25 @@ class YellowLookup
 		return $name;
 		return $name;
 	}
 	}
 	
 	
-	// Return file path for new page
-	function findFileNew($fileName, $fileNew, $pathBase, $nameDefault)
+	// Return file path from config
+	function findFileFromConfig($fileName, $fileNameBase, $nameDefault)
 	{
 	{
+		$pathBase = $this->yellow->config->get("configDir");
 		if(preg_match("/^.*\/(.+?)$/", dirname($fileName), $matches)) $name = $this->normaliseName($matches[1]);
 		if(preg_match("/^.*\/(.+?)$/", dirname($fileName), $matches)) $name = $this->normaliseName($matches[1]);
-		$fileName = strreplaceu("(.*)", $name, $pathBase.$fileNew);
+		$fileName = strreplaceu("(.*)", $name, $pathBase.$fileNameBase);
 		if(!is_file($fileName))
 		if(!is_file($fileName))
 		{
 		{
 			$name = $this->normaliseName($nameDefault);
 			$name = $this->normaliseName($nameDefault);
-			$fileName = strreplaceu("(.*)", $name, $pathBase.$fileNew);
+			$fileName = strreplaceu("(.*)", $name, $pathBase.$fileNameBase);
 		}
 		}
 		return $fileName;
 		return $fileName;
 	}
 	}
 	
 	
+	function findFileNew($fileName, $fileNew, $pathBase, $nameDefault)
+	{
+		return $this->findFileFromConfig($fileName, $fileNew, $nameDefault); //TODO: Remove later
+	}
+	
 	// Return file path from title
 	// Return file path from title
 	function findFileFromTitle($titlePrefix, $titleText, $fileName, $fileDefault, $fileExtension)
 	function findFileFromTitle($titlePrefix, $titleText, $fileName, $fileDefault, $fileExtension)
 	{
 	{
@@ -2287,6 +2293,28 @@ class YellowLookup
 		return dirname($fileName)."/".$fileNamePrefix.$fileNameText;
 		return dirname($fileName)."/".$fileNamePrefix.$fileNameText;
 	}
 	}
 	
 	
+	// Return file path for new page
+	function findFilePageNew($fileName, $prefix = "")
+	{
+		$tokens = explode('/', $fileName);
+		for($i=0; $i<count($tokens)-1; ++$i)
+		{
+			if(!is_dir($path.$tokens[$i]) && !preg_match("/^[\d\-\_\.]+(.*)$/", $tokens[$i]))
+			{
+				$number = 1;
+				foreach($this->yellow->toolbox->getDirectoryEntries($path, "/^[\d\-\_\.]+(.*)$/", true, true, false) as $entry)
+				{
+					if($number!=1 && $number!=intval($entry)) break;
+					$number = intval($entry)+1;
+				}
+				$tokens[$i] = (empty($prefix) ? "$number-" : $prefix).$tokens[$i];
+			}
+			$path .= $tokens[$i]."/";
+		}
+		$path .= $tokens[$i];
+		return $path;
+	}
+	
 	// Normalise file/directory/other name
 	// Normalise file/directory/other name
 	function normaliseName($text, $removePrefix = true, $removeExtension = false, $filterStrict = false)
 	function normaliseName($text, $removePrefix = true, $removeExtension = false, $filterStrict = false)
 	{
 	{