Страница 1 из 1

Не получается удалить свои сообщения из мобильной версии

Добавлено: 06.04.2018 12:08
melior
Всем привет!

Есть средних размеров форум. Решили обновиться с 3.1.10 до 3.2.2 и заодно переехали на VPS с php7. Обновили и включили на данный момент только основные расширения, чтобы люди могли общаться.

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

Если попытаться удалить свое сообщение, то ошибка "Вы не можете удалять сообщения в этом форуме", а если чужое, то "Извините, вы можете удалять только собственные сообщения". Что это может быть?

Re: Не получается удалить свои сообщения из мобильной версии

Добавлено: 06.04.2018 12:25
Sheer
melior писал(а): 06.04.2018 12:08 нельзя удалить сообщения из мобильной версии
Нет никакой специальной мобильной версии. Стиль полностью адаптивен под адаптивен под любые устройства.

Re: Не получается удалить свои сообщения из мобильной версии

Добавлено: 06.04.2018 13:43
melior
Sheer писал(а): 06.04.2018 12:25 Стиль полностью адаптивен под адаптивен под любые устройства.
Да вот и я понимаю, что это всего лишь стили меняются.

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

Настройки куки все правильные, сессии из админки сбросил, кэш всех браузеров удалил, сервак перезагрузил.

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

Зашел в phpmyadmin... там есть две таблицы phpbb_sessions и phpbb_sessions_keys... сбросилась как я понимаю первая, так как в ней сотня записей, а вот _sessions_keys весит 2Мб и содержит 9200 записей... на форуме всего 5к пользователей, откуда такая жирная таблица? Можно ее почистить вручную?

Re: Не получается удалить свои сообщения из мобильной версии

Добавлено: 06.04.2018 15:18
Sheer
melior писал(а): 06.04.2018 13:43 две таблицы phpbb_sessions и phpbb_sessions_keys
Для начала очистите обе и очистите куки в браузере мобильного устройства.
+ Простейший путь к скорейшему ответу - шаблон запроса

Re: Не получается удалить свои сообщения из мобильной версии

Добавлено: 18.01.2019 11:37
Pazh
Для админов: как известно удалять сообщения можно двумя способами: в "Корзину" (по факту просто скрывается сообщения) или безвозвратно.
В некоторых случаях можно получить сообщение "Вы не можете удалять сообщения в этом форуме" или "Извините, вы можете удалять только собственные сообщения", которое возникает по нескольким причинам:
1. Неверная настройка прав доступа:
а) при удаление в "Корзину" - должно быть выдано право: или модераторское право "Может удалять в корзину сообщения", или юзер должен быть автором поста и иметь форумное(локальное) право "Может удалять в корзину собственные сообщения"
б) при удаление безвовзвратно - должно быть выдано право: или модераторское право "Может безвозвратно удалять сообщения", или юзер должен быть автором поста и иметь форумное(локальное) право "Может безвозвратно удалять собственные сообщения"

2. неожиданно выяснилось, что даже если права доступа настроены верно, есть и другая причина (привет доблестному Яндексу): если на форуме установлена Яндекс.Метрика - Вы можете получить то же самое сообщение - "Вы не можете удалять сообщения в этом форуме"!!!
Суть проблемы в том, что скрипт метрики watch.js после открытия каждой страницы отправляет ПОВТОРНО ajax запрос на получение текущей страницы. Если для страниц просмотра тем/форумов и т.д. это не существенно, то при повторном запросе страниц подтверждения происходит изменение значения поля user_last_confirm_key в таблице phpbb_users у данного юзера. А именно это значение проверяется при нажатии на кнопку Отправить в форме подтверждения.
Предполагаю, это же может быть причиной не срабатывания подтверждения и на других страницах с запросом подтверждений юзера (столкнулся с этим же поведением при удалении ЛС на 3.2.5)...

Re: Не получается удалить свои сообщения из мобильной версии

Добавлено: 18.01.2019 11:55
Pazh
модераторы - переименуйте тему в "Не получается удалить сообщения", т.к. к мобильной версии

Re: Не получается удалить свои сообщения из мобильной версии

Добавлено: 09.05.2019 13:08
Pazh
В продолжении темы борьбы в Яндекс.Метрикой удалось "победить" или "подружить с phpbb" неким полукостыльным методом:
1. изменяем код Яндекс.Метрики таким способом:
было:

Код: Выделить всё

<!-- Yandex.Metrika counter -->
<script type="text/javascript" >
   (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
   m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
   (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");

   ym(ХХХХХХХХХ, "init", {
        clickmap:true,
        trackLinks:true,
        accurateTrackBounce:true,
        webvisor:true
   });
</script>
<noscript><div><img src="https://mc.yandex.ru/watch/ХХХХХХХХХ" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
<!-- /Yandex.Metrika counter -->
стало

Код: Выделить всё

<!-- Yandex.Metrika counter -->
<script type="text/javascript" >
   if (SCRIPT_NAME != 'posting' && SCRIPT_NAME != 'ucp' && SCRIPT_NAME != 'mcp')
   {
      (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
      m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
      (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");

      ym(ХХХХХХХХХ, "init", {
           clickmap:true,
           trackLinks:true,
           accurateTrackBounce:true,
           webvisor:true
      });
   }
</script>
<noscript><div><img src="https://mc.yandex.ru/watch/ХХХХХХХХХ" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
<!-- /Yandex.Metrika counter -->
где ХХХХХХХХХ заменяем на свой id счетчика. Код в счетчике между ym(ХХХХХХХХХ, "init", { и }); у Вас может отличаться от того что в примере - вставляете тот что у ВАС прописан!!!

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

Код: Выделить всё

<script>var SCRIPT_NAME = '{SCRIPT_NAME}';</script>
сделать это можно различными способами:
- прописать непосредственно в overall_header.html перед тегом </head>
- закинуть в обработчик события шаблона из архива
overall_header_head_append.zip
в какое-нибудь расширение, где нет обработчика overall_header_head_append.html в папку ext/ВЕНДОР/РАСШИРЕНИЕ/styles/all/template/event или ext/ВЕНДОР/РАСШИРЕНИЕ/styles/prosilver/template/event (смотря какая из них есть)
- если используется расширение [3.2] Advertisement Management то можно добавить вышеуказанный код в файл ext/phpbb/ads/styles/all/template/event/overall_header_stylesheets_after.html
При добавлении файла или вставки в код какого-то расширения стоить помнить что при обновлении используемого расширения вставку придет сделать заново

Re: Не получается удалить свои сообщения из мобильной версии

Добавлено: 09.05.2019 20:07
southklad
Pazh писал(а): 09.05.2019 13:08 В продолжении темы борьбы в Яндекс.Метрикой
А в чем именно заключалась борьба?

Re: Не получается удалить свои сообщения из мобильной версии

Добавлено: 09.05.2019 20:08
Pazh
igorbond, два сообщения выше - пункт 2