vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 3.5 Add-ons (https://vborg.vbsupport.ru/forumdisplay.php?f=113)
-   -   Latest Blog Feed in Postbit using Carp RSS (https://vborg.vbsupport.ru/showthread.php?t=91781)

nevetS 07-06-2005 10:00 PM

Latest Blog Feed in Postbit using Carp RSS
 
I just posted this over at vbWebmaster Forums. I'm all excited because this is my first plugin and I know pretty much nothing about vbulletin. I got the idea from Shawn's forum at Digital Point

I just put this together for 3.5 using carp.

Step 1) Add a custom profile field for the RSS link. In my setup it was field5.
Step 2) Edit your postbit template as follows:
PHP Code:

<if condition="$post['field5']">
<
div class="smallfont">Recent Blog$blogentry</div>
        </if> 

Step 3) Create a new plugin. I named mine: Carp Configuration. Attach it to the "global_start" hook location.
Here is the code:
PHP Code:

require_once '/path/to/carp/carp.php';
CarpConf('cacheinterval',120);
/** You may want to set a cachepath specifically for your forum **/
CarpConf('cachepath','/where/you/want/your/cache/files/');
CarpConf('cacherelative',0);
/** You can omit the above two lines without a problem **/
CarpConf('cborder','');
CarpConf('poweredby','');
CarpConf('maxitems',1);
CarpConf('iorder','link'); 

Step 4) One more plugin. This one I called: Get Users Blog Entry
Attach this to hook location: postbit_display_start
PHP Code:

ob_start();
CarpCacheShow($post[field5]);
$blogentry ob_get_contents();
ob_end_clean(); 

That's it... away you go. If you don't have carp, you can check it out at: http://www.geckotribe.com/rss/carp/
I'm not sure if this will work with the free version, as I have the paid version.

I'm thinking about using grouper to set it up so I can parse atom files, but I don't know how important that will be.

Note: carp allows you to enter local paths and http paths for rss feeds. I've tried entering both in my user profile field successfully. You may want to disallow users from entering a local path just to be on the safe side. I don't have any code for that right now, but I'm sure there are some examples for field validation out there.

Carp has an option to store it's output in a variable ($carpoutput), but it didn't seem to work for me. That's why I used the ob_start and end_clean functions. If anybody has any feedback as to how this may be improved, I'm willing to listen.

Marco van Herwaarden 07-07-2005 12:30 PM

Thank you for sharing this with us.

Could you please be so kind to copy your instructions into a textfile and upload it to the modification. This is usefull so members can keep the instruction of installed modifications for later use when upgrading for example.

nevetS 07-07-2005 05:13 PM

Quote:

Originally Posted by MarcoH64
Thank you for sharing this with us.

Could you please be so kind to copy your instructions into a textfile and upload it to the modification. This is usefull so members can keep the instruction of installed modifications for later use when upgrading for example.

The attached zip file contains the instructions per request.

Allan 07-07-2005 05:33 PM

screen please :)

nevetS 07-07-2005 07:48 PM

screenies added.

Allan 07-07-2005 07:54 PM

Quote:

Originally Posted by nevetS
screenies added.

thank you :)

PS: I just meant that screen is important for those who are not English as me.

Marco van Herwaarden 07-07-2005 08:14 PM

Quote:

Originally Posted by nevetS
The attached zip file contains the instructions per request.

Thank you for your fast response.

nevetS 07-07-2005 08:30 PM

Quote:

Originally Posted by MarcoH64
Thank you for your fast response.

No problem. I'm very impressed at how easy it is to build plugins in 3.5. It took me several hours to put this together, but I'm very new to vbulletin and I didn't know the in's and out's of anything.

In the future for this script, I'd like to add an installer that creates everything for you, but I don't quite know the best way for doing this yet and I'm going to have to add a function to search for the carp files and accepts some user input for location. I'm also not sure if I should just insert the code into the template or if I should just have the users do that themselves.

Before I go that far, I'm going to wait for any feedback about better ways to go about this. If there's a more performance friendly method, I should use it.

Carp is an caching RSS script. Which basically means it will look for a locally cached version fo the rss feed to display first and if one does not exist it will go out and grab the latest version online. The configuration above expires caches every two hours, so if you update your blog it can be up to two hours before the latest blog entry appears. If 10 different people have blogs configured and post in a thread it can mean that 10 different http queries need to go out to display the thread if it has not been viewed in a long time.

Another way to go about this is to set up a cron job to regularly update the cache files, but that could mean that every time it runs 150 http queries go out if you have 150 members with blog entries configured, and it very well could be the case that 50 of those members are not active posters.

These are all reasons to post the plugin here, though. As I get feedback, I can improve the script and everyone can benefit.

gamebrink 08-01-2005 02:03 PM

Quote:

Originally Posted by nevetS
No problem. I'm very impressed at how easy it is to build plugins in 3.5. It took me several hours to put this together, but I'm very new to vbulletin and I didn't know the in's and out's of anything.

In the future for this script, I'd like to add an installer that creates everything for you, but I don't quite know the best way for doing this yet and I'm going to have to add a function to search for the carp files and accepts some user input for location. I'm also not sure if I should just insert the code into the template or if I should just have the users do that themselves.

Before I go that far, I'm going to wait for any feedback about better ways to go about this. If there's a more performance friendly method, I should use it.

Carp is an caching RSS script. Which basically means it will look for a locally cached version fo the rss feed to display first and if one does not exist it will go out and grab the latest version online. The configuration above expires caches every two hours, so if you update your blog it can be up to two hours before the latest blog entry appears. If 10 different people have blogs configured and post in a thread it can mean that 10 different http queries need to go out to display the thread if it has not been viewed in a long time.

Another way to go about this is to set up a cron job to regularly update the cache files, but that could mean that every time it runs 150 http queries go out if you have 150 members with blog entries configured, and it very well could be the case that 50 of those members are not active posters.

These are all reasons to post the plugin here, though. As I get feedback, I can improve the script and everyone can benefit.


Yes I would like to see some sort of change so that (If 10 different people have blogs configured and post in a thread it can mean that 10 different http queries need to go out to display the thread if it has not been viewed in a long time.) doesn't happen.

Thanks for the code!

EricaJoy 08-19-2005 07:01 PM

Could you kindly make the same sort of thing for vB 3.0.8? It would be very much appreciated. :)


All times are GMT. The time now is 06:19 AM.

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.01670 seconds
  • Memory Usage 1,761KB
  • 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
  • (3)bbcode_php_printable
  • (5)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (2)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