--- premium.module 2010-12-17 09:13:44.000000000 +0200 +++ premium.module 2010-12-17 09:14:22.000000000 +0200 @@ -56,6 +56,9 @@ function premium_nodeapi(&$node, $op, $t case 'view': if (!$node->premium_access) { - $node->content['body']['#value'] = theme('premium_body', $node); + //don't redirect if we're indexing content via cron + $semaphore = variable_get('cron_semaphore', FALSE); + if ($semaphore) return; + $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'),