Seite 4 von 4

Re: Anniversary List - Benutzerfarbe und Profillink

Verfasst: 10.12.2013 14:36
von Miriam
Ich meine, dass die Liste bei jedem Usder, der sich auf dem Index tummelt, die Liste "on the fly" erstellt wird. Also ohne es aus dem Cache auszulesen.

Re: Anniversary List - Benutzerfarbe und Profillink

Verfasst: 10.12.2013 20:28
von DerTheo
Wie kann ich das dementsprechend ändern?

Re: Anniversary List - Benutzerfarbe und Profillink

Verfasst: 10.12.2013 22:10
von Miriam
Du nimmst die Cache Anweisungen raus und schreibst die Rückgabewerte der function get_username_string() direkt in eine Templatevariable.

Re: Anniversary List - Benutzerfarbe und Profillink

Verfasst: 11.12.2013 19:38
von DerTheo
Ich muss nur den Teil in der index.php bearbeiten oder? Leider habe ich keine Ahnung, wie ich das machen soll... könntest du mir mit dem Code helfen?

Vielen Dank
Theo

Re: Anniversary List - Benutzerfarbe und Profillink

Verfasst: 11.12.2013 19:44
von Miriam
Das wäre der Code aus dem 1. Beitrag.

Was hast Du denn schon gecoded?

Re: Anniversary List - Benutzerfarbe und Profillink

Verfasst: 11.12.2013 20:27
von DerTheo

Code: Alles auswählen

    // Generate anniversary list
    $anniversary_list =('get_username_string');
    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); 
2 Zeile und 3 letzte von unten müsse nach meinem Gefühl etwas geändert werden. Da ich mich garnicht auskenne, ist das ganze für mich trail an error... Danke für deine Hilfe

Re: Anniversary List - Benutzerfarbe und Profillink

Verfasst: 11.12.2013 23:17
von Miriam
Nimm mal diesen Code anstelle des im ersten Beitrag verlinkten:

Code: Alles auswählen

// Generate anniversary list
$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'], false, false, true);
            $anniversary_list .= ' (' . ($current_year - date('Y', $row['user_regdate'])) . ')';
        }
    }
}
$db->sql_freeresult($result);

$template->assign_var('ANNIVERSARY_LIST', $anniversary_list); 

Re: Anniversary List - Benutzerfarbe und Profillink

Verfasst: 14.12.2013 02:59
von DerTheo
Vielen Dank Miriam :)
Hab den Code verbaut, morgen und übermorgen sind wieder Jahrestage :) Danke

Re: Anniversary List - Benutzerfarbe und Profillink

Verfasst: 16.12.2013 22:33
von DerTheo
Danke, klappt einwandfrei :)