Баги TorrentPier II

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

Gemini_13

Гость
Макс Каверин, вечером на чистом движке потестю, сейчас на шашлыки валю :woot:
а вообще да, проверь владельца и права доступа на папки кеша. конкретно последний зареганный - это датастор, проверь эту папку и права на файлы в ней
 
М

Макс Каверин

Гость
Gemini_13, права датастор 777 . Версия TorrenPier II: 2.5 Beta (R463)
владелец 48 48
 
G

Gemini_13

Гость
Макс Каверин, кто такой 48? веб-сервер под каким пользователем?
 
G

Gemini_13

Гость
Недочеты черновиков R505
Недочеты при $bb_cfg['status_of_draft'] = false :

1. Создание черновиков должно быть отключаемым, ибо при текущей логике, пользователи могут плодить черновики без возможности публикации, при этом информации о черновиках в профиле нет, также как и администратор не видит черновики пользователей.
2. Содержимое черновика любого пользователя или администратора, можно получить через профиль => Найти сообщения, а также при нажатии на иконку форума среди списка непрочитанного.
3. Исходя из пункта 2, можно свободно написать в черновик, через кнопку цитаты, после чего черновик появится на главной в последних сообщениях.
4. После редактирования черновика, черновик становится обычной темой.

-------------------------------------------------------------------------
дополнительно:

- Для пользователей, при публикации черновика его дата/время должна меняться на текущую, иначе пользователь может заранее резервировать место для предстоящих тем/релизов задним числом. Для модераторов можно оставить такую возможность.
- Опубликованный черновик не появится на главной в списке форумов в последнем сообщении, если в текущем форуме есть еще черновик любого пользователя по дате новее, чем опубликованный, т.е. будет отображена тема, которая была до публикации черновика, хотя опубликованный черновик может иметь дату новее, чем последняя тема в форуме.
- Если в пустом форуме присутствует чей-нибудь черновик, то отсутствует надпись "В этом форуме пока нет сообщений. Кликните Начать новую тему, и ваше сообщение станет первым."...
- При редактировании заголовка черновика на странице viewforum, к названию приписывается [ Черновик ], которое необходимо удалять перед сохранением, иначе получится [ Черновик ] [ Черновик ]. Т.к. приписка добавляется в viewforum.php => $topic_draft = ($topic['is_draft']) ? $lang['TOPIC_DRAFT'] .' ' : ''; то в viewforum.tpl, перед выводом в поле редактирования можно также добавить .replace('{L_TOPIC_DRAFT} ','') к tt_text = $tt_td.find('.tt-text').text()


Об этой ошибке писалось ранее в списке недочетов, но после отката форума (падения БД) весь список пропал. По мере возможности добавлю список.

UPD.
Ниже под спойлером частичный (что смог вспомнить) список того, что я выкладывал ранее на момент падения форума.
1. При отсутствии форумов и включенной в профиле опции "Скрыть pron форумы", получим нотисы на главной:

Notice: Undefined index: forum in ...\includes\sessions.php on line 806
Warning: Invalid argument supplied for foreach() in ...\includes\sessions.php on line 806

Критической ошибкой назвать нельзя, т.к. сиё можно увидеть только при полном отсутствии форумов, что в обычных условиях исключено.

Открыть includes\sessions.php
найти:
PHP:
            foreach($forums['forum'] as $key => $row)
            {
                if($row['allow_porno_topic']) $excluded[] = $row['forum_id'];
            }

заменить на:
PHP:
            if(isset($forums['forum']))
            {
                foreach($forums['forum'] as $key => $row)
                {
                    if($row['allow_porno_topic']) $excluded[] = $row['forum_id'];
                }
            }

2. При попытке просмотра списка прав доступа в пустой категории (в которой нет форумов), получим большой список одинаковых нотисов:

Notice: Undefined offset: 0 in ...\admin\admin_forumauth_list.php on line 343

Открыть admin\admin_forumauth_list.php
найти:
PHP:
            $selected = ( $forum_rows[0][$forum_auth_fields[$j]] == $forum_auth_const[$k] ) ? ' selected="selected"' : '';

заменить на:
PHP:
            $selected = ( !empty($forum_rows) && $forum_rows[0][$forum_auth_fields[$j]] == $forum_auth_const[$k] ) ? ' selected="selected"' : '';

P.s. по этому пункту можно также реализовать вывод сообщения "Нет форумов".

3. Не переведено описание списка прав доступа при выборе категории.

Открыть language\lang_russian\lang_admin.php
найти строку: $lang['CAT_AUTH_LIST_EXPLAIN']

заменить на:
PHP:
$lang['CAT_AUTH_LIST_EXPLAIN'] = 'Здесь вы можете установить права доступа для каждого форума в этой категории. Вы можете изменить права отдельных форумов с помощью простого или продвинутого режима, нажав на название форума. Кроме того, вы можете установить общие права для всех форумов в этой категории с помощью выпадающего меню в нижней части страницы. Помните, что изменение уровня прав доступа к форумам повлияет на то, какие пользователи смогут выполнять в них различные действия.';

4. Отсутствует описание чистки форумов в админке.

Открыть templates\admin\admin_forum_prune.tpl
найти:
PHP:
<!-- IF L_PRUNE_EXPLAIN -->
<p>{L_FORUM_PRUNE_EXPLAIN}</p>
<!-- ENDIF -->

удалить следующие строки:
PHP:
<!-- IF L_PRUNE_EXPLAIN -->
 
<!-- ENDIF -->

5. При попытке импортировать смайлики с выбранной опцией "Удалить перед импортом существующие смайлики", по окончании процесса получим список нотисов, равный кол-ву смайлов:

Notice: Undefined variable: smiles in ...\admin\admin_smilies.php on line 117

Открыть admin\admin_smilies.php
найти:
PHP:
                if( $smiles[$k] == 1 )

заменить на:
PHP:
                if( isset($smiles[$k]) )

7. Не выведен в ланги заголовок "Перейти к цитируемому сообщению", при наведении на иконку рядом с цитатой. (актуально начиная с ревизии R451+)

Открыть templates\default\page_header.tpl
найти:
PHP:
            q_title += ' <a href="'+ href +'" title="Перейти к цитируемому сообщению"><img src="{SITE_URL}templates/default/images/icon_latest_reply.gif" class="icon2" alt="" /></a>';

заменить на:
PHP:
            q_title += ' <a href="'+ href +'" title="{L_GOTO_QUOTED_POST}"><img src="{SITE_URL}templates/default/images/icon_latest_reply.gif" class="icon2" alt="" /></a>';

открыть language\lang_russian\lang_main.php
добавить:
PHP:
$lang['GOTO_QUOTED_POST'] = 'Перейти к цитируемому сообщению';

открыть language\lang_english\lang_main.php
добавить:
PHP:
$lang['GOTO_QUOTED_POST'] = 'Go to the quoted post';

8. Не выведен в ланги заголовок, при наведении на зеленую область панели YouTube. (актуально начиная с ревизии R450+)

Открыть templates\default\page_header.tpl
найти:
PHP:
            a.innerHTML = '<span title="Начать проигрывание на текущей странице" class="YTLinkButton">&#9658;</span>';

заменить на:
PHP:
            a.innerHTML = '<span title="{L_PLAY_ON_CURPAGE}" class="YTLinkButton">&#9658;</span>';

открыть language\lang_russian\lang_main.php
добавить:
PHP:
$lang['PLAY_ON_CURPAGE'] = 'Начать проигрывание на текущей странице';

открыть language\lang_english\lang_main.php
добавить:
PHP:
$lang['PLAY_ON_CURPAGE'] = 'Start playing on the current page';

