1

(6 ответов, оставленных в Общие вопросы)

Не исправлен он там sad

И кстати, вопрос вот интересный без внимания оставили: http://punbb.informer.com/forums/topic/ … hardcoded/

2

(4 ответов, оставленных в Расширения v1.3)

Не появлялось ещё похожих расширений?
Мне тоже нужно что-то подобное. Если нету, придется самому писать. Репутация и Спасибо не подходят: нужна привязка к теме, а не к пользователю.

3

(75 ответов, оставленных в Расширения v1.3)

Баг: не обновляется ссылка на последнюю тему и пост, если эту тему удалить. Версия 0.2.

Под 1.3.2 было такое расширение - Post Edit Control. Я его для себя переделал, но на чистом punBB 1.3.4 не проверял. Зато добавлено также ограничение удаления поста.

5

(28 ответов, оставленных в Расширения v1.3)

KANekT пишет:
Ghost пишет:

vt_qr_get_posts сделать отдельную выборку и вывод

то есть ?
запрос 1 поста, а потом как его придепить к массиву остальных элементов?
в 0.1.0 версии я сделал выборку первого сообщения и приделывал его к каждой странице, но потребовался доп хук которого нет в виевтопике... да и получилось очень громоздко.

Да. Но не прикреплять к массиву, а выводить вообще отдельно. И вынести в отдельный functions.php, наверное. Зато не будет таких проблем с запросами smile
Не знаю, правда, какой вариант лучше будет из соображений производительности...

6

(28 ответов, оставленных в Расширения v1.3)

Я как-то так и делал бы. Или сделать отдельным запросом и отдельно выводить. А то как-то страшненько вышло smile

А зачем здесь лишний раз выбирается id первого поста в теме?

                $where1 = 'select id from '.$forum_db->prefix.'posts where topic_id='.$id.' limit '.$forum_page['start_from'].',1';
                $query['WHERE'] .= ' and (p.id=t.first_post_id or (p.id >= ('.$where1.') '.$where2.'))';
    

Добавлено спустя 10 минут 46 секунд:

Поставил в профиле 5 сообщений на страницу и получил ошибку:
Notice: Undefined offset: 1 in F:\www\htdocs\punbb13\viewtopic.php(298) : eval()'d code on line 67

Добавлено спустя 13 минут 58 секунд:

Всё-таки, мне кажется, лучше было бы в vt_qr_get_posts сделать отдельную выборку и вывод, а не цепляться к существующей выборке.

Kushelev пишет:

Модераторы не имеют права переводить пользователей из одной группы в другую.

Есть такое расширение: http://punbb.informer.com/forums/topic/ … ssignment/

8

(28 ответов, оставленных в Расширения v1.3)

Вот бы ещё выделять его как-нибудь...

9

(4 ответов, оставленных в Расширения v1.3)

Пока времени нет sad

10

(21 ответов, оставленных в Расширения v1.3)

Спасибо!

11

(21 ответов, оставленных в Расширения v1.3)

Я хотел намекнуть, что менять версию PHP ради одного расширения - как-то неправильно, если разработчики обещают работоспособность форума на 4.3.0.
Можно написать функцию, которая бы вызывалась для более ранних версий, в статье о json_encode на php.net есть пример.

12

(21 ответов, оставленных в Расширения v1.3)

У меня не работает smile
Firebug говорит, что после каждого запроса новых сообщений происходит следующая ошибка:

<br />
<b>Fatal error</b>:  Call to undefined function json_encode() in <b>F:\www\htdocs\punbb13\misc.php(631) : eval()'d code</b> on line <b>248</b><br />

PHP 5.1.2 (А разработчики говорят, что должно работать и на 4.3.0)

И в чём проблема была? Не в BOM ли?

14

(14 ответов, оставленных в Расширения v1.3)

Решение не очень красивое, поэтому я не знаю, понравится ли вам smile
Суть в том, что показываются первые 10 смайликов из набора, остальные спрятаны в скрытый div, который можно открыть, кликнув на линк "More".

Юзаем Anycodetool, создаём новое решение, в котором будут такие хуки:
pun_bbcode_pre_smilies_output

$pun_bbcode_smiley_index = 0;

pun_bbcode_smilies_output_loop_start

$pun_bbcode_smiley_index++;
        if ($pun_bbcode_smiley_index == 11) {
            ?> <a href="#smileys_hidden_hr" onClick="document.getElementById('smileys_hidden').style.display='block';">More</a><div id="smileys_hidden" style="display:none;"><a id="smileys_hidden_hr"></a> <?php
        }

Здесь число 11 - это порядковый номер смайлика, начиная с которого все остальные будут спрятаны. Когда можно будет сделать полноценное расширение, я эту константу вынесу в настройки.

А теперь - проблема: отсутствие хука в bar.php.
В строке 108, то есть после цикла:

foreach (array_unique($smilies) as $smile_text => $smile_file) {
...
}

нужно добавить следующий код:

    if ($pun_bbcode_smiley_index > 10) {
        ?> </div> <?php
    }

Если что-то не получится - спрашивайте smile

15

(14 ответов, оставленных в Расширения v1.3)

Для себя я уже сделал, а расширение смогу написать, когда добавят запрошенный мною хук в bar.php

16

(14 ответов, оставленных в Расширения v1.3)

Для 1.3.4 что-нибудь подобное существует?

17

(4 ответов, оставленных в Расширения v1.3)

Если не найду, скоро напишу расширение, которое показывает на каждой странице первое сообщение топика.

18

(183 ответов, оставленных в Расширения v1.3)

У меня на форуме пришлось сделать ограничения - делюсь, если кому-нибудь ещё понадобится:

Задача:
1. Запретить пользователям удалять свои сообщения, если со времени публикации прошло более 15 мин, и редактировать, если прошло более 30мин.
2. Запретить пользователям удалять свое сообщение, если оно не последнее в теме
Решение
Создаем решение post_edit_delete_time
Хук 1: vt_row_pre_post_actions_merge

if (!$forum_page['is_admmod']) {
        if ($cur_post['poster_id'] == $forum_user['id']) {
            if ($cur_topic['closed'] == '0') {
                if (isset($forum_page['post_actions']['delete']) && ((time() - $cur_post['posted'] > POST_DELETE_TIME)) || ($forum_page['start_from'] + $forum_page['item_count'] < $cur_topic['num_replies'] + 1)) {
                    unset($forum_page['post_actions']['delete']);
                }
                
                if (isset($forum_page['post_actions']['edit']) && (time() - $cur_post['posted'] > POST_EDIT_TIME)) {
                    unset($forum_page['post_actions']['edit']);
                }
            }
        }
    }

Хук 2: in_start

define('POST_EDIT_TIME', 1800);
define('POST_DELETE_TIME', 900);

Можно обойтись без хука 2, поместив соответствующий код в начало кода хука 1. Просто мне кажется логичным, чтобы все константы объявлялись в одном месте. В данном движке это index.php smile

Добавлено спустя 1 час 7 минут 12 секунд:

Гы, оказывается, уже есть похожее расширение: http://punbb.informer.com/forums/topic/ … it-period/