News - Features - Downloads - Forum - Team - Support - Switch View: Screen
Login - Registrierung - Passwort vergessen

Antworten: 7
Seite [1]
Ho.B


King for a day



Herkunft: Berlin
Beiträge: 207
# Thema - 30.04.2007 um 15:20 Uhr
Hiho,

es gab ja schonmal den Wunsch (auch von mir) dass die Geburtstags-Navlist alternativ auch die nächsten X Geburtstage auslesen kann, anstatt nur die Geburtstage des heutigen Tages...

Da sich dafür von den CS-Entwicklern keiner interessiert hat, hab ich mich mal daran versucht - und bin kläglich gescheitert...

Wie kann man bei dem Geburtstagsformat von Clansphere die nächsten X Geburtstage überhaupt ausgeben? Wäre das Format nicht JJJJ-MM-TT sondern TT-MM-JJJJ wäre das über SQL kein Problem, oder?

Ich denke es ließe sich über mehrdimensionale Arrays erledigen, doch ich Blicke dabei in der Praxis gar nicht durch, deswegen nochmal die Frage: Wäre jemand von den Profis so nett und könnte das erledigen???

Danke, Gruß Ho.B


------------------
Alle Angaben sind wie immer ohne Gewähr
Inaktiv
RiDDleR


Try to beat me





Beiträge: 141
# Antwort: 1 - 30.04.2007 um 19:16 Uhr
Ähm, hiermal auf die schnelle: ich habe bei mir die events:navnext so abgeändert, dass nicht nur die nächsten Termine angezeigt werden, sondern auch die Geburtstage, die in der nächsten Woche stattfinden, hier der Code (mods/events/navnext.php):

Code +-

 
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
1. / 2. / ... 

<?php
// ClanSphere 2006 - www.clansphere.net
// $Id: navnext.php 101 2006-07-12 09:36:29Z hajo $

$cs_lang cs_translate('events');

require(
'system/core/account.php');

$events_limit 3;

$select 'events_id, events_name, events_time';
$upcome "events_time > '" cs_time() . "'";
$cs_events cs_sql_select(__FILE__,'events',$select,$upcome,'events_time',0,$events_limit);
$events_loop count($cs_events);

$birthdays cs_sql_select(__FILE__,'users','users_age, users_id, users_nick','access_id >= 3 AND users_age != 0',0,0,0);
foreach(
$birthdays AS $value) {
    list (
$jahr$monat$tag) = split('[/.-]'$value['users_age']);
    
$unix mktime(000$monat$tagdate("Y"));
    if ((
cs_time()-$unix) >= -691200 AND (cs_time()-$unix) <= AND $account['access_id'] >= 3) {
        
$birth_where 1;
        
$cs_events[$events_loop]['events_time'] = $unix;
        
$cs_events[$events_loop]['events_id'] = -1;
        
$cs_events[$events_loop]['events_name'] = $cs_lang['birthday'].$value['users_nick'];
        
$events_loop++;
    }
    else if ((
cs_time()-$unix) >= AND (cs_time()-$unix) <= 86399 AND $account['access_id'] >= 3) {
        
$birth_where 1;
        
$cs_events[$events_loop]['events_time'] = $unix;
        
$cs_events[$events_loop]['events_id'] = -2;
        
$cs_events[$events_loop]['events_name'] = $cs_lang['birthday'].$value['users_nick'];
        
$events_loop++;
    }
}
asort($cs_events$cs_events['events_time']);

if(empty(
$cs_events) AND $birth_where != 1) {
    
$cs_result['0']['events_time'] = '';
    
$cs_result['0']['name'] = $cs_lang['no_events'];
}
else {
    
$run 0;
    foreach(
$cs_events AS $events) {
        if (
$run $events_limit) {
            
$secure_name cs_secure($events['events_name']);
            if (
$events['events_id'] == -1) {
                
$cs_result[$run]['name'] = cs_link($secure_name,'events','timer','unix=' $events['events_time']);
            }
            else if (
$events['events_id'] == -2) {
                
$cs_result[$run]['name'] = '<img src="templates/cvstyle/images/birthday.gif" style="vertical-align:middle"><img src="templates/cvstyle/images/spacer.png" width="8" style="vertical-align:middle">'.cs_link($secure_name,'events','timer','unix=' $events['events_time']);
            }
            else {
                
$cs_result[$run]['name'] = cs_link($secure_name,'events','view','id=' $events['events_id']);
            }
            if (
$events['events_id'] == -OR $events['events_id'] == -2) {
                
$cs_result[$run]['events_time'] = cs_date('unix',$events['events_time'],0);
            }
            else {
                
$cs_result[$run]['events_time'] = cs_date('unix',$events['events_time'],1);
            }
            
$run++;
        }
    }
}

