Kennzeichen für registrierte Benutzer (German / Deutsch)

by Rainer ⌂ @, Sunday, March 01, 2015, 23:00 (3314 days ago)

Guten Tag,

erst mal Danke an die Entwickler dieser Forenprogramms.

Meine Frage:
Leider gibt es keine Möglichkeit registrierte Benutzer zu kennzeichnen. In der Version 1 der Forensoftware war dies möglich. Das Problem sind Trollattacken von unregistrierten Benutzern. Registrierte Benutzer glauben ja erst mal das der Troll auch registriert ist und somit vom Admin legitmiert ist.

Wie könnte man eine Kennzeichnung der Registrierten Benutzer ermöglichen?

Ich werde das vermutlich auch irgendwie hinbekommen, wenn Jemand das Problem aber bereits gelöst hat muss ich das Rad nicht noch einmal erfinden.

Rainer

Avatar

Kennzeichen für registrierte Benutzer

by Auge ⌂, Tuesday, March 03, 2015, 13:02 (3313 days ago) @ Rainer

Hallo

Leider gibt es keine Möglichkeit registrierte Benutzer zu kennzeichnen. In der Version 1 der Forensoftware war dies möglich.

Ich habe die Einstellungen durchforstet und ja, das scheint nicht mehr möglich zu sein.

Wie könnte man eine Kennzeichnung der Registrierten Benutzer ermöglichen?

Grundsätzlich geht das, da ja auch ermittelt wird, ob ein Benutzer ein Admin oder Moderator ist. Jene werden im Threadbaum mit einer Klasse gekennzeichnet. Genauso kann man eine Markierung einfügen, wenn die user_id > 0 ist, der Benutzertyp aber nicht Admin oder Mod. Damit wären alle registrierten Benutzer ebenfalls mit einer Klasse markierbar.

Mit der dann vorhandenen Klasse eine farbliche Markierung der Benutzernamen herbeizuführen, ist mit CSS Kinderkram.

Nun kommt das ABER: Ich habe mich bemüht den Quelltext nach den Stellen zu durchforsten, an denen der Benutzertyp für Admins und Mods ermittelt wird. Die entsprechenden Dateien liegen im Verzeichnis includes. Ich habe die Stellen nicht gefunden.

Ich hoffe, jemand anders kann dir da genauer Auskunft geben.

Eines noch: Das Template thead.inc.tpl im Default-Theme enthält zwischen den Zeilen #20 und #30 diesen interessanten Block.

{if $data.$element.user_type==2}
{assign var=admin_name value=$data.$element.name}
{assign var=admin_title value=$smarty.config.administrator_title}
{assign var=name value="<span class=\"admin\" title=\"$admin_title\">$admin_name</span>"}
{elseif $data.$element.user_type==1}
{assign var=mod_name value=$data.$element.name}
{assign var=mod_title value=$smarty.config.moderator_title}
{assign var=name value="<span class=\"mod\" title=\"$mod_title\">$mod_name</span>"}
{else}
{assign var=name value=$data.$element.name}
{/if}

Wenn der Wert für user_type auch für registrierte Benutzer übergeben wird und sich von dem von unregistrierten Benutzern unterscheidet (ich weiß das nicht), ist das wohl die einzige Stelle, an der Änderungen erfolgen müssen, falls es den Block nicht noch in anderen Templates gibt.

