Beiträge: 136
Themen: 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.383
Themen: 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: 136
Themen: 15
Registriert seit: 18.01.2007
MyBB-Version: 1.2.12
13.02.2008, 21:12
(Dieser Beitrag wurde zuletzt bearbeitet: 13.02.2008, 23: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.383
Themen: 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: 136
Themen: 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: 136
Themen: 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.383
Themen: 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: 136
Themen: 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
|