--- /dev/null
+<?php // $Id$
+$string['repositoryname'] = 'URL Downloader';
+$string['url'] = 'URL';
+$string['rename'] = 'Name';
+$string['download'] = 'Download';
$ret['login'] = array($fulltext, $tag, $email_field, $license);
$ret['login_btn_label'] = get_string('search');
- $ret['login_search_form'] = true;
+ $ret['login_btn_action'] = 'search';
return $ret;
}
}
// print repository instances listing
$js .= <<<EOD
<script type="text/javascript">
-repository_listing['$id'] = {};
+repository_listing['$id'] = [];
EOD;
foreach ($repos as $repo) {
$info = $repo->ajax_info();
$js .= "\r\n";
- $js .= 'repository_listing[\''.$id.'\'][\''.$info->id.'\']='.json_encode($repo->ajax_info()).';';
+ $js .= 'repository_listing[\''.$id.'\']['.$info->id.']='.json_encode($repo->ajax_info()).';';
$js .= "\n";
}
$js .= "\r\n";
var login = data.login;
var panel = new YAHOO.util.Element('panel-'+id);
var action = 'login';
- if (data['login_search_form']) {
- action='search';
+ if (data['login_btn_action']) {
+ action=data['login_btn_action'];
}
var str = '<div class="fp-login-form" onkeypress="repository_client.login_keypress(event,\''+action+'\')">';
var has_pop = false;
}
str += '</td>';
}else{
- str += '<td align="left"><input type="'+login[k].type+'"'+' name="'+login[k].name+'"'+field_value+' /></td>';
+ str += '<td align="left"><input type="'+login[k].type+'"'+' name="'+login[k].name+'"'+field_value+' '+field_id+' /></td>';
}
}
str +='</tr>';
}
str +='</table>';
var btn_label = data['login_btn_label']?data['login_btn_label']:fp_lang.submit;
- if (data['login_search_form']) {
+ if (data['login_btn_action'] == 'search') {
str += '<p><input type="button" onclick="repository_client.search(\''+id+'\', \''+data.repo_id+'\')" value="'+btn_label+'" /></p>';
+ } else if(data['login_btn_action'] == 'download') {
+ str += '<p><input type="button" onclick="repository_client.download(\''+id+'\', \''+data.repo_id+'\')" value="'+btn_label+'" /></p>';
} else {
if(!has_pop) {
str += '<p><input type="button" onclick="repository_client.login(\''+id+'\', \''+data.repo_id+'\')" value="'+btn_label+'" /></p>';
if(key == 13 || key == 10){
if(action=='search'){
repository_client.search(cached_id, cached_repo_id);
+ } else if (action=='download') {
+ repository_client.download(cached_id, cached_repo_id);
} else {
repository_client.login(cached_id, cached_repo_id);
}
--- /dev/null
+<?php
+/**
+ * repository_url class
+ * A subclass of repository, which is used to download a file from a specific url
+ *
+ * @version $Id$
+ * @license http://www.gnu.org/copyleft/gpl.html GNU Public License
+ */
+
+class repository_url extends repository {
+
+ /**
+ *
+ * @global object $SESSION
+ * @global string $action
+ * @global object $CFG
+ * @param int $repositoryid
+ * @param object $context
+ * @param array $options
+ */
+ public function __construct($repositoryid, $context = SITEID, $options = array()){
+ global $SESSION, $action, $CFG;
+ parent::__construct($repositoryid, $context, $options);
+ $this->client_id = $options['client_id'];
+ $this->file_url = optional_param('download_from', '', PARAM_RAW);
+ }
+
+ public function get_file($url, $file = '') {
+ global $CFG;
+ $path = $this->prepare_file($file);
+ $fp = fopen($path, 'w');
+ $c = new curl;
+ $c->download(array(array('url'=>$url, 'file'=>$fp)));
+
+ return $path;
+ }
+
+ public function check_login() {
+ global $action;
+ if (!empty($this->file_url)) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+ /**
+ *
+ * @global object $SESSION
+ * @param boolean $ajax
+ * @return mixed
+ */
+ public function print_login($ajax = true) {
+ $url = new stdclass;
+ $url->label = get_string('url', 'repository_url').': ';
+ $url->id = 'fileurl-'.$this->client_id;
+ $url->type = 'text';
+ $url->name = 'fileiii';
+
+ $title = new stdclass;
+ $title->label = get_string('rename', 'repository_url').': ';
+ $title->id = 'newname-'.$this->client_id;
+ $title->type = 'text';
+ $title->name = 'file';
+
+ $ret['login'] = array($url, $title);
+ $ret['login_btn_label'] = get_string('download', 'repository_url');
+ $ret['login_btn_action'] = 'download';
+ return $ret;
+ }
+
+ /**
+ *
+ * @param mixed $path
+ * @param string $search
+ * @return array
+ */
+ public function get_listing($path='', $page='') {
+ $this->print_login();
+ }
+
+ public function get_name(){
+ return get_string('repositoryname', 'repository_url');;
+ }
+}
+?>
--- /dev/null
+<?php
+$plugin->version = 2009051800;
require_once($CFG->dirroot.'/repository/'.$type.'/repository.class.php');
$classname = 'repository_' . $type;
try {
- $repo = new $classname($repo_id, $ctx_id, array('ajax'=>true, 'name'=>$repository->name));
+ $repo = new $classname($repo_id, $ctx_id, array('ajax'=>true, 'name'=>$repository->name, 'client_id'=>$client_id));
} catch (repository_exception $e){
$err->e = $e->getMessage();
die(json_encode($err));
$search->label = get_string('search', 'repository_youtube').': ';
$ret['login'] = array($search);
$ret['login_btn_label'] = get_string('search');
- $ret['login_search_form'] = true;
+ $ret['login_btn_action'] = 'search';
return $ret;
}
public function supported_return_value() {