Heise Newsticker ohne Portal

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.
Benutzeravatar
REincarnation
Mitglied
Beiträge: 321
Registriert: 16.10.2003 10:06
Wohnort: Rostock
Kontaktdaten:

Heise Newsticker ohne Portal

Beitrag von REincarnation »

Hallo zusammen,

ich suche eine Möglichkeit zum Einbinden des Heise Newstickers in meinem Board. Allerdings möchte ich keine Box wie vielleicht in einem Portal, sondern einen Ticker unter dem Header, welcher scrollt. Ähnlich wie bei http://www.oxpus.de/phpBB/portal.php

Ich habe direkt auf der Seite schon gesucht, aber nichts gefunden. Auch die Suche hier war bisher erfolglos. Kann jemand helfen?
Zuletzt geändert von REincarnation am 12.04.2004 19:01, insgesamt 1-mal geändert.
Computerverein Rostock e.V.
Bloßes Ignorieren ist noch keine Toleranz.
Benutzeravatar
Firestarter
Mitglied
Beiträge: 1162
Registriert: 09.06.2003 15:21

Beitrag von Firestarter »

MfG
Firestarter
Auch ich versuche mein Glück und möchte ein schönes Forum haben, dafür muss ich wohl erstmal leiden. *fg*
Benutzeravatar
REincarnation
Mitglied
Beiträge: 321
Registriert: 16.10.2003 10:06
Wohnort: Rostock
Kontaktdaten:

Beitrag von REincarnation »

Das habe ich auch gefunden. Nur wie bindet man dieses rdf-Dokument ein und wie wird daraus ein Scrollbarer Newsticker. Bei www.oxpus.de habe ich folgendes gefunden.

Tpl-Datei wo die News erscheinen sollen:

Code: Alles auswählen

<table width="100%" border="0" cellpadding="0" cellspacing="0"> 
      <tr><td class="row2" align="center" height="15"><span class="genmed"><b>Heise - Newsticker</b></span></td></tr> 
      <tr><td align="center"><span class="gensmall"> 
      <marquee id="heise" behavior="scroll" direction="left" scrolldelay="50" scrollamount="3" onMouseOver="stop()" onMouseOut="start()"> 
      <!-- BEGIN newsticker --> 
      {newsticker.heise_Ticker} 
      <!-- END newsticker --> 
      </marquee></span></td></tr> 
      </table>
...und dann noch die Definition in der portal.php (welche ja in meinem normalen Board nicht vorhanden ist)
Und in der Index.php weiss ich nicht an welche Stelle der Code muss.

Code: Alles auswählen

$content = implode ("", file ("http://www.heise.de/newsticker/heise.rdf")); 
preg_match_all("|<item>(.*)</item>|Uism",$content, $items, PREG_PATTERN_ORDER); 
for ($i=0;$i<count($items[1]);$i++) 
{ 
  preg_match_all("|<title>(.*)</title>(.*)<link>(.*)</link>|Uism",$items[1][$i], $regs, PREG_PATTERN_ORDER); 
$template->assign_block_vars('newsticker',array( 
    'heise_Ticker' => "<a href='".$regs[3][0]."' target='_blank' style='color: #0000FF' class='mainmenu'><b>".$regs[1][0]."</b></a> <img src='images/dot.gif' border='0'>")); 
}
Jetzt nur die Frage wo und wie ich es bei mir einbauen soll. Ich habe leider noch nichts gefunden.
Computerverein Rostock e.V.
Bloßes Ignorieren ist noch keine Toleranz.
Both

Beitrag von Both »

Na ich denk mal mit include()! :wink:

Code: Alles auswählen

include('http://www.heise.de/newsticker/heise.rdf');
Oder? :)
Benutzeravatar
REincarnation
Mitglied
Beiträge: 321
Registriert: 16.10.2003 10:06
Wohnort: Rostock
Kontaktdaten:

Beitrag von REincarnation »

Geht ja so einfach nicht in einer tpl-datei. Genau genommen passiert dann nix. (bei mir zumindest)
Computerverein Rostock e.V.
Bloßes Ignorieren ist noch keine Toleranz.
Benutzeravatar
REincarnation
Mitglied
Beiträge: 321
Registriert: 16.10.2003 10:06
Wohnort: Rostock
Kontaktdaten:

Beitrag von REincarnation »

So ich habe nun nach ein paar Tüftlerstunden einen funktionieren Heise-Scroll-Ticker im Board. Für alle die sowas auch wollen:

index_body.tpl (Dort wo die News erscheinen sollen)

Code: Alles auswählen

<table width="100%" border="0" cellpadding="1" cellspacing="0" style="background-color: transparent; border: 2px solid #dedede;"><tr><td><table width="100%" border="0" cellpadding="0" cellspacing="0"> 
      <tr><td class="catHead" align="center" height="20"><span class="gensmall"><b>Heise - Newsticker</b></span></td>
      </tr> 
      <tr><td height="20" align="center" valign="middle"><span class="gensmall">
      <marquee id="heise" behavior="scroll" direction="left" scrolldelay="50" scrollamount="3" onMouseOver="stop()" onMouseOut="start()"> 
      <!-- BEGIN newsticker --> 
      {newsticker.heise_Ticker}
      <!-- END newsticker --> 
      </marquee></span></td></tr> 
      </table></td></tr></table>
includes/page_header.php

Finde:

Code: Alles auswählen

//
// Parse and show the overall header.
//
include($phpbb_root_path . 'includes/functions_rate.'.$phpEx);
$template->set_filenames(array(
	'overall_header' => ( empty($gen_simple_header) ) ? 'overall_header.tpl' : 'simple_header.tpl')
);
Danach einfügen:

Code: Alles auswählen

//
// Heise Newsticker
//
$content = implode ("", file ("http://www.heise.de/newsticker/heise.rdf")); 
preg_match_all("|<item>(.*)</item>|Uism",$content, $items, PREG_PATTERN_ORDER); 
for ($i=0;$i<count($items[1]);$i++) 
{ 
  preg_match_all("|<title>(.*)</title>(.*)<link>(.*)</link>|Uism",$items[1][$i], $regs, PREG_PATTERN_ORDER); 
$template->assign_block_vars('newsticker',array( 
    'heise_Ticker' => "<a href='".$regs[3][0]."' target='_blank' class='mainmenu'><b>".$regs[1][0]."</b></a>&nbsp;&nbsp;-|-&nbsp;&nbsp;")); 
}
Ich übernehme selbstverständlich keine Haftung für den Code. Ich bin so gesehen blutiger Anfänger aber es funktionier. (auch ein blindes Huhn findet mal ein Korn) Wäre schön, wenn sich mal ein Profi dazu äußern würde.
Computerverein Rostock e.V.
Bloßes Ignorieren ist noch keine Toleranz.
Benutzeravatar
Elvis
Mitglied
Beiträge: 3373
Registriert: 26.05.2003 22:39

Beitrag von Elvis »

klasse und ich bastel an sowas die ganze hand rum :-?

bis ja Einverstanden wenn ich dein Code verwende :D
Zuletzt geändert von Elvis am 13.04.2004 17:16, insgesamt 1-mal geändert.
Benutzeravatar
REincarnation
Mitglied
Beiträge: 321
Registriert: 16.10.2003 10:06
Wohnort: Rostock
Kontaktdaten:

Beitrag von REincarnation »

Sicher ... Warum sich nochmal quählen :D
Computerverein Rostock e.V.
Bloßes Ignorieren ist noch keine Toleranz.
Benutzeravatar
REincarnation
Mitglied
Beiträge: 321
Registriert: 16.10.2003 10:06
Wohnort: Rostock
Kontaktdaten:

Beitrag von REincarnation »

