diff --git a/core/trunk/core/class/class_core_tools.php b/core/trunk/core/class/class_core_tools.php
index 28b0175a7f2934f84755f5f78a7be1a6444fe20a..d4201cc6913fdf1e2e8759844f8a12aec9c47946 100644
--- a/core/trunk/core/class/class_core_tools.php
+++ b/core/trunk/core/class/class_core_tools.php
@@ -1604,29 +1604,31 @@ class core_tools extends functions
         }
         if(isset($_GET['module']) && $_GET['module'] <> "core") {
             // Page is defined in a module
-            $aModules = [];
-            $aScandir = scandir('modules');
-            foreach ($aScandir as $sModule) {
-                if ( in_array($sModule,['.','..',]) ) continue;
-                $aModules[$sModule] = $sModule;
-            }
-            foreach ($aModules as $sModule) {
-                $aScandir = scandir("modules/$sModule");
-                $aPages = [];
-                foreach ($aScandir as $sPage) {
-                    if ( in_array($sModule,['.','..',]) ) continue;
-                    if ( is_dir("modules/$sModule/$sPage") ) continue;
-                    if ( ! is_file("modules/$sModule/$sPage") ) continue;
-                    if ( ! preg_match('/\.php$/', $sPage) ) continue;
-                    $aPages[$sPage] = "modules/$sModule/$sPage";
-                    $aModules[$sModule] = $aPages;
+            $found = false;
+            //$this->show_array($_SESSION['maarchFilesWhiteList']['modules'][$_GET['module']]);
+            for ($cptM=0;$cptM<count($_SESSION['maarchFilesWhiteList']['modules'][$_GET['module']]);$cptM++) {
+                //echo $_SESSION['maarchFilesWhiteList']['modules'][$_GET['module']][$cptM] . '<br />';
+                //echo 'modules'.DIRECTORY_SEPARATOR.$_GET['module'].DIRECTORY_SEPARATOR.$this->f_page.".php" . '<br />';
+                if (
+                    $_SESSION['maarchFilesWhiteList']['modules'][$_GET['module']][$cptM] 
+                        == 'custom'.DIRECTORY_SEPARATOR.$_SESSION['custom_override_id'].DIRECTORY_SEPARATOR.'modules'.DIRECTORY_SEPARATOR.$_GET['module'].DIRECTORY_SEPARATOR.$this->f_page.".php"
+                ) {
+                    require $_SESSION['maarchFilesWhiteList']['modules'][$_GET['module']][$cptM];
+                    $found = true;
+                    break;
+                } elseif (
+                    $_SESSION['maarchFilesWhiteList']['modules'][$_GET['module']][$cptM] 
+                        == 'modules'.DIRECTORY_SEPARATOR.$_GET['module'].DIRECTORY_SEPARATOR.$this->f_page.".php"
+                ) {
+                    require $_SESSION['maarchFilesWhiteList']['modules'][$_GET['module']][$cptM];
+                    $found = true;
+                    break;
                 }
             }
-            if ( ! isset($aModules[$_GET['module']][$this->f_page.'.php']) ) {
+            if (!$found)  {
                 $this->loadDefaultPage();
-            }else {
-                require $aModules[$_GET['module']][$this->f_page.'.php'];
             }
+
             // if(file_exists($_SESSION['config']['corepath'].'custom'.DIRECTORY_SEPARATOR.$_SESSION['custom_override_id'].DIRECTORY_SEPARATOR.'modules'.DIRECTORY_SEPARATOR.$_GET['module'].DIRECTORY_SEPARATOR.$this->f_page.".php")) {
             //     require($_SESSION['config']['corepath'].'custom'.DIRECTORY_SEPARATOR.$_SESSION['custom_override_id'].DIRECTORY_SEPARATOR.'modules'.DIRECTORY_SEPARATOR.$_GET['module'].DIRECTORY_SEPARATOR.$this->f_page.".php");
             // } elseif(file_exists($_SESSION['config']['corepath'].'modules'.DIRECTORY_SEPARATOR.$_GET['module'].DIRECTORY_SEPARATOR.$this->f_page.".php")) {
@@ -1636,13 +1638,38 @@ class core_tools extends functions
             // }
         } elseif(isset($_GET['module']) && $_GET['module'] == "core") {
             // Page is defined the core
-            if(file_exists($_SESSION['config']['corepath'].'custom'.DIRECTORY_SEPARATOR.$_SESSION['custom_override_id'].DIRECTORY_SEPARATOR.'core'.DIRECTORY_SEPARATOR.$this->f_page.".php")) {
-                require($_SESSION['config']['corepath'].'custom'.DIRECTORY_SEPARATOR.$_SESSION['custom_override_id'].DIRECTORY_SEPARATOR.'core'.DIRECTORY_SEPARATOR.$this->f_page.".php");
-            } elseif(file_exists($_SESSION['config']['corepath'].'core'.DIRECTORY_SEPARATOR.$this->f_page.".php")) {
-                require('core'.DIRECTORY_SEPARATOR.$this->f_page.".php");
-            } else {
+            $found = false;
+            //$this->show_array($_SESSION['maarchFilesWhiteList']['core']);
+            for ($cptM=0;$cptM<count($_SESSION['maarchFilesWhiteList']['core']);$cptM++) {
+                //echo $_SESSION['maarchFilesWhiteList']['core'][$cptM] . '<br />';
+                //echo 'core'.DIRECTORY_SEPARATOR.$this->f_page.".php" . '<br />';
+                if (
+                    $_SESSION['maarchFilesWhiteList']['core'][$cptM] 
+                        == 'custom'.DIRECTORY_SEPARATOR.$_SESSION['custom_override_id'].DIRECTORY_SEPARATOR.'core'.DIRECTORY_SEPARATOR.$this->f_page.".php"
+                ) {
+                    require $_SESSION['maarchFilesWhiteList']['core'][$cptM];
+                    $found = true;
+                    break;
+                } elseif (
+                    $_SESSION['maarchFilesWhiteList']['core'][$cptM] 
+                        == 'core'.DIRECTORY_SEPARATOR.$this->f_page.".php"
+                ) {
+                    require $_SESSION['maarchFilesWhiteList']['core'][$cptM];
+                    $found = true;
+                    break;
+                }
+            }
+            if (!$found)  {
                 $this->loadDefaultPage();
             }
+
+            // if(file_exists($_SESSION['config']['corepath'].'custom'.DIRECTORY_SEPARATOR.$_SESSION['custom_override_id'].DIRECTORY_SEPARATOR.'core'.DIRECTORY_SEPARATOR.$this->f_page.".php")) {
+            //     require($_SESSION['config']['corepath'].'custom'.DIRECTORY_SEPARATOR.$_SESSION['custom_override_id'].DIRECTORY_SEPARATOR.'core'.DIRECTORY_SEPARATOR.$this->f_page.".php");
+            // } elseif(file_exists($_SESSION['config']['corepath'].'core'.DIRECTORY_SEPARATOR.$this->f_page.".php")) {
+            //     require('core'.DIRECTORY_SEPARATOR.$this->f_page.".php");
+            // } else {
+            //     $this->loadDefaultPage();
+            // }
         } elseif(isset($_GET['admin']) && !empty($_GET['admin'])) {
             if (
                 !isset($_SESSION['user']['services']['admin'])
@@ -1651,48 +1678,144 @@ class core_tools extends functions
             ) {
                $this->loadDefaultPage();
             } else {
+                $found = false;
+                //$this->show_array($_SESSION['maarchFilesWhiteList']['apps']);
+                for ($cptM=0;$cptM<count($_SESSION['maarchFilesWhiteList']['apps']);$cptM++) {
+                    //echo $_SESSION['maarchFilesWhiteList']['apps'][$cptM] . '<br />';
+                    //echo 'apps'.DIRECTORY_SEPARATOR.$_SESSION['config']['app_id'].DIRECTORY_SEPARATOR."admin".DIRECTORY_SEPARATOR.trim($_GET['admin']).DIRECTORY_SEPARATOR.$this->f_page.".php" . '<br />';
+                    if (
+                        $_SESSION['maarchFilesWhiteList']['apps'][$cptM] 
+                            == 'custom'.DIRECTORY_SEPARATOR.$_SESSION['custom_override_id'].DIRECTORY_SEPARATOR.'apps'.DIRECTORY_SEPARATOR.$_SESSION['config']['app_id'].DIRECTORY_SEPARATOR."admin".DIRECTORY_SEPARATOR.trim($_GET['admin']).DIRECTORY_SEPARATOR.$this->f_page.".php"
+                    ) {
+                        require $_SESSION['maarchFilesWhiteList']['apps'][$cptM];
+                        $found = true;
+                        break;
+                    } elseif (
+                        $_SESSION['maarchFilesWhiteList']['apps'][$cptM] 
+                            == 'apps'.DIRECTORY_SEPARATOR.$_SESSION['config']['app_id'].DIRECTORY_SEPARATOR."admin".DIRECTORY_SEPARATOR.trim($_GET['admin']).DIRECTORY_SEPARATOR.$this->f_page.".php"
+                    ) {
+                        require $_SESSION['maarchFilesWhiteList']['apps'][$cptM];
+                        $found = true;
+                        break;
+                    }
+                }
+                if (!$found)  {
+                    $this->loadDefaultPage();
+                }
+
                 // Page is defined the admin directory of the application
-                if(file_exists($_SESSION['config']['corepath'].'custom'.DIRECTORY_SEPARATOR.$_SESSION['custom_override_id'].DIRECTORY_SEPARATOR.'apps'.DIRECTORY_SEPARATOR.$_SESSION['config']['app_id'].DIRECTORY_SEPARATOR."admin".DIRECTORY_SEPARATOR.trim($_GET['admin']).DIRECTORY_SEPARATOR.$this->f_page.".php")) {
+                /*if(file_exists($_SESSION['config']['corepath'].'custom'.DIRECTORY_SEPARATOR.$_SESSION['custom_override_id'].DIRECTORY_SEPARATOR.'apps'.DIRECTORY_SEPARATOR.$_SESSION['config']['app_id'].DIRECTORY_SEPARATOR."admin".DIRECTORY_SEPARATOR.trim($_GET['admin']).DIRECTORY_SEPARATOR.$this->f_page.".php")) {
                     require($_SESSION['config']['corepath'].'custom'.DIRECTORY_SEPARATOR.$_SESSION['custom_override_id'].DIRECTORY_SEPARATOR.'apps'.DIRECTORY_SEPARATOR.$_SESSION['config']['app_id'].DIRECTORY_SEPARATOR."admin".DIRECTORY_SEPARATOR.trim($_GET['admin']).DIRECTORY_SEPARATOR.$this->f_page.".php");
                 } elseif(file_exists($_SESSION['config']['corepath'].'apps'.DIRECTORY_SEPARATOR.$_SESSION['config']['app_id'].DIRECTORY_SEPARATOR."admin".DIRECTORY_SEPARATOR.trim($_GET['admin']).DIRECTORY_SEPARATOR.$this->f_page.".php")) {
                     require('apps'.DIRECTORY_SEPARATOR.$_SESSION['config']['app_id'].DIRECTORY_SEPARATOR."admin".DIRECTORY_SEPARATOR.trim($_GET['admin']).DIRECTORY_SEPARATOR.$this->f_page.".php");
                 } else {
                     $this->loadDefaultPage();
-                }
+                }*/
             }
         } elseif(isset($_GET['dir']) && !empty($_GET['dir'])) {
             // Page is defined in a dir directory of the application
-            if(file_exists($_SESSION['config']['corepath'].'custom'.DIRECTORY_SEPARATOR.$_SESSION['custom_override_id'].DIRECTORY_SEPARATOR.'apps'.DIRECTORY_SEPARATOR.$_SESSION['config']['app_id'].DIRECTORY_SEPARATOR.trim($_GET['dir']).DIRECTORY_SEPARATOR.$this->f_page.".php")) {
-                require($_SESSION['config']['corepath'].'custom'.DIRECTORY_SEPARATOR.$_SESSION['custom_override_id'].DIRECTORY_SEPARATOR.'apps'.DIRECTORY_SEPARATOR.$_SESSION['config']['app_id'].DIRECTORY_SEPARATOR.trim($_GET['dir']).DIRECTORY_SEPARATOR.$this->f_page.".php");
-            } elseif(file_exists($_SESSION['config']['corepath'].'apps'.DIRECTORY_SEPARATOR.$_SESSION['config']['app_id'].DIRECTORY_SEPARATOR.trim($_GET['dir']).DIRECTORY_SEPARATOR.$this->f_page.".php")) {
-                require('apps'.DIRECTORY_SEPARATOR.$_SESSION['config']['app_id'].DIRECTORY_SEPARATOR.trim($_GET['dir']).DIRECTORY_SEPARATOR.$this->f_page.".php");
-            } else {
+            $found = false;
+            //$this->show_array($_SESSION['maarchFilesWhiteList']['apps']);
+            for ($cptM=0;$cptM<count($_SESSION['maarchFilesWhiteList']['apps']);$cptM++) {
+                //echo $_SESSION['maarchFilesWhiteList']['apps'][$cptM] . '<br />';
+                //echo 'apps'.DIRECTORY_SEPARATOR.$_SESSION['config']['app_id'].DIRECTORY_SEPARATOR.trim($_GET['dir']).DIRECTORY_SEPARATOR.$this->f_page.".php" . '<br />';
+                if (
+                    $_SESSION['maarchFilesWhiteList']['apps'][$cptM] 
+                        == 'custom'.DIRECTORY_SEPARATOR.$_SESSION['custom_override_id'].DIRECTORY_SEPARATOR.'apps'.DIRECTORY_SEPARATOR.$_SESSION['config']['app_id'].DIRECTORY_SEPARATOR.trim($_GET['dir']).DIRECTORY_SEPARATOR.$this->f_page.".php"
+                ) {
+                    require $_SESSION['maarchFilesWhiteList']['apps'][$cptM];
+                    $found = true;
+                    break;
+                } elseif (
+                    $_SESSION['maarchFilesWhiteList']['apps'][$cptM] 
+                        == 'apps'.DIRECTORY_SEPARATOR.$_SESSION['config']['app_id'].DIRECTORY_SEPARATOR.trim($_GET['dir']).DIRECTORY_SEPARATOR.$this->f_page.".php"
+                ) {
+                    require $_SESSION['maarchFilesWhiteList']['apps'][$cptM];
+                    $found = true;
+                    break;
+                }
+            }
+            if (!$found)  {
                 $this->loadDefaultPage();
             }
+
+            // if(file_exists($_SESSION['config']['corepath'].'custom'.DIRECTORY_SEPARATOR.$_SESSION['custom_override_id'].DIRECTORY_SEPARATOR.'apps'.DIRECTORY_SEPARATOR.$_SESSION['config']['app_id'].DIRECTORY_SEPARATOR.trim($_GET['dir']).DIRECTORY_SEPARATOR.$this->f_page.".php")) {
+            //     require($_SESSION['config']['corepath'].'custom'.DIRECTORY_SEPARATOR.$_SESSION['custom_override_id'].DIRECTORY_SEPARATOR.'apps'.DIRECTORY_SEPARATOR.$_SESSION['config']['app_id'].DIRECTORY_SEPARATOR.trim($_GET['dir']).DIRECTORY_SEPARATOR.$this->f_page.".php");
+            // } elseif(file_exists($_SESSION['config']['corepath'].'apps'.DIRECTORY_SEPARATOR.$_SESSION['config']['app_id'].DIRECTORY_SEPARATOR.trim($_GET['dir']).DIRECTORY_SEPARATOR.$this->f_page.".php")) {
+            //     require('apps'.DIRECTORY_SEPARATOR.$_SESSION['config']['app_id'].DIRECTORY_SEPARATOR.trim($_GET['dir']).DIRECTORY_SEPARATOR.$this->f_page.".php");
+            // } else {
+            //     $this->loadDefaultPage();
+            // }
         } else {
             // Page is defined in the application
-            if(file_exists($_SESSION['config']['corepath'].'custom'.DIRECTORY_SEPARATOR.$_SESSION['custom_override_id'].DIRECTORY_SEPARATOR.'apps'.DIRECTORY_SEPARATOR.$_SESSION['config']['app_id'].DIRECTORY_SEPARATOR.$this->f_page.".php")) {
-                require($_SESSION['config']['corepath'].'custom'.DIRECTORY_SEPARATOR.$_SESSION['custom_override_id'].DIRECTORY_SEPARATOR.'apps'.DIRECTORY_SEPARATOR.$_SESSION['config']['app_id'].DIRECTORY_SEPARATOR.$this->f_page.".php");
-            } elseif(file_exists($_SESSION['config']['corepath'].'apps'.DIRECTORY_SEPARATOR.$_SESSION['config']['app_id'].DIRECTORY_SEPARATOR.$this->f_page.".php")) {
-                require('apps'.DIRECTORY_SEPARATOR.$_SESSION['config']['app_id'].DIRECTORY_SEPARATOR.$this->f_page.".php");
-            } else {
-                require_once('apps'.DIRECTORY_SEPARATOR.$_SESSION['config']['app_id'].DIRECTORY_SEPARATOR."class".DIRECTORY_SEPARATOR."class_business_app_tools.php");
-                $app = new business_app_tools();
-                $path = $app->insert_app_page($this->f_page);
-                if(
-                    (!$path || empty($path)) 
-                    && !file_exists($_SESSION['config']['corepath'].'custom'.DIRECTORY_SEPARATOR.$_SESSION['custom_override_id'].DIRECTORY_SEPARATOR.$path) 
-                    && !file_exists($path)) {
-                    //require($_SESSION["config"]["defaultPage"].".php");
-                    $this->loadDefaultPage();
+            $found = false;
+            //$this->show_array($_SESSION['maarchFilesWhiteList']['apps']);
+            for ($cptM=0;$cptM<count($_SESSION['maarchFilesWhiteList']['apps']);$cptM++) {
+                //echo $_SESSION['maarchFilesWhiteList']['apps'][$cptM] . '<br />';
+                //echo 'apps'.DIRECTORY_SEPARATOR.$_SESSION['config']['app_id'].DIRECTORY_SEPARATOR.$this->f_page.".php" . '<br />';
+                //echo 'custom'.DIRECTORY_SEPARATOR.$_SESSION['custom_override_id'].DIRECTORY_SEPARATOR.'apps'.DIRECTORY_SEPARATOR.$_SESSION['config']['app_id'].DIRECTORY_SEPARATOR.$this->f_page.".php" . '<br />';
+                if (
+                    $_SESSION['maarchFilesWhiteList']['apps'][$cptM] 
+                        == 'custom'.DIRECTORY_SEPARATOR.$_SESSION['custom_override_id'].DIRECTORY_SEPARATOR.'apps'.DIRECTORY_SEPARATOR.$_SESSION['config']['app_id'].DIRECTORY_SEPARATOR.$this->f_page.".php"
+                ) {
+                    require $_SESSION['maarchFilesWhiteList']['apps'][$cptM];
+                    $found = true;
+                    break;
+                } elseif (
+                    $_SESSION['maarchFilesWhiteList']['apps'][$cptM] 
+                        == 'apps'.DIRECTORY_SEPARATOR.$_SESSION['config']['app_id'].DIRECTORY_SEPARATOR.$this->f_page.".php"
+                ) {
+                    require $_SESSION['maarchFilesWhiteList']['apps'][$cptM];
+                    $found = true;
+                    break;
                 } else {
-                    if (!file_exists($path)) {
-                        $this->loadDefaultPage();
-                    } else {
-                        require($path);
+                    require_once('apps'.DIRECTORY_SEPARATOR.$_SESSION['config']['app_id'].DIRECTORY_SEPARATOR."class".DIRECTORY_SEPARATOR."class_business_app_tools.php");
+                    $app = new business_app_tools();
+                    $path = $app->insert_app_page($this->f_page);
+                    if (
+                        $_SESSION['maarchFilesWhiteList']['apps'][$cptM] 
+                            == 'custom'.DIRECTORY_SEPARATOR.$_SESSION['custom_override_id'].DIRECTORY_SEPARATOR.$path
+                    ) {
+                        require $_SESSION['maarchFilesWhiteList']['apps'][$cptM];
+                        $found = true;
+                        break;
+                    } elseif (
+                        $_SESSION['maarchFilesWhiteList']['apps'][$cptM] 
+                            == $path
+                    ) {
+                        require $_SESSION['maarchFilesWhiteList']['apps'][$cptM];
+                        $found = true;
+                        break;
                     }
                 }
             }
+            if (!$found)  {
+                $this->loadDefaultPage();
+            }
+
+            // if(file_exists($_SESSION['config']['corepath'].'custom'.DIRECTORY_SEPARATOR.$_SESSION['custom_override_id'].DIRECTORY_SEPARATOR.'apps'.DIRECTORY_SEPARATOR.$_SESSION['config']['app_id'].DIRECTORY_SEPARATOR.$this->f_page.".php")) {
+            //     require($_SESSION['config']['corepath'].'custom'.DIRECTORY_SEPARATOR.$_SESSION['custom_override_id'].DIRECTORY_SEPARATOR.'apps'.DIRECTORY_SEPARATOR.$_SESSION['config']['app_id'].DIRECTORY_SEPARATOR.$this->f_page.".php");
+            // } elseif(file_exists($_SESSION['config']['corepath'].'apps'.DIRECTORY_SEPARATOR.$_SESSION['config']['app_id'].DIRECTORY_SEPARATOR.$this->f_page.".php")) {
+            //     require('apps'.DIRECTORY_SEPARATOR.$_SESSION['config']['app_id'].DIRECTORY_SEPARATOR.$this->f_page.".php");
+            // } else {
+            //     require_once('apps'.DIRECTORY_SEPARATOR.$_SESSION['config']['app_id'].DIRECTORY_SEPARATOR."class".DIRECTORY_SEPARATOR."class_business_app_tools.php");
+            //     $app = new business_app_tools();
+            //     $path = $app->insert_app_page($this->f_page);
+            //     echo $path;exit;
+            //     if(
+            //         (!$path || empty($path)) 
+            //         && !file_exists($_SESSION['config']['corepath'].'custom'.DIRECTORY_SEPARATOR.$_SESSION['custom_override_id'].DIRECTORY_SEPARATOR.$path) 
+            //         && !file_exists($path)) {
+            //         //require($_SESSION["config"]["defaultPage"].".php");
+            //         $this->loadDefaultPage();
+            //     } else {
+            //         if (!file_exists($path)) {
+            //             $this->loadDefaultPage();
+            //         } else {
+            //             require($path);
+            //         }
+            //     }
+            // }
         }
         return true;
     }
diff --git a/core/trunk/core/init.php b/core/trunk/core/init.php
index 8d37ca67f4b883b8d49953dfd0af25b0b5cf86bb..3c10785b9ea1ff4d0712a8c28ff90011715fa5dd 100644
--- a/core/trunk/core/init.php
+++ b/core/trunk/core/init.php
@@ -64,3 +64,139 @@ if (isset($_SESSION['custom_override_id'])
         $_SESSION['config']['corepath'] . PATH_SEPARATOR . get_include_path()
     );
 }
+
+
+/**
+ * Get an array that represents directory tree
+ * @param string $directory     Directory path
+ * @param bool $recursive         Include sub directories
+ * @param bool $listDirs         Include directories on listing
+ * @param bool $listFiles         Include files on listing
+ * @param regex $exclude         Exclude paths that matches this regex
+ */
+function maarchFilesWhiteList($directory, $isCustom = false, $recursive = true, $listDirs = false, $listFiles = true, $exclude = '')
+{
+    $arrayItems = array();
+    $skipByExclude = false;
+    $handle = opendir($directory);
+    if ($handle) {
+        while (false !== ($file = readdir($handle))) {
+            preg_match("/(^(([\.]){1,2})$|"
+                . "(\.(svn|git|md|xml|default|inc|js|sql|html|sh|bat|txt|log|css|jpg|jpeg|png|gif|doc|docx"
+                . "|xls|xlsx|odt|ods|csv|pdf|rb|jar|svg|psd|msi|vbs))|(Thumbs\.db|\.DS_STORE|tools|css|js|img|lang|"
+                . "sql|tmp|log|logs|xml))$/iu", $file, $skip);
+            if ($exclude) {
+                preg_match($exclude, $file, $skipByExclude);
+            }
+            if (!$skip && !$skipByExclude) {
+                if (is_dir($directory. DIRECTORY_SEPARATOR . $file)) {
+                    if ($recursive) {
+                        $arrayItems = array_merge(
+                            $arrayItems, 
+                            maarchFilesWhiteList(
+                                $directory. DIRECTORY_SEPARATOR . $file, 
+                                $isCustom, 
+                                $recursive, 
+                                $listDirs, 
+                                $listFiles, 
+                                $exclude
+                            )
+                        );
+                    }
+                    if ($listDirs) {
+                        $fileName = $file;
+                        $file = $directory . DIRECTORY_SEPARATOR . $file;
+                        $arrayItems[$fileName] = $file;
+                    }
+                } else {
+                    if ($listFiles) {
+                        //$fileName = $file;
+                        $file = $directory . DIRECTORY_SEPARATOR . $file;
+                        if (
+                            $isCustom 
+                            && file_exists('custom/' . $_SESSION['custom_override_id'] . '/' . $file)
+                        ) {
+                            //$arrayItems[$fileName] = 'custom/' . $_SESSION['custom_override_id'] . '/' . $file;
+                            array_push($arrayItems, 'custom/' . $_SESSION['custom_override_id'] . '/' . $file);
+                        } else {
+                            //$arrayItems[$fileName] = $file;
+                            array_push($arrayItems, $file);
+                        }
+                    }
+                }
+            }
+        }
+        closedir($handle);
+    }
+    return $arrayItems;
+}
+
+
+//if (!isset($_SESSION['maarchFilesWhiteList']) && count($_SESSION['maarchFilesWhiteList']) == 0) {
+    $isCustom = false;
+    if (
+        is_dir('custom/' . $_SESSION['custom_override_id']) 
+        && !empty($_SESSION['custom_override_id'])
+    ) {
+        $isCustom = true;
+    }
+
+    $_SESSION['maarchFilesWhiteList'] = array();
+    $_SESSION['maarchFilesWhiteList']['core'] = maarchFilesWhiteList('core', $isCustom);
+    $_SESSION['maarchFilesWhiteList']['apps'] = maarchFilesWhiteList('apps', $isCustom);
+    $_SESSION['maarchFilesWhiteList']['modules'] = array();
+
+    $modules = array();
+    $handle = opendir('modules');
+    if ($handle) {
+        while (false !== ($file = readdir($handle))) {
+            //echo $file . '<br/>';
+            if (is_dir($_SESSION['config']['corepath'] . '/modules/' . $file) && $file <> '.' && $file <> '..') {
+                array_push($modules, $file);
+            }
+        }
+    }
+    for ($z=0;$z<count($modules);$z++) {
+        $_SESSION['maarchFilesWhiteList']['modules'][$modules[$z]] = maarchFilesWhiteList(
+            'modules/' . $modules[$z],
+            $isCustom
+        );
+    }
+    if (
+        is_dir($_SESSION['config']['corepath'] . '/custom/' . $_SESSION['custom_override_id']) 
+        && !empty($_SESSION['custom_override_id'])
+    ) {
+        if (is_dir($_SESSION['config']['corepath'] . 'custom/' . $_SESSION['custom_override_id'] . '/core')) {
+            $_SESSION['maarchFilesWhiteList']['custom']['core'] = maarchFilesWhiteList('custom/' . $_SESSION['custom_override_id'] . '/core');
+            $_SESSION['maarchFilesWhiteList']['core'] 
+                = array_merge($_SESSION['maarchFilesWhiteList']['core'], $_SESSION['maarchFilesWhiteList']['custom']['core']);
+        }
+        if (is_dir($_SESSION['config']['corepath'] . 'custom/' . $_SESSION['custom_override_id']. '/apps')) {
+            $_SESSION['maarchFilesWhiteList']['custom']['apps'] = maarchFilesWhiteList('custom/' . $_SESSION['custom_override_id']. '/apps');
+            $_SESSION['maarchFilesWhiteList']['apps'] 
+                = array_merge($_SESSION['maarchFilesWhiteList']['apps'], $_SESSION['maarchFilesWhiteList']['custom']['apps']);
+
+        }
+        for ($z=0;$z<count($modules);$z++) {
+            if (is_dir($_SESSION['config']['corepath'] . 'custom/' . $_SESSION['custom_override_id']. '/modules/' . $modules[$z])) {
+                $_SESSION['maarchFilesWhiteList']['custom']['modules'][$modules[$z]] = maarchFilesWhiteList(
+                    'custom/' . $_SESSION['custom_override_id']. '/modules/' . $modules[$z],
+                    $isCustom
+                );
+                $_SESSION['maarchFilesWhiteList']['modules'][$modules[$z]] 
+                    = array_merge($_SESSION['maarchFilesWhiteList']['modules'][$modules[$z]], $_SESSION['maarchFilesWhiteList']['custom']['modules'][$modules[$z]]);
+            }
+            
+        }
+    }
+
+    // echo '<pre>';
+    // print_r($_SESSION['maarchFilesWhiteList']);
+    // echo '</pre>';
+    // exit;
+//}
+// echo '<pre>';
+// print_r($_SESSION['maarchFilesWhiteList']);
+// echo '</pre>';
+// exit;
+