function smartUpdateAllOfPreferences(&$module, &$log) { $dirname = $module->get('dirname'); $fileReader = new Legacy_ModinfoX2FileReader($dirname); $latestPreferences =& $fileReader->loadPreferenceInformations(); $dbReader = new Legacy_ModinfoX2DBReader($dirname); $currentPreferences =& $dbReader->loadPreferenceInformations(); $currentPreferences->update($latestPreferences); // // Preferences // foreach (array_keys($currentPreferences->mPreferences) as $idx) { switch ($currentPreferences->mPreferences[$idx]->mStatus) { case LEGACY_INSTALLINFO_STATUS_UPDATED: Legacy_ModuleInstallUtils::updatePreferenceByInfo($currentPreferences->mPreferences[$idx], $module, $log); break; case LEGACY_INSTALLINFO_STATUS_ORDER_UPDATED: Legacy_ModuleInstallUtils::updatePreferenceOrderByInfo($currentPreferences->mPreferences[$idx], $module, $log); break; case LEGACY_INSTALLINFO_STATUS_NEW: Legacy_ModuleInstallUtils::installPreferenceByInfo($currentPreferences->mPreferences[$idx], $module, $log); break; case LEGACY_INSTALLINFO_STATUS_DELETED: Legacy_ModuleInstallUtils::uninstallPreferenceByOrder($currentPreferences->mPreferences[$idx]->mOrder, $module, $log); break; } } // // Comments // foreach (array_keys($currentPreferences->mComments) as $idx) { switch ($currentPreferences->mComments[$idx]->mStatus) { case LEGACY_INSTALLINFO_STATUS_UPDATED: Legacy_ModuleInstallUtils::updatePreferenceByInfo($currentPreferences->mComments[$idx], $module, $log); break; case LEGACY_INSTALLINFO_STATUS_ORDER_UPDATED: Legacy_ModuleInstallUtils::updatePreferenceOrderByInfo($currentPreferences->mComments[$idx], $module, $log); break; case LEGACY_INSTALLINFO_STATUS_NEW: Legacy_ModuleInstallUtils::installPreferenceByInfo($currentPreferences->mComments[$idx], $module, $log); break; case LEGACY_INSTALLINFO_STATUS_DELETED: Legacy_ModuleInstallUtils::uninstallPreferenceByOrder($currentPreferences->mComments[$idx]->mOrder, $module, $log); break; } } // // Notifications // foreach (array_keys($currentPreferences->mNotifications) as $idx) { switch ($currentPreferences->mNotifications[$idx]->mStatus) { case LEGACY_INSTALLINFO_STATUS_UPDATED: Legacy_ModuleInstallUtils::updatePreferenceByInfo($currentPreferences->mNotifications[$idx], $module, $log); break; case LEGACY_INSTALLINFO_STATUS_ORDER_UPDATED: Legacy_ModuleInstallUtils::updatePreferenceOrderByInfo($currentPreferences->mNotifications[$idx], $module, $log); break; case LEGACY_INSTALLINFO_STATUS_NEW: Legacy_ModuleInstallUtils::installPreferenceByInfo($currentPreferences->mNotifications[$idx], $module, $log); break; case LEGACY_INSTALLINFO_STATUS_DELETED: Legacy_ModuleInstallUtils::uninstallPreferenceByOrder($currentPreferences->mNotifications[$idx]->mOrder, $module, $log); break; } } }