Author Topic: «Нельзя отредактировать это сообщение, поскольку время, отведенное на редактиров  (Read 407 times)

0 Members and 1 Guest are viewing this topic.

Offline wandrien

  • Posts: 4504
«Нельзя отредактировать это сообщение, поскольку время, отведенное на редактирование, истекло.»

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

У меня есть навыки программирования, линукс-машина и достаточно злости на это вредное насекомое. У вас есть хостинг с бажным кодом. Ты на суше, я на море — нам не встретимся никак?
Умело сочетаю отсутствие каких-либо талантов с отсутствием жизненных целей.

Мне нечего сказать миру - я не разговариваю с вымышленными персонажами.

Ваша свобода находится здесь и сейчас, прямо под слоем эмоций.

Offline Bhudh

  • Posts: 48197
  • aka 蝎
    • Сайты по языкознанию
У вас есть хостинг с бажным кодом.
Ну хостинг-то тут при чём?
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Offline wandrien

  • Posts: 4504
У вас есть хостинг с бажным кодом.
Ну хостинг-то тут при чём?
При том, что у него есть владелец. Ну а дальше по газмановской песне...
Умело сочетаю отсутствие каких-либо талантов с отсутствием жизненных целей.

Мне нечего сказать миру - я не разговариваю с вымышленными персонажами.

Ваша свобода находится здесь и сейчас, прямо под слоем эмоций.

Offline Bhudh

  • Posts: 48197
  • aka 蝎
    • Сайты по языкознанию
Если баг в коде движка, который можно установить на любой удовлетворяющий его требованиям сервер — какая разница, какой хостер содержит этот сервер и кто его владелец?
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Offline wandrien

  • Posts: 4504
Да, что-то я позабыл, на каком я сайте общаюсь.

— Я правильно интерпретирую семантику вопроса, но полностью игнорирую его суть.
— Не могли бы вы привести пример?
— Мог бы.
Умело сочетаю отсутствие каких-либо талантов с отсутствием жизненных целей.

Мне нечего сказать миру - я не разговариваю с вымышленными персонажами.

Ваша свобода находится здесь и сейчас, прямо под слоем эмоций.

Offline RawonaM

  • Posts: 42023
Quote from: wandrien
У меня есть навыки программирования, линукс-машина и достаточно злости на это вредное насекомое. У вас есть хостинг с бажным кодом. Ты на суше, я на море — нам не встретимся никак?
В чем проблема? Идете на сайт движка, ссылка внизу страницы, патчите, сабмитите и ждете когда выйдет релиз, затем ЛФ обновится.

Offline wandrien

  • Posts: 4504
Quote from: wandrien
У меня есть навыки программирования, линукс-машина и достаточно злости на это вредное насекомое. У вас есть хостинг с бажным кодом. Ты на суше, я на море — нам не встретимся никак?
В чем проблема? Идете на сайт движка, ссылка внизу страницы, патчите, сабмитите и ждете когда выйдет релиз, затем ЛФ обновится.
Я не настолько заинтересован в этом фиксе, чтобы идти длинным путём через разработчиков и багтрекер. Если учесть возраст бага, можно предположить, что этот фикс могут принять примерно никогда.
Очевидно, вы также не настолько заинтересованы в этом фиксе, чтобы накатывать патчи не от разработчиков.

Ок, вопрос прояснён.
Умело сочетаю отсутствие каких-либо талантов с отсутствием жизненных целей.

Мне нечего сказать миру - я не разговариваю с вымышленными персонажами.

Ваша свобода находится здесь и сейчас, прямо под слоем эмоций.

Offline RawonaM

  • Posts: 42023
Quote from: wandrien
У меня есть навыки программирования, линукс-машина и достаточно злости на это вредное насекомое. У вас есть хостинг с бажным кодом. Ты на суше, я на море — нам не встретимся никак?
В чем проблема? Идете на сайт движка, ссылка внизу страницы, патчите, сабмитите и ждете когда выйдет релиз, затем ЛФ обновится.
Я не настолько заинтересован в этом фиксе, чтобы идти длинным путём через разработчиков и багтрекер. Если учесть возраст бага, можно предположить, что этот фикс могут принять примерно никогда.
Очевидно, вы также не настолько заинтересованы в этом фиксе, чтобы накатывать патчи не от разработчиков.
Почему ж нет, оттуда можете взять код и пофискить, пришлите нам патч, скорее всего это будет насколько маленькое изменение, что код можно запостить в этой теме.


Я так и не смог понять, какая логика у этого чуда инженерной мысли, которое повторяетс 4 раза в одном файле.

if ($row['approved'] && !empty($modSettings['edit_disable_time']) && $row['poster_time'] + ($modSettings['edit_disable_time'] + 5) * 60 < time())
               fatal_lang_error('modify_post_time_passed', false);
            elseif ($row['id_member_poster'] == $user_info['id'] && !allowedTo('modify_own'))
               isAllowedTo('modify_replies');
            else
               isAllowedTo('modify_own');

Offline Bhudh

  • Posts: 48197
  • aka 蝎
    • Сайты по языкознанию
Когда экономят на булевых переменных…
'can_modify' => (!$context['is_locked'] || allowedTo('moderate_board')) && (allowedTo('modify_any') || (allowedTo('modify_replies') && $context['user']['started']) || (allowedTo('modify_own') && $message['id_member'] == $user_info['id'] && (empty($modSettings['edit_disable_time']) || !$message['approved'] || $message['poster_time'] + $modSettings['edit_disable_time'] * 60 > time())))
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Offline wandrien

  • Posts: 4504
Воа!

Интересно. Поискал код, который определяет, показывать ли кнопку правки поста.
https://github.com/SimpleMachines/SMF2.1/search?utf8=✓&q='can_modify'&type=

Вот такое условие:
Code: [Select]
(!$context['is_locked'] || allowedTo('moderate_board')) && (allowedTo('modify_any') || (allowedTo('modify_replies') && $context['user']['started']) || (allowedTo('modify_own') && $message['id_member'] == $user_info['id'] && (empty($modSettings['edit_disable_time']) || !$message['approved'] || $message['poster_time'] + $modSettings['edit_disable_time'] * 60 > time())))
(Мда, с таким стилем и обфускатор не нужен.)
Что превращается в:
Code: [Select]
(!$context['is_locked'] || allowedTo('moderate_board'))
&&
(
    allowedTo('modify_any')
    ||
    (allowedTo('modify_replies') && $context['user']['started'])
    ||
    (
        allowedTo('modify_own')
        &&
        $message['id_member'] == $user_info['id']
        &&
        (
            empty($modSettings['edit_disable_time'])
            ||
            !$message['approved']
            ||
            $message['poster_time'] + $modSettings['edit_disable_time'] * 60 > time()
        )
    )
)

Теперь находим, где проверяется post-запрос: https://github.com/SimpleMachines/SMF2.1/blob/a9a826e2da61ddb5e12be2c7b684529cb46dc24d/Sources/Post.php#L607

Code: [Select]
if ($row['id_member'] == $user_info['id'] && !allowedTo('modify_any'))
{
// Give an extra five minutes over the disable time threshold, so they can type - assuming the post is public.
if ($row['approved'] && !empty($modSettings['edit_disable_time']) && $row['poster_time'] + ($modSettings['edit_disable_time'] + 5) * 60 < time())
fatal_lang_error('modify_post_time_passed', false);
elseif ($row['id_member_poster'] == $user_info['id'] && !allowedTo('modify_own'))
isAllowedTo('modify_replies');
else
isAllowedTo('modify_own');
}
elseif ($row['id_member_poster'] == $user_info['id'] && !allowedTo('modify_any'))
isAllowedTo('modify_replies');
else
isAllowedTo('modify_any');

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

Мне нечего сказать миру - я не разговариваю с вымышленными персонажами.

Ваша свобода находится здесь и сейчас, прямо под слоем эмоций.

Я так и не смог понять, какая логика у этого чуда инженерной мысли, которое повторяетс 4 раза в одном файле.
Забудьте слово логика, когда дело касается PHP. :)
Умело сочетаю отсутствие каких-либо талантов с отсутствием жизненных целей.

Мне нечего сказать миру - я не разговариваю с вымышленными персонажами.

Ваша свобода находится здесь и сейчас, прямо под слоем эмоций.

Я так и не смог понять, какая логика у этого чуда инженерной мысли, которое повторяетс 4 раза в одном файле.

if ($row['approved'] && !empty($modSettings['edit_disable_time']) && $row['poster_time'] + ($modSettings['edit_disable_time'] + 5) * 60 < time())
               fatal_lang_error('modify_post_time_passed', false);
            elseif ($row['id_member_poster'] == $user_info['id'] && !allowedTo('modify_own'))
               isAllowedTo('modify_replies');
            else
               isAllowedTo('modify_own');

Ну дык:
Если время прошло, то ошибка.
Иначе если текущий юзер автор темы...

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

Мне нечего сказать миру - я не разговариваю с вымышленными персонажами.

Ваша свобода находится здесь и сейчас, прямо под слоем эмоций.

Когда экономят на булевых переменных…
Я бы сказал, когда у людей нет ни образования, ни чувства прекрасного.
Умело сочетаю отсутствие каких-либо талантов с отсутствием жизненных целей.

Мне нечего сказать миру - я не разговариваю с вымышленными персонажами.

Ваша свобода находится здесь и сейчас, прямо под слоем эмоций.

Offline Wolliger Mensch

  • Global Moderator
  • *
  • Posts: 48371
  • Haariger Affe
    • Подушка
Нельзя отредактировать это сообщение, поскольку время, отведенное на редактиров

Offtop
Каждый раз, читая название ветки, думаю — кто такие эти редактиры? :what: ;D
«Вот интересно, каких лингвистических жемчуг можно найти в море отодвинутых книг», Ян Гавлиш.
«Впредь прошу помнить, что придумал игру не для любых ассоциаций, а для семантически оправданных. Например, чтó это такое: „рулетке“ — „выпечке“?? Тем более, что сей ляпсус я сам совершил…», Марбол
«Ветхий Завет написан на иврите и частично на армейском», Vesle Anne
«МЛ(ять)КО … ПЛ(ять)NЪ», Тася
«Вот откроет этот спойлер, например, Марго, ничего не подозревая, а потом будут по всему форуму блюющие смайлики…», Авал

Offline kemerover

  • Posts: 1413
Я так и не смог понять, какая логика у этого чуда инженерной мысли, которое повторяетс 4 раза в одном файле.

if ($row['approved'] && !empty($modSettings['edit_disable_time']) && $row['poster_time'] + ($modSettings['edit_disable_time'] + 5) * 60 < time())
               fatal_lang_error('modify_post_time_passed', false);
            elseif ($row['id_member_poster'] == $user_info['id'] && !allowedTo('modify_own'))
               isAllowedTo('modify_replies');
            else
               isAllowedTo('modify_own');

Ну дык:
Если время прошло, то ошибка.
Иначе если текущий юзер автор темы...

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

Offline wandrien

  • Posts: 4504
Я так и не смог понять, какая логика у этого чуда инженерной мысли, которое повторяетс 4 раза в одном файле.

if ($row['approved'] && !empty($modSettings['edit_disable_time']) && $row['poster_time'] + ($modSettings['edit_disable_time'] + 5) * 60 < time())
               fatal_lang_error('modify_post_time_passed', false);
            elseif ($row['id_member_poster'] == $user_info['id'] && !allowedTo('modify_own'))
               isAllowedTo('modify_replies');
            else
               isAllowedTo('modify_own');

Ну дык:
Если время прошло, то ошибка.
Иначе если текущий юзер автор темы...

На первый взгляд, это и есть ошибка. Но надо проверять.
Ну что ошибка, если время прошло, это понятно. А дальше логика не ясна.
Если текущий юзер автор сообщения и не может изменять свои сообщения, то разрешить ему изменять ответы?
Там названия функций такие "говорящие", шо капец:
allowedTo - проверяет права и возвращает булево значение.
isAllowedTo - проверяет права и генерирует сообщение об ошибке, если прав нет.
Как вообще в голову приходят такие названия?  :???

Надо посмотреть, как именно устанавливаются  modify_replies, modify_any и modify_own, и что они означают. (Что теоретически должны и как на самом деле.) Должен ли modify_replies давать права на правку своих сообщений в теме? По логике здравого смысла - да. А сейчас получается, что чужие сообщения править можно, а свои - нельзя, т.к. фейлится проверка таймаута.

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

Мне нечего сказать миру - я не разговариваю с вымышленными персонажами.

Ваша свобода находится здесь и сейчас, прямо под слоем эмоций.

Offline RawonaM

  • Posts: 42023
Работа идет  ;up:

Когда будет результат, пришлите ЛС на всякий случай, я редко сюда заглядываю :)

Offline Easyskanker

  • Posts: 1547
«Нельзя отредактировать это сообщение, поскольку время, отведенное на редактирование, истекло.»

Версии движка меняются, а суть остаётся. Как и годы назад, в Блоруме и в Конлангах, топикстартер всё так же может редактировать чужие сообщения, но не может свои.
У меня нет функции редактировать чужие сообщения в блоруме и конлангах. Может, у вас там модераторские права? Вообще, фича с коротким временем на редактирование хорошая, потому как время изменения сообщения не пишется, соответственно легко выставить собеседника дураком, меняя свои сообщения. Иногда это выходит невольно даже при небольшом отведенном времени.

Offline Bhudh

  • Posts: 48197
  • aka 蝎
    • Сайты по языкознанию
У меня нет функции редактировать чужие сообщения в блоруме и конлангах. Может, у вас там модераторские права?
Видимо, Вы пропустили слово «топикстартер». В своих темах он модератор, в чужих — нет.
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Offline Easyskanker

  • Posts: 1547
Спасибо, теперь вижу, в чем проблема. Видимо, с 2016 года ввели такую функцию, а я не обратил внимание.

 

With Quick-Reply you can write a post when viewing a topic without loading a new page. You can still use bulletin board code and smileys as you would in a normal post.

Note: this post will not display until it's been approved by a moderator.
Name: Email:
Verification:
Type the letters shown in the picture
Listen to the letters / Request another image
Type the letters shown in the picture:
√49 Напишите ответ строчными буквами:
«Сто одёжек, все без застёжек» — что это?: