XF 2.2 [E_USER_WARNING] Cannot call method getTypeIconClass on a non-object (NULL)

Статус
В этой теме нельзя размещать новые ответы.
Версия XenForo
2.2.11

Markelov_Leon

Проверенные
Сообщения
35
Реакции
0
Баллы
68
Добрый день.
Столкнулся с данным варнингом и не очень понимаю, как его решить.

Трассировка стека​

Код:
#0 [internal function]: XF\Template\Templater->handleTemplateError(512, '[E_USER_WARNING...', '/var/www/u12954...', 1176, Array)
#1 src/XF/Template/Templater.php(1176): trigger_error('Cannot call met...', 512)
#2 internal_data/code_cache/templates/l3/s32/public/sf_icon_settings.php(14): XF\Template\Templater->method(NULL, 'getTypeIconClas...', Array)
#3 src/XF/Template/Templater.php(1651): XF\Template\Templater->{closure}(Object(MMO\VerifiedBadge\XF\Template\Templater), Array, NULL)
#4 src/XF/Template/Templater.php(1680): XF\Template\Templater->renderTemplate('sf_icon_setting...', Array)
#5 internal_data/code_cache/templates/l3/s32/public/node_list_category.php(70): XF\Template\Templater->includeTemplate('public:sf_icon_...', Array)
#6 src/XF/Template/Templater.php(824): XF\Template\Templater->{closure}(Object(MMO\VerifiedBadge\XF\Template\Templater), Array, NULL)
#7 internal_data/code_cache/templates/l3/s32/public/forum_list.php(25): XF\Template\Templater->callMacro('node_list_categ...', 'depth2', Array, Array)
#8 src/XF/Template/Templater.php(824): XF\Template\Templater->{closure}(Object(MMO\VerifiedBadge\XF\Template\Templater), Array, NULL)
#9 internal_data/code_cache/templates/l3/s32/public/forum_list.php(60): XF\Template\Templater->callMacro('forum_list', 'node_list_entry', Array, Array)
#10 src/XF/Template/Templater.php(824): XF\Template\Templater->{closure}(Object(MMO\VerifiedBadge\XF\Template\Templater), Array, NULL)
#11 internal_data/code_cache/templates/l3/s32/public/node_list_category.php(42): XF\Template\Templater->callMacro('forum_list', 'node_list', Array, Array)
#12 src/XF/Template/Templater.php(824): XF\Template\Templater->{closure}(Object(MMO\VerifiedBadge\XF\Template\Templater), Array, NULL)
#13 internal_data/code_cache/templates/l3/s32/public/forum_list.php(25): XF\Template\Templater->callMacro('node_list_categ...', 'depth1', Array, Array)
#14 src/XF/Template/Templater.php(824): XF\Template\Templater->{closure}(Object(MMO\VerifiedBadge\XF\Template\Templater), Array, NULL)
#15 internal_data/code_cache/templates/l3/s32/public/forum_list.php(60): XF\Template\Templater->callMacro('forum_list', 'node_list_entry', Array, Array)
#16 src/XF/Template/Templater.php(824): XF\Template\Templater->{closure}(Object(MMO\VerifiedBadge\XF\Template\Templater), Array, NULL)
#17 internal_data/code_cache/templates/l3/s32/public/forum_list.php(220): XF\Template\Templater->callMacro('forum_list', 'node_list', Array, Array)
#18 src/XF/Template/Templater.php(1651): XF\Template\Templater->{closure}(Object(MMO\VerifiedBadge\XF\Template\Templater), Array, NULL)
#19 src/XF/Template/Template.php(24): XF\Template\Templater->renderTemplate('forum_list', Array)
#20 src/XF/Mvc/Renderer/Html.php(50): XF\Template\Template->render()
#21 src/XF/Mvc/Dispatcher.php(460): XF\Mvc\Renderer\Html->renderView('XF:Forum\\Listin...', 'public:forum_li...', Array)
#22 src/XF/Mvc/Dispatcher.php(442): XF\Mvc\Dispatcher->renderView(Object(XF\Mvc\Renderer\Html), Object(XF\Mvc\Reply\View))
#23 src/XF/Mvc/Dispatcher.php(402): XF\Mvc\Dispatcher->renderReply(Object(XF\Mvc\Renderer\Html), Object(XF\Mvc\Reply\View))
#24 src/XF/Mvc/Dispatcher.php(60): XF\Mvc\Dispatcher->render(Object(XF\Mvc\Reply\View), 'html')
#25 src/XF/App.php(2353): XF\Mvc\Dispatcher->run()
#26 src/XF.php(524): XF\App->run()
#27 index.php(20): XF::runApp('XF\\Pub\\App')
#28 {main}

