<?php if (subsite_manager_on_subsite()) { register_error(elgg_echo("subsite_manager:action:error:on_subsite")); forward(REFERER); } // this could take a while set_time_limit(0); $subsite_options = array("type" => "site", "subtype" => Subsite::SUBTYPE, "limit" => false, "joins" => array("JOIN " . get_config("dbprefix") . "sites_entity se ON se.guid = e.guid"), "order_by" => "se.name ASC"); $batch = new ElggBatch("elgg_get_entities", $subsite_options); $batch->rewind(); if ($batch->valid()) { // create a temp file for storage $fh = tmpfile(); $headers = array("name", "url", "site time created (unix)", "site time created (YYYY-MM-DD HH:MM:SS)", "member count", "last activity (unix)", "last activity (YYYY-MM-DD HH:MM:SS)", "admin name", "admin email", "admin profile"); fwrite($fh, "\"" . implode("\";\"", $headers) . "\"" . PHP_EOL); foreach ($batch as $subsite) { $member_count = $subsite->getMembers(array("count" => true)); $last_activity = subsite_manager_get_subsite_last_activity($subsite->getGUID()); $last_activity_readable = date("Y-m-d G:i:s", $last_activity); $admin_guids = $subsite->getAdminGuids(); $output = array($subsite->name, $subsite->url, $subsite->time_created, date("Y-m-d G:i:s", $subsite->time_created), $member_count, $last_activity, $last_activity_readable); if (!empty($admin_guids)) { foreach ($admin_guids as $admin_guid) { $admin = get_user($admin_guid); if (!empty($admin)) { $admin_output = $output; $admin_output[] = $admin->name; $admin_output[] = $admin->email; $admin_output[] = $admin->getURL(); // write to file