upgrade omega again
[indybay:drupal.git] / docs / sites / all / modules / contrib / context / plugins / context_condition_user_page.inc
1 <?php
2
3 /**
4  * Expose user pages as a context condition.
5  */
6 class context_condition_user_page extends context_condition {
7   function condition_values() {
8     $values = array();
9     $values['view'] = t('User profile');
10     $values['form'] = t('User account form');
11     $values['register'] = t('Registration form');
12     return $values;
13   }
14
15   function options_form($context) {
16     $defaults = $this->fetch_from_context($context, 'options');
17     return array(
18       'mode' => array(
19         '#title' => t('Active for'),
20         '#type' => 'select',
21         '#options' => array(
22           'all' => t('Any user'),
23           'current' => t('Only the current user'),
24           'other' => t('Only other users'),
25         ),
26         '#default_value' => isset($defaults['mode']) ? $defaults['mode'] : 'all',
27       ),
28     );
29   }
30
31   function execute($account, $op) {
32     global $user;
33     foreach ($this->get_contexts($op) as $context) {
34       if ($op === 'register') {
35         $this->condition_met($context);
36       }
37       else {
38         $options = $this->fetch_from_context($context, 'options');
39         $mode = !empty($options['mode']) ? $options['mode'] : 'all';
40         switch ($options['mode']) {
41           case 'current':
42             if ($account->uid == $user->uid) {
43               $this->condition_met($context);
44             }
45             break;
46           case 'other':
47             if ($account->uid != $user->uid) {
48               $this->condition_met($context);
49             }
50             break;
51           case 'all':
52           default:
53             $this->condition_met($context);
54             break;
55         }
56       }
57     }
58   }
59 }