Index: branches/main/admin/interface/version.php
===================================================================
--- branches/main/admin/interface/version.php	(revision 8)
+++ branches/main/admin/interface/version.php	(revision 9)
@@ -48,6 +48,6 @@
 
 // check if defined to avoid errors during installation (redirect to admin panel fails if PHP error/warnings are enabled)
 if(!defined('VERSION')) { define('VERSION', '2.10.1-dev'); }
-if(!defined('REVISION')) { define('REVISION', '8'); }
+if(!defined('REVISION')) { define('REVISION', '9'); }
 if(!defined('SP')) { define('SP', ''); }
 
Index: branches/main/framework/Autoloader.php
===================================================================
--- branches/main/framework/Autoloader.php	(revision 8)
+++ branches/main/framework/Autoloader.php	(nonexistent)
@@ -1,91 +0,0 @@
-<?php
-
-/*
- * Copyright (C) 2017 Manuela v.d.Decken <manuela@isteam.de>
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT OR THIS HEADER
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License 2 for more details.
- *
- * You should have received a copy of the GNU General Public License 2
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-/**
- * Description of Autoloader
- *
- * @package      Core
- * @copyright    Manuela v.d.Decken <manuela@isteam.de>
- * @author       Manuela v.d.Decken <manuela@isteam.de>
- * @license      GNU General Public License 3.0
- * @version      0.0.1
- * @revision     $Id$
- * @since        File available since 05.07.2017
- * @deprecated   no / since 0000/00/00
- * @description  xxx
- */
-//declare(strict_types = 1);
-declare(encoding = 'UTF-8');
-
-namespace bin;
-
-// use
-
-/**
- * short description of class
- */
-class Autoloader
-{
-
-    protected static $sInstallPath = '';
-    protected static $aTransNs = [
-        'bin'   => 'framework',
-        'addon' => 'modules',
-        'acp'   => 'admin'
-    ];
-
-    public static function autoLoad($sClassName)
-    {
-        $aMatches = \preg_split('=[\\\\/]=', $sClassName, null, \PREG_SPLIT_NO_EMPTY);
-        // insert default NS if no one is given
-        if (\sizeof($aMatches) == 1) { \array_unshift($aMatches, 'framework'); }
-        // translate namespaces into real dir entries
-        $aMatches[0] = \str_replace(\array_keys(self::$aTransNs), self::$aTransNs, $aMatches[0]);
-        // first seek in namespace
-        $sFilePath = self::$sInstallPath.\implode('/', $aMatches).'.php';
-        if (\is_readable($sFilePath)) {
-            include $sFilePath;
-        } else {
-            // second seek in namespace with file prefix 'class.'
-            $sTmp = \array_pop($aMatches);
-            $sFilePath = self::$sInstallPath.\implode('/', $aMatches).'/class.'.$sTmp.'.php';
-            \array_push($aMatches, $sTmp);
-            if (\is_readable($sFilePath)) {
-                include $sFilePath;
-            }
-        }
-    }
-/**
- * register this autoloader
- */
-    public static function doRegister()
-    {
-        self::$sInstallPath = \rtrim(\str_replace('\\', '/', \dirname(__DIR__)), '/').'/';
-        \spl_autoload_register([self, 'autoLoad']);
-    }
-
-/**
- * unregister this autoloader
- */
-    public static function unRegister()
-    {
-        \spl_autoload_unregister([self, 'autoLoad']);
-    }
-
-}

