NIEUW: Birthday add on topic calender: leeftijd onjuist!

Hulp nodig bij een modificaties of op zoek naar een MOD? Bekijk ons archief. Support wordt helaas niet meer verleend.
Forumregels

Sinds 1 januari 2009 wordt phpBB2 niet meer ondersteund.
Onderstaande informatie is verouderd en dient uitsluitend als archief.
phpBB2.0.x
Gesloten
Relax
Berichten: 65
Lid geworden op: 12 jul 2004, 15:30

NIEUW: Birthday add on topic calender: leeftijd onjuist!

Bericht door Relax » 28 aug 2004, 23:20

In de functies voor de add on van de calender staat het volgende:

// Alter berrechnen
$age = $event_year - $event_year2;
if ( intval(substr($user_birthday, 4, 4)) > intval(date('md', $event_time)) ) $age--;
if ($age <= 0) $age = '';




Op dit moment geeft de normale birthday hack onderaan de leeftijg goed weer. Op de kalender wordt hij waarschijnlijk opnieuw berekend en daar wordt de leeftijd telkens 1 jaar te weinig weergegeven.

Wie kan me helpen aan het ontbrekende stukje code???
Ergens zal wel iets +1 moeten... maar hoe en wat ....

Een jaartje minder is voor de meesten niet erg, maar ja: mijn site moet toch objectief blijven ;-).

Je kunt het zien op http://www.ontspan.info

De verjaardagen komen uit het profiel en de calender is de topic calender.

Alvast bedankt!!

Veronique!
Laatst gewijzigd door Relax op 30 aug 2004, 13:06, 2 keer totaal gewijzigd.

sukkelaap
Berichten: 1345
Lid geworden op: 03 dec 2003, 19:09
Locatie: Zeist

Bericht door sukkelaap » 29 aug 2004, 09:14

Dus het is geen jongere site?

Gebruikersavatar
Stef
Berichten: 9080
Lid geworden op: 04 jun 2003, 20:47

Bericht door Stef » 29 aug 2004, 11:56

Welke Kalender Modification gebruik je?
Deze: http://mods.db9.dk/viewtopic.php?t=1098
sukkelaap schreef:Dus het is geen jongere site?
Waar slaat dit nu weer op.. :roll:

Relax
Berichten: 65
Lid geworden op: 12 jul 2004, 15:30

Bericht door Relax » 29 aug 2004, 12:42

Birthday 1.5.6 Niels
Topic calendar 1.0.1 Ptirhiik

Beide met 2.0.8 & subSilver


De birthday hack geeft onderin het online overzicht de gegevens goed weer. Tussen haakjes staat de juiste leeftijd. Kan ik die variabele niet aanroepen in de Topic calendar?

Een andere oplossing waar ik aan denk is dat de berekening aangepast wordt. Maar ook hier houdt mijn kennis al op.

Ik kan eventueel stukken script plaatsen als dat handig is.

Gebruikersavatar
Stef
Berichten: 9080
Lid geworden op: 04 jun 2003, 20:47

Bericht door Stef » 29 aug 2004, 13:15

Als ik kijk in de add-on:
http://www.phpbb.com/phpBB/viewtopic.php?t=170574

Zie ik niks van jou stukje code (tenzij ik erover heen kijk).

Relax
Berichten: 65
Lid geworden op: 12 jul 2004, 15:30

Bericht door Relax » 29 aug 2004, 20:18

Dit is het stukje mod dat weer nodig is om de twee mods samen te laten
werken.

