Benutzerdefiniertes Profilfeld: Datum '0- 0- 2012'

Alles zu Styles, Templates, Icons und Smilies für phpBB 3.0.x, sowie allgemeine Designfragen zur Integration von phpBB in bestehende Websites.
phpBB Styles Demo
Forumsregeln
Bei Style spezifischen Fragen ist der Stylename und die Downloadquelle des Styles erforderlich, besser noch die URL vom betroffenen Forum.
DerTheo
Mitglied
Beiträge: 253
Registriert: 08.07.2011 14:41

Re: Benutzerdefiniertes Profilfeld: Datum '0- 0- 2012'

Beitrag von DerTheo »

Kann ich die Werte im Datumsfeld auch einzerln ansprechen? Also nicht den Value des gesamten Datums sondern nur den Monats Wert / Tageswert / Jahreswert?

Ich möchte die Anfrage so gestalten, dass wen zB kein Tageswert angegeben wird, dieser im Datumsfeld auch nciht mit 0 angezeigt wird. Statt 0- 0- 2012 soll dann nur das Jahr ausgegben werden etc.
Style: Lucid Lime
Phpbb 3.0.8
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: Benutzerdefiniertes Profilfeld: Datum '0- 0- 2012'

Beitrag von Miriam »

Was haben Deine Tests ergeben?
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
DerTheo
Mitglied
Beiträge: 253
Registriert: 08.07.2011 14:41

Re: Benutzerdefiniertes Profilfeld: Datum '0- 0- 2012'

Beitrag von DerTheo »

Füge ich das Profilfeld so ein, wie von dir beschrieben, bleibt die Anzeige gliech. Nicht ausgefüllte Felder des Tages oder Monats werden mit 0 ausgegeben.
Style: Lucid Lime
Phpbb 3.0.8
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: Benutzerdefiniertes Profilfeld: Datum '0- 0- 2012'

Beitrag von Miriam »

Hast Du nun dieses Profilfeld als Datumsfeld angelegt oder jeden Wert für sich als einzelnes Feld, also Datum, Monat, Jahr?
Wenn Du keinen Monat / kein Datum vorgeben willst, dann solltest Du es in separaten Feldern machen. Dann sollte es so passen, wie ich es beschrieben habe. Schau auch in die verlinkten Themen, da ist beschrieben worden, wie du den Namen des Feldes explizit auswerten kannst.
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
DerTheo
Mitglied
Beiträge: 253
Registriert: 08.07.2011 14:41

Re: Benutzerdefiniertes Profilfeld: Datum '0- 0- 2012'

Beitrag von DerTheo »

Ich habe es als Datumsfeld angelegt, den Thread habe ich mir angesehen.

Wenn ich es einzeln abfragen würde, müsste ich ja für Tag / Monat und Jahr jeweils ein Profilfeld anlegen. Das Abfragen der Tage / Monate / des Jahrs ist dann bei einem Datumsfeld nicht möglich, nur wenn ich Tag / Monat / Jahr jeweils als eigenes Profilfeld anlege und abfrage?
Style: Lucid Lime
Phpbb 3.0.8
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: Benutzerdefiniertes Profilfeld: Datum '0- 0- 2012'

Beitrag von Miriam »

Da müssen wir wohl noch etwas am Code schrauben, der ist noch suboptimal für unvollständig angegebene Datums-Angaben:
finde in der /includes/functions_profile_fields.php
  • Code: Alles auswählen

                case 'date':
                    $date = explode('-', $value);
                    $day = (isset($date[0])) ? (int) $date[0] : 0;
                    $month = (isset($date[1])) ? (int) $date[1] : 0;
                    $year = (isset($date[2])) ? (int) $date[2] : 0;
    
                    if (!$day && !$month && !$year)
                    {
                        return NULL;
                    }
                    else if ($day && $month && $year)
                    {
                        global $user;
                        // Date should display as the same date for every user regardless of timezone, so remove offset
                        // to compensate for the offset added by user::format_date()
                        return $user->format_date(gmmktime(0, 0, 0, $month, $day, $year) - ($user->timezone + $user->dst), $user->lang['DATE_FORMAT'], true);
                    }
    
                    return $value;
                break; 
tausche aus gegen:
  • Code: Alles auswählen

                case 'date':
                    $date = explode('-', $value);
                    $day = (isset($date[0])) ? (int) $date[0] : 0;
                    $month = (isset($date[1])) ? (int) $date[1] : 0;
                    $year = (isset($date[2])) ? (int) $date[2] : 0;
    
                    if (!$year)
                    {
                        return NULL;
                    }
                    else if (!$month)
                    {
                        $value = $year;
                    }
                    if ($month && $year)
                    {
                        global $user;
                        // Date should display as the same date for every user regardless of timezone, so remove offset
                        // to compensate for the offset added by user::format_date()
                        if (!$day)
                        {
                            $user->lang['DATE_FORMAT'] = 'M Y';
                            $day = 1;
                        }
                        return $user->format_date(gmmktime(0, 0, 0, $month, $day, $year) - ($user->timezone + $user->dst), $user->lang['DATE_FORMAT'], true);
                    }
                    return $value;
    
                break; 
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
DerTheo
Mitglied
Beiträge: 253
Registriert: 08.07.2011 14:41

Re: Benutzerdefiniertes Profilfeld: Datum '0- 0- 2012'

Beitrag von DerTheo »

Funktioniert Einwandfrei, vielen vielen Dank! :)
Style: Lucid Lime
Phpbb 3.0.8
Antworten

Zurück zu „[3.0.x] Styles, Templates und Grafiken“