<?php
defined (
'main'
)
or
die
(
'no direct access'
);
########################################################
# #
# Auto Birthday News v1.1 für News Extended #
# © 2014 by Outi77 & LordOfDeath #
# #
# ------------------------------------------------ #
# Support: www.ilch.de #
# ------------------------------------------------ #
# Homepage: Outi77 (www.sivos.de) #
# LordOfDeath (www.altehasen-gaming.de) #
# #
########################################################
function
birthday_news () {
global
$allgAr
;
function
dz_timestamp(
$d
,
$t
=
'00:00'
) {
$d
= trim(
$d
);
$t
= trim(
$t
);
if
(preg_match(
'/^\d{1,2}.\d{1,2}.(\d{2}|\d{4})$/'
,
$d
) == false OR preg_match(
'/^\d{1,2}:\d\d$/'
,
$t
) == false) {
return
false;
}
$d
=
explode
(
'.'
,
$d
);
$t
=
explode
(
':'
,
$t
);
if
(
$o
=
mktime
(
$t
[0],
$t
[1], 0,
$d
[1],
$d
[0],
$d
[2])) {
return
$o
;
}
else
{
return
false;
}
}
# Birthday News ein- oder aus
if
(
$allgAr
[
'birthdaynews_active'
] == 1 ) {
#abgelaufene News löschen
$now
= time();
db_query(
"DELETE FROM prefix_news WHERE archiv = 3 AND endtime < "
.
$now
);
# Abfrage News Extended installiert ja/nein
$News_ex
=
array
();
$News_ex_inst
= db_query(
"SHOW FULL COLUMNS FROM `prefix_news`"
);
while
(
$ar
= db_fetch_object(
$News_ex_inst
)){
$News_ex
[] =
$ar
->Field;
}
if
(in_array(
'editor_id'
,
$News_ex
)) {
# User Rechte aus Einstellungen für News Extended umwandeln
$bdnews_ex_recht
=
$allgAr
[
'birthdaynews_grecht'
];
switch
(
$bdnews_ex_recht
) {
case
'-0'
:
$bdnews_ex_recht
=
'1023'
;
break
;
case
'-1'
:
$bdnews_ex_recht
=
'1022'
;
break
;
case
'-2'
:
$bdnews_ex_recht
=
'1020'
;
break
;
case
'-3'
:
$bdnews_ex_recht
=
'1016'
;
break
;
case
'-4'
:
$bdnews_ex_recht
=
'1008'
;
break
;
case
'-5'
:
$bdnews_ex_recht
=
'992'
;
break
;
case
'-6'
:
$bdnews_ex_recht
=
'960'
;
break
;
case
'-7'
:
$bdnews_ex_recht
=
'896'
;
break
;
case
'-8'
:
$bdnews_ex_recht
=
'768'
;
break
;
case
'-9'
:
$bdnews_ex_recht
=
'512'
;
break
;
}
# Aktuelles Datum und timestamp für News
$akt_date
=
date
(
'Y-m-d'
);
$shownews
= time();
# Datum für Geburtstagsabfrage
$geb_date_abf
=
date
(
'm-d'
);
#Datum zum Löschen der News ermitteln
$time_to_del
=
date
(
'd.m.Y'
,
strtotime
(
"+"
.
$allgAr
[
'birthdaynews_del_time'
].
" days"
));
$endtime
= dz_timestamp(
$time_to_del
,
'00:00'
);
#Ermitteln, ob News nach x Tagen gelöscht oder archiviert werden sollen
if
(
$allgAr
[
'birthdaynews_del_time'
] !=
''
) {
$arch_del
= (
$allgAr
[
'birthdaynews_del'
] == 1 ? 3 : 2);
}
else
{
$arch_del
= 0;
$endtime
=
'NULL'
;
}
# User Abfragen
die
zur Usergruppe gehören und Geburtstag haben
$ucount
= 0;
$bduserlist
=
''
;
$abf
= db_query(
"SELECT `id`, `name`, `gebdatum`, `avatar`, `recht` FROM `prefix_user` WHERE `recht` <= '"
.
$allgAr
['birthdaynews_urecht
']."'
AND DATE_FORMAT(gebdatum,
'%m-%d'
) =
'".$geb_date_abf."'
");
while
(
$row
= db_fetch_assoc(
$abf
)) {
$ucount
++;
# Avatar falls vorhanden-> wenn nicht Gast Avatar benutzen
$avatar
=
''
;
if
(
file_exists
(
$row
[
'avatar'
])) {
$avatar
=
$row
[
'avatar'
];
}
else
{
$avatar
=
'include/images/avatars/wurstegal.jpg'
;
}
# Alter bestimmen
$gebdatum
=
date
(
'd.m.Y'
,
strtotime
(
$row
[
'gebdatum'
]));
$tag
=
date
(
'd'
,
strtotime
(
$row
[
'gebdatum'
]));
$monat
=
date
(
'm'
,
strtotime
(
$row
[
'gebdatum'
]));
$jahr
=
date
(
'Y'
,
strtotime
(
$row
[
'gebdatum'
]));
$jetzt
=
mktime
(0,0,0,
date
(
"m"
),
date
(
"d"
),
date
(
"Y"
));
$geburtstag
=
mktime
(0,0,0,
$monat
,
$tag
,
$jahr
);
$alter
=
intval
((
$jetzt
-
$geburtstag
) / (3600 * 24 * 365));
# Umbruch nach x Usern
if
(
$ucount
%
$allgAr
[
'birthdaynews_umbr'
] == 0) {
$tdbrk
=
'</tr></table><table width="100%" align="center"><tr>'
;
}
else
{
$tdbrk
=
''
;
}
# Array -> User
die
Geburtstag haben
$bduserlist
.=
'<td align="center" valign="middle" style="padding:5px"><div class="bdaynews" style="text-align: center"><a href="index.php?user-details-'
.
$row
[
'id'
].
'"><img src="'
.
$avatar
.
'" width="100"><br>'
.
$row
[
'name'
].
' ('
.
$alter
.
')</a></div></td>'
.
$tdbrk
.
''
;
}
# News Text
if
(
$ucount
> 0) {
$bdnews_text
=
'<br><br>'
;
$bdnews_text
.= (
$ucount
== 1 ?
'<p style="text-align: center;">Wir gratulieren folgendem User zum Geburtstag</p>'
:
'<p style="text-align: center;">Wir gratulieren folgenden Usern zum Geburtstag</p>'
);
$bdnews_text
.=
'<br><br><br>'
;
$bdnews_text
.=
'<table width="100%" align="center"><tr>'
;
$bdnews_text
.=
''
.
$bduserlist
.
''
;
$bdnews_text
.=
'</tr></table>'
;
$bdnews_text
.=
'<br><br><br>'
;
$bdnews_text
.= (
$ucount
== 1 ?
'<p style="text-align: center;">Wir wünschen Dir viel Erfolg, Gesundheit und Glück im neuen Lebensjahr.</p>'
:
'<p style="text-align: center;">Wir wünschen Euch viel Erfolg, Gesundheit und Glück im neuen Lebensjahr.</p>'
);
$bdnews_text
.=
'<br><br><br>'
;
# Prüfen ob eine News schon geschrieben wurde
$check_news
= db_count_query(
"SELECT COUNT(*) FROM `prefix_news` WHERE `news_title` = '"
.
$allgAr
['birthdaynews_titel
']."'
AND news_time =
'".$akt_date." 00:00:00'
");
if
(!
$check_news
) {
# Wenn noch nicht vorhanden, News schreiben
$bdnews_do_qry
= @db_query("INSERT INTO `prefix_news` (`news_title`,`user_id`,`news_time`,`endtime`,`news_recht`,`news_kat`,`news_text`,`show`,`html`,`archiv`)
VALUES
(
'".$allgAr['
birthdaynews_titel
']."'
,
'".$allgAr['
birthdaynews_sendid
']."'
,
'".$akt_date."'
,
if
(
$endtime
<>
''
,
$endtime
,NULL),
'".$bdnews_ex_recht."'
,
'".$allgAr['
birthdaynews_kat
']."'
,
'".$bdnews_text."'
,
'".$shownews."'
,1,
'".$arch_del."'
)");
}
}
}
}
}
?>