The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
#1
|
|||
|
|||
![]()
This is for the built in RSS manager in 3.6
What I would like to do is on a scheduled basis run an RSS feed and put all the results from the RSS feed into one post in one thread, have it be stickied, and then unsticky the previous thread. Now, basically, I figure I can do this in mySQL by putting the RSS feed results into a hidden forum where it puts each result into it's own thread, running a scheduled sql job that selects the text from the posts in the forum, formats into one post, creates a post in the real forum, stickies the post, unstickies the previous one, and then deletes all the threads in the hidden forum. But since this seems like something others would have liked done I'm hoping there's already something out there for this. Plus, it seems like the plan I have using sql is going to have issues with fetching old posts, so I would need some tweaking to the plan. Any advice on accomplishing this would be appreciated. Thanks.... //Update since no one seems to have a pre-existing solution.............................. Basically, what I've come up with is to have the posts from the 3.6 RSS manager be defaulted as sticky threads in the hidden forum. Once a day, in the morning the schuleded task runs, grabbing the text from all sticky threads and combining the texts from all sticky threads in the hidden forum into one post, one thread, in the desired forum. Then, lastly, my script updates the hidden forum making all posts non-sticky. This gets around the problem the RSS manager has in keeping track. It's certainly not elegant (shoot I've only been playing around with vB for about 2 weeks, and I'm not normally using PHP at work), but it works. I can post a script to run if anyone's interested. |
#2
|
||||
|
||||
![]() Quote:
Thanks in advance. -- Rik |
#3
|
|||
|
|||
![]()
Save this code as a php file and put it your forums directory. Then just create a schedule task in the admin control panel that runs this php script.
All the values you need to change are uptop in the declarations section. Code:
<?php //******************************************************* //DECLARATIONS //******************************************************* $sourceForumid = '37'; $insertForumid = '4'; $postShortTitle = "What you want the thread to be called"; $postTitle = postShortTitle . date("Y/m/d"); $postUID = '1'; $postUName = 'AccountName'; $dbname = "yourDataBasesName."; //******************************************************* //GATHER VALUES FOR NEW THREAD //******************************************************* $posts = $vbulletin->db->query_read("SELECT t.threadid, t.forumid, p.title, p.pagetext FROM " . $dbname . "thread t INNER JOIN " . $dbname . "post p ON p.threadid = t.threadid WHERE t.forumid = " . $sourceForumid . " AND sticky = 1;"); $newpost = ""; while ($thispost = $vbulletin->db->fetch_array($posts)) { $newpost = $newpost . "" . $thispost['title'] . " \n" . $thispost['pagetext'] . "\n" . "\n" . "\n" . "\n"; } //CHECK TO SEE IF WE HAVE POSTS TO MAKE NEW THREAD WITH if ($newpost != "") { //UNSTICKY PREVIOUS NEWS THREAD $threadid = $vbulletin->db->query_read(" UPDATE " . $dbname . "thread SET sticky = '0' WHERE forumid = '" . $insertForumid . "' AND title LIKE '" . $postShortTitle . "%' "); //CREATE NEW THREAD $threadid = $vbulletin->db->query_read(" INSERT INTO " . $dbname . "thread (title,forumid,dateline,open,lastpost,postuserid,visible,postusername,lastposter,sticky) VALUES ('" . $postTitle . "','" . $insertForumid . "','" . TIMENOW . "','1' ,'" . TIMENOW . "','" . $postUID . "','1','" . $postUName . "','" . $postUName . "','1') "); $insertid = mysql_insert_id(); //CREATE POST FOR THAT THREAD $newpost = str_replace("'","''",$newpost); $threadid = $vbulletin->db->query_read(" INSERT INTO " . $dbname . "post (threadid,username,userid,visible,pagetext,dateline) VALUES ('" . $insertid . "','" . $postUName . "','" . $postUID . "','1','" . $newpost . "'," . TIMENOW . " ) "); $postid = mysql_insert_id(); //UPDATE THREAD INFO $threadid = $vbulletin->db->query_read(" UPDATE " . $dbname . "thread SET firstpostid = '" . $postid . "', lastpostid = '" . $postid . "' WHERE threadid = '" . $insertid . "' "); //UNSTICKY OLD THREADS $threadid = $vbulletin->db->query_read(" UPDATE " . $dbname . "thread SET sticky = '0' WHERE forumid = '" . $sourceForumid . "' "); $threadinfo = fetch_threadinfo($insertid); require_once(DIR . '/includes/functions_databuild.php'); build_forum_counters($threadinfo['forumid']); } ?> |
#4
|
||||
|
||||
![]()
Liquidrage:
I'll give a try. Thanks a lot. -- Rik |
![]() |
Thread Tools | |
Display Modes | |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
![]() |
|
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|