Seite 1 von 2

Birthday Box im Portal - Code umschreiben aber wie?

Verfasst: 05.04.2006 22:20
von Any
Nabend Leute! :)

Ich hab den
Birthday-Mod eingebaut: mod-birthday_event_103b_with_ch_214.txt was auch funktioniert.

Nun wollte ich gern eine kleine Box im Portal, so wie sie es für den Birthday Mod von Nils gibt. Dazu habe ich erfahren, muss man den Code umschreiben, aber ich weiß nicht wie :(

Mag mir jemand helfen?

hab hier mal den Quelltext der portal.php

Code: Alles auswählen

// SWITCH BIRTHDAY MOD START
if( $introportalmod_config['birthdaymod_active'] == "1" )
{
// CODE TAKEN FROM Birthday Mod Version 1.51 from Niels Chr. Rød Denmark http://mods.db9.dk/ START
$time_now = time();
$date_now = create_date('md', $time_now, $board_config['board_timezone']);
$date_forward = create_date('md', $time_now+($board_config['birthday_check_day']*86400), $board_config['board_timezone']);
$sql = ($board_config['birthday_check_day']) ? "SELECT user_id, username, user_birthday, user_level FROM ".USERS_TABLE." WHERE user_birthday<>999999 AND
(user_birthday<0 OR DATE_FORMAT(FROM_DAYS(user_birthday),'%m%d') BETWEEN ".(($date_now<$date_forward) ? "'($date_now+0)' AND '$date_forward'" : "'($date_now+0)' AND '1231' OR DATE_FORMAT(FROM_DAYS(user_birthday),'%m%d') BETWEEN '0101' AND '$date_forward'") .") ORDER BY username" : "";
if(!$result = $db->sql_query($sql))
{
      message_die(GENERAL_ERROR, "Could not fetch birthday for users.", "", __LINE__, __FILE__, $sql);
} else
{
 $birthdayrows = array();
 $birthdayrows = $db->sql_fetchrowset($result);
}
 if (!empty($birthdayrows))
 {
  $this_year = create_date('Y', $time_now, $board_config['board_timezone']);
  $date_today = $this_year.$date_now;
  $date_forward = $this_year.$date_forward;
       while (list($user_number, $birthdayrow) = each($birthdayrows))
  {
        $user_birthday2 = $this_year.($user_birthday = realdate("md",$birthdayrow['user_birthday'] ));
   // give user a year more, if he alread have had birthday
        if ( $user_birthday2 < $date_today ) $user_birthday2 += 10000;
   if ( $user_birthday2 == $date_today )
        {
    //user have birthday today
    $user_age = $this_year - realdate ( 'Y',$birthdayrow['user_birthday'] );
    switch ($birthdayrow['user_level'])
    {
     case ADMIN :
           $birthdayrow['username'] = '<b>' . $birthdayrow['username'] . '</b>';
           $style_color = 'style="color:#' . $theme['fontcolor3'] . '"';      break;
     case MOD :
           $birthdayrow['username'] = '<b>' . $birthdayrow['username'] . '</b>';
           $style_color = 'style="color:#' . $theme['fontcolor2'] . '"';      break;
     default: $style_color = '';
    }
    $birthday_today_list .= ' <a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $birthdayrow['user_id']) . '"' . $style_color .'>' . $birthdayrow['username'] . ' ('.$user_age.')</a>,';
        } else if ( $user_birthday2 > $date_today  && $user_birthday2 <= $date_forward )
   {
    // user are having birthday within the next days
    $user_age = ( $this_year.$user_birthday < $date_today ) ? $this_year - realdate ('Y',$birthdayrow['user_birthday'])+1 : $this_year- realdate ('Y',$birthdayrow['user_birthday']);
    switch ($birthdayrow['user_level'])
    {
     case ADMIN :
           $birthdayrow['username'] = '<b>' . $birthdayrow['username'] . '</b>';
           $style_color = 'style="color:#' . $theme['fontcolor3'] . '"';break;
     case MOD :
           $birthdayrow['username'] = '<b>' . $birthdayrow['username'] . '</b>';
           $style_color = 'style="color:#' . $theme['fontcolor2'] . '"';break;
     default: $style_color = '';
    }
    $birthday_week_list .= ' <a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $birthdayrow['user_id']) . '"' . $style_color .'>' . $birthdayrow['username'] . ' ('.$user_age.')</a>,';
   }
  }
  if ($birthday_today_list) $birthday_today_list[ strlen( $birthday_today_list)-1] = ' ';
  if ($birthday_week_list) $birthday_week_list[ strlen( $birthday_week_list)-1] = ' ';
 }
if (isset($result))
{
 $db->sql_freeresult($result);
}
// CODE TAKEN FROM Birthday Mod Version 1.51 from Niels Chr. Rød Denmark http://mods.db9.dk/ END
$template->assign_block_vars('switch_birthdaymod_active', array(
$template->assign_vars(array(
// CODE TAKEN FROM Birthday Mod Version 1.4.15 from Niels Chr. Rød Denmark http://mods.db9.dk/ START
'L_Birthday_Portal' => $lang['Birthday_Portal'],
'L_WHOSBIRTHDAY_WEEK' => ($board_config['birthday_check_day']>1) ? sprintf((($birthday_week_list)? $lang['Birthday_week'].$birthday_week_list:$lang['Nobirthday_week']),$board_config['birthday_check_day']) : '',
'L_WHOSBIRTHDAY_TODAY' => ($board_config['birthday_check_day']) ? ($birthday_today_list)? $lang['Birthday_today'].$birthday_today_list:$lang['Nobirthday_today'] : ''
// CODE TAKEN FROM Birthday Mod Version 1.4.15 from Niels Chr. Rød Denmark http://mods.db9.dk/ END
))
));
}
// SWITCH BIRTHDAY MOD END
index.php

Code: Alles auswählen

//-- mod : birthday ------------------------------------------------------------
//-- add
// bdays
$bdays->display_bdays();
//-- fin mod : birthday -------------------------------------------------------- 
und portal_body.tpl

Code: Alles auswählen

<!-- ##### BIRTHDAY START ##### -->
<!-- BEGIN switch_birthdaymod_active -->
<table width="100%" border="0" cellpadding="1" cellspacing="1" style="border-collapse: collapse" class="forumline">
<tr>
     <td class="catHead" colspan="2" height="25"><span class="cattitle"><center>{L_Birthday_Portal}:</center></span></td>
  </tr>
 <tr>
        <td colspan="2" height="1" class="row3"><img src="images/spacer.gif" width="1" height="1" alt="."></td>
  </tr>
  <tr>
   <td class="row1" align="left"><span class="gensmall">

   <br>{L_WHOSBIRTHDAY_TODAY}<br /><br />{L_WHOSBIRTHDAY_WEEK}<br><br>


   </span></td>
  </tr>
</table> <br>
<!-- END switch_birthdaymod_active -->
<!-- ##### BIRTHDAY ENDE ##### --> 
Warte gespannt :)

Re: Birthday Box im Portal - Code umschreiben aber wie?

Verfasst: 06.04.2006 02:26
von vb-biker
Probier mal folgendes (frei nach dem Motto: was für die Index gilt, gilt auch für's Portal):

portal.php

Code: Alles auswählen

include($phpbb_root_path . 'includes/page_header.'.$phpEx);
#
#-----[ AFTER, ADD ]------------------------------------------
#
//-- mod : birthday ------------------------------------------------------------
//-- add
	$bdays->display_bdays();
//-- fin mod : birthday --------------------------------------------------------
portal_body.tpl

Code: Alles auswählen

<!-- ##### BIRTHDAY START ##### -->
{BDAYS_BOX}
<!-- ##### BIRTHDAY ENDE ##### --> 
Wenn es Darstellungsprobleme im Portal gibt, dann die index_bday_box.tpl anpassen.

Verfasst: 06.04.2006 14:34
von Any
Hi! Danke für die Hilfe :)

Leider kommt dann aber folgendes
Fatal error: Call to undefined function: realdate() in /home/httpd/vhosts/risibility.de/subdomains/libellus/httpdocs/portal.php on line 601
601 ist diese Zeile:

Code: Alles auswählen

$user_birthday2 = $this_year.($user_birthday = realdate("md",$birthdayrow['user_birthday'] ));
siehe oben :)

