Entwickler-Ecke
Wünsche, Anregungen & Kritik - Quote nur mit BenutzerID
Regan - Mi 30.07.08 21:15
Titel: Quote nur mit BenutzerID
Moin,
ich habe gerade die Folgen der neuen Umbenennungsregel zu spüren bekommen. Damit funktioniert der QuoteTag nicht mehr richtig und es kann zu völlig unsinnigen Threadverläufen kommen. Ich gebe hier nur
den Thread [
http://www.delphi-forum.de/viewtopic.php?t=83555&postorder=asc&start=0] an. Deshalb wäre ich für eine Änderung des Quote-Tags. Ich weiß, es kommt unpersönlich rüber, wenn man jemanden mit einer Zahl anspricht. Das erinnert vielleicht einige an Behörden und Ämter, aber hier wäre es dennoch angebracht.
MfG
Regan
MDX - Mi 30.07.08 21:20
Ju, wenn man auf den Benutzernamen klickt, kommt man auf ne Seite wo steht: "Dieses Mitglied existiert nicht"
(Cool, mein Progg^^)
Dan sollte man die Benutzerid aber auch unter den benutzernamne schreiben oder irgendwo sonst hin...
Christian S. - Mi 30.07.08 21:30
Hallo!
Das ist tatsächlich ein Problem. Glücklicherweise keines, was sehr oft auftritt, sodass wir uns da in Ruhe eine Lösung überlegen können.
Dass man selber die User-ID zum zitieren benutzen muss, finde ich nicht sehr benutzerfreundlich. Dies würde ja dann auch den User-Tag betreffen.
Eine Lösung (vorsicht, brain-storming ;-)) wäre, dass beim Absenden eines Beitrags die Usernamen (die zu dem Zeitpunkt ja aktuell sind) automatisch in die IDs umgewandelt werden. Beim Anzeigen müsste dann der aktuelle Benutzername ausgelesen werden und statt der ID angezeigt.
Der letzte Teil gefällt mir noch nicht, weil es mehr Abfragen bedeuten würde. Da muss ich mal drüber nachdenken, wie man das am Besten macht :gruebel:
Grüße
Christian
huuuuuh - Do 31.07.08 00:18
aber es wär doch die einzige möglichkeit? wird denn nich intern eh der name durch die id erstezt?
Christian S. - Do 31.07.08 00:25
huuuuuh hat folgendes geschrieben: |
| aber es wär doch die einzige möglichkeit? |
Wie ich schrieb: Wir haben genug Zeit, eine Lösung zu überlegen. Es ist zu früh von "einzigen Möglichkeiten" zu reden ;-) IMHO gibt es die sowieso nicht.
huuuuuh hat folgendes geschrieben: |
| wird denn nich intern eh der name durch die id erstezt? |
Schau Dir die Links an, welche im User-Tag stehen. Die enthalten den Namen.
huuuuuh - Do 31.07.08 00:30
naja, bei dir steht ne nummer dahinter :P
Christian S. - Do 31.07.08 00:31
huuuuuh hat folgendes geschrieben: |
| naja, bei dir steht ne nummer dahinter :P |
Im User-Tag?
Christian S. <-- zeig mir die User-ID im Link!
huuuuuh - Do 31.07.08 00:45
vom user-id im link hab ich nix geagt, nur von ner nummer -->2520
Christian S. - Do 31.07.08 00:53
huuuuuh hat folgendes geschrieben: |
| 2520 |
That's numberwang!
Aber sonst, was soll das für eine Nummer sein? :nixweiss:
Der Username im User-Tag wird beim Parsen der Beiträge in keiner Weise durch die User-ID ersetzt. Glaub mir, da wüsste ich von. Alles andere ist für diese Sache absolut irrelevant.
BenBE - Do 31.07.08 09:17
Es gibt jedoch noch vereinzelt einige Stellen, wo man die User-ID in Reinform findet:
http://www.delphi-forum.de/privmsg.php?mode=post&u=360
(Wer da wohl jetzt Post bekommt ??? :mrgreen:)
Also so ganz konsistent durchgezogen ist das auch noch nicht mit dem Nutzernamen ...
Christian S. - Do 31.07.08 11:13
@BenBE: Ich schreibe die ganze Zeit von
User-Tags und nur um die geht es hier! Wieso sollte man beim PN-Button nicht die Benutzer-ID nehmen, den Link tippt man ja nicht selber.
baka0815 hat folgendes geschrieben: |
| Man könnte natürlich auch 'ne Tabelle anlegen, die bei Namenswechsel diesen festhält, also die Namen einer ID historisch speichert um die für solche Zwecke zuordnen zu können? |
Gegenüber der Lösung mit der Benutzer-ID gewinnt man da IMHO nichts. Bei der Lösung mit der neuen Tabelle muss man abfragen, welchem User "damals" der entsprechende Name gehörte und anschließend, welchen Namen der User "heute" hat. Bei der Lösung mit der Benutzertabelle fragt man nur den Namen zu einer User-ID ab.
baka0815 - Do 31.07.08 11:20
Es hätte den Vorteil, dass man weiterhin "<a class="postlink userprofile" href="profile.php?mode=viewprofile&u=baka0815&forcestr=1"><img class="profileicon crispscaling" alt="user profile icon" src="./graphics/bbcode/icon_profile_small.png" border="0" />baka0815</a>" schreiben kann und sich nicht darum kümmern muss, welche ID der Benutzer hat, etc. Anhand des Datums würde dann der korrekte Name eingesetzt.
Natürlich kann man das ganze auch beim Speichern parsen und nur die ID in die Datenbankspeicher. Aber auch hier muss man, wie du ja bereits gesagt hast, den Namen per ID wieder auslesen.
Aber, natürlich hast du recht. In meinem Beispiel müsste man mit den Daten hantieren und diese vergleichen (select user_name from user_history where user_name='baka0815' and [datum des Postings] between gilt_from and gilt_bis), was sicherlich länger dauert als ein einfaches select user_name from users where id=12345. :)
Außerdem gäb's dann vermutlich auch Probleme bei der Nick Registrierung und dem Umbenennen... also vergessen wir meinen Vorschlag. ;)
Gausi - Do 31.07.08 11:22
Könnte man nicht einfach als angezeigten Text den zum Zeitpunkt der Linkerstellung aktuellen Namen nehmen, der dann auch ggf. nach einer Änderung angezeigt wird, und in den Link dahinter die User-ID verwenden? :gruebel: Das wäre doch ein Kompromiss, mit dem man leben könnte - der engezeigte Name stimmt zwar evtl. nicht mehr, aber der Link führt zum richtigen User. Und die DB wird nur einmalig beim erstellen des Postings belastet.
Oder geht das nicht?
Christian S. - Do 31.07.08 11:28
Gausi hat folgendes geschrieben: |
| Könnte man nicht einfach als angezeigten Text den zum Zeitpunkt der Linkerstellung aktuellen Namen nehmen, der dann auch ggf. nach einer Änderung angezeigt wird, und in den Link dahinter die User-ID verwenden? :gruebel: Das wäre doch ein Kompromiss, mit dem man leben könnte - der engezeigte Name stimmt zwar evtl. nicht mehr, aber der Link führt zum richtigen User. Und die DB wird nur einmalig beim erstellen des Postings belastet. |
Man muss aber auf jeden Fall im BBCode dann noch die User-ID ablegen, falls jemand den Beitrag editiert oder zitiert. Aber zumindest die DB-Abfrage bei jedem Anzeigen entfiele.
Andererseits: Gerade der angezeigte Name ist ja das, was meistens verwirrt. In den Quote-Tags identifiziert man denjenigen, der zitiert wird, ja meist nur über den angezeigten Namen und klickt nicht jeden User-Link an.
Yogu - Do 31.07.08 11:46
Christian S. hat folgendes geschrieben: |
| Aber zumindest die DB-Abfrage bei jedem Anzeigen entfiele. |
Werden die Postings nicht gecacht? Ich dachte, nach dem Erstellen / Editieren wird eine HTML-Version des Posts gespeichert, die dann gar keine Datenbankabfrage mehr braucht. :gruebel:
Christian S. - Do 31.07.08 11:59
Yogu hat folgendes geschrieben: |
Christian S. hat folgendes geschrieben: | | Aber zumindest die DB-Abfrage bei jedem Anzeigen entfiele. |
Werden die Postings nicht gecacht? Ich dachte, nach dem Erstellen / Editieren wird eine HTML-Version des Posts gespeichert, die dann gar keine Datenbankabfrage mehr braucht. :gruebel: |
Ja, aber es geht ja gerade drum, dass man den
aktuellen Benutzernamen haben will und dann darf der Teil ja gerade nicht gecached sein!
F34r0fTh3D4rk - Do 31.07.08 12:06
Man könnte auch dem Editor eine neue Funktion geben, in der man den Benutzernamen in ein Feld eingibt und die ID dann in den Editor eingefügt wird.
mfg
huuuuuh - Do 31.07.08 12:19
man könnte auch, wenn ein user seinen namen geändert hat, über nacht das ganze forum durchgehen und seinen namen bei seinen zitierten postings ändern. dann is die user-id gar kein thema mehr
Christian S. - Do 31.07.08 12:30
F34r0fTh3D4rk hat folgendes geschrieben: |
| Man könnte auch dem Editor eine neue Funktion geben, in der man den Benutzernamen in ein Feld eingibt und die ID dann in den Editor eingefügt wird. |
Zur Not ginge das, ja. Aber das Hauptproblem, dass bei der Anzeige dann jeweils der Name "nachgeguckt" werden muss, ändert das natürlich nicht. Die Ersetzung der Usernamen durch die User-IDs beim Absenden eines Beitrages ist ja nicht so aufwändig.
huuuuuh hat folgendes geschrieben: |
| man könnte auch, wenn ein user seinen namen geändert hat, über nacht das ganze forum durchgehen und seinen namen bei seinen zitierten postings ändern. dann is die user-id gar kein thema mehr |
Du hast nicht wirklich eine Vorstellung vom Aufwand. :lol:
huuuuuh - Do 31.07.08 12:35
script schreiben und gut. sowas wien mod-bot :mrgreen:
Christian S. - Do 31.07.08 12:50
huuuuuh hat folgendes geschrieben: |
| script schreiben und gut. |
:autsch: Ich muss gerade gaaaaaanz stark an Dieter Nuhr denken ...
MDX - Do 31.07.08 13:07
Wie wäre es mit SQL-Direkt:
"UPDATE tabelle SET name = REPLACE('ALTER-USERNAME','NEUER-USERNAME', '9999999999');"
Einmaliges Ausführen!?
Yogu - Do 31.07.08 13:15
Das hieße ja, dass nicht nur Quote-Benutzernamen ersetzt würden, sondern auch alle anderen Vorkommen des alten Namens. Mal ganz davon abgesehen, dass wahrscheinlich eine Mehrminütige Downtime des Servers erforderlich wäre; während dem Ausführen der Query sollten keine weiteren Zugriffe erfolgen.
elundril - Do 31.07.08 14:44
dürfte ich bitte kurz eine dumme frage stellen?? ich seh in dem im ersten post angegebenen Thread keine nummer bei user-tags? oder hab ich die irgendwie übersehen??
Christian S. - Do 31.07.08 15:21
elundril hat folgendes geschrieben: |
| dürfte ich bitte kurz eine dumme frage stellen?? ich seh in dem im ersten post angegebenen Thread keine nummer bei user-tags? |
Das ist ja gerade das Problem. :-) Der user-Tag verwendet den Namen. Wenn sich jemand umbenennen lässt, zeigt der Name aber nicht mehr auf den korrekte User -> Problem!
Ich habe lokal mal die Lösung implementiert, dass User-Tags intern mit der User-ID gespeichert werden und nur bei der Anzeige der aktuelle Username "eingesetzt" wird. Das braucht bei der Anzeige in fast allen Fällen keinerlei zusätzliche Datenbankabfragen, weil ja von den an einem Thread beteiligten eh User-ID und Username abgefragt werden und diese Daten für den User-Tag recycled werden können.
Bei Editieren oder Zitieren wird die User-ID auch wieder in den aktuellen Username übersetzt, sodass der Benutzer des Forums gar nicht mitbekommt, was intern passiert. User-Tag und Quote-Tag können wie bisher verwendet werden! :-)
Was ich jetzt noch machen muss, ist, dass intern aber noch der zuletzt verwendete Name gespeichert wird, falls ein User sich löschen lässt und sein Name somit nicht mehr aus der ID ermittelt werden kann.
Yogu - Do 31.07.08 15:48
Die Lösung finde ich gut :zustimm:
Da die User-Namen in IDs umgewandelt werden, könnte doch auch gleich noch auf Gast geprüft werden (d.h. nachschauen, ob der User existiert. Passiert ja eh schon). Das Profil kann in solchen Fällen nicht angezeigt werden, also bräuchte man auch keinen Link.
Falsch geschriebene Usernames sieht man dadurch auch gleich, und sie können verbessert werden. Ich glaube, das würde etwas Ärger der betroffenen Personen ersparen ;)
BenBE - Do 31.07.08 16:28
@Christian: Was passiert bei der Lösung, wenn ein User-Tag in einem Thread cross-zitiert wird?
Ich also in Thread A Luckie zitiere, der in Thread A gar nichts gepostet hat?
Christian S. - Do 31.07.08 16:32
BenBE hat folgendes geschrieben: |
@Christian: Was passiert bei der Lösung, wenn ein User-Tag in einem Thread cross-zitiert wird?
Ich also in Thread A Luckie zitiere, der in Thread A gar nichts gepostet hat? |
Wenn zu einer User-ID noch kein Username bekannt ist, wird dieser aus der Datenbank abgerufen.
Regan - Do 31.07.08 16:48
Mir gefällt die Lösung auch sehr gut.
@BenBE: Das wird wohl in den wenigsten Fällen passieren.
F34r0fTh3D4rk - Do 31.07.08 19:57
Gute Idee, den vorigen Namen zu speichern, so könnte das funktionieren, aber was ist, wenn der alte Name jetzt einem neuen User gehört ?
mfg
Christian S. - Do 31.07.08 20:11
F34r0fTh3D4rk hat folgendes geschrieben: |
| Gute Idee, den vorigen Namen zu speichern, so könnte das funktionieren, aber was ist, wenn der alte Name jetzt einem neuen User gehört ? |
Hm, guter Einwand. Würde es reichen, wenn man einen Hinweis "(gelöscht)" an den Namen anhängt? Zusammen damit, dass der Username ja dann nicht anklickbar ist? IMHO sollte das reichen, damit man erkennt, dass nicht der "neue" User mit demselben Namen gemeint ist.
MDX - Do 31.07.08 20:32
Was passiert eigtnlich bei denen vo der Name nicht Existiert?
Da sollte auch noch ne Abfrage rein, sonst gibts auch da Probs...
Christian S. - Do 31.07.08 22:53
Ja, das ist, wie man so schön auf Neu-Deutsch sagt, ein No-Brainer ;-)
Regan - Fr 01.08.08 14:56
Kriegt das Topic noch ein Tracking-ID oder kommt das ohne aus?
Tilman - Fr 01.08.08 15:47
Es wäre doch einfacher wenn man durch einen Klick auf den Zitat-Link (z.B. David Kurz) auf eine Seite käme, wo erklärt wird dass dieser User seinen Namen geändert hat und jetzt XMD heißt (Beispielsweise). Dann müsste man auch nix an der Datenbank ändern, man müsste nur den alten Nickname mit einem Tag belegen. Nachteil: unter diesen Nickname könnte sich kein neuer User registrieren, was aber eigentlich wohl eher ein Vorteil ist.
baka0815 - Fr 01.08.08 16:15
Dann könnten aber wieder die schnüffelnden Personalabteilungen...
Tilman - Fr 01.08.08 16:26
Naja die Quotes gibts doch nur in den dazugehördenden Threads, und in denen kann man die Beziehung ohnehin leicht erschließen.
baka0815 - Fr 01.08.08 16:43
Wenn jemand aber nicht mehr "Frank S." heißen möchte, damit sein Chef das nicht sieht und sich deswegen in "EinfallsloserNick" umbenennen lässt, du beim Klick auf "Frank S." aber die Seite bekommst, dass "Frank S." jetzt aber "EinfallsloserNick" heißt, dann bringt das umbenennen gar nix. :)
Tilman - Fr 01.08.08 17:02
Ähm, nochmal: der Link erscheint eh nur in den Threads, in denen eh schon "EinfallsloserNick" geschrieben hat. Man kann also auch einfach schauen wer da den zitierten Text geschrieben hat, und dann weiß man es eh. Würde nur etwas arbeit beim lesen abnehmen, vor allem in sehr langen Threads.
Naja aber ist eigentlich wurscht, war ja nur ein Vorschlag ;)
Regan - Fr 01.08.08 17:22
Tilman hat folgendes geschrieben: |
| Ähm, nochmal: der Link erscheint eh nur in den Threads, in denen eh schon "EinfallsloserNick" geschrieben hat. |
Nein, überall :wink: .
Tilman - Fr 01.08.08 17:24
Wieso überall? Den Link gibts nur in alten Zitaten, wo denn noch?
Yogu - Fr 01.08.08 19:45
Tilman hat schon recht, in die richtige Richtung geht das eigentlich nicht. Aber drehen wir das ganze doch mal um:
http://www.delphi-forum.de/user_Frank%2520S..html
Falls der Chef diese Adresse manuell eintippt? Um zu überprüfen, ob Frank S. angemeldet ist, bekommt er alle Beiträge angezeigt, die Frank S. geschrieben hat.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!