Skip to content
Permalink
Browse files

MDL-11845 Support for config proxy options when downloading language …

…packs (& other components), timezone file
  • Loading branch information...
sam_marshall
sam_marshall committed Dec 6, 2007
1 parent f9192b6 commit 3e93ea86c0e6d9222668bdefa2718418736144f4
Showing with 37 additions and 18 deletions.
  1. +13 −11 admin/timezoneimport.php
  2. +24 −7 lib/componentlib.class.php
@@ -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 @@
*/
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 @@ function install() {
/// 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 @@ function get_all_components_md5() {
} 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';

0 comments on commit 3e93ea8

Please sign in to comment.
You can’t perform that action at this time.