Seite 2 von 2
Re: Benutzerdefiniertes Profilfeld: Datum '0- 0- 2012'
Verfasst: 29.04.2012 14:31
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.
Re: Benutzerdefiniertes Profilfeld: Datum '0- 0- 2012'
Verfasst: 29.04.2012 14:53
von Miriam
Was haben Deine Tests ergeben?
Re: Benutzerdefiniertes Profilfeld: Datum '0- 0- 2012'
Verfasst: 29.04.2012 15:05
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.
Re: Benutzerdefiniertes Profilfeld: Datum '0- 0- 2012'
Verfasst: 29.04.2012 15:11
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.
Re: Benutzerdefiniertes Profilfeld: Datum '0- 0- 2012'
Verfasst: 29.04.2012 15:37
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?
Re: Benutzerdefiniertes Profilfeld: Datum '0- 0- 2012'
Verfasst: 29.04.2012 21:29
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;
Re: Benutzerdefiniertes Profilfeld: Datum '0- 0- 2012'
Verfasst: 29.04.2012 21:37
von DerTheo
Funktioniert Einwandfrei, vielen vielen Dank!
