From 2fcc8a388b27747bb534f0beba18114720f9b899 Mon Sep 17 00:00:00 2001
From: deva <deva>
Date: Sun, 12 Oct 2008 08:55:05 +0000
Subject: Now files, forums and image cache create their storage dirs
 themselves, instead of createentities (when they do not already exists that
 is...)

---
 forum/utils/files.php      | 20 ++++++++++++++++++--
 forum/utils/forums.php     | 18 ++++++++++++++++++
 forum/utils/imagecache.php | 12 +++++++++++-
 forum/utils/parser.php     |  2 +-
 4 files changed, 48 insertions(+), 4 deletions(-)

(limited to 'forum/utils')

diff --git a/forum/utils/files.php b/forum/utils/files.php
index 6cae023..c698ede 100644
--- a/forum/utils/files.php
+++ b/forum/utils/files.php
@@ -125,9 +125,25 @@ class Files {
 
 	public function Files($file)
 	{
+		global $PERMSTORE;
+
 		$this->file = $file;
-		$this->read();
-	}
+		if(file_exists($file)) $this->read();
 
+		if(!file_exists($PERMSTORE)) {
+			if(!mkdir($PERMSTORE)) {
+				echo"Could not create directory: " . $PERMSTORE;
+				die();
+			}
+		}
+		if(!is_dir($PERMSTORE)) {
+			echo $PERMSTORE . " exists but is not a directory";
+			die();
+		}
+		if(!is_readable($PERMSTORE) || !is_writeable($PERMSTORE) || !is_executable($PERMSTORE)) {
+			echo $PERMSTORE . " exists but does not have the correct permissions. (r/w/x)";
+			die();
+		}
+	}
 }
 ?>
\ No newline at end of file
diff --git a/forum/utils/forums.php b/forum/utils/forums.php
index 85e977b..1ee2eb9 100644
--- a/forum/utils/forums.php
+++ b/forum/utils/forums.php
@@ -100,6 +100,24 @@ class Forums {
 	{
 		$this->file = $file;
 		if(file_exists($file)) $this->read();
+		else {
+			if(!file_exists(dirname($file))) {
+				if(!mkdir(dirname($file))) {
+					echo"Could not create directory: " . dirname($file);
+					die();
+				}
+			} else {
+				if(!is_dir(dirname($file))) {
+					echo dirname($file) . " exists but is not a directory";
+					die();
+				} else {
+					if(!is_readable(dirname($file)) || !is_writeable(dirname($file)) || !is_executable(dirname($file))) {
+						echo dirname($file) . " exists but does not have the correct permissions. (r/w/x)";
+						die();
+					}
+				}
+			}
+		}
 	}
 
 }
diff --git a/forum/utils/imagecache.php b/forum/utils/imagecache.php
index aae5e66..ac3ebc3 100644
--- a/forum/utils/imagecache.php
+++ b/forum/utils/imagecache.php
@@ -40,6 +40,16 @@ function getCachedImage($filename)
 	global $IMAGECACHE;
 	$fullfilename = $IMAGECACHE . "/" . urlencode($filename);
 
+	// Test the storage dir
+	if(!file_exists($IMAGECACHE)) {
+		if(!mkdir($IMAGECACHE)) errorImage("Could not create directory: " . $IMAGECACHE);
+	}
+	if(!is_dir($IMAGECACHE)) errorImage($IMAGECACHE . " exists but is not a directory");
+	if(!is_readable($IMAGECACHE) || !is_writeable($IMAGECACHE) || !is_executable($IMAGECACHE)) {
+		errorImage($IMAGECACHE . " exists but does not have the correct permissions. (r/w/x)");
+	}
+	// end of dir test
+
 	if(!file_exists($fullfilename)) {
 
 		$url = parse_url($filename);
@@ -49,7 +59,7 @@ function getCachedImage($filename)
 			
 			error_reporting(E_ERROR | E_PARSE); 
 
-			switch(tolower($filetype)) {
+			switch(strtolower($filetype)) {
 			case ".jpeg":
 			case ".jpg":
 				$image = imagecreatefromjpeg(urldecode($filename));
diff --git a/forum/utils/parser.php b/forum/utils/parser.php
index b5a80b7..ecf8913 100644
--- a/forum/utils/parser.php
+++ b/forum/utils/parser.php
@@ -39,7 +39,7 @@ function parse($input, $indent = "")
   while(strpos($output, $imgendmarker)) $imgendmarker .= $imgendsymbol;
 
   // Find and mark image URLs (so that they don't get converted into normal <a/> links)
-  $output = preg_replace("/http:\/\/(.*\.jpg|\.gif|\.png|\.jpeg)/", $imgstartmarker."$1".$imgendmarker, $output);
+  $output = preg_replace("/http:\/\/(.*\.jpg|.*\.gif|.*\.png|.*\.jpeg)/", $imgstartmarker."$1".$imgendmarker, $output);
 
 	// Replace URLs with <a></a> tags
   $output = preg_replace("/http:\/\/(.*?)([\n ])/s", "<a href=\"http://$1\">$1</a>$2", $output);
-- 
cgit v1.2.3