$data = array('url' => 'http://' . $url . '.' . $_SERVER['SERVER_NAME'], 'instance' => $instance, 'comment' => $comment); $faqInstance = new PMF_Instance($faqConfig); $instanceId = $faqInstance->addInstance($data); $faqInstanceClient = new PMF_Instance_Client($faqConfig); $faqInstanceClient->createClient($faqInstance); $urlParts = parse_url($data['url']); $hostname = $urlParts['host']; if ($faqInstanceClient->createClientFolder($hostname)) { $clientDir = PMF_ROOT_DIR . '/multisite/' . $hostname; $clientSetup = new PMF_Instance_Setup(); $clientSetup->setRootDir($clientDir); $faqInstanceClient->copyConstantsFile($clientDir . '/constants.php'); $faqInstanceClient->copyLdapConstantsFile($clientDir . '/constants_ldap.php'); $dbSetup = array('dbServer' => $DB['server'], 'dbUser' => $DB['user'], 'dbPassword' => $DB['password'], 'dbDatabaseName' => $DB['db'], 'dbPrefix' => substr($hostname, 0, strpos($hostname, '.')), 'dbType' => $DB['type']); $clientSetup->createDatabaseFile($dbSetup, ''); $faqInstanceClient->setClientUrl('http://' . $hostname); $faqInstanceClient->createClientTables($dbSetup['dbPrefix']); PMF_Db::setTablePrefix($dbSetup['dbPrefix']); // add admin account and rights $instanceAdmin = new PMF_User($faqConfig); $instanceAdmin->createUser($admin, $password, 1); $instanceAdmin->setStatus('protected'); $instanceAdminData = array('display_name' => '', 'email' => $email); $instanceAdmin->setUserData($instanceAdminData); // Add anonymous user account $clientSetup->createAnonymousUser($faqConfig); PMF_Db::setTablePrefix($DB['prefix']); } else { $faqInstance->removeInstance($instanceId); $payload = array('error' => 'Cannot create instance.'); }