Go Back   vb.org Archive > vBulletin Modifications > vBulletin 4.x Modifications > vBulletin 4.x Add-ons

Reply
 
Thread Tools
Show Full CMS Article in Comments Thread Details »»
Show Full CMS Article in Comments Thread
Version: 1.00, by Lynne Lynne is offline
Developer Last Online: Oct 2022 Show Printable Version Email this Page

Category: Show Thread Enhancements - Version: 4.0.8 Rating:
Released: 11-26-2010 Last Update: Never Installs: 58
Uses Plugins
Re-useable Code  
No support by the author.

This is more of an example than a modification. I wrote this quick plugin for someone and thought I would share it. It's something someone can take and build on. All it does is if you look at the CMS Article thread in your CMS Comments forum, the content of the CMS Article is shown under the blurb "You can view the page at.....". This is ONLY for Articles - not Static Pages or PHP Direct Evaluation content types. Someone can build on this and do those if they want. The person I wrote this for had forms in their articles and needed the submit button to be disabled, so this plugin does that also.

Like I said - this is more of an example. I don't plan to do anything more with it and I'm not helping with modifying it for your own use. Use it however you want.

This adds one query to the threads in the CMS Comments forum.

To install....

Create a Plugin
Hook Location - postbit_display_complete
Title - Show Full CMS Article
Plugin PHP Code -

