libdir.'/adminlib.php'); require_once($CFG->libdir.'/filelib.php'); require_once($CFG->libdir.'/olson.php'); admin_externalpage_setup('timezoneimport'); $ok = optional_param('ok', 0, PARAM_BOOL); /// Print headings $strimporttimezones = get_string('importtimezones', 'admin'); admin_externalpage_print_header(); print_heading($strimporttimezones); if (!$ok or !confirm_sesskey()) { $message = '

'; $message .= $CFG->dataroot.'/temp/olson.txt
'; $message .= $CFG->dataroot.'/temp/timezone.txt
'; $message .= 'http://download.moodle.org/timezone/
'; $message .= ''.$CFG->dirroot.'/lib/timezone.txt
'; $message .= '
'; $message = get_string("configintrotimezones", 'admin', $message); notice_yesno($message, 'timezoneimport.php?ok=1&sesskey='.sesskey(), 'index.php'); admin_externalpage_print_footer(); exit; } /// Try to find a source of timezones to import from $importdone = false; /// First, look for an Olson file locally $source = $CFG->dataroot.'/temp/olson.txt'; if (!$importdone and is_readable($source)) { if ($timezones = olson_to_timezones($source)) { update_timezone_records($timezones); $importdone = $source; } } /// Next, look for a CSV file locally $source = $CFG->dataroot.'/temp/timezone.txt'; if (!$importdone and is_readable($source)) { if ($timezones = get_records_csv($source, 'timezone')) { update_timezone_records($timezones); $importdone = $source; } } /// Otherwise, let's try moodle.org's copy $source = 'http://download.moodle.org/timezone/'; if (!$importdone && ($content=download_file_content($source))) { if ($file = fopen($CFG->dataroot.'/temp/timezone.txt', 'w')) { // Make local copy fwrite($file, $content); fclose($file); if ($timezones = get_records_csv($CFG->dataroot.'/temp/timezone.txt', 'timezone')) { // Parse it update_timezone_records($timezones); $importdone = $source; } unlink($CFG->dataroot.'/temp/timezone.txt'); } } /// Final resort, use the copy included in Moodle $source = $CFG->dirroot.'/lib/timezone.txt'; if (!$importdone and is_readable($source)) { // Distribution file if ($timezones = get_records_csv($source, 'timezone')) { update_timezone_records($timezones); $importdone = $source; } } /// That's it! if ($importdone) { $a = null; $a->count = count($timezones); $a->source = $importdone; print_heading(get_string('importtimezonescount', 'admin', $a), '', 3); print_continue('index.php'); $timezonelist = array(); foreach ($timezones as $timezone) { if (is_array($timezone)) { $timezone = (object)$timezone; } if (isset($timezonelist[$timezone->name])) { $timezonelist[$timezone->name]++; } else { $timezonelist[$timezone->name] = 1; } } ksort($timezonelist); echo "
"; print_simple_box_start('center'); foreach ($timezonelist as $name => $count) { echo "$name ($count)
"; } print_simple_box_end(); } else { print_heading(get_string('importtimezonesfailed', 'admin'), '', 3); print_continue('index.php'); } admin_externalpage_print_footer(); ?>