Bei mir hat sich gezeigt, dass es zu erheblichen Performanceeinbußen nach dem Einbau des Tickers kommt. Ich weiss es nicht genau, aber ich nehme an, dass es an dem Code in der page_header.php liegt. Wie kann man es schneller machen oder anders?
Computerverein Rostock e.V.
Bloßes Ignorieren ist noch keine Toleranz.
Benutzeravatar
oxpus
Ehemaliges Teammitglied
Beiträge: 5394
Registriert: 03.02.2003 12:33
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Ich hatte den Newsticker zwischenzeitig ausbauen müssen, da scheinbar heise.de stark belastet war.
Hier mal der Code, den ich für mein ezPortal verwende, um diese Performance-Verluste auszugleichen (der Newsticker wird dann einfach nicht angezeigt):

Code: Alles auswählen

#
#-----[ OPEN ]-----
#
portal.php

#
#-----[ FIND ]-----
#
//
// Generate the page
//
$template->pparse('body');

include($phpbb_root_path . 'includes/page_tail.'.$phpEx);

?>

#
#-----[ BEFORE, ADD ]-----
#
$timecheck = microtime();
$content = implode ("", file ("http://www.heise.de/newsticker/heise.rdf")); 
preg_match_all("|<item>(.*)</item>|Uism",$content, $items, PREG_PATTERN_ORDER); 
$heise_newsticker = array();
$cancel_heise = FALSE;
for ($i=0;$i<count($items[1]);$i++) 
{ 
	preg_match_all("|<title>(.*)</title>(.*)<link>(.*)</link>|Uism",$items[1][$i], $regs, PREG_PATTERN_ORDER); 
	$heise_newsticker[] = "<a href='".$regs[3][0]."' target='_blank' style='color: #0000FF' class='mainmenu'><b>".$regs[1][0]."</b></a> <img src='images/dot.gif' border='0'>";
	if ( ( microtime()-$timecheck ) * 10 > 2 )
	{
		$i = 11;
		$cancel_heise = TRUE;
	}
}
if ( $cancel_heise != TRUE ) 
{
	$template->assign_block_vars('switch_heise_newsticker_on', array());

	for ($i=0;$i<count($items[1]);$i++) 
	{ 
		$template->assign_block_vars('switch_heise_newsticker_on.newsticker',array( 
			'heise_Ticker' => $heise_newsticker[$i])
		); 
	}
}

#
#-----[ OPEN ]-----
#
templates/subSilver/portal_body.tpl

#
#-----[ FIND ]-----
# // The beginning of the middle colums on ezPortal!
		<table width="97%" cellspacing="1" cellpadding="1" border="0" align="center"><tr><td>

#
#-----[ AFTER, ADD ]-----
#
		<!-- BEGIN switch_heise_newsticker_on -->
		<table width="100%" border="0" cellpadding="0" cellspacing="0">
		<tr><td class="row2" align="center" height="15"><span class="genmed"><b>Heise - Newsticker</b></span></td></tr>
		<tr><td align="center"><span class="gensmall">
		<marquee id="heise" behavior="scroll" direction="left" scrolldelay="50" scrollamount="3" onMouseOver="stop()" onMouseOut="start()">
		<!-- BEGIN newsticker -->
		{switch_heise_newsticker_on.newsticker.heise_Ticker}
		<!-- END newsticker -->
		</marquee></span></td></tr>
		</table>
		<!-- END switch_heise_newsticker_on -->


#
#-----[ SAVE/CLOSE ALL FILES ]-----
#
# EoM
Dabei ist die Prüfzeit bewusst eng gesetzt und sollte in der Regel ausreichen. Wer mehr Zeit haben will, muss nur in der Zeile

Code: Alles auswählen

	if ( ( microtime()-$timecheck ) * 10 > 2 )
die "2" durch eine höhere Zahl ersetzen, was dann aber das Portal zwangsweise wieder etwas mehr ausbremst!

Achtung! Es wird durch den o.g. Code nicht geprüft, wie lange das Laden des Newsinhaltes von heise.de braucht! Ledigleich bei einer Überschreitung der vorgegebenen Zeit bricht das Script sofort ab.
Grüße
OXPUS
Kein Support bei unaufgeforderten PNs, E-Mails oder auf anderem Weg!!
Antworten

Zurück zu „phpBB 2.0: Mod Support“