Перейти к контенту

«Живое» удаление постов без перезагрузки страницы


Рекомендуемые сообщения

// Я здесь новичок — если не там создал тему, не пинайте

 

Итак, «живое» удаление.

Этот мод позволяет удалять сообщения не уходя со страницы! Причём как для простых пользователей, так и для модераторов.

Установка делается полностью через админ. панель — путём правки скинов форума.

P.S.: делалось для русского модифицированного IPB 1.3 Final, но может подойти и к 2.0.

P.P.S.: если у Вас в администраторской панели настройках «Topic View Sections» нет секции «quick_reply_new», то работайте с секцией «quick_reply_box_open».

Устанавливается очень просто:

1. Идём в администраторскую панель форума.

2. Слева выбираем «HTML шаблоны».

3. Справа выбираем шаблон, который используется для текущего скина (если их несколько, повторите следующие действия для каждого).

Следующее нужно сделать для каждого используемого скина:

1. Идём в «Topic View Sections».

2. Нажодим «Header» и жмём «Редактировать» справа от него.

3. Ищём что-то вроде:

//--></script>

и перед этим добавляем:

function live_delete_post(pid,mid) {
if (document.forms['live_post_deleter']) {
post = document.getElementById('mainpost_div_'+pid);
document.forms['live_post_deleter'].p.value = pid;
var ok = confirm('Вы действительно хотите удалить сообщение №'+pid+'?');
if (ok) {
post.innerHTML = '<big><font color="red">Идёт удаление…</font></big>';
document.forms['live_post_deleter'].submit();
setTimeout(function(){post.innerHTML = '<big><font color="red">Сообщение удалено</font></big>';},4999);
elt = document.getElementById('posts_of_'+mid);
if (elt) elt.innerHTML = elt.innerHTML - 1;
} else alert('И слава богу =)');
window.live_deleter_return = false;
return false;
} else {
alert('Видимо какая-то ошибка… фиг знает…');
window.live_deleter_return = true;
return true;
}
}

и сохраняем изменения.

4. Далее идём в «Post Entry». Ищем:

{$author['member_posts']}

меняем на:

Сообщений: <span id="posts_of_{$post['id']}">{$post['posts']}</span>

. Потом ищем:

{$post['delete_button']}

меняем на:

<span onmousedown="live_delete_post({$post['pid']},{$post['id']}); return window.live_deleter_return;" onclick="return window.live_deleter_return;">{$post['delete_button']}</span>

и сохраняем изменения.

5. Далее идём в «quick_reply_new» (у кого её нет, идём в «quick_reply_box_open»). В конец добавляем:

<form name='live_post_deleter' method='get' action='index.php' target='modNullFrame'>
<input type='hidden' name='act' value='Mod' />
<input type='hidden' name='CODE' value='04' />
<input type='hidden' name='f' value='$fid' />
<input type='hidden' name='t' value='$tid' />
<input type='hidden' name='p' value='#DYNAMIC#' />
<input type='hidden' name='auth_key' value='$key' />
</form>
<iframe name='modNullFrame' id='modNullFrame' width='0' height='0' onload="setTimeout("this.src = '#';",1999);" onclick="alert('Очень круто — ты попал!!! =)');"></iframe>

и сохраняем изменения.

6. Идём в «Mod Options Drop Down». В конец добавляем:

<form name='live_post_deleter' method='get' action='index.php' target='modNullFrame'>
<input type='hidden' name='act' value='Mod' />
<input type='hidden' name='CODE' value='04' />
<input type='hidden' name='f' value='$fid' />
<input type='hidden' name='t' value='$tid' />
<input type='hidden' name='p' value='#DYNAMIC#' />
<input type='hidden' name='auth_key' value='$key' />
</form>
<iframe name='modNullFrame' id='modNullFrame' width='0' height='0' onload="setTimeout("this.src = '#';",1999);" onclick="alert('Очень круто — ты попал!!! =)');"></iframe>

и сохраняем изменения.

7. Можно пробовать :D[1113910378:1113910678]P.S.: все надписи можно спокойно менять. И

 onclick="alert('Очень круто — ты попал!!! =)');"

тоже можно убрать — это я для прикола вставил.

P.P.S.: как работает, можно увидеть здесь — я там техподдержка, собственно, именно для того форума это и писалось.

P.P.P.S.: если будут баги, сообщайте ;)

Ссылка на комментарий
Поделиться на других сайтах

Чего-то я не наблюдаю самого интересного: в каком месте скрипта идёт запуска URLа на удаление поста.
Ссылка на комментарий
Поделиться на других сайтах

Чего-то я не наблюдаю самого интересного: в каком месте скрипта идёт запуска URLа на удаление поста.

в жава скрипте лалала.submit();

Ссылка на комментарий
Поделиться на других сайтах

Так а где он в этом моде?

 

if (ok) {
post.innerHTML = '<big><font color="red">Идёт удаление…</font></big>';
[b]document.forms['live_post_deleter'].submit();[/b]

Ссылка на комментарий
Поделиться на других сайтах

  • 2 недели спустя...

Упс… нашёл несколько косяков.

 

 

Изменить нужно п. 3:

(если Вы его выполняли :D, то нужно удалить всё, что было добавлено).

3. Ищём что-то вроде:

//--></script>

и перед этим добавляем:

function live_delete_post(pid,mid) {
if (document.forms['live_post_deleter']) {
document.forms['live_post_deleter'].p.value = pid;
var ok = confirm('Вы действительно хотите удалить сообщение №'+pid+'?');
if (ok) {
window.status = 'Идёт удаление…';
document.forms['live_post_deleter'].submit();
setTimeout(function(){alert('Сообщение удалено');},4999);
elt = document.getElementById('posts_of_'+mid);
if (elt) elt.innerHTML = elt.innerHTML - 1;
} else alert('И слава богу =)');
window.live_deleter_return = false;
return false;
} else {
alert('Видимо какая-то ошибка… фиг знает…');
window.live_deleter_return = true;
return true;
}
}

и сохраняем изменения.

 

И ещё п. 6 желательно изменить (во избежанние глюков в не-крых браузерах).

(если Вы его выполняли ;), то нужно удалить всё, что было добавлено).

6. Идём в «Mod Options Drop Down». В конец добавляем:

<script language='javascript' type='text/javascript'><!--
var html = '';
if (!document.forms['live_post_deleter']) {
html += "<form name='live_post_deleter' method='get' action='index.php' target='modNullFrame'>";
html += "<input type='hidden' name='act' value='Mod' />";
html += "<input type='hidden' name='CODE' value='04' />";
html += "<input type='hidden' name='f' value='$fid' />";
html += "<input type='hidden' name='t' value='$tid' />";
html += "<input type='hidden' name='p' value='#DYNAMIC#' />";
html += "<input type='hidden' name='auth_key' value='$key' />";
html += "</form>";
}
if (!document.frames['modNullFrame']) html += "<iframe name='modNullFrame' id='modNullFrame' width='1' height='1'></iframe>";
document.write(html);
//--></script>

и сохраняем изменения.

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.