Welcome!

By registering with us, you'll be able to discuss, share and private message with other members of our community.

SignUp Now!

Решено Модификации member_view

Статус
В этой теме нельзя размещать новые ответы.
Честь - не слово, это путь к истинне
Дек
514
610
Заблокированный
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки. Мы не несем ответственности за действия пользователя вне форума.
Всем привет, столкнулся с такой проблемой с профилем на форуме не отображается информация.

Ошибка:
DivisionByZeroError: Template public:member_view error: Division by zero internal_data/code_cache/templates/l1/s24/public/member_view.php:500
Generated by: Savaronax Sep 22, 2025 at 8:57 PM


Stack trace
#0 src/XF/Template/Templater.php(1654): XF\Template\Templater->{closure}(Object(TC\RemoveMemberTooltip\XF\Template\Templater), Array, NULL)
#1 src/XF/Template/Template.php(24): XF\Template\Templater->renderTemplate('member_view', Array)
#2 src/XF/Mvc/Renderer/Html.php(50): XF\Template\Template->render()
#3 src/XF/Mvc/Dispatcher.php(460): XF\Mvc\Renderer\Html->renderView('XF:Member\\View', 'public:member_v...', Array)
#4 src/XF/Mvc/Dispatcher.php(442): XF\Mvc\Dispatcher->renderView(Object(XF\Mvc\Renderer\Html), Object(XF\Mvc\Reply\View))
#5 src/XF/Mvc/Dispatcher.php(402): XF\Mvc\Dispatcher->renderReply(Object(XF\Mvc\Renderer\Html), Object(XF\Mvc\Reply\View))
#6 src/XF/Mvc/Dispatcher.php(60): XF\Mvc\Dispatcher->render(Object(XF\Mvc\Reply\View), 'html')
#7 src/XF/App.php(2487): XF\Mvc\Dispatcher->run()
#8 src/XF.php(524): XF\App->run()
#9 index.php(20): XF::runApp('XF\\Pub\\App')
#10 {main}

Request state
array(4) {
  ["url"] => string(11) "/Savaronax/"
  ["referrer"] => string(25) "https://sitelink.ru/ionc/"
  ["_GET"] => array(0) {
  }
  ["_POST"] => array(0) {
  }
}

Отключение указанного "RemoveMemberTooltip" не решает проблему, вылезают другие плагины, которые участвуют в модификации шаблона member_view. Отключение всех модификаций этого шаблона проблему так же не решает.
При включении режима дева и попытке посмотреть профиль вылезает:

Ошибка 2:
"Template Compilation Error public:member_view - Division by zero in /home/b/userlogin/public_html/internal_data/code_cache/templates/l1/s24/public/member_view.php:500"

Впервые с таким сталкиваюсь, без понятия, что с этим чудом делать. Даже поглядеть из-за ошибок на форум не получается толком. Считаю что проблема в самом member_view а иммено с делением на ноль, но виновника не могу найти
1000416482.jpg
 
Честь - не слово, это путь к истинне
Дек
514
610
Заблокированный
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки. Мы не несем ответственности за действия пользователя вне форума.
@pikamonov ты у нас хорошо знаешь)
 
Честь - не слово, это путь к истинне
Дек
514
610
Заблокированный
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки. Мы не несем ответственности за действия пользователя вне форума.
OFFTOP

без кофе тут не решить проблему, пару минут

Скрытое содержимое могут видеть только пользователи групп(ы): Администратор
 
Честь - не слово, это путь к истинне
Дек
514
610
Заблокированный
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки. Мы не несем ответственности за действия пользователя вне форума.
С другими пользователями так-же?

Есть возможность откатить изменения шаблона через историю правок?
Со всеми пользователями так
 
𝚖𝚘𝚛𝚜 𝚌𝚎𝚛𝚝𝚊, 𝚑𝚘𝚛𝚊 𝚒𝚗𝚌𝚎𝚛𝚝𝚊.
Янв
1,761
4,119
Команда форума
Администратор
Возможно, я ошибаюсь, но да, проблема по всей видимости с делением на ноль

проблемный код:
<xf:set var="$totalRep" value="{{ $user.xfa_rs_positives + $user.xfa_rs_neutrals + $user.xfa_rs_negatives }}" />
- по моему мнению, с этим кодом что-то не так. (325 строка)

если у пользователя fb_positive = 0, fb_neutral = 0, fb_negative = 0, то $totalFeedback = 0, и происходит деление на ноль, из-за чего, ничего и не отображается (?)

я не уверен в своем решение, поэтому, позовем колпака, он лучше разбирается в xf. @Kolpak
 
Честь - не слово, это путь к истинне
Дек
514
610
Заблокированный
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки. Мы не несем ответственности за действия пользователя вне форума.
Возможно, я ошибаюсь, но да, проблема по всей видимости с делением на ноль

проблемный код:
<xf:set var="$totalRep" value="{{ $user.xfa_rs_positives + $user.xfa_rs_neutrals + $user.xfa_rs_negatives }}" />
- по моему мнению, с этим кодом что-то не так. (325 строка)

если у пользователя fb_positive = 0, fb_neutral = 0, fb_negative = 0, то $totalFeedback = 0, и происходит деление на ноль, из-за чего, ничего и не отображается (?)

я не уверен в своем решение, поэтому, позовем колпака, он лучше разбирается в xf. @Kolpak
У тебя решение правильное, это из-за деление на ноль - но как решить я сам не понимаю. Перепробовал все возможные варианты как исправить, либо я дурак и что-то не вдупляю или ещё что-то помимо деление на ноль.
 
