| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248 | 
							- <?php
 
- /**
 
-  * @file
 
-  * Manifest module.
 
-  * Keep lists of users.
 
-  *
 
-  */
 
- module_load_include('inc', 'manifest', 'manifest.crud');
 
- /**
 
-  * Implements hook_permission().
 
-  */
 
- function manifest_permission() {
 
-   return array(
 
-     'administer manifest' => array(
 
-       'title' => t('Administer manifest'),
 
-     ),
 
-   );
 
- }
 
- /**
 
-  * Implements hook_menu().
 
-  */
 
- function manifest_menu() {
 
-   $items = array();
 
-   // Level 1
 
-   $items['admin/people/manifest'] = array(
 
-     'title' => 'Manifests',
 
-     'page callback' => 'manifest_admin_list',
 
-     'access arguments' => array('administer manifest'),
 
-     'type' => MENU_LOCAL_TASK,
 
-     'description' => 'Configure Manifest user lists.',
 
-     'weight' => 0,
 
-     'file' => 'manifest.pages.inc',
 
-   );
 
-   // Level 2
 
-   $items['admin/people/manifest/list'] = array(
 
-     'title' => 'Manifests',
 
-     'page callback' => 'manifest_admin_list',
 
-     'access arguments' => array('administer manifest'),
 
-     'type' => MENU_DEFAULT_LOCAL_TASK,
 
-     'description' => 'Configure Manifest user lists.',
 
-     'weight' => 1,
 
-     'file' => 'manifest.pages.inc',
 
-   );
 
-   $items['admin/people/manifest/add'] = array(
 
-     'title' => 'Add manifest',
 
-     'page callback' => 'drupal_get_form',
 
-     'page arguments' => array('manifest_admin_edit'),
 
-     'access arguments' => array('administer manifest'),
 
-     'type' => MENU_LOCAL_ACTION,
 
-     'description' => 'Create Manifest user list.',
 
-     'weight' => 2,
 
-     'file' => 'manifest.pages.inc',
 
-     'context' => MENU_CONTEXT_PAGE,
 
-   );
 
-   // Level 3
 
-   $items['admin/people/manifest/%manifest'] = array(
 
-     'title' => 'Edit manifest',
 
-     'page callback' => 'drupal_get_form',
 
-     'page arguments' => array('manifest_admin_edit', 3),
 
-     'access arguments' => array('administer manifest'),
 
-     'type' => MENU_NORMAL_ITEM,
 
-     'weight' => 7,
 
-     'file' => 'manifest.pages.inc',
 
-   );
 
-   $items['admin/people/manifest/%manifest/edit'] = array(
 
-     'title' => 'Edit manifest',
 
-     'page callback' => 'drupal_get_form',
 
-     'page arguments' => array('manifest_admin_edit', 3),
 
-     'access arguments' => array('administer manifest'),
 
-     'type' => MENU_DEFAULT_LOCAL_TASK,
 
-     'weight' => 7,
 
-     'file' => 'manifest.pages.inc',
 
-     'context' => MENU_CONTEXT_PAGE,
 
-   );
 
-   $items['admin/people/manifest/%manifest/role'] = array(
 
-     'title' => 'Manifest roles',
 
-     'page callback' => 'drupal_get_form',
 
-     'page arguments' => array('manifest_admin_role', 3),
 
-     'access arguments' => array('administer manifest'),
 
-     'type' => MENU_LOCAL_TASK,
 
-     'weight' => 4,
 
-     'file' => 'manifest.pages.inc',
 
-     'context' => MENU_CONTEXT_PAGE,
 
-   );
 
-   $items['admin/people/manifest/%manifest/delete'] = array(
 
-     'title' => 'Delete manifest',
 
-     'page callback' => 'drupal_get_form',
 
-     'page arguments' => array('manifest_admin_delete', 3),
 
-     'access arguments' => array('administer manifest'),
 
-     'type' => MENU_LOCAL_TASK,
 
-     'weight' => 8,
 
-     'file' => 'manifest.pages.inc',
 
-     'context' => MENU_CONTEXT_PAGE,
 
-   );
 
-   $items['admin/people/manifest/%manifest/ip'] = array(
 
-     'title' => 'Manifest IP addresses',
 
-     'page callback' => 'drupal_get_form',
 
-     'page arguments' => array('manifest_admin_ip', 3),
 
-     'access arguments' => array('administer manifest'),
 
-     'type' => MENU_LOCAL_TASK,
 
-     'weight' => 5,
 
-     'file' => 'manifest.pages.inc',
 
-     'context' => MENU_CONTEXT_PAGE,
 
-   );
 
-   // Level 4
 
-   $items['admin/people/manifest/%manifest/ip/%'] = array(
 
-     'title' => 'Manifest IP addresses',
 
-     'page callback' => 'drupal_get_form',
 
-     'page arguments' => array('manifest_admin_ip', 3),
 
-     'access arguments' => array('administer manifest'),
 
-     'type' => MENU_NORMAL_ITEM,
 
-     'weight' => 6,
 
-     'file' => 'manifest.pages.inc',
 
-     'context' => MENU_CONTEXT_PAGE,
 
-   );
 
-   $items['admin/people/manifest/%manifest/ip/%/delete'] = array(
 
-     'title' => 'Delete IP address',
 
-     'page callback' => 'drupal_get_form',
 
-     'page arguments' => array('manifest_admin_ip_delete', 3, 5),
 
-     'access arguments' => array('administer manifest'),
 
-     'type' => MENU_LOCAL_TASK,
 
-     'weight' => 6,
 
-     'file' => 'manifest.pages.inc',
 
-     'context' => MENU_CONTEXT_PAGE,
 
-   );
 
-   return $items;
 
- }
 
