$flickr_entry) { $blocks[$delta]['info'] = "Flickr entry : ".$flickr_entry['name'] ; } } 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']); $flickr_entries = variable_get('flickr_entries',''); $show_n = $flickr_entries[$delta]['show_n'] ? $flickr_entries[$delta]['show_n'] : 4; $size = $flickr_entries[$delta]['size'] ? $flickr_entries[$delta]['size'] : 's'; $user_id = $flickr_entries[$delta]['user_id'] ? $flickr_entries[$delta]['user_id'] : variable_get('flickr_default_userid',''); $settings = array('user_id' => $user_id, 'show_n' => $show_n, 'size' => $size); $form = array(); $form["flickr_block_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_show_n"] = array( '#type' => 'select', '#options' => $count_options, '#title' => t('Show the last n photos'), '#default_value' => $settings['show_n'], '#description' => t("The block will display this many photos.") ); $form["flickr_block_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.") ); return $form; case 'save': $flickr_entries = variable_get('flickr_entries',array()); $flickr_entries[$delta]['user_id'] = $edit["flickr_block_user_id"]; $flickr_entries[$delta]['show_n'] = (int)$edit["flickr_block_show_n"]; $flickr_entries[$delta]['size'] = $edit["flickr_block_size"]; variable_set('flickr_entries',$flickr_entries); break; case 'view': default: $flickr_entries = variable_get('flickr_entries',''); $user_id = $flickr_entries[$delta]['user_id'] ? $flickr_entries[$delta]['user_id'] : variable_get('flickr_default_userid', ''); $show_n = $flickr_entries[$delta]['show_n'] ? $flickr_entries[$delta]['show_n'] : 4; $size = $flickr_entries[$delta]['size'] ? $flickr_entries[$delta]['size'] : 's'; $settings = array('user_id' => $user_id, 'show_n' => $show_n, 'size' => $size); $block['subject'] = t('Flickr entry : '.$flickr_entries[$delta]['name']); $block['content'] = _flickr_entry($settings['user_id'], $settings['show_n'], $settings['size'], $flickr_entries[$delta]); return $block; } } function _flickr_block_photosets($nsid, $show_n, $size) { $photosets = flickr_photoset_get_list($nsid); $output = ''; $to = min($show_n, count($photosets)); for ($i = 0; $i < $to; $i++) { $output .= theme('flickr_block_photoset', $photosets[$i], $nsid, $size); } return $output; } function theme_flickr_block_photoset($ps, $owner, $size) { return theme_flickr_photoset($ps, $owner, $size); } function theme_flickr_block_photo($p, $size = NULL) { return theme_flickr_photo($p, $size); } function _flickr_block_random($nsid, $show_n, $size, $tags = "") { $request = array('user_id' => $nsid,'per_page' => $show_n ,'tags' => $tags); $result = flickr_request('flickr.photos.search', $request); $page_count = $result['photos']['pages']; $to = min($show_n, $result['photos']['total']); $output = ''; for ($i = 0; $i < $to; $i++) { sleep(0.125); // request a random page $request['page'] = rand(1, $page_count - 1); $result = flickr_request('flickr.photos.search', $request); // then select a random photo $index = rand(0, count($result['photos']['photo']) - 1); $output .= theme('flickr_photo', $result['photos']['photo'][$index], $size); } return $output ; } function _flickr_block_recent($nsid, $show_n, $size, $tags = "") { $request = array('user_id' => $nsid, 'per_page' => $show_n, 'tags' => $tags); $result = flickr_request('flickr.photos.search', $request); $output = ''; foreach ((array)$result['photos']['photo'] as $photo) { $output .= theme('flickr_photo', $photo, $size); } return $output; } function _flickr_entry($user_id, $show_n, $size, $flickr_entry = array()) { $tags = $flickr_entry['tags'] ; if (($flickr_entry['genre'] == 'ra') && ($flickr_entry['scope'] == 'all')) { return _flickr_block_random( NULL,$show_n, $size,$tags); } if (($flickr_entry['genre'] == 're') && ($flickr_entry['scope'] == 'all')) { return _flickr_block_recent(NULL,$show_n, $size,$tags); } if (($flickr_entry['genre'] == 'ra') && ($flickr_entry['scope'] == 'you')) { return _flickr_block_random($user_id, $show_n, $size, $tags); } if (($flickr_entry['genre'] == 're') && ($flickr_entry['scope'] == 'you')) { return _flickr_block_recent($user_id,$show_n, $size,$tags); } }