Index: flickr.module
===================================================================
RCS file: /cvs/drupal/contributions/modules/flickr/flickr.module,v
retrieving revision 1.27
diff -u -b -p -r1.27 flickr.module
--- flickr.module       24 Jan 2007 18:42:16 -0000      1.27
+++ flickr.module       6 Feb 2007 18:00:27 -0000
@@ -45,11 +45,18 @@ function flickr_menu($may_cache) {
       'access' => TRUE,
       'type' => MENU_CALLBACK,
       'callback' => 'flickr_auth_callback');
+
+    $items[] = array(
+      'path' => 'flickr',
+      'access' => TRUE,
+      'type' => MENU_CALLBACK,
+      'callback' => 'flickr_photos',
+      'description' => t('Flickr photos of default user id.'));
   }
   else {
     if (arg(0) == 'flickr' && is_numeric(arg(1)) && arg(1) > 0) {
       $account = user_load(array('uid' => arg(1)));
-      if ($account !== FALSE && isset($account->flickr['nsid'])) {
+      if ($account !== FALSE && $account->flickr['nsid']) {
         $nsid = $account->flickr['nsid'];
         $admin_access = user_access('administer flickr');
         // let a user view their own account or all if they have permission
@@ -76,7 +83,7 @@ function flickr_menu($may_cache) {
       );

       }
-      elseif ($account !== FALSE && !isset($account->flickr['nsid'])) {
+      elseif ($account !== FALSE && !$account->flickr['nsid']) {
         drupal_set_message(t('%user does not have a Flickr account', array('%user'=>$account->name)), 'error');
         return '';
       }
@@ -115,6 +122,7 @@ function flickr_admin_settings() {
   // we need an api key before we can verify usernames
   if (!$form['flickr_api_key']['#default_value']) {
     $form['flickr_default_userid']['#disabled'] = TRUE;
+    $form['flickr_default_userid']['#description'] = t("An, optional, default Flickr username or user id. Disabled until a valid API Key is set.");
   }

   return system_settings_form($form);
@@ -212,15 +220,12 @@ function flickr_user($op, &$edit, &$acco
       if (($nsid = flickr_user_find_by_identifier($edit['flickr_identifier'])) === FALSE) {
         form_set_error('flickr_identifier', t('%ident is not a valid Flickr username, email, or NSID.', array('%ident' => $edit['flickr_identifier'])));
       }
-      else {
-        $account->flickr['nsid'] = $nsid;
-      }
     }
   }
   elseif ($op == 'insert' || $op == 'update') {
     db_query('DELETE FROM {flickr_users} WHERE uid=%d', $account->uid);
-    if (!empty($edit['flickr_identifier'])) {
-      db_query('INSERT INTO {flickr_users} (uid, nsid, identifier) VALUES (%d, \'%s\', \'%s\')', $account->uid, $account->flickr['nsid'], $edit['flickr_identifier']);
+    if (!empty($edit['flickr_identifier']) && ($nsid = flickr_user_find_by_identifier($edit['flickr_identifier']))) {
+      db_query('INSERT INTO {flickr_users} (uid, nsid, identifier) VALUES (%d, \'%s\', \'%s\')', $account->uid, $nsid, $edit['flickr_identifier']);
     }
     unset($account->flickr);
   }
@@ -237,7 +242,7 @@ function flickr_user($op, &$edit, &$acco
   }
 }

-function flickr_photos($uid) {
+function flickr_photos($uid=0) {
   drupal_add_css(drupal_get_path('module', 'flickr') .'/flickr.css');

   global $pager_page_array, $pager_total,$pager_total_items;
@@ -245,10 +250,29 @@ function flickr_photos($uid) {
   $element = 0;
   $pager_page_array[$element] = $_GET['page'] ? $_GET['page'] : '';

-  $photo_arr = flickr_photos_get($uid, array(), $pager_page_array[$element]+1);
+  if($uid === 0) {
+    $nsid = variable_get('flickr_default_userid', '');
+    if(!$nsid) {
+      drupal_set_message(t('No default user id is setup.'));
+      return FALSE;
+    }
+  }
+  else {
+    $account = user_load(array('uid' => $uid));
+    if ($account->flickr['nsid']) {
+      $nsid = $account->flickr['nsid'];
+    }
+    else {
+      drupal_set_message(t('%user does not have a Flickr account', array('%user'=>$account->name)), 'error');
+      return FALSE;
+    }
+  }

-  if ($photo_arr == FALSE) {
-      return '';
+  $photo_arr = flickr_photos_get($nsid, array(), $pager_page_array[$element]+1);
+
+  if (!isset($photo_arr['photos']) || empty($photo_arr['photos']) ) {
+    drupal_set_message(t('No accessible photos found for Flickr %userid', array('%userid'=> $nsid)));
+    return FALSE;
   }

   //set pager information we just acquired
@@ -259,15 +283,7 @@ function flickr_photos($uid) {
 }


-function flickr_photos_get($uid, $tags=array(), $page=1, $other_args=array()){
-  $account = user_load(array('uid' => $uid));
-  if (isset($account->flickr['nsid'])) {
-    $nsid = $account->flickr['nsid'];
-  }
-  else {
-    drupal_set_message(t('%user does not have a Flickr account', array('%user'=>$account->name)), 'error');
-    return FALSE;
-  }
+function flickr_photos_get($nsid, $tags=array(), $page=1, $other_args=array()){

   $args = array (
     'user_id' => $nsid,
@@ -295,10 +311,6 @@ function flickr_photos_get($uid, $tags=a
     flickr_set_error($search_response);
     return FALSE;
   }
-  if (!isset($search_response['photos']) || empty($search_response['photos']) ) {
-    drupal_set_message(t('%user has no accessible photos on Flickr', array('%user'=>$account->name)));
-    return FALSE;
-  }

   return $search_response;
 }