$data['events'] = $cs_result;
echo 
cs_subtemplate(__FILE__,$data,'events','navnext',1);

?>



------------------
Newsletter - bitte helt mir bei diesem Problem: +-
------------------


Inaktiv
|
[maG]


Rock the board




Beiträge: 59
# Antwort: 2 - 30.04.2007 um 20:54 Uhr
kann es sein, dass du an der Template Datei noch was geändert hast bzw überhaupt eine erstellt hast? Ich hab versucht deine Lösung erst mal mit meiner (inkl Termin Comments) zu verschmelzen aber bin gescheitert (keine Ausgabe) - erst dann habe ich überhaupt mal versucht nur deine Lösung auszuprobieren (das kommt davon wenn man glaubt alles funzt so wie's kommt ^^) - aber da kommt bei mir auch keine Ausgabe!?


Inaktiv
|
Ho.B
Thread-Ersteller


King for a day



Herkunft: Berlin
Beiträge: 207
# Antwort: 3 - 01.05.2007 um 12:04 Uhr
So sähe dazu sie Navlist aus...

Ist zu benennen nach der Zeile: echo cs_subtemplate(__FILE__,$data,'events','navnext',1);

 
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
1. / 2. / ... 
 
<table style="width:{page:width}" cellpadding="0" cellspacing="0">
  {
loop:events}
  <
tr>
    <
td>{events:name}</td>
    <
td>{events:events_time}</td>
  </
tr>
  {
stop:events}
</
table>


Allerdings ist da noch ein Fehler drin... ich hab z.B. in 6 Tagen Geburtstag, wird allerdings nur angezeigt, wenn ich mich einlogge, hab nur grad keine Zeit mehr selbst nachzuschauen...


------------------
Alle Angaben sind wie immer ohne Gewähr

Inaktiv
|
[maG]


Rock the board




Beiträge: 59
# Antwort: 4 - 01.05.2007 um 12:35 Uhr
danke - hab's jetzt mal in Funktion gesehen aber muss sagen, sagt mir nicht soo zu - gibt's eigentlich nen Mod um die nav_birthday einfach so anzupassen, dass sie immer die nächsten X Geburtstage anzeigt? Habe es bisher noch nicht hingebogen bekommen. Wäre auf jedenfall besser als ein leeres Kästchen - denn soviele User haben wir nicht, dass jeden Tag einer Geburtstag feiert
Und damit bin ich ja sogar wieder beim OnTopic ^^


Inaktiv
|
Ho.B
Thread-Ersteller


King for a day



Herkunft: Berlin
Beiträge: 207
# Antwort: 5 - 01.05.2007 um 18:23 Uhr
genau das suche ich ja auch


------------------
Alle Angaben sind wie immer ohne Gewähr

Inaktiv
|
RiDDleR


Try to beat me





Beiträge: 141
# Antwort: 6 - 01.05.2007 um 19:14 Uhr
01.05.2007 um 12:04 Uhr - Ho.B:
Allerdings ist da noch ein Fehler drin... ich hab z.B. in 6 Tagen Geburtstag, wird allerdings nur angezeigt, wenn ich mich einlogge, hab nur grad keine Zeit mehr selbst nachzuschauen...


Hi, wollte Euch ja nur schnell meine Lösung zeigen, ja, wie ihr schon rausgefunden habt, ich habe die template-datei erstellt.
Und nein, ist kein Fehler, ist ein Feature ;-) Es sollen nur Leute ab Status "Mitglieder" bei uns die Geburtstage angezeigt bekommen, ist so gewollt!


------------------
Newsletter - bitte helt mir bei diesem Problem: +-
------------------


Inaktiv
|
[maG]


Rock the board




Beiträge: 59
# Antwort: 7 - 02.05.2007 um 12:14 Uhr
ja, war ja auch nett gemeint, aber nicht ganz die Lösung die wir suchen - ich werde ggf doch nochmal gucken ob ich deine Lösung implementieren kann - als ich's dann doch mal zu einer Ausgabe geschafft hatte, hat mir die Formatierung nicht gefallen - und ich bin halt so einer, der die Seite immer "am offenen Herzen operiert" ^^ Deshalb konnte ich's zu der Uhrzeit nicht richten, wie ich's haben möchte, sondern habe schnell das BU hoch geladen

Btw, dass mit mit dem "Es ist kein Bug, es ist ein Feature", sprich nur Mitglieder sehen die Geburtstage kommt mir sehr gelegen


Inaktiv
|
Antworten: 7
Seite [1]


Sie müssen sich registrieren, um zu antworten.


ClanSphere Project - Mailus - Imprint - Disclaimer - Scriptinfo