Bei Edit "Neu" nicht für Mods

pimpi
Hallo,

ich habe mir diesen kleinen Hack eingebaut:

Zitat:
öffne editpost.php

suche nach:


if ($parseurl == 1 && $allowbbcode == 1) $message = parseURL($message);


füge darunter ein:


### NEW ON EDIT ###
$db->query("UPDATE bb".$n."_threads SET lastposttime='".time()."', lastposterid='$wbbuserdata[userid]', lastposter='$wbbuserdata[username] (Edit)' WHERE threadid='$threadid'");
$boardid_auslese = $db->query_first("SELECT boardid FROM bb".$n."_threads WHERE threadid='$threadid'");
$db->query("UPDATE bb".$n."_boards SET lastposttime='".time()."', lastthreadid='$threadid', lastposterid='$wbbuserdata[userid]', lastposter='$wbbuserdata[username] (Edit)' WHERE boardid='$boardid_auslese[boardid]'");
### NEW ON EDIT ###


Der Beitrag wird dann wieder als neu gewertet bei Edit. Das ist aber doof für Moderatoren, weil die ändern einen Beitrag und der Nutzer denkt "Ah was neues". Aber nix.
Kann jemand den Hack oben ändern das Admins&Mods davon ausgeschlossen werden?

Danke
gruß
Airwaver
Ich finde das garnicht in der editpost.php!! Augen rollen
pimpi
Doch, Doch, ist schon da Augenzwinkern

Über dem steht:
Zitat:
if ($error) eval("\$editpost_error .= \"".$tpl->get("newthread_error")."\";");
else {
/* parse url */


Oder gibts einen anderen Hack der das besser löst?
Airwaver
Das ist meine editpost.php
Aber nicht zu finden von euren Skripts.... Augen rollen


code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
<?xml version="1.0" encoding="{$lang->items['LANG_GLOBAL_ENCODING']}"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="{$lang->items['LANG_GLOBAL_DIRECTION']}" lang="{$lang->items['LANG_GLOBAL_LANGCODE']}" xml:lang="{$lang->items['LANG_GLOBAL_LANGCODE']}">
<head>
<title>$master_board_name | $board[title] | $thread[topic] | {$lang->items['LANG_POST_EDITPOST']}</title>
$headinclude

<script type="text/javascript">
<!--
var imageMaxWidth = $picmaxwidth;
var imageMaxHeight = $picmaxheight;
//-->
</script>
<script type="text/javascript" src="js/images.js"></script>
</head>

<body onload="resizeImages();">
$header
<table cellpadding="{$style['tableincellpadding']}" cellspacing="{$style['tableincellspacing']}" border="{$style['tableinborder']}" style="width:{$style['tableinwidth']}" class="tableinborder">
 <tr>
  <td class="tablea"><table cellpadding="0" cellspacing="0" border="0" style="width:100%">
   <tr class="tablea_fc">
    <td align="left"><span class="smallfont"><b><a href="index.php{$SID_ARG_1ST}">$master_board_name</a>$navbar &raquo; </b><if($thread['prefix']!="")><then><span class="prefix">$thread[prefix]</span> </then></if><b> <a href="thread.php?threadid=$threadid{$SID_ARG_2ND}">$thread[topic]</a> &raquo; {$lang->items['LANG_POST_EDITPOST']}</b></span></td>
    <td align="right"><span class="smallfont"><b>$usercbar</b></span></td>
   </tr>
  </table></td>
 </tr>
</table><br />
$preview_window
$editpost_error
<if(($isuser==1 && checkpermissions("can_del_own_post")==1) || checkmodpermissions("m_can_post_del")==1)>
<then>
<form action="editpost.php" method="post">
<input type="hidden" name="send" value="send2" />
<input type="hidden" name="postid" value="$postid" />
<input type="hidden" name="sid" value="$session[hash]" />
<table cellpadding="{$style['tableincellpadding']}" cellspacing="{$style['tableincellspacing']}" border="{$style['tableinborder']}" style="width:{$style['tableinwidth']}" class="tableinborder">
 <tr>
  <td class="tabletitle" colspan="3" align="left"><span class="normalfont"><b>{$lang->items['LANG_POST_DELETE']}</b></span></td>
 </tr>
 <tr align="left">
  <td class="tableb"><span class="normalfont"><input type="checkbox" id="checkbox_del" name="deletepost" value="1" /><label for="checkbox_del"> <b>{$lang->items['LANG_POST_DELETE_CHECKBOX']}</b></label></span></td>
  <td class="tablea"><span class="normalfont">{$lang->items['LANG_POST_DELETE_DESC']}</span></td>
  <td class="tableb"><input type="submit" value="{$lang->items['LANG_POST_DELETE']}" class="input" /></td>
 </tr>
</table><br /></form>
</then>
</if>
<if(($isuser==1 && checkpermissions("can_edit_own_post")==1) || checkmodpermissions("m_can_post_edit")==1)>
<then>
<form action="editpost.php" method="post" name="bbform" onsubmit="return validate(this)" onreset="resetAppletText()">
<table cellpadding="{$style['tableincellpadding']}" cellspacing="{$style['tableincellspacing']}" border="{$style['tableinborder']}" style="width:{$style['tableinwidth']}" class="tableinborder">
 <tr>
  <td class="tabletitle" colspan="2" align="left"><span class="normalfont"><b>{$lang->items['LANG_POST_EDITPOST']}</b></span></td>
 </tr>
 <tr align="left">
  <td class="tableb"><span class="normalfont">{$lang->items['LANG_POST_USERNAME']}</span></td>
  <td class="tableb">$newthread_username</td>
 </tr>
 <tr align="left">
  <td class="tablea"><span class="normalfont">{$lang->items['LANG_POST_TOPIC']}</span></td>
  <td class="tablea"><input class="input" type="text" name="topic" value="$topic" size="40" maxlength="100" /></td>
 </tr>
 $newthread_icons
 <tr align="left">
  <td class="tablea" valign="top"><span class="normalfont"><b>{$lang->items['LANG_POST_MESSAGE']}</b></span>
   <br /><br /><table cellpadding="{$style['tableincellpadding']}" cellspacing="{$style['tableincellspacing']}" border="{$style['tableinborder']}" class="tableinborder">
    <tr>
     <td align="left" class="tableb" nowrap="nowrap"><span class="smallfont">$note</span></td>
    </tr>
   </table>
   <br />$bbcode_smilies
  </td>
  <td class="tablea" align="left"><table>
   <tr>
    <td align="center">$bbcode_buttons</td>
   </tr>
   <tr>
    <td align="left">$editor</td>
   </tr>
   <tr>
    <td align="left">
     <input type="button" value="{$lang->items['LANG_POSTINGS_OPTIONS']}" class="input" onclick="toggleMenu('newthreadOptions', this);" />
     $attachment
     $editor_switch
    </td>
   </tr>
  </table></td>
 </tr>
</table>
<div id="newthreadOptions" class="hoverMenu">
 <ul class="smallfont">
  <li><input type="checkbox" id="checkbox1" name="parseurl" value="1" $checked[0] /><label for="checkbox1"> {$lang->items['LANG_POSTINGS_PARSEURL']}</label></li>
  <if($wbbuserdata['userid'])><then><li><input type="checkbox" id="checkbox2" name="emailnotify" value="1" $checked[1] /><label for="checkbox2"> {$lang->items['LANG_POST_EMAILNOTIFY']}</label></li></then></if>
  <if(checkpermissions("can_use_post_smilies")==1)><then><li><input type="checkbox" id="checkbox3" name="disablesmilies" value="1" $checked[2] /><label for="checkbox3"> {$lang->items['LANG_POSTINGS_DISABLESMILIES']}</label></li></then></if>
  <if(checkpermissions("can_use_post_html")==1)><then><li><input type="checkbox" id="checkbox4" name="disablehtml" value="1" $checked[3] /><label for="checkbox4"> {$lang->items['LANG_POSTINGS_DISABLEHTML']}</label></li></then></if>
  <if(checkpermissions("can_use_post_bbcode")==1)><then><li><input type="checkbox" id="checkbox5" name="disablebbcode" value="1" $checked[4] /><label for="checkbox5"> {$lang->items['LANG_POSTINGS_DISABLEBBCODE']}</label></li></then></if>
  <if(checkpermissions("can_use_post_images")==1)><then><li><input type="checkbox" id="checkbox6" name="disableimages" value="1" $checked[5] /><label for="checkbox6"> {$lang->items['LANG_POSTINGS_DISABLEIMAGES']}</label></li></then></if>
  <li><input type="checkbox" id="checkbox7" name="showsignature" value="1" $checked[6] /><label for="checkbox7"> {$lang->items['LANG_POSTINGS_SHOWSIGNATURE']}</label></li>
  <if($wbbuserdata['dont_append_editnote']==1)><then><li><input type="checkbox" id="checkbox8" name="dont_append_editnote" value="1" $checked[7] /><label for="checkbox8"> {$lang->items['LANG_POST_DONT_APPEND_EDITNOTE']}</label></li></then></if>
  <li><input type="checkbox" id="checkbox_checklength" onclick="checklength(document.bbform); this.checked = false;" value="0" /><label for="checkbox_checklength"><b> {$lang->items['LANG_POSTINGS_CHECKLENGTH']}</b></label></li>
 </ul>
 <if($wbbuserdata['dont_append_editnote']!=1)><then><input type="hidden" name="dont_append_editnote" value="0" /></then></if>
</div>
<p align="center">
 <input type="hidden" name="send" value="send" />
 <input type="hidden" name="postid" value="$postid" />
 <input type="hidden" name="sid" value="$session[hash]" />
 <input type="hidden" name="attachmentids" value="$attachmentids" />
 <input type="hidden" name="change_editor" value="" />
 <input type="hidden" name="usewysiwyg" value="$wbbuserdata[usewysiwyg]" />
 <input class="input" type="submit" accesskey="S" value="{$lang->items['LANG_POST_SAVEPOST']}" />
 <input class="input" type="submit" name="preview" accesskey="P" value="{$lang->items['LANG_POSTINGS_PREVIEW']}" />
 <input class="input" type="reset" accesskey="R" value="{$lang->items['LANG_POSTINGS_RESET']}" />
</p></form>
</then>
</if>
$footer
</body>
</html>

pimpi
Die PHP-Datei! Nicht das Template!
Seraphine
Außerdem hat sicher nicht jeder den Hack eingebaut. Wenn man sich das Zitat vom ersten Poster anschaut, kann man sehen, dass es sich um einen Auszug aus der Anleitung zum Einbauen des Hacks handelt.

Wie man das verwirklichen könnte, muss ich sagen, weiß ich hier leider nicht.
[kamui]
Also ich denke es handelt sich um den allseits bekannten "New on Edit" Hack. Stimmt`s oder hab ich Recht großes Grinsen Wenn du es so machst sollte es funktionieren:

php:
1:
2:
3:
4:
5:
6:
7:
8:
### NEW ON EDIT ###
$normaler_user $db->query_first("SELECT  rankgroupid FROM bb".$n."_users WHERE userid='$wbbuserdata[userid]'");
if ($normaler_user == 4) {
$db->query("UPDATE bb".$n."_threads SET lastposttime='".time()."', lastposterid='$wbbuserdata[userid]', lastposter='$wbbuserdata[username] (Edit)' WHERE threadid='$threadid'");
$boardid_auslese $db->query_first("SELECT boardid FROM bb".$n."_threads WHERE threadid='$threadid'");
$db->query("UPDATE bb".$n."_boards SET lastposttime='".time()."', lastthreadid='$threadid', lastposterid='$wbbuserdata[userid]', lastposter='$wbbuserdata[username] (Edit)' WHERE boardid='$boardid_auslese[boardid]'");
}
### NEW ON EDIT ###

Du musst bloß darauf achten, dass die 4 in der if-Abfrage die ID der Gruppe "normales Mitglied" ist, dann müsste es funktionieren ...
Viquel
die Variable müsste $wbbuserdata['dont_append_editnote'] sein (ist true wenn keine EDIT-Notitz angezeigt werden soll, also bei Admins und Mods true, bei Usern usw. false)

also sollte das so aussehen:

Zitat:
öffne editpost.php

suche nach:


if ($parseurl == 1 && $allowbbcode == 1) $message = parseURL($message);


füge darunter ein:


### NEW ON EDIT ###
/** check weather the edit is diplayed or not */
if($wbbuserdata['dont_append_editnote']!=true){

$db->query("UPDATE bb".$n."_threads SET lastposttime='".time()."', lastposterid='$wbbuserdata[userid]', lastposter='$wbbuserdata[username] (Edit)' WHERE threadid='$threadid'");
$boardid_auslese = $db->query_first("SELECT boardid FROM bb".$n."_threads WHERE threadid='$threadid'");
$db->query("UPDATE bb".$n."_boards SET lastposttime='".time()."', lastthreadid='$threadid', lastposterid='$wbbuserdata[userid]', lastposter='$wbbuserdata[username] (Edit)' WHERE boardid='$boardid_auslese[boardid]'");

}
### NEW ON EDIT ###


Wenn das aus irgendeinem Grund nicht geht müssen wir uns die Variable anders besorgen Augenzwinkern (sollte aber gehen, bitte testen!)

edit: ich sehe da war jemand schneller - aber gut finde ich das nicht, da das nur genau diese benutzergruppe trifft, sobald du mehrere hast wird es haarig. Optimal wäre die Lösung meines vorposters wenn man sich alle Benutzergrupen schnappt denene kein Edithinweiß angezeigt wird.
Wir können das ganze auch so ansetzen:
code:
1:
2:
3:
4:
5:
 if (empty($_POST['dont_append_editnote'])){
$db->query("UPDATE bb".$n."_threads SET lastposttime='".time()."', lastposterid='$wbbuserdata[userid]', lastposter='$wbbuserdata[username] (Edit)' WHERE threadid='$threadid'");
$boardid_auslese = $db->query_first("SELECT boardid FROM bb".$n."_threads WHERE threadid='$threadid'");
$db->query("UPDATE bb".$n."_boards SET lastposttime='".time()."', lastthreadid='$threadid', lastposterid='$wbbuserdata[userid]', lastposter='$wbbuserdata[username] (Edit)' WHERE boardid='$boardid_auslese[boardid]'");
}


Ein Admin oder jemand der das Editiert von aussschalten kann hat das Kästchen. Wenn er seinen Edit nicht anzeigt, wird auch nicht als neu angezeigt. Allerdings kann man das mit immensem Aufwand umgehen da keine Abfrage stattfindet ob der, der editiert hat auch die Option hat. (geht mit Socketverbindung und Post-Header was nur wenige wirklich können - und der AUfwand zahlt sich nicht aus nur damit andere nicht merken, dass was neues dazukam)

Es steht dir aber frei noch eine eigene Checkbox zu machen (im Template!!) - da kannst du es so einstellen wie du es brauchst. Dann in meinem letztem Code-Snipplet den Variablennamen anpassen, schon kann jeder (oder wie auch immer du es im Template gemacht hast) wählen ob der Beitrag als neu angezeigt werden soll oder nicht!
(finde ich gut, baue ich bei mir ein ^^)
[kamui]
Viquel, das sollte nur eine schnelle Lösung sein Augenzwinkern

@pimpi: ich empfehle Viquel's Lösung, da es ja an- bzw. ausschaltbar ist ^^
pimpi
Super, das klappt wunderbar! Vielen Dank smile