close× Call Us +49 (1805) 01 29 59
Thread Author: Dittgenqrv
Thread ID: 1867
Thread Info
Es gibt 12 Beiträge zu diesem Thema, und es wurde 2326 mal angesehen.
Wer ist hier? 1 Gäste
 Thema drucken
Geburtsdatum
Dittgenqrv
Hallo Leute,

ich wollte gerne das Geburtsdatum auf unseren "deutschen Standard" bringen.
Die Birthdate user_birthdate_include.php ist schon soweit angepasst, dass bei der Profil-Änderung oder beim Registrieren schon die richtige Reihenfolge steht:

Code 

<?php
/*-------------------------------------------------------+
| PHP-Fusion Content Management System
| Copyright © 2002 - 2008 Nick Jones
| http://www.php-fusion.co.uk/
+--------------------------------------------------------+
| Filename: user_birthdate_include.php
| Author: Digitanium
+--------------------------------------------------------+
| This program is released as free software under the
| Affero GPL license. You can redistribute it and/or
| modify it under the terms of this license which you
| can read by viewing the included agpl.txt or online
| at www.gnu.org/licenses/agpl.html. Removal of this
| copyright header is strictly prohibited without
| written permission from the original author(s).
+--------------------------------------------------------*/
if (!defined("IN_FUSION")) { die("Access Denied"); }

if ($profile_method == "input") {
   if (isset($user_data['user_birthdate']) && $user_data['user_birthdate'] != "0000-00-00") {
      $user_birthdate = explode("-", $user_data['user_birthdate']);
      $user_month = number_format($user_birthdate['1']);
      $user_day = number_format($user_birthdate['2']);
      $user_year = $user_birthdate['0'];
   } else {
      $user_month = 0; $user_day = 0; $user_year = 0;
   }
   echo "<tr>\n";
   echo "<td class='tbl'>".$locale['uf_birthdate'].": <span class='small2'>(TT/MM/JJJJ)</span></td>\n";
   



echo "<td class='tbl'><select name='user_day' class='textbox'>\n<option value=''>&nbsp;</option>\n";
   for ($i = 1; $i <= 31; $i++) { echo "<option".($user_day == $i ? " selected='selected'" : "").">".$i."</option>\n"; }
   




echo "</select>\n<select name='user_month' class='textbox'>\n<option value=''>&nbsp;</option>\n";
   for ($i = 1; $i <= 12; $i++) { echo "<option".($user_month == $i ? " selected='selected'" : "").">".$i."</option>\n"; }
   




echo "</select>\n<select name='user_year' class='textbox'>\n<option value=''>&nbsp;</option>\n";
   for ($i = date("Y"); $i > (date("Y") - 99); $i--) { echo "<option".($user_year == $i ? " selected='selected'" : "").">".$i."</option>\n"; }
   


echo "</select>\n</td>\n";
   echo "</tr>\n";
} elseif ($profile_method == "display") {
   if ($user_data['user_birthdate'] != "0000-00-00") {
      echo "<tr>\n";
      echo "<td width='1%' class='tbl1' style='white-space:nowrap'>".$locale['uf_birthdate']."</td>\n";
      echo "<td align='right' class='tbl1'>";
      $months = explode("|", $locale['months']);
      $user_birthdate = explode("-", $user_data['user_birthdate']);
      echo $months[number_format($user_birthdate['1'])]." ".number_format($user_birthdate['2'])." ".$user_birthdate['0'];
      echo "</td>\n</tr>\n";
   }
} elseif ($profile_method == "validate_insert" || $profile_method == "validate_update") {
   if ((isset($_POST['user_month']) && $_POST['user_month'] != 0) && (isset($_POST['user_day']) && $_POST['user_day'] != 0) && (isset($_POST['user_year']) && $_POST['user_year'] != 0)) {
      $user_birthdate = (isnum($_POST['user_year']) ? $_POST['user_year'] : "0000")
      ."-".(isnum($_POST['user_month']) ? $_POST['user_month'] : "00")
      ."-".(isnum($_POST['user_day']) ? $_POST['user_day'] : "00");
   } else {
      $user_birthdate = "0000-00-00";
   }
   if ($profile_method == "validate_insert") {
      $db_fields .= ", user_birthdate";
      $db_values .= ", '".$user_birthdate."'";
   } elseif ($profile_method == "validate_update") {
      $db_values .= ", user_birthdate='".$user_birthdate."'";
   }
}
?>



Trotzdem wird dann im Profil das Geburtsdatum noch mit mm/dd/yyyy angezeigt.
Da meine Homepage komplett neu ist, gibt es auch noch keine User und so könnte man auch problemlos die Speicherung in der Datenbank z.B von
2009-01-30 in 30.01.2009 ändern. Dann würde es auch richtig angezeigt werden, wenn man irgendwo $data['user_birthdate'] von der Datenbank abruft ...

Wäre echt super, wenn das einer hinbekommen würde!!!

Ciao
Dittgenqrv
 
SC-Ad-Bot
 
Dittgenqrv
:-D Ohje ... bin ich doof ...

Danke für die Hilfe!
Habe es schon überschrieben, funktioniert einwandfrei!

Noch eine Frage:
Kann mir jemand den Code-Schnipsel geben, den ich bräuchte, um das Geburtsdatum in dieser Form in die User-Liste einzutragen?
Also $data['user_birthdate'] zeigt ja noch 2009-01-30 an.

Dankeschön
Dittgenqrv
 
Dittgenqrv
Kannst du das bitte, wie hier in dem Beispiel einbaun?

Code 

echo "<td align='center' class='$cell_color' title='".$data['user_location']."'>".trimlink($data['user_location'] ? $data['user_location'] : $locale['428'], 20)."</td>\n";



Ich habs versucht, kommen aber nur Fehler dabei raus ...

Ciao
Dittgenqrv
 
Dittgenqrv
Moinmoin,

und schon wieder bekomm ich nur Fehler ...
Ich weiß beim besten Willen nicht im Geringsten, wo der Fehler sein soll ... wüttend

HILFEEEE!!!

Ciao
Michell
 
emblinux
Leider funktioniert das auch nicht so, wie Marcus das vorgeschlagen hat.

Denn im Feld user<-birthdate steht ja das Datum im Format 2009-10-26 und die Funktion date erwartet einen Timestamp (Unix-Timestamp)

Mann muss also mit der Funktion substr arbeiten und sich das Datum selbst zusammen bauen.

Code 

$datum = substr($data['user_birthdate'],8,2).".".substr($data['user_birthdate'],5,2).".".substr($data['user_birthdate'],0,4);



Die Variable $datum kannst du dann per echo ausgeben, dort wo du es möchtest.
Ist nur ein Beispiel, kann sein dass du noch was anpassen must. Schau dir auch ruhig mal die Funktion substr auf php.net an.
Das Lernen ist wie ein Meer ohne Ufer. Konfuzius

Alles wird Gut!

KEIN Support per Mail, ICQ oder PN !
www.heiseclan.de/fusion/sig.gif

www.heiseclan.de/geosig.gif
 
Dittgenqrv
Moinmoin,

ich habe es jetzt auch so versucht, aber ich glaube irgendein falches Zeichen irgendwo eingebaut zu haben ...
(--> weißes Fenster, Fehlermeldung)

Code 

         echo "<td align='center' class='$cell_color' title='".$data['user_location']."'>".trimlink($data['user_location'] ? $data['user_location'] : $locale['428'], 20)."</td>\n";
         echo "<td align='center' class='$cell_color' title='".$datum = substr($data['user_birthdate'],8,2).".".substr($data['user_birthdate'],5,2).".".substr($data['user_birthdate'],0,4)"</td>\n";



Das obere ist das Beispiel davor und das zweite dann mein Versuch, das ganze einzubauen.

Dank für die Hilfe!
Dittgenqrv
Bearbeitet von Dittgenqrv am 26.10.2009 um 20:03
 
Dittgenqrv
Moinmoin,

es kommt zwar keine Fehlermeldung mehr, aber das entsprechende Feld ist leider komplett leer.
Also es steht da in dem Tabellen-Feld garnichts drin ...

Ciao
Dittgenqrv
 
Dittgenqrv
Hier ist mal das komplette Ding: (Zeile 68/69 mein Versuch es einzubauen)

[geshi=php]<?php
/*-------------------------------------------------------+
| PHP-Fusion Content Management System
| Copyright (C) 2002 - 2008 Nick Jones
| http://www.php-fusion.co.uk/
+--------------------------------------------------------+
| Filename: members.php
| Author: Nick Jones (Digitanium)
+--------------------------------------------------------+
| This program is released as free software under the
| Affero GPL license. You can redistribute it and/or
| modify it under the terms of this license which you
| can read by viewing the included agpl.txt or online
| at www.gnu.org/licenses/agpl.html. Removal of this
| copyright header is strictly prohibited without
| written permission from the original author(s).
+--------------------------------------------------------*/
require_once "maincore.php";
require_once THEMES."templates/header.php";
include LOCALE.LOCALESET."members.php";

$rowmax = 20; // maximum number of rows to show per page

add_to_title($locale['global_200'].$locale['400']);

opentable($locale['400']);
if (iMEMBER) {
if (!isset($_GET['sortby']) || !preg_match("/^[0-9A-Z]$/", $_GET['sortby'])) { $_GET['sortby'] = "all"; }
$orderby = ($_GET['sortby'] == "all" ? "" : " WHERE user_name LIKE '".stripinput($_GET['sortby'])."%'");
$result = dbquery("SELECT * FROM ".DB_USERS.$orderby."");
$rows = dbrows($result);
if (!isset($_GET['rowstart']) || !isnum($_GET['rowstart'])) { $_GET['rowstart'] = 0; }
if ($rows) {
$i = 0;
echo "<table cellpadding='0' cellspacing='0' width='100%'>\n<tr>\n";
echo "<td align='center' width='25%' class='tbl2'><strong>".$locale['401']."</strong></td>\n";
echo "<td align='left' width='7%' class='tbl2'><strong>".$locale['420']."</strong></td>\n";
echo "<td align='center' width='16%' class='tbl2'><strong>".$locale['421']."</strong></td>\n";
echo "<td align='center' width='12%' class='tbl2'><strong>".$locale['422']."</strong></td>\n";
echo "<td align='center' width='17%' class='tbl2'><strong>".$locale['423']."</strong></td>\n";
echo "<td align='center' width='16%' class='tbl2'><strong>".$locale['433']."</strong></td>\n";
echo "<td align='center' width='7%' class='tbl2'><strong>".$locale['426']."</strong></td>\n";
//echo "<td class='tbl2'><strong>".$locale['405']."</strong></td>\n";
echo "</tr>\n";
$result = dbquery("SELECT * FROM ".DB_USERS.$orderby." ORDER BY user_level DESC, user_name LIMIT ".$_GET['rowstart'].", ".$rowmax);
while ($data = dbarray($result)) {
$cell_color = ($i % 2 == 0 ? "tbl1" : "tbl2"); $i++;
echo "<tr>\n";
// Name
if ($data['user_avatar'] && file_exists(IMAGES."avatars/".$data['user_avatar'])) {
echo "<tr>\n<td class='$cell_color'>\n<a href='profile.php?lookup=".$data['user_id']."'><img src='".IMAGES."avatars/".$data['user_avatar']."' alt='' width='50' height='50' border='0' style='vertical-align: middle'/>&nbsp;&nbsp;".$data['user_name']."</a></td>\n";
}
else { echo "<tr>\n<td class='$cell_color'>\n<a href='profile.php?lookup=".$data['user_id']."'><img src='".IMAGES."no_avatar.gif' alt='' width='50' height='50' border='0' style='vertical-align: middle'/>&nbsp;&nbsp;".$data['user_name']."</a></td>\n\n";
}
echo "<td class='$cell_color'>\n";
if ($data['user_id'] != $userdata['user_id']) {
echo "<a href='messages.php?msg_send=".$data['user_id']."' title='".$locale['427']."'><img alt='".$locale['420']."' src='".THEME."forum/pm.gif' border='0';'></a>\n";
}
echo "</td>\n";
echo "<td align='center' class='$cell_color'>".getuserlevel($data['user_level'])."</td>\n";
echo "<td align='center' class='$cell_color'>\n";
if ($data['user_hide_email'] != "1" || iADMIN) {
echo "<a href='mailto:".str_replace("@","&#64;",$data['user_email'])."' title='".str_replace("@","&#64;",$data['user_email'])."'><img src='".THEME."forum/email.gif' alt='".$locale['422']."' border='0'></a>\n";
}
echo "</td>\n";
echo "<td align='center' class='$cell_color' title='".$data['user_location']."'>".trimlink($data['user_location'] ? $data['user_location'] : $locale['428'], 20)."</td>\n";

$datum = substr($data['user_birthdate'],8,2).".".substr($data['user_birthdate'],5,2).".".substr($data['user_birthdate'],0,4);
echo "<td align='center' class='$cell_color' title='".$datum."'></td>\n";

echo "<td align='center' class='$cell_color'>";
if ($data['user_web'] != "") {
$urlprefix = !strstr($data['user_web'], "http://") ? "http://" : "";
echo "<a href='".$urlprefix.$data['user_web']."' title='".$data['user_web']."' target='_blank'><img src='".THEME."forum/web.gif' alt='".$data['user_web']."' style='border:0px;'></a>";
}
echo "</td>\n";
/*
$groups = "";
$user_groups = explode(".", $data['user_groups']);
$j = 0;
foreach ($user_groups as $key => $value) {
if ($value) {
$groups .= "<a href='profile.php?group_id=".$value."'>".getgroupname($value)."</a>".($j < count($user_groups)-1 ? ", " : "");
}
$j++;
}
echo "<td class='$cell_color'>\n".($groups ? $groups : ($data['user_level']==103 ? $locale['407'] : $locale['406']))."</td>\n";
*/
echo "</tr>\n";

}
echo "</table>\n";
} else {
echo "<center><br />\n".$locale['403'].$_GET['sortby']."<br /><br />\n</center>\n";
}
$search = array(
"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R",
"S","T","U","V","W","X","Y","Z","0","1","2","3","4","5","6","7","8","9"
);
echo "<hr />\n<table cellpadding='0' cellspacing='1' class='tbl-border center'>\n<tr>\n";
echo "<td rowspan='2' class='tbl2'><a href='".FUSION_SELF."?sortby=all'>".$locale['404']."</a></td>";
for ($i = 0; $i < 36 != ""; $i++) {
echo "<td align='center' class='tbl1'><div class='small'><a href='".FUSION_SELF."?sortby=".$search[$i]."'>".$search[$i]."</a></div></td>";
echo ($i == 17 ? "<td rowspan='2' class='tbl2'><a href='".FUSION_SELF."?sortby=all'>".$locale['404']."</a></td>\n</tr>\n<tr>\n" : "\n");
}
echo "</tr>\n</table>\n";
echo "<div align='right' style='margin-top:5px;'>
<form name='search' method='get' action='".BASEDIR."search.php'><span class='small'>".$locale['431']." </span>
<input type='hidden' name='stype' value='members'>
<input type='text' name='stext' class='textbox' style='width:100px;'>
<input type='submit' name='search' value='".$locale['432']."' class='button'>
</form>
</div>\n";
} else {
redirect("index.php");
}
closetable();
if ($rows > $rowmax) { echo "<div align='center' style='margin-top:5px;'>".makepagenav($_GET['rowstart'], $rowmax, $rows, 3, FUSION_SELF."?sortby=".$_GET['sortby']."&amp;")."</div>\n"; }

