ErrorException: Template error: Template public:forum_view is unknown src/XF/Template/Templater.php

Chigra

Проверенные
Сообщения
371
Решения
1
Реакции
204
Баллы
1,755
При клике по названию раздела, открывается пустая страница.
Ошибка в журнале ошибок имеет следующее содержимое:
Код:
ErrorException: Template error: Template public:forum_view is unknown src/XF/Template/Templater.php:564
Сгенерирована пользователем: _мойник_01.12.17 в 13:31
Трассировка стека
#0 [internal function]: XF\Template\Templater->handleTemplateError(512, 'Template public...', '/home/c/t123123...', 564, Array)
#1 src/XF/Template/Templater.php(564): trigger_error('Template public...', 512)
#2 src/XF/Template/Templater.php(519): XF\Template\Templater->getTemplateData('public', 'forum_view')
#3 src/XF/Template/Templater.php(1229): XF\Template\Templater->getTemplateCode('public', 'forum_view')
#4 src/XF/Template/Template.php(24): XF\Template\Templater->renderTemplate('forum_view', Array)
#5 src/XF/Mvc/Renderer/Html.php(48): XF\Template\Template->render()
#6 src/XF/Mvc/Dispatcher.php(332): XF\Mvc\Renderer\Html->renderView('XF:Forum\\View', 'public:forum_vi...', Array)
#7 src/XF/Mvc/Dispatcher.php(303): XF\Mvc\Dispatcher->renderView(Object(XF\Mvc\Renderer\Html), Object(XF\Mvc\Reply\View))
#8 src/XF/Mvc/Dispatcher.php(44): XF\Mvc\Dispatcher->render(Object(XF\Mvc\Reply\View), 'html')
#9 src/XF/App.php(1879): XF\Mvc\Dispatcher->run()
#10 src/XF.php(328): XF\App->run()
#11 index.php(13): XF::runApp('XF\\Pub\\App')
#12 {main}
Содержимое запроса
array(4) {
  ["url"] => string(168) "/forums/%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%BE-fog-%D0%BE%D0%B1%D1%89%D0%B0%D1%8F-%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D1%8F.27/"
  ["referrer"] => string(24) "https://мойфорум.ru/"
  ["_GET"] => array(0) {
  }
  ["_POST"] => array(0) {
  }
}
При отключении всех дополнений ситуация ни как не меняется.
Можно что-то понять по представленной ошибке?
 

Вложения

  • 1512123821139.png
    1512123821139.png
    119.5 KB · Просмотры: 94
Неужели нельзя писать в названии темы текст ошибки?
Автор плагина [XenGenTr] XenSticky thread вообще зверь... В первой версии плагина, он удалял шаблон forum_view в херам.
Берите содержимое этого шаблона из своего мастер-стиля.
 
Я бы и рад взять, но в главном стиле тоже нет forum_view.
P.S. Создал новый шаблон forum_view. Вставил в него содержимое forum_view с тестового форума, всё работает. Ошибок в журнале не появляется.
 
Последнее редактирование:
Та ну не может такого быть... Режим отладки включили, чтобы видеть мастер-стиль?
Режим отладки включен. Но вот вижу ли я мастер стил, я сомневаюсь, так как подумал, что мастер стиль, это default style.
Сейчас попробую найти мастер-стиль.
 
Ну тогда включаем режим отладки, добавив в файл /src/config.php такую строку: $config['debug'] = true;
Далее идём по пути: Панель управления - Внешний вид - Стили - Напротив "Мастер-стиль" клацаем по пункту "Шаблоны" - На открывшейся странице сверху нажимаем на кнопку "Добавить шаблон" - И заполняем так: Название шаблона: forum_view - Содержимое:
Код:
<xf:title page="{$page}">{$forum.Node.title}</xf:title>
<xf:description>{$forum.Node.description|raw}</xf:description>

<xf:macro template="metadata_macros" name="canonical_url"
    arg-canonicalUrl="{{ link('canonical:forums', $forum, {'page': $page}) }}" />

<xf:head option="rss_forum"><link rel="alternate" type="application/rss+xml" title="{{ phrase('rss_feed_for_x', {'title': $forum.title})|for_attr }}" href="{{ link('forums/index.rss', $forum) }}" /></xf:head>

<xf:macro template="forum_macros" name="forum_page_options" arg-forum="{$forum}" />
<xf:breadcrumb source="$forum.getBreadcrumbs(false)" />

<xf:pageaction if="$forum.canCreateThread()">
    <xf:button href="{{ link('forums/post-thread', $forum) }}" class="button--cta" icon="write">
        {{ phrase('post_thread') }}
    </xf:button>
</xf:pageaction>

<xf:if is="$pendingApproval">
    <div class="blockMessage blockMessage--important">{{ phrase('content_submitted_displayed_pending_approval') }}</div>
</xf:if>

<xf:if is="$nodeTree">
    <xf:ad position="forum_view_above_node_list" arg-forum="{$forum}" />
    <div class="block">
        <div class="block-container">
            <div class="block-body">
                <xf:macro template="forum_list" name="node_list"
                    arg-children="{$nodeTree}"
                    arg-extras="{$nodeExtras}"
                    arg-depth="2" />
            </div>
        </div>
    </div>
    <xf:ad position="forum_view_below_node_list" arg-forum="{$forum}" />
</xf:if>

<xf:if is="$canInlineMod">
    <xf:js src="xf/inline_mod.js" min="1" />
</xf:if>

<xf:ad position="forum_view_above_thread_list" arg-forum="{$forum}" />
<div class="block" data-xf-init="{{ $canInlineMod ? 'inline-mod' : '' }}" data-type="thread" data-href="{{ link('inline-mod') }}">

    <div class="block-outer"><xf:trim>
        <xf:pagenav page="{$page}" perpage="{$perPage}" total="{$total}"
            link="forums" data="{$forum}" params="{$filters}"
            wrapperclass="block-outer-main" />
        <xf:if contentcheck="true">
            <div class="block-outer-opposite">
                <div class="buttonGroup">
                <xf:contentcheck>
                    <xf:if is="$canInlineMod">
                        <xf:macro template="inline_mod_macros" name="button" />
                    </xf:if>
                    <xf:if is="$xf.visitor.user_id">
                        <xf:button href="{{ link('forums/mark-read', $forum, {'date': $xf.time}) }}"
                            class="button--link" overlay="true">
                            {{ phrase('mark_read') }}
                        </xf:button>
                    </xf:if>
                    <xf:if is="$forum.canWatch()">
                        <xf:button href="{{ link('forums/watch', $forum) }}" class="button--link"
                            data-xf-click="switch-overlay"
                            data-sk-watch="{{ phrase('watch') }}"
                            data-sk-unwatch="{{ phrase('unwatch') }}">
                            <xf:if is="{$forum.Watch.{$xf.visitor.user_id}}">{{ phrase('unwatch') }}<xf:else />{{ phrase('watch') }}</xf:if>
                        </xf:button>
                    </xf:if>
                </xf:contentcheck>
                </div>
            </div>
        </xf:if>
    </xf:trim></div>

    <xf:set var="$dateLimits" value="{{ {
        '-1': phrase('any_time'),
        '7': phrase('x_days', {'days': '7'}),
        '14': phrase('x_days', {'days': '14'}),
        '30': phrase('x_days', {'days': '30'}),
        '60': phrase('x_months', {'months': '2'}),
        '90': phrase('x_months', {'months': '3'}),
        '182': phrase('x_months', {'months': '6'}),
        '365': phrase('1_year')
    } }}" />
    <xf:set var="$sortOrders" value="{{ {
        'last_post_date': phrase('last_message'),
        'post_date': phrase('first_message'),
        'title': phrase('title'),
        'reply_count': phrase('replies'),
        'view_count': phrase('views'),
        'first_post_likes': phrase('first_message_likes')
    } }}" />

    <div class="block-container">
        <div class="block-filterBar">
            <div class="filterBar">
                <xf:if contentcheck="true">
                    <ul class="filterBar-filters">
                    <xf:contentcheck>
                        <xf:if is="$filters.prefix_id">
                            <li><a href="{{ link('forums', $forum, $filters|replace('prefix_id', null)) }}"
                                class="filterBar-filterToggle" data-xf-init="tooltip" title="{{ phrase('remove_this_filter')|for_attr }}">
                                <span class="filterBar-filterToggle-label">{{ phrase('prefix:') }}</span>
                                {{ prefix_title('thread', $filters.prefix_id) }}</a></li>
                        </xf:if>
                        <xf:if is="$filters.starter_id AND $starterFilter">
                            <li><a href="{{ link('forums', $forum, $filters|replace('starter_id', null)) }}"
                                class="filterBar-filterToggle" data-xf-init="tooltip" title="{{ phrase('remove_this_filter')|for_attr }}">
                                <span class="filterBar-filterToggle-label">{{ phrase('started_by:') }}</span>
                                {$starterFilter.username}</a></li>
                        </xf:if>
                        <xf:if is="$filters.last_days AND {$dateLimits.{$filters.last_days}}">
                            <li><a href="{{ link('forums', $forum, $filters|replace('last_days', null)) }}"
                                class="filterBar-filterToggle" data-xf-init="tooltip" title="{{ phrase('remove_this_filter')|for_attr }}">
                                <span class="filterBar-filterToggle-label">{{ phrase('last_updated:') }}</span>
                                {$dateLimits.{$filters.last_days}}</a></li>
                        </xf:if>
                        <xf:if is="$filters.order AND {$sortOrders.{$filters.order}}">
                            <li><a href="{{ link('forums', $forum, $filters|replace({'order': null, 'direction': null})) }}"
                                class="filterBar-filterToggle" data-xf-init="tooltip" title="{{ phrase('return_to_default_order')|for_attr }}">
                                <span class="filterBar-filterToggle-label">{{ phrase('sort_by:') }}</span>
                                {$sortOrders.{$filters.order}}
                                <i class="fa {{ $filters.direction == 'asc' ? 'fa-angle-up' : 'fa-angle-down' }}" aria-hidden="true"></i>
                                <span class="u-srOnly"><xf:if is="$filters.direction == 'asc'">{{ phrase('ascending') }}<xf:else />{{ phrase('descending') }}</xf:if></span>
                            </a></li>
                        </xf:if>
                    </xf:contentcheck>
                    </ul>
                </xf:if>

                <a class="filterBar-menuTrigger" data-xf-click="menu" role="button" tabindex="0" aria-expanded="false" aria-haspopup="true">{{ phrase('filters') }}</a>
                <div class="menu menu--wide" data-menu="menu" aria-hidden="true"
                    data-href="{{ link('forums/filters', $forum, $filters) }}"
                    data-load-target=".js-filterMenuBody">
                    <div class="menu-content">
                        <h4 class="menu-header">{{ phrase('show_only:') }}</h4>
                        <div class="js-filterMenuBody">
                            <div class="menu-row">{{ phrase('loading...') }}</div>
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <xf:set var="$qtPos">{{ ($sortInfo.order == 'last_post_date' && $sortInfo.direction == 'asc') ? 'bottom' : 'top' }}</xf:set>

        <div class="block-body">
            <div class="structItemContainer">
                <xf:macro template="thread_list_macros" name="quick_thread"
                    arg-forum="{$forum}"
                    arg-page="{$page}"
                    arg-order="{$sortInfo.order}"
                    arg-direction="{$sortInfo.direction}" />
                <xf:if is="$stickyThreads is not empty OR $threads is not empty">
                    <xf:if is="$stickyThreads is not empty">
                        <div class="structItemContainer-group structItemContainer-group--sticky">
                            <xf:foreach loop="$stickyThreads" value="$thread">
                                <xf:macro template="thread_list_macros" name="item" arg-thread="{$thread}" arg-forum="{$forum}" />
                            </xf:foreach>
                        </div>

                        <xf:ad position="forum_view_below_stickies" arg-forum="{$forum}" />
                    </xf:if>

                    <xf:if is="$threads is not empty">
                        <div class="structItemContainer-group js-threadList">
                            <xf:foreach loop="$threads" value="$thread">
                                <xf:macro template="thread_list_macros" name="item" arg-thread="{$thread}" arg-forum="{$forum}" />
                            </xf:foreach>
                        </div>
                    </xf:if>
                <xf:elseif is="$filters" />
                    <div class="structItem js-emptyThreadList">
                        <div class="structItem-cell">{{ phrase('there_no_threads_matching_your_filters') }}</div>
                    </div>
                <xf:else />
                    <div class="structItem js-emptyThreadList">
                        <div class="structItem-cell">{{ phrase('there_no_threads_in_this_forum') }}</div>
                    </div>
                </xf:if>
            </div>
        </div>
    </div>

    <div class="block-outer block-outer--after">
        <xf:pagenav
            page="{$page}" perpage="{$perPage}" total="{$total}"
            link="forums" data="{$forum}" params="{$filters}"
            wrapperclass="block-outer-main" />
        <xf:showignored wrapperclass="block-outer-opposite" />
        <xf:if is="!$forum.canCreateThread()">
            <div class="block-outer-opposite">
                <xf:if is="$xf.visitor.user_id">
                    <span class="button is-disabled">
                        {{ phrase('no_permission_to_post') }}
                        <!-- this is not interactive so shouldn't be a button element -->
                    </span>
                <xf:else />
                    <xf:button href="{{ link('login') }}" class="button--link" overlay="true">
                        {{ phrase('log_in_or_register_to_post') }}
                    </xf:button>
                </xf:if>
            </div>
        </xf:if>
    </div>
</div>
<xf:ad position="forum_view_below_thread_list" arg-forum="{$forum}" />

<xf:widgetpos id="forum_view_sidebar" context-forum="{$forum}" position="sidebar" />
Сохраняем - Всё. :)
 
Последнее редактирование:
У тебя же есть тестовый форум, поделись пожалуйста содержимым forum_view
Если содержимое совершенно левого форума подойдёт для решения этой проблемы, то конечно поделюсь.
 
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу