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

Почините форум…

Автор Wolliger Mensch, апреля 5, 2018, 22:36

0 Пользователи и 1 гость просматривают эту тему.

ashirzhan

Тут вроде все живы, а в группе Тюркские языки кроме меня и TestamentumTartarum больше никого нет. :o :donno:

RawonaM

Цитата: Bhudh от февраля 11, 2019, 23:30
Цитата: RawonaM от Ведь только в SMF сумели это сделать
Один известный здесь форум работает на MyBB и там новые сообщения отслеживаются.
Цитата: wandrien от февраля 12, 2019, 03:56
Цитата: RawonaM от Ведь только в SMF сумели это сделать, для phpBB оказалось непосильной задачей. Хотя может за эти годы что-то изменилось.
Вроде сделано. Там есть "Непрочитанные сообщения" и отдельно "Новые сообщения".
Точно там работает так, что все темы навсегда отслеживаются? Раньше было только с последнего визита или еще какие-то ограничения. Впрочем в MyBB припоминается тоже вроде хорошо отслеживалось, по-моему поэтому я его выбрал для какого-то проекта.

Все-равно было бы интересно если бы кто-то объяснил как это работает, т.к. там по идее огромное количество данных, но как-то это умещается в относительно небольшую таблицу.

Касательно проблемы с редактируемыми сообщениями, я бы порекомендовал посмотреть изменения с 2.0.11 до 2.0.15, ведь после них появилась эта проблема. Я вроде код видел, по-моему там ничего затрагивающего это нет, поэтому я сомневаюсь, что проблема в апдейте, но другого логического объяснения не вижу. Как я уже рекомендовал, попробуйте сбросить непрочитанные сообщения для одного юзера, решит ли это проблему. Если нет, попробовать сбросить для всего форума (чревато гневом форумчан). Тогда если действительно все еще эта проблема еще есть, копаться в коде.

Bhudh

Цитата: RawonaM от февраля 12, 2019, 10:14я бы порекомендовал посмотреть изменения с 2.0.11 до 2.0.15
Цитата: https://download.simplemachines.org/index.php/smf_2-0-15_changelog.txtSMF 2.0.15                                                    November 19, 2017
===============================================================================

September 2017
! Fixed a minor $smcFunc bug in Search-Fulltext.php
! Fixed a saving Settings.php bools being reset bug
! Fixed a security issue (Reported by Daniel Le Gall from SCRT SA)

June 2017
-------------------------------------------------------------------------------
! Cache the admin search results in the session and avoid IE's 2083 character limit
! Fixed a Mark Board Read bug

May 2017
-------------------------------------------------------------------------------
! Fixed Proxy URLs not handling redirects properly due to case sensitivity
! Fixed SendTopic using incorrect Post data
! Fixed SSI.php having a bad login panel
! Fixed Maintenance Page having a double login button
! Fixed a minor unsigned int typo in MySQL DB
! Fixed Deprecated installer message for ftp_connection.
! Fixed a loop bug in custom search
! Fixed SM Stat collection
! Added SM Stat collection registration to the Admin Control Panel

SMF 2.0.14                                                         May 14, 2017
===============================================================================
! Updating session handlers
! Adding HTTPS
! fetch_web_data now uses cURL, falling back to sockets
! Ported image proxy support from SMF 2.1
! Also added HTTPS for avatars
! Added a simple exception handler
! Check session while logging in
! Sanitize some fields to help guard against XSS
! Validate email addresses with PHP's filter method
! Fix search highlighting to not mangle/expose some HTML
! Fix password acceptance when special characters were used in UTF-8;
! Correct some random logic errors in the profile area
! Use ampersands instead of semi-colons for PayPal's return link
! Fix sending multiple MIME-Version headers in notification mail
! Fix sending multipel Content-Type headers in all requests

SMF 2.0.13                                                      January 4, 2017
===============================================================================
! Some file versions didn't get modified in the 2.0.12 patch
! Added check and sanitization for $_REQUEST['u'] in LogInOut.php and Reminder.php
! Added check and sanitization for $_REQUEST['uid'] in Reminder.php
! Properly sanitize author's website for packages
! Added session check when uploading packages
! Added session check when copying template files from one theme to another
! The code to remove empty BBCode was sometimes breaking things (reported by @rjen; fix provided by Sesquipedalian)
! Remove hardcoded limits for safe_unserialize as it was causing cache problems
! Update the cal_max_year setting to 2030