in der index_bdays_box.tpl steht

Code: Alles auswählen

<!-- BEGIN birthday -->
<br clear="all" />

<table width="100%" cellpadding="3" cellspacing="1" border="0" class="forumline">
  <tr>
	<td class="catHead" colspan="2" height="28"><span class="cattitle">{L_BDAY_BIRTHDAYS}</span></td>
  </tr>
  <tr>
	<td class="row1" align="center" valign="middle"><img src="{I_BDAY_CAKE}" alt="{L_BDAY_BIRTHDAYS}" /></td>
	<td class="row1 gensmall" align="left" width="100%">
		{L_BDAY_DETAILS}&nbsp;<!-- BEGIN list --><!-- BEGIN sep -->, <!-- END sep --><a href="{birthday.list.U_BDAY}" title="{birthday.list.L_BDAY_HAPPY}" class="gensmall">{birthday.list.BDAY_NAME}</a>{birthday.list.BDAY_AGE}<!-- END list -->
	</td>
  </tr>
</table>
<!-- END birthday -->
daran liegts ja aber nich, gell?

Verfasst: 06.04.2006 23:05
von vb-biker
Any hat geschrieben:daran liegts ja aber nich, gell?
Eher nicht.

Dieser Birthday-Mod scheint ein eigenständiger Mod zu sein.
Lösche mal den Birthday-Code von Niels in der portal.php oder kommentiere ihn aus.

Code: Alles auswählen

// SWITCH BIRTHDAY MOD START
.
.
.
// SWITCH BIRTHDAY MOD END
Und schauen, was passiert. :o

Verfasst: 07.04.2006 17:33
von Any
muss mich korrigieren!! Es geht doch, ich hatte nen Denkfehler gehabt...

Hab aber noch ne Frage.. :) Könnte man das noch so anpassen, dass die Geburtstage der nächsten 7 Tage angezeigt werden? Also "innerhalb der nächsten 7 Tage haben folgende User Geburtstag:"

Verfasst: 20.04.2006 00:55
von Any
weiß evtl. jemand wie man das machen könnte? :)

Verfasst: 22.04.2006 03:47
von Any
schaaaaaaadeee :(

Verfasst: 06.05.2006 20:42
von rotuganda
Any hat geschrieben:muss mich korrigieren!! Es geht doch, ich hatte nen Denkfehler gehabt...

Hab aber noch ne Frage.. :) Könnte man das noch so anpassen, dass die Geburtstage der nächsten 7 Tage angezeigt werden? Also "innerhalb der nächsten 7 Tage haben folgende User Geburtstag:"
weiß denn da wirklich niemand rat, sowas wäre doch ne feine sache!

es gibt einen MOd in kombi mit dem birthday mod glaube von nils, ich hätte das aber wie any schrieb auch gerne, jedoch ohne einen zusätzlichen kalender dafür.

vielleicht weiß da jemand was?!

Verfasst: 09.05.2006 17:16
von Any
weiß das echt niemand? :o

Verfasst: 09.05.2006 18:23
von easygo
Selbstgemachte Probleme, würd ich mal sagen.

Wozu 2 Birthday mods :-?

Wenn ihr die von reddog verwenden wollt, was soll dann jetzt
der Code von Niels in der portal.php (und wer weiß wo noch überall)
Wie wärs mit löschen? Oder wenigstens mal auskommentieren.

Weil sonst gibts halt solche Fehlermeldungen
Any hat geschrieben:Fatal error: Call to undefined function: realdate() in /home/httpd/vhosts/risibility.de/subdomains/libellus/httpdocs/portal.php on line 601