diff -Naur /Users/acs/premium/premium.module premium/premium.module --- /Users/acs/premium/premium.module 2009-01-16 16:30:39.000000000 -0800 +++ premium/premium.module 2009-01-16 16:54:00.000000000 -0800 @@ -56,7 +56,19 @@ case 'view': if (!$node->premium_access) { - $node->content['body']['#value'] = theme('premium_body', $node); + $redirect_url = variable_get('premium_redirect_url', FALSE); + if ($redirect_url) { + $premium_message = variable_get('premium_message', ''); + $override_message = module_invoke_all('premium_message', $premium_message, $node); + if ($override_message) { + $premium_message = $override_message; + } + drupal_set_message($premium_message); + drupal_goto($redirect_url, 'destination='. url('node/'. $node->nid)); + } + else { + $node->content['body']['#value'] = theme('premium_body', $node); + } } return; } @@ -184,6 +196,13 @@ '#description' => t('Update all existing nodes of the types selected above with the new premium settings.'), ); + $form['premium_redirect_url'] = array( + '#type' => 'textfield', + '#title' => t('Premium Redirect Url'), + '#default_value' => variable_get('premium_redirect_url', ''), + '#description' => ('If set, Premium module will redirect to the url specified. If Premium body text is set, that message will be shown in a message on the page being redirected to. The redirect page is also passed a destination -- useful if you are redirecting to a login page.') + ); + $form['premium_message'] = array( '#type' => 'textarea', '#title' => t('Premium body text'),