Erst vorstellen - dann schreiben?! Gibts so einen Hack?

Jolaya
Hallo
Ich suche einen Hack, weiß nur nicht ob es den gibt. Hab zwar die Suche benutzt, finde leider nichts.

Ich würde gerne irgendwie einstellen, dass ein User zwar überall im Forum lesen kann, wenn er sich registriert hat, aber erst irgendwo schreiben kann, wenn er sich in einem bestimmten Board (Bei mir wäre es "Vorstellungen") vorgestellt hat. Also dort praktisch einen Pflichtpost, um überall anders schreiben zu können.

Gibt es sowas in der Art?

Von wegen "mind. 1 Beitrag um hier udn da zu Posten", diesen Hack hate ich schon aber leider gibts bei mir auch in anderen Kategorien Beitragszählung, das ist also nicht ganz das, was ich suche Augenzwinkern

Lg
Dragon-Lion
wenn du für jedes forum und unterforum (bis auf vorstellungen) einstellst das man erst ab einem beitrag themen starten und antworten kann dann muss man erst in vorstellungen posten um woanders posten zu können!
Jolaya
Hallo
Ja aber dann kann man vorher nicht in den anderen Themen lesen. Und das sollte schon möglich sein.

Hatte den Hack vor langer Zeit mal im Forum und das hat absolut nicht so geklappt wie es sollte. Konnte leider immer irgendwie umgagen werden. Und wenn man in "Vorstellungen" nur auf ein anderes Thema geantwortet hat, hatte man einen Beitrag ohne sich vorgestellt zu haben..
Dragon-Lion
warum stellst du dann in vorstellungen die rechte für mitglieder nicht so ein das man nur auf eigene themen antworten kann ?
Dizzy.w3
Hi,

der Benutzer ist standardmäßig in einer Gruppe die nur lesen kann. Ab dem ersten Post ändert sich seine Gruppe in eine, die mehr kann.
Biggi
Du brauchst keinen Hack.
Das kann das Board schon. Augenzwinkern

Du gibst der Standardgruppe für User die Rechte, überall zu lesen, aber nur in einem einzigen Forum (dem Vorstellungsforum) Schreibrechte.
Dann erstellst du eine neue geschlossene Gruppe. Dabei kannst du festlegen, daß man nach genau einem Post in diese Gruppe rutscht.
Dieser Gruppe gibst du alle Rechte, die ein vollwertiger User haben soll.

Achte dabei auf die Vergabe der Ordnungsnummern.
Admins kriegen eine 1, Gäste bekommen die höchste Ordnungsnummer.
Je mehr Rechte eine Gruppe hat, desto kleiner muß die Ordnungsnummer sein.
Die neue Gruppe muß also eine niedrigere Ordnungsnummer haben als die Standardgruppe für User.
Dann bekommst du auch keine Probleme mit den Rechten der Admins, die danach auch in zwei Gruppen (Admins und neue Gruppe) sein werden.
Jolaya
Zitat:
Original von Dragon-Lion
warum stellst du dann in vorstellungen die rechte für mitglieder nicht so ein das man nur auf eigene themen antworten kann ?

Huhu
Na die neuen User sollen ja von den alten Mitgliedern schon gegrüßt werden können smile

Zitat:
Original von Dizzy.w3
Hi,

der Benutzer ist standardmäßig in einer Gruppe die nur lesen kann. Ab dem ersten Post ändert sich seine Gruppe in eine, die mehr kann.

Echt? Dann war das damals irgendwie anders - oder ich hab was falsch gemacht.

Zitat:
Original von Biggi
Du brauchst keinen Hack.
Das kann das Board schon. Augenzwinkern

Du gibst der Standardgruppe für User die Rechte, überall zu lesen, aber nur in einem einzigen Forum (dem Vorstellungsforum) Schreibrechte.
Dann erstellst du eine neue geschlossene Gruppe. Dabei kannst du festlegen, daß man nach genau einem Post in diese Gruppe rutscht.
Dieser Gruppe gibst du alle Rechte, die ein vollwertiger User haben soll.

Achte dabei auf die Vergabe der Ordnungsnummern.
Admins kriegen eine 1, Gäste bekommen die höchste Ordnungsnummer.
Je mehr Rechte eine Gruppe hat, desto kleiner muß die Ordnungsnummer sein.
Die neue Gruppe muß also eine niedrigere Ordnungsnummer haben als die Standardgruppe für User.
Dann bekommst du auch keine Probleme mit den Rechten der Admins, die danach auch in zwei Gruppen (Admins und neue Gruppe) sein werden.

