Events on ezPortal - im Header anzeigen

Allgemeiner Support zum phpBB 2 Board und phpBB 2 Modifikationen
Forumsregeln
Auch wenn hier der Support für phpBB 2 weiterhin aufrecht erhalten bleibt, weisen wir darauf hin, dass das phpBB 2 nicht mehr offiziell unterstützt und weiterentwickelt wird!
Antworten
Benutzeravatar
smarty
Beiträge: 128
Registriert: So 17.Jul, 2005 15:13

Events on ezPortal - im Header anzeigen

Beitrag von smarty »

Ich benötige nochmal Hilfe.

Die Events sollen horizontal im Header scrollen.
Dazu habe ich folgende Zeilen aus der portal.php in die page_header.php übernommen.

Code: Alles auswählen

$cal_config = array();

$sql = "SELECT * FROM ".$table_prefix."cal_config";
if(!$result = $db->sql_query($sql))
{
	message_die(GENERAL_ERROR, "Couldn't query calendar config table", "", __LINE__, __FILE__, $sql);
}
else
{
	while( $row = $db->sql_fetchrow($result) )
	{
		$cal_config[$row['config_name']] = $row['config_value'];
	}
}
und

Code: Alles auswählen

//
// Events
//
if ($cal_config['number_events'] <> 0)
{
	$day = create_date("j", time(), $userdata['user_timezone']);
	$month = create_date("m", time(), $userdata['user_timezone']);
	$year = create_date("Y", time(), $userdata['user_timezone']);

	if ($cal_config['day_number'] == 0)
	{
		$sql_limit = ' LIMIT 0, ' . $cal_config['number_events'];
		$event_span_date = '';
		$sql_span = '';
	}
else
        {
                $cal_days = $cal_config['number_events'];
                $sql_limit = '';
                $event_span_date = strtotime("$year-$month-$day 23:59:59 + $cal_days days");
                $event_span_date = create_date("Y", $event_span_date, $userdata['user_timezone']).'-'.create_date("m", $event_span_date, $userdata['user_timezone']).'-'.create_date("j", $event_span_date, $userdata['user_timezone']).' 23:59:59';
                $sql_span = " AND stamp <= '$event_span_date'";
        }

	$sql = "SELECT * FROM ".$table_prefix."calendar WHERE valid = 'yes'
			AND stamp >= '$year-$month-$day 00:00:00'
			$sql_span
			ORDER BY stamp" . $sql_limit;

	$check = 0;
	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, 'Could not select Event data', '', __LINE__, __FILE__, $sql);
	}
	else
	{
		while ($row = $db->sql_fetchrow($result))
		{
			$check++;
			$subject = stripslashes($row['subject']);
			if ( strlen($subject) > $cal_config['subject_length']) {
				if ((substr($subject,-3,1) == '(') && (substr($subject,-1,1) == ')')) {
					// store the number of permits and tack them on the end of the shortened subject
					$subjectnum = substr($subject,-2,1);
					$subject = substr($subject, 0, -3);
				}
				$subject = substr($subject, 0, $cal_config['subject_length']);
				$subject .= '..';
			}
			$start_date = substr($row['stamp'],8,2).".".substr($row['stamp'],5,2).".".substr($row['stamp'],0,4);
			$end_date = substr($row['eventspan'],8,2).".".substr($row['eventspan'],5,2).".".substr($row['eventspan'],0,4);

			if ( $start_date == $end_date )
			{
				$span = $start_date;
			}
			else
			{
				$span = $start_date . " - " . $end_date;
			}
			$subject = ( $userdata['session_logged_in'] ) ? '<a href="'. $phpbb_root_path .'calendar.'.$phpEx.'?id='. $row['id'] .'&mode=display&day='. substr($row['stamp'],8,2). '&month='.substr($row['stamp'],5,2).'&year='.substr($row['stamp'],0,4).'">'. $subject .'</a>' : $subject;
			$author = ( $userdata['session_logged_in'] ) ? '<a href="'. $phpbb_root_path .'profile.'.$phpEx.'?mode=viewprofile&'. POST_USERS_URL .'='. $row['user_id'] .'">('. stripslashes($row['username']) .')</a>' : '('. stripslashes($row['username']) .')';
			$template->assign_block_vars('event', array(
				'SUBJECT' => $subject,
				'SPAN' => $span,
				'AUTHOR' => $author));
		}
		if ( $check == 0 )
		{
		   $template->assign_block_vars('event', array(
			'SUBJECT' => $lang["No_events"]));
		}
	}
}
Also die Zeilen, die im Portal die Events erzeugen.

Jetzt erhalte ich nach Login diese Fehlermeldung:
Critical Error!
message_die() was called multiple times.
Error #1
Du hast Dich erfolgreich eingeloggt.

Klick hier um zum Index zurückzukehren

Error #2
Couldn't query calendar config table

Line : 86
File : C:\Programme\xampp\htdocs\foren\aktuell-asia\orion\includes\page_header.php
SQL : SELECT * FROM cal_config
Klich ich F5, dann bin ich onboard und es scheint alles zu laufen :eek:

Um Line 86 herum schaut es so aus ..

Code: Alles auswählen

$cal_config = array();

$sql = "SELECT * FROM ".$table_prefix."cal_config";
if(!$result = $db->sql_query($sql))
{
	message_die(GENERAL_ERROR, "Couldn't query calendar config table", "", __LINE__, __FILE__, $sql);
}

Zusätzlich habe ich die MOD Mini_Cal verbaut.
Mit dem Include aus der Portal.php will es auch nicht laufen.
Aus der Portal.php ...

Code: Alles auswählen

// MOD MINI CAL BEGIN
include($phpbb_root_path . 'mods/netclectic/mini_cal/mini_cal.'.$phpEx); 
// MOD MINI CAL END
Die Fehlermeldung ist mir nicht klar, weil es doch aus dem Portal heraus anstandslos läuft.
Ich nutze das ORION.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Nun ja, beim ersten Start der page_header.php steht $table_prefix nunmal nicht sofort zur Verfügung, daher solltest Du es besser mit der Konstante für diese Tabelle versuchen, die in der includes/constants.php definiert wird.
Man kann eben manche Sachen nicht so ohne weiteres in den Board-Header packen...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Markus Wandel
Beiträge: 240
Registriert: Mo 06.Sep, 2004 09:03
Wohnort: Wuppertal
Kontaktdaten:

Beitrag von Markus Wandel »

N'Abend,

ich hatte mir da mal was für unsere alte Startseite gebastelt. Kannst Du gerne für deine Zwecke umschrieben:

in der entsprechenden php-Datei einbauen:

Code: Alles auswählen

// MEETINGS MARQUEE by MARKUS WANDEL
	$sql = "SELECT count(meeting_id) as total_meetings FROM " . MEETING_DATA_TABLE;

	if ( !$result = $db->sql_query($sql) )
	{
		message_die(GENERAL_ERROR, 'Could not get meeting data', '', __LINE__, __FILE__, $sql);
	}

	while ( $row = $db->sql_fetchrow($result) )
	{
		$meeting_active_ids = $row['total_meetings'];
	}

	$db->sql_freeresult($result);
	
	if ( $meeting_active_ids == 0 )
	{
		$meeting_active_string = "Aktuell sind keine Treffen geplant";
	}
	else if ( $meeting_active_ids == 1 )
	{
		$meeting_active_string = "Aktuell ist ein Treffen geplant";
	}
	else
	{
		$meeting_active_string = "Aktuell sind " . $meeting_active_ids . " Treffen geplant";
	}
	

$sql = "SELECT * FROM " . MEETING_DATA_TABLE . "
	ORDER BY meeting_time ASC";

	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, "Could not read meeting data", '', __LINE__, __FILE__, $sql);
	}
	
	while( $row = $db->sql_fetchrow($result) )
	{
		$meeting_id = $meetingrow[$i]['meeting_id'];
		$meeting_subject = $row['meeting_subject'];
		$meeting_location = $row['meeting_location'];
		$meeting_time = create_date($board_config['default_dateformat'], $row['meeting_time'], $board_config['board_timezone']);
		$meeting_until = create_date($board_config['default_dateformat'], $row['meeting_until'], $board_config['board_timezone']);
		$meetings .= " » " . $meeting_time. " Uhr: " . $meeting_subject . ", " . $meeting_location . " «&nbsp;&nbsp;&nbsp;&nbsp;";
	}
	$db->sql_freeresult($result);

	$meetings .= "";
	$template->assign_vars(array(
		'AKTIVE' => $meeting_active_string,
		'MEETINGS' => $meetings)
	);
// MEETINGS MARQUEE by MARKUS WANDEL
in der entsprechenden tpl-Datei einbauen:

Code: Alles auswählen

<a title="Details zu den Treffen" target="Hauptframe" href="http://www.rocofa.de/phpBB2/meeting.php">
<marquee scrollamount="3" scrolldelay="20" style="font-family: Georgia; font-weight: bold">{AKTIVE} : {MEETINGS}</marquee></a>
gruß,
Markus
www.RoCoFa.de - Wir sind die RollerCoasterFans
Die Seite f?r Achterbahn- und Freizeitparkfans
Kostenlose Mitgliedschaft, keine Verpflichtungen.
Benutzeravatar
smarty
Beiträge: 128
Registriert: So 17.Jul, 2005 15:13

Beitrag von smarty »

die beiden Konstanten hatte ich bereits in der includes/constants.php definiert - hmm, war wohl doch noch etwas müde.

warum muß man immer erst posten, bevor was klappt? :wall:

Danke dir, es klappt :)

Hab es so geändert:
$sql = "SELECT * FROM ". CALENDAR_TABLE . " ORDER BY subject";

if(!$result = $db->sql_query($sql))
{
message_die(GENERAL_ERROR, "Couldn't query calendar config table", "", __LINE__, __FILE__, $sql);
}
else
{
while( $row = $db->sql_fetchrow($result) )
{
$cal_config[$row['config_name']] = $row['config_value'];
}
}
Dazu die Konstante nochmals definiert.

Die Ausgabe erfolgt zwar nicht in jeder Datei, aber immerhin :)
Zuletzt geändert von smarty am Sa 11.Aug, 2007 21:27, insgesamt 1-mal geändert.
Antworten