SMF 2.0.12                                                         July 7, 2016
===============================================================================
! Fixed word censor injection by disallowing an empty 'proper word'
! Fixed vulnerable unserialize() code by converting all instances to safe_unserialize()
! Added a more thorough safe_unserialize() function to prevent object injection
! Fixed a bug where leaving a custom profile field blank on registration that has an email mask would throw an error
! Fixed PayPal integration to comply with the new forced SSL
! Fixed a bug where notifications were sent for messages in inaccessible boards
! Fixed editor to make the editor work with Microsoft Edge
! Fixed issue where smiley popup is blank on iOS 9 devices
! Fixed WYSIWYG editor in mobile devices
! Fixed an undefined $_POST['icon'] in Sources/Post.php
! Fixed a minor bug in Login2()
! Fixed an issue where SMF doesn't recognize new domain names and considers these as invalid
! Fixed an issue where SMF would allow empty BBC
! Fixed an issue where theme variants could not be selected
! Fixed an issue where the file version of Subs-Post.php could have been 2.0.8 or 2.0.11. It will be updated to 2.0.12 in either case.
! Updated copyright year to 2016
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

RawonaM

Цитата: Bhudh от февраля 12, 2019, 11:04
! Fixed a Mark Board Read bug
Единственное что бросается в глаза, что может затрагивать эту функциональность, но как-то маловероятно.

Bhudh

Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Bhudh

Но скорее всего вот это:
Цитата: ./Sources/ManageServer.php/**
* Registers the site with the Simple Machines Stat collection. This function
* purposely does not use updateSettings.php as it will be called shortly after
* this process completes by the saveSettings() function.
*
* @see Stats.php SMStats() for more information.
* @link https://www.simplemachines.org/about/stats.php for more info.
*
*/
function registerSMStats()
{
global $modSettings, $boardurl, $smcFunc;

// Already have a key?  Can't register again.
if (!empty($modSettings['sm_stats_key']))
return true;

$fp = @fsockopen('www.simplemachines.org', 80, $errno, $errstr);
if ($fp)
{
$out = 'GET /smf/stats/register_stats.php?site=' . base64_encode($boardurl) . ' HTTP/1.1' . "\r\n";
$out .= 'Host: www.simplemachines.org' . "\r\n";
$out .= 'Connection: Close' . "\r\n\r\n";
fwrite($fp, $out);

$return_data = '';
while (!feof($fp))
$return_data .= fgets($fp, 128);

fclose($fp);

// Get the unique site ID.
preg_match('~SITE-ID:\s(\w{10})~', $return_data, $ID);

if (!empty($ID[1]))
{
$smcFunc['db_insert']('replace',
'{db_prefix}settings',
array('variable' => 'string', 'value' => 'string'),
array('sm_stats_key', $ID[1]),
array('variable')
);
return true;
}
}

return false;
}
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Bhudh

Кстати, а разве в тэге [code] не должно быть подсветки синтаксиса? :what:
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

wandrien

Цитата: RawonaM от февраля 12, 2019, 10:14
Точно там работает так, что все темы навсегда отслеживаются? Раньше было только с последнего визита или еще какие-то ограничения.
С последнего - это как раз "новые". А непрочитанные - я вижу сейчас на своём форуме 20 страниц непрочитанных, начиная с 2012-го года. Как раз примерно в то время серьёзно апгрейдили движок. Думаю, это действительно все.

Цитата: RawonaM от февраля 12, 2019, 10:14
Все-равно было бы интересно если бы кто-то объяснил как это работает, т.к. там по идее огромное количество данных, но как-то это умещается в относительно небольшую таблицу.
Здравый смысл подсказывает, что нужно делать денормализацию и кэшировать результаты в отдельной таблице. В чем-то быстром типа memcached. Ну или в Redis.
Как это сделано в SMF пока не смотрел. Там куча многоэтажных запросов SQL с созданием временных таблиц, и весь код - сплошная простыня на несколько тысяч строк. А - архитектура.

Цитата: RawonaM от февраля 12, 2019, 10:14
Как я уже рекомендовал, попробуйте сбросить непрочитанные сообщения для одного юзера, решит ли это проблему. Если нет, попробовать сбросить для всего форума (чревато гневом форумчан).
Из того, что я разобрал в структуре таблиц - "простое" (автоматическое) отслеживание прочитанного и ручное - это 2 разных механизма. Глючит именно первое, поэтому второе не поможет.
Там есть отдельные таблицы для данных вида "тема отмечена прочитанной" и "раздел отмечен прочитанным". Их обработка не затрагивает отслеживание прочитанного при обычном открытии топика.

Цитата: RawonaM от февраля 12, 2019, 10:14
Касательно проблемы с редактируемыми сообщениями, я бы порекомендовал посмотреть изменения с 2.0.11 до 2.0.15, ведь после них появилась эта проблема. Я вроде код видел, по-моему там ничего затрагивающего это нет, поэтому я сомневаюсь, что проблема в апдейте, но другого логического объяснения не вижу.
Я тоже смотрел и тоже ничего криминального не заметил. Посмотрю сегодня еще.

Самое неприятное, что не получается воспроизвести баг на тестовом конфиге. То ли он воспроизводится только под существенной нагрузкой, то ли при определённом сочетании настроек форума.

wandrien

Цитата: Bhudh от февраля 12, 2019, 11:52
Кстати, а разве в тэге [code] не должно быть подсветки синтаксиса? :what:
Черт знает, но если её нет в движке, можно прикрутить готовое стороннее решение на JS, благо их полно.

wandrien

Цитата: Bhudh от февраля 12, 2019, 11:51
Но скорее всего вот это
Это что-то связанное с:

! Fixed SM Stat collection
! Added SM Stat collection registration to the Admin Control Panel

RawonaM

Цитата: wandrien от февраля 12, 2019, 11:54
Из того, что я разобрал в структуре таблиц - "простое" (автоматическое) отслеживание прочитанного и ручное - это 2 разных механизма. Глючит именно первое, поэтому второе не поможет.
Там есть отдельные таблицы для данных вида "тема отмечена прочитанной" и "раздел отмечен прочитанным". Их обработка не затрагивает отслеживание прочитанного при обычном открытии топика.
Не понял как эти два типа различаются? Как это не затрагивает, если топик помечается прочитанным, когда заходишь в топик? Я тут тоже попробовал посмотреть, зашел в одну тему, а в таблице ничего не изменилось. Где же эта инфа?
Я вижу только log_mark_read, есть еще какая-то таблица?


RawonaM

Вот например что говорит такая запись в log_mark_read:
Цитировать
id_boardid_memberid_msg
47623111220
?

Member 2 это я. Сообщение 3111220 вообще не в боарде 476. Других записей про этот боард нет, хотя там часть у меня прочитана, часть нет.

Bhudh

Цитата: wandrien от февраля 12, 2019, 12:00Это что-то связанное с:

! Fixed SM Stat collection
А что это, кстати, вообще за хрень, введённая, кстати, именно в 2.0.15?
SMF-овский аналог вендовской телеметрии?
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

wandrien

Цитата: RawonaM от февраля 12, 2019, 12:02
Не понял как эти два типа различаются? Как это не затрагивает, если топик помечается прочитанным, когда заходишь в топик?
Интерфейсно суть одна, а механика под капотом разная.

Цитата: RawonaM от февраля 12, 2019, 12:02
Где же эта инфа? Я вижу только log_mark_read, есть еще какая-то таблица?

log_mark_read
log_topics
log_boards

И временная таблица: log_topics_unread

wandrien

Цитата: Bhudh от февраля 12, 2019, 12:12
SMF-овский аналог вендовской телеметрии?
Ага.
Все погромисты очень хотят о нас всё знать.

Bhudh

Цитата: wandrien от февраля 12, 2019, 12:15Все погромисты очень хотят о нас всё знать.
Может, потереть этот патч к чертям собачьим?
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

wandrien

Цитата: Bhudh от февраля 12, 2019, 12:19
Цитата: wandrien от февраля 12, 2019, 12:15Все погромисты очень хотят о нас всё знать.
Может, потереть этот патч к чертям собачьим?
Оно вроде отключается в настройках.

mnashe

Цитата: wandrien от февраля 12, 2019, 11:56
Черт знает, но если её нет в движке, можно прикрутить готовое стороннее решение на JS, благо их полно.
Ну или просто [spoiler][php][/php][/spoiler].
Адепт единственного числа и безродового склонения
שָׁלוֹם עֲלֵיכֶם!

Bhudh

Цитата: wandrien от февраля 12, 2019, 12:20Оно вроде отключается в настройках.
Ну хвала магистрам, не полный аналог...
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

RawonaM

Цитата: mnashe от февраля 12, 2019, 12:20
Цитата: wandrien от Черт знает, но если её нет в движке, можно прикрутить готовое стороннее решение на JS, благо их полно.
Ну или просто .
Да, php тэг работает.

wandrien

Цитата: wandrien от февраля 12, 2019, 11:54
Из того, что я разобрал в структуре таблиц - "простое" (автоматическое) отслеживание прочитанного и ручное - это 2 разных механизма.
Почитал код.
Вроде, был не прав.

Но тогда таблица log_mark_read остаётся загадкой. Буду копать дальше.

wandrien

Нашел пасхалку.


   // You are not!
   if (isset($_POST['message']) && strtolower($_POST['message']) == 'i am the administrator.' && !$user_info['is_admin'])
      fatal_error('Knave! Masquerader! Charlatan!', false);


RawonaM


Bhudh

Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Быстрый ответ

Обратите внимание: данное сообщение не будет отображаться, пока модератор не одобрит его.

Имя:
Имейл:
Проверка:
Оставьте это поле пустым:
Наберите символы, которые изображены на картинке
Прослушать / Запросить другое изображение

Наберите символы, которые изображены на картинке:

√36:
ALT+S — отправить
ALT+P — предварительный просмотр