9. Не выведены в ланги кнопки, при выборе на главной странице опции "Опции показа".

Открыть templates\default\page_header.tpl
найти:
PHP:
                    <input style="width: 100px;" type="button" onclick="$('input.h-cat-cbx').attr('checked',false); $('input#sec_h_cat').click(); return false;" value="Сбросить">

заменить на:
PHP:
                    <input style="width: 100px;" type="button" onclick="$('input.h-cat-cbx').attr('checked',false); $('input#sec_h_cat').click(); return false;" value="{L_RESET}">

найти:
PHP:
                    <input id="sec_h_cat" type="button" onclick="set_h_cat();" style="width: 100px;" value="Отправить">

заменить на:
PHP:
                    <input id="sec_h_cat" type="button" onclick="set_h_cat();" style="width: 100px;" value="{L_SUBMIT}">

10. При расположении движка не в корне сайта, будут отсутствовать изображения кнопок обновления капчи в окне регистрации и восстановления пароля.

Открыть templates\default\usercp_register.tpl
найти:
PHP:
    <td><span id="refresh_captcha">{CAPTCHA_HTML}</span> <img align="middle" src="/images/pic_loading.gif" title="{L_UPDATE}" onclick="ajax.exec({ action: 'user_register', mode: 'refresh_captcha'}); return false;" /></td>

Открыть templates\default\usercp_sendpasswd.tpl
найти:
PHP:
    <td><span id="refresh_captcha">{CAPTCHA_HTML}</span> <img align="middle" src="/images/pic_loading.gif" title="{L_UPDATE}" onclick="ajax.exec({ action: 'user_register', mode: 'refresh_captcha'}); return false;"></td>

в строках обоих файлов перед /images/pic_loading.gif поставить точку, чтобы получилось src="./images/pic_loading.gif"

11. При расположении движка не в корне сайта, при регистрации и в профиле, в форме генерации пароля будут отсутствовать изображения кнопок закрытия формы и перегенерации. (актуально начиная с ревизии R483+)

Открыть templates\default\css\main.css
найти:
PHP:
    background: url("/images/bad.gif") transparent no-repeat;

заменить на:
PHP:
    background: url("../images/bad.gif") transparent no-repeat;

найти:
PHP:
    background: url("/images/pic_loading.gif") transparent no-repeat;

заменить на:
PHP:
    background: url("../images/pic_loading.gif") transparent no-repeat;

Далее скопировать (продублировать) файлы bad.gif и pic_loading.gif из папки "images" в папку "templates\default\images"

12. Небольшой недочет, когда в аттаче торрента, пустое текстовое поле для комментария при потере фокуса остается пустым. (актуально начиная с ревизии R408+)

Открыть templates\default\viewtopic_attach.tpl
найти:
PHP:
<input type="text" id="comment" onfocus="if(this.value=='{L_COMMENT}') this.value='';" onblur="if(this.value=='') this.value='';" value="{L_COMMENT}" class="hint" />

заменить на:
PHP:
<input type="text" id="comment" onfocus="if(this.value==this.defaultValue || this.className=='hint'){this.value=''; this.className='';}" onblur="if(this.value==''){this.value=this.defaultValue; this.className='hint';}" value="{L_COMMENT}" class="hint" />

P.s. Можно конечно реализовать с использованием placeholder: <input type="text" id="comment" class="hint" placeholder="{L_COMMENT}" /> , но такая конструкция не будет работать в IE и в старых браузерах, т.е. поле будет изначально пустым.

13. Корректировка лангов.

Открыть language\lang_russian\lang_main.php
найти:
0 => 'Не определилось',

заменить на:
0 => 'Не указано',

открыть language\lang_russian\lang_admin.php
найти:
PHP:
$lang['FORUM_AUTH_LIST_EXPLAIN'] = 'Этот модуль дает возможность установить права доступа для каждого форума. Вы можете изменить эти права, простым или расширеным способом, нажав на название форума. Помните, что при изменении прав доступа повлияет на пользователей, выполнять различные операции в них.';