Schau mal, z.B. mit phpMyAdmin, in die Datenbank, wie der Wert von user_type für registrierte Benutzer, die nicht Admin oder Mod sind, lautet und füge einen neuen elseif-Block zw. den für Mods und dem Else-Block ein und vergebe eine Klasse (<span class=\"reg\" oder so). Ob du zudem noch den Title benutzt, ist dir überlassen, denn dafür musst du noch an die Smarty-Config und zumindest an die Sprachdateien für englisch und (bei dir) deutsch ran.

Wenn der Block dann in den Threadbäumen sauber auftaucht, setzt du nur noch eine Schrift und/oder Hintergrundfarbe für die Klasse (oder zusätzl. auch für die Klassen für Admins und Mods) per CSS.

Tschö, Auge

--
Trenne niemals Müll, denn er hat nur eine Silbe!

Kennzeichen für registrierte Benutzer

by Rainer ⌂ @, Tuesday, March 03, 2015, 21:42 (3313 days ago) @ Auge

Grundsätzlich geht das, da ja auch ermittelt wird, ob ein Benutzer ein Admin oder Moderator ist. Jene werden im Threadbaum mit einer Klasse gekennzeichnet. ...

user_type unterscheidet nicht zwischen registrierten und nichtregistrierten Benutzern.
0=Benutzer 1=Moderator 2=Admin

... Genauso kann man eine Markierung einfügen, wenn die user_id > 0 ist, der Benutzertyp aber nicht Admin oder Mod. Damit wären alle registrierten Benutzer ebenfalls mit einer Klasse markierbar.

Mir geht es nur um registriert oder nichtregistriert. Ein Admin oder Mod ist ja auch nur ein registrierter Benutzer.

Eigentlich suche ich nur die Stelle im Code die den Benutzernamen ausgibt. Dort könnte ich die user_id abfragen und entsprechend wie in der Einserversion des Forums ein ® Symbol anhängen (in der Einserversion war das eine Grafik).

if ($user_id > 0)
  {$name =."®"} 

Rainer

Avatar

Kennzeichen für registrierte Benutzer

by Micha ⌂, Wednesday, March 04, 2015, 09:48 (3312 days ago) @ Rainer

Hi,

Eigentlich suche ich nur die Stelle im Code die den Benutzernamen ausgibt. Dort könnte ich die user_id abfragen und entsprechend wie in der Einserversion des Forums ein ® Symbol anhängen (in der Einserversion war das eine Grafik).

Ich denke, die vorgeschlagene CSS-Lösung ist die nachhaltigere. Das Attribut user_id gibt es auch noch und wird, soweit ich das sehe, auch an das Template weitergegeben. Es müsste mMn. also etwas wie $data.$element.user_id geben. Das Datenarray wird in der index.inc.php aufgebaut ab Zeile 93ff.

Gruß Micha

--
applied-geodesy.org - OpenSource Least-Squares Adjustment Software for Geodetic Sciences

Avatar

Kennzeichen für registrierte Benutzer

by Auge ⌂, Wednesday, March 04, 2015, 14:42 (3312 days ago) @ Micha

Hi

… Das Datenarray wird in der index.inc.php aufgebaut ab Zeile 93ff.

Ich vermute, dass die thread.inc.php einen einzelnen Thread ausgeben soll. Dort jedenfalls wird das nämliche Array ebenfalls aufgebaut. Wenn die Markierung auch innerhalb der Threaddarstellung vorkommen soll, sollte man diese Datei nicht vergessen.

Tschö, Auge

--
Trenne niemals Müll, denn er hat nur eine Silbe!

Kennzeichen für registrierte Benutzer

by Rainer ⌂ @, Thursday, March 05, 2015, 18:22 (3311 days ago) @ Micha

Ich denke, die vorgeschlagene CSS-Lösung ist die nachhaltigere.

Mit dem Begriff "nachhaltigere" kann ich leider nichts anfangen. Ich such eine "praktikable Lösung".

Rainer

Avatar

Kennzeichen für registrierte Benutzer

by Micha ⌂, Thursday, March 05, 2015, 19:20 (3311 days ago) @ Rainer
edited by Micha, Thursday, March 05, 2015, 20:03

Hi,

Mit dem Begriff "nachhaltigere" kann ich leider nichts anfangen. Ich such eine "praktikable Lösung".

Wenn Du den PHP-Code anpassen magst, tue das. Nach jedem Update zu prüfen, ob die Modifikation wieder überschrieben wurde, halte ich für impraktikabel und für eine Quick & Dirty Lösung. Und was ist so kompliziert daran, das Template anzupassen? In der index.inc.tpl habe ich Zeile 43 erweitert. Untenstehend die vollständige Modifikation. Alle registrierten Nutzer erhalten nun die CSS-Klasse registered_user. Du kannst es Dir auf meiner Hauptseite im Forum gern ansehen. Es gibt noch weitere Sub-Templaes, wo eine Anpassung erfolgen muss bspw. index_table.inc.tpl (Zeile 26) und das schon erwähnte thead.inc.tpl um Zeile 30, thread_linear.inc.tpl um Zeile 30, entry.inc.tpl um Zeile 20. Mehr habe ich nicht gefunden. Du kannst gern alle Ansichten bei mir prüfen. In der CSS habe ich dann das ®-Zeichen hinterlegt. Ich lade auch gern die modifizierten Daten hoch und vielleicht findet ja Alex auch gefallen an dieser Idee.

Gruß Micha


index.inc.tpl

<li><a class="{if $data.$element.pid==0 && $data.$element.new}{if $data.$element.sticky==1}threadnew-sticky{else}threadnew{/if}{elseif $data.$element.pid==0}{if $data.$element.sticky==1}thread-sticky{else}thread{/if}{elseif $data.$element.pid!=0 && $data.$element.new}replynew{else}reply{/if}{if $read && in_array($data.$element.id,$read)} read{/if}" href="index.php?id={$data.$element.id}"{if $data.$element.spam==1} title="{#spam#}"{/if}>{if $data.$element.spam==1}<span class="spam">{$data.$element.subject}</span>{else}{$data.$element.subject}{/if}</a>{if $data.$element.no_text} <img class="no-text" src="{$THEMES_DIR}/{$theme}/images/no_text.png" title="{#no_text_title#}" alt="{#no_text_alt#}" width="11" height="9" />{/if} - <strong>{if $data.$element.user_type==2}<span class="admin" title="{#administrator_title#}">{$data.$element.name}</span>{elseif $data.$element.user_type==1}<span class="mod" title="{#moderator_title#}">{$data.$element.name}</span>{elseif $data.$element.user_id>0}<span class="registered_user">{$data.$element.name}</span>{else}{$data.$element.name}{/if}</strong>, <span id="p{$data.$element.id}" class="tail">{$data.$element.formated_time}{if $data.$element.pid==0} <a href="index.php?mode=thread&amp;id={$data.$element.id}" title="{#open_whole_thread#}"><img src="{$THEMES_DIR}/{$theme}/images/complete_thread.png" title="{#open_whole_thread#}" alt="[*]" width="11" height="11" /></a>{/if}{if $admin || $mod} <a id="marklink_{$data.$element.id}" href="index.php?mode=posting&amp;mark={$data.$element.id}" title="{#mark_linktitle#}">{if $data.$element.marked==0}<img id="markimg_{$data.$element.id}" src="{$THEMES_DIR}/{$theme}/images/unmarked.png" title="{#mark_linktitle#}" alt="[○]" width="11" height="11" />{else}<img id="markimg_{$data.$element.id}" src="{$THEMES_DIR}/{$theme}/images/marked.png" title="{#unmark_linktitle#}" alt="[●]" width="11" height="11" title="{#unmark_linktitle#}" />{/if}</a> <a href="index.php?mode=posting&amp;delete_posting={$data.$element.id}&amp;back=index" title="{#delete_posting_title#}"><img src="{$THEMES_DIR}/{$theme}/images/delete_posting.png" title="{#delete_posting_title#}" alt="[x]" width="9" height="9" /></a>{/if}


index_table.inc.tpl

<td><span class="small nowrap">{if $data.$thread.user_type==2}<span class="admin" title="{#administrator_title#}">{$data.$thread.name}</span>{elseif $data.$thread.user_type==1}<span class="mod" title="{#moderator_title#}">{$data.$thread.name}</span>{elseif $data.$element.user_id>0}<span class="registered_user">{$data.$element.name}</span>{else}{$data.$thread.name}{/if}</span></td>


thead.inc.tpl

{if $data.$element.user_type==2}
{assign var=admin_name value=$data.$element.name}
{assign var=admin_title value=$smarty.config.administrator_title}
{assign var=name value="<span class=\"admin\" title=\"$admin_title\">$admin_name</span>"}
{elseif $data.$element.user_type==1}
{assign var=mod_name value=$data.$element.name}
{assign var=mod_title value=$smarty.config.moderator_title}
{assign var=name value="<span class=\"mod\" title=\"$mod_title\">$mod_name</span>"}
{elseif $data.$element.user_id>0}
{assign var=user_name value=$data.$element.name}
{assign var=name value="<span class=\"registered_user\">$user_name</span>"}
{else}
{assign var=name value=$data.$element.name}
{/if}


thread_linear.inc.tpl

{if $element.user_type==2}
{assign var=admin_name value=$element.name}
{assign var=admin_title value=$smarty.config.administrator_title}
{assign var=name value="<span class=\"admin\" title=\"$admin_title\">$admin_name</span>"}
{elseif $element.user_type==1}
{assign var=mod_name value=$element.name}
{assign var=mod_title value=$smarty.config.moderator_title}
{assign var=name value="<span class=\"mod\" title=\"$mod_title\">$mod_name</span>"}
{elseif $element.user_id>0}
{assign var=user_name value=$element.name}
{assign var=name value="<span class=\"registered_user\">$user_name</span>"}
{else}
{assign var=name value=$element.name}
{/if}


entry.inc.tpl

{if $user_type==2}
{assign var=admin_title value=$smarty.config.administrator_title}
{assign var=name value="<span class=\"admin\" title=\"$admin_title\">$name</span>"}
{elseif $user_type==1}
{assign var=mod_title value=$smarty.config.moderator_title}
{assign var=name value="<span class=\"mod\" title=\"$mod_title\">$name</span>"}
{elseif $posting_user_id>0}
{assign var=name value="<span class=\"registered_user\">$name</span>"}
{else}
{assign var=name value="$name"}
{/if}

CSS

span.admin::after,span.mod::after,span.registered_user::after {content: " \00AE";}

--
applied-geodesy.org - OpenSource Least-Squares Adjustment Software for Geodetic Sciences

Kennzeichen für registrierte Benutzer

by Rainer ⌂ @, Saturday, March 07, 2015, 22:32 (3308 days ago) @ Micha

Wenn Du den PHP-Code anpassen magst, tue das. Nach jedem Update zu prüfen, ob die Modifikation wieder überschrieben wurde, halte ich für impraktikabel und für eine Quick & Dirty Lösung. Und was ist so kompliziert daran, das Template anzupassen?

Danke für deine Mühe. Aber bei mir ist die Mühe vermutlich vergebens. Ich beherrsche PHP und html nur in einer Minimalausrüstung:-) Den von dir angeführten Code verstehe ich leider überhaupt nicht. Und Änderungen vornehmen möchte ich nicht, wenn ich die Sache nicht verstehe. Aus Erfahrung geht das in die Hose.

