Seite 2 von 3

Verfasst: 10.04.2003 00:05
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

Verfasst: 10.04.2003 06:54
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:

Verfasst: 13.04.2003 22:27
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.

Verfasst: 14.04.2003 10:50
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.

Code-Korrektur!!!

Verfasst: 15.04.2003 10:34
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

Verfasst: 16.04.2003 19:54
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

Verfasst: 16.04.2003 21:47
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 :-?

Verfasst: 18.04.2003 09:37
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

Verfasst: 18.04.2003 09:54
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.

Verfasst: 18.04.2003 19:13
von jörg gierth