101

Re: PanBB 1.4.6. Запросы и предложения функций

Идея такая; $matches[2]

Если статус не определён, то под аватарой пишется название группы. Если юзер не входит в группу, то пишется его ранг.

Проблема; ранг определяется кол. сообщений, в группу зачисляет администратор\модератор, а Статус можно самому прописать. PunBB_INFO_ICQ/crasy
Ситуация; новозарегистрированный с 1-2 сооб. пишет в статусе V.I.P. и это отображается на форуме.

Понятно, что человек не обладает дополнительными правами из группы V.I.P. персон (если таковая имеется)... лишь тешит себя. Но для постояльцев форума неприятна такая спесь!

Банить дурака - уподобляться ему...
Вот и предлагаю забыть про Статус в PanBB 1.4.6 или же развести по разным местам. Названия групп\рангов будут напр. над, а статус - под аватаркой.

+ с функцией статуса справляется Подпись... в ней любой может самовыразиться как душе угодно. PunBB_INFO_ICQ/wink

1

102

Re: PanBB 1.4.6. Запросы и предложения функций

Спасибо за предложение. Возможно удалять мы не будем, а добавим несколько пунктов с выпадающим списком для выбора статуса. Например:

Отошел
Занят
Не беспокоить
Готов пообщаться

и тд и тп

$matches[2]

До осени еще есть время подумать что и как, затем процедим все запросы и выпустим для тестирования 146 со всеми новшествами.

103 (edited by evmir_troll-hunter 2018.06.05 13:38)

Re: PanBB 1.4.6. Запросы и предложения функций

Ok, главное чтобы слово(а) из статуса не перекрывало названия груп\рангов.  PunBB_INFO_ICQ/whipped Иначе в них нет смысла - юзер не видит и не знает, что его вкл. допустим в ту или иную группу.

104

Re: PanBB 1.4.6. Запросы и предложения функций

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

Например, на нашем форуме пользователь создал тему с вопросом, который следовало бы задавать в теме соответствующего расширения. за время отсутствия модератора или админа на форуме уже раздули эту тему и выложили решение проблемы.
Вот здесь как раз таки и понадобилась бы такая функция для слияния сообщений двух тем.

105

Re: PanBB 1.4.6. Запросы и предложения функций

Обрезание аватарок с выбором зоны перед установкой.

1

106

Re: PanBB 1.4.6. Запросы и предложения функций

Интересная идея  PunBB_INFO_ICQ/thumbsup
В принципе уже есть готовые скрипты реализующие эту возможность на jQuery.
Только библиотека не подключена в коробке, нужно вначале установить расширение.

Думаю, что в виде расширения было бы неплохо, а точнее у нас уже есть в репозитории  Resize Avatar, просто можно его усовершенствовать.

Вот к примеру скрипт
https://andreyex.ru/blog-platforma-word … -js-i-php/

107

Re: PanBB 1.4.6. Запросы и предложения функций

CL1FF wrote:

Ошибку при Предсмотре больше не выдает, но ошибка с [ list ] все еще осталась.

Попробуйте этот вариант парсера:

This content is available only to registered users.

108

Re: PanBB 1.4.6. Запросы и предложения функций

sempai wrote:

этот вариант парсера:

А это из какой тумбочки?  PunBB_INFO_ICQ/smile  (ыы, мне сейчас некогда экспериментировать, просто любопытно - парсер другой какой-то PunBB_INFO_ICQ/cool )

109

Re: PanBB 1.4.6. Запросы и предложения функций

kisa, в последнем парсере подправил пару функций.

На PHP 7.0 ошибки list исчезли, хорошо бы ктонить попробовал на более поздних версиях.

110

Re: PanBB 1.4.6. Запросы и предложения функций

sempai, а что ты правил? Можешь выложить изменения?

$matches[2]

я имею ввиду сам код, что на что заменил  PunBB_INFO_ICQ/smile

111 (edited by sempai 2018.05.14 05:49)

Re: PanBB 1.4.6. Запросы и предложения функций

58-ю строку комментируем:

//$replace_callback = 'preparse_list_tag($matches[2], $matches[1], $errors)';

61-ю строку изменяем:

было

function($matches, $errors) {

стало

function ($matches) use ($errors) {


537-ю строку комментируем:

//$replace_callback = 'preparse_list_tag($matches[2], $matches[1], $errors)';

540-ю строку именяем:

было

$callback = function($matches, $errors) {

стало

function ($matches) use ($errors) {

2

112

Re: PanBB 1.4.6. Запросы и предложения функций

Good PunBB_INFO_ICQ/thumbsup
Только не пойму, куда подевался колбэк в 540й строке? PunBB_INFO_ICQ/scratch
Можешь пояснить  PunBB_INFO_ICQ/help

113

Re: PanBB 1.4.6. Запросы и предложения функций

PunBB, "скрипач не нужен"  PunBB_INFO_ICQ/no .

А если серьезно, то зачем он там нужен, в какую функцию эти переменные ($callback) возврвщаются?  PunBB_INFO_ICQ/pardon

114

Re: PanBB 1.4.6. Запросы и предложения функций

Я бы даже пошел еще дальше.

В функции preparse_list_tag, вывод ошибок - является лишним элементом (не откуда им там взяться), все ошибки проверяются парсером на начальном этапе.


Следовательно

function preparse_list_tag($content, $type = '*', &$errors)

Можно заменить на

function preparse_list_tag($content, $type = '*')

и подчистить весь остальной код:

Было

function ($matches) use ($errors) {
     return preparse_list_tag($matches[2], $matches[1], $errors);
}

Стало

function ($matches) {
     return preparse_list_tag($matches[2], $matches[1]);
}

Тоже самое с кодом на 61-63 строках

function ($matches) {
     return preparse_list_tag($matches[2], $matches[1]);
}

115

Re: PanBB 1.4.6. Запросы и предложения функций

Ок. Отличная работа! Попробую добавить в PanBB 1.4.6 версию, кто сможет, протестируйте на php 7.2

$matches[2] PunBB_INFO_ICQ/scratch

$matches[2]

evmir_troll-hunter wrote:

Ситуация; новозарегистрированный с 1-2 сооб. пишет в статусе V.I.P. и это отображается на форуме.

Понятно, что человек не обладает дополнительными правами из группы V.I.P. персон (если таковая имеется)... лишь тешит себя. Но для постояльцев форума неприятна такая спесь!

Отклонено. Пока есть решение - настроить права в группе пользователей
https://punbb.softplaza.net/uploads/images/2018/07/94bbb8df8040b2f333c03a0bdf32dd51.png

116

Re: PanBB 1.4.6. Запросы и предложения функций

И это оптимально.

117

Re: PanBB 1.4.6. Запросы и предложения функций

В post.php, строки 567 - 568, находится следующий код:

'WHERE'      => 'topic_id='.$tid,
'ORDER BY'   => 'id DESC',

Запрос целиком:

// Get posts to display in topic review
   $query = array(
      'SELECT'   => 'p.id, p.poster, p.message, p.hide_smilies, p.posted',
      'FROM'      => 'posts AS p',
      'WHERE'      => 'topic_id='.$tid,
      'ORDER BY'   => 'id DESC',
      'LIMIT'      => $forum_config['o_topic_review']
   );

   ($hook = get_hook('po_topic_review_qr_get_topic_review_posts')) ? eval($hook) : null;
   $result = $forum_db->query_build($query) or error(__FILE__, __LINE__);

Если расширить запрос, используя выше указанный хук po_topic_review_qr_get_topic_review_posts, добавить какую либо таблицу (использовать JOIN), получим дубликаты столбцов id и topic_id. На выходе ошибка PHP.

Для исправления, нужно добавить в эти строки присвоенный идентификатор, вот так:

'WHERE'      => 'p.topic_id='.$tid,
'ORDER BY'   => 'p.id DESC',

1

118

Re: PanBB 1.4.6. Запросы и предложения функций

@sempai, а в других запросах используется подобный префикс?

Проследив запросы в нескольких файлах, понял что политика PunBB такова:
Если используется префикс для таблицы, то он должен использоваться во всех запросах.
Если не используется для таблицы, то не используется и для запроса.

Запрос принят. А так же обнаружено подобное в строках 258 и 557

$matches[2]

В общем нужно теперь весь движок перелопатить и просмотреть все файлы где встречаются подобные запросы  PunBB_INFO_ICQ/whipped  PunBB_INFO_ICQ/whipped  PunBB_INFO_ICQ/whipped

119

Re: PanBB 1.4.6. Запросы и предложения функций

@PunBB, в других местах не проверял, а об это конкретно споткнулся, при написании расширения.
Явный брак создателей движка!

120

Re: PanBB 1.4.6. Запросы и предложения функций

@sempai, спасибо, что написал об этом. Теперь, кто бы мог просмотреть все файлы движка и сверить все одиночные запросы, то есть везде ли присутствует префикс, когда он определен для данной таблицы.

$matches[2]

То есть, нужно выполнить простую работу с помощью поиска в файле следующего ключа:

'FROM'

Вот на примере таблицы с периксом p. для постов:

      'FROM'      => 'posts AS p',

соответственно во всех значениях выборки колонок должны стоять префиксы:

    'SELECT'   => 'p.id, p.poster, p.message, p.hide_smilies, p.posted',

Если префиксы не проставлены в некоторых запросах, например, как уже было показано выше:

      'WHERE'      => 'topic_id='.$tid,
      'ORDER BY'   => 'id DESC',

то следует выписать строки и сообщить в эту тему, пока еще готовим выпуск 1.4.6.

Зараннее благодарен за любые усилия помочь проекту.  PunBB_INFO_ICQ/thumbsup

121

Re: PanBB 1.4.6. Запросы и предложения функций

@PunBB, правки ошибочных запросов, найденных в 1.4.4


This content is available only to registered users.

1

122

Re: PanBB 1.4.6. Запросы и предложения функций

Гениально PunBB_INFO_ICQ/thumbsup  как доползу до ноута, гляну и внесу в 1.4.6.

123

Re: PanBB 1.4.6. Запросы и предложения функций

@PunBB,  see line 534 in search_functions.php  PunBB_INFO_ICQ/shock

124 (edited by PunBB 2018.07.17 05:54)

Re: PanBB 1.4.6. Запросы и предложения функций

PunBB_INFO_ICQ/shock  PunBB_INFO_ICQ/shock  PunBB_INFO_ICQ/shock

'ORDER BY'   => 'pposted DESC'

Как оно работало не понятно мне  PunBB_INFO_ICQ/wall

$matches[2]

Вот полностью эта область show_user_posts:

      case 'show_user_posts':
         $query = array(
            'SELECT'   => 'p.id AS pid, p.poster AS pposter, p.posted AS pposted, p.poster_id, p.message, p.hide_smilies, t.id AS tid, t.poster, t.subject, t.first_post_id, t.posted, t.last_post, t.last_post_id, t.last_poster, t.num_replies, t.forum_id, f.forum_name',
            'FROM'      => 'posts AS p',
            'JOINS'      => array(
               array(
                  'INNER JOIN'   => 'topics AS t',
                  'ON'         => 't.id=p.topic_id'
               ),
               array(
                  'INNER JOIN'   => 'forums AS f',
                  'ON'         => 'f.id=t.forum_id'
               ),
               array(
                  'LEFT JOIN'      => 'forum_perms AS fp',
                  'ON'         => '(fp.forum_id=f.id AND fp.group_id='.$forum_user['g_id'].')'
               )
            ),
            'WHERE'      => '(fp.read_forum IS NULL OR fp.read_forum=1) AND p.poster_id='.$value,
            'ORDER BY'   => 'pposted DESC'
         );
         $url_type = $forum_url['search_user_posts'];
         $search_id = $value;
         $show_as = 'posts';
         ($hook = get_hook('sf_fn_generate_action_search_query_qr_get_user_posts')) ? eval($hook) : null;
         break

Вот, смотри сюда:

SELECT'   => 'p.id AS pid, p.poster AS pposter

...видно так было задумано  PunBB_INFO_ICQ/pardon

125

Re: PanBB 1.4.6. Запросы и предложения функций

Извращенцы  PunBB_INFO_ICQ/wall

126

Re: PanBB 1.4.6. Запросы и предложения функций

Всем стоять-бояться!   PunBB_INFO_ICQ/bigsmile
Есть идея - нет икеи.. Короче, я не знаю как это сделать, но есть идея по внедрению особых и глубоко извращенных видов бана на форуме.  Идея заключается в том, что у каждого юзера есть некий ID в системе гугла (смотрите счетчики-онлайн) Вотпо этому самому ID и предлагаю выпилить фигурным лобзиком и банить. Вопрос у меня - как его выдернуть у юзера?  Гугл свои скрипты вряд ли отдает, а этот ID  в кукисах походу висит и как-то привязывается к конкретному браузеру. По крайней мере, рекламные сети эти ID "слизывают" как-то и подсовывают рекламу на основе интересов.
Или есть еще какие-то специфические варианты в мировой практике?

$matches[2]

А вот.... если поискать по FingerprintJS  можно немного понять о чем я...

127

Re: PanBB 1.4.6. Запросы и предложения функций

Продолжаются жалобы на потерю нечитанных тем....

128

Re: PanBB 1.4.6. Запросы и предложения функций

@kirpich, эта статейка свернула мой мозг в смятку  PunBB_INFO_ICQ/crasy

не знаю, поднастроил по максимуму Fancy Stop Spam, пока полет нормальный.

$matches[2]

kisa wrote:

Продолжаются жалобы на потерю нечитанных тем

@kisa, согласен, жалуюсь. Вот буквально недавно пропустил несколько сообщений  PunBB_INFO_ICQ/whipped


$matches[2]

Мне удалось обнаружить, что после разлогинивания пользователя выполняется сброс информации о непрочитанных сообщениях.
Но не только в этом причина. За последние 3 дня на этом форуме не выходил из системы, а сообщения пометились как прочитанные  PunBB_INFO_ICQ/dontknow


$matches[2]

Есть подозрение, что это может быть из за расширения, которое выполняет аякс запросы, когда длительное время открыт браузер...
Но как он может помечать сообщения прочитанными  PunBB_INFO_ICQ/scratch вот это загадка

129

Re: PanBB 1.4.6. Запросы и предложения функций

PunBB wrote:

свернула мой мозг в смятку

Да вроде все понятно... если "жарим" идентификатор самостоятельно, то его нужно дописать в базу или вообще вместо IP и собственно по нему и банить как это делается с баном по IP

130

Re: PanBB 1.4.6. Запросы и предложения функций

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

131 (edited by PunBB 2018.07.21 00:57)

Re: PanBB 1.4.6. Запросы и предложения функций

В любом случае, данное расширение очень помогает тем, кто заходит на форум с разных браузеров или устройств. Помню, раньше приходилось по десять раз просматривать уже прочитанные сообщения.  PunBB_INFO_ICQ/whipped

Скорее всего это баг либо самого расширения, которое не настроено пока еще должным образом, либо влияние какого то другого расширения.  PunBB_INFO_ICQ/dontknow

У меня компом иногда пользуется жена, а там браузер с форумом постоянно открыт, так как ноут всегда в спящем режиме. Вряд ли темы помечаются просто из за того, что на форум вошли одновременно с двух браузеров... PunBB_INFO_ICQ/pardon

132

Re: PanBB 1.4.6. Запросы и предложения функций

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

133

Re: PanBB 1.4.6. Запросы и предложения функций

@kisa, все проще. При разлогине выполняется часть вот этого кода из файла login.php:

// Logout
else if ($action == 'out')
{
   if ($forum_user['is_guest'] || !isset($_GET['id']) || $_GET['id'] != $forum_user['id'])
   {
      header('Location: '.forum_link($forum_url['index']));
      exit;
   }

   // We validate the CSRF token. If it's set in POST and we're at this point, the token is valid.
   // If it's in GET, we need to make sure it's valid.
   if (!isset($_POST['csrf_token']) && (!isset($_GET['csrf_token']) || $_GET['csrf_token'] !== generate_form_token('logout'.$forum_user['id'])))
      csrf_confirm_form();

   ($hook = get_hook('li_logout_selected')) ? eval($hook) : null;

   // Remove user from "users online" list.
   $query = array(
      'DELETE'   => 'online',
      'WHERE'      => 'user_id='.$forum_user['id']
   );

   ($hook = get_hook('li_logout_qr_delete_online_user')) ? eval($hook) : null;
   $forum_db->query_build($query) or error(__FILE__, __LINE__);

   // Update last_visit (make sure there's something to update it with)
   if (isset($forum_user['logged']))
   {
      $query = array(
         'UPDATE'   => 'users',
         'SET'      => 'last_visit='.$forum_user['logged'],
         'WHERE'      => 'id='.$forum_user['id']
      );

      ($hook = get_hook('li_logout_qr_update_last_visit')) ? eval($hook) : null;
      $forum_db->query_build($query) or error(__FILE__, __LINE__);
   }

   $expire = time() + 1209600;
   forum_setcookie($cookie_name, base64_encode('1|'.random_key(8, false, true).'|'.$expire.'|'.random_key(8, false, true)), $expire);

   // Reset tracked topics
   set_tracked_topics(null);

   ($hook = get_hook('li_logout_pre_redirect')) ? eval($hook) : null;

   redirect(forum_link($forum_url['index']), $lang_login['Logout redirect']);
}

Почти в конце выполняется эта функция

   // Reset tracked topics
   set_tracked_topics(null);

она то и сбрасывает по ходу. Попробуй ее закоментировать и выйти...

134

Re: PanBB 1.4.6. Запросы и предложения функций

Аааа... Сейчас боюсь мудрить PunBB_INFO_ICQ/bigsmile
А напуркуа такое сделано? PunBB_INFO_ICQ/whipped

135

Re: PanBB 1.4.6. Запросы и предложения функций

Сейчас на этом форуме, вдруг обнаружил несколько сообщений за вчерашний день. Индикации о новых сообщениях не было  PunBB_INFO_ICQ/wall  Раньше такого вроде не случалось, или я просто не обращал внимания...

136

Re: PanBB 1.4.6. Запросы и предложения функций

пока не понятно каким макаром они пропадают, есть только догадки. Копаем, копаем, копаем...

137

Re: PanBB 1.4.6. Запросы и предложения функций

Напишу тогда и здесь, чтоб не забыть PunBB_INFO_ICQ/smile
Когда юзер пишет пост, сообщение дублируется столько раз, сколько юзер сделает нажатий на Отправить. Лечится некоторыми расширениями, таймаутами (как на этом форуме), но баг достаточно серьезный, чтоб быть зафикшенным в ванильной версии движка, кмк. Не знаю, влияет ли, но у меня воспроизводится на БД SQLite 3.

138

Re: PanBB 1.4.6. Запросы и предложения функций

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

1

139

Re: PanBB 1.4.6. Запросы и предложения функций

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

140

Re: PanBB 1.4.6. Запросы и предложения функций

@evgeniya-sm,


https://punbb.softplaza.net/uploads/images/2018/10/9f4418477adb567891fca8769bfdba87.png


https://punbb.softplaza.net/uploads/images/2018/10/bd10f7892d8800133e275091c4af443c.jpg

141

Re: PanBB 1.4.6. Запросы и предложения функций

Спс Семпай, я только день форум поставила и не увидела этого.

142

Re: PanBB 1.4.6. Запросы и предложения функций

Рассмотреть создание группы на основе модераторской.
Если предлагали, то прощу прощения.  Подфорумы встроенную функцию в сам движок.

143

Re: PanBB 1.4.6. Запросы и предложения функций

aleksandr-shekhovtsov wrote:

создание группы на основе модераторской.

Так при создании группы вроде можно выбрать группу на основании которой вы и создаете новую  PunBB_INFO_ICQ/scratch

Подфорумы, как минимум 3 варианта есть на форуме

1

144

Re: PanBB 1.4.6. Запросы и предложения функций

PunBB wrote:

Так при создании группы вроде можно выбрать группу на основании которой вы и создаете новую  PunBB_INFO_ICQ/scratch

Подфорумы, как минимум 3 варианта есть на форуме

Здравствуйте у меня возник такой вопрос. Почему нет функции  "закрепить тему"  PunBB_INFO_ICQ/cray  Я хочу закрепить тема с правилой внутри раздела но такой функции не нашел.  Видел только перенести,  разделить,  обединить, удалить но закрепить нету  PunBB_INFO_ICQ/cray

145

Re: PanBB 1.4.6. Запросы и предложения функций

@lexypanin35, вы можете пометить тему с правилами как важную и она всегда будет на первой странице.

146

Re: PanBB 1.4.6. Запросы и предложения функций

Есть идея дополнить форум одной интересной функцией или расширением.
Гость не заходя в тему, а находясь на главной странице форум может открыть выпадающее окно и задать анонимный вопрос без ввода адреса почты, после чего администратор или модератор проверяет текст и публикует его от имени какого-то ранее подготовленного аккаунта... Указав конечно же название темы самостоятельно или разместив в виде поста в какой-то уже открыой теме.
Видел такую фичу на одном ресурсе, весьма способствует к активации активности  PunBB_INFO_ICQ/thumbsup

1

147

Re: PanBB 1.4.6. Запросы и предложения функций

PunBB_INFO_ICQ/scratch возможно, прикольно, но не в движок же такое. Это для расширения идея.

148

Re: PanBB 1.4.6. Запросы и предложения функций

@kisa, согласен, расширение

149

Re: PanBB 1.4.6. Запросы и предложения функций

Создание статичных страниц админом не помешало бы.

1

150 (edited by PunBB 2019.09.22 07:57)

Re: PanBB 1.4.6. Запросы и предложения функций

@den, для скорости сайта или архивного форума это было бы идеальное решение  PunBB_INFO_ICQ/thumbsup (пример здесь, старого русского сообщества), но на живом форуме статичные страницы не отображают например пользователей онлайн, кто читает тему, статистику. Хотя может показаться не очень важным на первый взгляд, информация могла бы вводить посетителей в заблуждение.

Хотя если использовать для резервного просмотра форума, например, когда бд недоступна, то посетитель получит хоть какую то информацию.