Перебиваем ID топика на ajax

RomM1

Пользователь
#1
В общем попросили написать модуль, который будет менять ID определенного топика на любой другой (генерация). Нужно это для отбивания от "правообладателей", т.е. меняем ID - по старой ссылке будет написано что топик удален, а значит вопрос решен :)

Открываем ajax.php и находим
PHP:
'edit_user_profile' => array('admin'),
после вставляем

PHP:
'moved_id'          => array('admin'),
перед последней } вставляем

PHP:
function moved_id()
{
$topic_id  = (string) $this->request['topic_id'];
$topic_ids = ($topic_id == NULL) ? $this->ajax_die('Не введен ID :(') : $topic_id;
$proverka = DB()->fetch_row("SELECT topic_id FROM ". BB_BT_TORRENTS ." WHERE topic_id = $topic_id LIMIT 1");
if ($proverka)
{
$length = 5;
$allow_numbers = true;
$out = '';
$arr = array();
if ($allow_numbers) for($i=1; $i<10; $i++) $arr[] = $i;
shuffle($arr);
for($i=0; $i<$length; $i++)
{
$out .= $arr[mt_rand(0, sizeof($arr)-1)];
}
$proverka2 = DB()->fetch_row("SELECT topic_id FROM ". BB_BT_TORRENTS ." WHERE topic_id = $out LIMIT 1");
if (!$proverka2)
{
DB()->query("UPDATE ". BB_TOPICS ." SET topic_id = $out WHERE topic_id = $topic_id");
DB()->query("UPDATE ". BB_BT_TORRENTS ." SET topic_id = $out WHERE topic_id = $topic_id");
DB()->query("UPDATE ". BB_BT_TRACKER ." SET topic_id = $out WHERE topic_id = $topic_id");
DB()->query("UPDATE ". BB_BT_TRACKER_SNAP ." SET topic_id = $out WHERE topic_id = $topic_id");
DB()->query("UPDATE ". BB_BT_TRACKER ." SET topic_id = $out WHERE topic_id = $topic_id");
DB()->query("UPDATE ". BB_TOPICS_WATCH ." SET topic_id = $out WHERE topic_id = $topic_id");
DB()->query("UPDATE ". BB_POSTS ." SET topic_id = $out WHERE topic_id = $topic_id");
DB()->query("UPDATE ". BB_BT_TORSTAT ." SET topic_id = $out WHERE topic_id = $topic_id");
$this->ajax_die('ID: '. $topic_id .' сменено на ID: '. $out .'');
} else {
$this->ajax_die('Повторите попытку!');
}
} else {
$this->ajax_die('Ошибочка! ID не найдено :(');
}
}
Открываем admin_board.tpl и находим

HTML:
<tr>
<td><h4>{L_ALLOW_NAME_CHANGE}</h4></td>
<td><input type="radio" name="allow_namechange" value="1" {NAMECHANGE_YES} /> {L_YES}&nbsp;&nbsp;<input type="radio" name="allow_namechange" value="0" {NAMECHANGE_NO} /> {L_NO}</td>
</tr>
после вставляем

HTML:
<script type="text/javascript">
    ajax.moved_id = function() {
      ajax.exec({
        action        : 'moved_id',
        topic_id      : $('#moved_id_text').val()
      });
    };
</script>
<tr>
<th colspan="2">Перебиваем ID</th>
</tr>
<tr>
<td><h4>Да, да! Тут пишем ID!</h4></td>
<td><input class="post" type="text" id="moved_id_text" name="moved_id_text" value="" /> | <input class="post" type="button" id="moved_id" name="moved_id" value="Сюда, сюда!" onclick="ajax.moved_id()" /></td>
</tr>
 
Y

Yoko

Гость
#4
RomM1, не очень удобный способ.
Если правообладатель захочет, то всё равно найдёт всё что нужно - "поиск по трекеру".
 

RomM1

Пользователь
#5
RomM1, не очень удобный способ.
Если правообладатель захочет, то всё равно найдёт всё что нужно - "поиск по трекеру".
Есть лентяи, проверка лишь выбранных ссылок. Посмотрим как реагировать будут, надоест им слать когда-нибудь :).
 

Basilevs

Пользователь
#7
Не лучшая реализация, надо универсал делать. В админке изменение на случайный, а в теме изменение на заданный.
 

frost444

Пользователь
#9
код улыбнул. Есть подобная реализация, только на php и с рандомной сменой ид топика.
RomM1, у тебя ид не везде меняется... рыскай тщательнее
 
Сверху