Index: premium.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/premium/premium.module,v retrieving revision 1.10 diff -u -p -r1.10 premium.module --- premium.module 19 Jul 2008 15:27:30 -0000 1.10 +++ premium.module 19 Jul 2008 15:51:26 -0000 @@ -55,32 +55,32 @@ function premium_nodeapi(&$node, $op, $t return; case 'load': - $ts = time(); - return array('premium' => (int) db_result(db_query( - "SELECT 1 FROM {premium} WHERE nid = %d - AND ( start_ts = 0 and end_ts > %d) - OR ( start_ts < %d AND end_ts = 0) - OR ( start_ts = 0 AND end_ts = 0)", $node->nid, $ts, $ts))); - - case 'view': - $node->premium_access = true; - global $user; + $node->premium_access = false; if (!$node->premium || user_access('access premium content')) { - return; // not premium content or user has privileges + $node->premium_access = true; } - if ($teaser) { - return; // not viewing the body + if ($teaser) { $node->premium_access = true; } foreach (module_implements('premium_access') as $name) { - $function = $name .'_premium_access'; + $function = $name.'_premium_access'; if ($function($user, $node)) { - return; // access granted explicitly + $node->premium_access = true; } } - - $node->premium_access = false; - $node->content['body']['#value'] = theme('premium_body', $node); + + $ts = time(); + return array('premium_access' => $node->premium_access, + 'premium' => (int) db_result(db_query( + "SELECT 1 FROM {premium} WHERE nid = %d + AND ( start_ts = 0 and end_ts > %d) + OR ( start_ts < %d AND end_ts = 0) + OR ( start_ts = 0 AND end_ts = 0)", + $node->nid, $ts, $ts))); + case 'view': + if(!$node->premium_access) { + $node->content['body']['#value'] = theme('premium_body', $node); + } } return; }