Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 3 Gast/Gäste
Im Kalender bei Geburtstagen die Namen anzeigen
#1
Hallo

Ich wollte mal fragen wie ich meine Templates ändern muss um bei den Kalendereinträgen nicht "1 Geburtstag" anzuzeigen sondern die Namen der Geburtstagskinder und deren Alter

Frank
Eine Homepage ist nie fertig, man hört nur auf an ihr zu arbeiten - Unbekannter Verfasser
Zitieren
#2
Die Templates zu ändern wird nicht reichen, die Daten müssen ja auch aus der Datenbank bezogen werden. Ein Mod dazu ist mir derzeit nicht bekannt.

Das Thema hatten wir hier schonmal.

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Zitieren
#3
Ok aber die Abfrage müsste es ja schon geben, da ich ja wenn ich den Link 1 Gebusrttag anklicke eine Liste mit den Geburtstagskindern bekomm. Das heißt ich müsste diese Abfrage in das tamplate einbauen.
Des wäre ja Kalender Templates -> ...daybit (oder so ähnlich hab das vorhin versucht aber jetzt ist grad meine Datenbank down und ich kanns nicht nochmal überprüfen). Und es müsste die gleiche abfrage gestartet werden wie in calendar_..._birthday (?). Und wenn ich des hinkrieg dann müsste des doch funktionieren.
Allerdings bin ich noch n PHP und MySQL-Anfänger...

[edit]Irgendwie hat des doch mit $birthdays zu tun...
Eine Homepage ist nie fertig, man hört nur auf an ihr zu arbeiten - Unbekannter Verfasser
Zitieren
#4
Also ich hab jetzt noch mal nachgeschaut:

Es steht in der Kalender Templates -> calendar_daybit und der Zugriff heißt $birthdays.
Jetzt müsste ich entweder den Zugriff aus der calendar_dayview_birthdays nehmen (wenn das möglich ist, da es ebenfalls $birthdays ist) oder ich müsste diesen Template in leicht abgewandelter Form in die calendar_daybit einbinden.
Wäre das möglich?

[edit]Oder muss ich des direkt in der calendar.php ändern?
Code:
$query = $db->query("SELECT u.uid, u.username, u.birthday, u.usergroup, u.displaygroup FROM ".TABLE_PREFIX."users u WHERE u.birthday LIKE '$day-$month-%'");
    $alterbg = $theme['trow1'];
    $comma = "";
    while($bdays = $db->fetch_array($query))
    {
        $bday = explode("-", $bdays['birthday']);
        if($bday[2] && $bday[2] < $year)
        {
            $age = $year - $bday[2];
            $age = " ($age $lang->years_old)";
        }
        else
        {
            $age = "";
        }
        $bdays['username'] = formatname($bdays['username'], $bdays['usergroup'], $bdays['displaygroup']);
        eval("\$birthdays .= \"".$templates->get("calendar_dayview_birthdays_bday", 1, 0)."\";");

        if($alterbg == $theme['trow1'])
        {
            $alterbg = $theme['trow2'];
        }
        else
        {
            $alterbg = $theme['trow1'];
        }
        $comma = ", ";
    }
Das müsste doch, an der richtigen stelle angebracht, den gewünschten Effekt bringen? Wenn ja wo müsste das denn hin?

P.S.: Ich hatte den anderen Thread schon mal gelesen aber ich hab ihn nicht wiedergefunden deswegen hab ich nen neuen aufgemacht. Sorry.
Eine Homepage ist nie fertig, man hört nur auf an ihr zu arbeiten - Unbekannter Verfasser
Zitieren
#5
Als Denkanstoß:

Der von dir genannte Code gibt die Geburtstage für einen bestimmten Tag aus, da der Code für die Detailansicht verwendet wird.

