| 
		
	
	
	
		
	Beiträge: 136Themen: 15
 Registriert seit: 18.01.2007
 MyBB-Version: 1.2.12
 
	
	
		Hallo,
 ich habe folgendes Problem mit dem Plugin rss2post:
 
 Nachrichten mit langem Betreff werden immer wieder abgerufen. D.h. der Bot ruft diese Nachrichten jedes mal ab.
 
 Gibt es eine Möglichkeit den Betreff automatisch zu kürzen?
 
 Gruß,
 Dirk
 niemand eine Idee?
 
Gruß,NixxusMinimax
 
	
	
	
		
	Beiträge: 18.383Themen: 257
 Registriert seit: 09.02.2005
 
	
	
		Ich kenne das Plugin kaum. Wie man per PHP Strings kürzst findet du z.B. in diesem Beitrag: https://www.mybb.de/forum/showthread.php...1#pid30761
Gruß, 
Michael
Support erfolgt NUR im Forum! Bitte gelöste Themen als "erledigt" markieren.
 Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
 
	
	
	
		
	Beiträge: 136Themen: 15
 Registriert seit: 18.01.2007
 MyBB-Version: 1.2.12
 
	
		
		
		13.02.2008, 20:12 
(Dieser Beitrag wurde zuletzt bearbeitet: 13.02.2008, 22:24 von NixxusMinimax.)
		
	 
		Ich danke dir schonmal soweit. Hab mal kurz ins Thema reingeguckt. Ich werde nachher mal testen ob ich den Code ins Plugin gebastelt kriege. 
Gruß, 
Dirk
 
/edit:
 PHP-Code: if(my_strlen($lastpost_subject) > 25){
 $lastpost_subject = my_substr($lastpost_subject, 0, 25) . "...";
 }
 