Property changes on: branches/main/framework/Autoloader.php
___________________________________________________________________
Deleted: svn:eol-style
## -1 +0,0 ##
-native
\ No newline at end of property
Deleted: svn:keywords
## -1 +0,0 ##
-Author Date Id Rev URL
\ No newline at end of property
Index: branches/main/framework/CoreAutoloader.php
===================================================================
--- branches/main/framework/CoreAutoloader.php	(nonexistent)
+++ branches/main/framework/CoreAutoloader.php	(revision 9)
@@ -0,0 +1,108 @@
+<?php
+
+/*
+ * Copyright (C) 2017 Manuela v.d.Decken <manuela@isteam.de>
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT OR THIS HEADER
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License 2 for more details.
+ *
+ * You should have received a copy of the GNU General Public License 2
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+/**
+ * Description of Autoloader
+ *
+ * @package      Core
+ * @copyright    Manuela v.d.Decken <manuela@isteam.de>
+ * @author       Manuela v.d.Decken <manuela@isteam.de>
+ * @license      GNU General Public License 3.0
+ * @version      0.0.1
+ * @revision     $Id$
+ * @since        File available since 05.07.2017
+ * @deprecated   no / since 0000/00/00
+ * @description  xxx
+ */
+//declare(strict_types = 1);
+declare(encoding = 'UTF-8');
+
+namespace bin;
+
+// use
+
+/**
+ * short description of class
+ */
+class CoreAutoloader
+{
+
+    private static $sInstallPath = '';
+    private static $aPatterns = [];
+    private static $aReplacements = [];
+
+    private static $aTransNs = [
+        'bin/interfaces' => 'framework',
+        'bin'            => 'framework',
+        'addon'          => 'modules',
+        'acp'            => 'admin'
+    ];
+
+    public static function autoLoad($sClassName)
+    {
+        $aMatches = \preg_split(
+            '=/=',
+            \str_replace('\\', '/',$sClassName.'.php'),
+            null,
+            \PREG_SPLIT_NO_EMPTY
+        );
+        // insert default NS if no one is given
+        if (\sizeof($aMatches) == 1) { \array_unshift($aMatches, 'framework'); }
+        // extract default filename
+        $sClassFileName = \array_pop($aMatches);
+        // translate namespaces into the real dir entries
+        $sClassDirName = self::$sInstallPath.\preg_replace(
+            self::$aPatterns,
+            self::$aReplacements,
+            \implode('/', $aMatches).'/'
+        );
+        // first seek normal filename
+        $sFilePath = $sClassDirName.$sClassFileName;
+        if (\is_readable($sFilePath)) {
+            include $sFilePath;
+        } else {
+            // second seek filename with prefix 'class.'
+            $sFilePath = $sClassDirName.'class.'.$sClassFileName;
+            if (\is_readable($sFilePath)) {
+                include $sFilePath;
+            }
+        }
+    }
+/**
+ * register this autoloader
+ */
+    public static function doRegister()
+    {
+        self::$sInstallPath = \rtrim(\str_replace('\\', '/', \dirname(__DIR__)), '/').'/';
+        foreach (self::$aTransNs as $sPattern => $sReplacement) {
+            self::$aPatterns[]     = '@^'.$sPattern.'@su';
+            self::$aReplacements[] = $sReplacement;
+        }
+        \spl_autoload_register([__CLASS__, 'autoLoad']);
+    }
+
+/**
+ * unregister this autoloader
+ */
+    public static function unRegister()
+    {
+        \spl_autoload_unregister([__CLASS__, 'autoLoad']);
+    }
+
+}

Property changes on: branches/main/framework/CoreAutoloader.php
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Author Date Id Rev URL
\ No newline at end of property
Index: branches/main/framework/initialize.php
===================================================================
--- branches/main/framework/initialize.php	(revision 8)
+++ branches/main/framework/initialize.php	(revision 9)
@@ -313,12 +313,12 @@
         $_SERVER['DOCUMENT_ROOT'] = DOCUMENT_ROOT;
     }
 // activate Autoloader
-    if (!class_exists('\bin\Autoloader')) {
-        include __DIR__.'/Autoloader.php';
+    if (!class_exists('\bin\CoreAutoloader')) {
+        include __DIR__.'/CoreAutoloader.php';
     }
-    \bin\Autoloader::doRegister();
+    \bin\CoreAutoloader::doRegister();
 
-if (file_exists(WB_PATH.'/framework/class.database.php')) {
+if (class_exists('database')) {
     // sanitize $_SERVER['HTTP_REFERER']
     SanitizeHttpReferer(WB_URL);
     date_default_timezone_set('UTC');
@@ -333,14 +333,9 @@
     if (!function_exists('PHPMailerAutoload') && is_readable($sTmp)) {
         include $sTmp;
     }
+    // Create database class
+    $database = new database();
 
-//    if (!class_exists('database', false)){
-//      // load database class
-//      require(__DIR__.'/class.database.php');
-      // Create database class
-      $database = new database();
-//    }
-
     // activate frontend OutputFilterApi (initialize.php)
     if (is_readable(WB_PATH .'/modules/output_filter/OutputFilterApi.php')) {
         if (!function_exists('OutputFilterApi')) {
@@ -426,7 +421,7 @@
     }
     $sCachePath = dirname(__DIR__).'/temp/cache/';
     if (!file_exists($sCachePath)) {
-        if (!mkdir($sCachePath)) { $sCachePath = dirname(__DIR__).'/temp/'; }
+        if (!mkdir($sCachePath, 0777, true)) { $sCachePath = dirname(__DIR__).'/temp/'; }
     }
     // Load Language file(s)
     $sCurrLanguage = '';
@@ -448,9 +443,6 @@
             require $slangFile;
         }
     }
-//    if (!class_exists('Translate', false)) {
-//        include __DIR__.'/Translate.php';
-//    }
     $oTrans = Translate::getInstance();
     $oTrans->initialize(array('EN', DEFAULT_LANGUAGE, LANGUAGE), $sCachePath); // 'none'
     // Get users timezone