Hey,
ja das habe ich schon verscuht, leider gings gründlich in die Hose. Plötzlich waren alle "aktivierten" user in zwei Gruppen (der Standart und der neuen) und schreiben konnten sie trotzdem nirgendwo verwirrt Sogar die Admins nicht mehr wie du angesprochen hast. Aber ich versuche es nochmal nach deiner Anleitung smile

Kann ich dann auch einstellen, dass oben irgendwie ne art Meldung eingeblendet wird ala "du kannst nur lesen biss du dich da vorgestellt hast" die aber nach dem Verschieben weg ist?
Biggi
Ja, die Ordnungsnummer ist dabei sehr wichtig!
Und dann stellst du bei den höherrangigen Gruppen bei den Forenrechten am besten noch alles, was sie dürfen, explizit auf JA statt auf Gruppenstandard. So hat es bei mir immer geklappt, daß die höherrangigen Gruppen ihre Rechte behielten, obwohl sie zusätzlich in einer niedrigerrangigen Gruppe waren.

Einstellen kannst du so eine Meldung nicht einfach. Aber das ist mit einer kleinen Code-Änderung möglich.
Schreib einfach ins Template index oder header oder wo du es eben haben möchtest deinen Code.
Zum Beispiel so:
Template index:
Suche:
code:
1:
2:
3:
4:
     <tr class="tablea_fc">
      <td align="left"><span class="smallfont">{$lang->items['LANG_START_WELCOMEBACK']} <b>$usercbar_username</b> <a href="logout.php?u=$wbbuserdata[userid]{$SID_ARG_2ND}">{$lang->items['LANG_START_LOGOUT']}</a><br /><b><a href="search.php?action=new{$SID_ARG_2ND}">{$lang->items['LANG_START_NEWPOSTS']} $lastvisitdate <span class="time">$lastvisittime</span>.</span></td>
      <td align="right"><span class="smallfont">{$lang->items['LANG_START_CURRENTTIME']} <span class="time">$currenttime</span>.<br />{$lang->items['LANG_START_TIMEZONE']}</span></td>
     </tr>


Füge darunter ein:
code:
1:
2:
3:
4:
5:
<if(in_array(GROUPID,$wbbuserdata['groupids']) && count($wbbuserdata['groupids'])==1)><then>
<tr class="tablea_fc">
 <td align="left" colspan="2"><span class="smallfont">Bitte stell dich im <a href="LINK_ZUM_VORSTELLUNGSFORUM">Vorstellungsforum</a> vor. Danach kannst du in allen Bereichen posten.</span></td>
</tr>
</then></if>


GROUPID ersetzt du durch die ID der Gruppe, die nur im Vorstellungsbereich posten können soll, also der Standardgruppe für User. Dann wird der Text ausschließlich Leuten angezeigt, die NUR in dieser Gruppe sind. Leute, die (zusätzlich) in anderen Gruppen sind, sehen den Text nicht.
LINK_ZUM_VORSTELLUNGSFORUM mußt du natürlich auch mit dem entsprechenden Link ersetzen, wenn du meinen Text so übernehmen möchtest.
Jolaya
Danke ich werde es versuchen. Hart auch ejtzt super geklappt.

Nur wie bekomme ich denn die ganzen anedren User jetzt in die neue Gruppe? Automatisch werden irgendwie nicht alle umgestellt... Kann man das per Massenbearbeitun machen oder muss ich das bei jedem User einzeln einstellen?

LG
Biggi
Das sollte automatisch gehen, sobald sie sich das nächste Mal einloggen (bei Usern die schon mehr als einen Post haben) oder eben nachdem sie den ersten Post geschrieben haben.

Du kannst auch das probieren:
ACP -> Anzeigen aktualisieren -> Benutzerränge aktualisieren
Jolaya
Huhu
Bei den meisten geht es auch automatisch, leider nicht bei allen.

Das mit den Rängen Aktuallisieren klappt nicht.

