Seite 1 von 4

Anniversary List - Benutzerfarbe und Profillink

Verfasst: 04.12.2013 09:25
von DerTheo
Ich nutze diese Mod https://www.phpbb.com/community/viewtopic.php?t=1677295

Code zum EInfügen in der index.php

Code: Alles auswählen

// Generate anniversary list
$anniversary_list = $cache->get('anniversary_list');
if ($anniversary_list === false)
{
    $anniversary_list = '';
    $current_date = date('m-d');
    $current_year = date('Y');
    $leap_year = date('L');
    $sql = 'SELECT user_id, username, user_colour, user_regdate
        FROM ' . USERS_TABLE . "
        WHERE user_type IN (" . USER_NORMAL . ', ' . USER_FOUNDER . ')';
    $result = $db->sql_query($sql);

    while ($row = $db->sql_fetchrow($result))
    {
        // We are compensating for leap year here.  If the year is not a leap year, the current date is Feb 28, and they joined Feb 29 we will list their names.
        if (date('m-d', $row['user_regdate']) == $current_date || (!$leap_year && $current_date == '02-28' && date('m-d', $row['user_regdate']) == '02-29'))
        {
            if (($current_year - date('Y', $row['user_regdate'])) > 0)
            {
                $anniversary_list .= (($anniversary_list != '') ? ', ' : '') . get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']);
                $anniversary_list .= ' (' . ($current_year - date('Y', $row['user_regdate'])) . ')';
            }
        }
    }
    $db->sql_freeresult($result);

    //Figure out what tomorrow's beginning time is based on the board timezone settings and have the cache expire then.
    $till_tomorrow = gmmktime(0, 0, 0) + 86400 - ($config['board_timezone'] * 3600) - ($config['board_dst'] * 3600) - time();
    $cache->put('anniversary_list', $anniversary_list, $till_tomorrow);
}
$template->assign_var('ANNIVERSARY_LIST', $anniversary_list); 
Kann mir jemand mit dem Code helfen, ich würde gerne die Userfarbe anzeigen lassen und das der Username auf das Profil des Users verlinkt.

Ich dachte, dies wäre sogar beim ersten Jahrestag der Fall gewesen, jetzt erscheinen alle User grau. Ich kann mich aber auch täuschen.

Grüße
Theo

Re: Anniversary List - Benutzerfarbe und Profillink

Verfasst: 04.12.2013 12:42
von Miriam
Der Code ist vollkommen in Ordnung.
Scheinbar wird bei Dir die Userfarbe $row['user_colour'] nicht, nicht richtig oder wirklich mit grau ausgelesen. Oder Du hast es mittels einer CSS Änderung auf grau gestellt.

Aber... wer kann das wissen, wenn es keinen Link zum Forum gibt?

Re: Anniversary List - Benutzerfarbe und Profillink

Verfasst: 05.12.2013 07:25
von DerTheo
Mir ist nun aufgefallen, dass es anscheinend am cache liegt.

Leere ich den Cache, stimmen die Userfaben und man kann ihr Profil anklicken. Vergeht ein Tag und neue User stehen in der Liste, sind diese grau und nicht anklickbar. Leere ich den Cache geht es wieder etc...

Gibt es einen Befehl, den ich in den Code im ersten Post einbauen kann, der automatisch den cache leert?

Folgendes hab ich dazu gefunden: https://www.phpbb.com/community/viewtop ... &t=1461565
Was mich da aber beängstigt:
It is until some lowlife(s) decide to use the script to slow down your forum/site :cry:
Ich kann erst heute abend die Liste auch für Besucher sichtbar machen :) Im Moment sehen die Liste nur angemeldete User :)

Re: Anniversary List - Benutzerfarbe und Profillink

Verfasst: 05.12.2013 11:49
von Miriam
Also es liegt definitiv am Cache.

Zeig mal bitte die Datei cache\data_global.php her, wenn diese falsche Darstellung zu sehen ist.
Aber nur den Teil von einschließlich anniversary_list bis imageset_site_logo_md5.
Und dann nochmal, wenn die Ansicht der Daten korrekt ist.

Re: Anniversary List - Benutzerfarbe und Profillink

Verfasst: 05.12.2013 17:31
von DerTheo
So sieht der Code aus, wenn alles grau ist:

Code: Alles auswählen

anniversary_list
s:56:"Bernd (1), Tegor4 (1), Alexi (1), marpu (1)";
1386344438
88
versioncheck
s:68:"3.0.12
https://www.phpbb.com/community/viewtopic.php?f=14&t=2200921
So sieht der Code aus, wenn alles passt:

Code: Alles auswählen

anniversary_list
s:288:"<a href="./memberlist.php?mode=viewprofile&u=162">Bernd</a> (1), <a href="./memberlist.php?mode=viewprofile&u=160">Tegor4</a> (1), <a href="./memberlist.php?mode=viewprofile&u=11">Alexi</a> (1), <a href="./memberlist.php?mode=viewprofile&u=83">marpu</a> (1)";
imageset_site_logo_md5
finde ich nirgends...

Re: Anniversary List - Benutzerfarbe und Profillink

Verfasst: 05.12.2013 17:44
von Miriam
Okay, nicht so wild.

Und das ist immer so, bei der ersten Änderung?

Re: Anniversary List - Benutzerfarbe und Profillink

Verfasst: 05.12.2013 18:51
von DerTheo
Jep.

Heute war es auch so, dass die Namen zwischendurch wieder grau wurden. Es findet also nicht ausschließlich beim Wechsel zu den neuen Jahrestagsmitgliedern statt... leider weiß ich nicht wann und warum...

Hier gehts zum Forum

Re: Anniversary List - Benutzerfarbe und Profillink

Verfasst: 06.12.2013 07:47
von DerTheo
Heute morgen waren die neuen User, die Jahrestag haben, nicht mehr grau hinterlegt.

Könnte es evtl daran liegen, dass ich die Jahrestagsliste nur für registrierte Mitglieder sichtbar gemacht hatte?
DIe nächsten User haben Jahrestag am 08.12, bis dahin lasse ich die Liste vorerst öffentlich :)

Re: Anniversary List - Benutzerfarbe und Profillink

Verfasst: 06.12.2013 15:34
von Miriam
dass ich die Jahrestagsliste nur für registrierte Mitglieder sichtbar gemacht hatte
Wie hattest Du das denn gemacht?

Re: Anniversary List - Benutzerfarbe und Profillink

Verfasst: 06.12.2013 19:50
von DerTheo
Bots und ausgesperrt und nur für regisrtrierte User sichtbar:

<!-- IF not S_IS_BOT and S_USER_LOGGED_IN -->