assessor
Долгожитель форума
Всего сообщений: 495 Рейтинг пользователя: 14 СсылкаДата регистрации на форуме: 13 фев. 2007
|
Профиль | Сообщить модератору | ИгнорироватьNEW! Сообщение отправлено: 19 марта 2010 10:42
У меня 2/20
в корневой delete.php
<? function do_delete_post_($pid) { global $link; $sql = "SELECT u.u__level,ua.ua_level,p.p_attach,p.p_tid,p_uid,t_fid,t__pcount ". "FROM ".$GLOBALS['DBprefix']."Post p, ".$GLOBALS['DBprefix']."Topic t, ".$GLOBALS['DBprefix']."User u ". "LEFT JOIN ".$GLOBALS['DBprefix']."UserAccess ua ON (ua.uid=u.u_id AND ua.fid=".$GLOBALS['forum'].") ". "WHERE p_id=\"$pid\" AND p_tid=t_id AND u.u_id=p.p_uid"; $res =&db_query($sql,$link); if (db_num_rows($res)!=1) error(MSG_e_p_notfound); $pdata=&db_fetch_array($res); db_free_result($res); if ($pdata['p_uid']!=$GLOBALS['inuserid'] && check_moderate($pdata,$GLOBALS['inuserlevel'])) error(MSG_e_mod_subordinate); if ($pdata['p_attach']) { $sql = "DELETE FROM ".$GLOBALS['DBprefix']."File WHERE file_id=".$pdata['p_attach']; $res =&db_query($sql,$link); }
$sql = "SELECT u__name from ".$GLOBALS['DBprefix']."User WHERE u_id=".$GLOBALS['inuserid']; $res =&db_query($sql,$link); $del_user_name = mysql_result($res,0,'u__name');
$sql = "SELECT p_tid from ".$GLOBALS['DBprefix']."Post WHERE p_id=\"$pid\""; $res =&db_query($sql,$link); $tama_ud_soobsh_id = mysql_result($res,0,'p_tid');
$sql = "SELECT t_fid from ".$GLOBALS['DBprefix']."Topic WHERE t_id=\"$tama_ud_soobsh_id\""; $res =&db_query($sql,$link); $razdel_ud_soobsh_id = mysql_result($res,0,'t_fid');
$sql = "SELECT t_title from ".$GLOBALS['DBprefix']."Topic WHERE t_id=\"$tama_ud_soobsh_id\""; $res =&db_query($sql,$link); $tama_ud_soobsh = mysql_result($res,0,'t_title');
$sql = "SELECT f_title from ".$GLOBALS['DBprefix']."Forum WHERE f_id=\"$razdel_ud_soobsh_id\""; $res =&db_query($sql,$link); $razdel_ud_soobsh = mysql_result($res,0,'f_title');
$tama_ud_soobsh=str_replace('"','\\"',$tama_ud_soobsh); $razdel_ud_soobsh=str_replace('"','\\"',$razdel_ud_soobsh);
$sql = "UPDATE ".$GLOBALS['DBprefix']."Post SET p_tid=\"656\", p__modcomment=\"Cообщение удалил: ".$del_user_name." <br> Удалено из темы: ".$tama_ud_soobsh." <br> Удалено из раздела: ".$razdel_ud_soobsh."\" WHERE p_id=\"$pid\""; $res =&db_query($sql,$link); $sql = "UPDATE ".$GLOBALS['DBprefix']."UserStat SET us_count=us_count-1 WHERE uid=".$pdata['p_uid']." AND fid=".$pdata['t_fid']; $res =&db_query($sql,$link); }
function do_delete_post($pid) { global $link; $sql = "SELECT u.u__level,ua.ua_level,p.p_attach,p.p_tid,p_uid,t_fid,t__pcount ". "FROM ".$GLOBALS['DBprefix']."Post p, ".$GLOBALS['DBprefix']."Topic t, ".$GLOBALS['DBprefix']."User u ". "LEFT JOIN ".$GLOBALS['DBprefix']."UserAccess ua ON (ua.uid=u.u_id AND ua.fid=".$GLOBALS['forum'].") ". "WHERE p_id=\"$pid\" AND p_tid=t_id AND u.u_id=p.p_uid"; $res =&db_query($sql,$link); if (db_num_rows($res)!=1) error(MSG_e_p_notfound); $pdata=&db_fetch_array($res); db_free_result($res); if ($pdata['p_uid']!=$GLOBALS['inuserid'] && check_moderate($pdata,$GLOBALS['inuserlevel'])) error(MSG_e_mod_subordinate); if ($pdata['p_attach']) { $sql = "DELETE FROM ".$GLOBALS['DBprefix']."File WHERE file_id=".$pdata['p_attach']; $res =&db_query($sql,$link); } $sql = "DELETE FROM ".$GLOBALS['DBprefix']."Post WHERE p_id=\"$pid\""; $res =&db_query($sql,$link); $sql = "UPDATE ".$GLOBALS['DBprefix']."UserStat SET us_count=us_count-1 WHERE uid=".$pdata['p_uid']." AND fid=".$pdata['t_fid']; $res =&db_query($sql,$link); if ($pdata['t__pcount']==1) delete_topic($pdata['p_tid']); } ?>
Функция do_delete_post_ удаляет в тему 656 сообщения. Но у меня немного удалений и они не критичные, поэтому я попробовал, работает и переключился на стандартную. |