Rainer

Avatar

Kennzeichen für registrierte Benutzer

by Micha ⌂, Sunday, March 08, 2015, 09:08 (3308 days ago) @ Rainer

Hallo,

Danke für deine Mühe. Aber bei mir ist die Mühe vermutlich vergebens.

Um zumindest bei mir im Forum mal zu schauen, ob es wie gewünscht aussieht oder ob Du noch etwas anderes benötigst, hätte Dein Wissen sicher gereicht, oder?

Den von dir angeführten Code verstehe ich leider überhaupt nicht.

Musst Du auch nicht. Es zeigt zu 99% vorhandenen Code, den ich minimalistisch erweitert habe. Der Codeauszug ist deshalb so groß, damit man die Stelle im Original findet, die ich modifiziert habe, und die Änderungen sieht. Ein Beipsiel: In der entry.inc.php findet man im Original(!) bereits das:

{if $user_type==2}
{assign var=admin_title value=$smarty.config.administrator_title}
{assign var=name value="<span class=\"admin\" title=\"$admin_title\">$name</span>"}
{elseif $user_type==1}
{assign var=mod_title value=$smarty.config.moderator_title}
{assign var=name value="<span class=\"mod\" title=\"$mod_title\">$name</span>"}
{else}
{assign var=name value="$name"}
{/if}

