Go Back   vb.org Archive > vBulletin Modifications > vBulletin 4.x Modifications > vBulletin 4.x Add-ons
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
Widget: CMS Most Viewed Articles This Week Details »»
Widget: CMS Most Viewed Articles This Week
Version: 1.02, by reefland reefland is offline
Developer Last Online: Jan 2012 Show Printable Version Email this Page

Category: vBulletin CMS Widgets - Version: 4.0.6 Rating:
Released: 04-20-2010 Last Update: Never Installs: 83
Re-useable Code Translations  
No support by the author.

Most Viewed Articles This Week

1. Installation

1. Goto Admincp->vBullietin CMS->Widgets->Create New Widget
2. Choose PHP Direct Execution as Widget's Type
3. Insert a title. This Week's Most Popular for example.
4. Click Save
5. Click Configure on the right of the newly created widget.
6. Remove the default code that appears.
7. Copy and Paste the code in item 2 below.
8. Save
9. Goto Admincp->vBullietin CMS->Layout Manager
10. Add the Widget to your Layout
11. Click Save

2. PHP Code
Code:
      // Current Week Most Viewed
  $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
  AND
  cn.publishdate>'".$starttime."'
  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 href="content.php?r='.$article[nodeid].'">'.$article[title].'</a> </h4></div>';
  }


3. Change Log


[Version 1.02 9-23-2010]
Removed unnecessary ob*() calls.
Changed output_bits to just output.

[Version 1.01 4-21-2010]
Fixed a bug show the correct URL was used for each article.

Screenshots

File Type: gif widget_screen_shot.gif (6.2 KB, 0 views)

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.
Благодарность от:
romaszek

Comments
  #52  
Old 05-07-2012, 06:02 PM
Wizza Wizza is offline
 
Join Date: Mar 2012
Posts: 12
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

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();
Reply With Quote
  #53  
Old 05-15-2012, 09:33 AM
The Rocketeer's Avatar
The Rocketeer The Rocketeer is offline
 
Join Date: Jun 2010
Posts: 319
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

any ideas on getting it to pull x number of articles from a specific category instead of view count?
Reply With Quote
  #54  
Old 05-17-2012, 07:29 PM
BirdOPrey5's Avatar
BirdOPrey5 BirdOPrey5 is offline
Senior Member
 
Join Date: Jun 2008
Location: New York
Posts: 10,610
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by The Rocketeer View Post
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.
Reply With Quote
Благодарность от:
The Rocketeer
  #55  
Old 05-18-2012, 01:37 AM
The Rocketeer's Avatar
The Rocketeer The Rocketeer is offline
 
Join Date: Jun 2010
Posts: 319
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by BirdOPrey5 View Post
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

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
Reply With Quote
  #56  
Old 05-18-2012, 11:58 AM
BirdOPrey5's Avatar
BirdOPrey5 BirdOPrey5 is offline
Senior Member
 
Join Date: Jun 2008
Location: New York
Posts: 10,610
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Sorry it should be ORDER BY cn.publishdate desc... I will edit the original code I posted.
Reply With Quote
  #57  
Old 05-18-2012, 02:43 PM
The Rocketeer's Avatar
The Rocketeer The Rocketeer is offline
 
Join Date: Jun 2010
Posts: 319
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks Joe its working now! :up:

by the way, is there anyway to get the breadcrumbs working like the original one below?



again thanks a lot, really appreciate it.
Reply With Quote
  #58  
Old 05-18-2012, 03:25 PM
BirdOPrey5's Avatar
BirdOPrey5 BirdOPrey5 is offline
Senior Member
 
Join Date: Jun 2008
Location: New York
Posts: 10,610
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

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... ?
Reply With Quote
  #59  
Old 05-18-2012, 04:14 PM
The Rocketeer's Avatar
The Rocketeer The Rocketeer is offline
 
Join Date: Jun 2010
Posts: 319
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

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



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

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?
Reply With Quote
  #60  
Old 05-18-2012, 04:46 PM
Kraxell's Avatar
Kraxell Kraxell is offline
 
Join Date: Jun 2010
Location: Germany
Posts: 481
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

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....
Reply With Quote
Благодарность от:
The Rocketeer
  #61  
Old 05-18-2012, 05:29 PM
BirdOPrey5's Avatar
BirdOPrey5 BirdOPrey5 is offline
Senior Member
 
Join Date: Jun 2008
Location: New York
Posts: 10,610
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

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



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

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.
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 08:40 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.07138 seconds
  • Memory Usage 2,361KB
  • Queries Executed 28 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (5)bbcode_code
  • (3)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (4)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (11)post_thanks_box
  • (3)post_thanks_box_bit
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (3)post_thanks_postbit
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (1)postbit_attachment
  • (11)postbit_onlinestatus
  • (11)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.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/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • fetch_musername
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • post_thanks_function_fetch_thanks_bit_start
  • post_thanks_function_show_thanks_date_start
  • post_thanks_function_show_thanks_date_end
  • post_thanks_function_fetch_thanks_bit_end
  • post_thanks_function_fetch_post_thanks_template_start
  • post_thanks_function_fetch_post_thanks_template_end
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_attachment
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete