Calendar 1.4und Birthday

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
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.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Benutzeravatar
Peranco
Mitglied
Beiträge: 11
Registriert: 08.04.2003 13:07
Kontaktdaten:

Beitrag von Peranco »

hab da was gefunden....könnte vielleicht das richtige für uns sein....

warte aber noch auf eine bestätigung ob es mit den aktellen versionen funzt...


http://www.phpbb2.de/phpBB/viewtopic.php?t=66
Benutzeravatar
oxpus
Ehemaliges Teammitglied
Beiträge: 5389
Registriert: 03.02.2003 12:33
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Und genau das funzt nur mit der Version 1.2.2x. Nicht mehr mit 1.4.x und genau dafür suche ich einen Mod :cry:
Benutzeravatar
oxpus
Ehemaliges Teammitglied
Beiträge: 5389
Registriert: 03.02.2003 12:33
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

So, ich habe es endlich geschafft: Die Anzeige der Geburtstage im Calender lite 1.4.x.x!!!

EDIT: CODE ENTFERNT! SIEHE FOLGEBEITRÄGE!!!

BITTE ZUNÄCHST DEN CODE VOM ÜBERNÄCHSTEN BEITRAG INSTALLIEREN, UND DANN DEN ERSTEN. SOMIT BLEIBT DIE REIHENFOLGE GEWAHRT.
Zuletzt geändert von oxpus am 21.04.2003 02:50, insgesamt 2-mal geändert.
Benutzeravatar
oxpus
Ehemaliges Teammitglied
Beiträge: 5389
Registriert: 03.02.2003 12:33
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

So, hier die Lösung für das Layout-Problem:

Code: Alles auswählen

#
# Find in calendar.php
#

	// Changed the range to do ALL the days not require duplicate code later.

#
# After add
#

	$max_query = 0;

#
# Find
#

		$query_num = count($this_date);

#
# After add
#

		if (($query_num + $correction) > $max_query)
		{
			$max_query = $query_num + $correction;
		}

#
# Find and delete
#

		if (($query_num - $correction) < 4) {
			for ($j=0; $j<(4 - ($query_num-$correction)); $j++) {
				$event_list .= '<span class=gensmall>&<br></span>';
			}
		}

#
# Find
#

	  	$template->assign_block_vars('daycell', array(
			'S_CELL' => $cellback,
			'U_DAY' => $url_day,
			'NUM_DAY' => $thisday,
			'DAY_EVENT_LIST' => $event_list,
			'S_HEAD' => $cellhead,
			'S_DETAILS' => $cellbody,
			'WEEK_ROW' => $week_end)
			);
		if ($week_end) {
			++$rowrow;
			if ($rowrow == '3') {
				$rowrow = '1';
			}
		}
	}

#
# After add
#

	if ($max_query < 5) $max_query = 5;

	$max_height = $max_query * 12;

#
# Find
#

	$template->assign_vars(array(
		'CAL_VERSION' => 'Ver: '.$cal_version,
		'CALENDAR' => $lang['Calendar'],
		'L_CAL_NEW' => $lang['Cal_add_event'],
		'U_INDEX' => append_sid("index.$phpEx"),
		'L_INDEX' => sprintf($lang['Forum_Index'], $board_config['sitename']),
		'U_CAL_HOME' => $homeurl)
		);

# 
# Replace with
#

	$template->assign_vars(array(
		'CAL_VERSION' => 'Ver: '.$cal_version,
		'CALENDAR' => $lang['Calendar'],
		'L_CAL_NEW' => $lang['Cal_add_event'],
		'U_INDEX' => append_sid("index.$phpEx"),
		'L_INDEX' => sprintf($lang['Forum_Index'], $board_config['sitename']),
		'U_CAL_HOME' => $homeurl,
		'MAX_HEIGHT' => 'height=' . $max_height . 'px')
		);


#
# Find in templates/{template}/cal_view_month_lite.tpl
#

<!-- BEGIN daycell -->
	  <td valign=top {daycell.S_CELL}>
	    <table border=0 cellspacing=0 cellpadding=0 width=100%>
	    <tr><td align=center {daycell.S_HEAD}><a href='{daycell.U_DAY}' class=genmed><b>{daycell.NUM_DAY}</b></a></td></tr>
	    <tr><td valign=top {daycell.S_DETAILS}>{daycell.DAY_EVENT_LIST}</td></tr>
 	    </table>
	  </td>{daycell.WEEK_ROW}
<!-- END daycell -->

#
# Replace with
#

<!-- BEGIN daycell -->
	  <td valign=top {daycell.S_CELL}>
	    <table border=0 cellspacing=0 cellpadding=0 width=100%>
	    <tr><td align=center {daycell.S_HEAD}><a href='{daycell.U_DAY}' class=genmed><b>{daycell.NUM_DAY}</b></a></td></tr>
	    <tr {MAX_HEIGHT}><td valign=top {daycell.S_DETAILS}>{daycell.DAY_EVENT_LIST}</td></tr>
 	    </table>
	  </td>{daycell.WEEK_ROW}
<!-- END daycell -->
Die Zellen sind jetzt immer mind. 5 Zeilen hoch und für einen Monat immer gleich.
Benutzeravatar
oxpus
Ehemaliges Teammitglied
Beiträge: 5389
Registriert: 03.02.2003 12:33
Wohnort: Bad Wildungen
Kontaktdaten:

Code-Korrektur!!!

Beitrag von oxpus »

Ich habe eine Lösung für die hohe Anzahl an Queries durch meinen ersten Code gefunden. Alle Änderungen beziehen sich auf das File "calendar.php" und dort in der Funktion "defaultview":


FIND

Code: Alles auswählen

	{
		$currentday = create_date("j", time(), $board_config['board_timezone']);
		$currentmonth = create_date("m", time(), $board_config['board_timezone']);
		$currentyear = create_date("Y", time(), $board_config['board_timezone']);
	}
AFTER ADD

Code: Alles auswählen

	$username = array();
	$user_id = array();
	$birthday = array();
	$birthmonth = array();
	$useryear = array();
	$ii = 0;

	$sql = "SELECT username, user_id, user_birthday
		FROM " . USERS_TABLE . "
		WHERE user_birthday < '999999'
		ORDER BY username";
	if( ($result = $db->sql_query($sql)) )
	{
		while( $row = $db->sql_fetchrow($result))
		{
			$ii++;
			$username[$ii] = $row['username'];
			$user_id[$ii] = $row['user_id'];
			$birthday[$ii] = realdate('j', $row['user_birthday']);
			$birthmonth[$ii] = realdate('m', $row['user_birthday']);
			$useryear[$ii] = realdate('Y', $row['user_birthday']);
		}
	}
FIND

Code: Alles auswählen

		$event_list = '';
		$correction = 0;
AFTER ADD

Code: Alles auswählen

		$ii = 0;

		for ($ii; $ii<=count($useryear); $ii++)
		{
			if ( $birthday[$ii] == $thisday AND $birthmonth[$ii] == $month)
			{
				$userage = $year - $useryear[$ii];
				$correction++;
				$event_list .= '<span class="gensmall">-> <a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$user_id[$ii]") . '">' . $username[$ii] . ' (' . $userage .')</a></span><br />';
			}
		}
Damit werden die Queries auf die Datenbank auf 14 reduziert (eine mehr, als ohne den Code!). Mit der ersten Änderung von mir waren es immerhin noch geschlagene 48 Queries!!!
Die Korrektur-Änderungen für das Layout sind gleich geblieben...

OXPUS
Zuletzt geändert von oxpus am 21.04.2003 02:49, insgesamt 3-mal geändert.
jörg gierth
Mitglied
Beiträge: 473
Registriert: 03.12.2002 20:13
Wohnort: Buseck
Kontaktdaten:

Beitrag von jörg gierth »

Hi ,
Klasse das Du es geschafft hast.
Ich habe ihn auch gleich ausprobiert und habe ein Problem
bei mir im Forum wird angezeigt das min. 10 Leute in den nächsten 31Tagen Geburtstagen haben aber im Calendar wird nur einer Miite MAi angezeit.
Weißt Du wo dasProblem hier liegt ?

Gruß Jörg
Benutzeravatar
oxpus
Ehemaliges Teammitglied
Beiträge: 5389
Registriert: 03.02.2003 12:33
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Öhm, welchen Birthday Mod hast Du denn installiert???
Und welche Version des Kalenders???
Getestet hatte ich das mit dem Birthday Mod 1.4.12 (Part 1) und Calendar lite 1.4.1c.
Ich weiß nicht, ob mein Code auch mit dem Calendar pro 2xxx funzt :-?
jörg gierth
Mitglied
Beiträge: 473
Registriert: 03.12.2002 20:13
Wohnort: Buseck
Kontaktdaten:

Beitrag von jörg gierth »

Hi ,

ich habe den Calendar 1.40 in mein Forum
eingebaut.
Wenn Du willst kann ich dir ja mal die Datei
zusenden.

Gruß Jörg
Benutzeravatar
oxpus
Ehemaliges Teammitglied
Beiträge: 5389
Registriert: 03.02.2003 12:33
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Ja, poste hier mal einen Links auf die calendar.php oder schicke mir die mal zu. Ich schau mir die dann mal an.
jörg gierth
Mitglied
Beiträge: 473
Registriert: 03.12.2002 20:13
Wohnort: Buseck
Kontaktdaten:

Beitrag von jörg gierth »

Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“