by rsoden: User page condition.
authoryoung hahn
Tue, 8 Jun 2010 15:33:59 +0000 (15:33 +0000)
committeryoung hahn
Tue, 8 Jun 2010 15:33:59 +0000 (15:33 +0000)
context.core.inc
context.plugins.inc
plugins/context_condition_user_page.inc [new file with mode: 0644]

index 017b2bd..e635a68 100644 (file)
@@ -27,6 +27,11 @@ function context_context_registry() {
       'description' => t('Set this context when the current user has one of the selected role(s).'),
       'plugin' => 'context_condition_user',
     ),
+    'user_page' => array(
+      'title' => t('User page'),
+      'description' => t('Set this context when viewing a user page.'),
+      'plugin' => 'context_condition_user_page',
+    ),
     'menu' => array(
       'title' => t('Menu'),
       'description' => t('Set this context when any of the selected menu items belong to the current active menu trail.'),
@@ -266,6 +271,17 @@ function context_views_pre_view($view, $args) {
 }
 
 /**
+ * Implementation of hook_user().
+ */
+function context_user($op, &$edit, &$account, $category = NULL) {
+  if (in_array($op, array('view', 'form', 'register'))) {
+    if ($plugin = context_get_plugin('condition', 'user_page')) {
+      $plugin->execute($op);
+    }
+  }
+}
+
+/**
  * BLOCK HANDLING =====================================================
  */
 
index 1581580..bf9424c 100644 (file)
@@ -49,6 +49,14 @@ function _context_context_plugins() {
       'parent' => 'context_condition',
     ),
   );
+  $plugins['context_condition_user_page'] = array(
+    'handler' => array(
+      'path' => drupal_get_path('module', 'context') .'/plugins',
+      'file' => 'context_condition_user_page.inc',
+      'class' => 'context_condition_user_page',
+      'parent' => 'context_condition',
+    ),
+  );
   $plugins['context_condition_menu'] = array(
     'handler' => array(
       'path' => drupal_get_path('module', 'context') .'/plugins',
diff --git a/plugins/context_condition_user_page.inc b/plugins/context_condition_user_page.inc
new file mode 100644 (file)
index 0000000..ab62413
--- /dev/null
@@ -0,0 +1,20 @@
+<?php
+
+/**
+ * Expose user pages as a context condition.
+ */
+class context_condition_user_page extends context_condition {
+  function condition_values() {
+    $values = array();
+    $values['view'] = t('User profile');
+    $values['form'] = t('User account form');
+    $values['register'] = t('Registration form');
+    return $values;
+  }
+
+  function execute($op) {
+    foreach ($this->get_contexts($op) as $context) {
+      $this->condition_met($context);
+    }
+  }
+}