vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 4.x Add-ons (https://vborg.vbsupport.ru/forumdisplay.php?f=245)
-   -   vBulletin CMS Widgets - Widget: CMS Most Viewed Articles This Week (https://vborg.vbsupport.ru/showthread.php?t=240904)

Wizza 05-07-2012 06:02 PM

This is my edited code, it has bullet point at the start and seperated with lines:

Code:

ob_start();
  // Current Week Most Viewed
  $starttime = time() - (3600*24*31);
  $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 5;
    ");
  $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><hr>';
  }
  $output = $outputbits;
  ob_end_clean();


The Rocketeer 05-15-2012 09:33 AM

any ideas on getting it to pull x number of articles from a specific category instead of view count?

BirdOPrey5 05-17-2012 07:29 PM

Quote:

Originally Posted by The Rocketeer (Post 2329514)
any ideas on getting it to pull x number of articles from a specific category instead of view count?

I don't know about category but if you check the database you can see the column for parentnode in the cms_node table. On my site the parentnode seems to be numerical number consistent with a category...

Then change the PHP code to:

Code:

  $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.parentnode = X
  ORDER BY
  cn.publishdate desc
  LIMIT Y
    ");
  $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>';
  }

Look at the 2 lines in red-
X = the parentnode you want (this will be a number)
Y = The max number of articles you want to pull from that parentnome (also a number.)

That *should* work, I haven't tested it at all but it is basic MySQL. I didn't change any of the php code.

The Rocketeer 05-18-2012 01:37 AM

Quote:

Originally Posted by BirdOPrey5 (Post 2330236)
I don't know about category but if you check the database you can see the column for parentnode in the cms_node table. On my site the parentnode seems to be numerical number consistent with a category...

Then change the PHP code to:

Code:

  $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.parentnode = X
  ORDER BY
  cni.publishdate desc
  LIMIT Y
    ");
  $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>';
  }

Look at the 2 lines in red-
X = the parentnode you want (this will be a number)
Y = The max number of articles you want to pull from that parentnome (also a number.)

That *should* work, I haven't tested it at all but it is basic MySQL. I didn't change any of the php code.

Thanks Joe.. :) But its throwing a Database error, something to do with the cni.publishdate I think :confused:

Code:

Database error in vBulletin 4.1.12:

Invalid SQL:

  SELECT DISTINCT
                ca.contentid,
                cn.publishdate,
                cn.nodeid,
                cni.title,
                cni.viewcount
  FROM
  cms_nodecategory cnc
  JOIN
  cms_node cn
  ON
  cnc.nodeid = cn.nodeid
  JOIN
  cms_article ca
  ON
  cn.contentid = ca.contentid
  JOIN
  cms_nodeinfo cni
  ON
  cn.nodeid = cni.nodeid
  WHERE
  cn.parentnode = 4
  ORDER BY
  cni.publishdate desc
  LIMIT 5;

MySQL Error  : Unknown column 'cni.publishdate' in 'order clause'
Error Number  : 1054
Request Date  : Thursday, May 17th 2012 @ 07:31:24 PM
Error Date    : Thursday, May 17th 2012 @ 07:31:25 PM
Script        : http://tomorrowsgaming.com/
Referrer      : http://tomorrowsgaming.com/
IP Address    : 122.61.154.171
Username      : xxxxx
Classname    : vB_Database
MySQL Version : 5.1.61-cll


BirdOPrey5 05-18-2012 11:58 AM

Sorry it should be ORDER BY cn.publishdate desc... I will edit the original code I posted.

The Rocketeer 05-18-2012 02:43 PM

:) Thanks Joe its working now! :up:

by the way, is there anyway to get the breadcrumbs working like the original one below?
https://vborg.vbsupport.ru/attachmen...4&d=1271855308


again thanks a lot, really appreciate it. :)

BirdOPrey5 05-18-2012 03:25 PM

Sorry I don't know what you mean by breadcrumbs? To me breadcrumbs were what is under the navbar saying where you are in a forum, it wouldn't have anything to do with a widget... ?

The Rocketeer 05-18-2012 04:14 PM

Sorry, I meant this https://vborg.vbsupport.ru/showpost....1&postcount=43

https://vborg.vbsupport.ru/attachmen...1&d=1316160231https://vborg.vbsupport.ru/attachmen...2&d=1316160376

I wasn''t too sure what its called, breadcrumb separators maybe? :erm:
See how the original has those small dots after each title, I think the original had these separators(?) but they disappeared or stopped working due to a vBulletin upgrade version incompatibility :confused:

by the way, how often will it refresh and add more new articles added in the category to the list? currently I have set it to display 12, and have since added a few articles to the category, but it's only showing 7 and hasn't updated the list with the other articles yet. if i added the cache time to say a few hrs or even a few days (in mins) will it auto refresh every few day or so?

Kraxell 05-18-2012 04:46 PM

Hey :)

is it possible to change the url?
<a href="content.php?r='.$article[nodeid].'">

The ID is not good for social-plugins. A foll url (/content/753-Sorcery) were better....

BirdOPrey5 05-18-2012 05:29 PM

Quote:

Originally Posted by The Rocketeer (Post 2330473)
Sorry, I meant this https://vborg.vbsupport.ru/showpost....1&postcount=43

https://vborg.vbsupport.ru/attachmen...1&d=1316160231https://vborg.vbsupport.ru/attachmen...2&d=1316160376

I wasn''t too sure what its called, breadcrumb separators maybe? :erm:
See how the original has those small dots after each title, I think the original had these separators(?) but they disappeared or stopped working due to a vBulletin upgrade version incompatibility :confused:

by the way, how often will it refresh and add more new articles added in the category to the list? currently I have set it to display 12, and have since added a few articles to the category, but it's only showing 7 and hasn't updated the list with the other articles yet. if i added the cache time to say a few hrs or even a few days (in mins) will it auto refresh every few day or so?

Those lines look like <hr> elements maybe... that's either a change you need to make to the template or a function of the style you are using- I'm not sure, styling isn't my strong point.

As for how often it refreshes there should be a cache time in the widget settings/configuration in the admin cp. It *should* refresh as often as you have it set.

You can go to Admin CP -> Maintenance -> Clear System Cache to force the refresh.


All times are GMT. The time now is 05:57 PM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01170 seconds
  • Memory Usage 1,762KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (4)bbcode_code_printable
  • (3)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (10)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • pagenav_page
  • pagenav_complete
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete