Форум -> О форуме на Понедельниках -> Блок SSDForum |
Блок SSDForum |
---|
Михаил | Дата: 18.10.2007, в 06:51 | Сообщение №1 |
ПользовательПользователь №: 118 Сообщений: 35
| Серж, ты я видел что-то тестирвал/исправлял в блоке чтобы при удалении сообщений темы не терялись в блоке.
Нашёл в чём причина? Поделись.. |
|
|
|
Serg_pnz | Дата: 18.10.2007, в 08:22 | Сообщение №2 |
АдминистраторПользователь №: 1 Сообщений: 2242
| Михаил, нашел причину, обязательно поделюсь. Вот сдам проект и займусь релизом. | Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот |
|
|
Михаил | Дата: 20.10.2007, в 13:35 | Сообщение №3 |
ПользовательПользователь №: 118 Сообщений: 35
| Может кому пригодится... Исправил я этот глюк. Надо было просто в forums_topic апдэйтить дату последнего сообщения.
Теперь функция удаления выглядит так:
Код | 1
| function deletepost($id) {
global $prefix, $db, $user, $userinfo, $module_name;
getusrinfo($user);
list($userinfo['user_moder']) = $db->sql_fetchrow($db->sql_query("SELECT user_moder FROM ".$prefix."_forums_users WHERE user_id = '$user[0]'"));
if ($userinfo['user_moder'] == "0") {
Header("Location: index.php?error=403");
exit;
}
list($tid) = $db->sql_fetchrow($db->sql_query("SELECT tid FROM ".$prefix."_forums_posts WHERE id='$id'"));
list($cid) = $db->sql_fetchrow($db->sql_query("SELECT cid FROM ".$prefix."_forums_topics WHERE id='$tid'"));
list($max) = $db->sql_fetchrow($db->sql_query("SELECT max(id) as id FROM ".$prefix."_forums_posts WHERE tid = ".$tid));
list($mid) = $db->sql_fetchrow($db->sql_query("SELECT id FROM ".$prefix."_forums_posts WHERE tid='$tid' ORDER BY id ASC"));
list($countid) = $db->sql_fetchrow($db->sql_query("SELECT Count(id) FROM ".$prefix."_forums_posts WHERE tid='$tid'"));
if ($mid == $id) {
$db->sql_query("UPDATE ".$prefix."_forums_users SET user_messages=user_messages-$countid WHERE user_id='$userinfo[0]'");
$db->sql_query("UPDATE ".$prefix."_forums_topics SET totalposts=totalposts-1 WHERE id='$tid'");
$db->sql_query("UPDATE ".$prefix."_forums_cats SET totaltopics=totaltopics-1, totalposts=totalposts-$countid+1 WHERE id='$cid'");
$db->sql_query("DELETE FROM ".$prefix."_forums_topics WHERE id='$tid'");
$db->sql_query("DELETE FROM ".$prefix."_forums_posts WHERE tid='$tid'");
Header("Location: index.php?name=$module_name");
} else {
$db->sql_query("UPDATE ".$prefix."_forums_users SET user_messages=user_messages-1 WHERE user_id='$userinfo[0]'");
$db->sql_query("UPDATE ".$prefix."_forums_topics SET totalposts=totalposts-1 WHERE id='$tid'");
$db->sql_query("UPDATE ".$prefix."_forums_cats SET totalposts=totalposts-1 WHERE id='$cid'");
$db->sql_query("DELETE FROM ".$prefix."_forums_posts WHERE id='$id'");
if($max == $_GET['id']) {
$newmax = $db->sql_fetchrow($db->sql_query("SELECT max(id) as id FROM ".$prefix."_forums_posts WHERE tid = ".$tid));
$newname = $db->sql_fetchrow($db->sql_query("SELECT name, date FROM ".$prefix."_forums_posts WHERE id = ".$newmax['id']));
$db->sql_query("UPDATE ".$prefix."_forums_topics SET lastposter_name = '".$newname['name']."', date='".$newname['date']."' WHERE id = ".$tid);
}
Header("Location: index.php?name=$module_name&op=showtopic&id=$tid");
}
} |
|
|
|
RockKenny | Дата: 21.10.2007, в 13:50 | Сообщение №4 |
Активный участникПользователь №: 171 Сообщений: 232
| где эта функция? в index.php? |
|
|
XaMMeR | Дата: 21.10.2007, в 13:57 | Сообщение №5 |
МодераторПользователь №: 196 Сообщений: 75
| Михаил, когда выкладываешь код, помечай чего именно правил. |
|
|
Михаил | Дата: 22.10.2007, в 08:31 | Сообщение №6 |
ПользовательПользователь №: 118 Сообщений: 35
| На сколько я помню исправлено:
Код | 1
| $newname = $db->sql_fetchrow($db->sql_query("SELECT name, date FROM ".$prefix."_forums_posts WHERE id = ".$newmax['id']));
$db->sql_query("UPDATE ".$prefix."_forums_topics SET lastposter_name = '".$newname['name']."', date='".$newname['date']."' WHERE id = ".$tid); |
Добавлен апдэйт даты.
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Отредактированно Михаил 22.10.2007 г. в 08:32:22 |
|
|
|
Вы не можете ответить в тему анонимно, пожалуйста, войдите или зарегистрируйтесь!
|