/**
  * Import default modules/panels in the theme if it is the first time to 
  * activate the theme and add the theme settings to the database.
  *
  */
 function ImportNewTheme($themeName)
 {
     // -- Add/update theme settings to the database
     FlutterLayoutBlock::UpdateModuleSettings(get_template_directory() . '/configure.xml', -1, '-', get_option('template'));
     FlutterLayoutBlock::UpdateAllModulesSettings();
     // -- Import modules and panels
     if (RCCWP_Application::IsWordpressMu()) {
         if (get_site_option('Flutter_theme_ft_' . $themeName) == '1') {
             return;
         }
         update_site_option('Flutter_theme_ft_' . $themeName, '1');
     } else {
         if (get_option('Flutter_theme_ft_' . $themeName) == '1') {
             return;
         }
         update_option('Flutter_theme_ft_' . $themeName, '1');
     }
     $modulesFolder = get_template_directory() . '/Flutter_modules/';
     $panelsFolder = get_template_directory() . '/Flutter_panels/';
     // Import modules
     if ($handle = @opendir($modulesFolder)) {
         while (false !== ($file = readdir($handle))) {
             $filePath = $modulesFolder . $file;
             RCCWP_CustomWriteModule::Import($filePath);
         }
     }
     // Import panels
     if ($handle = @opendir($panelsFolder)) {
         while (false !== ($file = readdir($handle))) {
             $filePath = $panelsFolder . $file;
             RCCWP_CustomWritePanel::Import($filePath);
         }
     }
 }
 function UpdateAllModulesSettings()
 {
     global $wpdb;
     $customModules = RCCWP_CustomWriteModule::GetCustomModules();
     $currDuplicates = $wpdb->get_results("SELECT * FROM " . FLUTTER_TABLE_MODULES_DUPLICATES);
     $currModules = $wpdb->get_results("SELECT * FROM " . FLUTTER_TABLE_LAYOUT_MODULES);
     foreach ($currModules as $currModule) {
         // -- Delete obselete modules
         if ($currModule->module_id > -1) {
             $found = false;
             foreach ($customModules as $customModule) {
                 if ($customModule->id == $currModule->module_id) {
                     $found = true;
                 }
             }
             if (!$found) {
                 FlutterLayoutBlock::DeleteModule($currModule->module_id);
             }
         }
         // -- Delete obselete duplicates
         $found = false;
         foreach ($currDuplicates as $currDuplicate) {
             if ($currDuplicate->duplicate_id == $currModule->duplicate_id) {
                 $found = true;
             }
         }
         if (!$found && $currModule->duplicate_id != 0) {
             FlutterLayoutBlock::DeleteDuplicate($currModule->duplicate_id);
         }
     }
     // -- Insert/Update modules in the Layout table
     foreach ($customModules as $customModule) {
         $filename = FLUTTER_MODULES_DIR . $customModule->name . "/configure.xml";
         FlutterLayoutBlock::UpdateModuleSettings($filename, $customModule->id);
         //Insert duplicates
         $currDuplicates = $wpdb->get_results("SELECT * FROM " . FLUTTER_TABLE_MODULES_DUPLICATES . " WHERE module_id = '{$customModule->id}'");
         foreach ($currDuplicates as $currDuplicate) {
             FlutterLayoutBlock::UpdateModuleSettings($filename, $customModule->id, false, false, $currDuplicate->duplicate_id);
         }
     }
 }