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 fwrite($fh, "\"" . implode("\";\"", $admin_output) . "\"" . PHP_EOL); // cache cleanup _elgg_invalidate_cache_for_entity($admin->getGUID());
$offset = (int) max(get_input('offset', 0), 0); $subsite_options = array("type" => "site", "subtype" => Subsite::SUBTYPE, "limit" => $limit, "offset" => $offset, "joins" => array("JOIN " . get_config("dbprefix") . "sites_entity se ON se.guid = e.guid"), "order_by" => "se.name ASC"); $export_button = ""; if ($subsites = elgg_get_entities($subsite_options)) { // create export button $export_button = elgg_view("output/url", array("text" => elgg_echo("export"), "href" => "action/subsites/export_admins", "is_action" => true, "class" => "elgg-button elgg-button-action float-alt")); // add pagination $subsite_options["count"] = true; $count = elgg_get_entities($subsite_options); $pagination = elgg_view("navigation/pagination", array("limit" => $limit, "offset" => $offset, "count" => $count)); $subsite_list = $pagination; foreach ($subsites as $subsite) { // some stats $temp_list = "<div class='elgg-subtext'>"; $temp_list .= elgg_echo("members") . ": " . $subsite->getMembers(array("count" => true)) . "<br />"; if ($time = subsite_manager_get_subsite_last_activity($subsite->getGUID())) { $temp_list .= elgg_echo("content:latest") . ": " . elgg_view_friendly_time($time); } else { $temp_list .= elgg_echo("content:latest") . ": " . elgg_echo("river:none"); } $temp_list .= "</div>"; // get admins if ($admins = $subsite->getAdminGuids()) { $subadmin_options = array("type" => "user", "limit" => false, "site_guids" => false, "joins" => array("JOIN " . get_config("dbprefix") . "users_entity ue ON ue.guid = e.guid"), "wheres" => array("e.guid IN (" . implode(",", $admins) . ")"), "order_by" => "ue.name", "full_view" => false, "pagination" => false, "view_type_toggle" => false); $temp_list .= "<div class='elgg-divide-left pls'>"; $temp_list .= elgg_list_entities($subadmin_options); $temp_list .= "</div>"; } else { $temp_list .= elgg_echo("subsite_manager:subsites:admins:subsite_admins:none"); } // add to list