--- /var/www/drupalContribs/modules/weblink/weblink.module 2005-09-01 09:44:53.000000000 -0400 +++ weblink.module 2005-12-31 11:59:13.000000000 -0500 @@ -189,6 +189,7 @@ return array( 0 => array('info' => t("Top weblinks")), 1 => array('info' => t("Latest weblinks")), + 2 => array('info' => t("Random weblinks")) ); } elseif ($op == 'view') { @@ -198,17 +199,38 @@ 'subject' => t("Top weblinks"), 'content' => weblink_block_list('top') ); + break; case 1: return array( 'subject' => t("Latest weblinks"), 'content' => weblink_block_list('new') ); + break; + case 2: + return array( + 'subject' => t("Random weblinks"), + 'content' => weblink_block_list('random') + ); } } } function weblink_block_list($type = 'top') { $orderby = ($type == 'new') ? 'n.created' : 'w.clicks'; + if ($type == 'random') { + $result = db_query_range(db_rewrite_sql("SELECT n.nid, n.title, w.url, w.clicks FROM {node} n INNER JOIN {weblinks_node} wn on n.nid = wn.nid INNER JOIN {weblinks} w ON wn.lid = w.lid WHERE n.type = 'weblink' AND n.status = 1 AND n.moderate = 0 ORDER by $orderby DESC"),0, 1000); + while ($node = db_fetch_object($result)) { + $link_ary_all[] = array($node->title, $node->nid); + } + $link_keys = array_keys($link_ary_all); + shuffle($link_keys); + + for ($i==0 ; $i < 10 ; ++$i) { + $link_ary[] = l($link_ary_all[$link_keys[$i]][0], 'node/' . $link_ary_all[$link_keys[$i]][1]); + } + return theme('node_list', $link_ary); + } + return node_title_list(db_query_range(db_rewrite_sql("SELECT n.nid, n.title, w.url, w.clicks FROM {node} n INNER JOIN {weblinks_node} wn on n.nid = wn.nid INNER JOIN {weblinks} w ON wn.lid = w.lid WHERE n.type = 'weblink' AND n.status = 1 AND n.moderate = 0 ORDER by $orderby DESC"),0, 10)); }