Quote:
Originally Posted by Lynne
Is that all that you put into the widget? If so, you are right - it's not going to work. All you've done is a select statement. You've done nothing with the results at all. You should go download some other widgets from here that query the database and see how they then take the results and spit them out into the widget. (And you should not need to do any ob_start or ob_end type statements.)
edit: Oh, I see you posted all of it in the first post. Still, no ob_stuff needed. Also, the format for class is class="something" No spaces around the equal sign.
|
Okay, so added
PHP Code:
$output = '';
while($article = vB::$db->fetch_array($mostpopularweek_get))
{
$output .='<div class = "cms_widget_post_bit"><h4 class="cms_widget_post_header"><a href="content.php?r='.$article[nodeid].'">'.$article[title].'</a> </h4></div>';
}
So the code now reads:
PHP Code:
$starttime = time() - (3600*24*7);
$mostpopularweek_get = vB::$db->query_read("
SELECT DISTINCT
ca.contentid,
cn.publishdate,
cn.nodeid,
cni.title,
cni.viewcount
FROM
".TABLE_PREFIX."cms_nodecategory cnc
JOIN
".TABLE_PREFIX."cms_node cn
ON
cnc.nodeid = cn.nodeid
JOIN
".TABLE_PREFIX."cms_article ca
ON
cn.contentid = ca.contentid
JOIN
".TABLE_PREFIX."cms_nodeinfo cni
ON
cn.nodeid = cni.nodeid
WHERE
cn.setpublish = 1
ORDER BY
cni.viewcount desc LIMIT 5
");
$output = '';
while($article = vB::$db->fetch_array($mostpopularweek_get))
{
$output .='<div class = "cms_widget_post_bit"><h4 class="cms_widget_post_header"><a rel="nofollow" href="content.php?r='.$article[nodeid].'">'.$article[title].'</a> </h4></div>';
}
But I'm still getting nothing in the widget.
Where do I add
PHP Code:
class="something"
and will that make it work. I have no coding experiance, so I'm totally in the dark.
--------------- Added [DATE]1291114050[/DATE] at [TIME]1291114050[/TIME] ---------------
Okay, rewrote, finally fixed it.
For anyone that wants to show the articles with the highest views of all time in a widget, here's the code.
PHP Code:
ob_start();
// Current Week Most Viewed
$mostpopularweekget = vB::$db->query_read("
select ".TABLE_PREFIX."cms_node.nodeid as nodeid, ".TABLE_PREFIX."cms_nodeinfo.title as title FROM ".TABLE_PREFIX."cms_node, ".TABLE_PREFIX."cms_nodeinfo where ".TABLE_PREFIX."cms_node.nodeid = ".TABLE_PREFIX."cms_nodeinfo.nodeid AND ".TABLE_PREFIX."cms_node.setpublish = 1 AND ".TABLE_PREFIX."cms_node.publishdate >'".$starttime."' ORDER BY ".TABLE_PREFIX."cms_nodeinfo.viewcount desc LIMIT 10;
");
$outputbits = '';
while($article = vB::$db->fetch_array($mostpopularweekget))
{
$outputbits .='<div class = "cms_widget_post_bit"><h4 class = "cms_widget_post_header">
<a rel="nofollow" href="content.php?r='.$article[nodeid].'">'.$article[title].'</a> </h4> </div>';
}
$output = $outputbits;
ob_end_clean();
Works like a dream, the limit for the amount of articles you want to show, and add a startime at the top if you want it daily, weekly or monthly.