I have the below php block for e-xoops. I think the admin stuff can be pretty much ignored.
<?php
/**
* Description
*
* @param type $var description
* @return type description
*/
function b_news_top_show($options) {
global $db, $myts;
$block = array();
$block['content'] = "<small>";
if (!empty($options[4]) && is_numeric($options[4])) {
$extra = "AND topicid=".$options[4];
}
$sql = "
SELECT storyid, title, published, counter
FROM ".$db->prefix("storiesFP")."
WHERE published<".time()."
AND published>0
$extra
ORDER BY ".$options[0]." DESC";
if ( empty($options[3]) || !is_numeric($options[3]) ) {
$options[3] = 5;
}
if ( empty($options[2]) || !is_numeric($options[2]) ) {
$options[2] = 19;
}
$result = $db->query($sql, $options[3], 0);
while ( list($storyid, $title, $published, $counter) = $db->fetch_row($result) ) {
$title = $myts->makeTboxData4Show($title);
if ( strlen($title) > $options[2] ) {
$title = substr($title, 0, $options[2])."..";
}
$block['content'] .= "
<strong><big>·</big></strong>
<a href='".XOOPS_URL."/modules/news/article.php?storyid=".$storyid."'>".$title."</a>";
if ($options[0] == "published") {
$block['title'] = _MB_NEWS_TITLE4;
if ($options[1] == 1) {
$block['content'] .= " (".formatTimestamp($published, "s").")";
}
$block['content'] .= "<br />";
} elseif ($options[0] == "counter") {
$block['title'] = _MB_NEWS_TITLE5;
if ($options[1] == 1) {
$block['content'] .= " (".$counter.")";
}
$block['content'] .= "<br />";
}
}
$block['content'] .= "</small>";
return $block;
}
//---------------------------------------------------------------------------------------//
/**
* Description
*
* @param type $var description
* @return type description
*/
function b_news_top_edit($options) {
global $db;
$form = "<input type='hidden' name='options[0]' value='".$options[0]."' />";
$form .= "<table border='0'>";
// Show Date/Hits?
$form .= "<tr><td>"._MB_NEWS_SHOW." ".$options[0].":</td><td>";
$chk = "";
if ($options[1] == 0) {
$chk = " checked='checked'";
}
$form .= "<input type='radio' class='radio' name='options[1]' value='0'".$chk." />"._NO."";
$chk = "";
if ($options[1] == 1) {
$chk = " checked='checked'";
}
$form .= "<input type='radio' class='radio' name='options[1]' value='1'".$chk." />"._YES."</td></tr>";
// TRIM
$form .= "
<tr><td>"._MB_NEWS_TRIM."</td>
<td><input type='text' class='text' size='3' maxlength='2' name='options[2]' value='".$options[2]."'></td>
</tr>";
// LIMIT TO
$form .= "
<tr><td>"._MB_NEWS_LIMIT."</td>
<td><input type='text' class='text' name='options[3]' value='".$options[3]."' size='3' maxlength='2' /></td>
</tr>";
// LIMIT TO CATS
include_once(XOOPS_ROOT_PATH."/class/xoopstree.php");
$cats = new XoopsTree($db->prefix("topicsFP"), "topic_id", "topic_pid");
ob_start();
$cats->makeMySelBox("topic_title", "topic_title", $options[4], 1, "options[4]");
$content = ob_get_contents();
ob_end_clean();
$form .= "
<tr><td>"._MB_NEWS_LIMIT."</td>
<td>$content</td>
</tr>";
$form .= "</table>";
return $form;
}
?>
Basically that pulls the latest news from the database subject to how many I want to show in the admin area. How can I change this so that it just pulls a random entry instead of the latest story?
Appreciated,
Sammy.