From: dongsheng Date: Tue, 16 Sep 2008 03:11:17 +0000 (+0000) Subject: MDL-13766 X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=353d5cf39b63fcc7888b354d16b1ade0e95adbe7;p=moodle.git MDL-13766 1. Clean up source code 2. use search api replace old get_listing api --- diff --git a/repository/boxnet/repository.class.php b/repository/boxnet/repository.class.php index f229614f71..9c029fde00 100755 --- a/repository/boxnet/repository.class.php +++ b/repository/boxnet/repository.class.php @@ -10,45 +10,31 @@ require_once($CFG->libdir.'/boxlib.php'); -/** - * - */ class repository_boxnet extends repository { private $box; - /** - * - * @global $SESSION - * @param $repositoryid - * @param $context - * @param $options - */ public function __construct($repositoryid, $context = SITEID, $options = array()) { global $SESSION; - $options['username'] = optional_param('boxusername', '', PARAM_RAW); $options['password'] = optional_param('boxpassword', '', PARAM_RAW); $options['ticket'] = optional_param('ticket', '', PARAM_RAW); - $reset = optional_param('reset', 0, PARAM_INT); parent::__construct($repositoryid, $context, $options); $this->api_key = $this->get_option('api_key'); - if (empty($this->api_key)) { - } $sess_name = 'box_token'.$this->id; $this->sess_name = 'box_token'.$this->id; // do login - if (!empty($options['username']) && !empty($options['password']) && !empty($options['ticket']) ) { + if(!empty($options['username']) && !empty($options['password']) && !empty($options['ticket']) ) { $this->box = new boxclient($this->api_key); try { $SESSION->$sess_name = $this->box->getAuthToken($options['ticket'], - $options['username'], $options['password']); + $options['username'], $options['password']); } catch (repository_exception $e) { throw $e; } } // already logged - if (!empty($SESSION->$sess_name)) { - if (empty($this->box)) { + if(!empty($SESSION->$sess_name)) { + if(empty($this->box)) { $this->box = new boxclient($this->api_key, $SESSION->$sess_name); } $this->auth_token = $SESSION->$sess_name; @@ -57,34 +43,17 @@ class repository_boxnet extends repository { } } - /** - * - * @global $SESSION - * @return - */ public function check_login() { global $SESSION; - return !empty($SESSION->{$this->sess_name}); } - /** - * - * @global $SESSION - * @return - */ public function logout() { global $SESSION; - unset($SESSION->{$this->sess_name}); return $this->print_login(); } - /** - * - * @param $options - * @return - */ public function set_option($options = array()) { if (!empty($options['api_key'])) { set_config('api_key', trim($options['api_key']), 'boxnet'); @@ -94,13 +63,8 @@ class repository_boxnet extends repository { return $ret; } - /** - * - * @param $config - * @return - */ public function get_option($config = '') { - if ($config==='api_key') { + if($config==='api_key') { return trim(get_config('boxnet', 'api_key')); } else { $options['api_key'] = trim(get_config('boxnet', 'api_key')); @@ -109,29 +73,17 @@ class repository_boxnet extends repository { return $options; } - /** - * - * @global $SESSION - * @return - */ public function global_search() { global $SESSION; - $sess_name = 'box_token'.$this->id; - if (empty($SESSION->$sess_name)) { + if (empty($SESSION->{$this->sess_name})) { return false; } else { return true; } } - /** - * - * @global $DB - * @return - */ public function get_login() { global $DB; - if ($entry = $DB->get_record('repository_instances', array('id'=>$this->id))) { $ret->username = $entry->username; $ret->password = $entry->password; @@ -141,61 +93,46 @@ class repository_boxnet extends repository { } return $ret; } - - /** - * - * @global $CFG - * @global $SESSION - * @param $path - * @param $search - * @return - */ - public function get_listing($path = '/', $search = '') { - global $CFG, $SESSION; - + public function search($search_text) { + global $CFG; $list = array(); $ret = array(); - if (!empty($search)) { - $tree = $this->box->getAccountTree(); - if (!empty($tree)) { - $filenames = $tree['file_name']; - $fileids = $tree['file_id']; - $filesizes = $tree['file_size']; - $filedates = $tree['file_date']; - $fileicon = $tree['thumbnail']; - foreach ($filenames as $n=>$v) { - if (strstr($v, $search) !== false) { - $list[] = array('title'=>$v, - 'size'=>$filesizes[$n], - 'date'=>$filedates[$n], - 'source'=>'http://box.net/api/1.0/download/' - .$this->options['auth_token'].'/'.$fileids[$n], - 'thumbnail'=>$CFG->pixpath.'/f/'.mimeinfo('icon', $v)); - } + $tree = $this->box->getAccountTree(); + if (!empty($tree)) { + $filenames = $tree['file_name']; + $fileids = $tree['file_id']; + $filesizes = $tree['file_size']; + $filedates = $tree['file_date']; + $fileicon = $tree['thumbnail']; + foreach ($filenames as $n=>$v){ + if(strstr($v, $search_text) !== false) { + $list[] = array('title'=>$v, + 'size'=>$filesizes[$n], + 'date'=>$filedates[$n], + 'source'=>'http://box.net/api/1.0/download/' + .$this->options['auth_token'].'/'.$fileids[$n], + 'thumbnail'=>$CFG->pixpath.'/f/'.mimeinfo('icon', $v)); } } - $ret['list'] = $list; - return $ret; } + $ret['list'] = $list; + return $ret; + } + public function get_listing($path = '/'){ + global $CFG; + $list = array(); + $ret = array(); + $ret['list'] = array(); $tree = $this->box->getfiletree($path); - if (!empty($tree)) { + $ret['manage'] = 'http://www.box.net/files'; + $ret['path'] = array(array('name'=>'Root', 'path'=>0)); + if(!empty($tree)) { $ret['list'] = $tree; - $ret['manage'] = 'http://www.box.net/files'; - $ret['path'] = array(array('name'=>'Root', 'path'=>0)); - $this->listing = $tree; - return $ret; - } else { - $sess_name = 'box_token'.$this->id; - unset($SESSION->$sess_name); - throw new repository_exception('nullfilelist', 'repository_boxnet'); } + return $ret; } - /** - * - * @return - */ - public function print_login() { + public function print_login(){ $t = $this->box->getTicket(); $ret = $this->get_login(); if ($this->options['ajax']) { @@ -220,58 +157,26 @@ class repository_boxnet extends repository { } } - /** - * - * @return - */ - public function print_search() { - return false; - } - - /** - * - * @return - */ public static function has_admin_config() { return true; } - /** - * - * @return - */ public static function has_instance_config() { return false; } - /** - * - * @return - */ public static function has_multiple_instances() { return false; } - /** - * - * @return - */ public static function get_admin_option_names() { return array('api_key'); } - /** - * - * @return - */ public static function get_instance_option_names() { return array('share_url'); } - /** - * - * @param $ - */ public function admin_config_form(&$mform) { $public_account = get_config('boxnet', 'public_account'); $api_key = get_config('boxnet', 'api_key'); @@ -283,10 +188,6 @@ class repository_boxnet extends repository { $mform->addRule('api_key', $strrequired, 'required', null, 'client'); } - /** - * - * @param $ - */ public function instance_config_form(&$mform) { //$share_url = get_config('boxnet', 'share_url'); $mform->addElement('text', 'share_url', get_string('shareurl', 'repository_boxnet')); diff --git a/repository/flickr/repository.class.php b/repository/flickr/repository.class.php index 2358a78942..cdb51acf4c 100755 --- a/repository/flickr/repository.class.php +++ b/repository/flickr/repository.class.php @@ -10,24 +10,12 @@ require_once($CFG->libdir.'/flickrlib.php'); -/** - * - */ class repository_flickr extends repository { private $flickr; public $photos; - /** - * - * @global $SESSION - * @global $CFG - * @param $repositoryid - * @param $context - * @param $options - */ public function __construct($repositoryid, $context = SITEID, $options = array()) { global $SESSION, $CFG; - $options['page'] = optional_param('p', 1, PARAM_INT); parent::__construct($repositoryid, $context, $options); @@ -41,32 +29,19 @@ class repository_flickr extends repository { $this->flickr = new phpFlickr($this->api_key, $this->secret, $this->token); - if (empty($this->token)) { - $frob = optional_param('frob', '', PARAM_RAW); - if (!empty($frob)) { - $auth_info = $this->flickr->auth_getToken($frob); - $this->token = $auth_info['token']; - $this->nsid = $auth_info['user']['nsid']; - set_user_preference($this->setting, $auth_info['token']); - set_user_preference($this->setting.'_nsid', $auth_info['user']['nsid']); - $this->perm = $auth_info['token']; - } + $frob = optional_param('frob', '', PARAM_RAW); + if (empty($this->token) && !empty($frob)) { + $auth_info = $this->flickr->auth_getToken($frob); + $this->token = $auth_info['token']; + $this->nsid = $auth_info['user']['nsid']; + set_user_preference($this->setting, $auth_info['token']); + set_user_preference($this->setting.'_nsid', $auth_info['user']['nsid']); } } - - /** - * - * @return - */ public function check_login() { return !empty($this->token); } - - /** - * - * @return - */ public function logout() { set_user_preference($this->setting, ''); set_user_preference($this->setting.'_nsid', ''); @@ -74,12 +49,6 @@ class repository_flickr extends repository { $this->nsid = ''; return $this->print_login(); } - - /** - * - * @param $options - * @return - */ public function set_option($options = array()) { if (!empty($options['api_key'])) { set_config('api_key', trim($options['api_key']), 'flickr'); @@ -93,11 +62,6 @@ class repository_flickr extends repository { return $ret; } - /** - * - * @param $config - * @return - */ public function get_option($config = '') { if ($config==='api_key') { return trim(get_config('flickr', 'api_key')); @@ -111,31 +75,15 @@ class repository_flickr extends repository { return $options; } - /** - * - * @global $SESSION - * @return - */ public function global_search() { - global $SESSION; - if (empty($this->token)) { return false; } else { return true; } } - - /** - * - * @global $SESSION - * @param $ajax - * @return - */ public function print_login($ajax = true) { - global $SESSION; - - if($ajax){ + if ($ajax) { $ret = array(); $popup_btn = new stdclass; $popup_btn->type = 'popup'; @@ -144,48 +92,20 @@ class repository_flickr extends repository { return $ret; } } - - /** - * - * @global $SESSION - * @param $path - * @param $search - * @return - */ - public function get_listing($path = '1', $search = '') { - global $SESSION; - - $nsid = get_user_preferences($this->setting.'_nsid'); - $photos_url = $this->flickr->urls_getUserPhotos($nsid); - - if (!empty($search)) { - $photos = $this->flickr->photos_search(array( - 'user_id'=>$nsid, - 'per_page'=>25, - 'page'=>$path, - 'extras'=>'original_format', - 'text'=>$search - )); - } elseif (!empty($path) && empty($search)) { - $photos = $this->flickr->photos_search(array( - 'user_id'=>$nsid, - 'per_page'=>25, - 'page'=>$path, - 'extras'=>'original_format' - )); - } + private function build_list($photos, $path = 1) { + $photos_url = $this->flickr->urls_getUserPhotos($this->nsid); $ret = array(); $ret['manage'] = $photos_url; $ret['list'] = array(); $ret['pages'] = $photos['pages']; - if (is_int($path) && $path <= $ret['pages']) { + if(is_int($path) && $path <= $ret['pages']) { $ret['page'] = $path; } else { $ret['page'] = 1; } if (!empty($photos['photo'])) { foreach ($photos['photo'] as $p) { - if (empty($p['title'])) { + if(empty($p['title'])) { $p['title'] = get_string('notitle', 'repository_flickr'); } if (isset($p['originalformat'])) { @@ -193,52 +113,45 @@ class repository_flickr extends repository { } else { $format = 'jpg'; } - $ret['list'][] = - array('title'=>$p['title'].'.'.$format,'source'=>$p['id'],'id'=>$p['id'],'thumbnail'=>$this->flickr->buildPhotoURL($p, 'Square'), 'date'=>'', 'size'=>'unknown', 'url'=>$photos_url.$p['id']); + $ret['list'][] = array('title'=>$p['title'].'.'.$format,'source'=>$p['id'], + 'id'=>$p['id'],'thumbnail'=>$this->flickr->buildPhotoURL($p, 'Square'), + 'date'=>'', 'size'=>'unknown', 'url'=>$photos_url.$p['id']); } } - if (empty($ret)) { - throw new repository_exception('nullphotolist', 'repository_flickr'); - } else { - return $ret; - } + return $ret; + } + public function search($search_text) { + $photos = $this->flickr->photos_search(array( + 'user_id'=>$this->nsid, + 'per_page'=>25, + 'extras'=>'original_format', + 'text'=>$search_text + )); + return $this->build_list($photos); + } + public function get_listing($path = '1') { + $photos_url = $this->flickr->urls_getUserPhotos($this->nsid); + + $photos = $this->flickr->photos_search(array( + 'user_id'=>$this->nsid, + 'per_page'=>25, + 'page'=>$path, + 'extras'=>'original_format' + )); + return $this->build_list($photos, $path); } - - /** - * - * @return - */ public function print_listing() { return false; } - - /** - * - * @return - */ - public function print_search() { - echo ''; - parent::print_search(); - return true; - } - - /** - * - * @global $CFG - * @param $photo_id - * @param $file - * @return - */ public function get_file($photo_id, $file = '') { global $CFG; - $result = $this->flickr->photos_getSizes($photo_id); $url = ''; - if (!empty($result[4])) { + if(!empty($result[4])) { $url = $result[4]['source']; - } elseif (!empty($result[3])) { + } elseif(!empty($result[3])) { $url = $result[3]['source']; - } elseif (!empty($result[2])) { + } elseif(!empty($result[2])) { $url = $result[2]['source']; } if (!file_exists($CFG->dataroot.'/repository/download')) { @@ -248,10 +161,10 @@ class repository_flickr extends repository { $dir = $CFG->dataroot.'/repository/download/'; } - if (empty($file)) { + if(empty($file)) { $file = $photo_id.'_'.time().'.jpg'; } - if (file_exists($dir.$file)) { + if(file_exists($dir.$file)) { $file = uniqid('m').$file; } $fp = fopen($dir.$file, 'w'); @@ -261,56 +174,29 @@ class repository_flickr extends repository { )); return $dir.$file; } - - /** - * - * @return - */ public static function has_admin_config() { return true; } - /** - * - * @return - */ public static function has_multiple_instances() { return false; } - /** - * - * @return - */ public static function has_instance_config() { return false; } - /** - * - * @param $ - */ public function instance_config_form(&$mform) { $mform->addElement('text', 'email_address', get_string('emailaddress', 'repository_flickr')); $mform->addRule('email_address', get_string('required'), 'required', null, 'client'); } - /** - * - * @return - */ public static function get_instance_option_names() { return array('email_address'); } - /** - * - * @global $CFG - * @param $ - */ public function admin_config_form(&$mform) { global $CFG; - $api_key = get_config('flickr', 'api_key'); $secret = get_config('flickr', 'secret'); @@ -339,10 +225,6 @@ class repository_flickr extends repository { $mform->addRule('secret', $strrequired, 'required', null, 'client'); } - /** - * - * @return - */ public static function get_admin_option_names() { return array('api_key', 'secret'); } diff --git a/repository/flickr_public/repository.class.php b/repository/flickr_public/repository.class.php index 31fa7caa48..a2351a800e 100644 --- a/repository/flickr_public/repository.class.php +++ b/repository/flickr_public/repository.class.php @@ -12,18 +12,10 @@ require_once($CFG->libdir.'/flickrlib.php'); -/** - * - */ class repository_flickr_public extends repository { private $flickr; public $photos; - /** - * - * @param $options - * @return - */ public function set_option($options = array()) { if (!empty($options['api_key'])) { set_config('api_key', trim($options['api_key']), 'flickr_public'); @@ -33,11 +25,6 @@ class repository_flickr_public extends repository { return $ret; } - /** - * - * @param $config - * @return - */ public function get_option($config = '') { if ($config==='api_key') { return trim(get_config('flickr_public', 'api_key')); @@ -48,10 +35,6 @@ class repository_flickr_public extends repository { return $options; } - /** - * - * @return - */ public function global_search() { if (empty($this->flickr_account)) { return false; @@ -60,23 +43,16 @@ class repository_flickr_public extends repository { } } - /** - * - * @global $CFG - * @param $repositoryid - * @param $context - * @param $options - */ public function __construct($repositoryid, $context = SITEID, $options = array()) { global $CFG; - - $options['page'] = optional_param('p', 1, PARAM_INT); + $options['page'] = optional_param('p', 1, PARAM_INT); parent::__construct($repositoryid, $context, $options); $this->api_key = $this->get_option('api_key'); $this->flickr = new phpFlickr($this->api_key); - $this->flickr_account = $this->get_option('email_address'); + // when flickr account hasn't been set by admin, user can + // submit a flickr account here. $account = optional_param('flickr_account', '', PARAM_RAW); if (!empty($account)) { $people = $this->flickr->people_findByEmail($account); @@ -87,20 +63,9 @@ class repository_flickr_public extends repository { } } } - - /** - * - * @return - */ public function check_login() { return !empty($this->flickr_account); } - - /** - * - * @param $ajax - * @return - */ public function print_login($ajax = true) { if ($ajax) { $ret = array(); @@ -112,130 +77,82 @@ class repository_flickr_public extends repository { return $ret; } } - - /** - * - * @return - */ - public function search() { + public function search($search_text) { $people = $this->flickr->people_findByEmail($this->flickr_account); - $tag = optional_param('tag', '', PARAM_CLEANHTML); - $search = optional_param('s', '', PARAM_CLEANHTML); + $this->nsid = $people['nsid']; + $tag = optional_param('tag', '', PARAM_CLEANHTML); if (!empty($tag)) { $photos = $this->flickr->photos_search(array( 'tags'=>$tag )); } else { $photos = $this->flickr->photos_search(array( - 'user_id'=>$people['nsid'], - 'text'=>$search)); - } - $ret = array(); - $ret['list'] = array(); - $ret['nologin'] = true; - $ret['pages'] = $photos['pages']; - foreach ($photos['photo'] as $p) { - if (empty($p['title'])) { - $p['title'] = get_string('notitle', 'repository_flickr_public'); - } - if (isset($p['originalformat'])) { - $format = $p['originalformat']; - } else { - $format = 'jpg'; - } - $ret['list'][] = - array('title'=>$p['title'].'.'.$format,'source'=>$p['id'],'id'=>$p['id'],'thumbnail'=>$this->flickr->buildPhotoURL($p, 'Square'), 'date'=>'', 'size'=>'unknown', 'url'=>'http://www.flickr.com/photos/'.$p['owner'].'/'.$p['id']); - } - if (empty($ret)) { - throw new repository_exception('nullphotolist', 'repository_flickr_public'); - } else { - return $ret; + 'user_id'=>$this->nsid, + 'text'=>$search_text)); } + return $this->build_list($photos); } - - /** - * - * @param $path - * @param $search - * @return - */ - public function get_listing($path = '1', $search = '') { + public function get_listing($path = '1') { $people = $this->flickr->people_findByEmail($this->flickr_account); - $photos_url = $this->flickr->urls_getUserPhotos($people['nsid']); - + $this->nsid = $people['nsid']; $photos = $this->flickr->people_getPublicPhotos($people['nsid'], 'original_format', 25, $path); + return $this->build_list($photos, $path); + } + private function build_list($photos, $path = 1) { + $photos_url = $this->flickr->urls_getUserPhotos($this->nsid); $ret = array(); $ret['manage'] = $photos_url; $ret['list'] = array(); - $ret['nologin'] = true; $ret['pages'] = $photos['pages']; if (is_int($path) && $path <= $ret['pages']) { $ret['page'] = $path; } else { $ret['page'] = 1; } - foreach ($photos['photo'] as $p) { - if (empty($p['title'])) { - $p['title'] = get_string('notitle', 'repository_flickr_public'); - } - if (isset($p['originalformat'])) { - $format = $p['originalformat']; - } else { - $format = 'jpg'; + if (!empty($photos['photo'])) { + foreach ($photos['photo'] as $p) { + if(empty($p['title'])) { + $p['title'] = get_string('notitle', 'repository_flickr'); + } + if (isset($p['originalformat'])) { + $format = $p['originalformat']; + } else { + $format = 'jpg'; + } + $ret['list'][] = array('title'=>$p['title'].'.'.$format,'source'=>$p['id'], + 'id'=>$p['id'],'thumbnail'=>$this->flickr->buildPhotoURL($p, 'Square'), + 'date'=>'', 'size'=>'unknown', 'url'=>$photos_url.$p['id']); } - $ret['list'][] = - array('title'=>$p['title'].'.'.$format,'source'=>$p['id'],'id'=>$p['id'],'thumbnail'=>$this->flickr->buildPhotoURL($p, 'Square'), 'date'=>'', 'size'=>'unknown', 'url'=>$photos_url.$p['id']); - } - if (empty($ret)) { - throw new repository_exception('nullphotolist', 'repository_flickr_public'); - } else { - return $ret; } + return $ret; } - /** - * - * @return - */ public function print_listing() { return false; } - /** - * - * @return - */ public function print_search() { parent::print_search(); - echo '
'; echo '
'; return true; } - /** - * - * @global $CFG - * @param $photo_id - * @param $file - * @return - */ public function get_file($photo_id, $file = '') { global $CFG; - $result = $this->flickr->photos_getSizes($photo_id); $url = ''; if (!empty($result[4])) { $url = $result[4]['source']; - } elseif (!empty($result[3])) { + } elseif(!empty($result[3])) { $url = $result[3]['source']; - } elseif (!empty($result[2])) { + } elseif(!empty($result[2])) { $url = $result[2]['source']; } if (!file_exists($CFG->dataroot.'/repository/download')) { mkdir($CFG->dataroot.'/repository/download/', 0777, true); } - if (is_dir($CFG->dataroot.'/repository/download')) { + if(is_dir($CFG->dataroot.'/repository/download')) { $dir = $CFG->dataroot.'/repository/download/'; } @@ -247,57 +164,31 @@ class repository_flickr_public extends repository { } $fp = fopen($dir.$file, 'w'); $c = new curl; - $c->download(array( - array('url'=>$url, 'file'=>$fp) - )); + $c->download(array(array('url'=>$url, 'file'=>$fp))); + return $dir.$file; } - - /** - * - * @return - */ public static function has_admin_config() { return true; } - /** - * - * @return - */ public static function has_multiple_instances() { return true; } - /** - * - * @return - */ public static function has_instance_config() { return true; } - /** - * - * @param $ - */ public function instance_config_form(&$mform) { $mform->addElement('text', 'email_address', get_string('emailaddress', 'repository_flickr_public')); //$mform->addRule('email_address', get_string('required'), 'required', null, 'client'); } - /** - * - * @return - */ public static function get_instance_option_names() { return array('email_address'); } - /** - * - * @param $ - */ public function admin_config_form(&$mform) { $api_key = get_config('flickr_public', 'api_key'); if (empty($api_key)) { @@ -308,17 +199,10 @@ class repository_flickr_public extends repository { $mform->addRule('api_key', $strrequired, 'required', null, 'client'); } - /** - * - * @return - */ public static function get_admin_option_names() { return array('api_key'); } - /** - * - */ public static function type_init() { //here we create a default instances for this type } diff --git a/repository/lib.php b/repository/lib.php index 6160196f49..4488812a7f 100644 --- a/repository/lib.php +++ b/repository/lib.php @@ -796,6 +796,7 @@ abstract class repository { * 'manage' => (string) link to file manager, * 'nologin' => (bool) requires login, * 'nosearch' => (bool) no search link, + * 'search_result' => (bool) this list is a searching result, * 'upload' => array( // upload manager * 'name' => (string) label of the form element, * 'id' => (string) id of the form element @@ -827,15 +828,19 @@ abstract class repository { * @param string $search The text will be searched. * @return array the list of files, including meta infomation */ - abstract public function get_listing($parent = '/', $search = ''); + abstract public function get_listing($parent = '/'); /** - * Search + * Search files in repository + * When doing global search, $search_text will be used as + * keyword. + * * @return mixed, see get_listing() */ - public function search() { - $search = optional_param('s', '', PARAM_CLEANHTML); - return $this->get_listing(null, $search); + public function search($search_text) { + $list = array(); + $list['list'] = array(); + return false; } /** @@ -872,6 +877,7 @@ abstract class repository { echo ''; echo ''; echo ''; + echo ''; return true; } @@ -2011,7 +2017,7 @@ success: function(o) { postmethod: 'async', width : "30em", fixedcenter : true, -zindex: 666667, +zindex: 766667, visible : false, constraintoviewport : true, buttons : [ { text:"Submit",handler: function() { diff --git a/repository/local/repository.class.php b/repository/local/repository.class.php index aed0a1bd25..9586424dd1 100755 --- a/repository/local/repository.class.php +++ b/repository/local/repository.class.php @@ -9,7 +9,7 @@ class repository_local extends repository { - public function __construct($repositoryid, $context = SITEID, $options = array()){ + public function __construct($repositoryid, $context = SITEID, $options = array()) { global $SESSION, $action, $CFG; parent::__construct($repositoryid, $context, $options); // TODO: @@ -40,6 +40,10 @@ class repository_local extends repository { return array('filearea' => $filearea, 'path' => $path); } + public function search($search_text) { + return $this->get_listing('', $search_text); + } + public function get_listing($encodedpath = '', $search = '') { global $CFG; $ret = array(); @@ -180,10 +184,6 @@ class repository_local extends repository { // will be used in non-javascript file picker } - public function print_search() { - return true; - } - public static function has_admin_config() { return false; } diff --git a/repository/ws.php b/repository/ws.php index 24ebc186ed..eb501f6513 100644 --- a/repository/ws.php +++ b/repository/ws.php @@ -16,6 +16,7 @@ $ctx_id = optional_param('ctx_id', SITEID, PARAM_INT); // context ID $repo_id = optional_param('repo_id', 1, PARAM_INT); // repository ID $callback = optional_param('callback', '', PARAM_CLEANHTML); + $search_text = optional_param('s', '', PARAM_CLEANHTML); /// Headers to make it not cacheable header("Cache-Control: no-cache, must-revalidate"); @@ -40,7 +41,7 @@ foreach($repos as $repo){ if ($repo->global_search()) { try { - $ret = $repo->get_listing(null, $search); + $ret = $repo->search($search_text); array_walk($ret['list'], 'repository_attach_id', $repo->id); // See function below $tmp = array_merge($list, $ret['list']); $list = $tmp; @@ -141,7 +142,7 @@ EOD; break; case 'search': try { - echo json_encode($repo->search()); + echo json_encode($repo->search($search_text)); } catch (repository_exception $e) { $err = new stdclass; $err->e = $e->getMessage();