require_once THEMES."templates/footer.php";
?>[/geshi]
 
Dittgenqrv
EINWANDFREI! FUNKTIONIERT! DANKEEEE Wink
 
Dittgenqrv
Vielleicht noch eine kleine Sache, die das ganze perfekt machen würde:
Dass man ergänzt, dass wenn das Datum 00.00.0000 ist, es durch die $locale['428'] ersetzt werden soll. (Wie bei [user_locale] ...)

Ciao
Dittgenqrv
 
emblinux
Dazu müsste man lediglich die Zeile 68 anpassen.

Code 

$datum = ( (!empty($data['user_birthdate']) && $data['user_birthdate']!="0000-00-00")? substr($data['user_birthdate'],8,2).".".substr($data['user_birthdate'],5,2).".".substr($data['user_birthdate'],0,4) : $locale['428']);


Das Lernen ist wie ein Meer ohne Ufer. Konfuzius

Alles wird Gut!

KEIN Support per Mail, ICQ oder PN !
www.heiseclan.de/fusion/sig.gif

www.heiseclan.de/geosig.gif
 
Dittgenqrv
PERFEKT! JETZT FUNKTIONIERT ALLES GENAU SO, WIE ICH ES MIR VORGESTELLT HABE!

DANKEEEEEEE!!! Weiter so klasse
 
Springe ins Forum:
PHPFusion DE NSS