// The file settings/override/site.ini.append.php is updated like this: // - take the existing list of extensions from site.ini.append.php (to preserve their order) // - remove from the list the extensions that the user unchecked in the admin interface // - add to the list the extensions checked by the user in the admin interface, but to the end of the list $intersection = array_intersect( $selectedExtensions, $selectedExtensionArray ); $difference = array_diff( $selectedExtensionArray, $selectedExtensions ); $toSave = array_merge( $intersection, $difference ); $toSave = array_unique( $toSave ); // open settings/override/site.ini.append[.php] for writing $writeSiteINI = eZINI::instance( 'site.ini.append', 'settings/override', null, null, false, true ); $writeSiteINI->setVariable( "ExtensionSettings", "ActiveExtensions", $toSave ); $writeSiteINI->save( 'site.ini.append', '.php', false, false ); eZCache::clearByTag( 'ini' ); eZSiteAccess::reInitialise(); $ini = eZINI::instance( 'module.ini' ); $currentModules = $ini->variable( 'ModuleSettings', 'ModuleList' ); if ( $currentModules != $oldModules ) { // ensure that evaluated policy wildcards in the user info cache // will be up to date with the currently activated modules eZCache::clearByID( 'user_info_cache' ); } updateAutoload( $tpl ); } // open site.ini for reading (need to do it again to take into account the changes made to site.ini after clicking "Apply changes" button above $siteINI = eZINI::instance();