hinzugefügt hatte ich lediglich eine weitere Abfrage:

{elseif $posting_user_id>0}
{assign var=name value="<span class=\"registered_user\">$name</span>"}

Und Änderungen vornehmen möchte ich nicht, wenn ich die Sache nicht verstehe.

Du hast nicht geschrieben, was Du nicht verstehst.

Ich habe alle Modifikationen mal Hochgeladen:

subtemplates.zip.

Im ZIP findest Du den Ordner subtemplates. Dieser enthält die fünf geänderten Template-Files. Diese Dateien müssen mit denen aus dem Ordner

/forum/themes/<Dein Template>/subtemplates

ausgetauscht werden. Weiterhin musst Du in Deiner CSS nun die gewünschte Darstellung definieren. Als Beispiel habe ich Dir meine Version angefügt:

/** ZUSAETZLICHER EINTRAG **/
ul.thread span.registered_user::after,td span.registered_user::after {content: " \00AE";}

Diese eine Zeile muss nun entweder in Deine style.css oder in Deine style.min.css. In welche von beiden hängt von Deinen bisherigen Modifikationen ab.

Aus Erfahrung geht das in die Hose.

Sichere Deinen Original subtemplates-Verzeichnis und die beiden CSS-Dateien. Wenn etwas schief geht, spielst Du diese wieder zurück. Wo ist das Problem?