PHP Code:
if (THIS_SCRIPT == 'showthread' AND $this->thread['forumid'] == $this->registry->options['vbcmsforumid'] AND $this->post['postcount'] == 1) {

$result $this->registry->db->query_first("
    SELECT cms_article.pagetext, cms_article.threadid, cms_article.htmlstate 
    FROM " 
TABLE_PREFIX "cms_article AS cms_article 
    INNER JOIN " 
TABLE_PREFIX "cms_node AS cms_node ON (cms_node.contentid = cms_article.contentid) 
    INNER JOIN " 
TABLE_PREFIX "cms_nodeinfo AS cms_nodeinfo ON (cms_nodeinfo.nodeid = cms_node.nodeid) 
    WHERE cms_nodeinfo.associatedthreadid = "
$this->thread['threadid']. "
        "
);

$bbcode_parser = new vBCms_BBCode_HTML(vB::$vbulletin,  vBCms_BBCode_HTML::fetchCmsTags());

$pagetext fetch_censored_text($bbcode_parser->do_parse($result['pagetext'],true,$result['htmlstate']));

$find 'type="submit"';
$replace 'type="submit" disabled';
$pagetext str_replace ($find$replace$pagetext);

$result['previewtext'] = $pagetext;
$this->post['message'] .= '<br />*********<br />'$result['previewtext'];

CMS Page:

CMS Comment Thread:


If you ONLY want to show the full article to users, not guests, then change this condition (thanks to mattysheff):
PHP Code:
if (THIS_SCRIPT == 'showthread' AND $this->thread['forumid'] ==  $this->registry->options['vbcmsforumid'] AND  $this->post['postcount'] == 1
to this:
PHP Code:
if (THIS_SCRIPT == 'showthread' AND $show['member'] AND  $this->thread['forumid'] == $this->registry->options['vbcmsforumid'] AND $this->post['postcount'] == 1

Download Now

File Type: txt show full cms article.txt (2.0 KB, 137 views)

Screenshots

File Type: png article - cms.png (39.2 KB, 0 views)
File Type: png article - thread.png (63.3 KB, 0 views)

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.
3 благодарности(ей) от:
Paul M, tbworld, Toorak Times

Comments
  #32  
Old 08-11-2011, 02:42 PM
Alp Ozdemir Alp Ozdemir is offline
 
Join Date: Sep 2004
Posts: 15
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

youtube links rendered in the messages but images is not, how can I show the images?
Reply With Quote
  #33  
Old 08-11-2011, 03:05 PM
Lynne's Avatar
Lynne Lynne is offline
 
Join Date: Sep 2004
Location: California/Idaho
Posts: 41,180
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Alp Ozdemir View Post
youtube links rendered in the messages but images is not, how can I show the images?
You would need to modify the code to actually get the images to show. As I said at the top of the thread - this is more of an example of how you can do this. So, modify the code however you need it for your needs.
Reply With Quote
  #34  
Old 08-21-2011, 07:18 PM
GamersChallenge GamersChallenge is offline
 
Join Date: Aug 2011
Posts: 43
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

lol at everyone asking for the attachments, I guess I'll join the team.

please please please
Reply With Quote
  #35  
Old 08-22-2011, 05:49 PM
deverill2010 deverill2010 is offline
 
Join Date: Jan 2011
Posts: 412
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Lynne as you've put reusable code, I have made a request for someone to modify it to show images - https://vborg.vbsupport.ru/showthrea...59#post2236659

I hope you don't mind as I really need this.
Reply With Quote
  #36  
Old 08-23-2011, 12:55 AM
Lynne's Avatar
Lynne Lynne is offline
 
Join Date: Sep 2004
Location: California/Idaho
Posts: 41,180
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by deverill2010 View Post
Lynne as you've put reusable code, I have made a request for someone to modify it to show images - https://vborg.vbsupport.ru/showthrea...59#post2236659

I hope you don't mind as I really need this.
I don't mind at all. It is reusable for that reason. I only got so far with it in order to help someone else out with a specific request and just posted this in case if would help someone else get started to do something similar, or even more.
Reply With Quote
  #37  
Old 09-11-2011, 07:34 PM
brad_irc's Avatar
brad_irc brad_irc is offline
 
Join Date: Aug 2005
Location: Canada
Posts: 6
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Lynne View Post
I don't mind at all. It is reusable for that reason. I only got so far with it in order to help someone else out with a specific request and just posted this in case if would help someone else get started to do something similar, or even more.
Thanks for your snippet Lynne. I do many vB mods that are never published, but your code snippet helped -- so here is the solution for users wanting [ATTACH] bbcode parsed properly.

Let me explain so users can better understand the code and why it appears as a link.

Deep inside /includes/class_bbcode.php, line 2581 "if (!empty($this->attachments["$attachmentid"]))" checks if the $bbcode_parser object has an array defined with details about the image attachment (ie; size, contenttype, placement, thumbnail, etc). If that data is not present, it defaults to creating a link to the attachment.

I backtracked through the function where CMS article calls the bbcode parser, see file /packages/vbcms/item/content/article.php, line 428 which shows how it fetches the attachment data using the content nodeid.

The snippet below has nodeid added to the query, and the block populating the $attachments array. Enjoy

Also to be noted, Tapatalk users cannot view articles on main page, now they will be able to view the content using the forum

PHP Code:
if (THIS_SCRIPT == 'showthread' AND $this->post['postcount'] == AND $this->thread['forumid'] == $this->registry->options['vbcmsforumid']) {

$result $this->registry->db->query_first("
       SELECT cms_article.pagetext, cms_article.threadid, cms_article.htmlstate, cms_node.nodeid  
    FROM " 
TABLE_PREFIX "cms_article AS cms_article 
    INNER JOIN " 
TABLE_PREFIX "cms_node AS cms_node ON (cms_node.contentid = cms_article.contentid) 
    INNER JOIN " 
TABLE_PREFIX "cms_nodeinfo AS cms_nodeinfo ON (cms_nodeinfo.nodeid = cms_node.nodeid) 
    WHERE cms_nodeinfo.associatedthreadid = "
$this->thread['threadid']. "
        "
);

    if(
$result) {
        
$bbcode_parser = new vBCms_BBCode_HTML(vB::$vbulletinvBCms_BBCode_HTML::fetchCmsTags());;
        
        
$attach = new vB_Attach_Display_Content(vB::$vbulletin'vBCms_Article');
        
$attachments $attach->fetch_postattach(0$result['nodeid']);
        
$bbcode_parser->attachments $attachments;
        
$bbcode_parser->unsetattach true;
        
        
$this->post['message'] = fetch_censored_text($bbcode_parser->do_parse($result['pagetext'], true$result['htmlstate']));
            
    }  

PS: If anyone else has noticed that [ATTACH] is not properly parsed in RSS feeds, I will find a solution and post it in the next couple days.
Reply With Quote
3 благодарности(ей) от:
deverill2010, Lynne, RaSa
  #38  
Old 09-12-2011, 12:30 AM
Lynne's Avatar
Lynne Lynne is offline
 
Join Date: Sep 2004
Location: California/Idaho
Posts: 41,180
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thank you, Brad!
Reply With Quote
  #39  
Old 09-12-2011, 12:42 AM
GamersChallenge GamersChallenge is offline
 
Join Date: Aug 2011
Posts: 43
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

thanx brad, works great
Reply With Quote
  #40  
Old 09-14-2011, 04:14 PM
deverill2010 deverill2010 is offline
 
Join Date: Jan 2011
Posts: 412
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Brad much appreciated!!!!! xxx
Reply With Quote
  #41  
Old 01-24-2012, 05:34 PM
BearOlympic BearOlympic is offline
 
Join Date: Dec 2011
Posts: 4
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Lynne View Post
That is because of the condition I have at the top:
Code:
if (THIS_SCRIPT == 'showthread' AND $this->thread['forumid'] == $this->registry->options['vbcmsforumid'] AND $this->post['postcount'] == 1)
I have it set to only check for this in the specified vbcms comments forum. You could remove that part of the condition and see if it works. (Do you always move the threads to a specific other forum? If so, enter that forumid instead.)
Thanks a lot for this mod!
Just one thing - if you remove this condition - you will get text "*********" displayed in every first message of every topic. Because almost every topic meets other conditions.

As for me - i don't mind it, and i don't need a divider between auto-created text and article. so i just replaced that code with " ". not good - but fast )
Reply With Quote
Reply

Thread Tools

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 01:20 AM.


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.06747 seconds
  • Memory Usage 2,378KB
  • Queries Executed 26 (?)
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
  • (1)bbcode_code
  • (4)bbcode_php
  • (4)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
  • (6)post_thanks_box_bit
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (2)post_thanks_postbit
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (3)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_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