wärst du wohl so nett mir die Stelle zu zeigen?
 PHP-Code: <?php// RSS To Post
 // By DennisTT
 // Version 1.1.0 - Änderungen von Michael (Zeilen 289-307)
 
 // This plugin (C) DennisTT 2006.  You may not redistribute this plugin without the permission from DennisTT.
 
 function rss2post_info()
 {
 return array(
 "name"            => "RSS To Post",
 "description"    => "Analysiert RSS-Feeds und stellt neue Infos in ein spezifisches Forum.<br />==>> Credits to Vojtech Semecky for RSS parser class.",
 "website"        => "http://www.dennistt.net",
 "author"        => "DennisTT",
 "authorsite"    => "http://www.dennistt.net",
 "version"        => "1.1.0",
 );
 }
 
 /*
 function rss2post_info()
 {
 return array(
 "name"            => "RSS To Post",
 "description"    => "Parses RSS feeds and posts new items onto a specified forum.<br />==>> Credits to Vojtech Semecky for RSS parser class.",
 "website"        => "http://www.dennistt.net",
 "author"        => "DennisTT",
 "authorsite"    => "http://www.dennistt.net",
 "version"        => "1.1.0",
 );
 }
 */
 
 function rss2post_activate()
 {
 global $db, $cache;
 $cache->update('rss2post', 0);
 $db->query("
 CREATE TABLE `".TABLE_PREFIX."rss2post` (
 `fid` INT( 10 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
 `url` VARCHAR( 255 ) NOT NULL ,
 `forum` INT( 10 ) UNSIGNED NOT NULL
 ) ENGINE = MYISAM ;
 ");
 
 $info = rss2post_info();
 
 $setting_group_array = array(
 'name' => str_replace(' ', '_', 'dennistt_'.strtolower($info['name'])),
 'title' => "$info[name] (DennisTT)",
 //'description' => "Settings for the $info[name] plugin",
 'description' => "Einstellungen für das Plugin \"$info[name]\"",
 'disporder' => 1,
 'isdefault' => 'no',
 );
 $db->insert_query(TABLE_PREFIX.'settinggroups', $setting_group_array);
 $group = $db->insert_id();
 
 /*
 $setting_group_array = array(
 'name' => str_replace(' ', '_', 'dennistt_'.strtolower($info['name'])),
 'title' => "$info[name] (DennisTT)",
 'description' => "Settings for the $info[name] plugin",
 'disporder' => 1,
 'isdefault' => 'no',
 );
 $db->insert_query(TABLE_PREFIX.'settinggroups', $setting_group_array);
 $group = $db->insert_id();
 */
 
 $settings = array(
 'rss2post_auto' => array('Automatischer Scan?', 'Wenn \"Ja\" gewählt ist, werden die RSS-Feeds nach einer bestimmten Zeit neu gescannt.<br />Wenn \"Nein\" gewählt ist, werden die RSS-Feeds nur manuell über das Plugin-CP neu eingelesen.', 'yesno', 'yes'),
 'rss2post_userid' => array('Benutzer-ID', 'ID des Benutzers, der als Autor erwänt wird.', 'text', '1'),
 'rss2post_interval' => array('Time-Out-Intervall', 'Intervall zwischen den Scans in Minuten', 'text', '90'),
 'rss2post_striphtml' => array('Strip HTML', 'Soll der Feed-Inhalt aufgelöst werden, wenn er HTML-Code enthält?', 'yesno', 'yes'),
 'rss2post_forcerunpw' => array('Force Run Password', 'Dies ist das Passwort, das via URL jedes Mal hinzugefügt wird, wenn das Plugin "forced-run" ausgeführt wird. (siehe auch "RSS To Post - Konfigurationshinweise" für weitere Informationen über "force-run")', 'text', rand(100, 999)),
 );
 
 $i = 1;
 foreach($settings as $name => $sinfo)
 {
 $db->query("INSERT INTO ".TABLE_PREFIX."settings (name,title,description,optionscode,value,gid,disporder) VALUES ('$name', '$sinfo[0]', '$sinfo[1]', '$sinfo[2]', '$sinfo[3]', $group, $i)");
 $i++;
 }
 rebuildsettings();
 
 echo '<script type="text/javascript">parent.nav.location.href = parent.nav.location.href;</script>';
 
 }
 
 function rss2post_deactivate()
 {
 global $db;
 
 $info = rss2post_info();
 
 $result = $db->query("SELECT gid FROM ".TABLE_PREFIX."settinggroups WHERE title = '$info[name] (DennisTT)' LIMIT 1");
 $group = $db->fetch_array($result);
 
 if(!empty($group['gid']))
 {
 $db->query("DELETE FROM ".TABLE_PREFIX."settinggroups WHERE gid = $group[gid] LIMIT 1");
 $db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE gid = $group[gid]");
 rebuildsettings();
 }
 
 $db->query("DROP TABLE ".TABLE_PREFIX."rss2post");
 $db->delete_query(TABLE_PREFIX."datacache", "title='rss2post'");
 
 echo '<script type="text/javascript">parent.nav.location.href = parent.nav.location.href;</script>';
 
 }
 
 $plugins->add_hook("admin_index_navigation_end", "rss2post_admin_menu");
 function rss2post_admin_menu()
 {
 global $menu, $lang;
 $menu[] = array(
 "title" => "RSS To Post",
 "items" => array(
 10 => array("title" => $lang->nav_manage, "url" => "index.php?".SID."&plugin=rss2post&pluginaction=list"),
 )
 );
 }
 
 $plugins->add_hook("admin_index_start", "rss2post_admin");
 function rss2post_admin()
 {
 global $mybb, $db, $lang;
 if(isset($mybb->input['plugin']) && $mybb->input['plugin'] == 'rss2post')
 {
 addacpnav("RSS To Post", "index.php?".SID."&plugin=rss2post&pluginaction=list");
 $action = (isset($mybb->input['pluginaction'])) ? $mybb->input['pluginaction'] : 'list';
 if($action == 'do_update')
 {
 // Update existing feed info
 if(is_array($mybb->input['url']))
 {
 foreach($mybb->input['url'] as $fid => $url)
 {
 // Delete if requested
 if(isset($mybb->input['delete'][$fid]) && $mybb->input['delete'][$fid] == 'true')
 {
 $db->delete_query(TABLE_PREFIX."rss2post", "fid='{$fid}'", 1);
 continue;
 }
 
 // Validate variables
 $forum = intval($mybb->input['forum'][$fid]);
 $query = $db->simple_select(TABLE_PREFIX."forums", "fid", "type='f' AND fid='{$forum}'");
 if($db->num_rows($query) == 0)
 {
 cperror("One of the forum IDs you have provided is invalid.  Please go back and correct it.");
 }
 $update_array = array(
 'url' => $db->escape_string($url),
 'forum' => $forum
 );
 $db->update_query(TABLE_PREFIX."rss2post", $update_array, "fid='{$fid}'");
 if(isset($mybb->input['run'][$fid]) && $mybb->input['run'][$fid] == 'true')
 {
 rss2post_process_feed($url, $forum);
 }
 }
 }
 if(!empty($mybb->input['newurl']))
 {
 $forum = intval($mybb->input['newforum']);
 $query = $db->simple_select(TABLE_PREFIX."forums", "fid", "type='f' AND fid='{$forum}'");
 if($db->num_rows($query) == 0)
 {
 cperror("One of the forum IDs you have provided is invalid.  Please go back and correct it.");
 }
 $insert_array = array(
 'url' => $db->escape_string($mybb->input['newurl']),
 'forum' => $forum
 );
 $db->insert_query(TABLE_PREFIX."rss2post", $insert_array);
 if(isset($mybb->input['newrun']) && $mybb->input['newrun'] == 'true')
 {
 rss2post_process_feed($mybb->input['newurl'], $forum);
 }
 }
 cpredirect("index.php?".SID."&plugin=rss2post&pluginaction=list", "Die \"RSS To Post\"-Informationen wurden erfolgreich aktualiesiert.");
 die();
 }
 cpheader();
 
 starttable();
 
 startform("index.php");
 makehiddencode('plugin', 'rss2post');
 makehiddencode('pluginaction', 'do_update');
 
 tableheader('RSS To Post - Configuration', '', 4);
 
 tablesubheader(array('URL', 'Forum-ID', 'Löschen', 'Ausführen'));
 $query = $db->simple_select(TABLE_PREFIX."rss2post", "*");
 if($db->num_rows($query) > 0)
 {
 while($row = $db->fetch_array($query))
 {
 $bg = getaltbg();
 echo '<tr>';
 echo "\n<td class=\"{$bg}\" style=\"width:70%\"><input type=\"text\" name=\"url[{$row['fid']}]\" value=\"".htmlspecialchars_uni($row['url'])."\" style=\"width:100%\" /></td>";
 echo "\n<td class=\"{$bg}\" style=\"width:10%\"><input type=\"text\" name=\"forum[{$row['fid']}]\" value=\"".htmlspecialchars_uni($row['forum'])."\" style=\"width:100%\" /></td>";
 echo "\n<td class=\"{$bg}\" style=\"width:10%; text-align:center\"><input type=\"checkbox\" name=\"delete[{$row['fid']}]\" value=\"true\" /></td>";
 echo "\n<td class=\"{$bg}\" style=\"width:10%; text-align:center\"><input type=\"checkbox\" name=\"run[{$row['fid']}]\" value=\"true\" /></td>";
 echo '</tr>';
 }
 }
 else
 {
 echo '<tr><td colspan="4" class="trow1">No RSS feeds to display</td></tr>';
 }
 
 tablesubheader('Neuer RSS-Feed', '', 4);
 $bg = getaltbg();
 echo '<tr>';
 echo "\n<td class=\"{$bg}\" style=\"width:70%\"><input type=\"text\" name=\"newurl\" value=\"\" style=\"width:100%\" /></td>";
 echo "\n<td class=\"{$bg}\" style=\"width:10%\"><input type=\"text\" name=\"newforum\" value=\"\" style=\"width:100%\" /></td>";
 echo "\n<td class=\"{$bg}\" style=\"width:10%; text-align:center\"></td>";
 echo "\n<td class=\"{$bg}\" style=\"width:10%; text-align:center\"><input type=\"checkbox\" name=\"newrun\" value=\"true\" checked=\"checked\" /></td>";
 echo '</tr>';
 
 endtable();
 
 endform("RSS To Post-Konfiguration aktualisieren", $lang->reset_button);
 
 echo "<h3>Zusätzliche Plugin-Info:</h3><p><strong>Force Run:</strong> Wenn die Möglichkeit für \"cronjobs\" auf dem Server besteht, kannst du einen \"cronjob\" einrichten, der<br /><br />                                      <a href=\"{$mybb->settings['bburl']}/index.php?forcerss2post&rsspw={$mybb->settings['rss2post_forcerunpw']}\">{$mybb->settings['bburl']}/index.php?forcerss2post&rsspw={$mybb->settings['rss2post_forcerunpw']}</a><br /><br />im angegebenen Intervall ausführt. Alternativ kannst du diese URL verwenden, um das Plugin manuell auszuführen.</p>";
 //echo "<h3>Additional Plugin Info:</h3><p><strong>Force Run:</strong> If you have access to create cronjobs on your server, you can create a cronjob that runs <a href=\"{$mybb->settings['bburl']}/index.php?forcerss2post&rsspw={$mybb->settings['rss2post_forcerunpw']}\">{$mybb->settings['bburl']}/index.php?forcerss2post&rsspw={$mybb->settings['rss2post_forcerunpw']}</a> at the interval of your choice.  Alternatively you can use this URL to run the plugin manually whenever you choose.</p>";
 rss2post_cpfooter();
 die();
 }
 }
 
 $plugins->add_hook("global_end", "rss2post_run");
 function rss2post_run()
 {
 global $cache, $mybb, $db;
 
 // Quit if automatic mode is not turned on and run isn't being forced
 if($mybb->settings['rss2post_auto'] == 'no' && !isset($mybb->input['forcerss2post']))
 {
 return;
 }
 
 // If the run isn't forced, or the password is not correct, check timeout interval
 if(!isset($mybb->input['forcerss2post']) || $mybb->input['rsspw'] != $mybb->settings['rss2post_forcerunpw'])
 {
 $minutes_before_next_run = $mybb->settings['rss2post_interval']; // Minutes to wait before allowing another run.
 
 $last_run = $cache->read('rss2post');
 if($last_run > (time() - $minutes_before_next_run*60))
 {
 return;
 }
 }
 
 // Clear error data cache
 $cache->update('rss2post_errors', '');
 
 // Find out what feeds there are to update.
 $query = $db->simple_select(TABLE_PREFIX."rss2post");
 while($row = $db->fetch_array($query))
 {
 rss2post_process_feed($row['url'], $row['forum']);
 }
 $cache->update('rss2post', time());
 }
 
 function rss2post_process_feed($url, $forum)
 {
 global $db, $mybb, $cache;
 
 // Create feed reader
 $feeder = new lastRSS;
 $feeder->CDATA = 'content';
 
 $uid = intval($mybb->settings['rss2post_userid']);
 
 $query = $db->simple_select(TABLE_PREFIX."users", "username", "uid='{$uid}'");
 $user = $db->fetch_array($query);
 
 // Get the feed
 if($feed = $feeder->Get($url))
 {
 $items = $feed['items'];
 // Loop through each item
 foreach($items as $item_data)
 {
 // Make a title if none exists
 if(empty($item_data['title']))
 {
 $item_data['title'] = substr($item_data['description'], 0, 60);
 if(strlen($item_data['description']) > 60)
 {
 $item_data['title'] .= '...';
 }
 }
 /*            // See if title exists in posting forum
 $subject = html_entity_decode($item_data['title']);
 $subject_sql = $db->escape_string($subject);
 $query = $db->simple_select(TABLE_PREFIX."threads", "tid", "subject='{$subject_sql}' AND fid='{$forum}'");
 if($db->num_rows($query) == 0)
 {
 // Add thread to forum (code based on MyBB 1.2.1 newthread.php)
 // Set up posthandler.
 require_once MYBB_ROOT."inc/datahandlers/post.php";
 $posthandler = new PostDataHandler("insert");
 $posthandler->action = "thread";
 
 
 $message = html_entity_decode($item_data['description']);
 */
 // See if title exists in posting forum
 $filetype = ".".array_pop(explode(".", $url));
 if($filetype == "xml") {
 utf8_encode($subject);
 }
 $subject = html_entity_decode($item_data['title']);
 $subject_sql = $db->escape_string($subject);
 $query = $db->simple_select(TABLE_PREFIX."threads", "tid", "subject='{$subject_sql}' AND fid='{$forum}'");
 if($db->num_rows($query) == 0)
 {
 // Add thread to forum (code based on MyBB 1.2.1 newthread.php)
 // Set up posthandler.
 require_once MYBB_ROOT."inc/datahandlers/post.php";
 $posthandler = new PostDataHandler("insert");
 $posthandler->action = "thread";
 
 if($filetype == "xml") {
 utf8_encode($item_data['description']);
 }
 $message = html_entity_decode($item_data['description']);
 $meta_info = '';
 
 if(!empty($item_data['link']))
 {
 $meta_info .= ''.$item_data['link'];
 }
 if(!empty($meta_info))
 {
 $message .= "\n\nQuelle: ".$meta_info;
 }
 if(!empty($item_data['author']))
 {
 $message .= "\nAuthor: {$item_data['author']}";
 }
 if(!empty($item_data['comments']))
 {
 $message .= "\nComments: {$item_data['comments']}";
 }
 
 // Strip HTML tags if required
 if($mybb->settings['rss2post_striphtml'] == 'yes')
 {
 $message = strip_tags($message);
 }
 
 // Set the thread data
 $new_thread = array(
 "fid" => $forum,
 "subject" => $subject,
 if(my_strlen($subject) > 25)
 {
 $subject = my_substr($lastpost_subject, 0, 25) . "...";
 }
 "icon" => -1,
 "uid" => $uid,
 "username" => $user['username'],
 "message" => $message,
 "ipaddress" => '127.0.0.1',
 "posthash" => '',
 "savedraft" => 0,
 );
 
 // Set up the thread options
 $new_thread['options'] = array(
 "signature" => 'yes',
 "emailnotify" => 'no',
 "disablesmilies" => 'no'
 );
 
 $posthandler->set_data($new_thread);
 
 // Now let the post handler do all the hard work.
 if($posthandler->validate_thread())
 {
 $thread_info = $posthandler->insert_thread();
 }
 else
 {
 $errors = $cache->read("rss2post_errors");
 if($errors === false)
 {
 $errors = '';
 }
 
 $errors .= 'Date: ' . gmdate('r') . "\n";
 $errors .= "URL: {$url}\n";
 $errors .= "Forum ID: {$forum}\n";
 
 ob_start();
 var_dump($item_data);
 $errors .= ob_get_clean();
 
 $datahandler_errors = $posthandler->get_errors();
 ob_start();
 var_dump($datahandler_errors);
 $errors .= ob_get_clean();
 $errors .= "\n\n===========================================\n\n";
 
 $cache->update('rss2post_errors', $errors);
 }
 }
 }
 }
 else
 {
 $errors = $cache->read("rss2post_errors");
 if($errors === false)
 {
 $errors = '';
 }
 
 $errors .= 'Date: ' . gmdate('r') . "\n";
 $errors .= "URL: {$url}\n";
 $errors .= "Forum ID: {$forum}\n";
 
 $errors .= "There was a problem accessing the URL.";
 $errors .= "\n\n===========================================\n\n";
 
 $cache->update('rss2post_errors', $errors);
 }
 }
 
 function rss2post_cpfooter()
 {
 echo "<div align=\"center\">\n<br />\n<br />\n<font size=\"1\" face=\"Verdana,Arial,Helvetica\">\nRSS To Post Plugin by <a href=\"http://www.dennistt.net\">DennisTT</a>\n</font>\n</div>\n";
 cpfooter();
 }
 
 if(!function_exists('htmlspecialchars_decode'))
 {
 // Courtesy of people commenting @ php.net manual
 function htmlspecialchars_decode($text)
 {
 return strtr($text, array_flip(get_html_translation_table(HTML_SPECIALCHARS)));
 }
 }
 
 
 
 
 /*
 ======================================================================
 lastRSS 0.9.1
 
 Simple yet powerfull PHP class to parse RSS files.
 
 by Vojtech Semecky, webmaster @ webdot . cz
 
 Latest version, features, manual and examples:
 http://lastrss.webdot.cz/
 
 ----------------------------------------------------------------------
 LICENSE
 
 This program is free software; you can redistribute it and/or
 modify it under the terms of the GNU General Public License (GPL)
 as published by the Free Software Foundation; either version 2
 of the License, or (at your option) any later version.
 
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 GNU General Public License for more details.
 
 To read the license please visit http://www.gnu.org/copyleft/gpl.html
 ======================================================================
 */
 
 /**
 * lastRSS
 * Simple yet powerfull PHP class to parse RSS files.
 */
 class lastRSS {
 // -------------------------------------------------------------------
 // Public properties
 // -------------------------------------------------------------------
 var $default_cp = 'UTF-8';
 var $CDATA = 'nochange';
 var $cp = '';
 var $items_limit = 0;
 var $stripHTML = False;
 var $date_format = '';
 
 // -------------------------------------------------------------------
 // Private variables
 // -------------------------------------------------------------------
 var $channeltags = array ('title', 'link', 'description', 'language', 'copyright', 'managingEditor', 'webMaster', 'lastBuildDate', 'rating', 'docs');
 var $itemtags = array('title', 'link', 'description', 'author', 'category', 'comments', 'enclosure', 'guid', 'pubDate', 'source');
 var $imagetags = array('title', 'url', 'link', 'width', 'height');
 var $textinputtags = array('title', 'description', 'name', 'link');
 
 // -------------------------------------------------------------------
 // Parse RSS file and returns associative array.
 // -------------------------------------------------------------------
 function Get ($rss_url) {
 // If CACHE ENABLED
 if ($this->cache_dir != '') {
 $cache_file = $this->cache_dir . '/rsscache_' . md5($rss_url);
 $timedif = @(time() - filemtime($cache_file));
 if ($timedif < $this->cache_time) {
 // cached file is fresh enough, return cached array
 $result = unserialize(join('', file($cache_file)));
 // set 'cached' to 1 only if cached file is correct
 if ($result) $result['cached'] = 1;
 } else {
 // cached file is too old, create new
 $result = $this->Parse($rss_url);
 $serialized = serialize($result);
 if ($f = @fopen($cache_file, 'w')) {
 fwrite ($f, $serialized, strlen($serialized));
 fclose($f);
 }
 if ($result) $result['cached'] = 0;
 }
 }
 // If CACHE DISABLED >> load and parse the file directly
 else {
 $result = $this->Parse($rss_url);
 if ($result) $result['cached'] = 0;
 }
 // return result
 return $result;
 }
 
 // -------------------------------------------------------------------
 // Modification of preg_match(); return trimed field with index 1
 // from 'classic' preg_match() array output
 // -------------------------------------------------------------------
 function my_preg_match ($pattern, $subject) {
 // start regullar expression
 preg_match($pattern, $subject, $out);
 
 // if there is some result... process it and return it
 if(isset($out[1])) {
 // Process CDATA (if present)
 if ($this->CDATA == 'content') { // Get CDATA content (without CDATA tag)
 $out[1] = strtr($out[1], array('<![CDATA['=>'', ']]>'=>''));
 } elseif ($this->CDATA == 'strip') { // Strip CDATA
 $out[1] = strtr($out[1], array('<![CDATA['=>'', ']]>'=>''));
 }
 
 // If code page is set convert character encoding to required
 if ($this->cp != '')
 //$out[1] = $this->MyConvertEncoding($this->rsscp, $this->cp, $out[1]);
 $out[1] = iconv($this->rsscp, $this->cp.'//TRANSLIT', $out[1]);
 // Return result
 return trim($out[1]);
 } else {
 // if there is NO result, return empty string
 return '';
 }
 }
 
 // -------------------------------------------------------------------
 // Replace HTML entities &something; by real characters
 // -------------------------------------------------------------------
 function unhtmlentities ($string) {
 // Get HTML entities table
 $trans_tbl = get_html_translation_table (HTML_ENTITIES, ENT_QUOTES);
 // Flip keys<==>values
 $trans_tbl = array_flip ($trans_tbl);
 // Add support for ' entity (missing in HTML_ENTITIES)
 $trans_tbl += array(''' => "'");
 // Replace entities by values
 return strtr ($string, $trans_tbl);
 }
 
 // -------------------------------------------------------------------
 // Parse() is private method used by Get() to load and parse RSS file.
 // Don't use Parse() in your scripts - use Get($rss_file) instead.
 // -------------------------------------------------------------------
 function Parse ($rss_url) {
 // Open and load RSS file
 if ($f = @fopen($rss_url, 'r')) {
 $rss_content = '';
 while (!feof($f)) {
 $rss_content .= fgets($f, 4096);
 }
 fclose($f);
 
 // Parse document encoding
 $result['encoding'] = $this->my_preg_match("'encoding=[\'\"](.*?)[\'\"]'si", $rss_content);
 // if document codepage is specified, use it
 if ($result['encoding'] != '')
 { $this->rsscp = $result['encoding']; } // This is used in my_preg_match()
 // otherwise use the default codepage
 else
 { $this->rsscp = $this->default_cp; } // This is used in my_preg_match()
 
 // Parse CHANNEL info
 preg_match("'<channel.*?>(.*?)</channel>'si", $rss_content, $out_channel);
 foreach($this->channeltags as $channeltag)
 {
 $temp = $this->my_preg_match("'<$channeltag.*?>(.*?)</$channeltag>'si", $out_channel[1]);
 if ($temp != '') $result[$channeltag] = $temp; // Set only if not empty
 }
 // If date_format is specified and lastBuildDate is valid
 if ($this->date_format != '' && ($timestamp = strtotime($result['lastBuildDate'])) !==-1) {
 // convert lastBuildDate to specified date format
 $result['lastBuildDate'] = date($this->date_format, $timestamp);
 }
 
 // Parse TEXTINPUT info
 preg_match("'<textinput(|[^>]*[^/])>(.*?)</textinput>'si", $rss_content, $out_textinfo);
 // This a little strange regexp means:
 // Look for tag <textinput> with or without any attributes, but skip truncated version <textinput /> (it's not beggining tag)
 if (isset($out_textinfo[2])) {
 foreach($this->textinputtags as $textinputtag) {
 $temp = $this->my_preg_match("'<$textinputtag.*?>(.*?)</$textinputtag>'si", $out_textinfo[2]);
 if ($temp != '') $result['textinput_'.$textinputtag] = $temp; // Set only if not empty
 }
 }
 // Parse IMAGE info
 preg_match("'<image.*?>(.*?)</image>'si", $rss_content, $out_imageinfo);
 if (isset($out_imageinfo[1])) {
 foreach($this->imagetags as $imagetag) {
 $temp = $this->my_preg_match("'<$imagetag.*?>(.*?)</$imagetag>'si", $out_imageinfo[1]);
 if ($temp != '') $result['image_'.$imagetag] = $temp; // Set only if not empty
 }
 }
 // Parse ITEMS
 preg_match_all("'<item(| .*?)>(.*?)</item>'si", $rss_content, $items);
 $rss_items = $items[2];
 $i = 0;
 $result['items'] = array(); // create array even if there are no items
 foreach($rss_items as $rss_item) {
 // If number of items is lower then limit: Parse one item
 if ($i < $this->items_limit || $this->items_limit == 0) {
 foreach($this->itemtags as $itemtag) {
 $temp = $this->my_preg_match("'<$itemtag.*?>(.*?)</$itemtag>'si", $rss_item);
 if ($temp != '') $result['items'][$i][$itemtag] = $temp; // Set only if not empty
 }
 // Strip HTML tags and other bullshit from DESCRIPTION
 if ($this->stripHTML && $result['items'][$i]['description'])
 $result['items'][$i]['description'] = strip_tags($this->unhtmlentities(strip_tags($result['items'][$i]['description'])));
 // Strip HTML tags and other bullshit from TITLE
 if ($this->stripHTML && $result['items'][$i]['title'])
 $result['items'][$i]['title'] = strip_tags($this->unhtmlentities(strip_tags($result['items'][$i]['title'])));
 // If date_format is specified and pubDate is valid
 if ($this->date_format != '' && ($timestamp = strtotime($result['items'][$i]['pubDate'])) !==-1) {
 // convert pubDate to specified date format
 $result['items'][$i]['pubDate'] = date($this->date_format, $timestamp);
 }
 // Item counter
 $i++;
 }
 }
 
 $result['items_count'] = $i;
 return $result;
 }
 else // Error in opening return False
 {
 return False;
 }
 }
 }
 
 
 ?>
Gruß,NixxusMinimax
 
	
	
	
		
	Beiträge: 18.383Themen: 257
 Registriert seit: 09.02.2005
 
	
	
		Wenn ich das richtig sehe ist der Code schon enthalten und die Betreffe werden auf 60 Zeichen gekürzt. Bei Bedarf kannst du die Zahlen ändern: PHP-Code: $item_data['title'] = substr($item_data['description'], 0, 60);if(strlen($item_data['description']) > 60)
 {
 $item_data['title'] .= '...';
 }
 
Gruß, 
Michael
Support erfolgt NUR im Forum! Bitte gelöste Themen als "erledigt" markieren.
 Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
 
	
	
	
		
	Beiträge: 136Themen: 15
 Registriert seit: 18.01.2007
 MyBB-Version: 1.2.12
 
	
	
		Oops, sollte mal ab und zu meine Brille aufsetzen. 
 Danke dir!
 
Gruß,NixxusMinimax
 
	
	
	
		
	Beiträge: 136Themen: 15
 Registriert seit: 18.01.2007
 MyBB-Version: 1.2.12
 
	
	
		Hallo,
 heute kam die nächste Nachricht mit Überlänge. Problem besteht trotz Änderung weiterhin, soll heißen: der Betreff wir nicht auf die eingestellte Anzahl Zeichen gekürzt. Hab ich evtl. noch was übersehen?
 
Gruß,NixxusMinimax
 
	
	
	
		
	Beiträge: 18.383Themen: 257
 Registriert seit: 09.02.2005
 
	
	
		Suche nach: PHP-Code: if(empty($item_data['title'])){
 $item_data['title'] = substr($item_data['description'], 0, 60);
 if(strlen($item_data['description']) > 60)
 {
 $item_data['title'] .= '...';
 }
 }
 
Ersetzen durch:
 PHP-Code: if(empty($item_data['title'])){
 $item_data['title'] = substr($item_data['description'], 0, 60);
 if(strlen($item_data['description']) > 60)
 {
 $item_data['title'] .= '...';
 }
 } else {
 if(strlen($item_data['title']) > 60)
 {
 $item_data['title'] = substr($item_data['title'], 0, 60).'...';
 }
 }
 
Gruß, 
Michael
Support erfolgt NUR im Forum! Bitte gelöste Themen als "erledigt" markieren.
 Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
 
	
	
	
		
	Beiträge: 136Themen: 15
 Registriert seit: 18.01.2007
 MyBB-Version: 1.2.12
 
	
	
		sehr schön, das Beschneiden des Betreffs funktioniert jetzt schonmal. Ich hoffe dass es auch daran lag.Ich setzte das Thema mal vorsichtig auf Erledigt.
 
 Besten Dank & Gruß
 
Gruß,NixxusMinimax
 |