RDF-Parser Zeichenbegrenzung

Du hast Probleme beim Einbau oder bei der Benutzung eines Mods? In diesem Forum bist du richtig.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Elektron
Mitglied
Beiträge: 128
Registriert: 10.01.2005 21:42

RDF-Parser Zeichenbegrenzung

Beitrag von Elektron »

Hallo,

möchte gerne die Textzeichen vom RDF-Praser auf 100 Zeichen im Text begrenzen (Überschirft soll vollständig angezeigt werden).

Wer kann mir weiterhelfen?

Vermutlich muss im folgenden Code die Begrenzung von news_item.TEXT auf 100 begrenzt werden:

Code: Alles auswählen

<?php
function cache_file($url, $cachefile, $cachetime = 900) {
    $stat = @stat($cachefile);
    if ($stat[9] < (time() - $cachetime)) {
		$fp_url = fopen($url, 'r');
		$fp_cache = fopen($cachefile, 'w');
		while($str = fread($fp_url, 1024)) {
			fwrite($fp_cache, $str);
		}
		fclose($fp_url);
		fclose($fp_cache);
		return false;
	}
	else {
		return true;
	}
}

class rdf_parser {
	var $file;
	var $cache_file = '';
	var $cache_time = 0;
	var $cache_used = false;

	var $content = '';

	var $channel = array();
	var $items = array();

	function rdf_parser($file, $cache_file='', $cache_time=0) {
		$this->file = $file;
		$this->cache_file = $cache_file;
		$this->cache_time = $cache_time;
		//$this->parse();
	}

	function match($text, $elements) {
		$ret = array();
		foreach($elements as $element) {
			if(preg_match("#<$element>(.*?)</$element>#si", $text, $matches)) {
				$ret[$element] = $matches[1];
			}
		}
		return $ret;
	}

	function parse() {
		$file = $this->file;
		if($this->cache_file && $this->cache_time) {
			$this->cache_used = cache_file($this->file, $this->cache_file, $this->cache_time);
			$file = $this->cache_file;
		}
		$this->content = implode('', file($file));

		if(preg_match('#<channel>(.*?)</channel>#si', $this->content, $matches)) {
			$this->channel = $this->match($matches[1], array('title', 'description', 'link'));
		}
		preg_match_all('#<item>(.*?)</item>#si', $this->content, $matches, PREG_PATTERN_ORDER);
		foreach($matches[1] as $item) {
			$this->items[] = $this->match($item, array('title', 'description', 'link'));
		}
	}

	function template_output($block_name) {
		global $template;
		$row = 0;
	    foreach($this->items as $item) {
	        $template->assign_block_vars($block_name, array(
	            'ROW_CLASS' => ($row++%2 == 0 ? 'row1' : 'row2'),
	            'TITLE' => $item['title'],
	            'TEXT' => $item['description'],
	            'URL' => $item['link']
	        ));
	    }
	}
}

function show_rdf($url, $block_name, $cache_file='', $cache_time=0) {
	$parser = new rdf_parser($url, $cache_file, $cache_time);
	$parser->parse();
	$parser->template_output($block_name);
}
?>
Wäre super, wenn mir hier jemand helfen könnte.

Im vorraus schonmal ein herzliches Dankeschön.

Gruß Elektron
Antworten

Zurück zu „phpBB 2.0: Mod Support“