? session_api.wwsgd.patch.txt Index: wwsgd.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/wwsgd/wwsgd.module,v retrieving revision 1.1.2.1.2.2 diff -u -r1.1.2.1.2.2 wwsgd.module --- wwsgd.module 17 Nov 2009 17:36:06 -0000 1.1.2.1.2.2 +++ wwsgd.module 30 Nov 2009 17:29:12 -0000 @@ -1,5 +1,28 @@ sid = $sid; + $record->visits = $visits; + $existing_sid = db_result(db_query("SELECT sid FROM wwsgd_visits WHERE sid = %d", $sid)); + if ($existing_sid) { + $update = 'sid'; + db_query("UPDATE {wwsgd_visits} SET visits = %d WHERE sid = %d", $visits, $sid); + } + else { + db_query("INSERT INTO {wwsgd_visits} (visits, sid) VALUES (%d, %d)", $visits, $sid); + } +} + function wwsgd_block($op = 'list', $delta = 0, $edit = array()) { $wwsgd_block_text_default = "Is this your first time visiting? Consider subscribing to this site's RSS feed to get updates."; switch ($op) { @@ -9,7 +32,8 @@ 'info' => 'What Would Seth Godin Do?', 'status' => '', 'weight' => 0, - 'visibility' => 1 + 'visibility' => 1, + 'cache' => BLOCK_NO_CACHE, ); return $blocks; break; @@ -35,15 +59,16 @@ break; case 'view': $wwsgd_block = array(); - $wwsgd_visits = $_COOKIE['wwsgd_visits']; + $session_id = session_api_get_sid(); + $wwsgd_visits = wwsgd_get_visits($session_id); + $wwsgd_block_visits_setting = variable_get('wwsgd_max_visits', 5); - $wwsgd_block_text = variable_get('wwsgd_block_text'); - if ($_COOKIE['wwsgd_visits'] < $wwsgd_block_visits_setting) { + if ($wwsgd_visits < $wwsgd_block_visits_setting) { + $wwsgd_block_text = variable_get('wwsgd_block_text', $wwsgd_block_text_default); $wwsgd_block['content'] = $wwsgd_block_text; - $wwsgd_visits = $_COOKIE['wwsgd_visits'] + 1; + $wwsgd_visits = $wwsgd_visits + 1; + wwsgd_set_visits($session_id, $wwsgd_visits); } - $wwsgd_host = $_SERVER['HTTP_HOST']; - setcookie('wwsgd_visits', $wwsgd_visits, time()+60*60*24*365, '/', $wwsgd_host); return $wwsgd_block; break; }