| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 | 
							- <?php
 
- /**
 
-  * @file
 
-  * This is a helper module to add blocks and menu items and function
 
-  * to help deal with accounts that might have duplicate email addresses.
 
-  * It is based on the examples module block_example: an example outlining
 
-  * how a module can define blocks to be displayed on each page.
 
-  */
 
- /**
 
-  * Implements hook_views_api().
 
-  */
 
- function duplicatemail_views_api() {
 
-   return array(
 
-     'api' => 3,
 
-   );
 
- }
 
- /**
 
-  * Implements hook_block_info().
 
-  *
 
-  * This hook both declares what blocks are provided by the module, and
 
-  * generates the contents of the blocks themselves.
 
-  */
 
- function duplicatemail_block_info() {
 
-   return array(
 
-     'duplicatemail-list' => array(
 
-       'info' => t('Duplicate Mail: system wide, lists accounts that have the same email as another account'),
 
-       'cache' => DRUPAL_CACHE_GLOBAL,
 
-     )
 
-   );
 
- }
 
- /**
 
-  * Implements hook_block_view().
 
-  */
 
- function duplicatemail_block_view($delta) {
 
-   switch ($delta) {
 
-     case 'duplicatemail-list':
 
-       return array(
 
-         'subject' => t('Duplicate emails'),
 
-         'content' => duplicatemail_list(),
 
-       );
 
-       break;
 
-   }
 
- }
 
- /**
 
-  * A block content function.
 
-  */
 
- function duplicatemail_list() {
 
-   $mails = db_query('SELECT mail FROM {users} GROUP BY mail HAVING count(mail) > 1')->fetchCol();
 
-   // Bail out early if there are no duplicates.
 
-   if (!$mails) {
 
-     return t('All accounts have unique email addresses.');
 
-   }
 
-   // Grab all the user data for accounts with addresses identified as
 
-   // duplicates. This is a little convoluted, but it lets us grab all the user
 
-   // data in one shot.
 
-   $uids = db_select('users', 'u')
 
-     ->fields('u', array('uid'))
 
-     ->condition('mail', $mails, 'IN')
 
-     ->orderBy('mail')
 
-     ->execute()
 
-     ->fetchCol();
 
-   $duplicate_users = user_load_multiple($uids);
 
-   $duplicate_mails = array();
 
-   foreach ($duplicate_users as $duplicate_user) {
 
-     $duplicate_mails[$duplicate_user->mail][] = $duplicate_user;
 
-   }
 
-   // Turn the data we've got into markup.
 
-   $output = t('Accounts with duplicate email address:') . '<br />';
 
-   foreach ($duplicate_mails as $mail => $users) {
 
-     $output .= "$mail<br />";
 
-     foreach ($users as $duplicate_user) {
 
-       $output .= l($duplicate_user->name, "user/{$duplicate_user->uid}");
 
-       $output .= '<br />';
 
-     }
 
-   }
 
-   return $output;
 
- }
 
 
  |