Den Code für die Anzeige des Kalenders findest du in der Datei calendar.php ab Zeile 399, also ab
PHP-Code:
$plugins->run_hooks("calendar_start"); 
bis zum Ende der Datei. Das einfache Einfügen des von dir genannten Codes wird nichts bringen, da hier nur nach den Benutzernamen für einen bestimmten Tag gesucht wird. Es müssen also alle Geburtstage eines Monats ermittelt werden, diese müssen dann den Tagen und den Benutzernamen zugeordnet werden.

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Zitieren
#6
Ok ich hab jetzt in Zeile 443 das
PHP-Code:
for($i 1$i <= $days$i++)
    {
        if(
$bdays[$i])
        {
if(
$bdays[$i] > 1)
            {
                
$birthdays "<a href=\"calendar.php?action=dayview&year=$year&month=$month&day=$i\">$bdays[$i] $lang->birthdays</a><br />\n";
            }
            else
            {
                
$birthdays "<a href=\"calendar.php?action=dayview&year=$year&month=$month&day=$i\">$bdays[$i] $lang->birthday</a><br />\n";
            } 
ersetzt durch
PHP-Code:
for($i 1$i <= $days$i++)
    {
        if(
$bdays[$i])
        {
$day $i;
            
$query $db->query("SELECT u.uid, u.username, u.birthday, u.usergroup, u.displaygroup FROM ".TABLE_PREFIX."users u WHERE u.birthday LIKE '$day-$month-%'");
            
$comma "";
            while(
$bdays $db->fetch_array($query))
            {
                
$bday explode("-"$bdays['birthday']);
                if(
$bday[2] && $bday[2] < $year)
                {
                    
$age $year $bday[2];
                    
$age " ($age)";
                }
                else
                {
                    
$age "";
                }
                
$bdays['username'] = formatname($bdays['username'], $bdays['usergroup'], $bdays['displaygroup']);
                eval(
"\$birthdays .= \"".$templates->get("calendar_dayview_birthdays_bday"10)."\";");
                
$comma "<br/>";
            } 
Aber damit bekomm ich nur den ersten Tag eines Monats...
obwohl die For-Schleife des $i hochzählt.
Eine Homepage ist nie fertig, man hört nur auf an ihr zu arbeiten - Unbekannter Verfasser
Zitieren
#7
Ok hat sich erledigt ich musste nur n bisschen was an den Variablen ändern und n eigenes Template hinzufügen dann gings.

Danke für den Denkansatz.

Ergebnis (ab Zeile 443 in calendar.php):
PHP-Code:
for($i 1$i <= $days$i++)
    {
        if(
$bdays[$i])
        {
            
$birthdays "";
            
$query $db->query("SELECT u.uid, u.username, u.birthday, u.usergroup, u.displaygroup FROM ".TABLE_PREFIX."users u WHERE u.birthday LIKE '$i-$month-%'");
            while(
$bidays $db->fetch_array($query))
            {
                
$biday explode("-"$bidays['birthday']);
                if(
$biday[2] && $biday[2] < $year)
                {
                    
$age $year $biday[2];
                    
$age " ($age)";
                }
                else
                {
                    
$age "";
                }
                
$bidays['username'] = formatname($bidays['username'], $bidays['usergroup'], $bidays['displaygroup']);
                eval(
"\$birthdays .= \"".$templates->get("calendar_daybit_birthdays_bday"10)."\";");
            }
        } 

Und n Template calendar_daybit_birthdays_bday mit dem Inhalt:
Code:
<a href="member.php?action=profile&amp;uid=$bidays[uid]"><strong>$bidays[username]</strong></a>$age<br/>
Eine Homepage ist nie fertig, man hört nur auf an ihr zu arbeiten - Unbekannter Verfasser
Zitieren
#8
Jetzt müsst ich das nur noch als plug-in oder so schreiben weil sonst ist das ganze beim nächsten Update ja möglicherweise weg, oder?
Wie mach ich das am besten?
Eine Homepage ist nie fertig, man hört nur auf an ihr zu arbeiten - Unbekannter Verfasser
Zitieren
#9
Es kann unter Umständen passieren, dass die Änderungen bei einem Update verloren gehen. Entweder schreibst du dir die Änderungen auf oder du machst ein Plugin daraus. Dazu guckst du dir am besten ein vorhandenes Plugin an damit du weißt wie es aufgebaut ist.

Weitere Informationen dazu:
https://www.mybb.de/forum/showthread.php?tid=385
https://www.mybb.de/forum/showthread.php?tid=253

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Zitieren
#10
Danke.

Noch ne Frage: Ich hab ein eigenes Profil-Feld erstellt das "Vollständiger Name" heißt. Wenn ich dieses auch in den Kalender einfügen will wie kann ich darauf zugreifen? D.h. unter welcher "variable" und welche Einbindung brauch ich dafür?
Eine Homepage ist nie fertig, man hört nur auf an ihr zu arbeiten - Unbekannter Verfasser
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Bei Klick auf User-Namen 404-Fehler Marcus 6 2.529 19.08.2015, 11:39
Letzter Beitrag: Marcus
  Namen bei "Letzter Beitrag" und "Moderiert von" formartieren tm2 12 4.675 13.12.2011, 18:34
Letzter Beitrag: tm2
  Glückwunschposting bei Geburtstagen Maybe 8 3.513 22.07.2009, 14:28
Letzter Beitrag: RavLau