function flickr_block in Flickr 5
Same name and namespace in other branches
- 6 block/flickr_block.module \flickr_block()
Implementation of hook_block().
File
- block/
flickr_block.module, line 8
Code
function flickr_block($op = 'list', $delta = 0, $edit = array()) {
switch ($op) {
case 'list':
// User base blocks
$blocks[0]['info'] = t("Flickr user page recent photos");
$blocks[1]['info'] = t("Flickr user page photosets");
$blocks[2]['info'] = t("Flickr user page random photos");
// Site wide blocks
$blocks[3]['info'] = t('Flickr recent photos');
$blocks[4]['info'] = t('Flickr recent photosets');
$blocks[5]['info'] = t('Flickr random photos');
return $blocks;
case 'configure':
$count_options = array(
1 => '1',
2 => '2',
3 => '3',
4 => '4',
5 => '5',
6 => '6',
7 => '7',
8 => '8',
9 => '9',
10 => '10',
15 => '15',
20 => '20',
25 => '25',
30 => '30',
);
// remove the large and original sizes
$size_options = array();
foreach (flickr_photo_sizes() as $size => $info) {
$size_options[$size] = $info['label'] . ' - ' . $info['description'];
}
unset($size_options['b']);
unset($size_options['o']);
$settings = variable_get('flickr_block_' . $delta, array(
'user_id' => '',
'show_n' => 4,
'size' => 's',
));
$form = array();
$form["flickr_block_{$delta}_user_id"] = array(
'#type' => 'textfield',
'#title' => t('Flickr User Id'),
'#default_value' => $settings['user_id'],
'#description' => t("The user id of a Flickr user. If this is left blank, the sites's default user will be used. Current default id is " . variable_get('flickr_default_userid', '')),
);
$form["flickr_block_{$delta}_show_n"] = array(
'#type' => 'select',
'#options' => $count_options,
'#title' => t('Show the last <em>n</em> photos'),
'#default_value' => $settings['show_n'],
'#description' => t("The block will display this many photos."),
);
$form["flickr_block_{$delta}_size"] = array(
'#type' => 'select',
'#options' => $size_options,
'#title' => t('Size of photos'),
'#default_value' => $settings['size'],
'#description' => t("Select the size of photos you'd like to display in the block."),
);
switch ($delta) {
case 0:
// user page, recent
unset($form["flickr_block_{$delta}_user_id"]);
break;
case 1:
// user page, photosets
unset($form["flickr_block_{$delta}_user_id"]);
// photoset, not photos
$form["flickr_block_{$delta}_show_n"]['#title'] = t('Show the last <em>n</em> photosets');
$form["flickr_block_{$delta}_show_n"]['#description'] = t("The block will show this many of the user's photosets.");
break;
case 2:
// user page, random
unset($form["flickr_block_{$delta}_user_id"]);
break;
case 3:
// sitewide, recent
break;
case 4:
// sitewite photoset, not photos
$form["flickr_block_{$delta}_show_n"]['#title'] = t('Show the last <em>n</em> photosets');
$form["flickr_block_{$delta}_show_n"]['#description'] = t("The block will show this many of the user's photosets.");
break;
case 5:
// sitewide, random
break;
}
return $form;
case 'save':
switch ($delta) {
case 0:
case 1:
case 2:
variable_set('flickr_block_' . $delta, array(
'show_n' => (int) $edit["flickr_block_{$delta}_show_n"],
'size' => $edit["flickr_block_{$delta}_size"],
));
break;
case 3:
case 4:
case 5:
variable_set('flickr_block_' . $delta, array(
'user_id' => $edit["flickr_block_{$delta}_user_id"],
'show_n' => (int) $edit["flickr_block_{$delta}_show_n"],
'size' => $edit["flickr_block_{$delta}_size"],
));
break;
}
break;
case 'view':
default:
$settings = variable_get('flickr_block_' . $delta, array(
'user_id' => '',
'show_n' => 4,
'size' => 's',
));
// Get the default user id as a fallback
if (isset($settings['user_id'])) {
$settings['user_id'] = variable_get('flickr_default_userid', '');
}
// Get per user nsid if necessary
if ($delta < 3) {
if (arg(0) == 'user' && ($uid = (int) arg(1))) {
if ($user = user_load(array(
'uid' => $uid,
))) {
if ($user->flickr['nsid']) {
if ($delta == 0) {
$block['subject'] = t("%username's recent Flickr photos", array(
'%username' => $user->name,
));
$block['content'] = _flickr_block_recent($user->flickr['nsid'], $settings['show_n'], $settings['size']);
}
elseif ($delta == 1) {
$block['subject'] = t("%username's recent Flickr photosets", array(
'%username' => $user->name,
));
$block['content'] = _flickr_block_photosets($user->flickr['nsid'], $settings['show_n'], $settings['size']);
}
elseif ($delta == 2) {
$block['subject'] = t("%username's random Flickr photos", array(
'%username' => $user->name,
));
$block['content'] = _flickr_block_random($user->flickr['nsid'], $settings['show_n'], $settings['size']);
}
}
}
}
}
elseif ($delta == 3) {
$block['subject'] = t('Flickr recent photos');
$block['content'] = _flickr_block_recent($settings['user_id'], $settings['show_n'], $settings['size']);
}
elseif ($delta == 4) {
$block['subject'] = t('Flickr recent photosets');
$block['content'] = _flickr_block_photosets($settings['user_id'], $settings['show_n'], $settings['size']);
}
elseif ($delta == 5) {
$block['subject'] = t('Flickr random photos');
$block['content'] = _flickr_block_random($settings['user_id'], $settings['show_n'], $settings['size']);
}
return $block;
}
}