Честь - не слово, это путь к истинне
Дек
514
610
Заблокированный
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки. Мы не несем ответственности за действия пользователя вне форума.
@pikamonov, может сможешь дать хоть какой-то вариант исправить ошибку
 
𝚖𝚘𝚛𝚜 𝚌𝚎𝚛𝚝𝚊, 𝚑𝚘𝚛𝚊 𝚒𝚗𝚌𝚎𝚛𝚝𝚊.
Янв
1,761
4,119
Команда форума
Администратор
@Maksim_Persona,
Попробуй эти 3 строчки;
проблемный код:
<xf:set var="$positivePercentage" value="{{ ($feedback.user.fb_positive / $totalFeedback) * 100 }}" />
<xf:set var="$neutralPercentage" value="{{ ($feedback.user.fb_neutral / $totalFeedback) * 100 }}" />
<xf:set var="$negativePercentage" value="{{ ($feedback.user.fb_negative / $totalFeedback) * 100 }}" />

на этот;
рабочий код:
<xf:set var="$positivePercentage" value="{{ ($totalFeedback > 0) ? ($feedback.user.fb_positive / $totalFeedback) * 100 : 0 }}" />
<xf:set var="$neutralPercentage" value="{{ ($totalFeedback > 0) ? ($feedback.user.fb_neutral / $totalFeedback) * 100 : 0 }}" />
<xf:set var="$negativePercentage" value="{{ ($totalFeedback > 0) ? ($feedback.user.fb_negative / $totalFeedback) * 100 : 0 }}" />

Может быть запуститься
 
Честь - не слово, это путь к истинне
Дек
514
610
Заблокированный
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки. Мы не несем ответственности за действия пользователя вне форума.
@Maksim_Persona,
Попробуй эти 3 строчки;
проблемный код:
<xf:set var="$positivePercentage" value="{{ ($feedback.user.fb_positive / $totalFeedback) * 100 }}" />
<xf:set var="$neutralPercentage" value="{{ ($feedback.user.fb_neutral / $totalFeedback) * 100 }}" />
<xf:set var="$negativePercentage" value="{{ ($feedback.user.fb_negative / $totalFeedback) * 100 }}" />

на этот;
рабочий код:
<xf:set var="$positivePercentage" value="{{ ($totalFeedback > 0) ? ($feedback.user.fb_positive / $totalFeedback) * 100 : 0 }}" />
<xf:set var="$neutralPercentage" value="{{ ($totalFeedback > 0) ? ($feedback.user.fb_neutral / $totalFeedback) * 100 : 0 }}" />
<xf:set var="$negativePercentage" value="{{ ($totalFeedback > 0) ? ($feedback.user.fb_negative / $totalFeedback) * 100 : 0 }}" />

Может быть запуститься
Да я видел этот у ИИ но вряд-ли поможет, он скрывает блок
 
𝚖𝚘𝚛𝚜 𝚌𝚎𝚛𝚝𝚊, 𝚑𝚘𝚛𝚊 𝚒𝚗𝚌𝚎𝚛𝚝𝚊.
Янв
1,761
4,119
Команда форума
Администратор
Да я видел этот у ИИ но вряд-ли поможет, он скрывает блок
самое банальное, добавить эту проверку. Тогда ничем не смогу помочь, ждем колпака, самому интересно где проблема скрывается.
 
Честь - не слово, это путь к истинне
Дек
514
610
Заблокированный
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки. Мы не несем ответственности за действия пользователя вне форума.
самое банальное, добавить эту проверку. Тогда ничем не смогу помочь, ждем колпака, самому интересно где проблема скрывается.
Проблема возникает после этой строки, когда $totalRep используется в качестве делителя.
 
Честь - не слово, это путь к истинне
Дек
514
610
Заблокированный
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки. Мы не несем ответственности за действия пользователя вне форума.
Нк
@Maksim_Persona,
Попробуй эти 3 строчки;
проблемный код:
<xf:set var="$positivePercentage" value="{{ ($feedback.user.fb_positive / $totalFeedback) * 100 }}" />
<xf:set var="$neutralPercentage" value="{{ ($feedback.user.fb_neutral / $totalFeedback) * 100 }}" />
<xf:set var="$negativePercentage" value="{{ ($feedback.user.fb_negative / $totalFeedback) * 100 }}" />

на этот;
рабочий код:
<xf:set var="$positivePercentage" value="{{ ($totalFeedback > 0) ? ($feedback.user.fb_positive / $totalFeedback) * 100 : 0 }}" />
<xf:set var="$neutralPercentage" value="{{ ($totalFeedback > 0) ? ($feedback.user.fb_neutral / $totalFeedback) * 100 : 0 }}" />
<xf:set var="$negativePercentage" value="{{ ($totalFeedback > 0) ? ($feedback.user.fb_negative / $totalFeedback) * 100 : 0 }}" />

Может быть запуститьсь

Не работает увы
 
Честь - не слово, это путь к истинне
Дек
514
610
Заблокированный
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки. Мы не несем ответственности за действия пользователя вне форума.
Скрытое содержимое могут видеть только пользователи групп(ы): Администратор, Модератор
 
Честь - не слово, это путь к истинне
Дек
514
610
Заблокированный
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки. Мы не несем ответственности за действия пользователя вне форума.
Проблему решил
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху