27a19845fdea4fff5db099f55122bcf778093eb3
[moodle.git] / repository / wikimedia / repository.class.php
1 <?php
3 // This file is part of Moodle - http://moodle.org/
4 //
5 // Moodle is free software: you can redistribute it and/or modify
6 // it under the terms of the GNU General Public License as published by
7 // the Free Software Foundation, either version 3 of the License, or
8 // (at your option) any later version.
9 //
10 // Moodle is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 // GNU General Public License for more details.
14 //
15 // You should have received a copy of the GNU General Public License
16 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
18 require_once('wikimedia.php');
20 /**
21  * repository_wikimedia class
22  * This is a class used to browse images from wikimedia
23  *
24  * @since 2.0
25  * @package moodlecore
26  * @subpackage repository
27  * @copyright 2009 Dongsheng Cai
28  * @author Dongsheng Cai <dongsheng@moodle.com>
29  * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
30  */
32 class repository_wikimedia extends repository {
33     public function __construct($repositoryid, $context = SITEID, $options = array()) {
34         parent::__construct($repositoryid, $context, $options);
35         $this->keyword = optional_param('wikimedia_keyword', '', PARAM_RAW);
36         if (empty($this->keyword)) {   
37             $this->keyword = optional_param('s', '', PARAM_RAW);
38         }
39     }
40     public function get_listing($path = '', $page = '') {
41         $client = new wikimedia;
42         $list = array();
43         $list['list'] = $client->search_images($this->keyword);
44         $list['nologin'] = true;
45         return $list;
46     }
47    // login
48     public function check_login() {
49         return !empty($this->keyword);
50     }
51     // if check_login returns false,
52     // this function will be called to print a login form.
53     public function print_login() {
54         $keyword->label = get_string('keyword', 'repository_wikimedia').': ';
55         $keyword->id    = 'input_text_keyword';
56         $keyword->type  = 'text';
57         $keyword->name  = 'wikimedia_keyword';
58         $keyword->value = '';
60         $form = array();
61         $form['login'] = array($keyword);
62         return $form;
63     }
64     //search
65     // if this plugin support global search, if this function return
66     // true, search function will be called when global searching working
67     public function global_search() {
68         return false;
69     }
70     public function search($search_text) {
71         $client = new wikimedia;
72         $search_result = array();
73         $search_result['list'] = $client->search_images($search_text);
74         return $search_result;
75     }
76     // when logout button on file picker is clicked, this function will be
77     // called.
78     public function logout() {
79         return $this->print_login();
80     }
81     public static function get_type_option_names() {
82         return null;
83     }
84     public function supported_returntypes() {
85         return (FILE_INTERNAL | FILE_EXTERNAL);
86     }
87 }