Skip to content

Commit

Permalink
"Flickr_public plugin/MDL-18830, support license search for flickr_pu…
Browse files Browse the repository at this point in the history
…blic"
  • Loading branch information
dongsheng committed Apr 24, 2009
1 parent 870f4b5 commit 9f50fb5
Show file tree
Hide file tree
Showing 2 changed files with 79 additions and 16 deletions.
68 changes: 56 additions & 12 deletions repository/flickr_public/repository.class.php
Expand Up @@ -77,14 +77,22 @@ public function __construct($repositoryid, $context = SITEID, $options = array()

$account = optional_param('flickr_account', '', PARAM_RAW);
$fulltext = optional_param('flickr_fulltext', '', PARAM_RAW);
if (empty($fulltext)) {
$fulltext = optional_param('s', '', PARAM_RAW);
}
$tag = optional_param('flickr_tag', '', PARAM_RAW);
$license = optional_param('flickr_license', '', PARAM_RAW);

$this->sess_account = 'flickr_public_'.$this->id.'_account';
$this->sess_tag = 'flickr_public_'.$this->id.'_tag';
$this->sess_text = 'flickr_public_'.$this->id.'_text';
if (!empty($account) or !empty($fulltext) or !empty($tag)) {
$SESSION->{$this->sess_account} = $account;
$this->sess_license = 'flickr_public_'.$this->id.'_license';

if (!empty($account) or !empty($fulltext) or !empty($tag) or !empty($license)) {
$SESSION->{$this->sess_tag} = $tag;
$SESSION->{$this->sess_text} = $fulltext;
$SESSION->{$this->sess_account} = $account;
$SESSION->{$this->sess_license} = $license;
}
}

Expand Down Expand Up @@ -122,7 +130,26 @@ public function print_login($ajax = true) {
$email_field->type = 'text';
$email_field->name = 'flickr_account';

$ret['login'] = array($fulltext, $tag, $email_field);
$license = new stdclass;
$license->label = get_string('license', 'repository_flickr_public').': ';
$license->id = 'flickr_license_type';
$license->type = 'radio';
$license->name = 'flickr_license';
// all -> all licenses
// cc -> creative commons
// ccc -> reeative commons commercial
$license->value = implode('|', array('all', 1, 2, 3, 4, 5, 6));
$license->value_label = implode('|', array(
get_string('all', 'repository_flickr_public'),
get_string('by-nc-sa', 'repository_flickr_public'),
get_string('by-nc', 'repository_flickr_public'),
get_string('by-nc-nd', 'repository_flickr_public'),
get_string('by', 'repository_flickr_public'),
get_string('by-sa', 'repository_flickr_public'),
get_string('by-nd', 'repository_flickr_public')
));

$ret['login'] = array($fulltext, $tag, $email_field, $license);
$ret['login_btn_label'] = get_string('search');
$ret['login_search_form'] = true;
return $ret;
Expand Down Expand Up @@ -166,17 +193,34 @@ public function search($search_text) {
$page = 1;
}
if (!empty($SESSION->{$this->sess_tag}) or !empty($SESSION->{$this->sess_text})
or !empty($SESSION->{$this->sess_account})
or !empty($this->nsid)) {

$photos = $this->flickr->photos_search(array(
'tags'=>$SESSION->{$this->sess_tag},
'page'=>$page,
'per_page'=>24,
'user_id'=>$this->nsid,
'text'=>$SESSION->{$this->sess_text}));
or !empty($SESSION->{$this->sess_account}) or !empty($this->nsid))
{
if ( empty($SESSION->{$this->sess_license}) or $SESSION->{$this->sess_license}=='all') {
$photos = $this->flickr->photos_search(array(
'tags'=>$SESSION->{$this->sess_tag},
'page'=>$page,
'per_page'=>24,
'user_id'=>$this->nsid,
'text'=>$SESSION->{$this->sess_text}
)
);
} else {
$photos = $this->flickr->photos_search(array(
'tags'=>$SESSION->{$this->sess_tag},
'page'=>$page,
'per_page'=>24,
'user_id'=>$this->nsid,
'license'=>$SESSION->{$this->sess_license},
'text'=>$SESSION->{$this->sess_text}
)
);
}
}
$ret = array();
if (empty($photos)) {
$ret['list'] = array();
return $ret;
}
$ret = $this->build_list($photos, $page, $ret);
$ret['list'] = array_filter($ret['list'], array($this, 'filter'));
return $ret;
Expand Down
27 changes: 23 additions & 4 deletions repository/repository.js
Expand Up @@ -275,12 +275,23 @@ repository_client.print_login = function(id, data) {
if(login[k].value) {
field_value = ' value="'+login[k].value+'"';
}
str += '<td align="left"><input type="'+login[k].type+'"'+' name="'+login[k].name+'"'+field_id+field_value+' /></td>';
if(login[k].type=='radio'){
var list = login[k].value.split('|');
var labels = login[k].value_label.split('|');
str += '<td align="left">';
for(var item in list) {
str +='<input type="'+login[k].type+'"'+' name="'+login[k].name+'"'+
field_id+' value="'+list[item]+'" />'+labels[item]+'<br />';
}
str += '</td>';
}else{
str += '<td align="left"><input type="'+login[k].type+'"'+' name="'+login[k].name+'"'+field_value+' /></td>';
}
}
str +='</tr>';
}
str +='</table>';
var btn_label = login['login_btn_label']?login['login_btn_label']:fp_lang.submit;
var btn_label = data['login_btn_label']?data['login_btn_label']:fp_lang.submit;
if (data['login_search_form']) {
str += '<p><input type="button" onclick="repository_client.search(\''+id+'\', \''+data.repo_id+'\')" value="'+btn_label+'" /></p>';
} else {
Expand Down Expand Up @@ -324,6 +335,13 @@ repository_client.search = function(id, repo_id) {
params[data[k].name] = '';
if(el.type == 'checkbox') {
params[data[k].name] = el.checked;
} else if(el.type == 'radio') {
var tmp = document.getElementsByName(data[k].name);
for(var i in tmp) {
if (tmp[i].checked) {
params[data[k].name] = tmp[i].value;
}
}
} else {
params[data[k].name] = el.value;
}
Expand Down Expand Up @@ -468,7 +486,9 @@ repository_client.select_file = function(oldname, url, icon, client_id, repo_id)
var footer = document.getElementById('fp-footer-'+client_id);
footer.style.display = 'none';
var pathbar = document.getElementById('path-'+client_id);
pathbar.style.display = 'none';
if(pathbar){
pathbar.style.display = 'none';
}
var panel = new YAHOO.util.Element('panel-'+client_id);
var html = '<div class="fp-rename-form">';
html += '<p><img src="'+icon+'" /></p>';
Expand Down Expand Up @@ -583,7 +603,6 @@ repository_client.view_as_icons = function(client_id, data) {
var list = null;
if (typeof client_id == 'object') {
// click button
alert('from button');
client_id = data;
list = repository_client.fp[client_id].fs.list;
} else if(!data) {
Expand Down

0 comments on commit 9f50fb5

Please sign in to comment.