Nach jeder Änderung solltest Du den Inhalt Deines templates_c-Ordner immer löschen, da hier gecachten Daten liegen.

Gruß Micha

--
applied-geodesy.org - OpenSource Least-Squares Adjustment Software for Geodetic Sciences

Kennzeichen für registrierte Benutzer

by Rainer ⌂ @, Tuesday, March 17, 2015, 22:16 (3299 days ago) @ Micha

Hat etwas gedauert bist zu dieser Antwort. Ich habe versucht zu verstehen was da eigentlich gemacht wird. Das ist mir leider nicht gelungen. In den .tbl Dateien ist eine fürchterlicher Spagettikode ohne irgend eine Struktur. Da dieser für mich nicht zu verstehen ist habe ich versucht mit der Methode "Auswendiglernen" die Änderungen durchzuführen.

Um zumindest bei mir im Forum mal zu schauen, ob es wie gewünscht aussieht oder ob Du noch etwas anderes benötigst, hätte Dein Wissen sicher gereicht, oder?

Dafür reicht es noch;-)

Dabei ist mir aufgefallen das die Kennzeichnung der registrierten Benutzter bei dir nur in der Übersicht (index.inc.tbl) funktioniert.

Nach einigem Missgeschick ist es mir gelungen deine Änderungen einzutragen (ich habe ja schon selbst einige Änderungen in den Dateien gemacht und in meiner Version sind die Dateien nicht identisch mit der aktuellen Version).

Danach hatte ich das gleiche Ergebnis wie in deinem Forum. Nur in der Übersicht wurden die registrierten Benutzer gekennzeichnet. An allen anderen Stellen fehlen sie.

Durch Änderung des CSS Eintrages sehe ich das Kennzeichen nun auch im Beitrag. Im gelisteten Thread unter dem Beitrag fehlt das Kennzeichen aber.

Ich nehme an dafür ist die Datei thread.inc.tpl zuständig. Ich habe alles mehrfach geprüft und konnte keinen Fehler feststellen. Da es aber bei dir auch nicht funktioniert gehe ich davon aus das deine Änderung an der Stelle nicht funktioniert.

Bei der Analyse der ausgegebenen Webseite habe ich festgestellt das an der Stelle überhaupt kein <span class=...> ausgegeben wird.

Den von dir angeführten Code verstehe ich leider überhaupt nicht.

Musst Du auch nicht. Es zeigt zu 99% vorhandenen Code, den ich minimalistisch erweitert habe.

Da ich nicht verstehe was da eigentlich gemacht wird komme ich an der Stelle nicht weiter.

Kann man den Kode in den .tbl Dateien nicht etwas strukturieren? Einrückungen z.B. würden eine Menge bringen.

Da in der Listansicht bei dir die Kennzeichnung auch fehlt habe ich diese Änderungen erst gar nicht ausprobiert.

Ich habe gesehen das auch die .tbl Dateien je nach Version unterschiedlich sind. Das bedeutet aber dass mir es gar nichts bringt Änderungen nur in den .tbl Dateien zu machen. Ich verwende noch die Version 2.3 da ich nicht weiß wie man die Software hochrüstet. In der Dokumentation habe ich nur das Hochrüsten von Version 1.7 nach 2.x gefunden.

Rainer

Avatar

Kennzeichen für registrierte Benutzer

by Micha ⌂, Friday, March 20, 2015, 17:42 (3296 days ago) @ Rainer

Hi,