##############################################################
## MOD Title: Birthday Extension for Topic Calender & Birthday Mod
## MOD Author: Flani < info@flanisoft.at >
## MOD Description: This mod will add birthdays to your Topic Calender.
## You don't need the PCP for it.
## MOD Version: 0.9.4
## MOD Compatibility: 2.0.6
##
## Requierements: Topic Calender
## Birthday Mod (Niels < ncr@db9.dk > (Niels Chr. Rød) )
##
## Installation Level: Easy
## Installation Time: 3 Minutes
## Files To Edit: 2
## includes/functions_calender.php
## language/lang_english/lang_extend_topic_calendar.php
##
## Included Files: 1
## cake.gif
##
##############################################################
## For Security Purposes, Please Check: http://www.phpbb.com/mods/ for the
## latest version of this MOD. Downloading this MOD from other sites could cause malicious code
## to enter into your phpBB Forum. As such, phpBB will not offer support for MOD's not offered
## in our MOD-Database, located at: http://www.phpbb.com/mods/
##############################################################
## Author Notes:
##
## Avatar routine coded by Polar
##
## 1. Full MOD description
## -----------
## This mod, will add all members birthdays to the Topic Calender.
## You'll need Topic Calender and the Birthday Mod installed to run this Mod.
## A link leads to the users profile.
##
## 2. Official last version link
## -----------
## ??
##
## 3. Todo - Next Version
## -----------
## Optimizing.
## Read only informations out that are valid for a specific timerange
##
##
##
##############################################################
## MOD History:
##
##
## 2004-02-04 - Version 0.9.0
## - initial beta
##
## 2004-02-06 - Version 0.9.1
## - Date problem fixed
## should now work with any dateformat
##
## 2004-02-26 - Version 0.9.2
## - Age added
## Age is now displayed in the Calendar
##
## 2004-02-26 - Version 0.9.3
## - Bug fixed (sprintf (to few paramenters..))
##
## 2004-04-01 - Version 0.9.4
## - Avatar included (thanks to Polar)
##
##############################################################

## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD
##############################################################
#

#
#-----[ COPY ]------------------------------------------------
#
cake.gif --> ./images/cake.gif


#
#-----[ OPEN ]------------------------------------------------
#
includes/functions_calendar.php






#
#-----[ FIND ]------------------------------------------------
#
//
// birthday (only with PCP)
//

#
#-----[ BEVORE, ADD ]------------------------------------------
#


//
// Birthday Mod for Topic Calendar & Birthday Mod without PCP
//
function get_birthday(&$events, &$number, $start_date, $end_date, $limit=false, $start=0, $max_limit=-1)
{
global $template, $lang, $images, $userdata, $board_config, $db, $phpbb_root_path, $phpEx;

$sql = "SELECT u.*
FROM " . USERS_TABLE . " AS u
WHERE u.user_id <> " . ANONYMOUS . "
AND u.user_birthday <> 999999
ORDER BY username";

if ( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not read user table to get birthday today info', '', __LINE__, __FILE__, $sql);
}

// get the number of occurences
$number = $db->sql_numrows($result);
// if limit per page asked, limit the number of results

// read users
while ($row = $db->sql_fetchrow($result))
{
$user_id = $row['user_id'];
$username = $row['username'];
$user_birthday = realdate($lang['DATE_FORMAT'], $row['user_birthday']);

$ignore = $row['user_ignore'];
$friend = $row['user_friend'];
$always_visible = $row['user_visible'];

$username_link = append_sid($phpbb_root_path . "./profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$user_id");


$event_day = realdate('d',$row['user_birthday']);
$event_month = realdate('n',$row['user_birthday']);
$event_year2 = realdate('Y',$row['user_birthday']);
$start_month = intval(date('m', $start_date));
$event_year = intval(date('Y', $start_date));
if ($event_month < $start_month) $event_year++;
$event_time = mktime( 0,0,0, $event_month, $event_day, $event_year );

// avatar
$avatar_display = ( $userdata['user_viewavatar'] && $row['user_allowavatar'] );
$avatar = '';
if ( $avatar_display && $row['user_avatar_type'] )
{
switch( $row['user_avatar_type'] )
{
case USER_AVATAR_UPLOAD:
$avatar = ( $board_config['allow_avatar_upload'] ) ? '<img src="' . $board_config['avatar_path'] . '/' . $row['user_avatar'] . '" alt="" border="0" />' : '';
break;
case USER_AVATAR_REMOTE:
$avatar = ( $board_config['allow_avatar_remote'] ) ? '<img src="' . $row['user_avatar'] . '" alt="" border="0" />' : '';
break;
case USER_AVATAR_GALLERY:
$avatar = ( $board_config['allow_avatar_local'] ) ? '<img src="' . $board_config['avatar_gallery_path'] . '/' . $row['user_avatar'] . '" alt="" border="0" />' : '';
break;
}
}

// Alter berrechnen
$age = $event_year - $event_year2;
if ( intval(substr($user_birthday, 4, 4)) > intval(date('md', $event_time)) ) $age--;
if ($age <= 0) $age = '';


$tmp_message = sprintf($lang['birthday_message'],"<img src='".$phpbb_root_path."images/cake.gif'>",$username,$avatar,$age);
$message = htmlspecialchars("<table cellspacing='1' cellpadding='2' border='0' width='100%' class='forumline'><tr><td class='row1' nowrap='nowrap'><b>".$lang['birthday_header']."</b><span class='topictitle'></span><hr /><span class='genmed'>".$tmp_message."</span></td></tr></table>");
$message = preg_replace("/[\n\r]{1,2}/", '', $message);

$new_row = array();
$new_row['event_id'] = POST_USERS_URL . $user_id;

$new_row['event_author_id'] = $user_id;
$new_row['event_author'] = $username;
$new_row['event_time'] = $event_time;

$new_row['event_last_author_id'] = '';
$new_row['event_last_author'] = '';
$new_row['event_last_time'] = '';

$new_row['event_replies'] = '';
$new_row['event_views'] = '';
$new_row['event_type'] = POST_BIRTHDAY;
$new_row['event_vote'] = '';
$new_row['event_status'] = '';
$new_row['event_moved_id'] = '';
$new_row['event_last_id'] = '';
$new_row['event_forum_id'] = '';
$new_row['event_forum_name'] = '';

$new_row['event_icon'] = '';
$new_row['event_title'] = $username;
$new_row['event_short_title'] = $username;
$new_row['event_message'] = $message;
$new_row['event_calendar_time'] = $event_time;
$new_row['event_calendar_duration'] = '';
$new_row['event_link'] = $username_link;
$new_row['event_txt_class'] = $txt_class;
$new_row['event_type_icon'] = '<img src="' . $images['icon_tiny_profile'] . '" border="0" align="absbottom" hspace="2" />';
$events[] = $new_row;
}
}



