Seite 1 von 1

Countdown MOD - bräuchte bitte etwas Hilfe

Verfasst: 03.05.2006 08:35
von schizo
Guten Morgen zusammen!

Habe gestern den "Advanced Countdown MOD" in der Version 1.0.8 installiert, und er läuft auch soweit.

Allerdings würde ich gern die Anzeige ein wenig anpassen. Zur Zeit wird der Countdown so angezeigt (Beispiel):

"Noch verbleibende Tage: 36 - 18 : 26 : 57"

Die Anzeige würde ich gern dahingehend verändern:

"Noch 36 Tage, 18 Stunden, 26 Minnuten und 57 Sekunden bis zum Anpfiff!"

Hinbekommen habe ich schonmal, dass die Std./Min./Sek. in einer neuen Zeile unter den Tagen angezeigt werden, und auch das "X Stunden, X Minuten und X Sekunden bis zum Anpfiff!" funktioniert.

Leider habe ich aber noch 2 Probleme:

1. Der Eintrag "Tage" hinter der Tageszahl steht immer mit einem Leerzeichen zuviel hinter der Zahl. Nirgendwo kann ich ein Leerzeichen bzw. ein   im Code entdecken - es muss also mit der Variablen zu tun haben - da kenne ich mich aber leider nicht genug aus :(

2. Die Schriftgrößen sind unterschiedlich. Auch wenn ich die Zahlen in bsp. "size=2" anpasse, hat das keine Auswirkungen (bzw. kommt immer auf die Stelle an, wo der Text steht).

Hier mal ein Auszug aus dem Code:

page_header.php:

Code: Alles auswählen

// Advanded Countdown Mod START
if ( defined('ON_INDEX') || defined('ON_PORTAL') )
{
	include_once($phpbb_root_path.'includes/bbcode.'.$phpEx);
	$sql = "SELECT * FROM " . COUNTDOWN_TABLE;
	if( !($result = $db->sql_query($sql)) )
	{
	      message_die(GENERAL_ERROR, 'Could not get countdown settings', '', __LINE__, __FILE__, $sql);
	}

	while ( $row = $db->sql_fetchrow($result))
	{
		$img_left = $row['img_left'];
		$img_right = $row['img_right'];
		$title = $row['title'];
		$description = $row['description'];
		$event_text = stripslashes($row['event_text']);
		$event_stop = $row['event_stop'];
		$enable_index = $row['enable_index'];
		$enable_portal = $row['enable_portal'];
		$full_display = $row['full_display'];
	}

	$event_stop -= $userdata['user_timezone'] * 3600;
	$event_stop += (date('I')) ? 3600 : 0;

	$b_day = date('d', $event_stop);
	$b_month = date('n', $event_stop);
	$b_year = date('Y', $event_stop);
	$b_hour = date('H', $event_stop);
	$b_minute = date('i', $event_stop);
	$b_second = date('s', $event_stop);

	switch ($b_month)
	{
		case 1:$b_month = 'January';break;
		case 2:$b_month = 'February';break;
		case 3:$b_month = 'March';break;
		case 4:$b_month = 'April';break;
		case 5:$b_month = 'May';break;
		case 6:$b_month = 'June';break;
		case 7:$b_month = 'July';break;
		case 8:$b_month = 'August';break;
		case 9:$b_month = 'September';break;
		case 10:$b_month = 'October';break;
		case 11:$b_month = 'November';break;
		case 12:$b_month = 'December';break;
	}

	$stop = $b_month.' '.$b_day.', '.$b_year.' '.$b_hour.':'.$b_minute.':'.$b_second;

	$user_lang = ( $userdata['user_lang'] ) ? $userdata['user_lang'] : $board_config['default_lang'];
	include_once($phpbb_root_path . 'language/lang_' . $user_lang . '/lang_countdown.php');

	$template->assign_vars(array(
		'L_DAYS' => $lang['C_days'],
		'IMG_LEFT' => ( $img_left ) ? '<img src="'.$img_left.'" border="0" />' : '',
		'IMG_RIGHT' => ( $img_right ) ? '<img src="'.$img_right.'" border="0" />' : '',
		'TITLE' => make_clickable(stripslashes($title)),
		'DESC' => make_clickable(stripslashes($description)))
	);
}

$countdown_on = 0;

if ( defined('ON_INDEX') && $enable_index == 1 )
{
	$template->assign_block_vars('switch_countdown_on', array());
	$countdown_on = 1;
}

if ( defined('ON_PORTAL') && $enable_portal == 1 )
{
	$template->assign_block_vars('switch_countdown_on', array());
	$countdown_on = 1;
}

if ( $countdown_on == 1 )
{
	$countdown = "<script language='JavaScript' type='text/javascript'>
<!--
var eventdate = new Date('".$stop."');
function toSt(n)
{
	s=''
	if(n<10) s+='0'
	return s+n.toString();
}

function countdown()
{
	d=new Date();
	count=Math.floor((eventdate.getTime()-d.getTime())/1000);

	if(count<=0)
	{
		var time_event = document.getElementById('time_event');
		var event_time = document.getElementById('event_time');
		time_event.style.display = 'none';
		event_time.style.display = '';
		return;
	}

	secs_count = toSt(count%60);
	count=Math.floor(count/60);
	mins_count = toSt(count%60);
	count=Math.floor(count/60);
	hours_count = toSt(count%24);
	count=Math.floor(count/24);
	days_count = count;

	document.countdown.days.value = days_count;
	document.countdown.hours.value = hours_count;
	document.countdown.mins.value = mins_count;
	document.countdown.secs.value = secs_count;

	window.setTimeout('countdown()',500);

}
//-->
</script>";

	$template->assign_vars(array(
		'EVENT_TEXT' => $event_text,
		'COUNTDOWN' => $countdown,
		'COUNTDOWN_ON' => 'onLoad="javascript:countdown();"'));
}

if ( $full_display == 0 )
{
	$template->assign_vars(array(
		'FULL_DISPLAY' => 'none'));
}
else
{
	$template->assign_vars(array(
		'FULL_DISPLAY' => ''));
}
// Advanded Countdown Mod END
overall_header.php

Code: Alles auswählen

<!-- BEGIN switch_countdown_on -->
<form name="countdown">
<table align="center" width="100%" cellspacing="2" cellpadding="5" border="0" class="forumline">
  <tr>
  	<th align="center" colspan="3">{TITLE}</th>
  </tr>
  <tr>
	<td align="left" valign="center" width="20%">{IMG_LEFT}</td>
	<td align="center" width="60%">
		<div class="gen">{DESC}</div><br />
		<div id="time_event" class="genmed" style="display:"><b>
		{L_DAYS}&nbsp;<input name="days" class="post" size=4 style="border: 0px">
		<span style="display: {FULL_DISPLAY};" class="gen" name="time_string">-&nbsp;&nbsp;
		<input name="hours" class="post" size=2 style="border: 0px">&nbsp;:
		<input name="mins" class="post" size=2 style="border: 0px">&nbsp;:
		<input name="secs" class="post" size=2 style="border: 0px">
		</b></span></div>
		<div id="event_time" class="gen" style="display:none">{EVENT_TEXT}</div>
	</td>
	<td align="right" valign="center" width="20%">{IMG_RIGHT}</td>
  </tr>
</table>
</form>

<script language="JavaScript" type="text/javascript">countdown();</script>
<!-- END switch_countdown_on -->
Einen Teil aus dem 2. Code habe ich nun so angepasst:

Code: Alles auswählen

<div class="gen">{DESC}</div><br />
		<div id="time_event" class="genmed" style="display:"><b>
Noch&nbsp;

Code: Alles auswählen

<input name="days" class="post" size=4 style="border: 0px">
		<span style="display: {FULL_DISPLAY};" class="gen" name="time_string">
Tage,&nbsp;<br />

Code: Alles auswählen

		<input name="hours" class="post" size=2 style="border: 0px">
Stunden,&nbsp;

Code: Alles auswählen

		<input name="mins" class="post" size=2 style="border: 0px">
Minuten und&nbsp;

Code: Alles auswählen

		<input name="secs" class="post" size=2 style="border: 0px">
Sekunden bis zum Anpfiff!

Code: Alles auswählen

		</b></span></div>
Ich finde einfach nicht den "Fehler", dass zwischen Tageszahl und dem Wort "Tage" noch mindestens ein Leerzeichen zuviel steht...

Bin für jede Hilfe dankbar!!

Gruß >> Schizo.

P.S. Sorry, die farbigen Stellen sollten eigentlich direkt im Code angezeigt werden, wollte damit deutlich machen, was ich verändert habe - das ging innerhalb des Codes aber nicht.
Die roten Stellen sollten jeweils am Ende des Codes darüber stehen ;)