Alexander Ipp
BANNED | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Админ и модер могут выбирать, писать ли "исправлено" при правке ими поста Стандартно в IB если админ правит пост, то надпись о правке не отображается, а если простой мебер - отображается. Неудобно, правда? Я предлагаю хак, позволяющий при правке указать, выводить эту надпись или нет. В окошко правки мессаги добавляется чекбокс, если он выделен, то надпись есть, если нет, то нет. Простые мемберы этой галки не видят, видят только админ и модератор текущего раздела. Откройте postings.cgi НАЙДИТЕ код: Код: 'forum','topic','membername','password','action','postno', | Добавьте в конец строки (без пробелов!) код: Код: Здесь мы добавили чтение ещё одного поля формы. НАЙДИТЕ подпрограмму sub editform: Код: sub editform { # start form | Далее все действия идут в ней. Опуститесь чуть-чуть ниже, найдите код: Код: ### Print form &getforum("$inforum"); &getmember("$inmembername"); | НИЖЕ ДОБАВЬТЕ: Код: НАЙДИТЕ код: Код: if ($emoticons eq "on") { $emoticonslink = qq~<a href="javascript:openScript('$miscprog?action=showsmilies',300,350)">$ibtxt{'1408'}</a>~; $emoticonsbutton =qq~<input type=checkbox name="inshowemoticons" value="yes" checked>$ibtxt{'1409'}<br>~; } | НИЖЕ ДОБАВЬТЕ: Код: # Editing post select hack by Alexander Ipp if ($membercode eq "ad" || $inmembmod eq "yes") { $vieweditlineoutput = qq~<font face="$font" color=$fontcolormisc size=$dfontsize1> <input type=checkbox name="invieweditline" value="yes" checked>Отображать надпись о том, что сообщение исправлено? </font><br>~; } else { $vieweditlineoutput = ""; } # End of editing post | Здесь делается проверка на то, выводить чекбокс с выбором того, показывать надпись о редактировании или нет. Зависит от того, является ли смотрящий форму администратором или модератором текущего раздела, или нет. НАЙДИТЕ: Код: <b>$ibtxt{'1427'}</b><input name="previewfirst" type="radio" value="yes"> $ibtxt{'0130'} <input name="previewfirst" type="radio" value="no" checked> $ibtxt{'0129'} </font></td> </tr> <tr> <td bgcolor=$miscbackone valign=middle align=left valign=middle> <font face="$font" color=$fontcolormisc size=$dfontsize1><b>$ibtxt{'1536'}</b></td> <td bgcolor=$miscbackone valign=middle align=left valign=middle> <font face="$font" color=$fontcolormisc size=$dfontsize1> <input type=checkbox name="deletepost" value="yes">$ibtxt{'1535'} </font></td></tr> <tr> <td bgcolor=$miscbackone valign=middle colspan=2 align=center> <input type=Submit value=$ibtxt{'0039'} name=Submit> <input type="reset" name="Clear"> </form> </td></tr></table></tr></td></table> | ВЫШЕ ДОБАВЬТЕ: Код: Здесь просто добавляется вывод в форму переменной, значение которой мы определили на прошлом шаге, содержащей HTML-код чекбокса и надписи. Опускаемся ниже, находим: Код: sub processedit { # В этой подпрограмме ищем: unless ($membercode eq "ad") { $inpost = qq~$inpost<p>[s]($ibtxt{'1537'} $inmembername $ibtxt{'0010'} $editpostdate)[/s]~; } | ЗАМЕЧАНИЕ: Код Код: $inpost = qq~$inpost<p>[s]($ibtxt{'1537'} $inmembername $ibtxt{'0010'} $editpostdate)[/s]~; | может быть немного иным, это определяет вид надписи, выводящейся в сообщении после правки. ЗАМЕНЯЕМ весь этот код на следующий: Код: if (((($membercode eq "ad") || ($inmembmod eq "yes")) && ($inpassword eq $password)) && ($invieweditline eq "yes")) { $vieweditline = "yes"; } elsif (((($membercode eq "ad") || ($inmembmod eq "yes")) && ($inpassword eq $password)) && ($invieweditline ne "yes")) { $vieweditline = "no"; } else { $vieweditline = "yes"; } unless ($vieweditline ne "yes") { $inpost = qq~$inpost<p>[s][color=#999999][Исправлено: $inmembername, $editpostdate][/color][/s]~; } | Здесь просто делается проверка, и в зависимости от её результата к тексту сообщения добавляется (или не добавляется) надпись. Вы можете изменить код Код: [s][color=#999999][Исправлено: $inmembername, $editpostdate][/color][/s] | по своему усмотрению, меняя вид надписи об изменении сообщения. Переменная $inmembername - это имя исправляющего, $editpostdate - время правки. Это всё. Удачи всем! :) | Всего записей: 1943 | Зарегистр. 20-08-2001 | Отправлено: 21:28 24-02-2002 | Исправлено: lynx, 05:47 30-06-2003 |
|