Баги TorrentPier II

Статус
В этой теме нельзя размещать новые ответы.
G

Gemini_13

Гость
Phoenix, спс. про css в курсе, это я просто недоделал и забыл (протестить хотел).
п.16 тож говорил, что не сделал. придумаем чет, не беда. там еще косяк есть в постинге при создании темы + косяк с сортировкой. это будет сделано
 
G

Gemini_13

Гость
по п.16 пробовал в разных вариациях, но так и не получил такие нотисы. можешь написать что куда и как тыцнуть?
 

Phoenix

Пользователь
Gemini_13, по п.16
Технические настройки => Настройки форумов => Показывать DL-List при просмотре топика => Да
Модификации => Конфигурация => Позвать скачавших => Включено

Создав любой DL-топик без торрент-файла, получим нотис.

Грубо говоря:

Открыть attach_mod\displaying_torrent.php
найти:
PHP:
    'TOR_HELP_LINKS'    => $bb_cfg['tor_help_links'],
добавить после:
PHP:
    'CALL_SEED'        => ($bb_cfg['callseed'] && $tor_reged && !isset($bb_cfg['tor_no_tor_act'][$tor_info['tor_status']])),
Открыть templates\default\viewtopic_torrent.tpl
найти:
PHP:
    <!-- IF $bb_cfg['callseed'] && not SEED_COUNT --><form action="callseed.php?t={TOPIC_ID}" method="post"><input type="submit" value="{L_CALLSEED}" class="liteoption" />&nbsp;</form><!-- ENDIF -->
заменить на:
PHP:
    <!-- IF CALL_SEED -->
        <form action="callseed.php?t={TOPIC_ID}" method="post">&nbsp;<input type="submit" value="{L_CALLSEED}" class="liteoption" /></form>
    <!-- ENDIF -->
Открыть language\lang_russian\lang_callseed.php
найти:
PHP:
$lang['CALLSEED_HAVE_SEED']    = 'Раздача не нуждаются в помощи (<b>Сидеров:</b> %d, <b>Личеров:</b> %d)';
изменить "нуждаются" на "нуждается"

... Ну и поправить саму логику в callseed.php
 
G

Gemini_13

Гость
Phoenix, по багу со статусом надо сделать:
Админка - Технические настройки - Настройки форумов - Изменять статус топика на "Normal" во время удаления торрента с трекера
Выставить "Да"

На счет ЛС "Позвать скачавших", то пусть те, кто на раздачи его получают. Может случится так, что человек ушел с раздачи, но стата еще не обновилась и он ЛС не получит. Но отправку самому себе пофиксил, спс

хз.. может и не все косяки поправили
 

Phoenix

Пользователь
Gemini_13, ...
Эмм... Это решение ничего не даст, т.к. можно создать просто DL-топик. Разговор идет даже не о нотисе, а о неверно работающем условии, которое порождает этот нотис. При отключенной опции "Показывать список источников (seeders/leechers)", а также при нажатии на статистику раздачи, SEED_COUNT в этих случаях будет false. Да и при незарегистрированном торренте или при закрытой раздаче, кнопка будет всегда отображена. Условие в любом случае некорректно.

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

Открыть callseed.php
найти:
PHP:
        if ($row['seeders'] > 2)
        #if ( !in_array($userdata['user_level'], array(ADMIN, MOD)) )
        {
            $seeders = $row['seeders'];
            $leechers = $row['leechers'];
            $msg_error = "HAVE_SEED";
        }

добавить после:
PHP:
        else
        {
 вставить блок сюда
        }
найти блок => вырезать => вставить на место, указанное выше
PHP:
    $sql = "SELECT user_id FROM ". BB_BT_DLSTATUS ." WHERE topic_id = $topic_id AND user_id != {$userdata['user_id']}";
    /*$row = DB()->fetch_rowset($sql);*/
    foreach(DB()->fetch_rowset($sql) as $row)
    {
        $u_id[] = $row['user_id'];
    }
    if (!in_array($t_info['topic_poster'], $u_id))
    {
        $u_id[] = $t_info['topic_poster'];
    }
    array_unique($u_id);
 
    foreach($u_id as $i=>$user_id)
    {
        if ($msg_error != "OK") break;
 
        call_seed($topic_id, $t_info, $user_id);
    }
 
G

Gemini_13

Гость
Phoenix, уже понял... займусь на свежую голову, а на время поставил костыль.
 

JDVU

Пользователь
про косяк с удалением при нескольких торрент файлов в одной раздаче
1. ошибка в коде

Please Login or Register to view hidden text.


204 строка
{postrow.attach.tor_reged.ATTACH_ID} меняем на {postrow.attach.tor_not_reged.ATTACH_ID}

2. не передается type
значение выбранного элемента, например del_torrent, передается в type только из первого элемента select и только в нем. в остальных он не определяется и остается пустым, и ему пофиг что мы на каждый аттач объявляем эту переменную своим именем tor-select-{postrow.attach.tor_not_reged.ATTACH_ID}

ещё есть особенность в таком варианте:
два торрента, зареган и не зареган. отменяю удаление в alert у зареганного торрента и при удалении второго торрента я получаю все первичные значения т.е. удаляется зареганный. надо делать очистку при отмене
 

Phoenix

Пользователь
JDVU,
Проблема с удалением при нескольких торрент-файлов в одной раздаче, заключается в том, что для каждого приаттаченного торрента, зарегистрированного или незарегистрированного создается функция change_torrents(), которая имеет одно и тоже название, но при этом не принимает никаких параметров (т.е. attach_id и type в ней уже определены), выполнение по онклику также будет идентично для этих аттачей, соответственно при аттаче например 3-х торрентов, мы получим на странице 3 функции с одинаковым названием change_torrents(), что и вызывает выполнение самой младшей функции, вне зависимости на каком аттаче мы производим изменения, т.е. значения id и селекта передаются только того аттача, функция которого вызывается первой.

к примеру:

Открыть templates\default\viewtopic_attach.tpl
найти (~189 строка):
PHP:
        function change_torrents()
        {
            ajax.exec({
                action    : 'change_torrent',
                attach_id : {postrow.attach.tor_not_reged.ATTACH_ID},
                type      : $('#tor-select-{postrow.attach.tor_not_reged.ATTACH_ID}').val(),
            });
        }
заменить на:
PHP:
        function change_torrents_{postrow.attach.tor_not_reged.ATTACH_ID}()
        {
            ajax.exec({
                action    : 'change_torrent',
                attach_id : {postrow.attach.tor_not_reged.ATTACH_ID},
                type      : $('#tor-select-{postrow.attach.tor_not_reged.ATTACH_ID}').val(),
            });
        }
найти (~204 строка):
PHP:
&nbsp; <a href="#" onclick="change_torrents($('#tor-{postrow.attach.tor_reged.ATTACH_ID} select').val()); return false;"><input type="submit" value="{L_SUBMIT}" class="liteoption" /></a>
заменить на:
PHP:
&nbsp; <a href="#" onclick="change_torrents_{postrow.attach.tor_not_reged.ATTACH_ID}(); return false;"><input type="submit" value="{L_SUBMIT}" class="liteoption" /></a>

UPD
...по большому счету лучше сделать одну функцию и передавать в нее идентификатор аттача...
 

fly_indiz

Пользователь
Phoenix, респект. Принято, поколдуем.
П.С. написал бы заявочку Николаичу на бета-тестинг.


JDVU, а чего сам не коммитишь правки? ))
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху