Divvy Posted January 13, 2012 Share Posted January 13, 2012 Hello guys, I have a forum in MyBB and Im using this plugin to auto post content: http://mods.mybb.com/view/rss-feed-poster But I need a little change and I dont know how to do It... This is an example of one of my auto posts: I want to change the source link http:// with "Read More...". I think that we need to modify ['link'] in task rssfeedposter.php file, but dont know how to do It... Can someone please help me? Thank you! rssfeedposter.php code: <?php /* RSS Feed Poster by: vbgamer45 http://www.mybbhacks.com Copyright 2010 MyBBHacks.com ############################################ License Information: Links to http://www.mybbhacks.com must remain unless branding free option is purchased. ############################################# */ $feedcount = 0; $maxitemcount = 0; $tag = ''; $tag_attrs = ''; $insideitem = false; $depth = array(); function verify_rss_url($url) { global $txt, $depth; // Rss Data storage $finalrss = ''; $failed = true; $fp2 = @fopen($url, "r"); if ($fp2) { $failed = false; $contents = ''; while (!feof($fp2)) { $contents .= fread($fp2, 8192); } fclose($fp2); $finalrss = $contents; } if($failed == true) { $url_array = parse_url($url); $fp = @fsockopen($url_array['host'], 80, $errno, $errstr, 30); if (!$fp) { } else { $failed = false; $out = "GET " . $url_array['path'] . (@$url_array['query'] != '' ? '?' . $url_array['query'] : '') . " HTTP/1.1\r\n"; $out .= "Host: " . $url_array['host'] . "\r\n"; $out .= "Connection: Close\r\n\r\n"; fwrite($fp, $out); $rssdata = ''; $header = ''; // Remove stupid headers. do { $header .= fgets ($fp, 128 ); } while ( strpos($header, "\r\n\r\n" ) === false ); while (!feof($fp)) { $rssdata .= fgets($fp, 128); } fclose($fp); @$finalrss = @$rssdata; } } // Use cURL if($failed == true) { if(function_exists("curl_init")) { $failed = false; // Last but not least try cUrl $ch = curl_init(); // set URL and other appropriate options curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // grab URL, and return output $output = curl_exec($ch); // close curl resource, and free up system resources curl_close($ch); return $output; } } // XML Parser functions to verify the XML Feed if($failed == false) { $depth = array(); $xml_parser = xml_parser_create(); xml_set_element_handler($xml_parser, "startElement2", "endElement2"); if (!xml_parse($xml_parser, $finalrss)) { fatal_error(sprintf($txt['feedposter_err_xmlerror'], xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser)), false); } xml_parser_free($xml_parser); } else { // We were not able to download the feed } } function startElement2($parser, $name, $attrs) { global $depth; $depth[$parser]++; } function endElement2($parser, $name) { global $depth; $depth[$parser]--; } function UpdateRSSFeedBots($task) { global $db, $context, $feedcount, $maxitemcount, $insideitem, $tag, $tag_attrs; // First get all the enabled bots $context['feeds'] = array(); $request = $db->write_query(" SELECT ID_FEED, fid, feedurl, title, postername, updatetime, enabled, html, uid, locked, articlelink, topicprefix, numbertoimport, importevery, markasread FROM ".TABLE_PREFIX."feedbot WHERE enabled = 1"); while ($row = $db->fetch_array($request)) { $context['feeds'][] = $row; } require_once MYBB_ROOT."inc/datahandlers/post.php"; // Check if a field expired foreach ($context['feeds'] as $key => $feed) { $current_time = time(); // If the feedbot time to next import has expired //add_task_log($task, "Check " . ($current_time + (60 * $feed['importevery'])) . " :" . $feed['updatetime']); if ($current_time > $feed['updatetime']) { $feeddata = GetRSSData($feed['feedurl']); if ($feeddata != false) { // Process the XML $xml_parser = xml_parser_create(); $context['feeditems'] = array(); $feedcount = 0; $maxitemcount = $feed['numbertoimport']; $tag = ''; $tag_attrs = ''; $insideitem = false; $context['feeditems'][0] = array(); $context['feeditems'][0][] = array(); $context['feeditems'][0]['title'] = ''; $context['feeditems'][0]['description'] = ''; $context['feeditems'][0]['link'] = ''; xml_set_element_handler($xml_parser, "startElement1", "endElement1"); xml_set_character_data_handler($xml_parser, "characterData1"); if (!xml_parse($xml_parser, $feeddata)) { // Error reading xml data xml_parser_free($xml_parser); } else { // Data must be valid lets extra some information from it // RSS Feeds are a list of items that might contain title, description, and link // Free the xml parser memory xml_parser_free($xml_parser); // Loop though all the items $myfeedcount = 0; for ($i = 0; $i < ($feedcount); $i++) { if ($myfeedcount >= $maxitemcount) { continue; } //add_task_log($task, "NotSkip: $myfeedcount : $maxitemcount : $feedcount T:" . $context['feeditems'][$i]['title']); // Check feed Log // Generate the hash for the log if(!isset($context['feeditems'][$i]['title']) || !isset($context['feeditems'][$i]['description'])) continue; if(empty($context['feeditems'][$i]['title']) && empty($context['feeditems'][$i]['description'])) continue; $itemhash = md5($context['feeditems'][$i]['title'] . $context['feeditems'][$i]['description']); $request = $db->write_query(" SELECT feedtime FROM ".TABLE_PREFIX."feedbot_log WHERE feedhash = '$itemhash'"); // If no has has found that means no duplicate entry if ($db->num_rows($request) == 0) { // Create the Post $msg_title = ($feed['html'] ? $context['feeditems'][$i]['title'] : strip_tags($context['feeditems'][$i]['title'])); $msg_body = ($feed['html'] ? $context['feeditems'][$i]['description'] . "\n\n" . $context['feeditems'][$i]['link'] : strip_tags($context['feeditems'][$i]['description'] . "\n\n" . $context['feeditems'][$i]['link'])); $posthandler = new PostDataHandler("insert"); $posthandler->action = "thread"; if (strlen($msg_title) > 120) $msg_title = substr($msg_title,0,115); $msg_title = trim($msg_title); $new_thread = array( "fid" => $feed['fid'], "subject" => $feed['topicprefix'] . $msg_title, "icon" => '', "uid" => $feed['uid'], "username" => $feed['postername'], "message" => '[b]' . $msg_title . "[/b]\n\n" . $msg_body, "ipaddress" => '127.0.0.1', "posthash" => '' ); $new_thread['modoptions'] = array('closethread' => $feed['locked']); $posthandler->set_data($new_thread); $valid_thread = $posthandler->validate_thread(); if(!$valid_thread) { $post_errors = $posthandler->get_friendly_errors(); } else $thread_info = $posthandler->insert_thread(); $tid = (int) $thread_info['tid']; $pid = (int) $thread_info['pid']; if ($feed['markasread']) { // Mark thread as read require_once MYBB_ROOT."inc/functions_indicators.php"; mark_thread_read($tid, $feed['fid']); } // Add Feed Log $fid = $feed['ID_FEED']; $ftime = time(); $db->write_query(" INSERT INTO ".TABLE_PREFIX."feedbot_log (ID_FEED, feedhash, feedtime, tid, pid) VALUES ($fid,'$itemhash',$ftime,$tid,$pid)"); $myfeedcount++; } } } // End valid XML check } // End get feed data // Set the RSS Feed Update time $updatetime = time() + (60 * $feed['importevery']); $db->write_query(" UPDATE ".TABLE_PREFIX."feedbot SET updatetime = '$updatetime' WHERE ID_FEED = " . $feed['ID_FEED']); } // End expire check } // End for each feed } function GetRSSData($url) { $url_array = parse_url($url); $fp2 = @fopen($url, "r"); if ($fp2) { $contents = ''; while (!feof($fp2)) { $contents .= fread($fp2, 8192); } fclose($fp2); return $contents; } $fp = fsockopen($url_array['host'], 80, $errno, $errstr, 30); if (!$fp) { } else { $out = "GET " . $url_array['path'] . (@$url_array['query'] != '' ? '?' . $url_array['query'] : '') . " HTTP/1.1\r\n"; $out .= "Host: " . $url_array['host'] . "\r\n"; $out .= "Connection: Close\r\n\r\n"; fwrite($fp, $out); $rssdata = ''; $header = ''; // Remove stupid headers. do { $header .= fgets ($fp, 128 ); } while ( strpos($header, "\r\n\r\n" ) === false ); while (!feof($fp)) { $rssdata .= fgets($fp, 128); } fclose($fp); $finalrss = $rssdata; return $finalrss; } if(function_exists("curl_init")) { // Last but not least try cUrl $ch = curl_init(); // set URL and other appropriate options curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // grab URL, and return output $output = curl_exec($ch); // close curl resource, and free up system resources curl_close($ch); return $output; } // Failure return false return false; } function startElement1($parser, $name, $attrs) { global $insideitem, $tag, $tag_attrs; if ($insideitem) { $tag = $name; $tag_attrs = $attrs; } elseif ($name == "ITEM" || $name == "ENTRY") { $insideitem = true; } } function endElement1($parser, $name) { global $insideitem, $tag, $feedcount, $context, $tag_attrs; if ($name == "ITEM" || $name == "ENTRY") { $feedcount++; $context['feeditems'][$feedcount] = array(); $context['feeditems'][$feedcount][] = array(); $context['feeditems'][$feedcount]['title'] = ''; $context['feeditems'][$feedcount]['description'] = ''; $context['feeditems'][$feedcount]['link'] = ''; $tag_attrs = ''; $insideitem = false; } } function characterData1($parser, $data) { global $insideitem, $tag, $feedcount, $context, $maxitemcount, $tag_attrs; if ($insideitem ) { switch ($tag) { case "TITLE": $context['feeditems'][$feedcount]['title'] .= $data; break; case "DESCRIPTION": $context['feeditems'][$feedcount]['description'] .= $data; break; case "LINK": $context['feeditems'][$feedcount]['link'] .= $data; break; case "SUMMARY": $context['feeditems'][$feedcount]['description'] .= $data; break; case "CONTENT": $context['feeditems'][$feedcount]['description'] .= $data; break; case "LINK": $data = trim($data); $context['feeditems'][$feedcount]['link'] .= $data; IF (empty($data) && isset($tag_attrs['HREF'])) $context['feeditems'][$feedcount]['link'] .= $tag_attrs['HREF']; break; } } } function task_rssfeedposter($task) { global $lang; $lang->load('rssfeedposter'); UpdateRSSFeedBots($task); add_task_log($task, $lang->rssfeedposter_taskran); } ?> Can someone please help me? Thank you! Link to comment https://forums.phpfreaks.com/topic/254958-i-need-help-with-this-code/ Share on other sites More sharing options...
Muddy_Funster Posted January 13, 2012 Share Posted January 13, 2012 wrong section Link to comment https://forums.phpfreaks.com/topic/254958-i-need-help-with-this-code/#findComment-1307325 Share on other sites More sharing options...
SergeiSS Posted January 13, 2012 Share Posted January 13, 2012 You show A LOT OF CODE. For me it's not interesting to go through this code and look for the point where you output this link. It seems that a lot of people are thinking in the same way Just a small question. Do you know <a> tag and it's structure? If you know it you know the answer to your question. Look for info about this tag anywhere in the internet. Link to comment https://forums.phpfreaks.com/topic/254958-i-need-help-with-this-code/#findComment-1307334 Share on other sites More sharing options...
adi123 Posted January 17, 2012 Share Posted January 17, 2012 Noticed quite a lot of stubborn people on this website who think they know it all and have a problem helping others. I think this is the answer to your problem. <a href="your link">some text</a> Link to comment https://forums.phpfreaks.com/topic/254958-i-need-help-with-this-code/#findComment-1308596 Share on other sites More sharing options...
SergeiSS Posted January 18, 2012 Share Posted January 18, 2012 Quote Noticed quite a lot of stubborn people on this website who think they know it all and have a problem helping others. It seems you are talking about many people including me Yes, you are right - I don't like to write a code for people who don't like to think. From my point of view, I'm 'helping' a man when pointing him to find a correct solution. Of course I can write some lines of code - but it possible just in one case. When the man is trying to think and write a code. If he fails - I can correct his code or write a new one. I like to help such people - because I see that they are able to think. But if you wish... You may write a code for anyone You see - here there are some (not too much) people who are waiting for such a man like you They don't like to think, they like that you think instead of them. Link to comment https://forums.phpfreaks.com/topic/254958-i-need-help-with-this-code/#findComment-1308834 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.