[Erweiterung] kommende Geburtstage
Posted: 23. January 2008 20:26
Hi leute,
ich hab mir mal die Arbeit gemacht und in meinem Portal die Geburtstagsliste um die Funktion kommende Geburtstage erweitert. Ich habe dazu die Mod Upcoming Birthday list als Grundlage genommen http://www.phpbb.com/community/viewtopi ... 9#p3186661
Ich poste hier jetzt nur mal das, was für die Erweiterung der Gerburtstagsliste des Portals davon notwenig wäre:
Zunächst muss die Tabelle phpbb_portal_config um einen Eintrag erweitert werden
Dann müssen in den jeweiligen language/(en/de)/mods/lang_portal.php Dateien zwei zusätzliche Sprachvariablen angelegt werden:
einmal für englisch
einaml für deutsch
Dann kommen wir zu den Anpassungen im Portal, ich poste hier gleich die kompletten von mir überarbeiteten zwei Dateien root/portal/block/birthday_list.php und root/styles/prosilver/template/portal/block/birthday_list.html
root/portal/block/birthday_list.php
root/styles/prosilver/template/portal/block/birthday_list.html
Hoffe habe nichts vergessen
Demo kann man sich hier anschauen http://sumsum.pytalhost.de
Nun sollten sich die Portalcoder mal überlegen, ob es nicht sinnvoll wäre, diese Erweiterung gleich mit zu integrieren,
Im Adminbereich gibt es dafür so natürlich noch keine Einstellungsmöglichkeit, welche sich aber ohnehin nur auf den Zeitraum der Tage beschränken würde, diese ist so jetzt fest auf 30 Tage eingestellt, wer sich die komplette orginale Mod installiert, hat dann auch im Adminbereich Einstellungsmöglichkeiten dafür und die Liste wird auch im Forum selbst angezeigt, zumindest im Subsilver Style
Meine Version ist ausschließlich für das Portal gedacht und wenn man es integrieren sollte, wäre eine entsprechende Erweiterung im acp notwendig
//edit: Anpassung der Variablen auf das Portal
mfg Kendoo
ich hab mir mal die Arbeit gemacht und in meinem Portal die Geburtstagsliste um die Funktion kommende Geburtstage erweitert. Ich habe dazu die Mod Upcoming Birthday list als Grundlage genommen http://www.phpbb.com/community/viewtopi ... 9#p3186661
Ich poste hier jetzt nur mal das, was für die Erweiterung der Gerburtstagsliste des Portals davon notwenig wäre:
Zunächst muss die Tabelle phpbb_portal_config um einen Eintrag erweitert werden
Code: Select all
INSERT INTO `phpbb_portal_config` (`config_name`, `config_value`) VALUES ('portal_birthdays_ahead', '30');
einmal für englisch
Code: Select all
//Birthdays
'BIRTHDAYS_AHEAD' => 'Birthday within the next %s days',
'NO_BIRTHDAYS_AHEAD' => 'No birthdays in this time',
Code: Select all
//Birthdays
'BIRTHDAYS_AHEAD' => 'In den nächsten %s Tagen',
'NO_BIRTHDAYS_AHEAD' => 'In diesem Zeitraum hat kein Mitglied Geburtstag',
root/portal/block/birthday_list.php
Code: Select all
<?php
/**
*
* @package - Board3portal
* @version $Id: birthday_list.php 99 2008-01-15 20:31:25Z kevin74 $
* @copyright (c) kevin / saint ( http://www.board3.de/ ), (c) nickvergessen ( http://mods.flying-bits.org/ ), (c) redbull254 ( http://www.digitalfotografie-foren.de ), (c)kendoo (http://kfa-teampage.pytalhost.com)
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/
if (!defined('IN_PHPBB') || !defined('IN_PORTAL'))
{
exit;
}
// Generate birthday list if required ... / borrowed from index.php (RC4)
$birthday_list = '';
$birthday_ahead_list = '';
if ($config['load_birthdays'] && $config['allow_birthdays'])
{
$now = getdate(time() + $user->timezone + $user->dst - date('Z'));
$today = (mktime(0, 0, 0, $now['mon'], $now['mday'], $now['year']));
$sql = 'SELECT user_id, username, user_colour, user_birthday
FROM ' . USERS_TABLE . "
WHERE user_birthday <> ''
AND user_type IN (" . USER_NORMAL . ', ' . USER_FOUNDER . ') ORDER BY SUBSTRING(user_birthday FROM 4 FOR 2) ASC, SUBSTRING(user_birthday FROM 1 FOR 2) ASC, username_clean ASC';
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
{
$birthdaydate = (gmdate('Y') . '-' . trim(substr($row['user_birthday'],3,-5)) . '-' . trim(substr($row['user_birthday'],0,-8) ));
$user_birthday = strtotime($birthdaydate);
if($user_birthday == $today)
{
$birthday_list .= get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']);
if ($age = (int) substr($row['user_birthday'], -4))
{
$birthday_list .= ' (' . ($now['year'] - $age) . ')<br />'."\n";
}
}
if( $portal_config['portal_birthdays_ahead'] > 0 )
{
if ( $user_birthday >= ($today + 86400) && $user_birthday <= ($today + ($portal_config['portal_birthdays_ahead'] * 86400) ) )
{
if ($row['user_colour'])
{
$user_colour = ' style="color:#' . $row['user_colour'] . '"';
$row['username'] = '<strong>' . $row['username'] . '</strong>';
}
else
{
$user_colour = '';
}
$birthday_ahead_list .= '<a' . $user_colour . ' href="' . append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=viewprofile&u=' . $row['user_id']) . '" title="' . date('d M', $user_birthday) . '">' . $row['username'] . '</a>';
if ( $age = (int) substr($row['user_birthday'], -4) )
{
$birthday_ahead_list .= ' (' . ($now['year'] - $age) . ')<br />'."\n";
}
}
}
}
$db->sql_freeresult($result);
}
// Assign index specific vars
$template->assign_vars(array(
'BIRTHDAY_LIST' => $birthday_list,
'BIRTHDAYS_AHEAD_LIST' => ( $portal_config['portal_birthdays_ahead'] > 0 ) ? $birthday_ahead_list : '',
'L_BIRTHDAYS_AHEAD' => sprintf($user->lang['BIRTHDAYS_AHEAD'], $portal_config['portal_birthdays_ahead']),
'S_DISPLAY_BIRTHDAY_LIST' => ($config['load_birthdays']) ? true : false,
)
);
?>
Code: Select all
<div class="panel">
<div class="inner">
<span class="corners-top"><span></span></span>
<h3>{L_BIRTHDAYS}</h3>
<!-- IF BIRTHDAY_LIST -->
<strong>{BIRTHDAY_LIST}</strong>
<!-- ELSE -->
{L_NO_BIRTHDAYS}
<!-- ENDIF -->
<h3>{L_BIRTHDAYS_AHEAD}</h3>
<!-- IF BIRTHDAYS_AHEAD_LIST -->
<strong>{BIRTHDAYS_AHEAD_LIST}</strong>
<!-- ELSE -->
{L_NO_BIRTHDAYS_AHEAD}
<!-- ENDIF -->
<span class="corners-bottom"><span></span></span>
</div>
</div>
<br style="clear:both" />
Demo kann man sich hier anschauen http://sumsum.pytalhost.de
Nun sollten sich die Portalcoder mal überlegen, ob es nicht sinnvoll wäre, diese Erweiterung gleich mit zu integrieren,
Im Adminbereich gibt es dafür so natürlich noch keine Einstellungsmöglichkeit, welche sich aber ohnehin nur auf den Zeitraum der Tage beschränken würde, diese ist so jetzt fest auf 30 Tage eingestellt, wer sich die komplette orginale Mod installiert, hat dann auch im Adminbereich Einstellungsmöglichkeiten dafür und die Liste wird auch im Forum selbst angezeigt, zumindest im Subsilver Style
Meine Version ist ausschließlich für das Portal gedacht und wenn man es integrieren sollte, wäre eine entsprechende Erweiterung im acp notwendig
//edit: Anpassung der Variablen auf das Portal
mfg Kendoo