заменить на:
PHP:
$lang['FORUM_AUTH_LIST_EXPLAIN'] = 'Этот модуль дает возможность установить права доступа для каждого форума. Вы можете изменить эти права с помощью простого или продвинутого режима, нажав на название форума. Помните, что изменение прав доступа к форумам повлияет на то, какие пользователи смогут выполнять в них различные действия.';

в ланге $lang['FORUM_AUTH_EXPLAIN'] в конце последнего предложения поставить точку.

найти:
PHP:
$lang['FORUM_AUTH_LIST_EXPLAIN_AUTH_VIEW'] = '%s может просматривать этот форум';
$lang['FORUM_AUTH_LIST_EXPLAIN_AUTH_READ'] = '%s может просматривать сообщения в этом форуме';
$lang['FORUM_AUTH_LIST_EXPLAIN_AUTH_POST'] = '%s может создавать сообщения в этом форуме';
$lang['FORUM_AUTH_LIST_EXPLAIN_AUTH_REPLY'] = '%s может отвечать на сообщения в этом форуме';
$lang['FORUM_AUTH_LIST_EXPLAIN_AUTH_EDIT'] = '%s может редактировать сообщения в этом форуме';
$lang['FORUM_AUTH_LIST_EXPLAIN_AUTH_DELETE'] = '%s может удалять сообщения в этом форуме';
$lang['FORUM_AUTH_LIST_EXPLAIN_AUTH_STICKY'] = '%s может прикреплять темы в этом форуме';
$lang['FORUM_AUTH_LIST_EXPLAIN_AUTH_ANNOUNCE'] = '%s может размещать объявления в этом форуме';
$lang['FORUM_AUTH_LIST_EXPLAIN_AUTH_VOTE'] = '%s может голосовать в опросах этого форума';
$lang['FORUM_AUTH_LIST_EXPLAIN_AUTH_POLLCREATE'] = '%s может создавать опросы в этом форуме';
$lang['FORUM_AUTH_LIST_EXPLAIN_AUTH_ATTACHMENTS'] = '%s может прикреплять вложения';
$lang['FORUM_AUTH_LIST_EXPLAIN_AUTH_DOWNLOAD'] = '%s может скачивать вложения';

в найденных строках после "%s" изменить "может" на "могут".

14. Синтаксическая ошибка на странице из-за запятой перед закрывающими скобками, которая может возникнуть в старых браузерах, например IE...

Открыть templates\default\page_header.tpl
найти и удалить запятую после tz
PHP:
        tz      : tz,
    });

Открыть templates\default\viewforum.tpl
найти и удалить запятую после status
PHP:
        status    : status,
    });

-------------------------------------------------------------------
UPD.
15. При отправке текста в теге "Code", его заголовок "Код:" в постах всегда будет на русском, ибо заносится и считывается из таблицы bb_posts_html ( берется из файла: includes\bbcode.php, строка: <div class="c-head"><b>Код:</b></div> ).

16. При включенных опциях "Позвать скачавших" и "Показывать DL-List при просмотре топика" после удаления торрент файла, при открытии топика будет присутствовать нотис:
Notice: Undefined index: SEED_COUNT in ...\includes\template.php(305) : eval()'d code on line 495
или
Notice: Undefined index: SEED_COUNT in ...\cache\tpl_default_viewtopic_torrent.tpl.php on line 495

Please Login or Register to view hidden text.


Вроде все пофиксил, кроме п.16. Покачто нету возможности его нормально отловить.

UPD: забыл фикс в css проверить, вроде работать не будет..:facepalm:
 
G

Gemini_13

Гость
nord51, ну этот раз по черновикам не так много, других багов хватает :) да и скоро с черновиками закончим, вроде больше багов нету) ...надеюсь)
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху