vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 3.6 Add-ons (https://vborg.vbsupport.ru/forumdisplay.php?f=194)
-   -   Mini Mods - Display latest blog post in postbit using Magpie RSS (https://vborg.vbsupport.ru/showthread.php?t=156372)

pmkb 08-26-2007 10:00 PM

Display latest blog post in postbit using Magpie RSS
 
This mod borrows extensively from the work vauge did for vB 3.5 (as found here) and from the work nevetS did for a similar mod using CaRP RSS.

I did PM vauge requesting permission to update his mod as many people were having difficulty implementing it, but s/he hasn't been online in several months and didn't respond to my PM for over a week now, so I decided to go ahead and post the mod.

This mod will allow forum members to add their blog's RSS feed URLs to their profile and have the forum display a link to their latest blog post next to their username every time they post in the forum.

I had been using nevetS's CaRP mod for this for a long time, but the Magpie RSS reader is actually more powerful (can parse Atom feeds too) and flexible. Also, I don't know if anyone can find the free download for CaRP anymore.

Installation:
  1. Download Magpie RSS and install on your server. Magpie is a free, open source RSS reader with caching. It consists of 4 .php files plus one external library file. I recommend you create a directory called magpie in your domain's root directory and upload the files there.

    Be sure when installing to create a cache sub-directory inside the magpie directory and CHMOD it to 777.
  2. In your vB ACP, add a new user profile field. I used the following:
    Quote:

    Title: Blog Feed
    Description: Do you write a blog? Post the RSS/XML feed for the blog here and a link to your latest blog post will show in the forums next to your name with every post.
    Max Length: 200
    Type: Single Line
    Required: No
    Editable: Yes
    Private: No * Must be No if you want guests and registered members to see the blog links
    Searchable/Shown on memberlist: No
    After saving, go to the User Profile Field Manager and note what the Name column displays for your new field. It should be field5 or field6 or something like that.
  3. Open the attached magpierss.xml file in your favorite text editor and modify the paths for the MAGPIE_DIR and MAGPIE_CACHE_DIR variables to match your server's directory structure. You can adjust the value for the MAGPIE_CACHE_AGE if you like. It's set to update the cache every 4 hours by default. Last, update the field5 to your field # in two places in the postbit_display_start section. Save the file.
  4. Import your updated magpierss.xml file using the Add/Import Product link in the Manage Products page.
  5. Edit your postbit template. Find $template_hook[postbit_userinfo_left] and add just before it:
    Quote:

    <if condition="$post['field5']"><div class="smallfont">Recent Blog: <a href="$blogLink" target="_blank">$blogTitle</a></div></if>
    You should change the field # in that code to match your field # of course. You can also add rel="nofollow" to the link code if you are so inclined.

That's it. :)

P.S. Updated per Marco van Herwaarden's suggestions for better performance and security. :)

P.P.S. If anyone knows how to fix the XML file so that it injects the template code into the postbit_userinfo_left hook so folks don't have to make a manual template edit, by all means please share. :)

P.P.P.S Unfortunately, there appears to be a conflict with the magpie code and vBulletin's AJAX code which is beyond my coding skills to fix. See page two of this thread for more details.

Ratman2050 08-27-2007 03:08 PM

Reserved.

P.S. My First Reserve :D

yahoooh 08-27-2007 05:39 PM

any demo?

pmkb 08-27-2007 06:31 PM

I added a screenshot. :)

Hornstar 08-28-2007 12:38 PM

When I read the title of this mod, I thought vb must have released its blog ^^ but then I got my hopes up too fast lol. nice mod tho.

pmkb 08-28-2007 02:32 PM

Sorry about that! It's hard to describe some mods in just a few words.

Triky 08-29-2007 08:40 AM

Installed.
I will use this feature in the future.
Really thanks, pmkb.

Marco van Herwaarden 08-29-2007 08:56 AM

Is the magpie rss_fetch.inc file needed on each vBulletin page? You are currently loading it unconditionally in the "global_start" hook. This might lead to more overhead then needed.

PHP Code:

if ($post['field5']){ 
 
$num_items 1
 
$rss fetch_rss($post['field5']); 
 if(
$rss) { 
  
$items array_slice($rss->items0$num_items); 
  foreach ( 
$items as $item ) { 
   
$blogTitle $item['title']; 
   
$blogLink $item['link']; 
  } 
 } 


As you overwrite $blogTitle and $blogLink each time you go thru the loop, only the last value will ever be displayed (assuming you can have more then 1 entry, otherwise the loop does also not make sense).

gforce75 08-29-2007 09:09 AM

Good catch Herwaarden. Nice mod, but will wait till see a demo :p

pmkb 08-29-2007 11:04 AM

gforce, what do you mean by a demo? I posted a screenshot of what it does from my own forum (see sig) where this mod is working. I have the mod installed on 3 forums and it works great.


All times are GMT. The time now is 09:16 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.02845 seconds
  • Memory Usage 1,749KB
  • 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
  • (1)bbcode_php_printable
  • (2)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