Содержимое запроса​

Код:
array(4) {
  ["url"] => string(1) "/"
  ["referrer"] => string(61) "https://forum.samp-mobile.com/members/julies_morrisone.24196/"
  ["_GET"] => array(0) {
  }
  ["_POST"] => array(0) {
  }
}
 
Решение
Выглядит так, будто по каким-то причинам нет хандлера для темы. Можно полечить заменой <xf:fa icon="{{ $node.Data.TypeHandler.getTypeIconClass() ?: 'fa-comments' }}" /> на:
HTML:
<xf:set var="$iconName">
    <xf:if is="$node.Data.TypeHandler">
        {$node.Data.TypeHandler.getTypeIconClass()}
    <xf:else />
        fa-comments
    </xf:if>
</xf:set>

<xf:fa icon="{{ trim($iconName) }}" />
Код:
<xf:if is="{{ !$node.new_icon.mb.filtersetting AND !$node.font_icon AND !$node.svg_bg|raw }} AND $template !== 'node_list_category'">
          <span class="node-icon <xf:if is="{{ $xf.options.ucn_animated }}">animated fadeInLeft</xf:if>" aria-hidden="true">
            <xf:fa icon="{{ $node.Data.TypeHandler.getTypeIconClass() ?: 'fa-comments' }}" />
          </span>
      </xf:if>
    <xf:if is="{{ $node.new_icon.mb.filtersetting }}">
        <span class="node-icon" aria-hidden="true" style="width:{$xf.options.ucn_width};">
          <img src="{$node.new_icon.mb.filtersetting}" style="vertical-align:middle;" <xf:if is="{{ $xf.options.ucn_animated }}">class="animated fadeInLeft"</xf:if>>
        </span>
    </xf:if>
      <xf:if is="{{ $node.font_icon }}">
        <span class="node-icon-fix <xf:if is="{{ $xf.options.ucn_animated }}">animated fadeInLeft</xf:if>" aria-hidden="true">{{ $node.font_icon|raw }}</span>
    </xf:if>
    <xf:if is="{{ $node.svg_bg|raw }}">
      <span class="node-icon-svg icon{$node.node_id} <xf:if is="{{ $xf.options.ucn_animated }}">animated fadeInLeft</xf:if>">
            <img src="{{ $xf.options.ucn_svg_sprite|raw }}#svgView(viewBox({{ $node.svg_bg|raw }}))" alt="" style="height:{{ $xf.options.ucn_width }}; <xf:if is="{{ $xf.options.ucn_radius }}">border-radius:5px;</xf:if> margin-left:-1px;">
        </span>
    </xf:if>

Стиль: Rain
Список дополнений:
Код:
1. [AnzahTools] Promote & Demote from Moderator tools
2. [ForoAgency] Colored Username Everywhere
3. [MMO] Custom Ban Information
4. [MMO] Verified Badge
5. [mow]-xNewYear
6. [OzzModz] Advanced Forms
7. [SVG]NewYearCountdown
8. [TH] Holidays
9. StylesFactory Core
 
Выглядит так, будто по каким-то причинам нет хандлера для темы. Можно полечить заменой <xf:fa icon="{{ $node.Data.TypeHandler.getTypeIconClass() ?: 'fa-comments' }}" /> на:
HTML:
<xf:set var="$iconName">
    <xf:if is="$node.Data.TypeHandler">
        {$node.Data.TypeHandler.getTypeIconClass()}
    <xf:else />
        fa-comments
    </xf:if>
</xf:set>

<xf:fa icon="{{ trim($iconName) }}" />
 
Статус
В этой теме нельзя размещать новые ответы.
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу