From 38e554420be3dcb30053ddcd68d1ed261c7a99bf Mon Sep 17 00:00:00 2001 From: dongsheng Date: Thu, 17 Jul 2008 09:34:15 +0000 Subject: [PATCH] MDL-15405 1. Produce repository list dynamicly. 2. Remove logout button, add a logout link after repository name --- repository/ajax.php | 59 ++++++++++++++++++++++----------------- repository/curl.class.php | 8 ++++-- repository/lib.php | 20 +++++++++++++ 3 files changed, 60 insertions(+), 27 deletions(-) diff --git a/repository/ajax.php b/repository/ajax.php index 13de61bcfe..570b6e28a7 100644 --- a/repository/ajax.php +++ b/repository/ajax.php @@ -6,6 +6,7 @@ \*******************************************************/ require_once('../config.php'); +require_once('lib.php'); $itempic = $CFG->pixpath.'/i/item.gif'; $meta = << @@ -34,6 +35,7 @@ color:white; } .t{width:80px; float:left;text-align:center;} .t div{width: 80px; height: 36px; overflow: hidden} +.repo-logout{font-size: 10px;} img{margin:0;padding:0;border:0} #paging{margin:10px 5px; clear:both} #paging a{padding: 4px; border: 1px solid gray} @@ -76,6 +78,14 @@ var repositoryid = 0; var datasource, Dom = YAHOO.util.Dom, Event = YAHOO.util.Event, layout = null, resize = null; var viewbar = null; var viewmode = 0; +var repos = []; + /** * this function will create a file picker dialog, and resigister all the event @@ -111,7 +121,6 @@ function openpicker(){ body: '
'+ ''+ ''+ - ''+ '
', gutter: '2'}, { position: 'center', body: '
', scroll: true, gutter: '0 2 0 0' } @@ -146,29 +155,29 @@ function openpicker(){ }, panel, true); var list = new YAHOO.util.Element('list'); list.on('contentReady', function(e){ - // TODO - // Should call a function to generate - // repository list - var li = document.createElement('li'); - li.innerHTML = 'Box.net'; - li.id = 'repo-1'; - this.appendChild(li); - var i = new YAHOO.util.Element('repo-1'); - i.on('click', function(e){ - cr(1, 1, 0); - }); - li = document.createElement('li'); - li.innerHTML = 'Flickr'; - li.id = 'repo-2'; - this.appendChild(li); - i = new YAHOO.util.Element('repo-2'); - i.on('click', function(e){ - cr(2, 1, 0); - }); + for(var i=0; i'+ + repo.repositoryname+' '; + li.innerHTML += 'Logout'; + li.id = 'repo-'+repo.id; + this.appendChild(li); + var e = new YAHOO.util.Element('repo-call-'+repo.id); + e.on('click', function(e){ + var re = /repo-call-(\d+)/i; + var id = this.get('id').match(re); + cr(id[1], 1, 0); + }); + e = new YAHOO.util.Element('repo-logout-'+repo.id); + e.on('click', function(e){ + var re = /repo-logout-(\d+)/i; + var id = this.get('id').match(re); + cr(id[1], 1, 1); + }); + repo = null; + } }); - YAHOO.util.Event.addListener('logout', 'click', function(e){ - cr(repositoryid, 1, 1); - }); viewbar = new YAHOO.widget.ButtonGroup({ id: 'btngroup', name: 'buttons', @@ -252,7 +261,7 @@ function viewthumb(){ for(k in obj){ str += '
'; str += ''; - str += '

' + str += '

' str += obj[k].title+'
'; str += '
'; } @@ -272,7 +281,7 @@ function viewlist(){ var panel = new YAHOO.util.Element('panel'); str += makepage(); for(k in obj){ - str += ''; + str += ''; str += obj[k].title; str += '
'; } diff --git a/repository/curl.class.php b/repository/curl.class.php index 7765063e19..b42f0ad11e 100644 --- a/repository/curl.class.php +++ b/repository/curl.class.php @@ -52,8 +52,12 @@ class curl { if (!empty($options['debug'])) { $this->debug = true; } - if (!empty($options['cookie'])) { - $this->cookie = $options['cookie']; + if(!empty($options['cookie'])) { + if($options['cookie'] === true) { + $this->cookie = $CFG->dataroot.'/curl_cookie.txt'; + } else { + $this->cookie = $options['cookie']; + } } if (!empty($options['cache'])) { if (class_exists('repository_cache')) { diff --git a/repository/lib.php b/repository/lib.php index fafa432228..6cc666d9b7 100644 --- a/repository/lib.php +++ b/repository/lib.php @@ -325,6 +325,26 @@ function repository_get_option($id, $position){ $ret = (array)unserialize($entry->$option); return $ret; } +function repository_get_repositories(){ + global $DB, $CFG, $USER; + $contextid = 0; + $params = array(); + $sql = 'SELECT * FROM {repository} r WHERE '; + $sql .= ' (r.userid = 0 or r.userid = ?) '; + $params[] = $USER->id; + if($contextid == SITEID) { + $sql .= 'AND (r.contextid = ?)'; + $params[] = SITEID; + } else { + $sql .= 'AND (r.contextid = ? or r.contextid = ?)'; + $params[] = SITEID; + $params[] = $contextid; + } + if(!$repos = $DB->get_records_sql($sql, $params)) { + $repos = array(); + } + return $repos; +} function repository_get_plugins(){ global $CFG; $repo = $CFG->dirroot.'/repository/'; -- 2.39.5