- /**
 
-  * Implements hook_user_operations().
 
-  */
 
- function manifest_user_operations() {
 
-   $operations = array();
 
-   $manifests = manifest_load_multiple();
 
-   if ($manifests) {
 
-      foreach ($manifests as $manifest) {
 
-        if (!empty($manifest->settings['user']['operations'])) {
 
-          $operations['manifest_add_' . $manifest->name] = array(
 
-            'label' => t('Add users to !manifest manifest', array('!manifest' => manifest_title($manifest))),
 
-            'callback' => 'manifest_user_operations_add',
 
-            'callback arguments' => array($manifest->name),
 
-          );
 
-          $operations['manifest_remove_' . $manifest->name] = array(
 
-            'label' => t('Remove users from !manifest manifest', array('!manifest' => manifest_title($manifest))),
 
-            'callback' => 'manifest_user_operations_remove',
 
-            'callback arguments' => array($manifest->name),
 
-          );
 
-        }
 
-      }
 
-   }
 
-   return $operations;
 
- }
 
- /**
 
-  * Callback function for hook_user_operations().
 
-  */
 
- function manifest_user_operations_add($accounts, $manifest_name) {
 
-   foreach ($accounts as $uid) {
 
-     manifest_account_save($uid, $manifest_name);
 
-   }
 
- }
 
- /**
 
-  * Callback function for hook_user_operations().
 
-  */
 
- function manifest_user_operations_remove($accounts, $manifest_name) {
 
-   foreach ($accounts as $uid) {
 
-     manifest_account_delete($uid, $manifest_name);
 
-   }
 
- }
 
- /**
 
-  * Implements hook_form_FORM_ID_alter().
 
-  */
 
- function manifest_form_user_account_form_alter(&$form, &$form_state) {
 
-   if (user_access('administer manifest')) {
 
-     $account = $form['#user'];
 
-     $manifests = manifest_load_multiple();
 
-     $manifest_options = array();
 
-     if ($manifests) {
 
-       foreach ($manifests as $manifest) {
 
-         if (!empty($manifest->settings['user']['profile'])) {
 
-           $manifest_options[$manifest->name] = manifest_title($manifest);
 
-         }
 
-       }
 
-     }
 
-     if (!empty($manifest_options)) {
 
-       $default = array();
 
-       $entries = manifest_account_load($account->uid);
 
-       if ($entries) {
 
-         foreach ($entries as $entry) {
 
-           $default[] = $entry->manifest;
 
-         }
 
-       }
 
-       $form['manifest'] = array(
 
-         '#type' => 'fieldset',
 
-         '#title' => t('Manifest'),
 
-       );
 
-       $form['manifest']['manifests'] = array(
 
-         '#type' => 'checkboxes',
 
-         '#title' => t('Manifests'),
 
-         '#options' => $manifest_options,
 
-         '#default_value' => $default,
 
-         '#description' => t('Add this user to manifests.'),
 
-       );
 
-     }
 
-   }
 
- }
 
- /**
 
-  * Implements hook_user_update().
 
-  */
 
- function hook_user_update(&$edit, $account, $category) {
 
-   if (!empty($edit['manifests'])) {
 
-     if (is_string($edit['manifests'])) {
 
-       $edit['manifests'] = array($edit['manifests'] => $edit['manifests']);
 
-     }
 
-     foreach ($edit['manifests'] as $manifest_name => $manifest) {
 
-       if ($manifest) {
 
-         manifest_account_save($account->uid, $manifest_name);
 
-       }
 
-       else {
 
-         manifest_account_delete($account->uid, $manifest_name);
 
-       }
 
-     }
 
-     unset($edit['manifests']);
 
-   }
 
- }
 
- /**
 
-  * Get the display title of a manifest.
 
-  */
 
- function manifest_title($manifest) {
 
-   if (!empty($manifest->settings['title'])) {
 
-     return check_plain($manifest->settings['title']);
 
-   }
 
-   return drupal_ucfirst(check_plain($manifest->name));
 
- }
 
- // @todo Make a page that lists users.
 
 
  |