Pagina 1 van 1

breakout Frame

Geplaatst: 24 feb 2008, 01:07
door debrouwer
Weet iemand hoe je er voor kan zorgen dat de opgevraagde rss, die in mijn nieuwssysteem vertoond word opent in een gehele nieuwe pagina.
Het is namelijk zo dat ik een nieuws systeem gebruik, en daar in bepaalde items op staan van mijn forum.Zodra je de link aanklikt opent hij het forum in mijn framepagina. nu wil ik dat hij in een nieuwe pagina opent. hieronder staat een stukje schript van de rssfeed, daarin staat al de optie _top en _new heb ik ook al geprobeerd. Hij maakt dus wel een nieuwe pagina aan maar breekt niet uit mijn Frame. kan iemand mij hierbij helpen?

Code: Selecteer alles

<?php

/*
////////////////////////////
	Lumon
	Written by: Stefan Hospes
	Start: 3 - 10 - 2006
	File: content_left_rss.php
////////////////////////////
*/


if ( !defined('INSYS') )
{
	die("Hacking attempt");
}

function content_sub_rss_config()
{
	return array(	'rss reader' => array('content/left','A rss reader','content_sub_rss',1,array('content_sub_rss',-1,'content_left_rss')),
					'rss reader right' => array('content/right','A rss reader','content_sub_rss',1,array('content_sub_rss',-1,'content_right_rss')));
}

function content_sub_rss()
{
	// The url of the xml feed
	$feed = 'http://www.ajax.nl/rss/';
	
	// Maximum amount of items to be displayed
	$amount = 5;
	
	// Enable caching
	$cache = true;
	
	// Cache dir
	$cache_dir = 'plugins/content/sub/rss_cache';
	
	if(is_writable($cache_dir))
	{
		// Fetch and Parse feed
		list($title,$link,$description,$elements) = parse_feed(fetch_feed($feed,$cache_dir,$cache),$amount);
		
		// Sort out title
		if($title != '')
		{
			$title = '<a title="'.$description.'" href="'.$link.'" target="_top">'.$title.'</a>';
		}
		else
		{
			$title = ERROR_41;
		}
	}
	else
	{
		$title = ERROR_41;
		$elements = ERROR_44;
	}
	
	// Load the sub
	load('theme_sub',array($title,$elements));
}

function fetch_feed($url,$cache_dir,$cache)
{ 
	$url_parts = parse_url($url);

    $filename = $url_parts['host'] . str_replace("/", ",", $url_parts['path']) . "_" . @$url_parts['query'];
	
    if(file_exists($cache_dir."/$filename")) 
	{
		$last = filemtime($cache_dir."/$filename");
		$create = 0;
		
		if(time() - $last > 60 * 60) 
		{
			$update = 1;
		} 
		else 
		{
			$update = 0;
		}
    } 
	else 
	{
		$create = 1;
		$update = 1;
    }

    if($create == 1 || ($cache == true && $update == 1)) 
	{
		$fp = @fsockopen($url_parts['host'], 80, $errno, $errstr, 5);
		
		if (!$fp) 
		{
			return "Couldn't open rss feed {$url} in {$_SERVER['PHP_SELF']}<br />\n";
		}
		
		fputs($fp, "GET " . $url_parts['path'] . "" . @$url_parts['query'] . " HTTP/1.0\r\n"
                ."Host: " . $url_parts['host'] . "\r\n"
                ."Connection: Close\r\n\r\n");
				
		$rss_data = '';

		while(!feof($fp)) 
		{
			$rss_data .= @fgets($fp, 1024);
		}

		list(, $rss_data) = explode("\r\n\r\n", $rss_data, 2);

		$output = @fopen($cache_dir."/$filename", "w+");
		
		if(!$output) 
		{
			return $rss_data;
		} 
		else 
		{
			// Update
			
			flock($output, LOCK_EX);
			fputs($output, $rss_data);
			flock($output, LOCK_UN);
			fclose($output);
		}
    }

    return file_get_contents($cache_dir."/$filename");
}

function parse_feed($data,$max)
{
	preg_match("/<title>(.*?)<\/title>/", $data, $feed_title);
    $title = (isset($feed_title[1]) ? $feed_title[1] : '');

    preg_match("/<link>(.*?)<\/link>/", $data, $feed_link);
    $link = (isset($feed_link[1]) ? $feed_link[1] : '');

    preg_match("/<description>(.*?)<\/description>/", $data, $feed_description);
    $description = (isset($feed_description[1]) ? $feed_description[1] : '');

    preg_match_all("/<item[^>]*>(.*?)<\/item>/s", $data, $feed_items);
	$items = (isset($feed_items[1]) ? $feed_items[1] : '');
	
	$elements = array();
	
	if(count($items) > 0)
	{		
		for($i = 0; $i < sizeof($items) && $i < $max; ++$i) 
		{	
			preg_match("/<title>(.*?)<\/title>/", $items[$i], $feed_title);
			preg_match("/<link>(.*?)<\/link>/", $items[$i], $feed_link);
			
			if(isset($feed_title[1]) && isset($feed_link[1]) && $feed_link[1] != '')
			{
				$elements[] = array(ucfirst((strlen($feed_title[1]) > 15) ? substr($feed_title[1],0,15).'..' : $feed_title[1] ),$feed_link[1]);
			}
		}
	}
	
	return array($title,$link,$description,(count($elements) > 0) ? $elements : ERROR_42);
}

Re: breakout Frame

Geplaatst: 24 feb 2008, 12:37
door BetaDevil
target="_blank" zou wel moeten werken dan, maar als je een base target hebt ingesteld weet ik niet zeker of je daar zo maar uitkomt (als je dat gedaan hebt tenminste :roll:).

Re: breakout Frame

Geplaatst: 24 feb 2008, 18:22
door debrouwer
wat je al zij, helaas werkt _blank ook niet.
is er dan geen mogelijkheid om dit zo te krijgen dat hij wel naar een nieuwe pagina gaat?

Re: breakout Frame

Geplaatst: 24 feb 2008, 18:28
door Gamemaniak
Waar gebruik je een frame? Je kan het toch ook gewoon je rss includen op die pagina?

Re: breakout Frame

Geplaatst: 24 feb 2008, 18:44
door debrouwer
mijn nieuwspagina (cmd) die geeft het laatste nieuws door op mijn website, en het nieuwssysteem staat in een frame op mijn site. ook in het nieuws systeem kan je een rss reader toevoegen,. dus dat heb ik gedaan en alles werkt wel alleen wil dat hij het forum laad in een nieuwe pagina. wat wel vreemd is, dat de naam van mijn forum boven aan de rssreader word vermeld, en zodra je daar op klikt komt er wel een nieuwe pagina. maar voor de links van de topics niet.