Aber trotzdem vielen Dank für deine Hilfe :-) Jetz ist es so, wie es sein sollte Freude
Biggi
Gern geschehen. smile
Jolaya
Hey
Durch ein Template-Fehler is der Text nun weg, würde ihn gern in den Heder setzen damit man ihn auch überlal sieht, aber wenn ich den Code da eingebe kommt kein Text =(

Edit: Fehler gefuznden, klappt.
Jolaya
Tja, und nun gehts wieder nicht. Ich hab nix verändert. Verstehe ich nicht.

Code:

<if(in_array(4,$wbbuserdata['groupids']) && count($wbbuserdata['groupids'])==1)><then>
<span class="smallfont"><b><font color="#FF0000">ACHTUNG: Du kannst bisher nur in den Kernbereichen mitlesen, bitte stell dich erst vor,
damit du alle Foren siehst und dort auch etwas schreiben kannst.
Die Privaten Nachrichten sind nach deiner Vorstellung dann ebenfalls für dich zugänglich.
<br><a href="http://www.hamsterboard.de/board.php?boardid=26">Hier kommst du zum Vorstellungsbereich</a>.</font></b></span>
</then></if><p>
Achim
Gibt eine Erweiterung die das Regeln sollte ...

"Pflichtthread", google mal danach, denke es war/ist von hacks4you
Jolaya
Hallo
Ich will eigentlich nix einbauen, das hat so ja prima geklappt bisher. Nur irgendwie verschwindet jetzt auf einmal die Meldung... Und ich weiß nicht warum.

Wenn cih den Code so veränder:

<if(in_array(4,$wbbuserdata['groupids']) && count($wbbuserdata['4'])==1)><then>
<span class="smallfont"><b><font color="#FF0000">ACHTUNG: Du kannst bisher nur in den Kernbereichen mitlesen, bitte stell dich erst vor,
damit du alle Foren siehst und dort auch etwas schreiben kannst.
Die Privaten Nachrichten sind nach deiner Vorstellung dann ebenfalls für dich zugänglich.
<br><a href="http://www.hamsterboard.de/board.php?boardid=26">Hier kommst du zum Vorstellungsbereich</a>.</font></b></span>
</then></if><p>

(hab das veränderte fett gemacht)

steht der Text wieder oben. Aber auch dann, wenn er sich vorgestellt hat und in der neuen Gruppe ist >.<

Ändere ich das Ganze wieder zurück, sieht man die Meldung wieder.

Und irgendwann geht sie dann auf einmal mal wieder nicht mehr. Warum auch immer. unglücklich
GuenniS
Ich habe das folgendermassen gemacht und es funktioniert prima:

Neue Gruppe angelegt die "Mitglieder" heisst. Ordnungsnummer 2

Alte Gruppe "Standardgruppe für User" Ordnungsnummer 3

Im Template Header habe ich folgendes eingefügt:

<if($wbbuserdatas[userid] && $wbbuserdata[userposts]==0)><hthen>
<table cellpadding="{$style-/['tableincellpadding']}" cellspacing-="{$xstyle['tableincellspacing']}" border="{$style['tableinborder']}" style="width:100%" class="tableinborder">
<tr>
<td style="width:100%" bgcolor="#ff0000" align="center">-<font size="22" color="white"><b>Achtung, $wbbuserdata[username], Du hast noch keinen Beitrag geschrieben.<br />Damit du alle Bereiche des Forums nutzen kannst, solltest Du Dich <a href="http://DeineSeite.de/board.php?boardid=6">hier</a> den anderen Usern vorstellen...</b></font></td>
</tr>
</table>
</then></if>

Die Ordnungsnummer der Gruppen muss absteigend sein, damit die User automatisch verschoben werden nach dem ersten Beitrag.

Das ist die einfachste Lösung denke ich.
Jolaya
Klappt nicht. Wenn ich das einfüge, kommt eine Fehlermeldung dass einige Zeiten falsch sind, lösche cih diese, kommt keine Meldung mehr aber man sieht auch keinen Text... verwirrt
Hangman
Zitat:
Original von Jolaya
Klappt nicht. Wenn ich das einfüge, kommt eine Fehlermeldung dass einige Zeiten falsch sind, lösche cih diese, kommt keine Meldung mehr aber man sieht auch keinen Text... verwirrt


code:
1:
<if($wbbuserdatas[userid] && $wbbuserdata[userposts]==0)><then> <table cellpadding="{$style-/['tableincellpadding']}" cellspacing-="{$xstyle['tableincellspacing']}" border="{$style['tableinborder']}" style="width:100%" class="tableinborder"> <tr> <td style="width:100%" bgcolor="#ff0000" align="center">-<font size="22" color="white"><b>Achtung, $wbbuserdata[username], Du hast noch keinen Beitrag geschrieben.<br />Damit du alle Bereiche des Forums nutzen kannst, solltest Du Dich <a href="http://DeineSeite.de/board.php?boardid=6">hier</a> den anderen Usern vorstellen...</b></font></td> </tr> </table> </then></if>


Nehme mal diesen code hab den mal gefixt. der sollte Funktionieren.
Jolaya
Dann kommt das:

Zitat:
Parse error: syntax error, unexpected '-', expecting '}' in /is/htdocs/wp1166145_RMWDYEAKE5/www/global.php(442) : eval()'d code on line 14