Dabei ist mir aufgefallen das die Kennzeichnung der registrierten Benutzter bei dir nur in der Übersicht (index.inc.tbl) funktioniert.

Sie wurden nur nicht angezeigt, weil ich sie in meiner CSS nicht berücksichtigt hatte. Die entsprechende Klasse war jedoch im HTML eingebunden. Ich habe es mal umgestellt. Nun wird auch bei den Antworten das ® eingeblendet.

Im gelisteten Thread unter dem Beitrag fehlt das Kennzeichen aber.

Kann in der entry.inc.tpl in Zeile 70 sicher analog ergänzt werden, wie Du bei mir siehst...

Ich nehme an dafür ist die Datei thread.inc.tpl zuständig.

Nö.

Kann man den Kode in den .tbl Dateien nicht etwas strukturieren? Einrückungen z.B. würden eine Menge bringen.

Nutz einen Editor, der das für Dich macht.

Ich habe gesehen das auch die .tbl Dateien je nach Version unterschiedlich sind.

Sicher, wenn ein User, so wie Du, ein Feature anregt, werden zwangsläufig Änderungen auftreten. Wie soll es sonst gehen?

Das bedeutet aber dass mir es gar nichts bringt Änderungen nur in den .tbl Dateien zu machen.

Diesen Umkehrschluß verstehe ich nicht.

Ich verwende noch die Version 2.3 da ich nicht weiß wie man die Software hochrüstet.

Dann solltest Du mit Kommentaren wie: ist eine fürchterlicher Spagettikode vielleicht sparsamer umgehen...

Gruß Micha

--
applied-geodesy.org - OpenSource Least-Squares Adjustment Software for Geodetic Sciences

Avatar

Kennzeichen für registrierte Benutzer

by Auge ⌂, Friday, March 06, 2015, 18:10 (3310 days ago) @ Rainer

Hallo

Ich denke, die vorgeschlagene CSS-Lösung ist die nachhaltigere.


Mit dem Begriff "nachhaltigere" kann ich leider nichts anfangen. Ich such eine "praktikable Lösung".

Deiner Wortwahl nach zu urteilen suchst du die Lösung nicht. Es scheint mir eher so zu sein, dass du sie gerne auf dem Silbertablett kredenzt hättest statt den dir angebotenen Lösungsansätzen zu folgen.

Ich bin somit jedenfalls raus.

--
Trenne niemals Müll, denn er hat nur eine Silbe!

Kennzeichen für registrierte Benutzer

by Rainer ⌂ @, Sunday, March 08, 2015, 00:51 (3308 days ago) @ Auge

Es scheint mir eher so zu sein, dass du sie gerne auf dem Silbertablett kredenzt hättest statt den dir angebotenen Lösungsansätzen zu folgen.

Das ist Falsch. Ich habe schon jede Menge Änderungen in die Forensoftware eingebaut. Und die habe ich mir auch jedes mal mühsam erarbeitet (Keine Englischkenntnisse!). Erst wenn ich keine Lösung finde wende ich mich hier an das Forum.

Rainer

Avatar

Kennzeichen für registrierte Benutzer

by Auge ⌂, Wednesday, March 04, 2015, 14:39 (3312 days ago) @ Rainer

Hallo

user_type unterscheidet nicht zwischen registrierten und nichtregistrierten Benutzern.
0=Benutzer 1=Moderator 2=Admin

Da es ja auch noch die user_id gibt, könnte man den Typ on the fly aufbohren, ist er größer 0, dann nimm den Wert für den Typ (1 oder 2), ist die ID gesetzt und der Typ 0, dann nimm 0, ansonsten NULL.

Damit kannst du im Template differenzieren. Alternativ kannst du im Template direkt neben dem Typ die ID auswerten, wie von Milo vorgeschlagen. Sauberer bezüglich etwaiger späterer Änderungen in der Struktur sollte die Verwendung von Pseudowerten sein.

if ($user_id > 0)
{$name =."®"} 

Ich würde ja eine farbliche Markierung vorziehen – auch, weil ich dies für die 1-er Version implementiert hatte ;-) –, aber natürlich reicht das zur Unterscheidung, also um den Zweck zu erfüllen, voll aus.

Tschö, Auge

--
Trenne niemals Müll, denn er hat nur eine Silbe!

RSS Feed of thread