Hilfe für ein Userfeld |
|
|
Veteran Mitglied
|
Paramedic Geschrieben am 06.05.2012 um 07:16 |
|
Hallo zusammen,
ich möchte für mich ein Userfeld machen das den Titel "Grund der Registration" trägt.
Dieses Feld soll aber nur in der Registration und hier (administration/members.php?aid=7a9652302fe448e8&step=view&user_id=xx) angezeigt werden.
ist das möglich, wenn ja wie muss ich das machen.
Habe das Userfeld bereits fertig aber es wird auch in der profile.php angezeigt.
Über Tips freue ich mich sehr !! (: |
|
|
|
Seiten Administrator
|
David Geschrieben am 06.05.2012 um 10:50 |
|
Es wäre cool, wenn du das Benutzerfeld hier anhängen könntest. |
Liebe Grüße, euer David.
Aktiver PHP-Fusion Nutzer seit 3. September 2006
--------------------------------------------------------
PHP-Fusion Österreich Seitenbetreiber.
|
|
|
|
Senior Mitglied
|
DeeoNe Geschrieben am 06.05.2012 um 14:30 |
|
Naja wenn man es bei mir sieht und hier fragt....was soll ich dazu noch sagen, wenn man mich nicht Fragen will.
Dazu sage ich gleich, wenn du das als Pflichtfeld willst, kann das sein, dass du das ins Profilfeld einbauen musst, seitdenn es geht mit einer Value Prüfung im Profilfeld, wo ich das Für 7.00 und 7.01 hatte, war ich noch nicht so erfahren^^
Habs für 7.02 neu geschrieben, weil man muss es nur noch im Profiladmin als Pflichtfeld Anhaken und fertig.
Zusammengefügt am 06. Mai 2012 um 14:57:21:
Hier mal als 7.02, da kann man sich bisschen was abgucken:
<?php
/*-------------------------------------------------------+
| PHP-Fusion Content Management System
| Copyright © 2002 - 2009 Nick Jones
| http://www.php-fusion.co.uk/
+--------------------------------------------------------+
| Filename: user_grund_include.php
| Author: DeeoNe
+--------------------------------------------------------+
| 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"); }
// Display user field input
if ($profile_method == "input") {
if(FUSION_SELF == "register.php") {
$user_grund = isset($user_data['user_grund']) ? $user_data['user_grund'] : "";
if ($this->isError()) { $user_grund = isset($_POST['user_grund']) ? stripinput($_POST['user_grund']) : $user_grund; }
echo "<tr>\n";
echo "<td class='tbl".$this->getErrorClass("user_grund")."'><label for='user_grund'>".$locale['uf_grund'].$required."</label><br><span style='color:#ff0000' class='small2'>(Diese Information wird verwendet, um Ihre Registrierung hier zu überprüfen.)</span></td>\n";
echo "<td class='tbl".$this->getErrorClass("user_grund")."'>";
echo "<textarea name='user_grund' cols='60' rows='3' class='textbox' style='width:295px'>".(isset($user_data['user_grund']) ? $user_data['user_grund'] : "")."</textarea>";
echo "</td>\n</tr>\n";
if ($required) { $this->setRequiredJavaScript("user_grund", $locale['uf_grund_error']); }
}
// Display in profile
} elseif (($profile_method == "display") && (iADMIN)) {
if ($user_data['user_grund']) {
echo "<tr>\n";
echo "<td class='tbl1'><font color='#FF0000'>".$locale['uf_grund']."</font></td>\n";
echo "<td align='right' class='tbl1'>".$user_data['user_grund']."</td>\n";
echo "</tr>\n";
}
// Insert and update
} elseif ($profile_method == "validate_insert" || $profile_method == "validate_update") {
if(FUSION_SELF == "register.php") {
// Get input data
if (isset($_POST['user_grund']) && ($_POST['user_grund'] != "" || $this->_isNotRequired("user_grund"))) {
// Set update or insert user data
$this->_setDBValue("user_grund", stripinput(trim($_POST['user_grund'])));
} else {
$this->_setError("user_grund", $locale['uf_grund_error'], true);
}
}
}
?>
mal gucken ob du was anfangen kannst.
Augenmerk auf:
(iADMIN)
(FUSION_SELF == "register.php") |
Bearbeitet von DeeoNe am 06.05.2012 um 14:57
|
|
|
|
Veteran Mitglied
|
Paramedic Geschrieben am 06.05.2012 um 15:49 |
|
Danke Denis, ich hatte dich damals mal gefragt gehabt (Anfangszeit) wo ich bei Dir Angemeldet war. Ich schau mal ob ich das so hin bekomme. (:
[Edit]:
Ich würde euch gern mal mein Feld anhängen, ich bekomm es irgendwie nicht eingebaut. Würde mich freuen, wenn mir jemand helfen könnte.
LG |
Bearbeitet von Paramedic am 06.05.2012 um 16:12
|
|
|
|
Senior Mitglied
|
DeeoNe Geschrieben am 06.05.2012 um 16:22 |
|
Ändern so bei Block2:
} elseif (($profile_method == "display") && (iADMIN)) {
Einbauen das im Block1 & Block3:
if(FUSION_SELF == "register.php") {
CODE
}
Eigentlich kann man sich das so nun abgucken von meinem wie es ungefähr geht und wo die klammern sitzten müssen. |
|
|
|
Veteran Mitglied
|
Paramedic Geschrieben am 06.05.2012 um 16:25 |
|
Gut also müsste das nun so aussehen:
if ($profile_method == "input") {
if(FUSION_SELF == "register.php") {
echo "<tr>\n";
echo "<td class='tbl'>".$locale['uf_registriergrund']."<br />
<span style='color:#ff0000; font-size:10px;'><b>(Diese Information wird verwendet,<br />um deine Registrierung hier zu überprüfen.)</b></span></td>\n";
echo "<td class='tbl'><textarea name='user_registriergrund' rows='2' class='textbox' style='width:200px'>".(isset($user_data['user_registriergrund']) ? $user_data['user_registriergrund'] : "")."</textarea>
</td>\n";
echo "</tr>\n";
} elseif (($profile_method == "display") && (iADMIN)) {
if ($user_data['user_registriergrund']) {
echo "<tr>\n";
echo "<td width='1%' class='tbl1' style='white-space:nowrap'>".$locale['uf_registriergrund']."</td>\n";
echo "<td align='left' class='tbl1'>".$user_data['user_registriergrund']."</td>\n";
echo "</tr>\n";
}
if(FUSION_SELF == "register.php") {
} elseif ($profile_method == "validate_insert") {
$db_fields .= ", user_registriergrund";
$db_values .= ", '".(isset($_POST['user_registriergrund']) ? stripinput(trim($_POST['user_registriergrund'])) : "")."'";
if($_POST['user_registriergrund'] == '') $error .= $locale['uf_registriergrund_error'];
} elseif ($profile_method == "validate_update") {
$db_values .= ", user_registriergrund='".(isset($_POST['user_registriergrund']) ? stripinput(trim($_POST['user_registriergrund'])) : "")."'";
}
}
?>
Eventuell habe ich was falsch gemacht, denn unter "Profil bearbeiten" erhalte ich die Edit_profile.php auf der ganzen Desktopbreite und nur bis zum Avatar.
[Edit]:
Fehler gefunden!
Nurnoch eins, wie kann ich das nun so machen, dass es auch noch in Edit_profile angezeigt wird sodass ich den Testuser bearbeiten kann dort den Grund einfügen kann und im Adminbereich mal gucken kann ? |
|
|
|
Senior Mitglied
|
DeeoNe Geschrieben am 06.05.2012 um 16:37 |
|
Du hast gesagt:
Dieses Feld soll aber nur in der Registration und hier (administration/members.php?aid=7a9652302fe448e8&step=view&user_id=xx) angezeigt werden.
Und das ist das was ich dir gepostet habe, um es Editieren zu können im Nachhinein muss das ganze anderst sein:
if(FUSION_SELF == "register.php") {
muss in:
Wobei das nicht ganz stimmt was du da oben gepostet hast an Code:
<?php
/*-------------------------------------------------------+
| PHP-Fusion Content Management System
| Copyright (C) 2002 - 2010 Nick Jones
| http://www.php-fusion.co.uk/
+--------------------------------------------------------+
| Filename: user_registriergrund_include.php
| Author: Mod-Rescue
+--------------------------------------------------------+
| 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(FUSION_SELF == "register.php") {
echo "<tr>\n";
echo "<td class='tbl'>".$locale['uf_registriergrund']."<br />
<span style='color:#ff0000; font-size:10px;'><b>(Diese Information wird verwendet,<br />um deine Registrierung hier zu überprüfen.)</b></span></td>\n";
echo "<td class='tbl'><textarea name='user_registriergrund' rows='2' class='textbox' style='width:200px'>".(isset($user_data['user_registriergrund']) ? $user_data['user_registriergrund'] : "")."</textarea>
</td>\n";
echo "</tr>\n";
}
} elseif (($profile_method == "display") && (iADMIN)) {
if ($user_data['user_registriergrund']) {
echo "<tr>\n";
echo "<td width='1%' class='tbl1' style='white-space:nowrap'>".$locale['uf_registriergrund']."</td>\n";
echo "<td align='left' class='tbl1'>".$user_data['user_registriergrund']."</td>\n";
echo "</tr>\n";
}
} elseif ($profile_method == "validate_insert") {
if(FUSION_SELF == "register.php") {
$db_fields .= ", user_registriergrund";
$db_values .= ", '".(isset($_POST['user_registriergrund']) ? stripinput(trim($_POST['user_registriergrund'])) : "")."'";
if($_POST['user_registriergrund'] == '') $error .= $locale['uf_registriergrund_error'];
} elseif ($profile_method == "validate_update") {
$db_values .= ", user_registriergrund='".(isset($_POST['user_registriergrund']) ? stripinput(trim($_POST['user_registriergrund'])) : "")."'";
}
}
?> |
|
|
|
Veteran Mitglied
|
Paramedic Geschrieben am 06.05.2012 um 16:42 |
|
So danke erstmal, ich hab den Code nun so:
<?php
/*-------------------------------------------------------+
| PHP-Fusion Content Management System
| Copyright (C) 2002 - 2010 Nick Jones
| http://www.php-fusion.co.uk/
+--------------------------------------------------------+
| Filename: user_registriergrund_include.php
| Author: Mod-Rescue
+--------------------------------------------------------+
| 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(iADMIN) {
echo "<tr>\n";
echo "<td class='tbl'>".$locale['uf_registriergrund']."<br />
<span style='color:#ff0000; font-size:10px;'><b>(Diese Information wird verwendet,<br />um deine Registrierung hier zu überprüfen.)</b></span></td>\n";
echo "<td class='tbl'><textarea name='user_registriergrund' rows='2' class='textbox' style='width:200px'>".(isset($user_data['user_registriergrund']) ? $user_data['user_registriergrund'] : "")."</textarea>
</td>\n";
echo "</tr>\n";
} elseif (($profile_method == "display") && (iADMIN)) {
if ($user_data['user_registriergrund']) {
echo "<tr>\n";
echo "<td width='1%' class='tbl1' style='white-space:nowrap'>".$locale['uf_registriergrund']."</td>\n";
echo "<td align='left' class='tbl1'>".$user_data['user_registriergrund']."</td>\n";
echo "</tr>\n";
}
}
if(iADMIN) {
} elseif ($profile_method == "validate_insert") {
$db_fields .= ", user_registriergrund";
$db_values .= ", '".(isset($_POST['user_registriergrund']) ? stripinput(trim($_POST['user_registriergrund'])) : "")."'";
if($_POST['user_registriergrund'] == '') $error .= $locale['uf_registriergrund_error'];
} elseif ($profile_method == "validate_update") {
$db_values .= ", user_registriergrund='".(isset($_POST['user_registriergrund']) ? stripinput(trim($_POST['user_registriergrund'])) : "")."'";
}
}
?>
Im Adminprofil (administration/members.php?aid=7a9652302fe448e8&step=view&user_id=xx)
wird das nicht angezeigt. Ich glaube, ich habe was falsch. |
|
|
|
Senior Mitglied
|
DeeoNe Geschrieben am 06.05.2012 um 16:45 |
|
Schau dir mein Code aus Beitrag#7 GENAU an, oder nimmt den und änder es dort, denn du hast wieder die gleichen Fehler drinne! |
Bearbeitet von DeeoNe am 06.05.2012 um 16:49
|
|
|
|
Veteran Mitglied
|
Paramedic Geschrieben am 06.05.2012 um 16:49 |
|
So, ich hab nun deinen Code aus Beitrag 7 genommen und so geändert:
<?php
/*-------------------------------------------------------+
| PHP-Fusion Content Management System
| Copyright (C) 2002 - 2010 Nick Jones
| http://www.php-fusion.co.uk/
+--------------------------------------------------------+
| Filename: user_registriergrund_include.php
| Author: Mod-Rescue
+--------------------------------------------------------+
| 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(iADMIN) {
echo "<tr>\n";
echo "<td class='tbl'>".$locale['uf_registriergrund']."<br />
<span style='color:#ff0000; font-size:10px;'><b>(Diese Information wird verwendet,<br />um deine Registrierung hier zu überprüfen.)</b></span></td>\n";
echo "<td class='tbl'><textarea name='user_registriergrund' rows='2' class='textbox' style='width:200px'>".(isset($user_data['user_registriergrund']) ? $user_data['user_registriergrund'] : "")."</textarea>
</td>\n";
echo "</tr>\n";
}
} elseif (($profile_method == "display") && (iADMIN)) {
if ($user_data['user_registriergrund']) {
echo "<tr>\n";
echo "<td width='1%' class='tbl1' style='white-space:nowrap'>".$locale['uf_registriergrund']."</td>\n";
echo "<td align='left' class='tbl1'>".$user_data['user_registriergrund']."</td>\n";
echo "</tr>\n";
}
} elseif ($profile_method == "validate_insert") {
if(iADMIN) {
$db_fields .= ", user_registriergrund";
$db_values .= ", '".(isset($_POST['user_registriergrund']) ? stripinput(trim($_POST['user_registriergrund'])) : "")."'";
if($_POST['user_registriergrund'] == '') $error .= $locale['uf_registriergrund_error'];
} elseif ($profile_method == "validate_update") {
$db_values .= ", user_registriergrund='".(isset($_POST['user_registriergrund']) ? stripinput(trim($_POST['user_registriergrund'])) : "")."'";
}
}
?>
Es wird immernoch nicht im Adminbereich bei den profilen angezeigt.
Also beim Testuser steht mal beim "Grund" Test drinne aber wird nicht angezeigt. |
Bearbeitet von Paramedic am 06.05.2012 um 16:50
|
|
|
|
Senior Mitglied
|
DeeoNe Geschrieben am 06.05.2012 um 16:50 |
|
Sieht nur ein Admin und muss was eingetragen sein. |
|
|
|
Veteran Mitglied
|
Paramedic Geschrieben am 06.05.2012 um 16:51 |
|
Hab eben nochmal bearbeiten, ich als SA sehe das irgendwie nicht :/ |
|
|
|
Senior Mitglied
|
DeeoNe Geschrieben am 06.05.2012 um 16:55 |
|
Das ist komisch, ging das überhaupt vorher?
Weil das was drinne ist, ist jetzt nur, das es ein admin sieht, aber die funktionen bleiben erhalten. |
|
|
|
Veteran Mitglied
|
Paramedic Geschrieben am 06.05.2012 um 16:59 |
|
OK, fehler gefunden!
Hatte ausversehen das userfeld deaktiviert xD
Zusammengefügt am 08. Mai 2012 um 18:43:43:
Jetzt mal noch ne Frage ... irgendwie funzt das nicht als Pflichtfeld xD |
Bearbeitet von Paramedic am 08.05.2012 um 18:43
|
|
|
|
Senior Mitglied
|
DeeoNe Geschrieben am 08.05.2012 um 20:55 |
|
Zitat Dazu sage ich gleich, wenn du das als Pflichtfeld willst, kann das sein, dass du das in die Profil.php einbauen musst wie ich darmals, seitdenn es geht mit einer Value Prüfung im Profilfeld, wo ich das Für 7.00 und 7.01 hatte, war ich noch nicht so erfahren^^
Habs für 7.02 neu geschrieben, weil man muss es nur noch im Profiladmin als Pflichtfeld Anhaken und fertig.
Weiß nicht ob man da eine Java Prüfung auf value Leer einbauen kann, das eine Meldung kommt. |
|
|
|
Veteran Mitglied
|
Paramedic Geschrieben am 08.05.2012 um 20:58 |
|
Ah, diesen Abschnitt habe ich wohl übersehen. Eventuell kann ja jemand Sagen ob man ne value leer einbauen kann. |
|
|
|
Seiten Administrator
|
David Geschrieben am 10.05.2012 um 04:42 |
|
Pflichtfelder gibt es erst seit v7.02, von daher müsste man bei v7.01.xx alle Dateien (register.php, edit_profile.php, includes/update_profile_include.php, admin/members.php, profile.php) von Hand bearbeiten und das Benutzerfeld fix einprogrammieren. |
Liebe Grüße, euer David.
Aktiver PHP-Fusion Nutzer seit 3. September 2006
--------------------------------------------------------
PHP-Fusion Österreich Seitenbetreiber.
|
|
|
|
Veteran Mitglied
|
Paramedic Geschrieben am 10.05.2012 um 04:45 |
|
Hi David, das ist nicht ganz richtig denn es gibt von PHPFusion-Supportclub die Userfelder "Kontaktdaten" welche als Pflichtfelder gemacht sind allerdings ist da der nachteil dass du keine Members mehr im Admin anlegen kannst.
Gut, aber nun die Frage was genau müsste man machen, damit man das hinbekommt wenn es natürlich zuviel aufwand ist dann kann man das auch lassen. |
|
|
|
Seiten Administrator
|
David Geschrieben am 10.05.2012 um 04:52 |
|
Wie du bereits sagtest, man kann dies nicht mehr und das nicht mehr, ganz einfach, weils für v7.01 keine Pflichtfelder als "Addon" vergesehen gab.
Nunja alzuviel ist es nicht, ich werde, wenn ich die Zeit habe, dir einen Tutorial schreiben. |
Liebe Grüße, euer David.
Aktiver PHP-Fusion Nutzer seit 3. September 2006
--------------------------------------------------------
PHP-Fusion Österreich Seitenbetreiber.
|
|
|
|
Veteran Mitglied
|
Paramedic Geschrieben am 10.05.2012 um 04:53 |
|
Das wäre klasse wenn Du das machen würdest. (: |
|
|