mirror of
https://github.com/moodle/moodle.git
synced 2025-01-18 22:08:20 +01:00
MDL-11845 Support for config proxy options when downloading language packs (& other components), timezone file
This commit is contained in:
parent
f9192b6538
commit
3e93ea86c0
@ -6,7 +6,8 @@
|
||||
require_once($CFG->libdir.'/adminlib.php');
|
||||
require_once($CFG->libdir.'/filelib.php');
|
||||
require_once($CFG->libdir.'/olson.php');
|
||||
|
||||
require_once($CFG->libdir.'/snoopy/Snoopy.class.inc');
|
||||
|
||||
admin_externalpage_setup('timezoneimport');
|
||||
|
||||
$ok = optional_param('ok', 0, PARAM_BOOL);
|
||||
@ -62,19 +63,20 @@
|
||||
}
|
||||
|
||||
/// Otherwise, let's try moodle.org's copy
|
||||
$snoopy = new Snoopy;
|
||||
$snoopy->proxy_host = $CFG->proxyhost;
|
||||
$snoopy->proxy_port = $CFG->proxyport;
|
||||
|
||||
$source = 'http://download.moodle.org/timezones/';
|
||||
if (!$importdone and ini_get('allow_url_fopen')) {
|
||||
if (is_readable($source) && $contents = file_get_contents($source)) { // Grab whole page
|
||||
if ($file = fopen($CFG->dataroot.'/temp/timezones.txt', 'w')) { // Make local copy
|
||||
fwrite($file, $contents);
|
||||
fclose($file);
|
||||
if ($timezones = get_records_csv($CFG->dataroot.'/temp/timezones.txt', 'timezone')) { // Parse it
|
||||
update_timezone_records($timezones);
|
||||
$importdone = $source;
|
||||
}
|
||||
unlink($CFG->dataroot.'/temp/timezones.txt');
|
||||
if (!$importdone && $snoopy->fetch($source)) {
|
||||
if ($file = fopen($CFG->dataroot.'/temp/timezones.txt', 'w')) { // Make local copy
|
||||
fwrite($file, $snoopy->results);
|
||||
fclose($file);
|
||||
if ($timezones = get_records_csv($CFG->dataroot.'/temp/timezones.txt', 'timezone')) { // Parse it
|
||||
update_timezone_records($timezones);
|
||||
$importdone = $source;
|
||||
}
|
||||
unlink($CFG->dataroot.'/temp/timezones.txt');
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -124,6 +124,8 @@
|
||||
// error to be retrieved by one standard get_string() call against the error.php lang file.
|
||||
//
|
||||
// That's all!
|
||||
global $CFG;
|
||||
require_once($CFG->libdir.'/snoopy/Snoopy.class.inc');
|
||||
|
||||
// Some needed constants
|
||||
define('ERROR', 0);
|
||||
@ -141,7 +143,7 @@ define('INSTALLED', 3);
|
||||
*/
|
||||
class component_installer {
|
||||
|
||||
var $sourcebase; /// Full http URL, base for downloadeable items
|
||||
var $sourcebase; /// Full http URL, base for downloadable items
|
||||
var $zippath; /// Relative path (from sourcebase) where the
|
||||
/// downloadeable item resides.
|
||||
var $zipfilename; /// Name of the .zip file to be downloaded
|
||||
@ -271,7 +273,14 @@ class component_installer {
|
||||
/// Download zip file and save it to temp
|
||||
$source = $this->sourcebase.'/'.$this->zippath.'/'.$this->zipfilename;
|
||||
$zipfile= $CFG->dataroot.'/temp/'.$this->zipfilename;
|
||||
if ($contents = file_get_contents($source)) {
|
||||
|
||||
/// Prepare Snoopy client and set up proxy info
|
||||
$snoopy = new Snoopy;
|
||||
global $CFG;
|
||||
$snoopy->proxy_host = $CFG->proxyhost;
|
||||
$snoopy->proxy_port = $CFG->proxyport;
|
||||
if($snoopy->fetch($source)) {
|
||||
$contents = $snoopy->results;
|
||||
if ($file = fopen($zipfile, 'w')) {
|
||||
if (!fwrite($file, $contents)) {
|
||||
fclose($file);
|
||||
@ -458,12 +467,20 @@ class component_installer {
|
||||
} else {
|
||||
/// Not downloaded, let's do it now
|
||||
$availablecomponents = array();
|
||||
if ($fp = fopen($source, 'r')) {
|
||||
/// Read from URL, each line will be one component
|
||||
while(!feof ($fp)) {
|
||||
$availablecomponents[] = split(',', fgets($fp,1024));
|
||||
|
||||
/// Prepare Snoopy client and set up proxy info
|
||||
$snoopy = new Snoopy;
|
||||
global $CFG;
|
||||
$snoopy->proxy_host = $CFG->proxyhost;
|
||||
$snoopy->proxy_port = $CFG->proxyport;
|
||||
|
||||
if ($snoopy->fetch($source)) {
|
||||
/// Split text into lines
|
||||
$lines=preg_split('/\r?\n/',$snoopy->results);
|
||||
/// Each line will be one component
|
||||
foreach($lines as $line) {
|
||||
$availablecomponents[] = split(',', $line);
|
||||
}
|
||||
fclose($fp);
|
||||
/// If no components have been found, return error
|
||||
if (empty($availablecomponents)) {
|
||||
$this->errorstring='cannotdownloadcomponents';
|
||||
|
Loading…
x
Reference in New Issue
Block a user