MDL-15488, searching specific photos in flickr repository.

This commit is contained in:
dongsheng
2008-07-14 04:34:26 +00:00
parent 81a5b09b46
commit 75e7a38c7d
4 changed files with 46 additions and 20 deletions
+25 -14
View File
@@ -1,7 +1,7 @@
<?php
/*******************************************************\
This file is a demo page for ajax repository file
This file is a demo page for ajax repository file
picker.
\*******************************************************/
@@ -10,8 +10,8 @@ $itempic = $CFG->pixpath.'/i/item.gif';
$meta = <<<EOD
<style type="text/css">
body {
margin:0;
padding:0;
margin:0;
padding:0;
}
#demo .yui-resize-handle-br {
height: 11px;
@@ -105,13 +105,13 @@ function openpicker(){
units: [
{position: 'top', height: 32, resize: false, body:'<div class="yui-buttongroup" id="viewbar"></div>', gutter: '2'},
{ position: 'left', width: 150, resize: true, body: '<ul id="list"></ul>', gutter: '0 5 0 2', minWidth: 150, maxWidth: 300 },
{ position: 'bottom',
height: 30,
{ position: 'bottom',
height: 30,
body: '<div id="toolbar">'+
'<input type="button" id="select" value="Select" />'+
'<input type="button" id="search" value="Search" />'+
'<input type="button" id="logout" value="Logout" />'+
'</div>',
'</div>',
gutter: '2'},
{ position: 'center', body: '<div id="panel"></div>', scroll: true, gutter: '0 2 0 0' }
]
@@ -141,7 +141,7 @@ function openpicker(){
layout.set('height', bodyContentHeight);
layout.set('width', (args.width - PANEL_BODY_PADDING));
layout.resize();
}, panel, true);
var list = new YAHOO.util.Element('list');
list.on('contentReady', function(e){
@@ -179,7 +179,7 @@ function openpicker(){
viewbar.addButtons([btn_list, btn_thumb]);
var select = new YAHOO.util.Element('select');
select.on('click', function(e){
var nodes = YAHOO.util.Selector.query('input:checked');
var nodes = YAHOO.util.Selector.query('input:checked');
var str = '';
for(k in nodes){
str += (nodes[k].value+'\n');
@@ -190,9 +190,11 @@ function openpicker(){
})
var search = new YAHOO.util.Element('search');
search.on('click', function(e){
// TODO
// Call get_listing to search
})
var data=window.prompt("What are you searching for?");
if(data != null || data != '') {
dosearch(data);
}
})
};
function postdata(obj) {
@@ -219,7 +221,7 @@ function makepage(){
str += '</a> ';
}
str += '</div>';
}
}
return str;
}
@@ -271,7 +273,7 @@ function viewlist(){
return str;
}
// produce login html
// produce login html
function print_login(){
var panel = new YAHOO.util.Element('panel');
var data = datasource.l;
@@ -280,7 +282,11 @@ function print_login(){
var callback = {
success: function(o) {
var ret = YAHOO.lang.JSON.parse(o.responseText);
try {
var ret = YAHOO.lang.JSON.parse(o.responseText);
} catch(e) {
alert(e);
}
datasource = ret;
if(datasource.l){
print_login();
@@ -302,6 +308,11 @@ function cr(id, path, reset){
loading();
var trans = YAHOO.util.Connect.asyncRequest('GET', 'ws.php?id='+id+'&p='+path+'&reset='+reset, callback);
}
function dosearch(text){
viewbar.set('disabled', false);
loading();
var trans = YAHOO.util.Connect.asyncRequest('GET', 'ws.php?id='+repositoryid+'&s='+text, callback);
}
function dologin(){
YAHOO.util.Connect.setForm('moodle-repo-login');
@@ -1,3 +1,4 @@
<?php
$string['repositoryname'] = 'Flickr';
$string['repositorydesc'] = 'Repository for flickr.com';
$string['notitle'] = 'notitle';
+14 -4
View File
@@ -77,13 +77,23 @@ EOD;
global $SESSION;
$people = $this->flickr->people_findByEmail($SESSION->flickrmail);
$photos_url = $this->flickr->urls_getUserPhotos($people['nsid']);
$photos = $this->flickr->people_getPublicPhotos($people['nsid'], null, 36, $path);
if(!empty($search)) {
// do searching, if $path is not empty, ignore it.
$photos = $this->flickr->photos_search(array('user_id'=>$people['nsid'], 'text'=>$search));
} elseif(!empty($path) && empty($search)) {
$photos = $this->flickr->people_getPublicPhotos($people['nsid'], null, 36, $path);
}
$ret = new stdclass;
$ret->url = $photos_url;
$ret->list = array();
//$ret->page = $photos['page'];
$ret->page = $path;
$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');
@@ -105,7 +115,7 @@ EOD;
"src=" . $photo['thumbnail'] . ">";
$str .= "</a>";
$i++;
if ($i % 4 == 0) {
$str .= "<br/>";
}
+6 -2
View File
@@ -2,10 +2,14 @@
require_once('../config.php');
require_once('lib.php');
$CFG->repository_cache_expire = 12000;
// repository id
$id = optional_param('id', PARAM_INT);
// action of client
$action = optional_param('action', '', PARAM_RAW);
// path
$p = optional_param('p', '', PARAM_RAW);
$search = optional_param('search', '', PARAM_RAW);
// Search text
$search = optional_param('s', '', PARAM_RAW);
if(!$repository = $DB->get_record('repository', array('id'=>$id))) {
echo json_encode('wrong');
@@ -30,7 +34,7 @@ if($action == 'list') {
} else {
echo json_encode($repo->get_listing());
}
} else {
echo json_encode($repo->print_login());
}