#
#-----[ FIND ]------------------------------------------------
#
# around line 401
#
$message = $row['post_text'];


#
#-----[ REPLACE WITH ]------------------------------------------------
#
$message = htmlspecialchars($row['post_text']);




#
#-----[ FIND ]------------------------------------------------
#

get_event_PCP_birthday($events, $number, $start_date, $end_date);

#
#-----[ AFTER, ADD ]------------------------------------------------
#

get_birthday($events, $number, $start_date, $end_date);











#
#-----[ OPEN ]------------------------------------------------
#
# do the same with all other languages you've installed
#
language/lang_english/lang_extend_topic_calendar.php

#
#-----[ FIND ]------------------------------------------------
#

?>

#
#-----[ BEFORE, ADD ]-----------------------------------------
#

$lang['birthday_header'] = 'Happy Birthday!';
$lang['birthday_message'] = '<center>%s <br />Hi, <b> %s </b><br /> %s <br /> Die Administratoren<br /> Gratuliert Dir Herzlich zu<br /> Deinem %s Geburtstag !</center>';

#
#-----[ SAVE/CLOSE ALL FILES ]--------------------------------
#
# EoM

Relax
Berichten: 65
Lid geworden op: 12 jul 2004, 15:30

Bericht door Relax » 30 aug 2004, 12:49

Dit weekend heb ik al mijn wiskundige kennis eens flink op de proef gesteld ;-).....

Ik kwam dus 1 jaar te kort op de kalender, dus de leeftijdsberekening heb ik aangepast door er +1 achter te zetten.....

Dit is de nieuwe berekening.

// Alter berrechnen
$age = $event_year - $event_year2+1;
if ( intval(substr($user_birthday, 4, 4)) > intval(date('md', $event_time)) ) $age--;
if ($age <= 0) $age = '';


MAAAAAAR:

Het lijkt erop dat toekomstige verjaardagen goed worden weergegeven, maar verjaardagen in het verleden worden 1 jaar te laag weergegeven....

Iemand hier een berekening voor?

Wie weet ga ik het dan nog eens echt snappen een keer!!!

Groetjes Veronique!

Khai
Berichten: 48
Lid geworden op: 16 sep 2003, 16:54
Locatie: Venray
Contacteer:

Bericht door Khai » 03 mar 2005, 13:59

Ik heb dezelfde MODs geïnstalleerd, maar de verjaardagen in decemeber (jaja, alleen de maand december) worden hier niet weergegeven?
Iemand een idee?
Afbeelding

Gesloten