<?xml version="1.0" encoding="utf-8"?>
<style title="Cerium" description="" user_selectable="1" export_version="2">
<templates>
<template title="PAGE_CONTAINER" type="public" addon_id="XF" version_id="2001070" version_string="2.0.10"><![CDATA[<!DOCTYPE html>
<html id="XF" lang="{$xf.language.language_code}" dir="{$xf.language.text_direction}"
data-app="public"
data-template="{$template}"
data-container-key="{$containerKey}"
data-content-key="{$contentKey}"
data-logged-in="{{ $xf.visitor.user_id ? 'true' : 'false' }}"
data-cookie-prefix="{$xf.cookie.prefix}"
data-brv-custom="{{property('CustomSidebar')}}"
class="has-no-js{{ $template ? ' template-' . $template : '' }}"
{{ $xf.runJobs ? ' data-run-jobs=""' : '' }}>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<xf:set var="$siteName" value="{$xf.options.boardTitle}" />
<xf:set var="$h1"><xf:h1 fallback="{$siteName}" /></xf:set>
<xf:set var="$description"><xf:description /></xf:set>
<title><xf:title formatter="%s | %s" fallback="{$xf.options.boardTitle}" page="{$pageNumber}" /></title>
<xf:foreach loop="$head" value="$headTag">
{$headTag}
</xf:foreach>
<xf:if is="!$head.meta_site_name && $siteName is not empty">
<xf:macro template="metadata_macros" name="site_name" arg-siteName="{$siteName}" arg-output="{{ true }}" />
</xf:if>
<xf:if is="!$head.meta_type">
<xf:macro template="metadata_macros" name="type" arg-type="website" arg-output="{{ true }}" />
</xf:if>
<xf:if is="!$head.meta_title">
<xf:macro template="metadata_macros" name="title" arg-title="{{ page_title() ?: $siteName }}" arg-output="{{ true }}" />
</xf:if>
<xf:if is="!$head.meta_description && $description is not empty && $pageDescriptionMeta">
<xf:macro template="metadata_macros" name="description" arg-description="{$description}" arg-output="{{ true }}" />
</xf:if>
<xf:if is="!$head.meta_share_url">
<xf:macro template="metadata_macros" name="share_url" arg-shareUrl="{$xf.fullUri}" arg-output="{{ true }}" />
</xf:if>
<xf:if is="!$head.meta_image_url && property('publicMetadataLogoUrl')">
<xf:macro template="metadata_macros" name="image_url"
arg-imageUrl="{{ base_url(property('publicMetadataLogoUrl'), true) }}"
arg-output="{{ true }}" />
</xf:if>
<xf:if is="property('metaThemeColor')">
<meta name="theme-color" content="{{ parse_less_color(property('metaThemeColor')) }}" />
</xf:if>
<xf:macro template="helper_js_global" name="head" arg-app="public" />
<xf:if is="property('publicFaviconUrl')">
<link rel="icon" type="image/png" href="{{ base_url(property('publicFaviconUrl'), true) }}" sizes="32x32" />
</xf:if>
<xf:if is="property('publicMetadataLogoUrl')">
<link rel="apple-touch-icon" href="{{ base_url(property('publicMetadataLogoUrl'), true) }}" />
</xf:if>
<xf:include template="google_analytics" />
</head>
<body data-template="{$template}">
<div class="p-pageWrapper" id="top">
<xf:if contentcheck="true">
<div class="p-staffBar">
<div class="p-staffBar-inner hScroller" data-xf-init="h-scroller">
<div class="hScroller-scroll">
<xf:contentcheck>
<xf:if contentcheck="true">
<a class="p-staffBar-link menuTrigger" data-xf-click="menu" data-xf-key="alt+m" role="button" tabindex="0" aria-expanded="false" aria-haspopup="true">{{ phrase('moderator') }}</a>
<div class="menu" data-menu="menu" aria-hidden="true">
<div class="menu-content">
<h4 class="menu-header">{{ phrase('moderator_tools') }}</h4>
<xf:contentcheck>
<!--[XF:mod_tools_menu:top]-->
<xf:if is="$xf.visitor.is_moderator">
<a href="{{ link('approval-queue') }}" class="menu-linkRow">{{ phrase('approval_queue') }}</a>
</xf:if>
<xf:if is="$xf.visitor.is_moderator && !$xf.options.reportIntoForumId">
<a href="{{ link('reports') }}" class="menu-linkRow" title="{{ $xf.session.reportCounts.lastBuilt ? phrase('last_report_update:') . ' ' . date_time($xf.session.reportCounts.lastBuilt) : '' }}">{{ phrase('reports') }}</a>
</xf:if>
<!--[XF:mod_tools_menu:bottom]-->
</xf:contentcheck>
</div>
</div>
</xf:if>
<xf:if is="$xf.visitor.is_moderator && $xf.session.unapprovedCounts.total">
<a href="{{ link('approval-queue') }}" class="p-staffBar-link badgeContainer badgeContainer--highlighted" data-badge="{$xf.session.unapprovedCounts.total|number}">
{{ phrase('approval_queue') }}
</a>
</xf:if>
<xf:if is="$xf.visitor.is_moderator && !$xf.options.reportIntoForumId && $xf.session.reportCounts.total">
<a href="{{ link('reports') }}"
class="p-staffBar-link link-report badgeContainer badgeContainer--visible {{ ($xf.session.reportCounts.total && ($xf.session.reportCounts.lastBuilt > $xf.session.reportLastRead) OR $xf.session.reportCounts.assigned) ? ' badgeContainer--highlighted' : '' }}"
data-badge="{{ $xf.session.reportCounts.assigned ? $xf.session.reportCounts.assigned|number . ' / ' . $xf.session.reportCounts.total|number : $xf.session.reportCounts.total|number }}"
title="{{ $xf.session.reportCounts.lastBuilt ? phrase('last_report_update:') . ' ' . date_time($xf.session.reportCounts.lastBuilt) : '' }}">
{{ phrase('reports') }}
</a>
</xf:if>
<xf:if is="$xf.visitor.is_admin">
<a href="{{ base_url('admin.php') }}" class="p-staffBar-link link-admin" target="_blank">{{ phrase('admin') }}</a>
</xf:if>
</xf:contentcheck>
</div>
</div>
</div>
</xf:if>
<header class="p-header hidden" id="header">
<div class="p-header-inner">
<div class="p-header-content">
<div class="p-header-logo p-header-logo--image">
<a href="{{ ($xf.options.logoLink && $xf.homePageUrl) ? $xf.homePageUrl : link('index') }}">
<img src="{{ base_url(property('publicLogoUrl')) }}"
alt="{$xf.options.boardTitle}"
{{ property('publicLogoUrl2x') ? 'srcset="' . base_url(property('publicLogoUrl2x')) . ' 2x"' : '' }} />
</a>
</div>
<xf:ad position="container_header" />
</div>
</div>
</header>
<xf:set var="$navHtml">
<nav class="p-nav">
<div class="p-nav-inner">
<a class="p-nav-menuTrigger" data-xf-click="off-canvas" data-menu=".js-headerOffCanvasMenu" role="button" tabindex="0">
<div class="line-menu">
<span class="item line1"></span>
<span class="item line2"></span>
<span class="item line3"></span>
</div>
<span class="p-nav-menuText">{{ phrase('menu') }}</span>
</a>
<div class="nav-logo-img hidden-xs">
<a href="{{ ($xf.options.logoLink && $xf.homePageUrl) ? $xf.homePageUrl : link('index') }}">
<img src="{{ base_url(property('publicLogoUrl')) }}"
alt="{$xf.options.boardTitle}"
{{ property('publicLogoUrl2x') ? 'srcset="' . base_url(property('publicLogoUrl2x')) . ' 2x"' : '' }} />
</a>
</div>
<div class="p-nav-smallLogo">
<a href="{{ ($xf.options.logoLink && $xf.homePageUrl) ? $xf.homePageUrl : link('index') }}">
<img src="{{ base_url(property('publicLogoUrl')) }}"
alt="{$xf.options.boardTitle}"
{{ property('publicLogoUrl2x') ? 'srcset="' . base_url(property('publicLogoUrl2x')) . ' 2x"' : '' }} />
</a>
</div>
<div class="p-nav-scroller hScroller" data-xf-init="h-scroller" data-auto-scroll=".p-navEl.is-selected">
<div class="hScroller-scroll">
<ul class="p-nav-list js-offCanvasNavSource">
<xf:foreach loop="$navTree" key="$navSection" value="$navEntry" i="$i" if="{{ $navSection != $xf.app.defaultNavigationId }}">
<li>
<xf:macro name="nav_entry"
arg-navId="{$navSection}"
arg-nav="{$navEntry}"
arg-selected="{{ $navSection == $pageSection }}"
arg-shortcut="{$i}" />
</li>
</xf:foreach>
</ul>
</div>
</div>
<div class="p-navgroup p-discovery">
<xf:if is="$xf.visitor.canSearch()">
<div class="control-search">
<img src="{{ base_url() }}styles/brivium/cerium/extra/search.png">
</div>
<div class="search-area" aria-hidden="true">
<form action="{{ link('search/search') }}" method="post"
class="menu-content"
data-xf-init="quick-search">
<!--[XF:search_menu:above_input]-->
<div class="menu-row search-input">
<xf:if is="$searchConstraints">
<div class="inputGroup inputGroup--joined">
<xf:textbox name="keywords"
placeholder="{{ phrase('search...') }}"
aria-label="{{ phrase('search') }}"
data-menu-autofocus="true" />
<xf:select name="constraints"
class="js-quickSearch-constraint"
aria-label="{{ phrase('search_within') }}">
<xf:option value="">{{ phrase('everywhere') }}</xf:option>
<xf:foreach loop="$searchConstraints" key="$constraintName" value="$constraint">
<xf:option value="{$constraint|json}">{$constraintName}</xf:option>
</xf:foreach>
</xf:select>
</div>
<xf:else />
<xf:textbox name="keywords"
placeholder="{{ phrase('search...') }}"
aria-label="{{ phrase('search') }}"
data-menu-autofocus="true" />
</xf:if>
</div>
<!--[XF:search_menu:above_title_only]-->
<div class="menu-row">
<xf:checkbox standalone="true"><xf:option name="c[title_only]" label="{{ phrase('search_titles_only') }}" /></xf:checkbox>
</div>
<!--[XF:search_menu:above_member]-->
<div class="menu-row">
<div class="inputGroup">
<span class="inputGroup-text" id="ctrl_search_menu_by_member">{{ phrase('by:') }}</span>
<input class="input" name="c[users]" data-xf-init="auto-complete" placeholder="{{ phrase('member')|for_attr }}" aria-labelledby="ctrl_search_menu_by_member" />
</div>
</div>
<div class="menu-footer">
<span class="menu-footer-controls">
<xf:button type="submit" class="button--primary" icon="search" />
<xf:button href="{{ link('search') }}">{{ phrase('advanced_search...') }}</xf:button>
</span>
</div>
<xf:csrf />
</form>
</div>
<div class="close-search hidden">
<img src="{{ base_url() }}styles/brivium/cerium/extra/close-sub.png">
</div>
</xf:if>
</div>
<div class="logo--mobile show-xs">
<xf:if is="property('BrvLogoMobile')">
<a href="{{ ($xf.options.logoLink && $xf.homePageUrl) ? $xf.homePageUrl : link('index') }}">
<img src="{{ base_url(property('BrvLogoMobile')) }}">
</a>
<xf:else />
<a href="{{ ($xf.options.logoLink && $xf.homePageUrl) ? $xf.homePageUrl : link('index') }}">
<img src="{{ base_url(property('publicLogoUrl')) }}"
alt="{$xf.options.boardTitle}"
{{ property('publicLogoUrl2x') ? 'srcset="' . base_url(property('publicLogoUrl2x')) . ' 2x"' : '' }} />
</a>
</xf:if>
</div>
<div class="p-nav-opposite">
<div class="p-navgroup p-account {{ $xf.visitor.user_id ? 'p-navgroup--member' : 'p-navgroup--guest' }}">
<xf:if is="$xf.visitor.user_id">
<xf:if is="$xf.visitor.user_state == 'rejected' OR $xf.visitor.user_state == 'disabled'">
<a href="{{ link('account') }}"
class="p-navgroup-link p-navgroup-link--iconic p-navgroup-link--user">
<xf:avatar user="$xf.visitor" size="xxs" href="" />
<span class="p-navgroup-linkText">{$xf.visitor.username}</span>
</a>
<a href="{{ link('logout', null, {'t': csrf_token()}) }}" class="p-navgroup-link">
<span class="p-navgroup-linkText">{{ phrase('log_out') }}</span>
</a>
<xf:else />
<a href="{{ link('account/alerts') }}"
class="p-navgroup-link hidden-xs p-navgroup-link--iconic p-navgroup-link--alerts js-badge--alerts badgeContainer{{ $xf.visitor.alerts_unread ? ' badgeContainer--highlighted' : '' }}"
data-badge="{$xf.visitor.alerts_unread|number}"
data-xf-click="menu"
data-xf-key="{{ phrase('shortcut.alerts_menu')|for_attr }}"
data-menu-pos-ref="< .p-navgroup"
aria-expanded="false"
aria-haspopup="true">
<img class="default-img" src="{{ base_url() }}styles/brivium/cerium/extra/alerts.png">
<span class="p-navgroup-linkText">{{ phrase('alerts') }}</span>
</a>
<div class="menu menu--structural content--alert--conver content--alert menu--medium" data-menu="menu" aria-hidden="true"
data-href="{{ link('account/alerts-popup') }}"
data-nocache="true"
data-load-target=".js-alertsMenuBody">
<div class="menu-content">
<h3 class="menu-header">{{ phrase('alerts') }}</h3>
<div class="ac_title_action">
<div class="ac_title">{{ phrase('alerts') }}</div>
<div class="ac_action">
<a href="{{ link('account/preferences') }}"><img class="default-img" src="{{ base_url() }}styles/brivium/cerium/extra/config.png"></a>
</div>
</div>
<div class="js-alertsMenuBody">
<div class="menu-row">{{ phrase('loading...') }}</div>
</div>
<div class="ac-showall-bottom">
<a href="{{ link('account/alerts') }}">{{ phrase('show_all...') }}</a>
</div>
<div class="menu-footer menu-footer--split hidden">
<span class="menu-footer-main">
<a href="{{ link('account/alerts') }}">{{ phrase('show_all...') }}</a>
</span>
<span class="menu-footer-opposite">
<a href="{{ link('account/preferences') }}">{{ phrase('preferences') }}</a>
</span>
</div>
</div>
</div>
<a href="{{ link('conversations') }}"
class="p-navgroup-link hidden-xs p-navgroup-link--iconic p-navgroup-link--conversations js-badge--conversations badgeContainer{{ $xf.visitor.conversations_unread ? ' badgeContainer--highlighted' : '' }}"
data-badge="{$xf.visitor.conversations_unread|number}"
data-xf-click="menu"
data-xf-key="{{ phrase('shortcut.conversations_menu')|for_attr }}"
data-menu-pos-ref="< .p-navgroup"
aria-expanded="false"
aria-haspopup="true">
<img class="default-img" src="{{ base_url() }}styles/brivium/cerium/extra/conver.png">
<span class="p-navgroup-linkText">{{ phrase('inbox') }}</span>
</a>
<div class="menu menu--structural content--alert--conver content--conver menu--medium" data-menu="menu" aria-hidden="true"
data-href="{{ link('conversations/popup') }}"
data-nocache="true"
data-load-target=".js-convMenuBody">
<div class="menu-content">
<h3 class="menu-header">{{ phrase('conversations') }}</h3>
<div class="ac_title_action">
<div class="ac_title">{{ phrase('conversations') }}</div>
<div class="ac_action">
<a href="{{ link('conversations/add') }}"><img class="default-img" src="{{ base_url() }}styles/brivium/cerium/extra/new-conver.png"></a>
</div>
</div>
<div class="js-convMenuBody">
<div class="menu-row">{{ phrase('loading...') }}</div>
</div>
<div class="ac-showall-bottom">
<a href="{{ link('conversations') }}">{{ phrase('show_all...') }}</a>
</div>
<div class="menu-footer menu-footer--split hidden">
<span class="menu-footer-main">
<a href="{{ link('conversations') }}">{{ phrase('show_all...') }}</a>
</span>
<span class="menu-footer-opposite">
<a href="{{ link('conversations/add') }}">{{ phrase('start_new_conversation') }}</a>
</span>
</div>
</div>
</div>
<a href="{{ link('account') }}"
class="p-navgroup-link p-navgroup-link--iconic p-navgroup-link--user badgeContainer {{ property('UserAvatar') ? 'show-avatar' : '' }}"
data-xf-click="menu"
data-conversation="{$xf.visitor.conversations_unread|number}"
data-alerts="{$xf.visitor.alerts_unread|number}"
data-badge=""
data-xf-key="{{ phrase('shortcut.visitor_menu')|for_attr }}"
data-menu-pos-ref="< .p-navgroup"
aria-expanded="false"
aria-haspopup="true">
<xf:if is="property('UserAvatar')">
<xf:avatar user="$xf.visitor" size="xxs" href="" />
<xf:else/>
<img class="default-img" src="{{ base_url() }}styles/brivium/cerium/extra/account.png">
</xf:if>
<span class="p-navgroup-linkText">{$xf.visitor.username}</span>
</a>
<div class="menu menu--structural menu--medium menu--account" data-menu="menu" aria-hidden="true">
<div class="menu--account__content">
<xf:macro template="account_visitor_menu" name="content_member_visitor"/>
</div>
</div>
</xf:if>
<xf:else />
<a href="{{ link('login') }}" class="p-navgroup-link p-navgroup-link--textual p-navgroup-link--logIn"
data-xf-click="overlay" data-follow-redirects="on">
<span class="p-navgroup-linkText">{{ phrase('log_in') }}</span>
<img class="ico--mobile" src="{{ base_url() }}styles/brivium/cerium/extra/account.png">
</a>
<xf:if is="$xf.options.registrationSetup.enabled">
<a href="{{ link('register') }}" class="p-navgroup-link p-navgroup-link--textual p-navgroup-link--register"
data-xf-click="overlay" data-follow-redirects="on">
<span class="p-navgroup-linkText">{{ phrase('register') }}</span>
</a>
</xf:if>
</xf:if>
</div>
</div>
</div>
</nav>
</xf:set>
<xf:set var="$subNavHtml">
<xf:if is="$selectedNavChildren is not empty">
<div class="p-sectionLinks">
<div class="p-sectionLinks-inner hScroller" data-xf-init="h-scroller">
<div class="hScroller-scroll">
<ul class="p-sectionLinks-list">
<xf:foreach loop="$selectedNavChildren" key="$navId" value="$navEntry" i="$i">
<li>
<xf:macro name="nav_entry" arg-navId="{$navId}" arg-nav="{$navEntry}" arg-shortcut="alt+{$i}" />
</li>
</xf:foreach>
</ul>
</div>
</div>
</div>
<xf:elseif is="{$selectedNavEntry}" />
<div class="p-sectionLinks p-sectionLinks--empty"></div>
</xf:if>
</xf:set>
<xf:if is="property('publicNavSticky') == 'primary'">
<div class="p-navSticky p-navSticky--primary" data-xf-init="sticky-header">
{$navHtml|raw}
</div>
{$subNavHtml|raw}
<xf:elseif is="property('publicNavSticky') == 'all'" />
<div class="p-navSticky p-navSticky--all" data-xf-init="sticky-header">
{$navHtml|raw}
{$subNavHtml|raw}
</div>
<xf:else />
{$navHtml|raw}
{$subNavHtml|raw}
</xf:if>
<div class="offCanvasMenu offCanvasMenu--nav js-headerOffCanvasMenu" data-menu="menu" aria-hidden="true" data-ocm-builder="navigation">
<div class="offCanvasMenu-backdrop" data-menu-close="true"></div>
<div class="offCanvasMenu-content">
<div class="offCanvasMenu-header">
{{ phrase('menu') }}
<a class="offCanvasMenu-closer" data-menu-close="true" role="button" tabindex="0" aria-label="{{ phrase('close')|for_attr }}"></a>
</div>
<xf:if is="$xf.visitor.user_id">
<div class="p-offCanvasAccountLink">
<div class="offCanvasMenu-linkHolder">
<a href="{{ link('account') }}" class="offCanvasMenu-link">
<xf:avatar user="$xf.visitor" size="xxs" href="" />
{$xf.visitor.username}
</a>
</div>
<hr class="offCanvasMenu-separator" />
</div>
<xf:else />
<div class="p-offCanvasRegisterLink">
<div class="offCanvasMenu-linkHolder">
<a href="{{ link('login') }}" class="offCanvasMenu-link" data-xf-click="overlay" data-menu-close="true">
{{ phrase('log_in') }}
</a>
</div>
<hr class="offCanvasMenu-separator" />
<xf:if is="$xf.options.registrationSetup.enabled">
<div class="offCanvasMenu-linkHolder">
<a href="{{ link('register') }}" class="offCanvasMenu-link" data-xf-click="overlay" data-menu-close="true">
{{ phrase('register') }}
</a>
</div>
<hr class="offCanvasMenu-separator" />
</xf:if>
</div>
</xf:if>
<div class="js-offCanvasNavTarget"></div>
</div>
</div>
<div class="brv-custom-notices parallax-box">
<div class="brv-custom-notices--inner">
<xf:if is="$notices.block">
<xf:macro template="notice_macros" name="notice_list" arg-type="block" arg-notices="{$notices.block}" />
</xf:if>
<xf:if is="$notices.scrolling">
<xf:macro template="notice_macros" name="notice_list" arg-type="scrolling" arg-notices="{$notices.scrolling}" />
</xf:if>
</div>
</div>
<div class="bread-action bread-action--top">
<div class="bread-action--inner">
<xf:ad position="container_breadcrumb_top_above" />
<xf:macro name="breadcrumbs"
arg-breadcrumbs="{$breadcrumbs}"
arg-navTree="{$navTree}"
arg-selectedNavEntry="{$selectedNavEntry}" />
<xf:ad position="container_breadcrumb_top_below" />
</div>
</div>
<div class="p-body">
<div class="p-body-inner">
<!--XF:EXTRA_OUTPUT-->
<xf:macro template="browser_warning_macros" name="javascript" />
<xf:macro template="browser_warning_macros" name="browser" />
<xf:if is="$headerHtml is not empty">
<div class="p-body-header">
{$headerHtml|raw}
</div>
<xf:elseif contentcheck="true" />
<div class="p-body-header{{ property('PageTitle') ? ' hidden-page-title' : '' }}">
<xf:contentcheck>
<xf:if contentcheck="true">
<div class="p-title {{ $noH1 ? 'p-title--noH1' : '' }}">
<xf:contentcheck>
<xf:if is="!$noH1">
<h1 class="p-title-value">{$h1}</h1>
</xf:if>
<xf:if contentcheck="true">
<div class="p-title-pageAction"><xf:contentcheck><xf:pageaction /></xf:contentcheck></div>
</xf:if>
</xf:contentcheck>
</div>
</xf:if>
<xf:if is="$description is not empty">
<div class="p-description">{$description}</div>
</xf:if>
</xf:contentcheck>
</div>
</xf:if>
<div class="p-body-main {{ $sidebar ? 'p-body-main--withSidebar' : '' }} {{ $sideNav ? 'p-body-main--withSideNav' : '' }}">
<div class="p-body-content">
<xf:ad position="container_content_above" />
<div class="p-body-pageContent">{$content|raw}</div>
<xf:ad position="container_content_below" />
<div class="bread-action bread-action--bottom">
<xf:ad position="container_breadcrumb_bottom_above" />
<xf:macro name="breadcrumbs"
arg-breadcrumbs="{$breadcrumbs}"
arg-navTree="{$navTree}"
arg-selectedNavEntry="{$selectedNavEntry}"
arg-variant="bottom" />
<xf:ad position="container_breadcrumb_bottom_below" />
</div>
</div>
<xf:if is="$sideNav">
<div class="p-body-sideNav">
<div class="p-body-sideNavTrigger">
<xf:button class="button--link" data-xf-click="off-canvas" data-menu="#js-SideNavOcm">
{{ $sideNavTitle ?: phrase('navigation') }}
</xf:button>
</div>
<div class="p-body-sideNavInner" data-ocm-class="offCanvasMenu offCanvasMenu--blocks" id="js-SideNavOcm" data-ocm-builder="sideNav">
<div data-ocm-class="offCanvasMenu-backdrop" data-menu-close="true"></div>
<div data-ocm-class="offCanvasMenu-content">
<div class="p-body-sideNavContent">
<xf:ad position="container_sidenav_above" />
<xf:foreach loop="$sideNav" value="$sideNavHtml">
{$sideNavHtml}
</xf:foreach>
<xf:ad position="container_sidenav_below" />
</div>
</div>
</div>
</div>
</xf:if>
<xf:if is="$sidebar">
<div class="p-body-sidebar">
<xf:ad position="container_sidebar_above" />
<xf:foreach loop="$sidebar" value="$sidebarHtml">
{$sidebarHtml}
</xf:foreach>
<xf:ad position="container_sidebar_below" />
</div>
</xf:if>
</div>
</div>
</div>
<footer class="p-footer" id="footer">
<div class="p-footer-inner">
<div class="footer-custom">
<div class="row">
<div class="footer-column footer-column-1">
{{ property('FooterColumn1') }}
</div>
<div class="footer-column footer-column-2">
<div class="footer-column-linklist">
<div class="p-footer-row-opposite">
<ul class="p-footer-linkList">
<xf:if is="$xf.visitor.canUseContactForm()">
<xf:if is="$xf.options.contactUrl.type == 'default'">
<li><a href="{{ link('misc/contact') }}" data-xf-click="overlay">{{ phrase('contact_us') }}</a></li>
<xf:elseif is="$xf.options.contactUrl.type == 'custom'" />
<li><a href="{$xf.options.contactUrl.custom}" data-xf-click="{{ $xf.options.contactUrl.overlay ? 'overlay' : '' }}">{{ phrase('contact_us') }}</a></li>
</xf:if>
</xf:if>
<xf:if is="$xf.tosUrl">
<li><a href="{$xf.tosUrl}">{{ phrase('terms_and_rules') }}</a></li>
</xf:if>
<xf:if is="$xf.privacyPolicyUrl">
<li><a href="{$xf.privacyPolicyUrl}">{{ phrase('privacy_policy') }}</a></li>
</xf:if>
<xf:if is="$xf.helpPageCount">
<li><a href="{{ link('help') }}">{{ phrase('help') }}</a></li>
</xf:if>
<xf:if is="$xf.homePageUrl">
<li><a href="{$xf.homePageUrl}">{{ phrase('home') }}</a></li>
</xf:if>
<li><a href="{{ link('forums/index.rss', '-') }}" target="_blank" class="p-footer-rssLink" title="{{ phrase('rss')|for_attr }}"><span aria-hidden="true"><i class="fa fa-rss"></i></span></a></li>
</ul>
</div>
</div>
</div>
<div class="footer-column footer-column-3">
<div class="brv-subscribe">
<form action="{{ property('FooterColumn3') }}" method="post" target="_blank" name="mc-embedded-subscribe-form">
<div class="input-group">
<input id="fc-email" type="email" value="" name="EMAIL" class="input-group-field" aria-label="">
<button type="submit" class="btn-button" name="subscribe">subscribe</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<div class="footer-bottom">
<div class="p-footer-inner">
<div class="footer-bottom-content">
<div class="p-footer-copyright">
<div class="BRCopyright">
<style>@media (max-width:480px){.Responsive #BRCopyright span{display: none;}}</style>
<div class="content-brcpright">
<a href="http://brivium.com/xenforo-add-ons" class="item-brcp" title="Brivium XenForo Add-ons">XenForo Add-ons</a>
<span>&</span>
<a href="http://brivium.com/xenforo-styles" class="item-brcp" title="Brivium XenForo Styles">XenForo Styles</a>
<span> ™ © 2012-2018 Brivium LLC.</span>
</div>
</div>
</div>
<div class="p-footer-middle">
<xf:if contentcheck="true">
<xf:contentcheck>
<xf:if is="$xf.visitor.canChangeStyle()">
<a href="{{ link('misc/style') }}" data-xf-click="overlay"
data-xf-init="tooltip" title="{{ phrase('style_chooser')|for_attr }}" rel="nofollow">
<i class="fa fa-cog" aria-hidden="true"></i> {$xf.style.title}
</a>
</xf:if>
</xf:contentcheck>
<xf:contentcheck>
<xf:if is="$xf.visitor.canChangeLanguage()">
<a href="{{ link('misc/language') }}" data-xf-click="overlay"
data-xf-init="tooltip" title="{{ phrase('language_chooser')|for_attr }}" rel="nofollow">
<i class="fa fa-globe" aria-hidden="true"></i> {$xf.language.title}</a>
</xf:if>
</xf:contentcheck>
</xf:if>
</div>
<div class="footer-copyright">
<xf:if contentcheck="true">
<div class="p-footer-copyright">
<xf:contentcheck>
<xf:copyright />
{{ phrase('extra_copyright') }}
</xf:contentcheck>
</div>
</xf:if>
</div>
</div>
</div>
</div>
<xf:if contentcheck="true">
<div class="p-footer-debug" style="text-align: center; padding: 15px;">
<xf:contentcheck>
<xf:macro template="debug_macros" name="debug"
arg-controller="{$controller}"
arg-action="{$actionMethod}"
arg-template="{$template}" />
</xf:contentcheck>
</div>
</xf:if>
</footer>
</div> <!-- closing p-pageWrapper -->
<div class="u-bottomFixer js-bottomFixTarget">
<xf:if is="$notices.floating">
<xf:macro template="notice_macros" name="notice_list" arg-type="floating" arg-notices="{$notices.floating}" />
</xf:if>
<xf:if is="$notices.bottom_fixer">
<xf:macro template="notice_macros" name="notice_list" arg-type="bottom_fixer" arg-notices="{$notices.bottom_fixer}" />
</xf:if>
</div>
<xf:if is="property('scrollJumpButtons')">
<div class="u-scrollButtons js-scrollButtons" data-trigger-type="{{ property('scrollJumpButtons') }}">
<xf:button href="#top" class="button--scroll" data-xf-click="scroll-to"><i class="fa fa-arrow-up"></i><span class="u-srOnly">{{ phrase('top') }}</span></xf:button>
<xf:if is="property('scrollJumpButtons') != 'up'">
<xf:button href="#footer" class="button--scroll" data-xf-click="scroll-to"><i class="fa fa-arrow-down"></i><span class="u-srOnly">{{ phrase('bottom') }}</span></xf:button>
</xf:if>
</div>
</xf:if>
<xf:macro template="helper_js_global" name="body" arg-app="public" arg-jsState="{$jsState}" />
<script src="{{ base_url() }}js/brivium/cerium/function.js"></script>
{$ldJsonHtml|raw}
</body>
</html>
<xf:macro name="nav_entry" arg-navId="!" arg-nav="!" arg-selected="{{ false }}" arg-shortcut="">
<div class="p-navEl {{ $selected ? 'is-selected' : '' }}" {{ $nav.children ? 'data-has-children="true"' : '' }}>
<xf:if is="$nav.href">
<xf:macro name="nav_link"
arg-navId="{$navId}"
arg-nav="{$nav}"
arg-class="p-navEl-link {{ $nav.children ? 'p-navEl-link--splitMenu' : '' }}"
arg-shortcut="{{ $nav.children ? false : $shortcut }}" />
<xf:if is="$nav.children"><a data-xf-key="{$shortcut}"
data-xf-click="menu"
data-menu-pos-ref="< .p-navEl"
data-arrow-pos-ref="< .p-navEl"
class="p-navEl-splitTrigger"
role="button"
tabindex="0"
aria-label="{{ phrase('toggle_expanded') }}"
aria-expanded="false"
aria-haspopup="true"></a></xf:if>
<xf:elseif is="$nav.children" /><a data-xf-key="{$shortcut}"
data-xf-click="menu"
data-menu-pos-ref="< .p-navEl"
data-arrow-pos-ref="< .p-navEl"
class="p-navEl-linkHolder"
role="button"
tabindex="0"
aria-expanded="false"
aria-haspopup="true">
<xf:macro name="nav_link"
arg-navId="{$navId}"
arg-nav="{$nav}"
arg-class="p-navEl-link p-navEl-link--menuTrigger" />
</a>
<xf:else />
<xf:macro name="nav_link"
arg-navId="{$navId}"
arg-nav="{$nav}"
arg-class="p-navEl-link"
arg-shortcut="{$shortcut}" />
</xf:if>
<xf:if is="$nav.children">
<div class="menu menu--structural sub-main-menu" data-menu="menu" aria-hidden="true">
<div class="menu-content">
<!--<h4 class="menu-header">{$nav.title}</h4>-->
<xf:foreach loop="$nav.children" key="$childNavId" value="$child">
<xf:macro name="nav_menu_entry"
arg-navId="{$childNavId}"
arg-nav="{$child}" />
</xf:foreach>
</div>
</div>
</xf:if>
</div>
</xf:macro>
<xf:macro name="nav_link" arg-navId="!" arg-nav="!" arg-class="" arg-titleHtml="" arg-shortcut="{{ false }}">
<xf:set var="$tag" value="{{ $nav.href ? 'a' : 'span' }}" />
<{$tag} {{ $nav.href ? 'href="' . $nav.href . '"' : '' }}
class="{{ trim($class) }} {$nav.attributes.class}"
{{ attributes($nav.attributes, ['class']) }}
{{ $shortcut !== false ? 'data-xf-key="' . $shortcut . '"' : '' }}
data-nav-id="{$navId}"><xf:if is="$nav.icon"><i class="fa {$nav.icon}" aria-hidden="true"></i> </xf:if>{{ $titleHtml ? $titleHtml|raw : $nav.title }}<xf:if is="$nav.counter"> <span class="badge badge--highlighted">{$nav.counter|number}</span></xf:if></{$tag}>
</xf:macro>
<xf:macro name="nav_menu_entry" arg-navId="!" arg-nav="!" arg-depth="0">
<xf:macro name="nav_link"
arg-navId="{$navId}"
arg-nav="{$nav}"
arg-class="menu-linkRow u-indentDepth{$depth} js-offCanvasCopy" />
<xf:if is="$nav.children">
<xf:foreach loop="$nav.children" key="$childNavId" value="$child">
<xf:macro name="nav_menu_entry"
arg-navId="{$childNavId}"
arg-nav="{$child}"
arg-depth="{{ $depth + 1 }}" />
</xf:foreach>
<xf:if is="$depth == 0">
<hr class="menu-separator" />
</xf:if>
</xf:if>
</xf:macro>
<xf:macro name="breadcrumbs" arg-breadcrumbs="!" arg-navTree="!" arg-selectedNavEntry="{{ null }}" arg-variant="">
<xf:if contentcheck="true">
<ul class="p-breadcrumbs {{ $variant ? 'p-breadcrumbs--' . $variant : '' }}"
itemscope itemtype="https://schema.org/BreadcrumbList">
<xf:contentcheck>
<xf:set var="$position" value="{{ 0 }}" />
<xf:set var="$rootBreadcrumb" value="{$navTree.{$xf.options.rootBreadcrumb}}" />
<xf:if is="$rootBreadcrumb AND $rootBreadcrumb.href != $xf.uri">
<xf:set var="$position" value="{{ $position + 1 }}" />
<xf:macro name="crumb"
arg-position="{$position}"
arg-href="{$rootBreadcrumb.href}"
arg-value="{$rootBreadcrumb.title}" />
</xf:if>
<xf:if is="$selectedNavEntry && $selectedNavEntry.href && $selectedNavEntry.href != $xf.uri && $selectedNavEntry.href != $rootBreadcrumb.href">
<xf:set var="$position" value="{{ $position + 1 }}" />
<xf:macro name="crumb"
arg-position="{$position}"
arg-href="{$selectedNavEntry.href}"
arg-value="{$selectedNavEntry.title}" />
</xf:if>
<xf:foreach loop="$breadcrumbs" value="$breadcrumb" if="$breadcrumb.href != $xf.uri">
<xf:set var="$position" value="{{ $position + 1 }}" />
<xf:macro name="crumb"
arg-position="{$position}"
arg-href="{$breadcrumb.href}"
arg-value="{$breadcrumb.value}" />
</xf:foreach>
</xf:contentcheck>
</ul>
</xf:if>
</xf:macro>
<xf:macro name="crumb" arg-href="!" arg-value="!" arg-position="{{ 0 }}">
<li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a href="{$href}" itemprop="item">
<span itemprop="name">{$value}</span>
</a>
<xf:if is="$position"><meta itemprop="position" content="{$position}" /></xf:if>
</li>
</xf:macro>]]></template>
<template title="account_visitor_menu" type="public" addon_id="XF" version_id="2000670" version_string="2.0.6"><![CDATA[<div class="menu-row menu-row--highlighted">
<xf:macro name="visitor_panel_row" />
</div>
<xf:macro name="visitor_panel_row">
<div class="contentRow">
<div class="contentRow-figure">
<xf:avatar user="{$xf.visitor}" size="m" href="" notooltip="true" update="{{ link('account/avatar', $xf.visitor) }}" />
</div>
<div class="contentRow-main">
<h3 class="contentRow-header"><xf:username user="$xf.visitor" rich="true" notooltip="true" /></h3>
<div class="contentRow-lesser">
<xf:usertitle user="$xf.visitor" />
</div>
<div class="contentRow-minor">
<!--[XF:stats_pairs:above_messages]-->
<dl class="pairs pairs--justified fauxBlockLink">
<dt>{{ phrase('messages') }}</dt>
<dd>
<a href="{{ link('search/member', null, {'user_id': $xf.visitor.user_id}) }}" class="fauxBlockLink-linkRow u-concealed">
{$xf.visitor.message_count|number}
</a>
</dd>
</dl>
<!--[XF:stats_pairs:above_likes]-->
<dl class="pairs pairs--justified fauxBlockLink">
<dt>{{ phrase('likes') }}</dt>
<dd>
<a href="{{ link('account/likes') }}" class="fauxBlockLink-linkRow u-concealed">
{$xf.visitor.like_count|number}
</a>
</dd>
</dl>
<!--[XF:stats_pairs:above_points]-->
<xf:if is="$xf.options.enableTrophies">
<dl class="pairs pairs--justified fauxBlockLink">
<dt>{{ phrase('trophy_points') }}</dt>
<dd>
<a href="{{ link('members/trophies', $xf.visitor) }}" data-xf-click="overlay" class="fauxBlockLink-linkRow u-concealed">
{$xf.visitor.trophy_points|number}
</a>
</dd>
</dl>
</xf:if>
</div>
</div>
</div>
</xf:macro>
<xf:macro name="content_member_visitor">
<div class="user-visitor-avatar">
<xf:avatar user="{$xf.visitor}" size="s" href="" notooltip="true"/>
<h3 class="contentRow-header"><xf:username user="$xf.visitor" rich="true" notooltip="true" /></h3>
<div class="brv--mobile--link">
<a class="mobile--link__item" data-badge="{$xf.visitor.conversations_unread|number}" href="{{ link('conversations') }}"><i class="fa fa-envelope-o" aria-hidden="true"></i></a>
<a class="mobile--link__item" data-badge="{$xf.visitor.alerts_unread|number}" href="{{ link('account/alerts') }}"><i class="fa fa-bell-o" aria-hidden="true"></i></a>
</div>
</div>
<div class="user-visitor-update-status">
<xf:if is="$xf.visitor.canPostOnProfile()">
<xf:form action="{{ link('members/post', $xf.visitor) }}" ajax="true"
data-redirect="off"
data-reset-complete="true"
data-no-auto-focus="true"
class="user-update-status">
<xf:textarea name="message" rows="1" autosize="true"
maxlength="{$xf.options.profilePostMaxLength}"
placeholder="{{ phrase('update_your_status...') }}"
data-xf-init="focus-trigger user-mentioner" data-display="< :next" />
<div class="u-hidden u-hidden--transition u-inputSpacer">
<xf:button type="submit" class="button--primary">{{ phrase('post_verb') }}</xf:button>
</div>
</xf:form>
</xf:if>
</div>
<ul class="links-list">
<!--[XF:account_links:top]-->
<li><a href="{{ link('account/privacy') }}" class="menu-linkRow"><img class="image-click" src="{{ base_url() }}styles/brivium/cerium/extra/ac-1-w.png"><img class="image-default" src="{{ base_url() }}styles/brivium/cerium/extra/ac-1.png">{{ phrase('privacy') }}</a></li>
<li><a href="{{ link('account/preferences') }}" class="menu-linkRow"><img class="image-click" src="{{ base_url() }}styles/brivium/cerium/extra/ac-2-w.png"><img class="image-default" src="{{ base_url() }}styles/brivium/cerium/extra/ac-2.png">{{ phrase('preferences') }}</a></li>
<li><a href="{{ link('account/security') }}" class="menu-linkRow"><img class="image-click" src="{{ base_url() }}styles/brivium/cerium/extra/ac-3-w.png"><img class="image-default" src="{{ base_url() }}styles/brivium/cerium/extra/ac-3.png">{{ phrase('password') }}</a></li>
<li><a href="{{ link('search/member', null, {'user_id': $xf.visitor.user_id}) }}" class="menu-linkRow"><img class="image-click" src="{{ base_url() }}styles/brivium/cerium/extra/ac-4-w.png"><img class="image-default" src="{{ base_url() }}styles/brivium/cerium/extra/ac-4.png">{{ phrase('your_content') }}</a></li>
<li><a href="{{ link('account/preferences') }}" class="menu-linkRow"><img class="image-click" src="{{ base_url() }}styles/brivium/cerium/extra/ac-5-w.png"><img class="image-default" src="{{ base_url() }}styles/brivium/cerium/extra/ac-5.png">{{ phrase('alerts') }} {{ phrase('preferences') }}</a></li>
<li><a href="{{ link('account/account-details') }}" class="menu-linkRow"><img class="image-click" src="{{ base_url() }}styles/brivium/cerium/extra/ac-6-w.png"><img class="image-default" src="{{ base_url() }}styles/brivium/cerium/extra/ac-6.png">{{ phrase('account_details') }}</a></li>
<li><a href="{{ link('logout', null, {'t': csrf_token()}) }}" class="menu-linkRow"><img class="image-click" src="{{ base_url() }}styles/brivium/cerium/extra/ac-7-w.png"><img class="image-default" src="{{ base_url() }}styles/brivium/cerium/extra/ac-7.png">{{ phrase('log_out') }}</a></li>
<!--[XF:account_links:bottom]-->
</ul>
</xf:macro>
<!--[XF:menu_separator:below_visitor_panel]-->
<hr class="menu-separator menu-separator--hard" />
<ul class="listPlain listColumns listColumns--narrow listColumns--together">
<!--[XF:content_links:top]-->
<xf:if is="$xf.options.enableNewsFeed">
<li><a href="{{ link('whats-new/news-feed') }}" class="menu-linkRow">{{ phrase('news_feed') }}</a></li>
</xf:if>
<li><a href="{{ link('search/member', null, {'user_id': $xf.visitor.user_id}) }}" class="menu-linkRow">{{ phrase('your_content') }}</a></li>
<li><a href="{{ link('account/likes') }}" class="menu-linkRow">{{ phrase('likes_received') }}</a></li>
<!--[XF:content_links:bottom]-->
</ul>
<!--[XF:menu_separator:below_content_links]-->
<hr class="menu-separator" />
<ul class="listPlain listColumns listColumns--narrow listColumns--together">
<!--[XF:account_links:top]-->
<li><a href="{{ link('account/account-details') }}" class="menu-linkRow">{{ phrase('account_details') }}</a></li>
<li><a href="{{ link('account/security') }}" class="menu-linkRow">{{ phrase('password_and_security') }}</a></li>
<li><a href="{{ link('account/privacy') }}" class="menu-linkRow">{{ phrase('privacy') }}</a></li>
<li><a href="{{ link('account/preferences') }}" class="menu-linkRow">{{ phrase('preferences') }}</a></li>
<xf:if is="$xf.visitor.canEditSignature()">
<li><a href="{{ link('account/signature') }}" class="menu-linkRow">{{ phrase('signature') }}</a></li>
</xf:if>
<xf:if is="$xf.app.userUpgradeCount">
<li><a href="{{ link('account/upgrades') }}" class="menu-linkRow">{{ phrase('account_upgrades') }}</a></li>
</xf:if>
<xf:if is="$xf.app.connectedAccountCount">
<li><a href="{{ link('account/connected-accounts') }}" class="menu-linkRow">{{ phrase('connected_accounts') }}</a></li>
</xf:if>
<li><a href="{{ link('account/following') }}" class="menu-linkRow">{{ phrase('following') }}</a></li>
<li><a href="{{ link('account/ignored') }}" class="menu-linkRow">{{ phrase('ignoring') }}</a></li>
<!--[XF:account_links:bottom]-->
</ul>
<!--[XF:menu_separator:below_account_links]-->
<hr class="menu-separator" />
<a href="{{ link('logout', null, {'t': csrf_token()}) }}" class="menu-linkRow">{{ phrase('log_out') }}</a>
<xf:if is="$xf.visitor.canPostOnProfile()">
<xf:form action="{{ link('members/post', $xf.visitor) }}" ajax="true"
data-redirect="off"
data-reset-complete="true"
data-no-auto-focus="true"
class="menu-footer">
<span class="u-srOnly" id="ctrl_message">{{ phrase('update_your_status:') }}</span>
<xf:textarea name="message" rows="1" autosize="true"
maxlength="{$xf.options.profilePostMaxLength}"
placeholder="{{ phrase('update_your_status...') }}"
data-xf-init="focus-trigger user-mentioner" data-display="< :next" aria-labelledby="ctrl_message" />
<div class="u-hidden u-hidden--transition u-inputSpacer">
<xf:button type="submit" class="button--primary">{{ phrase('post_verb') }}</xf:button>
</div>
</xf:form>
</xf:if>]]></template>
<template title="account_visitor_sidebar" type="public" addon_id="" version_id="0" version_string=""><![CDATA[<div class="menu-row menu-row--highlighted">
<xf:macro name="visitor_panel_row_sidebar" />
</div>
<xf:macro name="visitor_panel_row_sidebar">
<div class="content-inner">
<div class="contentRow-avatar">
<xf:avatar user="{$xf.visitor}" size="s" href="" notooltip="true" update="{{ link('account/avatar', $xf.visitor) }}" />
</div>
<div class="contentrow-username">
<h3 class="contentRow-header"><xf:username user="$xf.visitor" rich="true" notooltip="true" /></h3>
</div>
<div class="contentRow-main">
<div class="contentRow-minor">
<!--[XF:stats_pairs:above_messages]-->
<dl class="pairs pairs--justified fauxBlockLink">
<dt><img src="{{ base_url() }}styles/brivium/cerium/extra/n_mess.png"></dt>
<dd>
<a href="{{ link('search/member', null, {'user_id': $xf.visitor.user_id}) }}" class="fauxBlockLink-linkRow u-concealed">
{$xf.visitor.message_count|number}
</a>
</dd>
</dl>
<!--[XF:stats_pairs:above_likes]-->
<dl class="pairs pairs--justified fauxBlockLink">
<dt><img src="{{ base_url() }}styles/brivium/cerium/extra/n_like.png"></dt>
<dd>
<a href="{{ link('account/likes') }}" class="fauxBlockLink-linkRow u-concealed">
{$xf.visitor.like_count|number}
</a>
</dd>
</dl>
<!--[XF:stats_pairs:above_points]-->
<xf:if is="$xf.options.enableTrophies">
<dl class="pairs pairs--justified fauxBlockLink">
<dt><img src="{{ base_url() }}styles/brivium/cerium/extra/n_point.png"></dt>
<dd>
<a href="{{ link('members/trophies', $xf.visitor) }}" data-xf-click="overlay" class="fauxBlockLink-linkRow u-concealed">
{$xf.visitor.trophy_points|number}
</a>
</dd>
</dl>
</xf:if>
</div>
</div>
</div>
</xf:macro>]]></template>
<template title="alert_macros" type="public" addon_id="XF" version_id="2000470" version_string="2.0.4"><![CDATA[<xf:macro name="row" arg-alert="!">
<div class="contentRow">
<div class="contentRow-figure">
<xf:avatar user="$alert.User" size="xxs" defaultname="{$alert.username}" />
</div>
<div class="contentRow-main contentRow-main--close">
<div class="contentRow-minor contentRow-minor--smaller alerts-time">
<xf:date time="$alert.event_date" />
</div>
{$alert.render()|raw}
</div>
</div>
</xf:macro>]]></template>
<template title="app_body.less" type="public" addon_id="XF" version_id="2000470" version_string="2.0.4"><![CDATA[// ######################################### MAIN BODY #################################
@font-face {
font-family: 'Cerium';
font-style: normal;
font-weight: 300;
src: url('{{ base_url() }}styles/fonts/cerium/Cerium-Light.eot');
src: url('{{ base_url() }}styles/fonts/cerium/Cerium-Light.eot') format('embedded-opentype'),
url('{{ base_url() }}styles/fonts/cerium/Cerium-Light.woff') format('woff'),
url('{{ base_url() }}styles/fonts/cerium/Cerium-Light.ttf') format('truetype'),
url('{{ base_url() }}styles/fonts/cerium/Cerium-Light.svg') format('svg');
}
@font-face {
font-family: 'Cerium';
font-style: normal;
font-weight: 400;
src: url('{{ base_url() }}styles/fonts/cerium/Cerium-Regular.eot');
src: url('{{ base_url() }}styles/fonts/cerium/Cerium-Regular.eot') format('embedded-opentype'),
url('{{ base_url() }}styles/fonts/cerium/Cerium-Regular.woff') format('woff'),
url('{{ base_url() }}styles/fonts/cerium/Cerium-Regular.ttf') format('truetype'),
url('{{ base_url() }}styles/fonts/cerium/Cerium-Regular.svg') format('svg');
}
//p-body
html[dir="RTL"]{
.p-body .p-body-inner .p-body-sidebar .block.member-visitor .content-inner .contentRow-figure .member-avarta .avatar span{
transform: translate(50%, -50%);
}
html[data-template=forum_view] .p-body .p-body-inner .p-body-header .p-title .p-title-pageAction .button--icon--write:after,
body[data-template=forum_list] .p-body .p-body-inner .p-body-header .p-title .p-title-pageAction .button--icon--write:after{
transform: translate(50%, -50%) !important;
}
.pageNav .pageNav-jump{
transform: rotateY(180deg) !important;
}
.block--messages .message .message-inner .message-cell--main .main-user-message .part-right .action-user{
transform: translateX(-20px) !important;
.control_action{
margin-left: 12px;
}
}
.p-body .p-body-inner .p-body-main .p-body-content .p-body-pageContent .block .block-container .block-body .node .node-body .node-main .node-extra .node-extra-row:after{
transform: translateY(-50%) rotateY(180deg) !important;
}
.p-nav .p-nav-inner .p-nav-opposite .p-navgroup.p-navgroup--member a,
.offCanvasMenu--nav .offCanvasMenu-content .offCanvasMenu-header .offCanvasMenu-closer{
transform: rotateY(180deg) !important;
}
}
body{
&[data-template="xfrm_author_view"],
&[data-template="xfrm_latest_reviews"],
&[data-template="account_details"],
&[data-template="watched_threads_list"],
&[data-template="watched_forums_list"],
&[data-template="xfmg_watched_categories"],
&[data-template="category_view"]{
.p-body{
.p-body-inner{
.p-body-header{
text-align: center;
.p-title{
.p-title-value{
margin: 0 auto;
}
}
}
}
}
}
}
div[data-widget-definition="xfmg_media_slider"]{
width: 100%;
overflow: hidden;
margin-bottom: 0px;
.block-body{
padding-left: 0;
padding-right: 0;
}
}
[data-template="category_view"],
[data-template="forum_view"],
[data-template="forum_list"]{
.p-body-content .block-body{
display: flex;
flex-flow: row wrap;
}
}
[data-template="category_view"]{
.p-body{
.p-body-inner{
.p-body-main{
.p-body-content{
.p-body-pageContent{
.block-container{
.block-body{
margin: 0 -15px;
}
}
}
}
}
}
}
}
body[data-template="login"]{
#box-login-popup{
.tab-login{
display: none;
}
}
}
body[data-template="forum_list"]{
.p-body{
.p-body-inner{
.p-body-header{
position: relative;
&.hidden-page-title{
display: none;
}
}
.p-body-content{
.p-body-pageContent{
.block-container{
.block-header{
overflow: hidden;
a{
padding-right: 20px;
position: relative;
&:before{
content: '';
position: absolute;
height: 1px;
width: 2000px;
right: -2000px;
top: 50%;
background: @xf-borderColor;
}
}
}
.block-body{
margin: 0 -15px;
}
}
}
}
}
}
}
body[data-template="forum_post_thread"]{
.p-body-content{
.block-body{
.formRow{
dd{
.js-prefixContainer{
.inputGroup{
.inputGroup-text{
border-radius: 0;
font-style: italic;
}
.input{
border-radius: 0;
font-size: 16px;
&:focus{
border-bottom: 1px solid #e8e8e8;
}
}
}
}
.input{
border-radius: 0;
&:focus{
border-bottom: 2px solid @xf-paletteColor3;
}
}
.inputChoices-choice{
.inputGroup{
button{
background: #000;
color: @xf-BrvColor1;
border-color: #000;
margin-left: 5px;
border-radius: 3px;
}
}
}
span{
.button--icon--attach{
display: inline-table;
}
}
.fr-box{
.fr-toolbar{
border-top: 1px solid transparent;
border-right-color: transparent;
border-left-color: transparent;
padding: 10px;
.fr-separator{
display: none;
}
.fr-command.fr-btn{
&:hover{
background: transparent;
}
i{
font-size: 14px;
width: 14px;
}
}
}
.fr-wrapper{
border-right-color: transparent;
border-left-color: transparent;
border-bottom-color: transparent;
border-radius: 0 0 3px 3px;
.fr-element{
padding: 10px 20px;
}
}
}
}
}
}
.formSubmitRow-main{
.formSubmitRow-controls{
.button--icon--preview{
margin-left: 15px;
}
}
}
}
}
body[data-template="watched_forums_list"]{
.p-body{
.p-body-inner{
.p-body-content{
.p-body-pageContent{
.block-container{
.block-body{
display: flex;
flex-flow: row wrap;
}
}
}
}
}
}
}
body[data-template="forum_post_thread"]{
.p-body{
.p-body-inner{
.p-body-header{
box-shadow: none;
background: transparent;
.p-title{
.p-title-value{
margin: 20px auto;
}
}
}
}
}
}
body[data-template="watched_forums_list"]{
.p-body{
.p-body-inner{
.p-body-main{
.p-body-content{
.block-container{
background: transparent !important;
.block-body{
.node{
.node-body{
position: relative;
.node-main{
.iconic--checkbox{
position: absolute;
right: 10px;
top: 50%;
transform: translateY(-50%);
}
.node-bonus{
display: none;
}
}
}
}
}
}
}
}
}
}
}
body[data-template="conversation_add"]{
.p-body{
.p-body-inner{
.p-body-header{
background: transparent;
box-shadow: none;
.p-title{
.p-title-value{
margin: 25px auto;
}
}
}
.p-body-main{
.p-body-content{
.p-body-pageContent{
form{
.block-container{
.block-body{
.formRow{
.input{
border-right: none;
border-left: none;
border-top: none;
border-radius: 0;
font-size: 16px;
&:focus{
border-bottom-width: 2px;
border-bottom-color: @xf-paletteColor3;
}
}
}
}
}
}
}
}
}
}
}
}
body[data-template="report_list"]{
.p-body{
.p-body-inner{
.p-body-main{
.p-body-content{
.p-body-pageContent{
.block-container{
.block-tabHeader{
.tabs-tab{
&.is-active{
&:hover{
color: @xf-BrvColor2;
}
}
&:hover{
background: transparent;
color: @xf-linkColor;
}
}
}
.block-body{
.structItemContainer{
.structItem-cell--meta{
width: 130px;
padding-top: 15px;
}
}
}
}
}
}
}
}
}
}
[data-template="forum_view"]{
.p-body-header{
.p-title{
overflow: hidden;
}
.p-title-value{
position: relative;
padding-right: 20px;
margin-top: 0 !important;
margin-bottom: 0 !important;
&:before{
content: '';
position: absolute;
top: 60%;
right: -2000px;
width: 2000px;
height: 1px;
background: @xf-borderColor;
}
}
.p-description{
margin-top: 0 !important;
}
}
}
.js-pollContainer-1{
.block-container{
background: @xf-BrvColor1 !important;
padding: 10px 20px !important;
border-radius: 4px;
}
}
.p-body-sidebar{
.block{
.block-container{
.block-header{
padding: 10px 0;
box-shadow: none;
}
}
&[data-widget-definition="new_posts"]{
.block-container{
.block-header{
padding: 10px 0;
box-shadow: none;
}
.block-body{
.structItemContainer{
.structItem{
background: transparent;
&:first-child{
.structItem-cell{
border-top: none;
}
}
.structItem-cell{
&.structItem-cell--icon{
padding: 10px 0;
width: 40px !important;
}
&.structItem-cell--avartar{
display: none;
}
&.structItem-cell--main{
padding: 10px;
.structItem-statuses{
position: relative;
top: 7px;
}
.structItem-title{
.label{
display: none;
}
}
.structItem-minor{
.structItem-parts{
li:last-child{
display: none;
}
}
}
}
&.structItem-cell--meta{
display: none;
}
&.structItem-cell--latest{
padding-right: 0;
padding: 10px 0;
width: 70px;
}
}
}
}
}
}
}
&[data-widget-definition="new_profile_posts"]{
.block-container{
.block-body{
.message{
&:nth-child(2){
border: none;
}
}
form.message{
.message-inner{
.message-cell--user{
display: none;
}
.message-cell--main{
padding: 10px 0;
}
}
}
article{
.message-inner{
.message-cell--date{
display: none;
}
.message-cell--user{
padding: 10px 0;
flex: 0 0 40px;
border-right: none;
.message-user{
.message-avatar{
.message-avatar-wrapper{
.avatar{
width: 40px;
height: 40px;
font-size: 20px;
border-radius: 100%;
span{
line-height: 40px;
}
}
}
}
.message-userArrow{
display: none;
}
}
}
.message-cell--main{
padding: 10px 0 10px 10px;
.message-main{
.message-content{
.message-attribution{
.listInline{
margin-bottom: 7px;
.attribution{
.username{
font-size: 13px;
font-weight: 700;
margin-right: 5px;
}
.time-comment{
font-size: 13px;
font-weight: 700;
}
}
}
}
.message-body{
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
line-height: 20px;
max-height: 40px;
}
.message-actionBar{
.actionBar-set--internal{
display: none;
}
.action-comment{
text-align: right;
.actionBar-action--reply{
&:before{
display: none;
}
}
}
}
}
.messageNotice{
background: transparent;
}
.message-footer{
.message-responseRow{
background: transparent;
border: none;
padding: 0;
}
.js-replyNewMessageContainer{
margin-top: 10px;
.message-responseRow{
margin-bottom: 10px;
.comment{
.comment-inner{
.comment-avatar{
.avatar{
border-radius: 100%;
}
}
.comment-main{
.js-quickEditTargetComment{
.comment-content{
.comment-actionBar{
.actionBar-set{
margin: 0;
.actionBar-action{
margin: 0;
border: none;
padding-left: 0;
}
}
}
}
.comment-content-article{
margin-top: 5px;
.comment-body{
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
line-height: 20px;
max-height: 40px;
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
.block-outer{
position: relative;
&.block-outer--after{
margin-right: 0 !important;
margin-left: 0 !important;
.btn-addnew{
display: none !important;
visibility: hidden;
}
}
.btn-addnew{
position: absolute;
top: 0;
margin-bottom: 20px;
.action-add-new{
padding: 5px 20px;
background: @xf-paletteColor3;
color: @xf-BrvColor1;
border-radius: 4px;
display: inline-block;
&:hover{
background: #000000;
}
}
}
}
.p-body{
.p-body-inner{
border-radius: 0px;
.p-body-header{
z-index: 2;
.p-title{
margin-bottom: 0;
h1{
font-size: 20px;
margin-bottom: 5px;
margin-top: 5px;
color: @xf-paletteAccent3;
font-weight: 700;
.label{
padding: 0 15px;
line-height: 20px;
font-size: 12px;
border: none;
position: relative;
top: -4px;
}
}
}
.p-title-pageAction{
margin-top: 5px;
.button--cta{
}
a{
color: @xf-linkColor;
&:hover{
color: @xf-paletteColor3;
}
}
}
}
.p-body-main{
.p-body-content{
transition: all 600ms;
&.edit-padd{
transition: all 600ms;
padding-right: 0;
}
.p-body-pageContent{
.block{
&.block--category{
margin: 0;
}
.block-container{
border: none;
background: transparent;
.block-node-categories{
display: flex;
margin: 10px 0 -8px;
.node-image{
display: flex;
flex-direction: column;
margin-right: 20px;
}
.block-header{
width: 100%;
}
}
.block-body{
.node{
width: 33.333%;
padding: 15px;
border: none;
.node-body{
display: block;
border-radius: 5px;
box-shadow: 0 1px 3px rgba(0,0,0,0.1);
.node-picture{
position: relative;
.node-description{
display: none !important;
}
.sub--node{
position: absolute;
right: 20px;
bottom: 20px;
}
.node-subNodesFlat{
&.subnode-custom{
margin: 0;
text-align: right;
position: relative;
.control-subnode{
display: inline-block;
text-align: center;
cursor: pointer;
.num-sub-node{
float: right;
font-size: 18px;
line-height: 16px;
color: @xf-BrvColor1;
margin-left: 10px;
padding-top: 1px;
}
}
.node-subNodeFlatList{
position: absolute;
width: 200px;
background: @xf-BrvColor1;
border-radius: 5px;
top: -20px;
padding: 10px 0;
transition: all 500ms;
right: 0;
opacity: 0;
visibility: hidden;
z-index: 3;
text-align: left;
&.active{
opacity: 1;
visibility: visible;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}
li{
margin: 0;
float: none;
display: block;
a{
font-size: 14px;
color: @xf-linkColor;
padding: 6px 15px;
display: block;
position: relative;
font-weight: 400;
&:hover{
text-decoration: none;
color: @xf-BrvColor1;
background: @xf-BrvColor2;
}
&.subNodeLink{
&:before{
display: none;
}
}
}
}
}
}
}
.node-image{
display: flex;
flex-direction: column;
border-radius: 5px 5px 0 0;
overflow: hidden;
img{
width: 100%;
height: auto;
}
}
.node-title{
position: absolute;
left: 20px;
bottom: 20px;
font-size: 20px;
font-weight: 300;
a{
color: @xf-BrvColor1;
}
}
}
.node-main{
display: block;
padding: 0;
position: relative;
background: @xf-BrvColor1;
border-radius: 0 0 5px 5px;
.node-infor{
.node-infor-item{
display: flex;
align-items: center;
.node-infor-item-content{
width: 50%;
display: flex;
align-items: center;
text-align: center;
justify-content: center;
padding: 20px 0;
max-height: 70px;
&:first-child{
border-right: 1px solid @xf-borderColor;
}
span{
margin-left: 10px;
}
}
}
}
.node-title{
padding: 25px 20px;
max-height: 70px;
}
}
}
&.node--link, &.node--page{
.node-main{
}
}
}
}
.block-filterBar{
margin-bottom: 15px;
border-radius: 5px;
.filterBar{
.filterBar-menuTrigger{
font-size: 14px;
margin: 0;
&:hover{
background-color: transparent;
text-decoration: underline;
color: @xf-paletteColor3;
}
}
}
}
}
}
}
}
}
.p-body-sideNav{
transition: all 1500ms;
position: relative;
background: #e7e9e9;
width: 360px;
padding: 0 30px;
z-index: 200;
&:before{
content: '';
position: absolute;
bottom: 100%;
left: 0;
width: 100%;
height: 110px;
background: #e7e9e9;
z-index: -1;
}
.p-body-sideNavInner{
.p-body-sideNavContent{
.block{
.block-container{
.block-body{
.block-row{
padding-right: 0;
padding-left: 0;
.contentRow{
position: relative;
}
.contentRow-figure{
.avatar{
width: 40px;
height: 40px;
font-size: 20px;
border-radius: 100%;
span{
line-height: 40px;
}
}
}
.contentRow-main{
>a{
font-size: 14px;
overflow: hidden;
white-space: nowrap;
word-wrap: normal;
display: inline-block;
max-width: 170px;
text-overflow: ellipsis;
}
.contentRow-lesser{
font-size: 12px;
color: @xf-paletteAccent1;
}
.contentRow-minor{
color: @xf-paletteAccent1;
time{
position: absolute;
top: 0;
right: 0;
max-width: 100px;
padding-left: 10px;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
}
}
.contentRow-extra,
.contentRow-title{
font-size: 13px;
font-weight: 700;
color: @xf-linkColor;
}
}
}
.listHeap{
.avatar{
width: 40px;
height: 40px;
font-size: 20px;
border-radius: 100%;
span{
line-height: 40px;
}
}
}
}
}
}
}
}
}
.p-body-sidebar{
transition: all 1500ms;
position: relative;
&.hide{
transition: all 500ms;
visibility: hidden;
transform: translateX(265px);
display: none;
}
.block{
.block-row{
padding: 10px 0;
&:last-child{
padding-bottom: 0;
}
}
&.member-visitor{
padding: 20px;
border-radius: 5px;
border: 1px solid @xf-borderColor;
.content-inner{
.contentRow-avatar{
text-align: center;
.avatar{
width: 62px;
height: 62px;
border-radius: 100%;
box-shadow: 0 2px 5px rgba(0,0,0,0.25);
span{
line-height: 62px;
}
}
}
.contentrow-username{
text-align: center;
.contentRow-header{
font-size: 13px;
font-weight: 700;
text-transform: capitalize;
margin: 16px 0 38px;
a{
color: @xf-linkColor;
}
}
}
.contentRow-main{
padding: 0 20px 15px;
.contentRow-minor{
display: flex;
flex-flow: row wrap;
.pairs{
width: 33.333%;
dt{
float: none;
display: block;
text-align: center;
margin: 0;
&:after{
display: none;
}
}
dd{
float: none;
display: block;
margin-top: 3px;
text-align: center;
font-size: 14px;
font-weight: 700;
color: @xf-linkColor;
}
}
}
}
}
}
&[data-widget-definition="xfrm_new_resources"],
&[data-widget-definition="new_profile_posts"]{
.block-body{
padding: 10px 0;
form{
.input{
background: transparent;
border-radius: 0;
border-top-color: transparent;
border-right: none;
border-left: none;
padding-left: 0;
&:focus{
border-bottom-width: 2px;
border-bottom-color: @xf-BrvColor2;
}
}
.u-inputSpacer{
&.is-active{
text-align: right;
.button{
text-transform: uppercase;
}
}
}
}
.block-row{
.contentRow{
.contentRow-figure{
.avatar{
width: 40px;
height: 40px;
border-radius: 100%;
span{
font-size: 18px;
line-height: 40px;
}
}
}
.contentRow-main{
>a{
font-size: 13px;
margin-bottom: 5px;
display: inline-block;
color: @xf-linkColor;
&:hover{
color: @xf-paletteColor3;
}
}
.contentRow-faderContainer{
font-size: 13px;
color: @xf-linkColor;
.contentRow-faderContent{
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
line-height: 20px;
max-height: 40px;
}
}
.contentRow-minor{
font-size: 12px;
margin-top: 5px;
time{
float: right;
}
ul{
li+li{
time{
float: right;
}
}
}
.username{
color: #6e6672;
margin-right: 5px;
}
a{
font-size: 12px;
color: @xf-paletteAccent2;
&.date-add{
float: right;
}
}
}
}
}
}
}
}
.block-container{
border: none;
background: transparent;
border-radius: 2px;
.block-minorHeader{
position: relative;
margin-bottom: 5px;
&:hover{
a{
color: @xf-paletteColor3;
}
}
.block-control{
position: absolute;
right: 0;
top: 50%;
transform: translateY(-50%);
font-size: 28px;
cursor: pointer;
width: 28px;
height: 25px;
text-align: center;
line-height: 20px;
background: @xf-pageBg;
&:hover{
color: @xf-paletteColor3;
}
}
}
.block-footer{
padding: 0;
color: @xf-linkColor;
font-size: 13px;
}
.block-body{
font-size: 12px;
padding: 10px 0 0;
&.staff-content{
margin: 0 -5px;
li{
display: inline-block;
padding: 0 5px;
.contentRow{
.contentRow-figure{
.avatar{
width: 40px;
height: 40px;
border-radius: 100%;
span{
font-size: 18px;
line-height: 40px;
}
}
}
.contentRow-main{
display: none;
.username{
font-size: 13px;
display: inline-block;
}
.contentRow-minor{
font-size: 13px;
margin-top: 3px;
color: @xf-BrvColor3;
}
}
}
}
}
&.member-content{
padding: 5px 0;
.block-row{
.block-textHeader--scaled{
font-size: 13px;
color: @xf-linkColor;
margin-bottom: 10px;
}
.listHeap{
margin: 0 -5px;
li{
display: inline-block;
padding: 0 5px;
margin: 0;
.avatar{
width: 40px;
height: 40px;
font-size: 20px;
border-radius: 100%;
span{
line-height: 40px;
}
}
}
}
}
.listInline{
li{
a{
font-size: 13px;
}
}
}
}
&.post-content{
li{
.contentRow{
.contentRow-figure{
.avatar{
width: 40px;
height: 40px;
font-size: 20px;
border-radius: 100%;
span{
font-size: 18px;
line-height: 40px;
}
}
}
.contentRow-main{
>a{
font-size: 13px;
margin-bottom: 5px;
display: inline-block;
}
.contentRow-minor{
font-size: 12px;
.listInline{
li{
color: @xf-linkColor;
&:before{
display: none;
}
time{
color: @xf-textColor;
float: right;
max-width: 80px;
}
}
}
a{
font-size: 12px;
padding-top: 5px;
display: inherit;
}
}
}
}
}
}
&.forum-static-content{
}
dl{
margin: 1px 0;
font-size: 13px;
dt{
color: @xf-paletteAccent2;
}
dd{
color: @xf-paletteAccent2;
}
}
}
}
}
}
}
}
/********************************************************************************/
/* END */
/********************************************************************************/
.p-body
{
display: flex;
align-items: stretch;
}
.p-body-inner
{
display: flex;
flex-direction: column;
width: 100%;
}
.p-body
{
flex-grow: 1;
}
.p-body-inner
{
.m-pageWidth();
.m-clearFix();
padding-top: 0;
padding-left: 0px;
padding-right: 0px;
padding-bottom: @xf-elementSpacer;
}
.p-body-header
{
margin-bottom: ((@xf-elementSpacer) / 2);
}
.p-body-main
{
display: table;
table-layout: fixed;
width: 100%;
margin-bottom: auto;
}
.p-body-content
{
display: table-cell;
vertical-align: top;
.p-body-main--withSideNav &
{
padding-right: @xf-sidebarSpacer;
}
.p-body-main--withSidebar &
{
padding-right: @xf-sidebarSpacer;
}
.p-body-main--withSidebar &,
.p-body-main--withSideNav &
{
// don't let the ad overflow the sidebar area -- this can happen due to how the Adsense JS works
ins.adsbygoogle
{
// -10px gives a little buffer or helps account for no scrollbar being considered
max-width: ~"calc(100vw - 10px - @{xf-pageEdgeSpacer} - @{xf-pageEdgeSpacer} - @{xf-sidebarWidth} - @{xf-sidebarSpacer})";
@media (min-width: @xf-pageWidthMax)
{
// window wider than the max width, so limit to the display area without the sidebar
max-width: ~"calc(@{xf-pageWidthMax} - @{xf-pageEdgeSpacer} - @{xf-pageEdgeSpacer} - @{xf-sidebarWidth} - @{xf-sidebarSpacer})";
}
@media (max-width: @xf-responsiveWide)
{
// sidebar/sidenav have been moved/hidden
max-width: 100vw;
}
}
}
}
.p-body-pageContent
{
> .tabs--standalone:first-child
{
margin-bottom: (@xf-elementSpacer) / 2;
}
}
.p-body-sideNav
{
display: table-cell;
vertical-align: top;
width: @xf-sidebarWidth;
}
.p-body-sideNavTrigger
{
display: none;
}
.p-body-sidebar
{
display: table-cell;
vertical-align: top;
width: @xf-sidebarWidth;
}
.p-body-content,
.p-body-pageContent,
.p-body-sideNav,
.p-body-sideNavContent,
.p-body-sidebar
{
> :first-child
{
margin-top: 0;
}
> :last-child
{
margin-bottom: 0;
}
}
@media (max-width: @xf-responsiveWide)
{
.p-body-main,
.p-body-content
{
display: block;
}
.p-body-sideNav
{
display: block;
width: auto;
}
.p-body-sideNavTrigger
{
margin-bottom: ((@xf-elementSpacer) / 2);
text-align: center;
.button:before
{
.m-faBase();
font-size: 120%;
vertical-align: middle;
display: inline-block;
margin: -4px 6px -4px 0;
.m-faContent(@fa-var-bars, .86em);
}
.has-js &
{
display: block;
}
}
.has-js .p-body-sideNavInner:not(.offCanvasMenu)
{
display: none;
.m-transitionFadeDown();
}
.has-no-js .p-body-sideNavInner
{
margin-bottom: @xf-elementSpacer;
}
.p-body-sidebar
{
display: flex;
flex-wrap: wrap;
align-items: stretch;
margin: (@xf-elementSpacer) -((@xf-pageEdgeSpacer) / 2) -(@xf-elementSpacer);
width: auto;
> *
{
margin: 0 ((@xf-pageEdgeSpacer) / 2) @xf-elementSpacer;
min-width: @xf-sidebarWidth;
flex: 1 1 @xf-sidebarWidth;
&:last-child
{
margin-bottom: @xf-elementSpacer;
}
}
// add an invisible block to ensure that the last row has the correct widths
&:after
{
display: block;
content: '';
height: 0;
margin: 0 ((@xf-pageEdgeSpacer) / 2);
min-width: @xf-sidebarWidth;
flex: 1 1 @xf-sidebarWidth;
}
.block-container
{
display: flex;
flex-direction: column;
height: 100%;
.block-footer
{
margin-top: auto;
}
}
}
.p-body-main--withSideNav,
.p-body-main--withSidebar
{
.p-body-content { padding: 0; }
}
}
@media (max-width: @xf-responsiveEdgeSpacerRemoval)
{
.p-body-sideNavContent
{
// this is likely to contain blocks that overflow the container so account for that
margin: 0 -@xf-pageEdgeSpacer;
padding: 0 @xf-pageEdgeSpacer;
.offCanvasMenu &
{
margin: 0;
padding: 0;
}
}
.p-body-sidebar
{
display: block;
margin-left: 0;
margin-right: 0;
> *
{
margin-left: 0;
margin-right: 0;
min-width: 0;
}
}
}]]></template>
<template title="app_breadcrumbs.less" type="public" addon_id="XF" version_id="2000470" version_string="2.0.4"><![CDATA[//p-breadcrumbs
html[dir="RTL"]{
.p-breadcrumbs li:before{
transform: rotateY(180deg) translateY(-50%);
}
}
.bread-action--inner{
max-width: @xf-pageWidthMax;
margin: 0 auto;
}
.bread-action{
position: relative;
z-index: 2;
&.bread-action--top{
margin-top: 10px;
}
&.bread-action--bottom{
margin-top: 20px;
}
.btn-addnew{
display: none;
}
}
.p-breadcrumbs{
overflow: hidden;
position: relative;
margin-right: auto !important;
margin-bottom: 0;
li{
padding: 0 10px;
position: relative;
z-index: 2;
margin-right: 0;
&:first-child{
padding-left: 0;
}
&:last-child{
&:before{
display: none !important;
}
}
&:before{
content: '\f105';
font-family: FontAwesome;
font-size: 18px;
position: absolute;
right: -5px;
top: 50%;
transform: translateY(-50%);
}
a{
font-size: 12px;
font-weight: 700;
color: @xf-paletteAccent2;
text-transform: uppercase;
padding: 10px 0;
line-height: 20px;
z-index: 999;
&:hover{
color: @xf-paletteColor3;
}
}
&:after{
display: none;
}
}
}
.control-sidebar{
position: absolute;
top: 50%;
cursor: pointer;
right: 0;
transform: translateY(-50%);
&:before{
display: none;
}
&:after{
content: '';
background-image: url("{{ base_url() }}styles/brivium/cerium/extra/sidebar-o.png");
width: 14px;
height: 14px;
position: absolute;
top: 50%;
transform: translateY(-50%);
right: 0;
}
&.active{
&:after{
background-image: url("{{ base_url() }}styles/brivium/cerium/extra/sidebar.png");
}
}
}
//End
.p-breadcrumbs
{
.m-listPlain();
.m-clearFix();
margin-bottom: 5px;
line-height: 1.5;
&.p-breadcrumbs--bottom
{
margin-bottom: 0;
}
> li
{
float: left;
margin-right: .5em;
font-size: @xf-fontSizeSmall;
a
{
display: inline-block;
vertical-align: bottom;
max-width: 300px;
.m-overflowEllipsis();
}
&:after,
&:before
{
.m-faBase();
font-size: 90%;
color: @xf-textColorMuted;
}
&:last-child
{
margin-right: 0;
a
{
font-weight: @xf-fontWeightHeavy;
}
}
}
}
@media (max-width: @xf-responsiveMedium)
{
.p-breadcrumbs > li a
{
max-width: 200px;
}
}
@media (max-width: @xf-responsiveNarrow)
{
.p-breadcrumbs
{
> li
{
display: none;
font-size: @xf-fontSizeSmallest;
&:last-child
{
display: block;
}
a
{
max-width: 90vw;
}
&:after
{
display: none;
}
}
}
}]]></template>
<template title="app_footer.less" type="public" addon_id="XF" version_id="2000670" version_string="2.0.6"><![CDATA[//footer
#footer{
.p-footer-inner{
padding: 50px 0;
.footer-custom{
margin: 0 -20px;
overflow: hidden;
.row{
display: inline-block;
width: 100%;
.footer-column{
.footer-title{
h3{
font-size: 20px;
font-weight: 700;
text-transform: capitalize;
line-height: 25px;
margin: 15px 0 40px;
color: @xf-BrvColor1;
}
}
padding: 0 20px;
&.footer-column-1{
p{
font-size: 14px;
line-height: 22px;
margin: 0;
}
}
&.footer-column-2{
.footer-column-linklist{
.p-footer-row-opposite{
float: none;
}
.p-footer-linkList{
li{
display: block;
float: none;
font-size: 14px;
&+ li{
margin-top: 5px;
}
a{
&:hover{
background: none;
color: @xf-paletteColor3;
}
}
}
}
}
}
&.footer-column-3{
.brv-subscribe{
.input-group{
.input-group-field{
width: 100%;
border: 1px solid #5b5c61;
background: #4e4e56;
height: 40px;
padding: 0 15px;
border-radius: 2px;
margin-bottom: 10px;
color: @xf-BrvColor1;
}
.btn-button{
padding: 10px 20px;
font-size: 14px;
line-height: 20px;
border: none;
border-radius: 2px;
color: @xf-BrvColor1;
background: @xf-BrvColor3;
cursor: pointer;
&:hover{
background: @xf-paletteColor3;
}
}
}
}
}
}
}
}
}
.footer-bottom{
background-color: @xf-FooterBottom;
.p-footer-inner{
padding: 0;
.footer-bottom-content{
padding: 30px 0;
display: flex;
align-items: center;
border-top: 1px solid #2c2c30;
color: @xf-paletteAccent2;
}
.p-footer-copyright{
margin: 0;
font-size: 12px;
font-weight: 700;
display: inline-block;
text-align: left;
margin-right: auto;
.BRCopyright{
margin-top: 3px;
.content-brcpright{
a{
&:hover{
color: @xf-paletteColor3 !important;
}
}
span{
font-size: 12px;
}
}
}
}
.p-footer-middle{
margin: 0 auto;
a{
color: @xf-paletteAccent2;
margin: 0 5px;
&:hover{
color: @xf-paletteColor3;
}
}
}
.footer-copyright{
margin-left: auto;
}
}
}
}
//end
.p-footer
{
.xf-publicFooter();
a
{
.xf-publicFooterLink();
}
}
.p-footer-inner
{
.m-pageWidth();
padding-top: @xf-paddingMedium;
padding-bottom: @xf-paddingLarge;
}
.p-footer-row
{
.m-clearFix();
margin-bottom: -@xf-paddingLarge;
}
.p-footer-row-main
{
float: left;
margin-bottom: @xf-paddingLarge;
}
.p-footer-row-opposite
{
float: right;
margin-bottom: @xf-paddingLarge;
}
.p-footer-linkList
{
.m-listPlain();
.m-clearFix();
> li
{
float: left;
margin-right: .5em;
&:last-child
{
margin-right: 0;
}
a
{
padding: 2px 4px;
border-radius: @xf-borderRadiusSmall;
&:hover
{
text-decoration: none;
background-color: fade(@xf-publicFooterLink--color, 10%);
}
}
}
}
.p-footer-rssLink
{
> span
{
position: relative;
top: -1px;
display: inline-block;
width: 1.44em;
height: 1.44em;
line-height: 1.44em;
text-align: center;
font-size: .8em;
background-color: #FFA500;
border-radius: 2px;
}
.fa-rss
{
color: white;
}
}
.p-footer-copyright
{
margin-top: @xf-elementSpacer;
text-align: center;
font-size: @xf-fontSizeSmallest;
}
.p-footer-debug
{
text-align: right;
font-size: @xf-fontSizeSmallest;
.pairs > dt { color: inherit; }
}
@media (max-width: @xf-responsiveMedium)
{
.p-footer-row-main,
.p-footer-row-opposite
{
float: none;
}
.p-footer-copyright
{
text-align: left;
padding: 0 4px; // aligns with other links
}
}]]></template>
<template title="app_header.less" type="public" addon_id="XF" version_id="2000470" version_string="2.0.4"><![CDATA[//p-staffBar
.p-staffBar{
z-index: 2;
.p-staffBar-inner{
padding: 0;
.hScroller-scroll{
.p-staffBar-link{
float: left;
&:after{
background: transparent !important;
}
&.badgeContainer:after{
background: #e7431d !important;
width: 15px;
height: 15px;
text-align: center;
vertical-align: middle;
line-height: 15px;
}
}
.link-admin{
float: right;
img{
position: relative;
top: 3px;
}
.text-link{
margin-left: 10px;
}
}
}
}
}
//header
#header{
.p-header-inner{
.p-header-content{
padding: 30px 0 10px;
.p-header-logo{
margin: 0 auto;
}
}
}
}
//end
// MAIN HEADER ROW
.p-header
{
.xf-publicHeader();
a
{
color: inherit;
}
}
.p-header-inner
{
.m-pageWidth();
}
.p-header-content
{
padding: @xf-paddingMedium 0;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-items: center;
max-width: 100%;
.has-no-flexbox &
{
display: table;
width: 100%;
}
}
.p-header-logo
{
.has-no-flexbox &
{
display: table-cell;
}
vertical-align: middle;
margin-right: auto;
a
{
color: inherit;
text-decoration: none;
}
&.p-header-logo--text
{
font-size: @xf-fontSizeLargest;
}
&.p-header-logo--image
{
img
{
vertical-align: bottom;
max-width: 100%;
max-height: 200px;
}
}
}
@media (max-width: @xf-publicNavCollapseWidth)
{
}
@media (max-width: @xf-responsiveNarrow)
{
.p-header-logo
{
max-width: 100px;
&.p-header-logo--text
{
font-size: @xf-fontSizeLarge;
font-weight: @xf-fontWeightNormal;
.m-overflowEllipsis();
}
}
}]]></template>
<template title="app_nav.less" type="public" addon_id="XF" version_id="2001070" version_string="2.0.10"><![CDATA[//p-nav
.overlay{
&.box-popup-login{
max-width: 320px;
border: none;
background: @xf-BrvColor1;
.formSubmitRow-bar,
.overlay-title{
display: none;
}
.block-outer,
.block-container{
border: none !important;
margin: 5px 0;
}
.overlay-content{
overflow: hidden;
border-radius: 5px;
#box-login-popup{
.login-other{
display: inline-block;
width: 100%;
padding: 30px;
text-align: center;
position: relative;
.listHeap{
li{
display: block;
margin-top: 0;
&+li{
margin-top: 10px;
}
a{
position: relative;
text-align: left;
line-height: 20px;
background: @xf-paletteColor3;
border-radius: 2px;
display: inherit;
padding-left: 55px;
border: none !important;
&:before{
content: '';
font-family: FontAwesome;
font-size: 17px;
position: absolute;
left: 20px;
top: 50%;
transform: translateY(-50%);
color: @xf-BrvColor1;
}
&.button--provider--facebook{
background: #2A447C;
&:before{
content: '\f09a';
}
}
&.button--provider--twitter{
background: #18BEF1;
&:before{
content: '\f099';
}
}
&.button--provider--google{
background: #DC4E40;
&:before{
content: '\f0d5';
}
}
&.button--provider--github{
background: #FF4500;
&:before{
content: '\f09b';
}
}
&.button--provider--linkedin{
background: #bd081c;
&:before{
content: '\f0e1';
}
}
&.button--provider--microsoft{
background: #35465c;
&:before{
content: '\f17a';
}
}
&.button--provider--yahoo{
background: #25D366;
&:before{
content: '\f19e';
}
}
}
}
}
}
.inputChoices{
padding: 15px 30px;
}
form{
.block-container{
dl{
dt{
display: none;
}
dd{
.inputChoices-choice{
font-size: 12px;
}
.formSubmitRow-controls{
padding: 0;
text-align: center;
.button{
&:hover{
background: @xf-BrvColor2;
border-color: @xf-BrvColor2 !important;
}
}
}
}
}
.block-body{
position: relative;
&:before{
content: "";
width: 500px;
height: 200px;
background-color: rgb(255, 255, 255);
position: absolute;
top: -117px;
left: 50%;
margin-left: -250px;
-webkit-transform: rotate(-2deg);
-ms-transform: rotate(-2deg);
transform: rotate(-2deg);
z-index: -3;
}
.formRow{
margin-bottom: 10px;
dd{
padding: 0;
}
.input{
height: 40px;
color: #122b0a;
border: none;
background: @xf-pageBg;
padding-left: 30px;
&:-ms-input-placeholder{
color: #122b0a;
}
&::-ms-input-placeholder{
color: #122b0a;
}
&::placeholder{
color: #122b0a;
}
}
&:nth-child(2){
dd{
position: relative;
padding-bottom: 5px;
.lost--pass{
position: absolute;
right: 30px;
top: 50%;
transform: translateY(-50%);
z-index: 999;
}
}
}
}
}
}
.formSubmitRow-controls{
.button--icon--login{
padding: 8px 40px;
background: @xf-paletteColor3;
}
.btn-cancel-login{
float: none;
font-size: 14px;
text-transform: capitalize;
font-weight: 400;
padding: 10px 40px 9px;
border: 1px solid #b4bac2;
border-radius: 20px;
color: @xf-linkColor;
opacity: 1;
&:after{
display: none;
}
&:hover{
background: #787d83;
border-color: #787d83;
color: @xf-BrvColor1;
}
}
}
.block-outer{
.block-outer-middle{
.button{
text-transform: capitalize;
color: @xf-linkColor;
font-size: 14px;
}
}
}
}
}
}
}
}
.ac_title_action{
display: inline-block;
width: 100%;
padding: 3px 15px 13px;
margin-bottom: 5px;
border-bottom: 1px solid @xf-borderColor;
.ac_title{
float: left;
font-size: 13px;
font-weight: 400;
color: @xf-paletteAccent3;
text-transform: capitalize;
}
.ac_action{
float: right;
a+a{
margin-left: 20px;
}
}
}
.ac-showall-bottom{
padding: 10px 15px 3px;
margin-top: 5px;
border-top: 1px solid @xf-borderColor;
text-align: center;
}
.menu--account{
background: @xf-BrvColor1;
border-radius: 4px !important;
.menu--account__content{
background: @xf-BrvColor1;
border-radius: 4px;
overflow: hidden;
.user-visitor-avatar{
display: flex;
align-items: center;
padding: 20px;
position: relative;
.avatar{
width: 30px;
height: 30px;
font-size: 16px;
border-radius: 50%;
span{
line-height: 30px;
}
}
.contentRow-header{
font-size: 14px;
font-weight: 400;
margin-left: 10px;
}
.brv--mobile--link{
position: absolute;
right: 20px;
.mobile--link__item{
position: relative;
+.mobile--link__item{
margin-left: 10px;
}
&.non--databadge{
&:after{
display: none;
}
}
&:after{
content: attr(data-badge);
position: absolute;
top: -5px;
right: -5px;
font-size: 7px;
width: auto;
text-align: center;
min-width: 10px;
height: 10px;
line-height: 9px;
color: @xf-BrvColor1;
background: @xf-BrvColor3;
border-radius: 50%;
}
}
}
}
.user-visitor-update-status{
padding: 10px 20px;
border-top: 1px solid @xf-borderColor;
border-bottom: 1px solid @xf-borderColor;
.user-update-status{
.input{
border: none;
background: none;
padding: 5px 0;
overflow: hidden;
}
.u-hidden{
text-align: right;
}
}
}
.links-list{
list-style: none;
padding: 10px 0;
margin: 0;
li{
a{
border: none;
padding: 15px 20px 15px 60px;
display: flex;
align-items: center;
text-transform: lowercase;
position: relative;
img{
margin-right: 20px;
position: absolute;
left: 20px;
}
.image-click{
display: none;
}
&.active,
&:hover{
background: @xf-paletteColor3;
color: @xf-BrvColor1;
.image-default{
display: none;
}
.image-click{
display: inherit;
}
}
}
}
}
}
}
html[dir="RTL"]{
.p-nav .p-nav-inner .p-nav-opposite .p-navgroup.p-navgroup--member a.p-navgroup-link.badgeContainer::after{
transform: rotateY(-180deg) !important;
}
.logo--mobile{
transform: translateX(50%);
}
}
.logo--mobile{
position: absolute;
left: 50%;
transform: translateX(-50%);
}
.content--alert{
.username{
display: block;
}
}
.content--conver{
ul.listInline{
display: block;
}
}
.content--alert--conver{
.menu-content{
.listPlain{
.menu-row{
background: transparent;
.contentRow-figure{
.avatar{
width: 40px;
height: 40px;
font-size: 20px;
border-radius: 100%;
span{
line-height: 40px;
}
}
}
.contentRow-main{
font-size: 13px;
.alerts-time{
float: right;
}
a{
font-weight: 400;
color: @xf-paletteAccent2;
&:hover{
color: @xf-paletteColor3;
}
}
time{
font-size: 12px;
color: @xf-paletteAccent1;
}
}
}
}
}
}
.nav-logo-img{
margin-right: 20px;
}
.p-nav{
.p-nav-menuTrigger{
.line-menu{
width: 22px;
height: 14px;
position: relative;
.item{
position: absolute;
width: 100%;
height: 2px;
left: 0;
background: @xf-linkColor;
&.line1{
top: 0;
}
&.line2{
top: 7px;
}
&.line3{
top: 100%;
}
}
}
}
.p-nav-inner{
position: relative;
.p-nav-scroller{
margin-right: 0;
.hScroller-scroll{
.p-nav-list{
li{
&:first-child{
margin-left: -10px;
}
.p-navEl{
position: relative;
transition: all 0ms;
&.is-selected{
border-radius: 0;
.p-navEl-splitTrigger{
display: block;
}
&.is-menuOpen{
box-shadow: none;
}
}
&.is-menuOpen{
box-shadow: none;
color: @xf-linkColor;
.p-navEl-splitTrigger,
.p-navEl-link{
color: @xf-paletteColor3;
}
}
.p-navEl-link{
padding: 32px 20px;
transition: all 0ms;
max-height: 80px;
text-transform: lowercase;
}
.p-navEl-splitTrigger{
padding: 0;
position: absolute;
width: 15px;
height: 80px;
text-align: center;
line-height: 84px;
right: 0;
top: 50%;
z-index: 10;
transform: translateY(-50%);
transition: all 0ms;
&:hover{
background: transparent;
}
}
}
}
}
}
}
.p-discovery{
background: transparent;
position: relative;
.control-search{
height: 80px;
width: 40px;
text-align: center;
line-height: 80px;
cursor: pointer;
img{
vertical-align: middle;
}
}
.close-search{
padding: 15px 0px 15px 5px;
line-height: 20px;
cursor: pointer;
position: absolute;
right: 0;
top: 0;
img{
vertical-align: middle;
margin-bottom: 5px;
}
}
.search-area{
padding: 10px 0;
position: absolute;
top: 140px;
width: 280px;
border-radius: 4px;
background: @xf-BrvColor1;
box-shadow: 0px 2px 5px rgba(0,0,0, 0.1);
opacity: 0;
visibility: hidden;
transition: all 500ms;
.input{
border-radius: 15px;
}
&:before{
content: '';
width: 15px;
height: 15px;
border-radius: 4px;
background-color: @xf-BrvColor1;
-webkit-transform: rotate(45deg);
-ms-transform: rotate(45deg);
transform: rotate(45deg);
position: absolute;
top: -3px;
left: 22px;
}
&.show{
top: 90px;
opacity: 1;
visibility: visible;
}
form{
border: none;
border-radius: 0;
background: transparent;
.search-input{
border: none;
position: relative;
.inputGroup{
display: block;
.input + .input{
margin-top: 10px;
width: 100% !important;
}
}
input{
border-radius: 15px;
color: @xf-linkColor;
&:-ms-input-placeholder{
color: @xf-linkColor;
}
&::-ms-input-placeholder{
color: @xf-linkColor;
}
&::placeholder{
color: @xf-linkColor;
}
}
}
}
.menu-footer-controls{
>a{
background: @xf-paletteColor3;
color: @xf-BrvColor1;
margin-left: 10px;
}
}
}
}
.p-nav-opposite{
margin-right: 0;
.p-navgroup{
&.p-navgroup--member{
background: transparent;
margin-right: -20px;
position: relative;
a{
border: none;
border-radius: 0;
&:hover{
background: transparent;
}
&.is-menuOpen{
box-shadow: none;
}
&.p-navgroup-link{
height: 80px;
width: 72px;
text-align: center;
line-height: 80px;
padding: 0;
&.badgeContainer{
&:after{
padding: 0;
width: auto;
min-width: 15px;
height: 15px;
text-align: center;
line-height: 15px;
right: 15px;
top: 15px;
}
}
}
&.p-navgroup-link--user{
opacity: 1;
&.badge-noncontent{
&:before{
display: none !important;
}
}
&:before{
content: attr(data-badge);
position: absolute;
right: 15px;
top: 15px;
width: auto;
min-width: 15px;
height: 15px;
line-height:14px;
margin: 0;
padding: 0;
border-radius: 100%;
background: @xf-BrvColor3;
color: @xf-BrvColor1;
font-size: 9px;
}
.avatar{
vertical-align: middle;
width: 30px;
height: 30px;
font-size: 15px;
span{
line-height: 30px;
}
}
.p-navgroup-linkText{
display: none;
}
img{
vertical-align: middle;
}
}
&.p-navgroup-link--conversations{
opacity: 1;
.p-navgroup-linkText{
display: none;
}
img{
vertical-align: middle;
}
}
&.p-navgroup-link--alerts{
opacity: 1;
.p-navgroup-linkText{
display: none;
}
img{
vertical-align: middle;
}
}
}
}
&.p-navgroup--guest{
background: transparent;
border-radius: 0;
.p-navgroup-link{
padding: 10px 20px;
text-transform: lowercase;
font-size: 14px;
font-weight: 400;
line-height: 20px;
border-radius: 25px;
border: 2px solid transparent;
&:hover{
background: transparent;
color: @xf-paletteColor3;
}
img{
vertical-align: middle;
}
&.p-navgroup-link--register{
color: @xf-paletteColor3;
border-color: @xf-paletteColor3;
margin-left: 5px;
}
&:hover{
color: @xf-BrvColor1;
background: @xf-paletteColor3;
border-color: @xf-paletteColor3;
}
}
}
}
}
}
}
.sub-main-menu{
.menu-content{
border: none;
padding: 10px;
border-radius: 4px !important;
.menu-separator{
display: none;
}
a{
padding: 10px;
font-size: 14px;
font-weight: 400;
&:hover{
background: @xf-paletteColor3 !important;
color: @xf-BrvColor1 !important;
}
}
}
}
.p-sectionLinks{
display: none;
border-bottom: none;
box-shadow: 0px 2px 5px rgba(0,0,0,0.25);
.p-sectionLinks-inner{
.hScroller-scroll{
.p-sectionLinks-list{
li{
.p-navEl{
position: relative;
&.is-menuOpen{
box-shadow: none;
}
.p-navEl-link{
padding: 16px 18px;
text-transform: uppercase;
}
.p-navEl-splitTrigger{
padding-top: 11px;
padding-bottom: 10px;
position: absolute;
right: 0;
top: 50%;
transform: translateY(-50%);
z-index: 3;
}
}
}
}
}
}
}
//End
// navEl / Navigation Elements for header navigation
.m-navElHPadding(@padding)
{
.p-navEl-link
{
padding: 0 @padding;
&.p-navEl-link--splitMenu
{
padding-right: ((@padding) / 4);
}
&.p-navEl-link--menuTrigger
{
padding-right: ((@padding) / 3); // equal to splitTrigger padding-right
&:after
{
padding-left: ((@padding) / 4 + (@padding) / 3); // equal to splitMenu padding-right + splitTrigger padding-left
}
}
}
.p-navEl-splitTrigger
{
padding: 0 ((@padding) / 3);
}
}
.p-navEl
{
.m-clearFix();
}
.p-navEl-linkHolder
{
float: left;
}
.p-navEl-link
{
float: left;
.m-transition(all, @_nav-elTransitionSpeed);
.m-transitionProperty(opacity, background;);
&.p-navEl-link--menuTrigger
{
cursor: pointer;
&:after
{
.m-faBase();
.m-faContent(@fa-var-caret-down, .58em);
opacity: .5;
.m-transition(opacity, @_nav-elTransitionSpeed);
unicode-bidi: isolate; // try to keep this in the right position in RTL with LTR text
}
&:hover:after
{
opacity: 1;
}
}
}
.p-navEl-splitTrigger
{
float: left;
opacity: .5;
cursor: pointer;
text-decoration: none;
.m-transition(all, @_nav-elTransitionSpeed);
&:after
{
.m-faBase();
.m-faContent(@fa-var-caret-down, .58em);
}
&:hover
{
opacity: 1;
text-decoration: none;
}
}
// HEADER NAV ROW
.p-nav
{
.xf-publicNav();
a
{
color: inherit;
}
.p-navSticky.is-sticky &
{
.p-nav-list .p-navEl.is-selected,
.p-account
{
border-radius: 0;
}
}
}
.p-nav-inner
{
.m-pageWidth();
.m-clearFix();
display: flex;
align-items: center;
padding-left: 0;
padding-right: 0;
}
.p-nav .p-nav-menuTrigger
{
display: none;
vertical-align: middle;
align-self: center;
margin-left: 0;
margin-right: 0;
padding: 13px 0;
margin-bottom: 5px;
&:hover
{
text-decoration: none;
}
i:after
{
.m-faBase();
font-size: @xf-fontSizeLargest;
.m-faContent(@fa-var-navicon, .86em);
vertical-align: bottom;
}
.p-nav-menuText
{
display: none;
}
}
.p-nav-smallLogo
{
display: none;
max-width: 100px;
align-self: center;
img
{
display: block;
max-height: @header-navHeight;
}
}
.p-nav-scroller
{
margin-right: auto;
max-width: 100%;
.has-no-flexbox &
{
float: left;
}
.hScroller-scroll:not(.is-calculated)
{
// IE11 seems to want to flash a vertical scrollbar without this here
}
.hScroller-action
{
.m-hScrollerActionColorVariation(
xf-default(@xf-publicNav--background-color, transparent),
@xf-publicNav--color,
xf-intensify(@xf-publicNav--color, 10%)
);
}
}
.p-nav-list
{
.m-listPlain();
.m-clearFix();
font-size: 0;
// this applies padding that will be contained within the scroller.
// it needs font-size 0 to not create extra space though
&:before,
&:after
{
display: inline-block;
width: @xf-pageEdgeSpacer;
content: '';
}
> li
{
display: inline-block;
vertical-align: bottom;
font-size: @xf-fontSizeNormal;
&:first-child
{
margin-left: 0;
}
}
.m-navElHPadding(@xf-publicNavPaddingH);
.p-navEl
{
.xf-publicNavTab();
.m-transition(all, @_nav-elTransitionSpeed);
&.is-selected
{
.xf-publicNavSelected();
.p-navEl-link
{
padding-right: @xf-publicNavPaddingH; // since the split trigger is hidden
&:hover
{
background: none;
text-decoration: none;
}
}
.p-navEl-splitTrigger
{
display: none;
}
}
&:not(.is-selected):not(.is-menuOpen)
{
&:hover,
.p-navEl-link:hover,
.p-navEl-splitTrigger:hover
{
.xf-publicNavTabHover();
}
}
&.is-menuOpen
{
.xf-publicNavTabMenuOpen();
border-top-left-radius: xf-default(@xf-publicNavSelected--border-top-left-radius, 0);
border-top-right-radius: xf-default(@xf-publicNavSelected--border-top-right-radius, 0);
.m-dropShadow(0, 5px, 10px, 0, .35);
a
{
text-decoration: none;
opacity: 1;
}
}
}
.p-navEl-link,
.p-navEl-splitTrigger
{
padding-top: @xf-publicNavPaddingV;
padding-bottom: @xf-publicNavPaddingV;
}
}
.p-navSticky--primary.is-sticky
{
.p-nav-list
{
.p-navEl-link.p-navEl-link--splitMenu
{
padding-right: ((@xf-publicNavPaddingH) / 4);
}
.p-navEl.is-selected .p-navEl-splitTrigger
{
display: inline;
position: relative;
&:before
{
content: '';
position: absolute;
left: 0;
top: 5px;
bottom: 5px;
width: 0;
border-left: @xf-borderSize solid fade(xf-default(@xf-publicNavSelected--color, transparent), 35%);
}
}
}
}
@media (max-width: @xf-publicNavCollapseWidth)
{
.has-js
{
.p-nav-inner
{
min-height: 45px;
}
.p-nav .p-nav-menuTrigger
{
display: inline-block;
}
.p-nav-scroller
{
display: none;
}
}
}
// ACCOUNT/VISITOR/SEARCH SECTION
.p-nav-opposite
{
margin-left: auto;
margin-right: @xf-pageEdgeSpacer;
text-align: right;
flex-shrink: 0;
.has-no-flexbox &
{
float: right;
}
}
.p-navgroup
{
float: left;
.m-clearFix();
background: @xf-publicHeaderAdjustColor;
border-top-left-radius: @xf-borderRadiusMedium;
border-top-right-radius: @xf-borderRadiusMedium;
&.p-discovery
{
margin-left: .5em;
&.p-discovery--noSearch
{
margin-left: 0;
}
}
}
.p-navgroup-link
{
float: left;
padding: @xf-publicNavPaddingV @_navAccount-hPadding;
border-left: 1px solid @xf-publicHeaderAdjustColor;
&:first-of-type
{
border-top-left-radius: @xf-borderRadiusMedium;
border-left: none;
}
&:last-of-type
{
border-top-right-radius: @xf-borderRadiusMedium;
}
&:hover
{
text-decoration: none;
background: xf-intensify(@xf-publicHeaderAdjustColor, 5%);
}
&.p-navgroup-link--user
{
.m-overflowEllipsis();
max-width: 150px;
.avatar
{
.m-avatarSize((@xf-fontSizeNormal) * (@xf-lineHeightDefault));
}
}
&.badgeContainer
{
opacity: .6;
position: relative;
&:after
{
position: absolute;
right: (@_navAccount-hPadding - 6px);
top: (@xf-publicNavPaddingV );
padding: 1px 3px;
margin: 0;
font-size: 10px;
line-height: 10px;
border-radius: 100%;
}
&:hover,
&.badgeContainer--highlighted
{
opacity: 1;
}
}
&.is-menuOpen
{
.xf-publicNavTabMenuOpen();
.m-dropShadow(0, 5px, 10px, 0, .35);
opacity: 1;
}
&.p-navgroup-link--iconic
{
i:after
{
.m-faBase();
display: inline-block;
min-width: 1em;
}
}
&.p-navgroup-link--conversations i:after
{
.m-faContent(@fa-var-envelope, 1em);
}
&.p-navgroup-link--alerts i:after
{
.m-faContent(@fa-var-bell, 1em);
}
&.p-navgroup-link--whatsnew i:after
{
.m-faContent(@fa-var-bolt, .5em);
}
&.p-navgroup-link--search i:after
{
.m-faContent(@fa-var-search, .93em);
}
}
.p-navgroup-link--whatsnew
{
display: none;
.p-navgroup-link:first-of-type& + .p-navgroup-link
{
border-top-left-radius: @xf-borderRadiusMedium;
border-left: none;
}
}
@media (max-width: @xf-responsiveWide)
{
.p-navgroup-link
{
&.p-navgroup-link--iconic .p-navgroup-linkText,
&.p-navgroup-link--textual i
{
display: none;
}
&.p-navgroup-link--textual
{
.m-overflowEllipsis();
max-width: 110px;
}
&.p-navgroup-link--iconic i:after
{
text-align: center;
}
}
}
@media (max-width: @xf-publicNavCollapseWidth)
{
.p-navgroup-link--whatsnew
{
display: block;
}
.has-js
{
.p-nav-opposite
{
align-self: center;
//margin-right: max(0px, @xf-pageEdgeSpacer - @_navAccount-hPadding);
.p-navgroup
{
background: none;
margin-left: 0;
}
.p-navgroup-link
{
border: none;
border-radius: @xf-borderRadiusMedium;
&.is-menuOpen
{
.m-borderBottomRadius(0);
}
}
}
}
}
@media (max-width: @xf-responsiveNarrow)
{
.p-navgroup-link
{
.p-navgroup--member &
{
margin-left: 5px;
&:first-of-type
{
margin-left: 0;
}
}
}
}
@media (max-width: 374px)
{
.p-navgroup-link.p-navgroup-link--register
{
display: none;
}
}]]></template>
<template title="app_staffbar.less" type="public" addon_id="XF" version_id="2000170" version_string="2.0.1"><![CDATA[// ######################################### STAFF BAR #################################
.p-staffBar
{
.xf-publicStaffBar();
a { color: rgba(255,255,255,.7); }
.hScroller-action
{
.m-hScrollerActionColorVariation(
xf-default(@xf-publicStaffBar--background-color, transparent),
@xf-publicStaffBar--color,
xf-intensify(@xf-publicStaffBar--color, 10%)
);
}
}
.p-staffBar-inner
{
.m-pageWidth();
.m-clearFix();
padding-top: 4px;
padding-bottom: 4px;
}
.p-staffBar-link
{
display: inline-block;
vertical-align: top;
color: inherit;
padding: 4px @xf-paddingMedium;
margin-right: .35em;
&:last-child
{
margin-right: 0;
}
&:hover
{
text-decoration: none;
/*background: xf-diminish(@xf-publicStaffBar--background-color, 6%);*/
border-radius: @xf-borderRadiusSmall;
}
}]]></template>
<template title="app_stickynav.less" type="public" addon_id="XF" version_id="2000470" version_string="2.0.4"><![CDATA[// STICKY NAV SETUP
.is-sticky{
.p-nav{
.p-nav-inner{
.p-nav-scroller{
.hScroller-scroll{
.p-nav-list{
li{
.p-navEl{
.p-navEl-splitTrigger{
&:before{
display: none;
}
}
}
}
}
}
}
.p-nav-opposite{
}
}
}
}
//end
.p-navSticky
{
z-index: 300;
&.is-sticky
{
z-index: @zIndex-4;
.m-dropShadow(0, 0, 8px, 3px, 0.3);
}
}
@supports (position: sticky) or (position: -webkit-sticky)
{
.p-navSticky
{
top: 0;
&.is-sticky-broken,
&.is-sticky-disabled
{
position: static;
top: auto;
}
}
}]]></template>
<template title="attachment_macros" type="public" addon_id="XF" version_id="2000170" version_string="2.0.1"><![CDATA[<xf:macro name="attachment_list_item" arg-attachment="!" arg-canView="!">
<li class="attachment">
<xf:if is="$attachment.has_thumbnail">
<xf:macro template="lightbox_macros" name="setup" arg-canViewAttachments="{$canView}" />
<div class="attachment-icon attachment-icon--img">
<a href="{{ link('attachments', $attachment) }}" target="_blank" class="{{ $canView ? 'js-lbImage' : '' }}">
<img src="{$attachment.thumbnail_url}" alt="{$attachment.filename}" />
</a>
</div>
<xf:else />
<div class="attachment-icon" data-extension="{$attachment.extension}">
<a href="{{ link('attachments', $attachment) }}" target="_blank"><i aria-hidden="true"></i></a>
</div>
</xf:if>
<div class="attachment-name">
<a href="{{ link('attachments', $attachment) }}" target="_blank" title="{$attachment.filename}">{$attachment.filename}</a>
</div>
<div class="attachment-details">
<span>{$attachment.file_size|file_size}</span>
</div>
</li>
</xf:macro>]]></template>
<template title="attachments.less" type="public" addon_id="XF" version_id="2000170" version_string="2.0.1"><![CDATA[@_attach-thumbSize: xf-option('attachmentThumbnailDimensions', px);
.attachment
{
display: inline-block;
.xf-minorBlockContent();
border-radius: @xf-borderRadiusSmall;
padding: @xf-paddingMedium;
width: 165px;
}
.attachment-icon
{
overflow: hidden;
text-align: center;
height: @_attach-thumbSize;
line-height: @_attach-thumbSize;
font-size: 0;
a:hover
{
text-decoration: none;
}
&.attachment-icon--img
{
a,
img
{
display: inline-block;
vertical-align: middle;
}
img
{
max-height: @_attach-thumbSize;
max-width: 100%;
}
}
i
{
display: block;
height: @_attach-thumbSize;
&:before
{
display: inline-block;
.m-faBase();
.m-faContent(@fa-var-file-o, .86em);
font-size: min(.66 * @_attach-thumbSize, 100px);
vertical-align: middle;
color: @xf-textColorFeature;
border-radius: 100%;
}
}
// text files
&[data-extension="txt"],
&[data-extension="patch"],
&[data-extension="diff"]
{
i:before {
.m-faContent(@fa-var-file-o, .86em); }
}
// code files
&[data-extension="c"],
&[data-extension="cpp"],
&[data-extension="h"],
&[data-extension="htm"],
&[data-extension="html"],
&[data-extension="js"],
&[data-extension="json"],
&[data-extension="php"],
&[data-extension="pl"],
&[data-extension="py"],
&[data-extension="xml"]
{
i:before {
.m-faContent(@fa-var-file-code-o, .86em); }
}
// archive files
&[data-extension="7z"],
&[data-extension="gz"],
&[data-extension="rar"],
&[data-extension="tar"],
&[data-extension="zip"]
{
i:before {
.m-faContent(@fa-var-file-zip-o, .86em); }
}
// image files
&[data-extension="gif"],
&[data-extension="jpe"],
&[data-extension="jpeg"],
&[data-extension="jpg"],
&[data-extension="png"]
{
i:before {
.m-faContent(@fa-var-file-text, .86em); }
}
// audio files
&[data-extension="aac"],
&[data-extension="mp3"],
&[data-extension="ogg"],
&[data-extension="wav"]
{
i:before {
.m-faContent(@fa-var-file-sound-o, .86em); }
}
// video files
&[data-extension="avi"]
{
i:before {
.m-faContent(@fa-var-file-video-o, .86em); }
}
// special files
&[data-extension="xls"],
&[data-extension="xlsx"]
{
i:before {
.m-faContent(@fa-var-file-excel-o, .86em); }
}
&[data-extension="pdf"]
{
i:before {
.m-faContent(@fa-var-file-pdf-o, .86em); }
}
&[data-extension="ppt"],
&[data-extension="pptx"]
{
i:before {
.m-faContent(@fa-var-file-powerpoint-o, .86em); }
}
&[data-extension="doc"],
&[data-extension="docx"]
{
i:before {
.m-faContent(@fa-var-file-word-o, .86em); }
}
}
.attachment-name
{
margin-top: @xf-paddingMedium;
.m-overflowEllipsis();
}
.attachment-details
{
font-size: @xf-fontSizeSmaller;
color: @xf-textColorMuted;
.m-clearFix();
}
.attachment-details-size { float: left; }
.attachment-details-views { float: right; }
.attachmentList
{
.m-listPlain();
display: flex;
flex-wrap: wrap;
align-items: stretch;
margin-bottom: -5px;
.attachment
{
margin-right: 5px;
margin-bottom: 5px;
min-width: 0;
display: flex;
flex-direction: column;
}
.attachment-icon
{
flex-grow: 1;
display: flex;
height: auto;
line-height: 1;
align-items: center;
a
{
margin: auto;
}
i
{
height: auto;
}
}
}
.attachUploadList
{
.m-listPlain();
.xf-contentAltBase();
margin-bottom: @xf-paddingLarge;
&.attachUploadList--spaced
{
margin-top: @xf-paddingLarge;
}
> li
{
border-bottom: @xf-borderSize solid @xf-borderColorLight;
padding: @xf-paddingMedium;
&:last-child
{
border-bottom: none;
}
&.is-uploadError
{
.contentRow-title span // span needed due to opacity creating new stacking context
{
text-decoration: line-through;
opacity: .5;
}
.contentRow-figure
{
opacity: .5;
}
}
}
}
.attachUploadList-insertAll,
.attachUploadList-insertRow
{
font-size: @xf-fontSizeSmall;
color: @xf-textColorMuted;
span
{
vertical-align: middle;
}
}
.attachUploadList-figure.contentRow-figure
{
width: 100px;
min-height: 50px;
img
{
max-height: 100px;
max-width: 100px;
}
}
.attachUploadList-placeholder
{
display: block;
width: 100px;
&:before
{
display: inline-block;
.m-faBase();
.m-faContent(@fa-var-file-o, .86em);
font-size: 60px;
vertical-align: middle;
color: @xf-textColorFeature;
border-radius: 100%;
}
}
.attachUploadList-progress
{
position: relative;
i
{
position: absolute;
top: 0;
bottom: 0;
left: 0;
background: @xf-progressBarColor;
color: contrast(@xf-progressBarColor);
border-radius: @xf-borderRadiusMedium;
padding-right: .2em;
text-align: right;
font-style: normal;
white-space: nowrap;
min-width: 2em;
.m-transition(width);
}
}
.attachUploadList-error
{
color: @xf-textColorAttention;
}
@media (max-width: @xf-responsiveNarrow)
{
.attachUploadList-figure.contentRow-figure
{
width: 50px;
img
{
max-height: 50px;
max-width: 50px;
}
}
.attachUploadList-placeholder
{
display: block;
width: 50px;
&:before
{
font-size: 30px;
}
}
}]]></template>
<template title="bb_code_tag_quote" type="public" addon_id="XF" version_id="2000070" version_string="2.0.0"><![CDATA[<xf:css src="bb_code.less" />
<div class="bbCodeBlock bbCodeBlock--expandable bbCodeBlock--quote{{ ($attributes.member && $xf.visitor.isIgnoring($attributes.member)) ? ' is-ignored' : '' }}">
<xf:if is="$name">
<div class="bbCodeBlock-title">
<xf:if is="$source">
<a href="{{ link('goto/' . {$source.type}, null, {'id': $source.id}) }}"
class="bbCodeBlock-sourceJump"
data-xf-click="attribution"
data-content-selector="#{$source.type}-{$source.id}">{{ phrase('x_said:', {'name': $name}) }}</a>
<xf:else />
{{ phrase('x_said:', {'name': $name}) }}
</xf:if>
</div>
<xf: else />
<div class="bbCodeBlock-title">
{{ phrase('QUOTE') }}:
</div>
</xf:if>
<div class="bbCodeBlock-content">
<div class="bbCodeBlock-expandContent">
{$content}
</div>
<div class="bbCodeBlock-expandLink"><a>{{ phrase('click_to_expand') }}</a></div>
</div>
</div>]]></template>
<template title="conversation_message_macros" type="public" addon_id="XF" version_id="2000470" version_string="2.0.4"><![CDATA[<xf:macro name="message" arg-message="!" arg-conversation="!" arg-position="" arg-lastRead="{{ null }}">
<xf:css src="message.less" />
<article class="message message--conversationMessage {{ $message.isIgnored() ? ' is-ignored' : '' }} {{ $message.isUnread($lastRead) ? 'is-unread' : '' }} js-message" data-author="{{ $message.User.username ?: $message.username }}">
<span class="u-anchorTarget" id="convMessage-{$message.message_id}"></span>
<div class="message-inner">
<div class="message-cell message-cell--user">
<xf:macro template="message_macros" name="user_info_only_avatar" arg-user="{$message.User}" arg-fallbackName="{$message.username}" />
</div>
<div class="message-cell message-cell--main">
<div class="message-main js-quickEditTarget">
<header class="message-attribution">
<div class="message-attribution--brv">
<div class="message-attribution-infor">
<xf:macro template="message_macros" name="user_info_header" arg-user="{$message.User}" arg-fallbackName="{$message.username}" />
<span class="user--infor" data-xf-click="menu"><img src="{{ base_url() }}styles/brivium/cerium/extra/mess-info.png"><span class="hidden-xs">{{ phrase('Information') }}</span></span>
<div class="menu menu--structural menu--potentialFixed user--info--menu" data-menu="menu">
<div class="menu-content">
<xf:macro template="message_macros" name="user_info" arg-user="{$message.User}" arg-fallbackName="{$message.username}"/>
</div>
</div>
</div>
<div class="message-attribution-opposite">
<span class="item-attribution-opposite"><i class="fa fa-clock-o" aria-hidden="true"></i><span class="item-text"><xf:date time="{$message.message_date}" /></span></span>
<xf:if is="$message.isUnread($lastRead)">
<span class="message-newIndicator">{{ phrase('new') }}</span>
</xf:if>
<xf:if is="$position">#{$position|number}</xf:if>
</div>
</div>
</header>
<div class="message-content">
<xf:if is="$message.isIgnored()">
<div class="messageNotice messageNotice--ignored">
{{ phrase('you_are_ignoring_content_by_this_member') }}
</div>
</xf:if>
<div class="message-userContent lbContainer js-lbContainer"
data-lb-id="message-{$message.message_id}"
data-lb-caption-title="{{ $message.User ? $message.User.username : $message.username }}"
data-lb-caption-desc="{{ date_time($message.message_date) }}">
<article class="message-body js-selectToQuote">
{{ bb_code($message.message, 'conversation_message', $message) }}
<div class="js-selectToQuoteEnd"> </div>
</article>
<xf:if is="$message.attach_count">
<xf:macro template="message_macros" name="attachments"
arg-attachments="{$message.Attachments}"
arg-message="{$message}"
arg-canView="{{ true }}" />
</xf:if>
</div>
<xf:macro template="message_macros" name="signature" arg-user="{$message.User}" />
</div>
<footer class="message-footer">
<xf:if contentcheck="true">
<div class="message-actionBar actionBar">
<xf:contentcheck>
<xf:if contentcheck="true">
<div class="actionBar-set actionBar-set--external">
<xf:contentcheck>
<xf:if is="$message.canLike()">
<a href="{{ link('conversations/messages/like', $message) }}" class="actionBar-action actionBar-action--like" data-xf-click="like" data-like-list="< .js-message | .js-likeList"><xf:if is="$message.isLiked()">{{ phrase('unlike') }}<xf:else />{{ phrase('like') }}</xf:if></a>
</xf:if>
<xf:if is="$conversation.canReply()">
<xf:set var="$quoteLink">{{ link('conversations/reply', $conversation, {'quote': $message.message_id}) }}</xf:set>
<xf:if is="$xf.options.multiQuote">
<a href="{$quoteLink}"
class="actionBar-action actionBar-action--mq u-jsOnly js-multiQuote"
title="{{ phrase('toggle_multi_quote_tooltip')|for_attr }}"
data-message-id="{$message.message_id}"
data-mq-action="add">
{{ phrase('quote') }}
</a>
</xf:if>
<a href="{$quoteLink}"
class="actionBar-action actionBar-action--reply"
title="{{ phrase('reply_quoting_this_message')|for_attr }}"
data-xf-click="quote"
data-quote-href="{{ link('conversations/messages/quote', $message) }}">{{ phrase('reply') }}</a>
</xf:if>
</xf:contentcheck>
</div>
</xf:if>
<xf:if contentcheck="true">
<div class="actionBar-set actionBar-set--internal">
<xf:contentcheck>
<xf:if is="$message.canReport()">
<a href="{{ link('conversations/messages/report', $message) }}" class="actionBar-action actionBar-action--report" data-xf-click="overlay">{{ phrase('report') }}</a>
</xf:if>
<xf:if is="$message.canEdit()">
<xf:js src="xf/message.js" min="1" />
<a href="{{ link('conversations/messages/edit', $message) }}"
class="actionBar-action actionBar-action--edit"
data-xf-click="quick-edit"
data-editor-target="< .js-quickEditTarget">{{ phrase('edit') }}</a>
</xf:if>
<xf:if is="$message.canCleanSpam()">
<a href="{{ link('spam-cleaner', $message) }}"
class="actionBar-action actionBar-action--spam actionBar-action--menuItem"
data-xf-click="overlay">{{ phrase('spam') }}</a>
</xf:if>
<xf:if is="$xf.visitor.canViewIps() && $message.ip_id">
<a href="{{ link('conversations/messages/ip', $message) }}"
class="actionBar-action actionBar-action--ip"
data-xf-click="overlay">{{ phrase('ip') }}</a>
</xf:if>
</xf:contentcheck>
</div>
</xf:if>
</xf:contentcheck>
</div>
</xf:if>
<div class="likesBar js-likeList {{ $message.likes ? 'is-active' : '' }}">
<xf:likes content="{$message}" url="{{ link('conversations/messages/likes', $message) }}" />
</div>
</footer>
</div>
</div>
</div>
</article>
</xf:macro>]]></template>
<template title="conversations_popup" type="public" addon_id="XF" version_id="2001070" version_string="2.0.10"><![CDATA[<xf:if is="$unreadConversations is not empty OR $readConversations is not empty">
<div class="menu-scroller">
<ol class="listPlain">
<xf:foreach loop="$unreadConversations" value="$userConv">
<xf:macro name="popup_item" arg-userConv="{$userConv}" />
</xf:foreach>
<xf:foreach loop="$readConversations" value="$userConv">
<xf:macro name="popup_item" arg-userConv="{$userConv}" />
</xf:foreach>
</ol>
</div>
<xf:else />
<div class="menu-row">{{ phrase('you_have_no_recent_conversations') }}</div>
</xf:if>
<xf:macro name="popup_item" arg-userConv="!">
<li class="menu-row menu-row--separated menu-row--clickable {{ $userConv.isUnread() ? 'menu-row--highlighted' : '' }}">
<div class="fauxBlockLink">
<div class="contentRow">
<div class="contentRow-figure">
<xf:avatar user="$userConv.Master.LastMessageUser" size="xxs" defaultname="{$userConv.Master.last_message_username}" />
</div>
<div class="contentRow-main contentRow-main--close">
<div class="conversation-time" style="float: right;">
<xf:date time="$userConv.Master.last_message_date" />
</div>
<div class="contentRow-minor contentRow-minor--smaller contentRow-minor--hideLinks conversation-autor">
{{ phrase('with_people:') }}
<ul class="listInline listInline--selfInline listInline--comma">
<li><xf:username user="$userConv.Master.Starter" defaultname="{$userConv.Master.username}" title="{{ phrase('conversation_starter') }}" href="" /></li><xf:trim>
</xf:trim><xf:foreach loop="$userConv.Master.recipients" value="$recipient" if="{$recipient.user_id} != {$userConv.Master.user_id}"><xf:trim>
<li><xf:username user="{$recipient}" defaultname="{{ phrase('unknown_member') }}" href="" /></li>
</xf:trim></xf:foreach>
</ul>
</div>
<a href="{{ link('conversations' . ($userConv.isUnread() ? '/unread' : ''), $userConv) }}" class="fauxBlockLink-blockLink">{$userConv.Master.title}</a>
</div>
</div>
</div>
</li>
</xf:macro>]]></template>
<template title="core_block.less" type="public" addon_id="XF" version_id="2000470" version_string="2.0.4"><![CDATA[// ################################# BLOCKS ##################
.blocks
{
margin-bottom: @xf-elementSpacer;
&:last-child
{
margin-bottom: 0;
}
.block
{
margin-bottom: (@xf-elementSpacer / 2);
&:last-child
{
margin-bottom: 0;
}
}
}
.blocks-header
{
font-size: @xf-fontSizeLarger;
font-weight: @xf-fontWeightNormal;
color: @xf-textColorMuted;
margin-bottom: 5px;
}
.blocks-textJoiner
{
display: table;
width: 100%;
margin-bottom: (@xf-elementSpacer / 2);
padding: 0 @xf-paddingMedium;
> span
{
display: table-cell;
position: relative;
&:before
{
content: '';
position: absolute;
left: 0;
right: 0;
top: 50%;
border-top: @xf-borderSize solid @xf-borderColor;
}
}
> em
{
display: table-cell;
padding: 0 @xf-paddingLarge;
width: 1%;
white-space: nowrap;
font-size: @xf-fontSizeLargest;
line-height: 1;
font-style: normal;
text-align: center;
}
}
.block
{
margin-bottom: @xf-elementSpacer;
&.block--close
{
margin-bottom: 5px;
}
&.block--treeEntryChooser
{
.block-header
{
font-size: @xf-fontSizeLarge;
.block-desc
{
font-size: @xf-fontSizeSmallest;
}
}
.block-row
{
padding-top: 6px;
padding-bottom: 6px;
}
.contentRow
{
&.is-disabled
{
opacity: 0.5;
}
}
.contentRow-title
{
font-size: @xf-fontSizeNormal;
}
.contentRow-minor
{
font-size: @xf-fontSizeSmaller;
}
.contentRow-suffix
{
font-size: @xf-fontSizeSmall;
}
}
}
.block-outer
{
margin-bottom: 20px;
border-radius: 5px;
border: 1px solid @xf-borderColor;
display: flex;
display: -ms-flexbox;
align-items: center;
.m-clearFix();
.button{
border: none !important;
}
&:empty
{
display: none;
}
&.block-outer--after
{
margin-bottom: 10px;
margin-top: 20px;
}
.block-outer-hint
{
font-size: @xf-fontSizeSmall;
color: @xf-textColorMuted;
}
}
.block-outer-main { float: left; margin-right: auto;}
.block-outer-opposite { float: right; max-height: 40px; margin-left: auto;
.button{
padding: 10px 20px;
line-height: 20px;
}
a{
line-height: 20px;
padding: 10px 20px;
display: inherit;
}
}
.block-outer-middle { text-align: center; margin: 0 auto;}
.block-container
{
.xf-contentBase();
.xf-blockBorder();
border-radius: @xf-blockBorderRadius;
.m-transition(); .m-transitionProperty(border margin); // edgeSpacerRemoval
}
@media (min-width: @xf-responsiveEdgeSpacerRemoval)
{
@{block-noStripSel} > :first-child,
.block-topRadiusContent,
@{block-noStripSel} > .block-body:first-child > .blockLink:first-child
{
border-top-left-radius: @block-borderRadius-inner;
border-top-right-radius: @block-borderRadius-inner;
}
@{block-noStripSel} > :last-child,
.block-bottomRadiusContent,
@{block-noStripSel} > .block-body:last-child > .blockLink:last-child
{
border-bottom-left-radius: @block-borderRadius-inner;
border-bottom-right-radius: @block-borderRadius-inner;
}
@{block-noStripSel} > .block-body:first-child > .dataList:first-child,
.block-topRadiusContent.dataList,
.block-topRadiusContent > .dataList:first-child
{
tbody:first-child .dataList-row:first-child,
thead:first-child .dataList-row:first-child
{
> .dataList-cell:first-child { border-top-left-radius: @block-borderRadius-inner; }
> .dataList-cell:last-child { border-top-right-radius: @block-borderRadius-inner; }
}
}
@{block-noStripSel} > .block-body:first-child > .formRow:first-child,
.block-topRadiusContent.formRow,
.block-topRadiusContent > .formRow:first-child
{
> dt { border-top-left-radius: @block-borderRadius-inner; }
> dd { border-top-right-radius: @block-borderRadius-inner; }
}
@{block-noStripSel} > .block-body:last-child > .dataList:last-child,
.block-bottomRadiusContent.dataList,
.block-bottomRadiusContent > .dataList:last-child
{
tbody:last-child .dataList-row:last-child
{
> .dataList-cell:first-child { border-bottom-left-radius: @block-borderRadius-inner; }
> .dataList-cell:last-child { border-bottom-right-radius: @block-borderRadius-inner; }
}
}
@{block-noStripSel} > .block-body:last-child > .formRow:last-child,
.block-bottomRadiusContent.formRow,
.block-bottomRadiusContent > .formRow:last-child
{
> dt { border-bottom-left-radius: @block-borderRadius-inner; }
> dd { border-bottom-right-radius: @block-borderRadius-inner; }
}
@{block-noStripSel} > .block-body:last-child .formSubmitRow:not(.is-sticky),
@{block-noStripSel} > .formSubmitRow:not(.is-sticky):last-child,
.block-bottomRadiusContent > .formSubmitRow:not(.is-sticky)
{
> dt { border-bottom-left-radius: @block-borderRadius-inner; }
> dd { border-bottom-right-radius: @block-borderRadius-inner; }
.formSubmitRow-bar
{
border-bottom-left-radius: @block-borderRadius-inner;
border-bottom-right-radius: @block-borderRadius-inner;
}
}
}
.block-header
{
padding: @xf-blockPaddingV @xf-blockPaddingH;
margin: 0;
font-weight: @xf-fontWeightNormal;
text-decoration: none;
.xf-blockHeader();
.m-clearFix();
.m-hiddenLinks();
&.block-header--separated
{
border-top: @xf-borderSize solid @xf-borderColorLight;
}
.block-desc
{
color: fade(@xf-blockHeader--color, 70);
.m-textColoredLinks();
}
}
.block-minorHeader
{
padding: @xf-blockPaddingV @xf-blockPaddingH;
margin: 0;
font-weight: @xf-fontWeightNormal;
text-decoration: none;
.xf-blockMinorHeader();
.m-clearFix();
.m-hiddenLinks();
.block-body + &
{
border-top: @xf-borderSize solid @xf-borderColorLight;
}
.block-desc
{
.m-textColoredLinks();
}
&--small
{
font-size: @xf-fontSizeSmall;
}
}
.block-tabHeader
{
padding: 0;
margin: 0;
font-weight: @xf-fontWeightNormal;
.xf-blockTabHeader();
.m-tabsTogether(xf-default(@xf-blockTabHeader--font-size, @xf-fontSizeNormal));
.tabs-tab
{
padding: @xf-blockPaddingV @xf-blockPaddingH max(0px, @xf-blockPaddingV - @xf-borderSizeFeature);
border-bottom: @xf-borderSizeFeature solid transparent;
&:hover
{
color: @xf-blockTabHeaderSelected--color;
background: fade(@xf-blockTabHeaderSelected--color, 10%);
}
&.is-active
{
background: none;
.xf-blockTabHeaderSelected();
}
}
.block-tabHeader-extra
{
float: right;
color: inherit;
font-size: @xf-blockTabHeader--font-size;
padding: @xf-blockPaddingV @xf-blockPaddingH;
}
.hScroller-action
{
.m-hScrollerActionColorVariation(
xf-default(@xf-blockTabHeader--background-color, transparent),
@xf-blockTabHeader--color,
@xf-blockTabHeaderSelected--color
);
}
}
.block-minorTabHeader
{
padding: 0;
margin: 0;
font-weight: @xf-fontWeightNormal;
.xf-blockMinorTabHeader();
.m-tabsTogether(xf-default(@xf-blockMinorTabHeader--font-size, @xf-fontSizeNormal));
.tabs-tab
{
padding: @xf-blockPaddingV @xf-blockPaddingH max(0px, @xf-blockPaddingV - @xf-borderSizeFeature);
border-bottom: @xf-borderSizeFeature solid transparent;
&:hover
{
color: @xf-blockMinorTabHeaderSelected--color;
}
&.is-active
{
background: none;
.xf-blockMinorTabHeaderSelected();
}
}
.hScroller-action
{
.m-hScrollerActionColorVariation(
xf-default(@xf-blockMinorTabHeader--background-color, transparent),
@xf-blockMinorTabHeader--color,
@xf-blockMinorTabHeaderSelected--color
);
}
}
.block-filterBar
{
padding: @xf-blockPaddingV @xf-blockPaddingH;
.xf-blockFilterBar();
.filterBar-filterToggle
{
background: mix(
xf-default(@xf-blockFilterBar--color, @xf-linkColor),
xf-default(@xf-blockFilterBar--background-color, transparent),
8%
);
}
.filterBar-filterToggle,
.filterBar-menuTrigger
{
&:hover
{
text-decoration: none;
background: mix(
xf-default(@xf-blockFilterBar--color, @xf-linkColor),
xf-default(@xf-blockFilterBar--background-color, transparent),
16%
);
}
}
.filterBar-menuTrigger
{
margin-right: -5px;
}
}
.block-textHeader
{
margin: @xf-blockPaddingV/2 0;
padding: 0;
font-weight: @xf-fontWeightNormal;
.xf-blockTextHeader();
.m-clearFix();
.m-hiddenLinks();
&.block-textHeader--scaled
{
font-size: inherit;
}
.block-textHeader-highlight
{
color: @xf-textColor;
}
.block-desc
{
.m-textColoredLinks();
}
&:first-child
{
margin-top: 0;
}
}
.block-formSectionHeader
{
padding: @xf-blockPaddingV @xf-blockPaddingH;
margin: 0;
font-weight: @xf-fontWeightNormal;
text-decoration: none;
.xf-formSectionHeader();
.m-clearFix();
.m-hiddenLinks();
.block-desc
{
.m-textColoredLinks();
}
.block-container > &:first-child
{
border-top: none;
}
.block-formSectionHeader-aligner
{
@_blockPaddingShift: (unit(@xf-formLabelWidth) / 100) * (@xf-blockPaddingH);
display: inline-block;
text-align: right;
min-width: @xf-formLabelWidth;
min-width: ~"calc((@{xf-formLabelWidth}) - (@{_blockPaddingShift}) - (@{xf-formRowPaddingHInner}) - (@{xf-borderSize}))";
max-width: 100%;
@media (max-width: @xf-formResponsive)
{
display: inline;
text-align: left;
min-width: 0;
padding-left: 0;
}
}
@media (max-width: @xf-formResponsive)
{
padding-left: @xf-formRowPaddingHOuter;
}
.block-formSectionHeader-multiChecker
{
float: right;
}
}
.block-desc
{
display: block;
font-size: @xf-fontSizeSmaller;
font-weight: @xf-fontWeightNormal;
}
.block-body
{
.m-listPlain();
&.block-body--collapsible
{
.has-no-js & { display: block; }
.m-transitionFadeDown();
}
&.block-body--contained
{
overflow: auto;
max-height: 300px;
max-height: 70vh;
}
}
.block-row
{
margin: 0;
padding: @xf-blockPaddingV @xf-blockPaddingH;
.m-clearFix();
&.block-row--alt
{
.xf-contentAltBase();
}
&.block-row--minor
{
font-size: @xf-fontSizeSmall;
}
&.block-row--separated
{
padding-top: (@xf-blockPaddingV) * 2;
padding-bottom: (@xf-blockPaddingV) * 2;
+ .block-row
{
border-top: @xf-borderSize solid @xf-borderColorLight;
}
}
&.block-row--connectAbove
{
padding-bottom: (@xf-blockPaddingV) * 2;
.block-body > &:last-child
{
padding-bottom: @xf-blockPaddingV;
}
}
&.block-row--highlighted
{
.xf-contentHighlightBase();
}
&.block-row--clickable:hover
{
.xf-contentHighlightBase();
}
&.is-mod-selected
{
background: @xf-inlineModHighlightColor;
}
> pre
{
&:first-child { margin-top: 0; }
&:last-child { margin-bottom: 0; }
}
}
.block-separator
{
margin: 0;
padding: 0;
border: none;
border-top: @xf-borderSize solid @xf-borderColorLight;
}
.block-footer
{
padding: @xf-blockPaddingV @xf-blockPaddingH;
.xf-blockFooter();
.m-clearFix();
&:first-child
{
border: none;
}
[data-app=admin] &
{
.block-footer-counter,
.block-footer-select
{
line-height: 30px;
}
}
&:not(.block-footer--split)
{
.block-footer-counter
{
float: left;
}
.block-footer-controls
{
float: right;
}
}
&.block-footer--split
{
display: flex;
align-items: center;
.block-footer-main,
.block-footer-counter
{
flex-grow: 1;
.has-no-flexbox &
{
float: left;
}
}
.block-footer-select:not(:last-child)
{
margin: 0 1em;
}
.block-footer-opposite,
.block-footer-controls
{
margin-left: auto;
.has-no-flexbox &
{
float: right;
}
}
}
}
@media (max-width: @xf-responsiveNarrow)
{
.block-outer
{
text-align: center;
}
.block-outer-main,
.block-outer-opposite
{
float: none;
text-align: center;
}
.block-outer-main + .block-outer-opposite
{
margin-top: @xf-paddingMedium;
}
}]]></template>
<template title="core_formrow.less" type="public" addon_id="XF" version_id="2001070" version_string="2.0.10"><![CDATA[// ########################################### FORM ROWS #################################
@_form-labelShiftInput: @xf-paddingMedium + @xf-borderSize; // technically input border-top-width + padding-top
@_form-labelButtonInput: 5px; // technically button border-top-width + padding-top, adjusted for text size differences
@_form-elementSpacer: @xf-paddingMedium;
.m-formRowBlockStyle()
{
display: block;
> dt,
> dd
{
width: auto;
display: block;
padding: ((@xf-formRowPaddingV) / 2) @xf-formRowPaddingHOuter @xf-formRowPaddingV;
}
> dt
{
background: none;
border: none;
text-align: left;
padding-bottom: 0;
.formRow-hint
{
display: inline;
}
}
&.formRow--input,
&.formRow--button
{
> dt
{
padding-top: ((@xf-formRowPaddingV) / 2);
}
}
> dd
{
padding-top: ((@xf-formRowPaddingV) / 2);
}
> dd > .inputChoices:first-child
{
padding-top: 0;
}
}
.formRow
{
display: table;
table-layout: fixed;
width: 100%;
margin: 0;
position: relative;
> dt,
> dd
{
display: table-cell;
vertical-align: top;
margin: 0;
}
> dt
{
border-right: @xf-borderSize solid transparent;
.xf-formLabel();
width: @xf-formLabelWidth;
padding: @xf-formRowPaddingV @xf-formRowPaddingHInner @xf-formRowPaddingV @xf-formRowPaddingHOuter;
}
> dd
{
width: (100% - @xf-formLabelWidth);
padding: @xf-formRowPaddingV @xf-formRowPaddingHOuter @xf-formRowPaddingV @xf-formRowPaddingHInner;
}
&.formRow--input > dt
{
padding-top: (@xf-formRowPaddingV + @_form-labelShiftInput);
}
&.formRow--button > dt
{
padding-top: (@xf-formRowPaddingV + @_form-labelButtonInput);
}
&.formRow--inputLabelPair > dt
{
padding-top: (@xf-formRowPaddingV * 2);
}
&.formRow--valueToEdge > dd
{
padding-left: 0;
padding-right: 0;
}
&.formRow--limited
{
display: none;
}
&.formRow--fullWidth
{
.m-formRowBlockStyle();
& + .formRow,
.formRow + &,
& + * > .formRow:first-of-type, // allows formRows to be wrapped
.formRow + * > &:first-of-type // in a single-depth grouping element
{
border-top: @xf-borderSize solid @xf-borderColorLight;
}
&.formRow--noLabel
{
> dt
{
display: none;
}
> dd
{
padding-top: @xf-formRowPaddingV;
}
}
& + .formRow--mergePrev,
& + * > .formRow:first-of-type.formRow--mergePrev,
&.formRow--mergeNext + &,
&.formRow--mergeNext + * > &:first-of-type
{
border-top: 0;
> dt
{
padding-top: 0;
}
}
&.formRow--noGutter
{
> dt,
> dd
{
padding-left: 0;
padding-right: 0;
}
}
&.formRow--noPadding
{
> dt,
> dd
{
padding: 0;
}
}
&.formRow--noPadding + &,
&.formRow--noPadding + * > &:first-of-type
{
> dt
{
padding-top: @xf-formRowPaddingV;
}
}
}
.formRow-label
{
.m-appendColon();
}
&.formRow--noColon .formRow-label:after
{
content: "";
}
.formRow-explain
{
margin: @_form-elementSpacer 0 0;
.m-formElementExplain();
}
&.formRow--explainOffset .formRow-explain
{
margin-top: (@_form-elementSpacer) * 2;
}
.formRow-hint
{
display: block;
font-style: normal;
.xf-formHint();
.m-textColoredLinks();
.formRow-hint-featured
{
display: block;
//font-weight: @xf-fontWeightHeavy;
color: @xf-textColorFeature;
}
}
+ .formInfoRow
{
border-top: @xf-borderSize solid @xf-borderColorLight;
}
@media (max-width: @xf-formResponsive)
{
.m-formRowBlockStyle();
}
}
.formButtonGroup
{
display: flex;
flex-wrap: wrap;
margin-top: @xf-paddingLarge;
margin-bottom: -5px;
.has-no-flexbox
{
.m-clearFix();
}
}
.formButtonGroup-primary
{
order: 2;
margin-left: auto;
margin-bottom: 5px;
.has-no-flexbox
{
float: right;
}
}
.formButtonGroup-extra
{
order: 1;
margin-bottom: 5px;
.has-no-flexbox
{
float: left;
}
}
.formInfoRow
{
padding: @xf-formRowPaddingV @xf-formRowPaddingHOuter;
&.formInfoRow--close
{
padding-top: ((@xf-formRowPaddingV) / 2);
padding-bottom: ((@xf-formRowPaddingV) / 2);
}
&.formInfoRow--noPadding
{
padding: 0;
}
&.formInfoRow--confirm
{
text-align: center;
strong
{
display: block;
margin: .5em 0;
font-size: @xf-fontSizeLarger;
&:last-child
{
margin-bottom: 0;
}
}
}
+ .formRow
{
border-top: @xf-borderSize solid @xf-borderColorLight;
}
&.u-hidden:not(.is-active)
{
+ .formRow
{
border-top: none;
}
}
> .blockMessage
{
&:first-child { margin-top: 0; }
&:last-child { margin-bottom: 0; }
}
}
.formSubmitRow
{
position: relative;
> dt
{
display: none;
}
> dd
{
width: 100%;
padding: 0;
}
&.formSubmitRow--sticky.is-sticky
{
.formSubmitRow-main
{
position: fixed;
bottom: 0;
z-index: @zIndex-2;
}
.formSubmitRow-bar
{
box-shadow: 0px -5px 15px fade(black, 15%);
}
}
&.formSubmitRow--simple
{
> dt
{
visibility: hidden;
}
.formSubmitRow-controls
{
text-align: center;
padding-left: 0;
margin-left: 0;
}
}
.block-body--collapsible:not(.is-active) + &:not(.formSubmitRow--simple)
{
> dt
{
visibility: hidden;
}
}
}
.formSubmitRow-main
{
position: relative;
}
.formSubmitRow-bar
{
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
.xf-formSubmitRow();
}
.formSubmitRow-controls
{
position: relative;
padding-left: @xf-formLabelWidth;
padding-top: @xf-paddingMedium;
padding-bottom: @xf-paddingMedium;
margin-left: @xf-formRowPaddingHInner;
margin-right: @xf-formRowPaddingHOuter;
> .button:first-child:last-child
{
min-width: 120px;
}
}
@media (max-width: @xf-formResponsive)
{
.formSubmitRow-controls
{
padding-left: 0;
text-align: center;
}
}
.formRowSep
{
margin: -1px @xf-formRowPaddingHOuter 0;
border: none;
border-top: @xf-borderSize solid @xf-borderColor;
+ .formRowSep,
&:last-child
{
display: none;
}
}]]></template>
<template title="core_hscroller.less" type="public" addon_id="XF" version_id="2000270" version_string="2.0.2"><![CDATA[// ##################################### HORIZONTAL SCROLLER ###################
.hScroller
{
overflow-y: hidden;
position: relative;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
-webkit-overflow-scrolling: touch;
&.hScroller--scrollHidden
{
.hScroller-action
{
opacity: 0;
.m-transition();
}
.has-no-touchevents &:hover .hScroller-action
{
opacity: 1;
}
}
}
.hScroller-scroll
{
display: block;
white-space: nowrap;
word-wrap: normal;
overflow-x: hidden;
&.is-calculated
{
overflow-x: scroll;
// pushes the scrollbar out of view
}
}
.hScroller-action
{
position: absolute;
top: 0;
bottom: 0;
width: 40px;
padding: 0 5px;
display: none;
cursor: pointer;
&.is-active
{
display: block;
display: flex;
align-items: center;
}
&:after
{
.m-faBase();
font-size: 120%;
}
&.hScroller-action--start
{
left: 0;
justify-content: flex-start;
text-align: left;
z-index: 3;
&:after
{
.m-faContent(@fa-var-chevron-left, .72em, ltr);
.m-faContent(@fa-var-chevron-right, .72em, rtl);
}
}
&.hScroller-action--end
{
right: 0;
justify-content: flex-end;
text-align: right;
z-index: 3;
&:after
{
.m-faContent(@fa-var-chevron-right, .72em, ltr);
.m-faContent(@fa-var-chevron-left, .72em, rtl);
}
}
}
.scrollMeasure
{
position: absolute;
top: -1000px;
width: 100px;
height: 100px;
overflow: scroll;
visibility: hidden;
}]]></template>
<template title="core_labels.less" type="public" addon_id="XF" version_id="2001070" version_string="2.0.10"><![CDATA[.label
{
padding: 0px 8px;
border: none;
border-radius: 2.5px;
font-size: 80%;
line-height: 18px;
text-decoration: none;
display: inline-block;
&:hover,
a:hover &
{
text-decoration: none;
}
&.label--fullSize
{
font-size: 100%;
}
&.label--small
{
font-size: @xf-fontSizeSmall;
}
&.label--smallest
{
font-size: @xf-fontSizeSmallest;
}
// Label variations
&.label--hidden
{
// this has to essentially undo all the adjustments made by .label
padding: inherit;
border: none;
font-size: inherit;
line-height: inherit;
text-decoration: inherit;
&:hover
{
text-decoration: underline;
}
}
&.label--subtle
{
.m-labelVariation(@xf-textColorMuted, @xf-contentAltBg);
}
&.label--primary
{
.m-labelVariation(@xf-linkColor, @xf-contentHighlightBg, @xf-borderColorHighlight);
}
&.label--accent
{
.m-labelVariation(@xf-textColorAccentContent, @xf-contentAccentBg, @xf-borderColorAccentContent);
}
&.label--red { .m-labelVariation(white, #e20000); }
&.label--green { .m-labelVariation(white, green); }
&.label--olive { .m-labelVariation(white, olive); }
&.label--lightGreen { .m-labelVariation(black, #ccf9c8, #bee8ba); }
&.label--blue { .m-labelVariation(white, #0008e3); }
&.label--royalBlue { .m-labelVariation(white, royalblue); }
&.label--skyBlue { .m-labelVariation(white, #7cc3e0); }
&.label--gray { .m-labelVariation(white, gray); }
&.label--silver { .m-labelVariation(black, silver); }
&.label--yellow { .m-labelVariation(black, #ffff91, #e6e687); }
&.label--orange { .m-labelVariation(black, #ffcb00); }
&.label--error { .m-labelVariation(#c84448, #fde9e9, #c84448); }
}
.label-append
{
display: inline-block;
}
.labelLink,
.labelLink:hover
{
text-decoration: none;
}]]></template>
<template title="core_offcanvas.less" type="public" addon_id="XF" version_id="2000270" version_string="2.0.2"><![CDATA[// ################################## OFF CANVAS MENU #########################
@_offCanvas-animationLength: (2 * (@xf-animationSpeed));
.offCanvasMenu
{
display: none;
position: fixed;
top: 0;
bottom: 0;
left: 0;
right: 0;
z-index: @zIndex-5;
.m-transition(none, @_offCanvas-animationLength); // needed to keep the children displayed through animation
.m-transform(scale(1)); // forces instant repaint in iOS
// every tap on iOS causes a brief highlight, disable it for off canvas menu
// then restore it for some tappable elements to retain it
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
a
{
-webkit-tap-highlight-color: initial;
}
&.is-transitioning
{
display: block;
}
&.is-active
{
display: block;
}
.offCanvasMenu-hidden
{
display: none;
}
.offCanvasMenu-shown
{
display: block;
}
.offCanvasMenu-closer
{
float: right;
cursor: pointer;
text-decoration: none;
-webkit-tap-highlight-color: initial;
padding: @xf-paddingLarge;
margin: -@xf-paddingLarge;
&:hover
{
text-decoration: none;
}
&:after
{
.m-faBase();
.m-faContent(@fa-var-remove, .79em);
}
}
.block-container,
.blockMessage
{
margin-left: 0;
margin-right: 0;
border-radius: 0;
border-left: none;
border-right: none;
}
}
.offCanvasMenu-shown
{
display: none;
}
.offCanvasMenu-backdrop
{
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
background: rgba(0, 0, 0, .25);
opacity: 0;
.m-transition(all, @_offCanvas-animationLength, ease-in-out);
.is-active &
{
opacity: 1;
}
}
.offCanvasMenu-content
{
position: relative;
width: 280px;
max-width: 85%;
height: 100%;
padding-bottom: 44px;
overflow: auto;
.m-transition(all, @_offCanvas-animationLength, ease-in-out);
-webkit-overflow-scrolling: touch;
& when(@ltr)
{
.m-dropShadow(2px, 0, 5px, 0, .25);
.m-transform(translateX(-280px));
}
& when(@rtl)
{
.m-dropShadow(-2px, 0, 5px, 0, .25);
.m-transform(translateX(280px));
}
.is-active &
{
.m-transform(translateX(0));
}
}
.offCanvasMenu-header
{
padding: @xf-paddingLarge;
margin: 0;
font-size: @xf-fontSizeLarger;
font-weight: @xf-fontWeightNormal;
.m-clearFix();
.m-hiddenLinks();
&.offCanvasMenu-header--separated
{
margin-bottom: @xf-paddingLarge;
}
}
.offCanvasMenu-row
{
padding: @xf-paddingLarge;
}
.offCanvasMenu-separator
{
padding: 0;
margin: 0;
border: none;
border-top: 1px solid transparent;
}
.offCanvasMenu-link
{
display: block;
padding: @xf-paddingLarge;
font-size: @xf-fontSizeLarge;
text-decoration: inherit;
&:hover
{
text-decoration: inherit;
}
&.offCanvasMenu-link--splitToggle
{
position: relative;
text-decoration: inherit;
&:before
{
content: '';
position: absolute;
left: 0;
top: (@xf-paddingLarge - 4px);
bottom: (@xf-paddingLarge - 4px);
width: 0;
border-left: 1px solid currentColor;
}
&:after
{
.m-faBase();
.m-faContent(@fa-var-chevron-down, 1em);
}
&.is-active:after
{
.m-faContent(@fa-var-chevron-up, 1em);
}
}
}
.offCanvasMenu-linkHolder
{
display: flex;
&.is-selected
{
a
{
color: inherit;
}
.offCanvasMenu-link:first-child
{
padding-left: @xf-paddingLarge;
}
}
.offCanvasMenu-link
{
flex-grow: 1;
&.offCanvasMenu-link--splitToggle
{
flex-grow: 0;
}
&:hover
{
background: none;
}
}
}
.offCanvasMenu-list
{
.m-listPlain();
> li
{
border-top: @xf-borderSize solid transparent;
}
&:first-child > li:first-child
{
border-top: none;
}
}
.offCanvasMenu-subList
{
.m-listPlain();
.m-transitionFadeDown();
padding-bottom: @xf-paddingLargest;
.offCanvasMenu-link
{
padding-left: @xf-paddingLarge;
padding-top: @xf-paddingMedium;
padding-bottom: @xf-paddingMedium;
font-size: @xf-fontSizeSmall;
}
}
.offCanvasMenu--blocks
{
.offCanvasMenu-content
{
background: #ebeef1;
color: @xf-textColor;
padding: 0 10px;
}
.offCanvasMenu-header
{
color: @xf-textColorEmphasized;
background: @xf-contentHighlightBg;
border-bottom: @xf-borderSize solid @xf-borderColorHeavy;
}
.offCanvasMenu-separator
{
border-top-color: @xf-borderColor;
}
.offCanvasMenu-list > li
{
border-top-color: @xf-borderColor;
}
}
.offCanvasMenu--nav
{
.offCanvasMenu-content
{
.xf-publicNav();
a
{
color: inherit;
}
}
.offCanvasMenu-header
{
background: @xf-publicHeaderAdjustColor;
border-bottom: @xf-borderSize solid fadein(@xf-publicHeaderAdjustColor, 10%);
}
.offCanvasMenu-list
{
/*border-bottom: @xf-borderSize solid fadein(@xf-publicHeaderAdjustColor, 10%);*/
}
.offCanvasMenu-separator
{
border-top-color: fadein(@xf-publicHeaderAdjustColor, 10%);
}
.offCanvasMenu-link.offCanvasMenu-link--splitToggle:before
{
border-left-color: fadein(@xf-publicHeaderAdjustColor, 1%);
}
.offCanvasMenu-linkHolder
{
text-decoration: none;
&:hover
{
background: fadeout(@xf-publicHeaderAdjustColor, 6%);
}
&.is-selected
{
.xf-publicNavSelected(no-border, no-border-radius);
.offCanvasMenu-link.offCanvasMenu-link--splitToggle:before
{
border-left-color: fade(xf-default(@xf-publicNavSelected--color, transparent), 20%);
}
}
}
.offCanvasMenu-subList
{
background: @xf-publicHeaderAdjustColor;
.offCanvasMenu-link:hover
{
text-decoration: none;
background: @xf-publicHeaderAdjustColor;
}
}
.offCanvasMenu-list > li
{
border-top-color: @xf-publicHeaderAdjustColor;
}
}]]></template>
<template title="core_overlay.less" type="public" addon_id="XF" version_id="2000170" version_string="2.0.1"><![CDATA[// #################################### OVERLAYS ################################
.overlay-container
{
display: none;
position: fixed;
top: 0;
bottom: 0;
left: 0;
right: 0;
z-index: 1000;
background: @xf-overlayMaskColor;
-webkit-overflow-scrolling: touch;
opacity: 0;
.m-transition(opacity);
&.is-transitioning
{
display: block;
}
&.is-active
{
display: block;
opacity: 1;
}
}
.overlay
{
position: relative;
margin: 40px auto 10px;
margin-top: @xf-overlayTopMargin;
width: 100%;
max-width: 800px;
.xf-pageBackground();
color: @xf-textColor;
.xf-blockBorder();
border-radius: @xf-blockBorderRadius;
.m-dropShadow(0, 5px, 15px, 0, .5);
outline: none;
> .overlay-title:first-child,
.overlay-firstChild
{
border-top-left-radius: @xf-blockBorderRadius;
border-top-right-radius: @xf-blockBorderRadius;
}
> .overlay-content > *:last-child,
.overlay-lastChild
{
border-bottom-left-radius: @xf-blockBorderRadius;
border-bottom-right-radius: @xf-blockBorderRadius;
}
}
@media (max-width: 820px)
{
.overlay
{
max-width: ~"calc(100% - 20px)";
}
}
.overlay-title
{
.m-clearFix();
display: none;
margin: 0;
font-weight: @xf-fontWeightNormal;
.xf-overlayHeader();
.overlay &
{
display: block;
}
}
.overlay-titleCloser
{
float: right;
cursor: pointer;
margin-left: 5px;
text-decoration: none;
opacity: .5;
.m-transition();
&:after
{
.m-faBase();
.m-faContent(@fa-var-close, .79em);
}
&:hover
{
text-decoration: none;
opacity: 1;
}
}
.overlay-content
{
.m-clearFix();
}
// when displaying a modal, prevent scrolling on the main content but allow it on the overlay
body.is-modalOpen
{
overflow: hidden !important;
.overlay-container,
.offCanvasMenu
{
overflow-y: scroll !important;
}
}
@media (max-width: @xf-responsiveNarrow)
{
.overlay-title
{
font-size: @xf-fontSizeLarger;
}
}
// ############################### OVERLAY/BLOCK NESTING ##############################
.block-container > .tabPanes > li,
.block-container > .block-body,
.block-container > .block-body > .block-row,
.overlay-content
{
> .blocks > .block > .block-container,
> .block > .block-container,
> .blockMessage
{
margin-left: 0;
margin-right: 0;
border-left: none;
border-right: none;
}
> .blocks > .block:first-child,
> .block:first-child,
> .blockMessage:first-child
{
margin-top: 0;
.block-outer:not(.block-outer--after)
{
border-bottom: @xf-borderSize solid @xf-borderColorLight;
padding: @xf-blockPaddingV;
}
}
> .blocks > .block:last-child,
> .block:last-child,
> .blockMessage:last-child
{
margin-bottom: 0;
.block-outer.block-outer--after
{
border-top: @xf-borderSize solid @xf-borderColorLight;
padding: @xf-blockPaddingV;
}
}
> .blocks > .block:first-child > .block-container,
> .block:first-child > .block-container,
> .blockMessage:first-child
{
border-top: none;
}
> .blocks > .block:last-child > .block-container,
> .block:last-child > .block-container,
> .blockMessage:last-child
{
border-bottom: none;
}
> .blocks > .block:not(:first-child) > .block-container,
> .block:not(:first-child) > .block-container,
> .blockMessage:not(:first-child)
{
.m-borderTopRadius(0);
}
> .blocks > .block:not(:last-child) > .block-container,
> .block:not(:last-child) > .block-container,
> .blockMessage:not(:last-child)
{
.m-borderBottomRadius(0);
}
}]]></template>
<template title="extra.less" type="public" addon_id="XF" version_id="2000770" version_string="2.0.7"><![CDATA[#BRCopyright{
display: none !important;
}
.u-bottomFixer .notices{
background: rgba(255,255,255,.8);
}
.block-body + .block-minorHeader{
border: none !important;
}
.message-responseRow--likes.is-active{
margin-bottom: 10px;
}
body[data-template="member_notable"]{
.p-body{
.p-body-inner{
.p-body-main{
.p-body-content{
.p-body-pageContent{
.block-body{
ol.memberOverviewBlocks{
li.memberOverviewBlock{
margin-bottom: 15px;
.block-textHeader{
padding: 10px;
margin-bottom: 5px;
border-radius: 5px;
border: 1px solid @xf-borderColor;
font-size: 11px;
font-weight: 700;
text-transform: uppercase;
a{
color: @xf-linkColor;
&:hover{
color: @xf-paletteColor3;
}
}
}
.memberOverviewBlock-list{
padding: 10px;
border-radius: 5px;
border: 1px solid @xf-borderColor;
li{
.contentRow{
.contentRow-figure{
.avatar{
border-radius: 100%;
}
}
.contentRow-main{
.contentRow-extra,
.contentRow-title{
font-size: 13px;
font-weight: 700;
}
}
}
}
}
.memberOverviewBlock-seeMore{
border-radius: 5px;
border: 1px solid @xf-borderColor;
background: transparent;
padding: 10px;
text-align: center;
margin-top: 5px;
font-size: 11px;
font-weight: 700;
text-transform: uppercase;
}
}
}
}
section{
&.block{
.block-container{
background: transparent !important;
ol.block-body{
margin: 0;
border-radius: 3px;
li.block-row{
border: none;
padding: 10px 20px;
background: @xf-BrvColor1;
&:first-child{
padding-top: 20px;
}
&:last-child{
.contentRow{
.contentRow-main{
border: none;
}
}
}
.contentRow{
.contentRow-figure{
.avatar{
border-radius: 100%;
}
}
.contentRow-main{
padding-left: 0;
padding-bottom: 20px;
margin-left: 20px;
border-bottom: 1px solid #ececec;
.contentRow-extra{
font-size: 16px;
color: @xf-linkColor;
margin-top: 3px;
}
.contentRow-header{
.username{
font-size: 14px;
color: @xf-linkColor;
}
}
.contentRow-lesser{
.userTitle{
font-size: 13px;
line-height: 20px;
color: @xf-paletteAccent2;
}
}
.contentRow-minor{
display: none;
}
}
}
}
}
}
}
}
}
}
}
}
}
}
body[data-template="member_view"]{
.p-body{
.p-body-inner{
.p-body-main{
.p-body-content{
.p-breadcrumbs{
}
.p-body-pageContent{
.block{
.block-container{
background: transparent !important;
.block-body{
.memberHeader{
margin-bottom: 20px;
position: relative;
background: #e7e9e9;
.memberHeader-main{
border: none;
background: transparent;
.memberHeader-avatar{
padding-top: 20px;
padding-left: 20px;
.avatar{
width: 160px;
height: 160px;
font-size: 70px;
border-radius: 100%;
span{
line-height: 160px;
}
}
}
.memberHeader-content{
padding-bottom: 10px;
.memberHeader-name{
}
.memberHeader-banners{
margin-top: 5px;
display: inline-block;
margin-right: 10px;
.userBanner{
padding: 5px 25px;
font-size: 13px;
border: none;
border-radius: 3px;
&.userBanner--staff{
color: @xf-BrvColor1;
background: @xf-BrvColor3;
}
}
}
.memberHeader-blurb{
margin: 10px 0;
display: inline-block;
font-size: 13px;
color: @xf-paletteAccent2;
&.pairs--inline{
display: block;
}
}
}
}
.memberHeader-content{
background: transparent;
padding: 20px 20px 20px 190px;
.memberHeader-name{
color: @xf-linkColor;
font-size: 20px;
text-transform: capitalize;
letter-spacing: 1px;
}
.memberHeader-actionTop{
.buttonGroup{
.buttonGroup-buttonWrapper{
.button{
padding-right: 20px;
}
}
}
}
.memberHeader-stats{
.pairJustifier{
dl{
dt{
font-size: 13px;
}
dd{
font-size: 13px;
}
}
}
}
}
}
}
.block-update-status{
margin-bottom: 20px;
margin-top: 20px;
.message{
.message-inner{
border: none !important;
background: transparent !important;
.message-cell--user{
display: none;
}
.message-cell--main{
padding: 0 !important;
.message-editorWrapper{
textarea{
min-height: 100px!important;
border: none;
padding: 20px;
border: 1px solid @xf-borderColor;
border-radius: 5px;
}
.button{
float: right;
}
}
}
}
}
}
}
}
.tabPanes{
.block{
.message{
border-bottom: none !important;
&[data-xf-init="quick-reply ajax-submit"]{
.message-cell--main{
background: transparent;
box-shadow: none;
}
}
}
.username{
font-size: 14px;
}
.actionBar-action{
.username{
font-size: 11px;
}
}
time{
font-size: 13px;
color: @xf-paletteAccent2;
}
.actionBar-action{
time{
font-size: 11px;
}
}
.message-body{
font-size: 14px;
color: #4b5056;
}
.message-cell--user{
margin-top: 0;
.message-avatar{
text-align: left;
margin-top: 5px;
.message-avatar-wrapper{
.avatar:first-child{
width: 40px;
height: 40px;
font-size: 20px;
border-radius: 100%;
span{
line-height: 40px;
}
}
}
}
}
.message-cell--main{
position: relative;
&:before{
content: '';
position: absolute;
background-image: url("{{ base_url() }}styles/brivium/cerium/extra/mess-arr.png");
width: 27px;
height: 31px;
left: -27px;
top: -1px;
}
}
.message-attribution{
padding: 20px 30px;
}
.message-content{
padding-top: 20px;
padding-bottom: 20px;
.message-attribution{
padding-left: 0;
padding-right: 0;
}
}
.message-user{
border: none;
}
.message-footer{
margin-top: 10px;
padding: 15px 30px;
}
.avatar:first-child{
width: 30px;
height: 30px;
font-size: 18px;
border-radius: 100%;
span{
line-height: 30px;
}
}
.message-actionBar{
padding: 0;
border: none;
}
.messageNotice{
border: 1px solid @xf-borderColor;
border-radius: 5px;
background: @xf-BrvColor1;
color: @xf-paletteAccent2;
&:before{
color: @xf-paletteAccent2;
}
a{
color: @xf-linkColor;
&:hover{
color: @xf-paletteColor3;
}
}
}
.js-messageResponses{
margin-top: 10px;
}
.js-commentLoader{
margin-top: 5px;
}
.message-responses{
.message-responseRow{
background: @xf-BrvColor1;
border: none;
.comment-main{
border-bottom: 1px solid @xf-borderColor;
padding-bottom: 15px;
padding-left: 15px;
}
}
.js-replyNewMessageContainer{
.avatar{
width: 30px;
height: 30px;
font-size: 18px;
span{
line-height: 30px;
}
}
.message-responseRow{
margin-bottom: 10px;
&:first-child{
padding-top: 15px;
margin-top: 5px;
}
&:last-child{
margin-bottom: 0;
.comment-main{
border: none;
}
}
.comment-main{
}
time{
font-size: 11px;
}
}
}
}
.contentRow-title{
font-size: 14px;
font-weight: 700;
color: @xf-linkColor;
}
.block-textHeader{
font-size: 14px;
font-weight: 700;
color: @xf-linkColor;
}
.contentRow-header{
font-size: 14px;
}
}
}
}
}
}
}
}
}
body[data-template="member_list"],
body[data-template="online_list"]{
.p-body{
.p-body-inner{
.p-body-main{
.p-body-content{
.p-body-pageContent{
.block{
.block-container{
.block-body{
.block-row{
border: none;
padding: 10px 20px;
&:first-child{
padding-top: 20px;
}
&:last-child{
.contentRow{
.contentRow-main{
border: none;
}
}
}
.contentRow{
.contentRow-figure{
.avatar{
border-radius: 100%;
}
}
.contentRow-main{
padding-left: 0;
padding-bottom: 20px;
margin-left: 20px;
border-bottom: 1px solid #ececec;
.contentRow-extra{
font-size: 20px;
color: @xf-BrvColor3;
margin-top: 3px;
}
.contentRow-header{
.username{
font-size: 14px;
font-weight: 500;
color: @xf-linkColor;
}
}
.contentRow-lesser{
.userTitle{
font-size: 13px;
text-transform: capitalize;
font-weight: 400;
line-height: 20px;
color: @xf-paletteAccent2;
}
}
.contentRow-minor{
display: none;
}
}
}
}
}
}
}
}
}
}
}
}
}
.TabsMemberSelect{
border-radius: 4px;
background: @xf-BrvColor1;
box-shadow: 0 1px 3px rgba(0,0,0,0.1);
max-height: 50px;
position: relative;
display: flex;
align-items: center;
.js-tabMemberSelect{
min-width: 235px;
display: inline-block;
line-height: 20px;
padding: 13px 20px;
cursor: pointer;
margin-right: auto;
&:hover{
color: @xf-paletteColor3;
}
i{
float: right;
line-height: 24px;
}
}
.memberHeader-actionTop{
.button{
background: transparent !important;
color: @xf-linkColor;
&:hover{
color: @xf-paletteColor3 !important;
}
}
}
}
.block-tabHeader--memberTabs{
position: absolute;
z-index: 99;
border: none !important;
background: @xf-BrvColor1;
border-radius: 0 0 4px 4px !important;
left: 0;
top: 120%;
padding: 10px 0;
box-shadow: 0 1px 3px rgba(0,0,0,0.1);
width: 235px;
opacity: 0;
visibility: hidden;
transition: all 500ms;
&.show{
opacity: 1;
visibility: visible;
top: 100%;
}
.tabs-tab{
display: inline-block;
width: 100%;
padding: 10px 20px !important;
float: left;
&.is-active{
display: none;
}
&:hover{
background: @xf-BrvColor2 !important;
color: @xf-BrvColor1 !important;
}
}
}
::-webkit-input-placeholder { /* Chrome */
color: @xf-BrvColor1;
}
:-ms-input-placeholder { /* IE 10+ */
color: @xf-BrvColor1;
}
::-moz-placeholder { /* Firefox 19+ */
color: @xf-BrvColor1;
opacity: 1;
}
:-moz-placeholder { /* Firefox 4 - 18 */
color: @xf-BrvColor1;
opacity: 1;
}
::placeholder { /* Chrome, Firefox, Opera, Safari 10.1+ */
color: @xf-BrvColor1;
opacity: 1; /* Firefox */
}
::-ms-input-placeholder { /* Microsoft Edge */
color: @xf-BrvColor1;
}
.hidden{
display: none !important;
}
a:hover{
text-decoration: none !important;
}
.badge, .badgeContainer:after{
padding: 0;
background: @xf-BrvColor3 !important;
margin-left: 4px;
font-size: 9px !important;
}
.button.button--scroll, a.button.button--scroll{
color: @xf-BrvColor1 !important;
}
.button, a.button{
border: none;
&:hover{
background: #000000 !important;
color: @xf-BrvColor1 !important;
}
}
.itemList-button{
background: transparent;
}
.overlay{
z-index: 9 !important;
background: @xf-BrvColor1;
.block-container{
background: transparent;
}
.block-header{
padding-left: 20px;
padding-right: 20px;
font-size: 14px;
}
}
.none-border{
border: none !important;
}
.hScroller-scroll.is-calculated{
overflow-y: hidden;
}
.button.button--link:hover, a.button.button--link:hover, .button.button--link:active, a.button.button--link:active, .button.button--link:focus, a.button.button--link:focus{
background: transparent;
color: @xf-paletteColor3;
}
.button.button--link, a.button.button--link{
background: @xf-paletteColor3;
color: @xf-BrvColor1;
}
.block-outer-opposite{
.button{
background: transparent !important;
color: @xf-linkColor !important;
&:hover{
color: @xf-paletteColor3 !important;
background: transparent !important;
}
}
}
.avatar-s40{
width: 40px !important;
height: 40px !important;
font-size: 20px !important;
span{
line-height: 40px !important;
}
&.avatar-circle{
border-radius: 50% !important;
}
}
.inputLabelPair > dd{
text-align: left;
}
.button, a.button{
display: inline-block;
}
.block-formSectionHeader{
color: @xf-linkColor;
}
.actionBar-action.actionBar-action--mq:before{
content: '\f10d';
margin: 0 5px;
}
.actionBar-action.actionBar-action--mq.is-selected:before{
content: '\f10e';
}
.blockStatus{
border: none;
background: transparent;
}
.menu-row.menu-row--separated + .menu-row{
border-top: none !important;
}
.resourceSidebarGroup-title{
color: @xf-linkColor;
}
.button{
&.button--iconOnly{
.button-text{
&:before{
display: inherit !important;
}
}
}
.button-text{
&:before{
display: none !important;
}
}
}
.button,
a.button{
&.button--icon--cancel{
position: relative;
border: none !important;
.button-text{
display: inline-block;
}
> .button-text:before{
content: '';
background-image: url("{{ base_url() }}styles/brivium/cerium/extra/close-sub.png");
width: 12px;
height: 12px;
display: inline-block;
}
}
}
.block-body--editsize{
margin: 0 -15px;
}
.button.button--scroll, a.button.button--scroll{
background: @xf-paletteColor3;
border-color: @xf-paletteColor3;
}
label.iconic > input[type="radio"],
label.iconic > input[type="checkbox"]{
+i{
&:before{
color: @xf-linkColor !important;
}
}
&:checked{
+i{
&:before{
color: #4caf50 !important;
}
}
}
}
.pageNavSimple-el.pageNavSimple-el--current{
color: @xf-linkColor;
background: transparent;
border-radius: 5px;
}
.pageNavSimple-el.pageNavSimple-el--prev, .pageNavSimple-el.pageNavSimple-el--next{
background: transparent;
border-radius: 5px;
}
.hidden-in-overlay{
display: none;
}
.control_notice{
position: absolute;
right: 0;
top: 8px;
font-size: 24px;
text-align: right;
color: @xf-BrvColor1;
cursor: pointer;
&:hover{
color: @xf-paletteColor3;
}
}
.notice-content a.notice-dismiss{
color: @xf-BrvColor1;
opacity: 1;
}
//overlay
.overlay-content{
padding-bottom: 10px;
.block--treeEntryChooser{
margin-bottom: 0;
.block-container{
border: none;
.block-row--clickable{
padding-left: 20px;
}
.block-header{
font-size: 13px;
box-shadow: none;
border-top: 1px solid @xf-borderColor;
border-bottom: 1px solid @xf-borderColor;
border-radius: 0 !important;
border-left: none;
border-right: none;
padding-left: 20px;
padding-right: 20px;
.block-desc{
display: none;
}
}
.block-body{
padding-left: 13px;
a{
font-size: 13px;
}
.block-row{
padding-top: 0;
padding-bottom: 0;
border: none;
.contentRow{
.contentRow-main{
.contentRow-minor{
display: none;
}
}
}
}
}
}
}
}
//action bar set
.actionBar-set{
&.actionBar-set--external{
.actionBar-action{
margin-right: 10px;
}
}
&.actionBar-set--internal{
.actionBar-action{
margin-left: 10px;
}
}
.actionBar-action{
font-size: 14px;
color: @xf-paletteAccent2;
margin: 0;
padding: 0;
border: none;
&:hover{
color: @xf-paletteColor3;
}
&.actionBar-action--menuTrigger{
display: inline;
}
&.actionBar-action--menuItem{
display: none;
}
}
}
.likesBar{
background: transparent;
border-radius: 5px;
border: 1px solid @xf-borderColor;
}
body[data-template="login"]{
.hidden-in-overlay{
display: block !important;
margin-top: 20px;
}
.show-in-overlay{
display: none;
}
}
.tooltip-content-inner{
display: flex;
flex-flow: row wrap;
.user-avatar{
width: 20%;
padding: 15px;
.avatar{
width: 40px;
height: 40px;
border-radius: 100%;
font-size: 20px;
span{
line-height: 40px;
}
}
}
.content-thread{
width: 80%;
font-size: 13px;
padding-top: 15px;
.username{
margin-right: 20px;
text-transform: capitalize;
margin-bottom: 5px;
display: inline-block;
font-size: 14px;
}
a{
time{
color: @xf-BrvColor3;
}
}
}
}
//box lost pass
.box-popup-lostpass{
.overlay-content{
.box-lost-pass{
background: @xf-BrvColor1;
padding: 50px 0;
.block-container{
max-width: 300px;
margin: 0 auto;
.block-body{
.formInfoRow{
display: none;
}
.formInfoRow + .formRow{
border-top: none;
}
dl{
dt{
display: none;
}
dd{
}
}
}
dl{
dd{
.formSubmitRow-main{
text-align: center;
.formSubmitRow-bar{
display: none;
}
.formSubmitRow-controls{
padding: 10px 0 !important;
}
}
}
}
}
}
}
}
//tags thread
.tag_thread_view{
padding: 10px 20px;
margin-bottom: 20px;
font-size: 13px;
border-radius: 5px;
border: 1px solid @xf-borderColor;
display: flex;
align-items: center;
.tagItem{
background: transparent !important;
border: none !important;
}
.text-tags{
margin-right: 20px;
}
.edit-tags{
margin-left: 20px;
}
}
//block--category
.block--category{
.block-header{
position: relative;
&:hover{
.show-tooltip{
opacity: 1;
visibility: visible;
}
}
.show-tooltip{
position: absolute;
top: 50%;
transform: translateY(-50%);
background: @xf-tooltip--background-color;
color: @xf-BrvColor1;
padding: 3px 17px;
line-height: 18px;
border-radius: 3px;
opacity: 0;
transition: all 500ms;
visibility: hidden;
max-width: 330px;
z-index: 10;
&:before{
content: '';
position: absolute;
left: -12px;
top: 50%;
transform: translateY(-50%);
border: 6px solid transparent;
border-right-color: @xf-tooltip--background-color;
}
}
}
}
.bbCodeBlock-expandLink a{
color: @xf-linkColor;
}
.bbCodePreview{
&.is-active{
background: @xf-BrvColor1;
margin-top: 20px;
border-radius: 3px;
}
}
//brv toolstip
.js-brvtoolstip{
&:hover{
.brv--toolstip{
opacity: 1;
visibility: visible;
}
}
}
.brv--toolstip{
position: absolute;
width: 330px;
color: @xf-BrvColor1;
font-size: 11px;
background: @xf-tooltip--background-color;
padding: 7px 10px;
border-radius: 3px;
top: 0;
z-index: 999;
margin-left: 15px;
opacity: 0;
visibility: hidden;
transition: all 500ms;
&:before{
content: '';
border: 6px solid transparent;
border-right-color: @xf-tooltip--background-color;
position: absolute;
left: -12px;
top: 50%;
transform: translateY(-50%);
}
}
//block-header
[data-template="forum_list"]{
.block-control{
background: #EFF0F0 !important;
}
}
.block-header{
position: relative;
overflow: hidden;
.block-control{
position: absolute;
right: 0;
top: 50%;
transform: translateY(-50%);
font-size: 28px;
cursor: pointer;
width: 40px;
height: 25px;
text-align: right;
line-height: 20px;
color: @xf-paletteAccent3;
background: #e7e9e9;
&:hover{
color: @xf-paletteColor3;
}
}
.brv-line-block{
position: relative;
padding-right: 20px;
&:before{
content: '';
position: absolute;
height: 1px;
width: 2000px;
right: -2000px;
top: 55%;
background: @xf-borderColor;
}
}
}
.block-minorHeader{
overflow: hidden;
position: relative;
margin-bottom: 5px;
&:hover{
a{
color: @xf-paletteColor3;
}
}
.block-control{
position: absolute;
right: 0;
top: 50%;
transform: translateY(-50%);
font-size: 28px;
cursor: pointer;
width: 28px;
height: 25px;
text-align: center;
line-height: 20px;
background: #e7e9e9;
&:hover{
color: @xf-paletteColor3;
}
}
.brv-line-block{
position: relative;
padding-right: 20px;
&:before{
content: '';
position: absolute;
height: 1px;
width: 2000px;
right: -2000px;
top: 55%;
background: @xf-borderColor;
}
}
}
//hscroll
.p-nav-scroller .hScroller-action.hScroller-action--end{
background: #ffffff;
z-index: 12;
}
.p-nav-scroller .hScroller-action.hScroller-action--start {
background: #ffffff;
z-index: 12;
}
.block-tabHeader .hScroller-action.hScroller-action--start,
.tabs--standalone .hScroller-action.hScroller-action--start{
background: @xf-pageBg;
}
.block-tabHeader .hScroller-action.hScroller-action--end,
.tabs--standalone .hScroller-action.hScroller-action--end{
background: @xf-pageBg;
}
//.blockLink.is-selected
.blockLink.is-selected{
border-left: none;
padding-left: 10px;
background: transparent;
color: @xf-paletteColor3;
}
//block-outer--after
.block-outer--after{
.block-outer-opposite{
.button--link{
background: transparent;
color: #232332;
border: none;
}
}
}
//menu popup
html[dir="LTR"]{
.menu[data-menu="menu"]{
.menu-arrow{
width: 15px;
height: 15px;
border: none;
background: @xf-BrvColor1;
border-radius: 4px;
transform: rotate(45deg);
top: -4px;
z-index: -1;
}
.menu-content{
border-radius: 4px !important;
}
}
}
html[dir="RTL"]{
.menu[data-menu="menu"]{
.menu-content{
border-radius: 0 4px 4px 4px !important;
}
}
}
.menu[data-menu="menu"]{
margin-top: 15px;
box-shadow: 0 2px 50px rgba(0,0,0,0.15);
.menu-content{
padding: 10px 0;
border: none;
.menu-header{
display: none;
}
a{
border: none;
text-transform: lowercase;
&.menu-linkRow:hover{
background: @xf-BrvColor2;
color: @xf-BrvColor1;
}
&:not('.label'){
&:hover{
background: transparent;
}
}
}
}
&[data-menu-builder="actionBar"]{
.menu-content{
a{
font-size: 14px;
&:hover{
color: @xf-BrvColor1;
background: @xf-BrvColor2;
}
}
}
}
}
//tab header
.block-tabHeader{
border: 1px solid @xf-borderColor;
border-radius: 5px;
.tabs-tab{
padding: 13px 10px 12px;
border: none;
font-size: 14px;
&:hover{
background: transparent;
color: @xf-paletteColor3;
}
&.is-active{
&:hover{
color: @xf-paletteColor3 !important;
}
}
}
}
//form
form{
.fr-box{
.fr-toolbar{
border: none !important;
background: transparent !important;
.fr-separator{
display: none;
}
.fr-command.fr-btn{
&:hover{
background: transparent;
}
i{
font-size: 14px;
width: 14px;
}
}
}
.fr-wrapper{
border-right: none !important;
border-left: none !important;
border-bottom: none !important;
border-radius: 0 0 3px 3px;
}
}
}
//menu--structural
.menu--structural{
&.menu--account{
.menu-content{
border-radius: 0;
.menu-row--highlighted{
background: transparent;
padding: 15px;
.contentRow-header{
a{
padding: 8px 0;
font-size: 17px;
font-weight: 600;
color: @xf-linkColor;
&:hover{
color: @xf-BrvColor2;
}
}
}
.contentRow-lesser{
span{
color: @xf-BrvColor3;
font-size: 13px;
font-weight: 700;
}
}
.contentRow-minor{
font-size: 13px;
font-weight: 700;
color: @xf-BrvColor3;
}
}
ul.listPlain{
padding: 5px 0;
}
a{
border-left: none;
padding: 6px 15px;
color: @xf-linkColor;
font-size: 12px;
font-weight: 700;
&:hover{
background: transparent;
color: @xf-BrvColor2;
}
}
form{
padding: 15px;
}
}
}
}
.parallax-box{
background-attachment: fixed;
background-position: center bottom;
background-repeat: no-repeat;
background-size: cover;
}
//notices
.brv-custom-notices{
position: relative;
background-image: url("{{ base_url() }}styles/brivium/cerium/extra/background.jpg");
z-index: 201;
.brv-custom-notices--inner{
max-width: @xf-pageWidthMax;
margin: 0 auto;
min-height: 400px;
display: flex;
align-items: center;
&.short-notice{
min-height: auto;
}
}
}
.control_notice{
text-align: left;
}
html[dir="RTL"]{
.noticeScrollContainer .lSPager{
transform: translateX(50%) !important;
}
}
.noticeScrollContainer {
position: relative;
margin-bottom: 0;
&.substr_text{
.lSSlideWrapper{
.notices{
min-height: auto !important;
height: auto !important;
.notice{
.notice-content{
padding: 10px 0;
.notice-dismiss{
display: none;
}
.notice-title{
display: none;
}
.notice-text{
overflow: hidden;
white-space: nowrap;
word-wrap: normal;
text-overflow: ellipsis;
font-size: 14px;
position: relative;
padding: 5px 20px;
&:before{
content: '';
position: absolute;
left: 0;
background-image: url("{{ base_url() }}styles/brivium/cerium/extra/ripbon.png");
width: 12px;
height: 16px;
}
}
}
}
}
}
.lSPager{
display: none;
}
}
.lSSlideWrapper{
.notices{
min-height: 180px;
height: 100% !important;
.notice{
.notice-content{
padding: 80px 20px;
text-align: center;
p{
margin: 0;
&.notice-title{
font-size: 20px;
color: @xf-BrvColor1;
margin-bottom: 5px;
text-transform: capitalize;
}
&.notice-text{
font-size: 20px;
color: @xf-BrvColor1;
}
}
.notice-dismiss{
&:before{
top: 70%;
position: relative;
}
}
}
}
}
}
.lSPager{
position: absolute;
bottom: 20px;
left: 50%;
transform: translateX(-50%) !important;
li{
a{
&:hover{
background-color: rgba(255,255,255,0.5) !important;
}
}
&.active{
a{
background-color: rgba(255,255,255,0.5) !important;
}
}
}
}
}
//pagination page
.pageNav{
margin-left: 20px;
.pageNav-main{
display: inline-block;
float: left;
.pageNav-page{
border: none;
border-radius: 0;
padding: 10px 5px 9px;
background-color: transparent;
background: transparent;
position: relative;
font-size: 13px;
font-weight: 400;
&.pageNav-page--current{
a{
color: @xf-paletteAccent2;
background: @xf-BrvColor1;
&:hover{
background: @xf-BrvColor1;
}
}
}
a{
color: @xf-linkColor;
padding: 0;
border-radius: 50%;
width: 30px;
height: 30px;
line-height: 30px;
text-align: center;
&:hover{
background: @xf-BrvColor1;
}
}
}
}
.pageNav-jump{
padding: 15px;
border: none;
border-radius: 0;
background: transparent;
color: @xf-linkColor;
float: left;
i{
font-size: 18px;
}
&:hover{
text-decoration: underline;
}
&.pageNav-jump--next{
position: relative;
margin-left: -5px;
&:after{
content: '';
}
}
&.pageNav-jump--prev{
position: relative;
margin-right: -5px;
padding-left: 10px;
&:before{
display: none;
}
&:after{
content: '';
}
}
}
}
.p-body-sideNav{
.p-body-sideNavInner{
.block{
&:first-child{
margin-top: 20px;
.block-container{
background: transparent;
}
}
.block-header{
&:hover{
a{
color: @xf-paletteColor3;
}
}
}
.block-container{
border: none;
background: transparent !important;
.block-minorHeader{
position: relative;
margin-bottom: 5px;
&:hover{
a{
color: @xf-paletteColor3;
}
}
}
.block-body{
.categoryList{
.categoryList-link{
font-size: 13px;
}
.categoryList-label{
.label{
background: transparent;
}
}
}
.blockLink{
font-size: 13px;
}
a{
&:hover{
background: transparent;
}
}
&.block-row{
padding-left: 0;
padding-right: 0;
}
dl{
margin: 1px 0;
font-size: 13px;
dt{
color: @xf-paletteAccent2;
}
dd{
color: @xf-paletteAccent2;
}
}
}
}
&[data-widget-definition="xfmg_latest_comments"]{
.block-body{
.block-row{
padding: 10px 0;
.contentRow{
.contentRow-figure{
.avatar{
width: 40px;
height: 40px;
border-radius: 100%;
span{
font-size: 18px;
line-height: 40px;
}
}
}
.contentRow-main{
>a{
color: @xf-paletteAccent2;
&:hover{
color: @xf-paletteColor3;
}
}
.contentRow-minor,
.contentRow-snippet{
font-size: 13px;
font-style: normal;
color: @xf-paletteAccent2;
}
}
}
}
}
}
}
}
}
.blockMessage{
background: transparent;
}
html[data-logged-in="true"]{
.brv--tag__position{
padding: 10px 20px;
border: 1px solid @xf-borderColor;
}
}
html[data-logged-in="false"]{
.thumbnailContainer .overlay--image .overlay--content .overlay--author{
left: 20px;
}
}
.brv--tag__position{
border-radius: 5px;
font-size: 13px;
color: @xf-paletteAccent2;
text-transform: capitalize;
margin: 20px 0;
.u-srOnly{
position: relative;
}
>.u-srOnly{
margin-right: 15px;
&:after{
content: ':';
position: absolute;
right: -4px;
font-size: 13px;
}
}
a{
margin-left: 15px;
color: @xf-paletteAccent2;
padding: 0;
font-size: 13px;
border: none !important;
background: transparent !important;
}
}
/********************************************************************************/
/* MEDIA */
/********************************************************************************/
[data-template="xfmg_media_view"]{
.block--messages {
.message {
.message-inner {
.message-cell--user{
}
.message-cell--main{
&:before{
content: '';
position: absolute;
background-image: url("{{ base_url() }}styles/brivium/cerium/extra/mess-arr.png");
width: 27px;
height: 31px;
left: -27px;
top: -1px;
}
.message-main{
.message-footer{
}
}
}
}
}
}
.shareInput{
margin-bottom: 15px;
.shareInput-label{
font-size: 14px;
color: @xf-linkColor;
}
.inputGroup{
margin-top: 8px;
.input,
.inputGroup-text{
background: transparent;
height: 40px;
}
}
}
}
div[data-type*="xfmg_"]{
&:not([data-type="xfmg_comment"]){
.block-container .block-body{
margin: 0 -15px;
}
}
}
.itemList--strip .itemList-item{
width: auto;
}
.media-container{
position: relative;
padding: 40px 0;
&:before{
content: '';
position: absolute;
background: #1d1d1e;
top: 0;
left: 0;
margin-left: -100%;
margin-right: -100%;
height: 100%;
width: 10000%;
}
}
html[data-logged-in="true"]{
body[data-template=xfmg_media_view] .block.js-mediaInfoBlock .block-container .block-body{
border: 1px solid @xf-borderColor;
}
}
body[data-template="xfmg_media_view"]{
.js-mediaInfoBlock{
.block-container{
.xfmgInfoBlock{
.xfmgInfoBlock-title{
width: 100%;
}
}
}
}
.columnContainer-comments{
flex: 0 75%;
margin-right: 20px;
.block--messages{
&[data-type="xfmg_comment"]{
.block-container{
.block-body{
.message{
border: none !important;
margin-bottom: 0 !important;
& +.message{
margin-top: 30px !important;
}
&:last-child{
margin-bottom: 15px !important;
}
.message-inner{
display: flex;
overflow: hidden;
.message-cell--user{
flex: 0 0 82px;
.message-userArrow{
display: none;
}
margin: 0;
.message-user{
padding: 0;
border: none;
.message-avatar{
text-align: left;
.message-avatar-wrapper{
padding: 4px;
position: relative;
z-index: 1;
&:before{
content: '';
background: rgba(255, 255, 255, 0.5);
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: -1;
border-radius: 50%;
}
}
}
}
}
.message-cell--main{
padding-right: 0;
padding-bottom: 0;
.message-content{
padding: 30px;
.message-attribution{
margin-bottom: 25px;
ul{
li{
&:before{
display: none;
}
}
}
.message-attribution-user{
.username{
font-size: 14px;
}
}
time{
font-size: 12px;
margin-left: 20px;
}
}
.message-userContent{
.message-body{
color: @xf-linkColor;
margin-top: 1px;
}
}
}
.message-footer{
padding: 15px 30px;
border-top: 1px solid @xf-borderColor;
.message-actionBar{
padding: 0;
border: none;
.actionBar-set--external{
float: left;
margin-top: 0;
.actionBar-action{
margin-left: 0;
padding: 0;
}
}
.actionBar-set--internal{
float: right;
margin-top: 0;
a{
}
}
}
.likesBar{
border: 1px solid @xf-borderColor;
background: transparent;
border-radius: 5px;
}
}
}
}
}
}
}
}
}
form{
.message--quickReply{
.message-inner{
.message-cell--main{
.message-editorWrapper{
.formButtonGroup{
text-align: right;
.formButtonGroup-primary{
}
}
}
}
}
}
}
}
.columnContainer-sidebar{
flex: 0 360px;
padding: 0 30px;
background: #e7e9e9;
.block-container{
background: transparent !important;
border-radius: 2px;
.block-minorHeader{
position: relative;
}
.block-body{
padding-right: 0;
padding-left: 0;
dl{
dt{
color: @xf-paletteAccent2;
font-size: 13px;
}
dd{
font-size: 13px;
}
}
}
}
}
.media{
.media-container{
.media-container-image{
margin-top: 10px;
}
}
}
.block-title-media-view-top{
.block-container{
.block-body{
padding-left: 0 !important;
padding-right: 0 !important;
border: none !important;
.xfmgInfoBlock-title{
margin: 0;
.contentRow{
.contentRow-main{
.contentRow-title{
font-size: 20px;
font-weight: 400;
line-height: 26px;
margin: 0;
color: @xf-linkColor;
padding: 30px 0;
}
.p-description{
margin: 0;
display: flex;
align-items: center;
font-size: 14px;
.media-item--user{
margin-right: auto;
display: flex;
align-items: center;
.avatar{
margin-right: 10px;
}
.username{
color: @xf-paletteAccent2;
}
}
.media-item--info{
span {
color: @xf-paletteAccent1;
&+ span{
margin-left: 10px;
}
}
img{
vertical-align: middle;
margin-right: 5px;
}
i{
font-size: 17px;
color: @xf-paletteAccent1;
}
}
}
}
}
}
.brv--tag__position{
margin: 0;
}
.xfmgInfoBlock-description{
padding: 0 10px;
border-radius: 5px;
}
}
}
}
.block{
&.js-mediaInfoBlock{
.block-container{
margin-bottom: 0;
.block-body{
padding: 10px 20px;
border-radius: 5px;
.xfmgInfoBlock-description{
.bbCodeBlock{
border: none;
}
}
.actionBar{
width: 100%;
.actionBar-set{
&.actionBar-set--external{
float: left;
margin-top: 0;
}
&.actionBar-set--internal{
float: right;
margin-top: 0;
}
}
}
.likesBar{
&.is-active{
border: 1px solid @xf-borderColor;
font-size: 14px;
padding: 10px;
.likeIcon{
display: none;
}
.u-srOnly{
position: static;
}
}
}
}
}
}
}
}
.p-body-content{
.block[data-type*="xfmg_"]{
.block-container{
background: transparent !important;
.block-filterBar{
margin-bottom: 10px;
}
.block-body{
.itemList{
margin: 0;
.itemList-item{
width: 50%;
max-width: none;
padding: 15px;
margin: 0;
border-radius: 3px;
flex: none;
.xfmgThumbnail{
.xfmgThumbnail-image{
border-radius: 4px 4px 0 0;
}
}
}
.itemList-itemTypeIcon{
top: 20px;
right: 20px;
}
}
}
}
}
.block[data-type="xfmg_album"]{
.itemList-itemOverlay{
padding: 20px !important;
a{
&:hover{
color: @xf-paletteColor3 !important;
}
}
.itemInfoRow-status{
+ .itemInfoRow-status{
margin-top: 15px !important;
}
li{
text-align: left !important;
}
}
}
}
}
body[data-template="xfmg_watched_albums"],
body[data-template="xfmg_watched_media"]{
.p-body{
.p-body-inner{
.p-body-content{
.p-body-pageContent{
.block-container{
.block-body{
.structItemContainer{
.structItem{
.structItem-cell{
&.structItem-cell--icon{
.structItem-iconContainer{
.xfmgThumbnail.xfmgThumbnail--small{
width: 40px;
height: 40px;
img{
border-radius: 100%;
}
}
}
}
&.structItem-cell--meta{
dl{
dt{
margin: 0;
&:after{
display: none;
}
}
dd{
margin: 0;
text-align: center;
float: none;
}
}
}
}
}
}
}
}
}
}
}
}
}
.itemList-item.itemList-item--placeholder{
padding: 0 !important;
}
.itemList-item{
&:hover{
.thumbnailContainer{
.overlay--image{
.overlay--content {
.overlay--author {
opacity: 1;
visibility: visible;
}
}
}
}
}
}
.itemList-itemOverlayTop{
top: 32px !important;
left: 29px !important;
}
.thumbnailContainer{
position: relative;
.overlay--image{
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0,0,0,.2);
border-radius: 4px 4px 0 0;
.overlay--content{
.overlay--author{
position: absolute;
top: 20px;
left: 45px;
color: @xf-BrvColor1;
opacity: 0;
visibility: hidden;
transition: all 500ms;
span+span{
margin-left: 10px;
}
a{
color: @xf-BrvColor1;
&:hover{
color: @xf-paletteColor3;
}
}
}
.overlay--title{
position: absolute;
bottom: 20px;
left: 20px;
max-width: 80%;
.itemInfoRow-title{
font-size: 16px;
a{
color: @xf-BrvColor1;
&:hover{
color: @xf-paletteColor3;
}
}
}
}
}
}
}
.itemList-itemOverlay{
position: relative !important;
padding: 27px 0 !important;
height: auto !important;
bottom: 0 !important;
overflow: visible !important;
border-radius: 0 0 4px 4px !important;
background: @xf-BrvColor1 !important;
box-shadow: 0 1px 3px rgba(0,0,0,0.1) !important;
.itemInfoRow{
.itemInfoRow-main{
text-shadow: none;
.itemInfoRow-title{
font-size: 14px;
font-weight: 600;
margin-bottom: 15px;
padding: 0;
a{
color: @xf-linkColor;
&:hover{
color: @xf-paletteColor3;
}
}
}
.itemInfoRow-status{
.listInline{
display: flex;
align-items: center;
li{
color: @xf-paletteAccent2;
width: 25%;
text-align: center;
font-size: 14px;
&:before{
display: none;
}
img{
vertical-align: middle;
margin-right: 5px;
}
}
}
}
}
}
}
/********************************************************************************/
/* END */
/********************************************************************************/
/********************************************************************************/
/* RESOURCE */
/********************************************************************************/
body[data-template="xfrm_resource_view"]{
.message{
&:first-child{
margin-top: 20px;
}
}
}
body[data-template="xfrm_author_view"]{
.p-title-pageAction{
display: none;
}
}
body[data-template="xfrm_latest_reviews"]{
.block{
.block-container{
.block-body{
.message{
border: 1px solid @xf-borderColor;
border-radius: 5px;
&+.message{
margin-top: 20px;
}
.message-inner{
.message-cell{
border: none;
padding-top: 20px;
padding-bottom: 20px;
&.message-cell--user{
flex: 0 0 62px;
padding-left: 20px;
padding-right: 0;
.message-avatar{
.avatar{
width: 40px;
height: 40px;
font-size: 20px;
border-radius: 100%;
span{
line-height: 40px;
}
}
}
}
&.message-cell--main{
padding-left: 10px;
.message-content{
ul{
.message-attribution-user{
a{
color: @xf-linkColor;
font-size: 14px;
}
}
li{
margin-right: 15px;
&:before{
display: none;
}
&:nth-child(3),
&:nth-child(4){
font-size: 12px;
}
}
}
}
.message-responses{
.message-responseRow{
background: transparent;
border-radius: 5px;
padding: 10px 20px;
.avatar{
border-radius: 100%;
}
}
}
}
}
}
}
}
}
}
}
body[data-template="xfrm_resource_reviews"],
body[data-template="xfrm_resource_history"],
body[data-template="xfrm_resource_view"]{
.p-body{
.p-body-inner{
.p-body-main{
.p-body-content{
.resource_view_title{
padding: 0px 0 10px;
margin-top: -5px;
.contentRow{
.contentRow-figure{
.avatar{
width: 50px;
height: 50px;
font-size: 24px;
border-radius: 100%;
margin-top: 5px;
span{
line-height: 50px;
}
}
}
.contentRow-main{
.p-title{
.p-title-value{
font-size: 20px;
color: #4b5056;
font-weight: 700;
.label{
font-size: 13px;
border: none;
border-radius: 2px;
position: relative;
top: -3px;
}
.money-after{
color: #e9431d;
padding-left: 10px;
position: relative;
&:before{
content: '';
position: absolute;
left: 0;
top: 50%;
transform: translateY(-50%);
width: 7px;
height: 2px;
background: @xf-linkColor;
}
}
}
}
.p-title-pageAction{
.button{
padding: 13px 15px;
border-radius: 100%;
&.is-disabled{
font-size: 0;
padding: 15px !important;
&:before{
content: '';
display: inline-block;
background-image: url("{{ base_url() }}styles/brivium/cerium/extra/d-resource.png");
background-position: center -63px;
width: 18px;
height: 18px;
}
}
&.button--icon--download{
background: @xf-paletteColor3;
border-color: @xf-paletteColor3 !important;
&:before{
content: '';
display: inline-block;
background-image: url("{{ base_url() }}styles/brivium/cerium/extra/d-resource.png");
background-position: center -93px;
width: 18px;
height: 18px;
}
&:hover{
background: @xf-paletteColor3;
border-color: @xf-paletteColor3 !important;
&:before{
background-position: center -93px;
}
}
.button-text{
display: none;
}
}
&.button--icon--purchase{
background: #e9431d;
border-color: #e9431d !important;
&:before{
content: '';
display: inline-block;
background-image: url("{{ base_url() }}styles/brivium/cerium/extra/d-resource.png");
background-position: center -33px;
width: 18px;
height: 18px;
}
&:hover{
background: #e9431d;
border-color: #e9431d !important;
&:before{
background-position: center -33px;
}
}
.button-text{
display: none;
}
}
}
}
.p-description{
font-size: 12px;
font-weight: 700;
color: @xf-paletteAccent2;
margin-top: 0;
display: inline-block;
position: relative;
top: -10px;
ul{
li+li+li{
display: none;
}
}
}
}
}
.new_tags_resource{
padding: 10px 20px;
border: 1px solid @xf-borderColor;
border-radius: 5px;
font-size: 13px;
color: @xf-paletteAccent2;
margin: 10px 0;
.fa-pencil,
.fa-tags{
display: none;
}
.u-srOnly{
position: relative;
}
>.u-srOnly{
margin-right: 15px;
&:after{
content: ':';
position: absolute;
right: -4px;
font-size: 13px;
}
}
a{
margin-left: 15px;
color: @xf-paletteAccent2;
padding: 0;
font-size: 13px;
border: none !important;
background: transparent !important;
}
}
}
.block{
.block-container{
.block-body{
.resourceBody{
.resourceBody-main{
padding-left: 0;
padding-right: 20px;
.actionBar{
border-radius: 5px;
border: 1px solid @xf-borderColor;
margin-bottom: 15px;
padding: 10px 20px;
margin-top: 10px;
.actionBar-set{
margin-top: 0;
}
}
}
.resourceBody-sidebar{
background: #e7e9e9;
padding-right: 0;
position: relative;
border: none;
width: 360px;
padding: 30px;
.resourceSidebarGroup{
dl{
dt,dd{
color: @xf-linkColor;
}
}
.resourceSidebarGroup-title{
font-size: 11px;
font-weight: 700;
text-transform: uppercase;
border: 1px solid @xf-borderColor;
border-radius: 5px;
padding: 10px 20px;
margin-bottom: 10px;
}
.contentRow-figure{
.avatar{
width: 40px;
height: 40px;
font-size: 20px;
border-radius: 100%;
span{
line-height: 40px;
}
}
}
.contentRow-main{
>a{
font-size: 13px;
font-weight: 700;
}
.contentRow-lesser{
font-size: 12px;
color: @xf-paletteAccent2;
}
}
}
}
}
.message{
border: 1px solid @xf-borderColor;
border-radius: 5px;
&+.message{
margin-top: 20px;
}
.message-inner{
.message-cell{
border: none;
padding-top: 20px;
padding-bottom: 20px;
&.message-cell--user{
flex: 0 0 62px;
padding-left: 20px;
padding-right: 0;
.message-avatar{
.avatar{
width: 40px;
height: 40px;
font-size: 20px;
border-radius: 100%;
span{
line-height: 40px;
}
}
}
}
&.message-cell--main{
padding-left: 10px;
.message-content{
ul{
.message-attribution-user{
a{
color: @xf-linkColor;
font-size: 14px;
}
}
li{
margin-right: 15px;
&:before{
display: none;
}
&:nth-child(3),
&:nth-child(4){
font-size: 12px;
}
}
}
}
.message-responses{
.message-responseRow{
background: transparent;
border-radius: 5px;
padding: 10px 20px;
.avatar{
border-radius: 100%;
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
/********************************************************************************/
/* END */
/********************************************************************************/
body[data-template="xfrm_watched_categories"],
body[data-template="xfmg_watched_categories"]{
.p-body{
.p-body-inner{
.p-body-content{
.p-body-pageContent{
.block-container{
.block-body{
.node{
padding: 10px 0 !important;
.node-body{
padding: 10px 20px;
border: 1px solid @xf-borderColor;
.node-main{
.node-title{
border: none !important;
padding: 20px 0 !important;
}
.node-bonus{
text-align: left;
}
}
}
}
}
}
}
}
}
}
}
html[dir="RTL"]{
.xfmgThumbnail-icon{
transform: translate(50%, -50%);
}
.js-quickReply .fr-box.bbWrapper,
.message-cell--main{
&:before{
transform: rotateY(180deg);
}
}
}
//conversation
body[data-template="conversation_view"]{
.p-body{
.p-body-inner{
.p-body-header{
background: transparent;
box-shadow: none;
text-align: center;
margin: 25px 0 35px;
.p-title{
.p-title-value{
margin: 0 auto;
}
}
}
.p-body-main{
.p-body-content{
.p-body-pageContent{
.block{
.block-container{
.block-body{
.message{
.message-inner{
.message-cell{
&.message-cell--main{
&:before{
content: '';
position: absolute;
background-image: url("{{ base_url() }}styles/brivium/cerium/extra/mess-arr.png");
width: 27px;
height: 31px;
left: -27px;
top: -1px;
}
.message-main{
.message-content{
}
.message-footer{
margin-top: 30px;
.message-actionBar{
.actionBar-action{
margin-left: 30px;
margin-right: 0;
}
.actionBar-set--external{
.actionBar-action{
margin-left: 0;
margin-right: 30px;
}
}
}
.likesBar{
background: @xf-BrvColor1;
border: none;
float: left;
margin: 0;
padding-left: 0;
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
.message-userDetails-infor{
display: flex;
padding-top: 20px;
flex-flow: row wrap;
.message-avatar{
width: 15%;
.message-avatar-wrapper{
.avatar{
border-radius: 100%;
}
}
}
.user-detail-infor{
width: 85%;
.message-user{
span{
display: inline-block;
&.message-name{
font-size: 18px;
font-weight: 500;
color: @xf-linkColor;
padding-right: 20px;
text-transform: capitalize;
position: relative;
&:after{
content: '';
position: absolute;
right: -1px;
top: 50%;
transform: translateY(-50%);
width: 1px;
height: 11px;
background: @xf-linkColor;
}
}
&.user-admin{
padding: 0 20px;
.userTitle{
font-size: 13px;
text-transform: uppercase;
}
}
&.user-staff{
padding-left: 20px;
.userBanner{
margin: 0;
padding: 0;
border: none;
font-size: 13px;
text-transform: uppercase;
color: @xf-paletteColor3;
position: relative;
&:after{
content: '';
position: absolute;
left: -21px;
top: 50%;
transform: translateY(-50%);
width: 1px;
height: 11px;
background: @xf-linkColor;
}
}
}
}
}
.user-infor{
margin-top: 15px;
.message-userExtras{
.content-infor{
.pairs{
display: inline-block;
margin-right: 20px;
&:nth-child(2){
dt{
img{
position: relative;
top: -3px;
}
}
}
dt{
img{
width: 16px;
vertical-align: middle;
}
&:after{
display: none;
}
}
dd{
font-size: 11px;
color: @xf-BrvColor3;
}
}
}
}
}
.join-date{
margin-top: 8px;
span{
font-size: 11px;
color: @xf-BrvColor3;
text-transform: uppercase;
&.join-text{
margin-right: 20px;
}
}
}
}
}
//mobile menu
.offCanvasMenu--nav .offCanvasMenu-content{
background: #3b3b40 !important;
.offCanvasMenu-header{
background-size: cover;
position: relative;
font-size: 14px;
color: @xf-BrvColor1;
background: transparent;
border-bottom: none;
.offCanvasMenu-closer{
width: 100%;
padding-top: 20px;
text-align: left;
padding-left: 20px;
float: left;
&:after{
display: none;
}
}
}
.offCanvasMenu-separator{
display: none;
}
.p-offCanvasAccountLink{
a{
line-height: 24px;
}
}
.p-offCanvasRegisterLink{
a{
padding-left: 20px;
text-transform: uppercase;
}
}
a{
color: @xf-BrvColor1;
font-size: 14px;
text-transform: lowercase;
}
.p-offCanvasAccountLink{
.offCanvasMenu-linkHolder{
a{
color: @xf-BrvColor1;
}
}
}
.js-offCanvasNavTarget{
.offCanvasMenu-list{
li{
border: none;
.offCanvasMenu-linkHolder{
a{
color: @xf-BrvColor1;
font-size: 14px;
padding: 10px 20px;
&.offCanvasMenu-link--splitToggle{
&:before{
display: none;
}
}
}
}
.offCanvasMenu-linkHolder{
background: transparent;
position: relative;
span{
color: @xf-linkColor;
}
}
.offCanvasMenu-subList{
margin-left: 10px;
li{
.offCanvasMenu-link{
padding-left: 20px;
}
}
&.is-active{
background: #3b3b40;
margin-left: 10px;
li{
a{
color: #e6e6e6;
}
}
}
}
&.is-selected{
.offCanvasMenu-linkHolder{
&.is-selected{
a{
color: @xf-paletteColor3;
}
}
}
.offCanvasMenu-subList{
&.is-active{
background: #3b3b40;
margin-left: 10px;
li{
a{
color: #e6e6e6;
&:active{
color: @xf-paletteColor3;
}
}
}
}
}
}
}
}
}
}
//tabs
.p-body-pageContent{
.tabs--standalone{
border: 1px solid @xf-borderColor;
border-radius: 5px;
margin-bottom: 20px !important;
.hScroller{
.hScroller-scroll{
.tabs-tab{
padding: 12px 10px 12px;
border: none;
}
}
}
}
}
//whats_new
body[data-template="whats_new_profile_posts"],
body[data-template="news_feed"],
body[data-template="latest_activity"],
body[data-template="xfmg_whats_new_media_comments"],
body[data-template="whats_new_posts"],
body[data-template="whats_new"]{
.p-body{
.p-body-inner{
.p-body-main{
.p-body-content{
.p-body-pageContent{
.block{
.block-header{
margin-bottom: 15px;
}
.message-cell{
border: none;
}
.message{
border: none !important;
margin-bottom: 15px;
}
.username{
font-size: 14px;
}
time{
font-size: 13px;
color: @xf-paletteAccent2;
}
.message-body{
font-size: 14px;
color: #4b5056;
}
.message-footer{
padding: 0;
margin-top: 10px;
}
.message-cell--user{
margin-top: 0;
padding: 0;
.message-avatar{
text-align: left;
.message-avatar-wrapper{
position: relative;
padding: 4px;
z-index: 1;
&:before{
content: '';
position: absolute;
width: 100%;
height: 100%;
top:0;
left: 0;
background: rgba(255,255,255,.5);
z-index: -1;
border-radius: 50%;
}
}
}
}
.message-cell--main{
padding: 0;
background: @xf-BrvColor1;
position: relative;
border-radius: 0 4px 4px 4px;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
&:before{
content: '';
position: absolute;
background-image: url("{{ base_url() }}styles/brivium/cerium/extra/mess-arr.png");
width: 27px;
height: 31px;
left: -27px;
top: -1px;
}
}
.message-editorWrapper{
padding: 15px 30px;
}
.message-body{
margin: 0;
padding: 0 30px;
}
.message-attribution{
padding: 0 30px 20px;
}
.message-content{
padding-top: 20px;
padding-bottom: 20px;
}
.message-footer{
border-top: 1px solid @xf-borderColor;
margin-top: 0;
padding: 15px 30px;
}
.message-user{
border: none;
}
.avatar:first-child{
border-radius: 100%;
}
.message-actionBar{
padding: 0;
border: none;
}
.messageNotice{
border: 1px solid @xf-borderColor;
border-radius: 3px;
background: @xf-BrvColor1;
color: @xf-paletteAccent2;
&:before{
color: @xf-paletteAccent2;
}
a{
color: @xf-linkColor;
&:hover{
color: @xf-paletteColor3;
}
}
}
.js-likeList.is-active{
border: 1px solid @xf-borderColor !important;
border-radius: 3px;
margin-top: 10px;
}
.js-commentLoader{
border-top: 1px solid @xf-borderColor !important;
margin-top: 15px;
}
.message-responses{
.message-responseRow{
background: @xf-BrvColor1;
border: none;
}
.js-replyNewMessageContainer{
.message-responseRow{
margin-bottom: 10px;
&:last-child{
margin-bottom: 0;
.comment-main{
border: none;
}
}
.comment-main{
border-bottom: 1px solid @xf-borderColor;
padding-bottom: 15px;
padding-left: 15px;
}
time{
font-size: 13px;
}
}
}
}
.contentRow-title{
font-size: 14px;
color: @xf-linkColor;
}
.block-textHeader{
font-size: 14px;
color: @xf-linkColor;
}
.contentRow-header{
font-size: 14px;
}
}
}
}
}
}
}
}
.add-more-mobile{
padding-right: 30px !important;
.fr-command{
display: none;
&[data-cmd="clearFormatting"],&[data-cmd="bold"],&[data-cmd="italic"],&[data-cmd="underline"],&[data-cmd="strikeThrough"],&[data-cmd="color"],&[data-cmd="fontFamily"],&[data-cmd="fontSize"]{
display: inherit;
}
&.show-mobile{
display: inherit;
}
}
}
.quick-action-mobile{
position: absolute;
right: 10px;
top: 2px;
z-index: 5;
padding: 10px;
}
@media (max-width: 1380px){
.p-nav .p-nav-inner:before,
.p-nav .p-nav-inner:after{
display: none;
}
body[data-template=forum_list] .p-body .p-body-inner .p-body-header .p-title .p-title-pageAction .button--icon--write,
html[data-template=forum_view] .p-body .p-body-inner .p-body-header .p-title .p-title-pageAction{
right: 0;
}
}
@media (min-width: 1366px){
}
@media (max-width: 1366px){
.p-body{
margin-top: -2px;
overflow: hidden;
}
.node-description{
padding: 0;
font-size: 12px;
}
}
@media (max-width: 1200px){
.p-nav-inner,
.p-body-inner,
.bread-action--inner,
.p-footer-inner{
padding-left: 15px !important;
padding-right: 15px !important;
}
.noticeScrollContainer.substr_text .lSSlideWrapper .notices .notice .notice-content{
padding: 10px 15px;
}
.p-nav .p-nav-inner .p-nav-opposite .p-navgroup.p-navgroup--member{
margin-right: 0;
}
}
@media (min-width: 1000px){
body[data-template=xfmg_watched_categories] .p-body .p-body-inner .p-body-content .p-body-pageContent .block-container .block-body .node .node-body .node-main .node-meta{
display: none;
}
}
@media (min-width: @xf-responsiveWide){
body[data-template=member_notable] .p-body .p-body-inner .p-body-main--withSideNav .p-body-content .block-container .block-body{
margin-left: -10px;
margin-right: -10px;
}
#footer{
.footer-custom{
.footer-column{
float: left;
&.footer-column-1{
width: 50%;
}
&.footer-column-2{
width: 17%;
}
&.footer-column-3{
width: 33%;
}
}
}
}
}
@media (max-width: @xf-responsiveWide){
.p-body-sideNav,
.p-body-sidebar{
padding: 0 !important;
border-left: none !important;
&:before{
display: none !important;
}
}
.p-staffBar .p-staffBar-inner .hScroller-scroll{
.link-report{
float: none;
margin-left: 20px;
}
}
.structItem-cell.structItem-cell--meta{
width: 90px;
}
.node-description{
display: none !important;
}
.p-body .p-body-inner .p-body-sidebar .block.member-visitor{
margin-top: 0;
}
body[data-template=member_notable] .p-body .p-body-inner .p-body-main--withSideNav .p-body-content .block-container .block-body{
padding: 0 10px;
}
.resourceBody-sidebar{
width: auto !important;
border: none !important;
&:before{
display: none !important;
}
}
.p-body .p-body-inner .p-body-sideNav{
background: transparent;
}
.p-body .p-body-inner .p-body-main .p-body-content .p-body-pageContent .block .block-container .block-body .node{
width: 50%;
}
body[data-template=xfmg_media_view] .columnContainer-comments{
margin-right: 0 !important;
}
.block--messages .message .message-inner .message-cell--main .main-user-message{
.part-left{
width: 60% !important;
.message-userDetails .message-user span{
&.message-name{
padding-right: 10px !important;
}
&.user-admin{
padding: 0 10px !important;
}
&.user-staff{
padding-left: 10px !important;
}
}
}
.part-right{
width: 40% !important;
}
}
#footer .footer-bottom .p-footer-inner .footer-bottom-content{
flex-flow: row wrap;
padding: 15px 0;
.p-footer-middle,
.footer-copyright,
.p-footer-copyright{
width: 100%;
margin: 5px auto !important;
}
}
#footer{
margin-top: 0;
.footer-custom{
.footer-column{
margin-bottom: 30px;
width: 50%;
float: left;
&.footer-column-3{
clear: left;
}
}
}
.footer-bottom{
text-align: center;
.p-footer-copyright{
text-align: center !important;
}
.p-footer-row-opposite{
float: none;
margin-bottom: 0;
margin-top: 10px;
.p-footer-linkList{
li{
float: none;
display: inline-block;
}
}
}
}
}
}
@media (max-width: 820px){
body[data-template=whats_new_profile_posts] .p-body .p-body-inner .p-body-main .p-body-content .p-body-pageContent .block[data-type=profile_post] .message .message-inner .message-cell.message-cell--main .message-main .message-footer .message-responses .message-responseRow .comment .comment-inner .comment-main .js-quickEditTargetComment .comment-content .comment-actionBar .actionBar-set .actionBar-action.actionBar-action--menuItem,
body[data-template=member_view] .p-body .p-body-inner .p-body-main .p-body-content .p-body-pageContent .tabPanes li#profile-posts .block--messages .block-container .block-body .message .message-inner .message-cell.message-cell--main .message-main .message-footer .message-responses .message-responseRow .comment .comment-inner .comment-main .js-quickEditTargetComment .comment-content .comment-actionBar .actionBar-set .actionBar-action.actionBar-action--menuItem{
display: none;
}
body[data-template=whats_new_profile_posts] .p-body .p-body-inner .p-body-main .p-body-content .p-body-pageContent .block[data-type=profile_post] .message .message-inner .message-cell.message-cell--main .message-main .message-footer .message-responses .message-responseRow .comment .comment-inner .comment-main .js-quickEditTargetComment .comment-content .comment-actionBar .actionBar-set .actionBar-action.actionBar-action--menuTrigger,
body[data-template=member_view] .p-body .p-body-inner .p-body-main .p-body-content .p-body-pageContent .tabPanes li#profile-posts .block--messages .block-container .block-body .message .message-inner .message-cell.message-cell--main .message-main .message-footer .message-responses .message-responseRow .comment .comment-inner .comment-main .js-quickEditTargetComment .comment-content .comment-actionBar .actionBar-set .actionBar-action.actionBar-action--menuTrigger{
display: inline;
}
}
@media (min-width: 768px){
}
@media (max-width: 768px){
.p-body .p-body-inner .p-body-main{
overflow: hidden;
}
.p-body .p-body-inner .p-body-main .p-body-content .p-body-pageContent .block.block--category .block-body{
margin-right: 0;
margin-left: 0;
}
.p-body-content .block[data-type=xfmg_media] .block-container .block-body .itemList{
margin: 0;
}
#footer{
.footer-custom{
.footer-column{
margin-bottom: 30px;
width: 100%;
float: left;
&.footer-column-3{
clear: left;
}
}
}
}
}
@media (min-width: @xf-responsiveMedium){
.show-xs{
display: none;
}
.menu--account .menu--account__content .user-visitor-avatar .brv--mobile--link,
.p-nav .p-nav-inner .p-nav-opposite .p-navgroup.p-navgroup--member a.p-navgroup-link--user:before{
display: none;
}
.p-body .p-body-inner .p-body-main .p-body-content .p-body-pageContent .block .block-container .block-body .node .node-body .node-extra .node-extra-row li{
&:before{
display: none;
}
}
.p-staffBar{
.hScroller-scroll.is-calculated{
overflow-y: hidden;
overflow-x: hidden;
margin: 0 !important;
}
}
.p-body-sideNav .p-body-sideNavInner .block:first-child {
margin-top: -60px !important;
}
.block-tabHeader--memberTabs{
.hScroller-scroll.is-calculated{
overflow-y: hidden;
overflow-x: hidden;
margin: 0 !important;
}
}
.edit-date.show-in-mobile{
display: none;
}
.stick-column-mobile{
display: none;
}
.message-attribution--brv .message-attribution-infor .avatar{
display: none;
}
body[data-template=watched_forums_list] .p-body .p-body-inner .p-body-content .p-body-pageContent .block-container .block-body{
margin-left: -10px;
margin-right: -10px;
}
.ico--mobile{
display: none;
}
}
@media (max-width: @xf-responsiveMedium){
.is-sticky{
box-shadow: none !important;
}
.p-body .p-body-inner .p-body-main .p-body-content .p-body-pageContent .block .block-container .block-body .node{
width: 100%;
padding-left: 0;
padding-right: 0;
}
.noticeScrollContainer .lSPager{
bottom: -5px !important;
}
.hidden-xs{
display: none !important;
}
.block-container + .block-outer .pageNavWrapper{
margin: 3px 0;
}
.p-body-header .p-title-pageAction{
z-index: 2;
background: #EFF0F0;
padding-left: 15px;
a{
color: #ffffff !important;
background: @xf-paletteColor3 !important;
border-radius: 3px;
}
}
html:not(.js-page-message_post) body[data-template="thread_view"] .block--messages .message:first-child .message-cell--main .message-footer,
html:not(.js-page-message_post) body[data-template="thread_view"] .block--messages .message:first-child .message-cell--main .message-content,
.message-title-header.js-BrvLoadTitlepost .mess-title-header,
html:not(.js-page-message_post) body[data-template="thread_view"] .block--messages .message:first-child .message-cell--main .message-attribution--brv,
.block--messages .message .message-inner .message-cell--main .message-main .message-footer,
.block--messages .message .message-inner .message-cell--main .message-main .message-content,
.message-attribution--brv{
padding-left: 15px;
padding-right: 15px;
}
.tabs--standalone,
.block-container, .blockMessage{
margin: 0 0 5px 0 !important;
}
.p-navgroup-link--register{
display: none;
}
.p-navgroup-link--logIn{
margin-right: 20px;
.p-navgroup-linkText{
display: none;
}
&:after{
display: none;
}
}
.tag_thread_view{
display: inline-block;
width: 100%;
.text-tags{
margin-right: 0;
margin-bottom: 10px;
}
.edit-tags{
margin-left: 0;
}
}
.block-outer-opposite .button{
padding: 10px;
}
.userBanner{
margin-bottom: 5px;
}
body[data-template=member_view] .p-body .p-body-inner .p-body-main .p-body-content .p-body-pageContent .tabPanes .block .messageNotice{
margin: 15px 0;
}
body[data-template=member_view] .p-body .p-body-inner .p-body-main .p-body-content .p-body-pageContent .tabPanes .block .message-footer,
body[data-template=member_view] .p-body .p-body-inner .p-body-main .p-body-content .p-body-pageContent .tabPanes .block .message-content,
body[data-template=member_view] .p-body .p-body-inner .p-body-main .p-body-content .p-body-pageContent .tabPanes .block .message-attribution{
padding: 10px 0;
}
.comment-actionBar .actionBar-set,
.message-actionBar .actionBar-set{
margin-bottom: 10px !important;
&.actionBar-set--external{
.actionBar-action{
font-size: 0 !important;
&:before{
font-size: 14px;
display: inline-block;
}
}
}
&.actionBar-set--internal{
.actionBar-action{
margin-right: 15px !important;
}
.message-attribution-opposite{
.actionBar-action{
margin-left: 15px !important;
margin-right: 0 !important;
}
}
}
}
.block--messages .message{
padding-bottom: 0;
}
.structItemContainer .structItem .structItem-cell--meta{
display: none;
}
.p-body-content .block[data-type=xfmg_media] .block-container .block-body .itemList .itemList-item{
width: 100%;
}
.block--messages .message:first-child .message-cell--main .message-attribution--brv .item-attribution-opposite.item-attribution-show-only-first{
display: none !important;
}
#header .p-header-inner .p-header-content .header-left .p-navgroup{
margin-left: 15px;
}
.structItemContainer .structItem .structItem-cell--latest:before,
.structItemContainer .structItem .structItem-cell--meta.stick-column{
display: none;
}
.node-extra-row{
width: 100%;
}
.structItemContainer .structItem .structItem-cell--latest{
position: relative;
top: -2px;
text-align: left;
width: auto;
.structItem-minor{
display: inline;
margin-right: 10px;
}
}
.structItemContainer .structItem .structItem-cell--meta{
text-align: left !important;
width: auto !important;
}
.structItemContainer .structItem .structItem-cell.structItem-cell--main{
padding-bottom: 0 !important;
}
.structItemContainer .structItem .structItem-cell--meta .pairs span{
display: inline !important;
}
html[data-template=forum_view] .p-body .p-body-inner .structItemContainer .structItem .structItem-cell--meta .pairs,
.structItemContainer .structItem .structItem-cell--meta .pairs.column-stick{
margin-top: 0 !important;
}
html[data-template=forum_view] .p-body .p-body-inner .structItemContainer .title-thread{
display: none;
}
.structItem-iconContainer img{
width: auto !important;
}
.structItem-iconContainer .structItem-secondaryIcon{
right: 10px;
}
.avatar-update{
background: transparent;
a{
i{
font-size: 18px;
}
.text-action{
display: none;
}
}
}
#header .p-header-inner .p-header-content .header-left .p-navgroup .p-navgroup-link{
padding: 10px;
}
#header .p-header-inner .p-header-content .header-right .p-navgroup .p-navgroup-link--user::after{
display: none;
}
#header .p-header-inner .p-header-content .header-right .p-navgroup .p-navgroup-link--user .avatar{
cursor: pointer;
}
body[data-template="forum_post_thread"] .p-body-inner .p-body-content .p-body-pageContent form{
padding: 0 10px;
}
html[data-template=forum_view] .p-body .p-body-inner .structItemContainer .structItem .structItem-cell--meta.structItem-cell-hidden-mobile{
display: none;
}
.p-body .p-body-inner .p-body-main .p-body-content .p-body-pageContent .block .block-container .block-body .node .node-body .sub--node{
width: 60px;
}
.block-outer{
margin-bottom: 10px;
}
.blockStatus{
margin-left: 0;
margin-right: 0;
}
.pageNavWrapper--mixed .pageNavSimple{
margin-left: 20px;
}
.noticeScrollContainer .lSSlideWrapper .notices .notice .notice-content{
padding: 10px !important;
}
body[data-template=xfmg_whats_new_media_comments] .structItemContainer .structItem .structItem-cell--icon .structItem-iconContainer .xfmgThumbnail.xfmgThumbnail--small,
.structItemContainer .structItem .structItem-cell--icon .structItem-iconContainer .avatar:first-child{
width: 30px !important;
height: 30px !important;
font-size: 14px;
span{
line-height: 30px !important;
}
}
.message--user__avatar{
display: none;
}
.structItemContainer .structItem .structItem-cell--icon .structItem-iconContainer >img{
width: 30px !important;
}
.structItemContainer .structItem .structItem-cell--icon{
width: 50px !important;
}
.block-outer--after{
.block-outer-main{
float: none;
text-align: center;
}
}
html[data-logged-in="true"]{
.block-outer-main{
padding-top: 5px;
padding-bottom: 5px;
}
}
.p-body-pageContent > .tabs--standalone .hScroller-scroll{
.tabs-tab{
text-transform: uppercase;
}
}
.block--messages .message .message-inner .message-cell--main .main-user-message{
.part-left{
width: 40% !important;
}
.part-right{
width: 60% !important;
.action-user{
position: relative;
box-shadow: none !important;
&.notbox{
box-shadow: 1px 1px 2px 1px rgba(0, 0, 0, 0.1) !important;
}
}
.actionBar-set.actionBar-set--internal{
box-shadow: none !important;
padding: 9px 0 !important;
background: @xf-BrvColor1;
}
}
}
.block--messages .message .message-inner .message-cell--main{
padding-left: 0;
padding-right: 0;
.main-user-message{
padding-left: 45px !important;
padding-top: 20px !important;
.part-left{
.message-userDetails{
.message-user{
.message-name{
margin: 0;
&:after{
display: none;
}
}
.user-admin,.user-staff{
display: none;
}
}
.user-infor,.join-date{
display: none;
}
}
}
.part-right{
.link-date{
padding-top: 3px !important;
.message-date{
display: none !important;
}
}
}
}
}
body[data-template="conversation_view"]{
.p-body{
.p-body-inner{
.p-body-main{
.p-body-content{
.p-body-pageContent{
.block{
.block-container{
.block-body{
.message{
.message-inner{
.message-cell{
&.message-cell--user{
position: static;
.message-userDetails-infor{
.user-detail-infor{
.message-user{
span{
&.message-name{
padding-right: 10px;
}
&.user-admin{
padding: 0 10px;
}
&.user-staff{
padding-left: 10px;
.userBanner{
&:after{
left: -11px;
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
.structItem-cell.structItem-cell--main{
padding-left: 10px !important;
padding-right: 20px !important;
}
.structItemContainer .structItem .structItem-cell {
padding: 10px 8px !important;
line-height: 20px;
border: none !important;
&.structItem-cell--icon{
padding-top: 22px !important;
}
&.structItem-cell--main{
border-top: none !important;
}
}
html[dir="RTL"]{
.content--alert--conver{
transform: translateX(50%) !important;
}
}
.content--alert--conver{
left: 50% !important;
transform: translateX(-50%);
}
.structItem-cell.structItem-cell--meta{
padding-left: 10px;
padding-bottom: 0;
line-height: 12px;
position: relative;
top: -3px;
background-color: transparent !important;
}
.block--messages .message .message-inner .message-cell--user .message-user .item.message-userDetails{
display: block;
float: none;
}
.block--messages .message .message-inner .message-cell--user .message-user .message-userDetails .message-userBanner,
.block--messages .message .message-inner .message-cell--user .message-user .message-userDetails .userTitle{
margin-top: 0 !important;
border: none !important;
padding: 0 !important;
margin-right: 10px;
}
body[data-template=member_view] .p-body .p-body-inner .p-body-main .p-body-content .p-body-pageContent .tabPanes .block .message-cell--main{
padding: 5px 15px !important;
}
[data-template=forum_view] .structItemContainer .structItem .structItem-cell--main .structItem-title{
top: 0;
}
.block--messages .message .message-inner .message-cell--user{
.message-avatar{
margin-bottom: 0 !important;
.message-avatar-wrapper{
.avatar{
width: 40px !important;
height: 40px !important;
font-size: 20px !important;
span{
line-height: 40px !important;
}
}
}
}
.message-userExtras{
display: inherit;
margin-top: 0 !important;
dl{
display: none;
margin-bottom: 0 !important;
text-align: right;
&:first-child{
display: inline;
dt{
margin-bottom: 5px;
}
dt,dd{
font-weight: 700;
float: none;
display: block;
&:after{
display: none;
}
}
}
}
}
}
.actionBar-set{
.actionBar-action{
&.actionBar-action--menuItem{
display: none;
}
&.actionBar-action--menuTrigger{
display: inline;
}
}
}
.block-footer.block-footer--split .block-footer-controls .input--inline{
width: 100%;
}
.block-footer.block-footer--split .block-footer-controls .button{
margin: 5px 0;
}
.p-nav .p-nav-inner .p-nav-opposite .p-discovery .search-area.show{
width: 250px;
}
.structItemContainer .structItem .structItem-cell--resourceMeta.download-column span{
display: inline !important;
}
#footer{
.footer-custom{
.footer-column{
margin-bottom: 30px;
width: 100%;
}
}
.footer-bottom{
.p-footer-copyright{
width: 100%;
text-align: center !important;
margin: 15px 0 !important;
}
.p-footer-row-opposite{
.p-footer-linkList{
text-align: center;
li{
float: none;
display: inline-block;
}
}
}
}
}
}
@media (max-width: 540px){
.box-popup-login .overlay-content #box-login-popup .tabcontent .formRow{
display: table !important;
}
.block--messages .message .message-inner .message-cell--main .message-main .message-footer .message-actionBar{
border: none;
padding: 0;
}
}
@media (min-width: @xf-responsiveNarrow){
}
@media (max-width: @xf-responsiveNarrow){
.p-body .p-body-inner .p-body-main .p-body-content .p-body-pageContent .block .block-container .block-body .node{
width: 100%;
}
body[data-template=xfmg_media_index] .p-body-content .block[data-type=xfmg_media] .block-container .block-body .itemList .itemList-item{
width: 100%;
}
.p-nav .p-nav-inner .p-nav-opposite .p-navgroup.p-navgroup--member{
margin-right: 0;
}
#header .p-header-inner .p-header-content .header-left .p-header-logo{
padding: 9px 0;
}
.block--messages .message .message-inner .message-cell--main .message-main .message-footer .message-actionBar .actionBar-set--external .actionBar-action{
margin-right: 10px !important;
}
.block--messages .message .message-inner .message-cell--main .main-user-message .part-right .actionBar-set.actionBar-set--internal .actionBar-action{
&.actionBar-action--menuItem{
display: inline !important;
}
&.actionBar-action--menuTrigger{
display: none !important;
}
}
.p-staffBar .p-staffBar-inner .hScroller-scroll{
.link-report{
float: none;
margin-left: 0;
}
}
.inlineModBar-controls > li{
margin-bottom: 5px;
.button{
margin-top: 5px;
}
}
.p-staffBar .p-staffBar-inner .hScroller-scroll .link-admin{
float: none;
}
.message-attribution--brv .message-attribution-infor .user--infor{
margin-left: 10px;
}
.message-attribution--brv .message-attribution-opposite .item-attribution-opposite{
margin: 0;
}
.block-outer{
display: inherit;
.block-outer-opposite{
a{
display: inline-block;
}
}
}
.block-outer-main + .block-outer-opposite{
margin-top: 0;
margin-bottom: 5px;
}
body[data-template=member_view] .p-body .p-body-inner .member_infor .memberHeader .memberHeader-content,
body[data-template=member_view] .p-body .p-body-inner .p-body-main .p-body-content .p-body-pageContent .block .block-container .block-body .memberHeader .memberHeader-content{
padding-left: 20px;
}
.block--messages .message .message-inner .message-cell--main .main-user-message .part-left{
width: 30% !important;
position: absolute;
}
.block--messages .message .message-inner .message-cell--main .main-user-message .part-right{
width: 100% !important;
}
.block--messages .message .message-inner .message-footer .message-actionBar .actionBar-set--internal .actionBar-action.actionBar-action--menuTrigger{
margin-left: 10px !important;
}
html[data-template=forum_view] .p-body .p-body-inner .structItemContainer .structItem.is-deleted .structItem-cell--delete .listInline li:first-child,
html[data-template=forum_view] .p-body .p-body-inner .structItemContainer .structItem.is-deleted .structItem-cell--main .structItem-title a{
top: 0;
}
.formButtonGroup{
.button{
margin-top: 5px;
}
}
.block--messages .message .message-inner .message-cell--user .message-user .item{
margin-right: 10px !important;
}
body[data-template=forum_list] .p-body .p-body-inner .p-body-main .p-body-content .p-body-pageContent .block,
body[data-template=forum_list] .p-body .p-body-inner .p-body-main .p-body-content .p-body-pageContent .block--category{
width: 100%;
}
form .block-container .message--quickReply .message-inner .message-cell--main .formButtonGroup{
text-align: center;
.formButtonGroup-primary{
float: none;
}
}
}
@media (max-width: 600px){
}
@media (max-width: 530px){
}
@media (max-width: 450px){
}
@media (max-width: 400px){
.showIgnoredLink{
padding: 3px 5px !important;
}
}
@media (max-width: 375px){
#header .p-header-inner .p-header-content .header-right .p-navgroup .p-navgroup-link.p-navgroup-link--logIn::after{
display: none;
}
body[data-template=thread_view] .p-body .p-body-inner .p-body-header .p-description ul.listInline{
float: none;
}
body[data-template=thread_view] .p-body .p-body-inner .p-body-header .p-description .part-right{
float: none;
padding-top: 0;
}
.box-popup-login .overlay-content #box-login-popup .tabcontent .formRow.edit-input-password dd .forgot-password {
width: 12%;
}
.structItemContainer form .structItem-cell--newThread .formButtonGroup .formButtonGroup-primary{
display: inline-block;
}
body[data-template=forum_post_thread] .p-body-content .block-body .formRow .button{
margin-bottom: 5px;
}
}
@media (max-width: 340px){
}
html[data-template=forum_view] .p-body .p-body-inner .structItemContainer .structItem.is-deleted .structItem-cell--main .structItem-title{
top: 0;
}
.structItemContainer form.structItem .structItem-cell--icon .structItem-iconContainer{
position: relative;
transform: translateX(0);
}
#footer{
overflow:hidden;
}]]></template>
<template title="forum_list" type="public" addon_id="XF" version_id="2000670" version_string="2.0.6"><![CDATA[<xf:h1>{$xf.options.boardTitle}</xf:h1>
<xf:if is="{$xf.options.forumsDefaultPage} != 'forums'">
<xf:title>{{ phrase('forum_list') }}</xf:title>
</xf:if>
<xf:macro template="metadata_macros" name="metadata"
arg-description="{$xf.options.boardDescription}"
arg-canonicalUrl="{{ link('canonical:' . $selfRoute) }}" />
<xf:wrap template="forum_overview_wrapper">
<xf:set var="$pageSelected">forums</xf:set>
</xf:wrap>
<xf:widgetpos id="forum_list_sidebar" position="sidebar" />
<xf:widgetpos id="forum_list_above_nodes" />
<xf:macro name="node_list" arg-children="{$nodeTree}" arg-extras="{$nodeExtras}" />
<xf:widgetpos id="forum_list_below_nodes" />
<xf:head option="rss_forum"><link rel="alternate" type="application/rss+xml" title="{{ phrase('rss_feed_for_x', {'title': $xf.options.boardTitle})|for_attr }}" href="{{ link('forums/index.rss', '-') }}" /></xf:head>
<xf:macro name="node_list_entry" arg-node="!" arg-extras="!" arg-children="!" arg-childExtras="!" arg-depth="1">
<xf:css src="node_list.less" />
<xf:set var="$nodeTemplate" value="{{ $node.getNodeTemplateRenderer($depth) }}" />
<xf:if is="$nodeTemplate.macro">
<xf:macro template="{$nodeTemplate.template}" name="{$nodeTemplate.macro}"
arg-node="{$node}"
arg-extras="{$extras}"
arg-children="{$children}"
arg-childExtras="{$childExtras}"
arg-depth="{$depth}" />
<xf:elseif is="{$nodeTemplate.template}" />
<xf:include template="{$nodeTemplate.template}" />
</xf:if>
</xf:macro>
<xf:macro name="node_list" arg-children="!" arg-extras="!" arg-depth="1">
<xf:css src="node_list.less" />
<xf:foreach loop="$children" key="$id" value="$child">
<xf:macro name="node_list_entry"
arg-node="{$child.record}"
arg-extras="{$extras.{$id}}"
arg-children="{$child.children}"
arg-childExtras="{$extras}"
arg-depth="{$depth}" />
</xf:foreach>
</xf:macro>
<xf:macro name="sub_node_list" arg-children="!" arg-childExtras="!" arg-depth="3">
<xf:if contentcheck="true">
<ol>
<xf:contentcheck>
<xf:macro template="forum_list" name="node_list"
arg-children="{$children}"
arg-extras="{$childExtras}"
arg-depth="{{ $depth + 1 }}" />
</xf:contentcheck>
</ol>
</xf:if>
</xf:macro>
<xf:macro name="sub_nodes_flat" arg-children="!" arg-childExtras="!" arg-depth="3">
<xf:css src="node_list.less" />
<xf:if contentcheck="true">
<div class="node-subNodesFlat subnode-custom">
<span class="control-subnode"><img src="{{ base_url() }}styles/brivium/cerium/extra/sub-node.png" alt="control-subnode"></span>
<ol class="node-subNodeFlatList">
<xf:contentcheck>
<xf:macro template="forum_list" name="node_list"
arg-children="{$children}"
arg-extras="{$childExtras}"
arg-depth="{{ $depth + 1 }}" />
</xf:contentcheck>
</ol>
</div>
</xf:if>
</xf:macro>
<xf:macro name="sub_nodes_menu" arg-children="!" arg-childExtras="!" arg-depth="3">
<xf:css src="node_list.less" />
<xf:if contentcheck="true">
<div class="node-subNodeMenu">
<a class="menuTrigger" data-xf-click="menu" role="button" tabindex="0" aria-expanded="false" aria-haspopup="true">{{ phrase('sub_forums') }}</a>
<div class="menu" data-menu="menu" aria-hidden="true">
<div class="menu-content">
<h4 class="menu-header">{{ phrase('sub_forums') }}</h4>
<ol class="subNodeMenu">
<xf:contentcheck>
<xf:macro template="forum_list" name="node_list"
arg-children="{$children}"
arg-extras="{$childExtras}"
arg-depth="{{ $depth + 1 }}" />
</xf:contentcheck>
</ol>
</div>
</div>
</div>
</xf:if>
</xf:macro>]]></template>
<template title="forum_view" type="public" addon_id="XF" version_id="2001070" version_string="2.0.10"><![CDATA[<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 block-body--editsize">
<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>
<div class="structItemContainer-group js-threadList">
<xf:if is="$threads is not empty">
<xf:foreach loop="$threads" value="$thread">
<xf:macro template="thread_list_macros" name="item" arg-thread="{$thread}" arg-forum="{$forum}" />
</xf:foreach>
<xf:if is="$showDateLimitDisabler">
<div class="structItem structItem--note">
<div class="structItem-cell">
<a href="{{ link('forums', $forum, $filters + {'page': $page, 'no_date_limit': 1}) }}">
{{ phrase('show_older_items') }}
</a>
</div>
</div>
</xf:if>
</xf:if>
</div>
<xf:elseif is="$filters" />
<div class="structItemContainer-group js-threadList">
<div class="structItem js-emptyThreadList">
<div class="structItem-cell">{{ phrase('there_no_threads_matching_your_filters') }}</div>
</div>
</div>
<xf:else />
<div class="structItemContainer-group js-threadList">
<div class="structItem js-emptyThreadList">
<div class="structItem-cell">{{ phrase('there_no_threads_in_this_forum') }}</div>
</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" />]]></template>
<template title="login" type="public" addon_id="XF" version_id="2001070" version_string="2.0.10"><![CDATA[<xf:js src="xf/login_signup.js" min="1" />
<script>
$('#box-login-popup').parent().parent().addClass('box-popup-login');
var html = '<a class="overlay-titleCloser js-overlayClose btn-cancel-login" role="button" aria-label="Close">cancel</a>';
$('#box-login-popup').find('.formSubmitRow-main .formSubmitRow-controls').append(html);
</script>
<xf:title>{{ phrase('log_in') }}</xf:title>
<xf:if contentcheck="true">
<div class="blockMessage blockMessage--error blockMessage--iconic">
<xf:contentcheck>{$error}</xf:contentcheck>
</div>
</xf:if>
<div class="blocks" id="box-login-popup">
<xf:if is="$providers is not empty">
<div class="block">
<div class="block-container">
<div class="block-body">
<div class="login-other">
<ul class="listHeap">
<xf:foreach loop="$providers" value="$provider">
<li>
<xf:button href="{{ link('register/connected-accounts', $provider, {'setup': true}) }}"
class="button--provider button--provider--{$provider.provider_id}">
{$provider.title}
</xf:button>
</li>
</xf:foreach>
</ul>
</div>
</div>
</div>
</div>
</xf:if>
<xf:form action="{{ link('login/login') }}" class="block">
<div class="block-container">
<div class="block-body">
<xf:textboxrow name="login" value="{$login}" autofocus="autofocus" autocomplete="username"
placeholder="{{ phrase('your_name_or_email_address') }}"
label="{{ phrase('your_name_or_email_address') }}" />
<xf:textboxrow name="password" type="password" autocomplete="current-password"
placeholder="{{ phrase('password') }}"
label="{{ phrase('password') }}">
<xf:html>
<a href="{{ link('lost-password') }}" class="lost--pass" data-xf-click="overlay"><span class="hidden-in-overlay">{{ phrase('forgot_your_password') }}</span><img class="show-in-overlay" src="{{ base_url() }}styles/brivium/cerium/extra/forgot.png"></a>
</xf:html>
</xf:textboxrow>
<xf:if is="$captcha">
<xf:captcharow label="{{ phrase('verification') }}" force="true" />
</xf:if>
<xf:checkboxrow>
<xf:option name="remember" selected="true">{{ phrase('stay_logged_in') }}</xf:option>
</xf:checkboxrow>
<xf:hiddenval name="_xfRedirect">{$redirect}</xf:hiddenval>
</div>
<xf:submitrow icon="login" />
</div>
<xf:if is="$xf.options.registrationSetup.enabled">
<div class="block-outer block-outer--after">
<div class="block-outer-middle">
<xf:button href="{{ link('register') }}">{{ phrase('register_now') }}</xf:button>
</div>
</div>
</xf:if>
</xf:form>
</div>]]></template>
<template title="lost_password" type="public" addon_id="XF" version_id="2000170" version_string="2.0.1"><![CDATA[<script>
$(".lost-pass-form").polymerForm();
$('.box-lost-pass').parent().parent().addClass('box-popup-lostpass');
</script>
<xf:title>{{ phrase('lost_password') }}</xf:title>
<xf:form action="{{ link('lost-password') }}" class="block box-lost-pass" ajax="true">
<div class="block-container">
<div class="block-body">
<xf:inforow>{{ phrase('if_forgotten_your_password_use_form_to_reset') }}</xf:inforow>
<xf:textboxrow name="email" type="email" autofocus="autofocus"
maxlength="{{ max_length($xf.visitor, 'email') }}"
label="{{ phrase('email') }}"
class="lost-pass-form"
placeholder="{{ phrase('email') }}"
explain="{{ phrase('email_address_you_registered_with_is_required_to_reset_your_password') }}" />
<xf:if is="$xf.options.lostPasswordCaptcha">
<xf:captcharow label="{{ phrase('verification') }}" />
</xf:if>
</div>
<xf:submitrow submit="{{ phrase('reset') }}" />
</div>
</xf:form>]]></template>
<template title="member_tooltip.less" type="public" addon_id="XF" version_id="2000270" version_string="2.0.2"><![CDATA[@_memberTooltip-padding: @xf-paddingMedium;
@_memberTooltip-avatarSize: @avatar-s;
.memberTooltip-header
{
display: table;
table-layout: fixed;
width: 100%;
padding: @_memberTooltip-padding;
.xf-memberTooltipHeader();
}
.memberTooltip-avatar
{
display: table-cell;
width: ((@_memberTooltip-padding) * 2 + (@_memberTooltip-avatarSize));
vertical-align: top;
}
.memberTooltip-headerInfo
{
display: table-cell;
vertical-align: top;
}
.memberTooltip-name
{
margin: 0;
margin-top: -.15em;
padding: 0;
font-weight: @xf-fontWeightNormal;
line-height: .8 * (@xf-lineHeightDefault);
.xf-memberTooltipName();
.m-hiddenLinks();
}
.memberTooltip-headerAction
{
float: right;
}
.memberTooltip-banners,
.memberTooltip-blurb
{
margin-top: .25em;
}
.memberTooltip-blurb
{
font-size: @xf-fontSizeSmall;
}
.memberTooltip-stats
{
font-size: @xf-fontSizeSmall;
dl.pairs.pairs--rows > dt
{
font-size: @xf-fontSizeSmaller;
}
}
.memberTooltip-info,
.memberTooltip-actions
{
padding: @_memberTooltip-padding;
.button{
padding: 6px 10px;
text-transform: capitalize;
}
}
.memberTooltip-separator
{
margin: -@xf-borderSize @_memberTooltip-padding 0;
border: none;
border-top: @xf-borderSize solid @xf-borderColorLight;
}]]></template>
<template title="member_view" type="public" addon_id="XF" version_id="2000470" version_string="2.0.4"><![CDATA[<xf:title page="{$page}">{$user.username}</xf:title>
<xf:h1 hidden="true" />
<xf:macro template="metadata_macros" name="metadata"
arg-shareUrl="{{ link('canonical:members', $user) }}"
arg-canonicalUrl="{{ link('canonical:members', $user, {'page': $page}) }}"
arg-imageUrl="{$user.getAvatarUrl('o', null, true)}" />
<xf:page option="ldJsonHtml">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Person",
"name": "{$user.username|escape('json')}",
"image": "{$user.getAvatarUrl('o', null, true)|escape('json')}"
}
</script>
</xf:page>
<xf:css src="member.less" />
<div class="block">
<div class="block-container">
<div class="block-body">
<div class="memberHeader">
<div class="memberHeader-main">
<span class="memberHeader-avatar">
<xf:avatar user="{$user}" size="l" href="" update="{{ link('account/avatar', $user) }}" />
</span>
<div class="memberHeader-content memberHeader-content--info">
<xf:if contentcheck="true">
<div class="memberHeader-actionTop hidden">
<div class="buttonGroup">
<xf:contentcheck>
<xf:if is="$user.canBeReported()">
<xf:button href="{{ link('members/report', $user) }}"
class="button--link" overlay="true">
{{ phrase('report') }}
</xf:button>
</xf:if>
<xf:if contentcheck="true">
<div class="buttonGroup-buttonWrapper">
<xf:button class="button--link menuTrigger" data-xf-click="menu" aria-expanded="false" aria-haspopup="true">{{ phrase('moderator_tools') }}</xf:button>
<div class="menu" data-menu="menu" aria-hidden="true">
<div class="menu-content">
<h3 class="menu-header">{{ phrase('moderator_tools') }}</h3>
<xf:contentcheck>
<xf:macro template="member_macros" name="moderator_menu_actions"
arg-user="{$user}"
arg-context="profile" />
</xf:contentcheck>
</div>
</div>
</div>
</xf:if>
</xf:contentcheck>
</div>
</div>
</xf:if>
<h1 class="memberHeader-name"><xf:username user="{$user}" rich="true" href="" /></h1>
<xf:if contentcheck="true">
<div class="memberHeader-banners">
<xf:contentcheck><xf:userbanners user="$user" /></xf:contentcheck>
</div>
</xf:if>
<xf:userblurb user="$user" tag="div" class="memberHeader-blurb" />
<xf:if contentcheck="true">
<dl class="pairs pairs--inline memberHeader-blurb">
<dt>{{ phrase('last_seen') }}</dt>
<dd dir="auto">
<xf:contentcheck><xf:useractivity user="$user" class="pairs--plainLabel" /></xf:contentcheck>
</dd>
</dl>
</xf:if>
</div>
</div>
<div class="memberHeader-content">
<div class="memberHeader-stats">
<div class="pairJustifier">
<xf:macro template="member_macros" name="member_stat_pairs"
arg-user="{$user}"
arg-context="profile" />
</div>
</div>
<xf:if contentcheck="true">
<hr class="memberHeader-separator" />
<div class="memberHeader-buttons">
<xf:contentcheck>
<xf:macro template="member_macros" name="member_action_buttons"
arg-user="{$user}"
arg-context="profile" />
</xf:contentcheck>
</div>
</xf:if>
</div>
</div>
</div>
<div class="block-update-status">
<xf:if is="$user.canPostOnProfile()">
<xf:set var="$firstProfilePost" value="{$profilePosts|first}" />
<xf:macro template="profile_post_macros" name="submit"
arg-user="{$user}"
arg-lastDate="{{ $firstProfilePost.post_date ?: 0 }}"
arg-containerSelector=".js-replyNewMessageContainer" />
</xf:if>
</div>
<div class="TabsMemberSelect">
<span class="js-tabMemberSelect"><span class="js-TextTabs">{{ phrase('profile_posts') }}</span><i class="fa fa-caret-down" aria-hidden="true"></i></span>
<h2 class="block-tabHeader block-tabHeader--memberTabs tabs hScroller"
data-xf-init="tabs h-scroller"
data-panes=".js-memberTabPanes"
data-state="replace"
role="tablist">
<span class="hScroller-scroll">
<!--[XF:tabs:start]-->
<xf:if is="$user.canViewPostsOnProfile()">
<a href="{{ link('members', $user) }}"
class="tabs-tab is-active"
role="tab"
aria-controls="profile-posts">{{ phrase('profile_posts') }}</a>
</xf:if>
<xf:if is="$user.canViewLatestActivity()">
<a href="{{ link('members/latest-activity', $user) }}"
rel="nofollow"
class="tabs-tab"
id="latest-activity"
role="tab">{{ phrase('latest_activity') }}</a>
</xf:if>
<a href="{{ link('members/recent-content', $user) }}"
rel="nofollow"
class="tabs-tab"
id="recent-content"
role="tab">{{ phrase('postings') }}</a>
<!--[XF:tabs:after_recent_content]-->
<a href="{{ link('members/about', $user) }}"
class="tabs-tab"
id="about"
role="tab">{{ phrase('about') }}</a>
<xf:if is="$xf.visitor.canViewWarnings() && $user.warning_count">
<a href="{{ link('members/warnings', $user) }}"
class="tabs-tab"
id="warnings"
role="tab">{{ phrase('warnings') }}</a>
</xf:if>
<!--[XF:tabs:end]-->
</span>
</h2>
<xf:if contentcheck="true">
<div class="memberHeader-actionTop">
<div class="buttonGroup">
<xf:contentcheck>
<xf:if is="$user.canBeReported()">
<xf:button href="{{ link('members/report', $user) }}"
class="button--link" overlay="true">
{{ phrase('report') }}
</xf:button>
</xf:if>
<xf:if contentcheck="true">
<div class="buttonGroup-buttonWrapper">
<xf:button class="button--link menuTrigger" data-xf-click="menu" aria-expanded="false" aria-haspopup="true">•••</xf:button>
<div class="menu" data-menu="menu" aria-hidden="true">
<div class="menu-content">
<h3 class="menu-header">{{ phrase('moderator_tools') }}</h3>
<xf:contentcheck>
<xf:macro template="member_macros" name="moderator_menu_actions"
arg-user="{$user}"
arg-context="profile" />
</xf:contentcheck>
</div>
</div>
</div>
</xf:if>
</xf:contentcheck>
</div>
</div>
</xf:if>
</div>
</div>
</div>
<xf:ad position="member_view_below_tabs" arg-user="{$user}" />
<ul class="tabPanes js-memberTabPanes">
<!--[XF:tab_panes:start]-->
<xf:if is="$user.canViewPostsOnProfile()">
<li class="is-active" role="tabpanel" id="profile-posts">
<xf:js src="xf/inline_mod.js" min="1" />
<div class="block block--messages" data-xf-init="inline-mod" data-type="profile_post" data-href="{{ link('inline-mod') }}">
<div class="block-container">
<div class="block-body js-replyNewMessageContainer">
<xf:if is="$profilePosts is not empty">
<xf:foreach loop="$profilePosts" value="$profilePost">
<xf:macro template="profile_post_macros"
name="{{ $profilePost.message_state == 'deleted' ? 'profile_post_deleted' : 'profile_post' }}"
arg-profilePost="{$profilePost}" />
</xf:foreach>
<xf:else />
<div class="block-row js-replyNoMessages">{{ phrase('there_no_messages_on_xs_profile_yet', {'name': $user.username}) }}</div>
</xf:if>
</div>
</div>
<div class="block-outer block-outer--after">
<xf:pagenav
page="{$page}" perpage="{$perPage}" total="{$total}"
link="members" data="{$user}"
wrapperclass="block-outer-main" />
<div class="block-outer-opposite">
<xf:showignored />
<xf:if is="$canInlineMod">
<xf:macro template="inline_mod_macros" name="button" />
</xf:if>
</div>
</div>
</div>
</li>
</xf:if>
<xf:if is="$user.canViewLatestActivity()">
<li data-href="{{ link('members/latest-activity', $user) }}" role="tabpanel" aria-labelledby="latest-activity">
<div class="blockMessage">{{ phrase('loading...') }}</div>
</li>
</xf:if>
<li data-href="{{ link('members/recent-content', $user) }}" role="tabpanel" aria-labelledby="recent-content">
<div class="blockMessage">{{ phrase('loading...') }}</div>
</li>
<!--[XF:tab_panes:after_recent_content]-->
<li data-href="{{ link('members/about', $user) }}" role="tabpanel" aria-labelledby="about">
<div class="blockMessage">{{ phrase('loading...') }}</div>
</li>
<xf:if is="$xf.visitor.canViewWarnings() && $user.warning_count">
<li data-href="{{ link('members/warnings', $user) }}" role="tabpanel" aria-labelledby="warnings">
<div class="blockMessage">{{ phrase('loading...') }}</div>
</li>
</xf:if>
<!--[XF:tab_panes:end]-->
</ul>
<xf:widgetpos id="member_view_sidebar" context-user="{$user}" position="sidebar" />]]></template>
<template title="message.less" type="public" addon_id="XF" version_id="2000470" version_string="2.0.4"><![CDATA[@_message-actionColumnWidth: 40px;
@_messageSimple-userColumnWidth: 70px;
//block--messages
body[data-template="thread_view"]{
.p-body{
.p-body-inner{
.p-body-header{
display: none;
}
}
}
.block--messages {
.message {
.message-inner {
.message-cell--user{
}
.message-cell--main{
&:before{
content: '';
position: absolute;
background-image: url("{{ base_url() }}styles/brivium/cerium/extra/mess-arr.png");
width: 27px;
height: 31px;
left: -27px;
top: -1px;
}
.message-main{
.message-footer{
}
}
}
}
}
}
.js-quickReply{
.fr-box.bbWrapper{
&:before{
content: '';
position: absolute;
background-image: url("{{ base_url() }}styles/brivium/cerium/extra/mess-arr.png");
width: 27px;
height: 31px;
left: -27px;
top: -1px;
}
}
}
}
.js-quickReply{
.fr-box.bbWrapper{
&:before{
content: '';
position: absolute;
background-image: url("{{ base_url() }}styles/brivium/cerium/extra/mess-arr.png");
width: 27px;
height: 31px;
left: -27px;
top: -1px;
}
}
}
html:not(.js-page-message_post){
body[data-template="thread_view"]{
.block--messages{
.message{
&:first-child{
.message-cell--user{
display: none;
}
.message-cell--main{
border-radius: 4px !important;
padding: 0 !important;
&:before{
display: none;
}
.message-title-header.js-BrvLoadTitlepost{
display: block;
}
.message-attribution--brv{
padding: 35px 30px;
.message-attribution-infor{
.avatar{
display: initial;
}
}
.item-attribution-opposite{
&.item-attribution-show-only-first{
display: initial;
}
i{
display: initial;
}
}
}
.message-content{
padding: 20px 30px;
}
.message-footer{
padding: 15px 30px !important;
}
}
.item-attribution-opposite{
text-transform: uppercase;
}
}
}
}
}
}
.block--messages{
margin-bottom: 0;
.block-outer{
border-radius: 5px;
overflow: hidden;
}
.message{
border: none !important;
border-radius: 0 !important;
margin: 0 0 30px 0 !important;
background: transparent !important;
width: 100%;
&.is-mod-selected{
background: transparent;
.message-footer{
background: #f3f5f5 !important;
}
}
&:last-child{
border-bottom: none !important;
padding-bottom: 0;
.message-inner{
.message-cell--main{
.message-main{
.message-footer{
border-bottom: none;
}
}
}
}
}
.message-inner{
.message-cell--user{
border: none;
border-radius: 0;
padding: 0;
.message-userArrow{
display: none;
}
.message-user{
.message-avatar{
margin-bottom: 17px;
.message-avatar-wrapper{
padding: 4px;
position: relative;
z-index: 1;
&:before{
content: '';
background: rgba(255, 255, 255, 0.5);
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: -1;
border-radius: 50%;
}
.avatar{
border-radius: 100%;
}
}
}
.message-userDetails{
.message-name{
font-size: 14px;
}
.userTitle{
font-size: 11px;
font-weight: 700;
padding: 7px 10px;
border: 1px solid @xf-borderColor;
border-radius: 5px;
color: @xf-linkColor;
margin-top: 15px;
}
.message-userBanner{
font-size: 11px;
font-weight: 700;
padding: 7px 10px;
border: 1px solid;
border-radius: 5px;
margin-top: 10px;
&.userBanner--staff{
background: transparent;
border-color: @xf-borderColor;
}
}
.message-date{
display: none;
}
}
.message-permalink{
display: none;
}
.message-userExtras{
margin-top: 20px;
dl{
font-size: 12px;
font-weight: 400;
margin-bottom: 5px;
&:last-child{
margin-bottom: 0;
}
dt,dd{
color: @xf-paletteAccent1;
}
}
}
}
}
.message-cell--main{
padding: 0;
background: @xf-BrvColor1;
position: relative;
border-radius: 0 4px 4px 4px;
box-shadow: 0 1px 3px rgba(0,0,0,0.1);
.message-main{
.message-content{
padding: 0 30px;
.message-body{
.bbCodeSpoiler{
.bbCodeSpoiler-button{
background: transparent;
border: 1px solid #2495f5;
color: @xf-linkColor;
border-radius: 4px;
&:hover{
background: #2495f5 !important;
}
}
}
.bbCodeBlock{
border-radius: 5px;
overflow: hidden;
position: relative;
&.bbCodeBlock--quote{
border-color: #2495f5;
.bbCodeBlock-title{
display: none;
}
}
&.bbCodeBlock--code{
padding-bottom: 30px;
.bbCodeBlock-title{
border: none;
position: absolute;
bottom: 0;
right: 0;
}
}
.bbCodeBlock-title{
border: none;
}
.bbCodeBlock-content{
.bbCodeBlock-expandLink{
top: 100px;
a{
color: @xf-paletteAccent2;
text-align: center;
padding-left: 10px;
text-transform: capitalize;
font-weight: 400;
}
}
}
&.bbCodeBlock--code{
.bbCodeBlock-title{
text-transform: uppercase;
}
.bbCodeBlock-content{
padding: 15px 10px;
}
}
&.bbCodeBlock--quote{
.bbCodeBlock-title{
color: @xf-linkColor;
a.bbCodeBlock-sourceJump{
color: @xf-linkColor;
}
.bbCodeBlock-sourceJump{
&:after{
display: none;
}
}
}
.bbCodeBlock-content{
margin: 15px 0 0;
padding-bottom: 15px;
}
}
}
}
.message-attachments{
border-radius: 0px;
border-top: none;
border-bottom: none;
border-right: none;
.block-textHeader{
padding: 6px 10px;
font-size: 14px;
color: #232332;
text-transform: uppercase;
font-weight: 400;
}
.attachmentList{
padding: 6px 10px 10px;
.attachment{
position: relative;
width: 200px;
height: 60px;
padding-right: 10px;
padding-left: 55px;
padding-top: 3px;
padding-bottom: 5px;
margin-right: 10px;
border: none;
background-color: transparent;
.attachment-icon{
position: absolute;
left: -5px;
top: 50%;
width: 50px;
height: 60px;
transform: translateY(-50%);
&.attachment-icon--img{
border-radius: 3px;
background-color: transparent;
a{
img{
width: 40px;
height: 40px;
}
}
}
a{
i{
&:before{
content: '';
background-image: url("{{ base_url() }}styles/brivium/cerium/extra/cloud.png");
width: 50px;
height: 60px;
background-repeat: no-repeat;
background-position: center;
}
}
}
}
.attachment-name{
margin-top: 8px;
a{
font-size: 13px;
color: @xf-paletteAccent2;
&:hover{
color: @xf-paletteColor3;
}
}
}
.attachment-details{
font-size: 13px;
color: @xf-paletteAccent1;
}
}
}
}
}
.message-footer{
padding: 15px 30px;
margin-top: 10px;
position: relative;
border-top: 1px solid @xf-borderColor;
.message-actionBar{
.actionBar-set--external{
margin: 0;
float: left;
.actionBar-action{
padding: 0;
border: none;
border-radius: 0;
font-size: 14px;
margin-right: 30px;
&.actionBar-action.actionBar-action--mq{
&.is-selected{
background: transparent !important;
color: @xf-paletteColor3;
}
}
}
}
.actionBar-set--internal{
margin: 0;
float: right;
.actionBar-action{
padding: 0;
border: none;
border-radius: 0;
margin-left: 0;
font-size: 14px;
margin-right: 30px;
}
.message-attribution-main{
float: none;
font-size: 14px;
}
.message-attribution-opposite{
.actionBar-action{
margin-right: 0;
margin-left: 30px;
}
a{
font-size: 14px;
&:hover{
color: @xf-paletteColor3 !important;
}
}
}
}
}
.likesBar{
background: transparent;
border: 1px solid @xf-borderColor;
border-radius: 5px;
}
}
}
}
}
}
}
.message-title-header{
&.js-BrvLoadTitlepost{
display: none;
.mess-title-header{
font-size: 20px;
color: @xf-linkColor;
margin: 0;
padding: 0 30px 40px;
border-bottom: 1px solid @xf-borderColor;
display: flex;
align-items: center;
font-weight: 400;
}
}
}
.message-attribution--brv{
display: flex;
align-items: center;
padding: 25px 30px;
border-bottom: none;
.message-attribution-infor{
margin-right: auto;
display: flex;
align-items: center;
.avatar{
width: 40px;
height: 40px;
font-size: 20px;
border-radius: 50%;
margin-right: 10px;
span{
line-height: 40px;
}
}
.message-name{
font-size: 14px;
font-weight: 400;
text-transform: capitalize;
.username{
color: @xf-paletteAccent2;
&:hover{
color: @xf-paletteColor3;
}
}
}
.userTitle{
margin-left: 30px;
padding: 7px 20px;
background: @xf-BrvColor3;
color: @xf-BrvColor1;
border-radius: 20px;
}
.user--infor{
font-size: 14px;
color: @xf-paletteAccent2;
margin-left: 25px;
img{
vertical-align: middle;
margin-right: 5px;
}
}
}
.message-attribution-opposite{
font-size: 14px;
color: @xf-paletteAccent1;
.item-attribution-opposite{
margin-left: 20px;
&.item-attribution-show-only-first{
display: none;
}
img{
vertical-align: middle;
}
i{
font-size: 17px;
display: none;
}
.item-text{
margin-left: 5px;
}
}
}
}
.message--user__avatar{
display: inline-block;
padding: 4px;
position: relative;
z-index: 2;
&:before{
content: '';
background: rgba(255,255,255,.5);
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: -1;
border-radius: 50%;
}
.avatar{
border-radius: 50%;
}
}
.user--info--menu{
box-shadow: 0 2px 50px rgba(0,0,0,0.15) !important;
.message-userDetails .message-name,
.message-userDetails .message-date,
.message-permalink,
.message-avatar{
display: none;
}
.menu-content{
padding: 15px !important;
}
.message-userDetails{
.userBanner,
.userTitle{
font-size: 12px;
padding: 7px 10px;
margin-bottom: 5px;
margin-top: 0;
border-radius: 3px;
border: none;
}
.userTitle{
background: @xf-BrvColor3;
color: @xf-BrvColor1;
}
}
.message-userExtras{
font-size: 14px;
margin-top: 10px;
dl{
color: @xf-paletteAccent2;
+dl{
margin-top: 5px;
}
dt,dd{
color: inherit;
}
}
}
}
.content-more-option{
padding: 10px 0;
.menu-linkRow{
font-size: 14px;
font-weight: 500;
&:hover{
color: @xf-BrvColor1;
border: none;
}
}
}
//quick reply
#profile-posts{
form{
.block-container{
padding: 0;
}
}
}
form{
.block-container{
border-left: none;
border-right: none;
border-radius: 0;
.message--quickReply{
width: 100%;
.message-inner{
background: transparent;
.message-cell--user{
border: none;
padding: 0;
.message-user{
.message-avatar{
.message-avatar-wrapper{
float: left;
border-radius: 3px;
position: relative;
padding: 4px;
z-index: 1;
margin-top: 10px;
&:before{
content: '';
position: absolute;
width: 100%;
height: 100%;
left: 0;
top: 0;
background: rgba(255,255,255,.5);
border-radius: 50%;
z-index: -1;
}
.avatar{
border-radius: 100%;
}
}
}
.message-userArrow{
display: none;
}
}
}
.message-cell--main{
padding-left: 0;
padding-right: 0;
.message-editorWrapper{
.bbWrapper{
position: relative;
background: @xf-BrvColor1;
.fr-toolbar{
.fr-separator{
display: none;
}
.fr-command.fr-btn{
&:hover{
background: transparent;
}
i{
font-size: 14px;
width: 14px;
}
}
}
.fr-wrapper{
border-right-color: transparent;
border-left-color: transparent;
border-bottom-color: transparent;
border-radius: 0 0 3px 3px;
}
}
.formRow--noGutter{
padding: 0 10px;
}
}
.formButtonGroup{
text-align: right;
display: inherit;
margin-top: 20px;
.formButtonGroup-primary{
margin: 0;
display: inline-block;
float: right;
margin-left: 5px;
button{
border: none;
&.button--primary{
float: right;
margin-left: 5px;
}
span{
&:before{
display: none;
}
}
}
}
.formButtonGroup-extra{
margin: 0;
display: inline-block;
}
}
textarea{
background: #ebeef1;
}
input{
background: #ebeef1;
}
}
}
}
}
}
.fr-box{
border-radius: 5px;
.fr-toolbar{
background: transparent;
padding: 10px 0;
margin: 0 20px;
.fr-command.fr-btn{
color: @xf-linkColor;
&:hover{
color: @xf-paletteColor3;
}
}
}
.fr-wrapper {
.fr-element{
min-height: 120px !important;
padding: 10px 20px;
}
}
}
.blockMessage.blockMessage--none{
padding: 4px 15px;
border-radius: 5px;
border: 1px solid @xf-borderColor;
}
//end
.message
{
+ .message,
&.message--bordered
{
border-top: @xf-borderSize solid @xf-borderColor;
}
}
.message,
.block--messages .message
{
&.is-mod-selected
{
background: @xf-inlineModHighlightColor;
.message-userArrow:after
{
border-right-color: @xf-inlineModHighlightColor;
}
}
}
.message-inner
{
display: flex;
.has-no-flexbox &
{
display: table;
table-layout: fixed;
width: 100%;
}
}
.message-cell
{
display: block;
vertical-align: top;
padding: @xf-messagePadding;
.has-no-flexbox &
{
display: table-cell;
}
.message--quickReply &
{
//padding-bottom: 35px; // for the submit row
> .formRow:last-child
{
> dd
{
padding-bottom: 0;
}
}
}
&.message-cell--closer
{
padding: @xf-messagePaddingSmall;
&.message-cell--main
{
padding-left: ((@xf-messagePaddingSmall) * 1.5);
}
&.message-cell--user
{
.message--simple &
{
.m-fixedWidthFlex(@_messageSimple-userColumnWidth + 2 * (@xf-messagePaddingSmall));
}
}
&.message-cell--action
{
.m-fixedWidthFlex((@_message-actionColumnWidth) + 2 * (@xf-messagePaddingSmall));
}
}
&.message-cell--user,
&.message-cell--action
{
position: relative;
.xf-messageUserBlock(no-border);
border-right: @xf-messageUserBlock--border-width solid @xf-messageUserBlock--border-color;
min-width: 0;
}
&.message-cell--user
{
.m-fixedWidthFlex((@xf-messageUserBlockWidth) + 2 * (@xf-messagePadding) - 5);
.message--simple &
{
.m-fixedWidthFlex(@_messageSimple-userColumnWidth + 2 * @xf-messagePaddingSmall);
}
}
&.message-cell--action
{
.m-fixedWidthFlex((@_message-actionColumnWidth) + 2 * (@xf-messagePadding));
}
&.message-cell--main
{
padding-left: (@xf-messagePadding * 1.5);
flex: 1 1 auto;
width: 100%;
min-width: 0;
&.is-editing
{
padding: 0;
}
// should really only happen when editing
.block
{
margin: 0;
}
.block-container
{
margin: 0;
border: none;
}
}
&.message-cell--alert
{
font-size: @xf-fontSizeSmall;
flex: 1 1 auto;
width: 100%;
min-width: 0;
.xf-contentAccentBase();
a
{
.xf-contentAccentLink();
}
}
}
.message-main
{
display: flex;
flex-direction: column;
}
.message-content
{
flex: 1 1 auto;
// IE11 flex bug
min-height: 1px;
}
.message-footer
{
margin-top: auto;
}
@media (max-width: @xf-messageSingleColumnWidth)
{
.message:not(.message--forceColumns)
{
.message-inner
{
display: block;
}
.message-cell
{
display: block;
.m-clearFix();
&.message-cell--user
{
width: auto;
border-right: none;
border-bottom: @xf-messageUserBlock--border-width solid @xf-messageUserBlock--border-color;
}
&.message-cell--main
{
padding-left: @xf-messagePadding;
}
}
}
.message--simple:not(.message--forceColumns),
.message--quickReply:not(.message--forceColumns)
{
.message-cell.message-cell--user
{
display: none;
}
}
}
// ######################## USER COLUMN #########################
.message-userArrow
{
display: none;
position: absolute;
top: (@xf-messagePadding) * 2;
right: -1px;
.m-triangleLeft(xf-default(@xf-messageUserBlock--border-color, transparent), @xf-messagePadding);
&:after
{
position: absolute;
top: -(@xf-messagePadding - 1px);
right: -@xf-messagePadding;
content: "";
.m-triangleLeft(@xf-contentBg, @xf-messagePadding - 1px);
}
}
.message-avatar
{
text-align: center;
margin-bottom: 3px;
.avatar
{
vertical-align: bottom;
}
}
.message-avatar-wrapper
{
position: relative;
display: inline-block;
vertical-align: bottom;
.message-avatar-online
{
position: absolute;
top: -1px;
left: -1px;
border: 7px solid transparent;
border-left-color: rgb(127, 185, 0);
border-top-color: rgb(127, 185, 0);
border-radius: (@xf-avatarBorderRadius + 1) max(0px, @xf-avatarBorderRadius - 1px) 0 max(0px, @xf-avatarBorderRadius - 1);
}
}
.message-name
{
font-weight: @xf-fontWeightHeavy;
font-size: inherit;
text-align: center;
margin: 0;
}
.message-userTitle
{
font-size: @xf-fontSizeSmaller;
font-weight: normal;
text-align: center;
margin: 0;
}
.message-userBanner.userBanner
{
display: block;
margin-top: 3px;
}
.message-userExtras
{
margin-top: 3px;
font-size: @xf-fontSizeSmaller;
}
.message--deleted
{
.message-userDetails
{
display: none;
}
.message-avatar .avatar
{
.m-avatarSize(@avatar-s);
}
}
@media (max-width: @xf-messageSingleColumnWidth)
{
.message:not(.message--forceColumns)
{
.message-userArrow
{
top: auto;
right: auto;
bottom: -1px;
left: ((@avatar-s) / 2);
border: none;
.m-triangleUp(xf-default(@xf-messageUserBlock--border-color, transparent), @xf-messagePadding);
&:after
{
top: auto;
right: auto;
left: -(@xf-messagePadding - 1px);
bottom: -@xf-messagePadding;
border: none;
.m-triangleUp(@xf-contentBg, @xf-messagePadding - 1px);
}
}
&.is-mod-selected
{
.message-userArrow:after
{
border-color: transparent;
border-bottom-color: @xf-inlineModHighlightColor;
}
}
.message-user
{
display: flex;
.has-no-flexbox &
{
display: table;
width: 100%;
}
}
.message-avatar
{
margin-bottom: 0;
.has-no-flexbox &
{
display: table-cell;
width: 1%;
}
.avatar
{
.m-avatarSize(@avatar-s);
}
}
.message-userDetails
{
flex: 1;
min-width: 0;
padding-left: @xf-messagePadding;
.has-no-flexbox &
{
display: table-cell;
}
}
.message-name
{
text-align: left;
}
.message-userTitle,
.message-userBanner.userBanner
{
display: inline-block;
text-align: left;
margin: 0;
}
.message-userExtras
{
display: none;
}
.message--deleted
{
.message-userDetails
{
display: block;
}
}
}
}
// ####################### MAIN COLUMN ####################
.message-content
{
position: relative;
.js-selectToQuoteEnd
{
height: 0;
font-size: 0;
overflow: hidden;
}
.message--multiQuoteList &
{
min-height: 80px;
max-height: 120px;
overflow: hidden;
.message-body
{
pointer-events: none;
}
}
}
.message-attribution
{
color: @xf-textColorMuted;
font-size: @xf-fontSizeSmaller;
.m-clearFix();
&.message-attribution--plain
{
border-bottom: none;
font-size: inherit;
padding-bottom: 0;
}
}
.message-attribution-main { float: left; }
.message-attribution-opposite { float: right; }
.message-attribution-source
{
font-size: @xf-fontSizeSmaller;
margin-bottom: @xf-paddingSmall;
}
.message-attribution-user
{
font-weight: @xf-fontWeightHeavy;
.avatar
{
display: none;
}
.attribution
{
display: inline;
font-size: inherit;
font-weight: inherit;
margin: 0;
}
}
.message-newIndicator
{
.xf-messageNewIndicator();
}
.message-minorHighlight
{
font-size: @xf-fontSizeSmall;
color: @xf-textColorFeature;
}
.message-fields
{
margin: @xf-messagePadding 0;
}
.message-body
{
margin: @xf-messagePadding 0;
font-family: @xf-fontFamilyBody;
.message--simple &
{
margin-top: @xf-messagePaddingSmall;
margin-bottom: @xf-messagePaddingSmall;
}
&:last-child
{
margin-bottom: 0;
}
}
.message-attachments
{
margin: .5em 0;
}
.message-attachments-list
{
.m-listPlain();
}
.message-lastEdit
{
margin-top: .5em;
color: @xf-textColorMuted;
font-size: @xf-fontSizeSmallest;
text-align: right;
}
.message-signature
{
margin-top: @xf-messagePadding;
.xf-messageSignature();
}
.message-actionBar .actionBar-set
{
margin-top: @xf-messagePadding;
font-size: @xf-fontSizeSmall;
.message--simple &
{
margin-top: @xf-messagePaddingSmall;
}
}
.message .likesBar
{
margin-top: @xf-messagePadding;
padding: @xf-messagePaddingSmall;
}
.message-historyTarget
{
margin-top: @xf-messagePadding;
}
.message-gradient
{
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 60px;
.m-gradient(fade(@xf-contentBg, 0%), @xf-contentBg, @xf-contentBg, 0%, 90%);
}
.message-responses
{
margin-top: @xf-messagePaddingSmall;
font-size: @xf-fontSizeSmall;
}
.message-responseRow
{
margin-top: -@xf-minorBlockContent--border-width;
.xf-minorBlockContent();
padding: @xf-messagePaddingSmall;
// note that border radiuses are very difficult to do here due to a lot of dynamic showing/hiding
&.message-responseRow--likes
{
.m-transitionFadeDown();
}
}
@media (max-width: @xf-messageSingleColumnWidth)
{
.message:not(.message--forceColumns)
{
.message-attribution-user .avatar
{
display: inline-block;
.m-avatarSize((@xf-fontSizeNormal) * (@xf-lineHeightDefault));
}
.message-content
{
min-height: 0;
}
}
}
@media (max-width: @xf-responsiveNarrow)
{
.message-signature
{
display: none;
}
}
// MESSAGE MENU
.message-menuGroup
{
display: inline-block;
}
.message-menuTrigger
{
display: inline-block;
&:after
{
.m-faBase();
.m-faContent(@fa-var-caret-down, 1em);
//font-size: 120%;
text-align: right;
}
&:hover:after
{
color: black;
}
}
.message-menu-section
{
&--editDelete
{
.menu-linkRow
{
font-weight: @xf-fontWeightHeavy;
font-size: @xf-fontSizeNormal;
}
}
}
.message-menu-link
{
&--delete i:after
{
.m-faContent(@fa-var-trash-o);
}
&--edit i:after
{
.m-faContent(@fa-var-edit);
}
&--report i:after
{
.m-faContent(@fa-var-frown-o);
}
&--warn i:after
{
.m-faContent(@fa-var-warning);
}
&--spam i:after
{
.m-faContent(@fa-var-ban);
}
&--ip i:after
{
.m-faContent(@fa-var-sitemap);
}
&--history i:after
{
.m-faContent(@fa-var-history);
}
&--follow i:after
{
.m-faContent(@fa-var-user-plus);
}
&--ignore i:after
{
.m-faContent(@fa-var-user-times);
}
&--share i:after
{
.m-faContent(@fa-var-share-alt);
}
}
// ############################# COMMENTS ###############
.comment
{
}
.comment-inner
{
display: table;
table-layout: fixed;
width: 100%;
}
.comment-avatar
{
display: table-cell;
width: 24px;
vertical-align: top;
.avatar,
img
{
vertical-align: bottom;
}
}
.comment-main
{
display: table-cell;
padding-left: @xf-messagePadding;
vertical-align: top;
}
.comment-contentWrapper
{
margin-bottom: @xf-messagePaddingSmall;
}
.comment-user
{
font-weight: @xf-fontWeightHeavy;
}
.comment-body
{
display: inline;
}
.comment-input
{
display: block;
height: 2.34em;
margin-bottom: @xf-messagePaddingSmall;
}
.comment-actionBar .actionBar-set
{
margin-top: @xf-messagePaddingSmall;
color: @xf-textColorMuted;
}
.comment-likes
{
.m-transitionFadeDown();
margin-top: @xf-messagePaddingSmall;
font-size: @xf-fontSizeSmaller;
}
// ################################## MESSAGE QUICK REPLY ADDITIONS #############
.formSubmitRow.formSubmitRow--messageQr
{
.formSubmitRow-controls
{
text-align: center;
padding-left: 0;
padding-right: 0;
margin-left: @xf-messagePadding;
margin-right: @xf-messagePadding;
@media (max-width: @xf-formResponsive)
{
text-align: right;
}
}
}
// ################################## MESSAGE NOTICES #############################
.messageNotice
{
margin: @xf-messagePaddingSmall 0;
padding: @xf-messagePaddingSmall @xf-messagePadding;
.xf-contentAccentBase();
font-size: @xf-fontSizeSmaller;
border-left: @xf-borderSizeMinorFeature solid @xf-borderColorAttention;
a,
a:hover
{
.xf-contentAccentLink();
}
&:first-child
{
margin-top: 0;
}
&:before
{
display: inline-block;
.m-faBase();
padding-right: .2em;
font-size: 125%;
color: @xf-textColorAttention;
}
&.messageNotice--deleted:before { .m-faContent(@fa-var-trash, .79em); }
&.messageNotice--moderated:before { .m-faContent(@fa-var-shield, .72em); }
&.messageNotice--warning:before { .m-faContent(@fa-var-warning, 1em); }
&.messageNotice--ignored:before { .m-faContent(@fa-var-microphone-slash, .79em); }
}
// ##################### MESSAGE VARIANTS/RESPONSIVE ##################
@media (min-width: @xf-responsiveEdgeSpacerRemoval)
{
.block:not(.block--messages)
{
@{block-noStripSel} > .block-body:first-child > .message:first-child,
.block-topRadiusContent.message,
.block-topRadiusContent > .message:first-child
{
.message-cell:first-child { border-top-left-radius: @block-borderRadius-inner; }
.message-cell:last-child { border-top-right-radius: @block-borderRadius-inner; }
}
@{block-noStripSel} > .block-body:last-child > .message:last-child,
.block-bottomRadiusContent.message,
.block-bottomRadiusContent > .message:last-child
{
.message-cell:first-child { border-bottom-left-radius: @block-borderRadius-inner; }
.message-cell:last-child { border-bottom-right-radius: @block-borderRadius-inner; }
}
}
}
.block--messages
{
.block-container
{
background: none;
border: none;
}
.message,
.block-row
{
.xf-contentBase();
.xf-blockBorder();
border-radius: @xf-blockBorderRadius;
+ .message,
+ .block-row
{
margin-top: @xf-blockPaddingV;
}
}
.message-cell
{
&:first-child
{
border-radius: 0;
border-top-left-radius: @block-borderRadius-inner;
border-bottom-left-radius: @block-borderRadius-inner;
}
&:last-child
{
border-radius: 0;
border-top-right-radius: @block-borderRadius-inner;
border-bottom-right-radius: @block-borderRadius-inner;
}
&:first-child:last-child
{
border-radius: @block-borderRadius-inner;
}
}
@media (max-width: @xf-messageSingleColumnWidth)
{
.message:not(.message--forceColumns)
{
.message-cell
{
&:first-child
{
border-radius: 0;
border-top-left-radius: @block-borderRadius-inner;
border-top-right-radius: @block-borderRadius-inner;
}
&:last-child
{
border-radius: 0;
border-bottom-left-radius: @block-borderRadius-inner;
border-bottom-right-radius: @block-borderRadius-inner;
}
&:first-child:last-child
{
border-radius: @block-borderRadius-inner;
}
}
}
.message--simple:not(.message--forceColumns) .message-cell--user + .message-cell
{
border-radius: 0;
border-top-left-radius: @block-borderRadius-inner;
border-top-right-radius: @block-borderRadius-inner;
}
}
@media (max-width: @xf-responsiveEdgeSpacerRemoval)
{
.message,
.block-row
{
border-left: none;
border-right: none;
border-radius: 0;
}
.message-cell
{
border-radius: 0;
&:first-child,
&:last-child
{
border-radius: 0;
}
}
.message--simple .message-cell--user + .message-cell
{
border-radius: 0;
}
}
}]]></template>
<template title="message_macros" type="public" addon_id="XF" version_id="2000770" version_string="2.0.7"><![CDATA[<xf:macro name="user_info"
arg-user="!"
arg-fallbackName=""
arg-dateHtml=""
arg-linkHtml="">
<section itemscope itemtype="https://schema.org/Person" class="message-user">
<div class="message-avatar {{ ($xf.options.showMessageOnlineStatus && $user && $user.isOnline()) ? 'message-avatar--online' : '' }}">
<div class="message-avatar-wrapper">
<xf:avatar user="$user" size="m" defaultname="{$fallbackName}" itemprop="image" />
<xf:if is="$xf.options.showMessageOnlineStatus && $user && $user.isOnline()">
<span class="message-avatar-online" data-xf-init="tooltip" title="{{ phrase('online_now')|for_attr }}"></span>
</xf:if>
</div>
</div>
<div class="message-userDetails">
<h4 class="message-name"><xf:username user="$user" rich="true" defaultname="{$fallbackName}" itemprop="name" /></h4>
<xf:usertitle user="$user" tag="h5" class="message-userTitle show-xs" banner="true" itemprop="jobTitle" />
<xf:userbanners user="$user" tag="div" class="message-userBanner" itemprop="jobTitle" />
<xf:if is="{$dateHtml}"><div class="message-date">{$dateHtml}</div></xf:if>
</div>
<xf:if is="{$linkHtml}"><div class="message-permalink">{$linkHtml}</div></xf:if>
<xf:if is="$user.user_id">
<xf:set var="$extras" value="{{ property('messageUserElements') }}" />
<xf:if contentcheck="true">
<div class="message-userExtras">
<xf:contentcheck>
<xf:if is="$extras.register_date">
<dl class="pairs pairs--justified">
<dt>{{ phrase('joined') }}</dt>
<dd>{{ date($user.register_date) }}</dd>
</dl>
</xf:if>
<xf:if is="$extras.message_count">
<dl class="pairs pairs--justified">
<dt>{{ phrase('messages') }}</dt>
<dd>{$user.message_count|number}</dd>
</dl>
</xf:if>
<xf:if is="$extras.like_count">
<dl class="pairs pairs--justified">
<dt>{{ phrase('likes') }}</dt>
<dd>{$user.like_count|number}</dd>
</dl>
</xf:if>
<xf:if is="$extras.trophy_points && $xf.options.enableTrophies">
<dl class="pairs pairs--justified">
<dt>{{ phrase('points') }}</dt>
<dd>{$user.trophy_points|number}</dd>
</dl>
</xf:if>
<xf:if is="$extras.age && $user.Profile.age">
<dl class="pairs pairs--justified">
<dt>{{ phrase('age') }}</dt>
<dd>{$user.Profile.age}</dd>
</dl>
</xf:if>
<xf:if is="$extras.location && $user.Profile.location">
<dl class="pairs pairs--justified">
<dt>{{ phrase('location') }}</dt>
<dd>
<xf:if is="$xf.options.geoLocationUrl">
<a href="{{ link('misc/location-info', '', {'location': $user.Profile.location}) }}" rel="nofollow noreferrer" target="_blank" class="u-concealed">{$user.Profile.location}</a>
<xf:else />
{$user.Profile.location}
</xf:if>
</dd>
</dl>
</xf:if>
<xf:if is="$extras.website && $user.Profile.website">
<dl class="pairs pairs--justified">
<dt>{{ phrase('website') }}</dt>
<dd><a href="{$user.Profile.website}" rel="nofollow" target="_blank">{$user.Profile.website|url('host', phrase('visit_site'))}</a></dd>
</dl>
</xf:if>
<xf:if is="$extras.custom_fields">
<xf:macro template="custom_fields_macros" name="custom_fields_values"
arg-type="users"
arg-group="personal"
arg-set="{$user.Profile.custom_fields}"
arg-additionalFilters="{{ ['message'] }}"
arg-valueClass="pairs pairs--justified" />
<xf:if is="$user.canViewIdentities()">
<xf:macro template="custom_fields_macros" name="custom_fields_view"
arg-type="users"
arg-group="contact"
arg-set="{$user.Profile.custom_fields}"
arg-additionalFilters="{{ ['message'] }}"
arg-valueClass="pairs pairs--justified" />
</xf:if>
</xf:if>
</xf:contentcheck>
</div>
</xf:if>
</xf:if>
<span class="message-userArrow"></span>
</section>
</xf:macro>
<xf:macro name="user_info_only_avatar"
arg-user="!"
arg-fallbackName="">
<div class="message--user__avatar">
<xf:avatar user="$user" size="m" defaultname="{$fallbackName}" itemprop="image" />
</div>
</xf:macro>
<xf:macro name="user_info_header"
arg-user="!"
arg-fallbackName="">
<xf:avatar user="$user" size="s" defaultname="{$fallbackName}" itemprop="image" />
<h4 class="message-name"><xf:username user="$user" rich="true" defaultname="{$fallbackName}" itemprop="name" /></h4>
<xf:usertitle user="$user" tag="h5" class="message-userTitle hidden-xs" banner="true" itemprop="jobTitle" />
</xf:macro>
<xf:macro name="user_info_simple" arg-user="!" arg-fallbackName="">
<header itemscope itemtype="https://schema.org/Person" class="message-user">
<meta itemprop="name" content="{{ $user.username ?: $fallbackName }}">
<div class="message-avatar">
<div class="message-avatar-wrapper">
<xf:avatar user="$user" size="s" defaultname="{$fallbackName}" itemprop="image" />
</div>
</div>
<span class="message-userArrow"></span>
</header>
</xf:macro>
<xf:macro name="attachments" arg-attachments="!" arg-message="!" arg-canView="!">
<xf:if contentcheck="true">
<xf:css src="attachments.less" />
<section class="message-attachments">
<h4 class="block-textHeader">{{ phrase('attachments') }}:</h4>
<ul class="attachmentList">
<xf:contentcheck>
<xf:foreach loop="$attachments" value="$attachment" if="!$message.isAttachmentEmbedded($attachment)">
<xf:macro template="attachment_macros" name="attachment_list_item"
arg-attachment="{$attachment}"
arg-canView="{$canView}" />
</xf:foreach>
</xf:contentcheck>
</ul>
</section>
</xf:if>
</xf:macro>
<xf:macro name="signature" arg-user="!">
<xf:if is="$xf.visitor.Option.content_show_signature AND $user.Profile.signature">
<xf:if contentcheck="true">
<aside class="message-signature">
<xf:contentcheck>
{{ bb_code($user.Profile.signature, 'user:signature', $user) }}
</xf:contentcheck>
</aside>
</xf:if>
</xf:if>
</xf:macro>]]></template>
<template title="node_list.less" type="public" addon_id="XF" version_id="2000370" version_string="2.0.3"><![CDATA[@_nodeList-statsCellBreakpoint: 1000px;
.node
{
& + .node
{
border-top: @xf-borderSize solid @xf-borderColorFaint;
}
}
.node-body
{
display: table;
table-layout: fixed;
width: 100%;
}
.node-icon
{
display: table-cell;
vertical-align: middle;
text-align: center;
width: 46px;
padding: @xf-paddingLarge 0 @xf-paddingLarge @xf-paddingLarge;
i
{
display: block;
line-height: 1.125;
font-size: 32px;
&:before
{
.m-faBase();
color: @xf-nodeIconReadColor;
text-shadow: 1px 1px 0.5px fade(xf-intensify(@xf-nodeIconReadColor, 50%), 50%);
.node--unread &
{
opacity: 1;
color: @xf-nodeIconUnreadColor;
text-shadow: 1px 1px 0.5px fade(xf-intensify(@xf-nodeIconUnreadColor, 50%), 50%);
}
}
.node--forum &:before,
.node--category &:before
{
.m-faContent(@fa-var-comments, 1em);
}
.node--page &:before
{
.m-faContent(@fa-var-file-text, .86em);
}
.node--link &:before
{
.m-faContent(@fa-var-link, .93em);
}
}
}
.node-main
{
display: table-cell;
vertical-align: middle;
padding: @xf-paddingLarge;
}
.node-stats
{
display: table-cell;
width: 170px;
vertical-align: middle;
text-align: center;
padding: @xf-paddingLarge 0;
> dl.pairs.pairs--rows
{
width: 50%;
float: left;
margin: 0;
padding: 0 @xf-paddingMedium/2;
&:first-child
{
padding-left: 0;
}
&:last-child
{
padding-right: 0;
}
}
&.node-stats--single
{
width: 100px;
> dl.pairs.pairs--rows
{
width: 100%;
float: none;
}
}
&.node-stats--triple
{
width: 240px;
> dl.pairs.pairs--rows
{
width: 33.333%;
}
}
@media (max-width: @_nodeList-statsCellBreakpoint)
{
display: none;
}
}
.node-extra
{
display: table-cell;
vertical-align: middle;
width: 202px;
padding: @xf-paddingLarge;
font-size: @xf-fontSizeSmall;
}
.node-extra-row
{
.m-overflowEllipsis();
color: @xf-textColorMuted;
}
.node-extra-placeholder
{
font-style: italic;
}
.node-title
{
margin: 0;
padding: 0;
font-size: @xf-fontSizeLarge;
font-weight: @xf-fontWeightNormal;
.node--unread &
{
font-weight: @xf-fontWeightHeavy;
}
}
.node-description
{
font-size: @xf-fontSizeSmall;
color: @xf-textColorDimmed;
&.node-description--tooltip
{
.has-js.has-no-touchevents &
{
display: none;
}
}
}
.node-meta
{
font-size: @xf-fontSizeSmall;
}
.node-statsMeta
{
display: none;
@media (max-width: @_nodeList-statsCellBreakpoint)
{
display: inline;
}
}
.node-bonus
{
font-size: @xf-fontSizeSmall;
color: @xf-textColorMuted;
text-align: right;
}
.node-subNodesFlat
{
font-size: @xf-fontSizeSmall;
margin-top: .3em;
.node-subNodesLabel
{
display: none;
}
}
.node-subNodeMenu
{
display: inline;
.menuTrigger
{
color: @xf-textColorMuted;
}
}
@media (max-width: @xf-responsiveMedium)
{
.node-main
{
display: block;
width: auto;
}
.node-extra
{
display: block;
width: auto;
// this gives an equivalent of medium padding between main and extra, with main still having large
margin-top: (@xf-paddingMedium - @xf-paddingLarge);
padding-top: 0;
}
.node-extra-row
{
display: inline-block;
vertical-align: top;
max-width: 100%;
}
.node-description,
.node-stats
{
display: none;
}
}
@media (max-width: @xf-responsiveNarrow)
{
.node-subNodeMenu
{
display: none;
}
}
.subNodeLink
{
&:before
{
display: inline-block;
.m-faBase();
width: 1em;
padding-right: .3em;
text-decoration: none;
color: @xf-nodeIconReadColor;
text-shadow: 1px 1px 0 fade(xf-intensify(@xf-nodeIconReadColor, 50%), 50%);
}
&:hover:before
{
text-decoration: none;
}
&.subNodeLink--unread
{
font-weight: @xf-fontWeightHeavy;
&:before
{
color: @xf-nodeIconUnreadColor;
text-shadow: 1px 1px 0 fade(xf-intensify(@xf-nodeIconUnreadColor, 50%), 50%);
}
}
&.subNodeLink--forum:before,
&.subNodeLink--category:before
{
.m-faContent(@fa-var-comments);
}
&.subNodeLink--page:before
{
.m-faContent(@fa-var-file-text);
}
&.subNodeLink--link:before
{
.m-faContent(@fa-var-link);
}
}
.node-subNodeFlatList
{
.m-listPlain();
.m-clearFix();
> li
{
display: inline-block;
margin-right: 1em;
&:last-child
{
margin-right: 0;
}
}
ol,
ul,
.node-subNodes
{
display: none;
}
}
.subNodeMenu
{
.m-listPlain();
ol,
ul
{
.m-listPlain();
}
.subNodeLink
{
display: block;
padding: @xf-blockPaddingV @xf-blockPaddingH;
text-decoration: none;
cursor: pointer;
&:hover
{
text-decoration: none;
background: @xf-contentHighlightBg;
}
}
li li .subNodeLink { padding-left: 1.5em; }
li li li .subNodeLink { padding-left: 3em; }
li li li li .subNodeLink { padding-left: 4.5em; }
li li li li li .subNodeLink { padding-left: 6em; }
li li li li li li .subNodeLink { padding-left: 7.5em; }
}]]></template>
<template title="node_list_category" type="public" addon_id="XF" version_id="2001070" version_string="2.0.10"><![CDATA[<xf:macro name="depth1" arg-node="!" arg-extras="!" arg-children="!" arg-childExtras="!" arg-depth="1">
<div class="block block--category block--category{$node.node_id}">
<span class="u-anchorTarget" id="{$node.Data.getCategoryAnchor()}"></span>
<div class="block-container">
<div class="block-node-categories">
<xf:if is="property('NodeCategoriesImage')">
<a href="{{ link('categories', $node) }}" class="node-image">
<img src="{{ base_url() }}styles/brivium/cerium/extra/df.jpg" alt="image--node--id{$node.node_id}">
</a>
</xf:if>
<h2 class="block-header">
<a href="{{ link('categories', $node) }}">{$node.title}</a>
<xf:if is="{$node.description}"><xf:if is="property('TooltipCategories')"><span class="block-desc show-tooltip">{$node.description|raw}</span><xf:else/><span class="block-desc">{$node.description|raw}</span></xf:if></xf:if>
</h2>
</div>
<div class="block-body block-node-list">
<xf:macro template="forum_list" name="node_list"
arg-children="{$children}"
arg-extras="{$childExtras}"
arg-depth="{{ $depth + 1 }}" />
</div>
</div>
</div>
</xf:macro>
<xf:macro name="depth2" arg-node="!" arg-extras="!" arg-children="!" arg-childExtras="!" arg-depth="1">
<div class="node node--id{$node.node_id} node--depth{$depth} node--category {{ $extras.hasNew ? 'node--unread' : 'node--read' }}">
<div class="node-body">
<div class="node-picture">
<a href="{{ link('categories', $node) }}" class="node-image">
<img src="{{ base_url() }}styles/brivium/cerium/extra/df.jpg" alt="image--node--id{$node.node_id}">
</a>
<xf:set var="$descriptionDisplay" value="{{ property('nodeListDescriptionDisplay') }}" />
<h3 class="node-title js-brvtoolstip">
<a href="{{ link('categories', $node) }}" data-xf-init="{{ $descriptionDisplay == 'tooltip' ? 'element-tooltip' : '' }}" data-shortcut="node-description">{$node.title}</a>
</h3>
<xf:if is="$descriptionDisplay != 'none' && $node.description">
<div class="node-description {{ $descriptionDisplay == 'tooltip' ? 'node-description--tooltip js-nodeDescTooltip' : '' }}">{$node.description|raw}</div>
</xf:if>
<div class="sub--node">
<xf:if is="$depth == 2 AND property('nodeListSubDisplay') == 'flat'">
<xf:macro template="forum_list" name="sub_nodes_flat"
arg-children="{$children}"
arg-childExtras="{$childExtras}"
arg-depth="{{ $depth + 1 }}" />
</xf:if>
</div>
</div>
<div class="node-main js-nodeMain">
<div class="node-infor">
<div class="node-infor-item">
<div class="node-infor-item-content">
<img src="{{ base_url() }}styles/brivium/cerium/extra/n-thread.png">
<span>{$extras.discussion_count|number}</span>
</div>
<div class="node-infor-item-content">
<img src="{{ base_url() }}styles/brivium/cerium/extra/n-mess.png">
<span>{$extras.message_count|number}</span>
</div>
</div>
</div>
</div>
</div>
</div>
</xf:macro>
<xf:macro name="depthN" arg-node="!" arg-extras="!" arg-children="!" arg-childExtras="!" arg-depth="1">
<li>
<a href="{{ link('categories', $node) }}" class="subNodeLink subNodeLink--category {{ $extras.hasNew ? 'subNodeLink--unread' : '' }}">{$node.title}</a>
<xf:macro template="forum_list" name="sub_node_list"
arg-children="{$children}"
arg-childExtras="{$childExtras}"
arg-depth="{{ $depth + 1 }}" />
</li>
</xf:macro>]]></template>
<template title="node_list_forum" type="public" addon_id="XF" version_id="2000470" version_string="2.0.4"><![CDATA[<xf:macro name="depth1" arg-node="!" arg-extras="!" arg-children="!" arg-childExtras="!" arg-depth="1">
<div class="block">
<div class="block-container">
<div class="block-body block-node-list">
<xf:macro name="forum"
arg-node="{$node}"
arg-extras="{$extras}"
arg-children="{$children}"
arg-childExtras="{$childExtras}"
arg-depth="{$depth}" />
</div>
</div>
</div>
</xf:macro>
<xf:macro name="depth2" arg-node="!" arg-extras="!" arg-children="!" arg-childExtras="!" arg-depth="1">
<xf:macro name="forum"
arg-node="{$node}"
arg-extras="{$extras}"
arg-children="{$children}"
arg-childExtras="{$childExtras}"
arg-depth="{$depth}" />
</xf:macro>
<xf:macro name="depthN" arg-node="!" arg-extras="!" arg-children="!" arg-childExtras="!" arg-depth="1">
<li>
<a href="{{ link('forums', $node) }}" class="subNodeLink subNodeLink--forum {{ $extras.hasNew ? 'subNodeLink--unread' : '' }}">{$node.title}</a>
<xf:macro template="forum_list" name="sub_node_list"
arg-children="{$children}"
arg-childExtras="{$childExtras}"
arg-depth="{{ $depth + 1 }}" />
</li>
</xf:macro>
<xf:macro name="forum"
arg-node="!"
arg-extras="!"
arg-children="!"
arg-childExtras="!"
arg-depth="!"
arg-chooseName=""
arg-bonusInfo="">
<div class="node node--id{$node.node_id} node--depth{$depth} node--forum {{ $extras.hasNew ? 'node--unread' : 'node--read' }}">
<div class="node-body">
<div class="node-picture">
<a href="{{ link('forums', $node) }}" class="node-image">
<img src="{{ base_url() }}styles/brivium/cerium/extra/df.jpg" alt="image--node--id{$node.node_id}">
</a>
<xf:set var="$descriptionDisplay" value="{{ property('nodeListDescriptionDisplay') }}" />
<h3 class="node-title js-brvtoolstip">
<a href="{{ link('forums', $node) }}" data-xf-init="{{ $descriptionDisplay == 'tooltip' ? 'element-tooltip' : '' }}" data-shortcut="node-description">{$node.title}</a>
</h3>
<xf:if is="$descriptionDisplay != 'none' && $node.description">
<div class="node-description {{ $descriptionDisplay == 'tooltip' ? 'node-description--tooltip js-nodeDescTooltip' : '' }}">{$node.description|raw}</div>
</xf:if>
<div class="sub--node">
<xf:if is="$depth == 2 AND property('nodeListSubDisplay') == 'flat'">
<xf:macro template="forum_list" name="sub_nodes_flat"
arg-children="{$children}"
arg-childExtras="{$childExtras}"
arg-depth="{{ $depth + 1 }}" />
</xf:if>
</div>
</div>
<div class="node-main js-nodeMain">
<xf:if is="$chooseName">
<xf:checkbox standalone="true">
<xf:option labelclass="u-pullRight" class="js-chooseItem" name="{$chooseName}[]" value="{$node.node_id}" />
</xf:checkbox>
</xf:if>
<div class="node-infor">
<div class="node-infor-item">
<div class="node-infor-item-content">
<img src="{{ base_url() }}styles/brivium/cerium/extra/n-thread.png">
<span>{$extras.discussion_count|number}</span>
</div>
<div class="node-infor-item-content">
<img src="{{ base_url() }}styles/brivium/cerium/extra/n-mess.png">
<span>{$extras.message_count|number}</span>
</div>
</div>
</div>
<xf:if is="$bonusInfo is not empty">
<div class="node-bonus">{$bonusInfo}</div>
</xf:if>
</div>
</div>
</div>
<xf:if is="{$depth} == 1">
<xf:macro template="forum_list" name="node_list"
arg-children="{$children}"
arg-extras="{$childExtras}"
arg-depth="{{ $depth + 1 }}" />
</xf:if>
</xf:macro>]]></template>
<template title="node_list_link_forum" type="public" addon_id="XF" version_id="2000470" version_string="2.0.4"><![CDATA[<xf:macro name="depth1" arg-node="!" arg-extras="!" arg-children="!" arg-childExtras="!" arg-depth="1">
<div class="block">
<div class="block-container">
<div class="block-body block-node-list">
<xf:macro name="link_forum"
arg-node="{$node}"
arg-extras="{$extras}"
arg-children="{$children}"
arg-childExtras="{$childExtras}"
arg-depth="{$depth}" />
</div>
</div>
</div>
</xf:macro>
<xf:macro name="depth2" arg-node="!" arg-extras="!" arg-children="!" arg-childExtras="!" arg-depth="1">
<xf:macro name="link_forum"
arg-node="{$node}"
arg-extras="{$extras}"
arg-children="{$children}"
arg-childExtras="{$childExtras}"
arg-depth="{$depth}" />
</xf:macro>
<xf:macro name="depthN" arg-node="!" arg-extras="!" arg-children="!" arg-childExtras="!" arg-depth="1">
<li>
<a href="{{ link('link-forums', $node) }}" class="subNodeLink subNodeLink--link">{$node.title}</a>
<xf:macro template="forum_list" name="sub_node_list"
arg-children="{$children}"
arg-childExtras="{$childExtras}"
arg-depth="{{ $depth + 1 }}" />
</li>
</xf:macro>
<xf:macro name="link_forum" arg-node="!" arg-extras="!" arg-children="{$children}" arg-childExtras="{$childExtras}" arg-depth="!">
<div class="node node--id{$node.node_id} node--depth{$depth} node--link">
<div class="node-body">
<div class="node-picture">
<a href="{{ link('link-forums', $node) }}" class="node-image">
<img src="{{ base_url() }}styles/brivium/cerium/extra/df.jpg" alt="image--node--id{$node.node_id}">
</a>
<xf:set var="$descriptionDisplay" value="{{ property('nodeListDescriptionDisplay') }}" />
<h3 class="node-title js-brvtoolstip">
<a href="{{ link('link-forums', $node) }}" data-xf-init="{{ $descriptionDisplay == 'tooltip' ? 'element-tooltip' : '' }}" data-shortcut="node-description">{$node.title}</a>
</h3>
<xf:if is="$descriptionDisplay != 'none' && $node.description">
<div class="node-description {{ $descriptionDisplay == 'tooltip' ? 'node-description--tooltip js-nodeDescTooltip' : '' }}">{$node.description|raw}</div>
</xf:if>
</div>
<div class="node-main js-nodeMain">
<xf:set var="$descriptionDisplay" value="{{ property('nodeListDescriptionDisplay') }}" />
<h3 class="node-title">
<a href="{{ link('link-forums', $node) }}" data-xf-init="{{ $descriptionDisplay == 'tooltip' ? 'element-tooltip' : '' }}" data-shortcut="node-description">{$node.title}</a>
</h3>
<xf:if is="$descriptionDisplay != 'none' && $node.description">
<div class="node-description {{ $descriptionDisplay == 'tooltip' ? 'node-description--tooltip js-nodeDescTooltip' : '' }}">{$node.description|raw}</div>
</xf:if>
</div>
<div class="sub--node">
<xf:if is="$depth == 2 AND property('nodeListSubDisplay') == 'menu'">
<div class="node-meta">
<xf:macro template="forum_list" name="sub_nodes_menu"
arg-children="{$children}"
arg-childExtras="{$childExtras}"
arg-depth="{{ $depth + 1 }}" />
</div>
</xf:if>
<xf:if is="$depth == 2 AND property('nodeListSubDisplay') == 'flat'">
<xf:macro template="forum_list" name="sub_nodes_flat"
arg-children="{$children}"
arg-childExtras="{$childExtras}"
arg-depth="{{ $depth + 1 }}" />
</xf:if>
</div>
</div>
</div>
<xf:if is="{$depth} == 1">
<xf:macro template="forum_list" name="node_list"
arg-children="{$children}"
arg-extras="{$childExtras}"
arg-depth="{{ $depth + 1 }}" />
</xf:if>
</xf:macro>]]></template>
<template title="node_list_page" type="public" addon_id="XF" version_id="2000470" version_string="2.0.4"><![CDATA[<xf:macro name="depth1" arg-node="!" arg-extras="!" arg-children="!" arg-childExtras="!" arg-depth="1">
<div class="block">
<div class="block-container">
<div class="block-body block-node-list">
<xf:macro name="page"
arg-node="{$node}"
arg-extras="{$extras}"
arg-children="{$children}"
arg-childExtras="{$childExtras}"
arg-depth="{$depth}" />
</div>
</div>
</div>
</xf:macro>
<xf:macro name="depth2" arg-node="!" arg-extras="!" arg-children="!" arg-childExtras="!" arg-depth="1">
<xf:macro name="page"
arg-node="{$node}"
arg-extras="{$extras}"
arg-children="{$children}"
arg-childExtras="{$childExtras}"
arg-depth="{$depth}" />
</xf:macro>
<xf:macro name="depthN" arg-node="!" arg-extras="!" arg-children="!" arg-childExtras="!" arg-depth="1">
<li>
<a href="{{ link('pages', $node) }}" class="subNodeLink subNodeLink--page">{$node.title}</a>
<xf:macro template="forum_list" name="sub_node_list"
arg-children="{$children}"
arg-childExtras="{$childExtras}"
arg-depth="{{ $depth + 1 }}" />
</li>
</xf:macro>
<xf:macro name="page" arg-node="!" arg-extras="!" arg-children="{$children}" arg-childExtras="{$childExtras}" arg-depth="!">
<div class="node node--id{$node.node_id} node--depth{$depth} node--page">
<div class="node-body">
<div class="node-picture">
<a href="{{ link('pages', $node) }}" class="node-image">
<img src="{{ base_url() }}styles/brivium/cerium/extra/df.jpg" alt="image--node--id{$node.node_id}">
</a>
<h3 class="node-title js-brvtoolstip">
<a href="{{ link('pages', $node) }}" data-xf-init="{{ $descriptionDisplay == 'tooltip' ? 'element-tooltip' : '' }}" data-shortcut="node-description">{$node.title}</a>
</h3>
<xf:if is="$descriptionDisplay != 'none' && $node.description">
<div class="node-description {{ $descriptionDisplay == 'tooltip' ? 'node-description--tooltip js-nodeDescTooltip' : '' }}">{$node.description|raw}</div>
</xf:if>
</div>
<div class="node-main js-nodeMain">
<xf:set var="$descriptionDisplay" value="{{ property('nodeListDescriptionDisplay') }}" />
<h3 class="node-title">
<a href="{{ link('pages', $node) }}" data-xf-init="{{ $descriptionDisplay == 'tooltip' ? 'element-tooltip' : '' }}" data-shortcut="node-description">{$node.title}</a>
</h3>
<xf:if is="$descriptionDisplay != 'none' && $node.description">
<div class="node-description {{ $descriptionDisplay == 'tooltip' ? 'node-description--tooltip js-nodeDescTooltip' : '' }}">{$node.description|raw}</div>
</xf:if>
</div>
<div class="sub--node">
<xf:if is="$depth == 2 AND property('nodeListSubDisplay') == 'menu'">
<div class="node-meta">
<xf:macro template="forum_list" name="sub_nodes_menu"
arg-children="{$children}"
arg-childExtras="{$childExtras}"
arg-depth="{{ $depth + 1 }}" />
</div>
</xf:if>
<xf:if is="$depth == 2 AND property('nodeListSubDisplay') == 'flat'">
<xf:macro template="forum_list" name="sub_nodes_flat"
arg-children="{$children}"
arg-childExtras="{$childExtras}"
arg-depth="{{ $depth + 1 }}" />
</xf:if>
</div>
</div>
</div>
<xf:if is="{$depth} == 1">
<xf:macro template="forum_list" name="node_list"
arg-children="{$children}"
arg-extras="{$childExtras}"
arg-depth="{{ $depth + 1 }}" />
</xf:if>
</xf:macro>]]></template>
<template title="notice_macros" type="public" addon_id="XF" version_id="2000670" version_string="2.0.6"><![CDATA[<xf:macro name="notice_list" arg-type="!" arg-notices="!">
<xf:if is="{$notices} is not empty">
<xf:css src="notices.less" />
<xf:js src="xf/notice.js" min="1" />
<xf:if is="$type == 'scrolling'">
<xf:css src="lightslider.less" />
<xf:js prod="xf/carousel-compiled.js" dev="vendor/lightslider/lightslider.min.js, xf/carousel.js" />
</xf:if>
<ul class="notices notices--{$type} {{ count($notices) > 1 ? 'notices--isMulti' : '' }} js-notices"
data-xf-init="notices"
data-type="{$type}"
data-scroll-interval="{{ property('noticeScrollInterval') }}">
<xf:foreach loop="{$notices}" value="$notice">
<xf:macro name="notice" arg-notice="{$notice}" arg-type="{$type}" arg-contentHtml="{$notice.message}" />
</xf:foreach>
</ul>
</xf:if>
</xf:macro>
<xf:macro name="notice" arg-notice="!" arg-type="!" arg-contentHtml="!">
<li class="notice js-notice {{ $notice.display_style == 'custom' ? $notice.css_class : 'notice--' . $notice.display_style }}{{ $notice.display_image ? ' notice--hasImage' : '' }}{{ $notice.visibility ? ' notice--hide' . $notice.visibility : '' }}"
data-notice-id="{$notice.notice_id}"
data-delay-duration="{$notice.delay_duration}"
data-display-duration="{$notice.display_duration}"
data-auto-dismiss="{$notice.auto_dismiss}"
data-visibility="{$notice.visibility}">
<xf:if is="$notice.display_image == 'avatar'">
<div class="notice-image"><xf:avatar user="$xf.visitor" size="s" href="" /></div>
<xf:elseif is="$notice.display_image == 'image'" />
<div class="notice-image"><img src="{$notice.image_url}" alt="" /></div>
</xf:if>
<div class="notice-content">
<xf:if is="$notice.dismissible AND !$notice.custom_dismissible">
<a href="{{ link('account/dismiss-notice', null, {'notice_id': $notice.notice_id}) }}" class="notice-dismiss js-noticeDismiss" data-xf-init="tooltip" title="{{ phrase('dismiss_notice')|for_attr }}"></a>
</xf:if>
<p class="notice-title">
{$notice.title}
</p>
<p class="notice-text">
{$contentHtml|raw}
</p>
</div>
</li>
</xf:macro>]]></template>
<template title="notices.less" type="public" addon_id="XF" version_id="2000670" version_string="2.0.6"><![CDATA[@_notice-darkBg: rgb(20, 20, 20);
@_notice-lightBg: #fefefe;
@_notice-floatingFade: 80%;
@_notice-imageSize: 48px;
@_notice-padding: @xf-paddingLarge;
.notices
{
.m-listPlain();
&.notices--block
{
.notice
{
margin-bottom: ((@xf-elementSpacer) / 2);
}
}
&.notices--floating
{
// assumed to be within u-bottomFixer
margin: 0 20px 0 auto;
width: 300px;
max-width: 100%;
z-index: @zIndex-8;
@media (max-width: 340px)
{
margin-right: 10px;
}
.notice
{
margin-bottom: 20px;
}
}
&.notices--scrolling
{
display: flex;
align-items: stretch;
overflow: hidden;
margin-bottom: ((@xf-elementSpacer) / 2);
&.notices--isMulti
{
margin-bottom: ((@xf-elementSpacer) / 2) + 20px;
}
.notice
{
width: 100%;
flex-grow: 0;
flex-shrink: 0;
border: none;
}
.has-no-flexbox &
{
display: block;
white-space: nowrap;
word-wrap: normal;
.notice
{
display: inline-block;
vertical-align: top;
}
}
}
}
.noticeScrollContainer
{
margin-bottom: ((@xf-elementSpacer) / 2);
.lSSlideWrapper
{
}
.notices.notices--scrolling
{
border: none;
margin-bottom: 0;
}
.notices{
.notice{
.notice-content{
}
}
}
}
.notice
{
.m-clearFix();
position: relative;
&.notice--primary
{
}
&.notice--accent
{
.xf-contentAccentBase();
a:not(.button--notice)
{
.xf-contentAccentLink();
}
}
&.notice--dark
{
color: #fefefe;
border: none;
background: @_notice-darkBg;
a:not(.button--notice)
{
color: rgb(180, 180, 180);
}
}
&.notice--light
{
color: rgb(20, 20, 20);
background: @_notice-lightBg;
a:not(.button--notice)
{
color: rgb(130, 130, 130);
}
}
&.notice--cookie
{
@media (max-width: @xf-responsiveWide)
{
.notice-content
{
padding: @xf-paddingSmall @xf-paddingSmall @xf-paddingLarge;
font-size: @xf-fontSizeSmaller;
.button--notice
{
font-size: @xf-fontSizeSmaller;
padding: @xf-paddingSmall @xf-paddingMedium;
.button-text
{
font-size: @xf-fontSizeSmaller;
}
}
}
}
}
.notices--block &
{
font-size: @xf-fontSizeNormal;
border-radius: @xf-blockBorderRadius;
}
.notices--floating &
{
font-size: @xf-fontSizeSmallest;
border-radius: @xf-borderRadiusMedium;
box-shadow: 1px 1px 3px rgba(0,0,0, 0.25);
&.notice--primary
{
background-color: fade(@xf-contentHighlightBase--background-color, @_notice-floatingFade);
}
&.notice--accent
{
background-color: fade(@xf-contentAccentBase--background-color, @_notice-floatingFade);
}
&.notice--dark
{
background-color: fade(@_notice-darkBg, @_notice-floatingFade);
}
&.notice--light
{
background-color: fade(@_notice-lightBg, @_notice-floatingFade);
}
.has-no-js &
{
display: none;
}
}
&.notice--hasImage
{
.notice-content
{
margin-left: ((@_notice-imageSize) + (@_notice-padding) * 2);
min-height: ((@_notice-imageSize) + (@_notice-padding) * 2);
}
}
@media (max-width: @xf-responsiveWide)
{
&.notice--hidewide:not(.is-vis-processed)
{
display: none;
}
}
@media (max-width: @xf-responsiveMedium)
{
&.notice--hidemedium:not(.is-vis-processed)
{
display: none;
}
}
@media (max-width: @xf-responsiveNarrow)
{
&.notice--hidenarrow:not(.is-vis-processed)
{
display: none;
}
}
}
.notice-image
{
float: left;
padding: @_notice-padding 0 @_notice-padding @_notice-padding;
img
{
max-width: @_notice-imageSize;
max-height: @_notice-imageSize;
}
}
.notice-content
{
padding: @_notice-padding;
a.notice-dismiss
{
&:before
{
.m-faBase();
.m-faContent(@fa-var-remove, .79em);
}
float: right;
color: inherit;
font-size: 16px;
line-height: 1;
height: 1em;
box-sizing: content-box;
padding: 0 0 5px 5px;
opacity: .5;
.m-transition(opacity);
cursor: pointer;
&:hover
{
text-decoration: none;
opacity: 1;
}
.notices--floating &
{
font-size: 14px;
}
}
}]]></template>
<template title="page_nav" type="public" addon_id="XF" version_id="2001070" version_string="2.0.10"><![CDATA[<nav class="pageNavWrapper pageNavWrapper--{{ property('pageNavStyle') }} {$variantClass}">
<xf:set var="$hasSkipStart" value="{{ $startInner > 2 }}" />
<xf:set var="$hasSkipEnd" value="{{ $endInner + 1 < $totalPages }}" />
<div class="pageNav {{ $hasSkipStart ? 'pageNav--skipStart' : '' }} {{ $hasSkipEnd ? 'pageNav--skipEnd' : '' }}">
<xf:if is="$prev">
<a href="{$prev}" class="pageNav-jump pageNav-jump--prev"><i class="fa fa-angle-left" aria-hidden="true"></i></a>
</xf:if>
<ul class="pageNav-main" data-current-page="{{ $current }}">
<xf:macro name="page_link"
arg-page="1"
arg-current="{$current}"
arg-link="{$link}"
arg-data="{$data}"
arg-params="{$params}"
arg-pageParam="{$pageParam}" />
<xf:if is="$hasSkipStart">
<xf:if is="$startInner == 3">
<xf:macro name="page_link"
arg-page="2"
arg-current="{$current}"
arg-link="{$link}"
arg-data="{$data}"
arg-params="{$params}"
arg-pageParam="{$pageParam}"
arg-pageClass="pageNav-page--earlier" />
<xf:else />
<li class="pageNav-page pageNav-page--skip pageNav-page--skipStart">
<a data-xf-init="tooltip" title="{{ phrase('go_to_page')|for_attr }}"
data-xf-click="menu"
role="button" tabindex="0" aria-expanded="false" aria-haspopup="true">{$xf.language.ellipsis}</a>
<xf:macro name="page_jump_menu"
arg-page="{{ $startInner - 1 }}"
arg-totalPages="{$totalPages}"
arg-link="{$link}"
arg-data="{$data}"
arg-params="{$params}"
arg-pageParam="{$pageParam}" />
</li>
</xf:if>
</xf:if>
<xf:foreach loop="$innerPages" value="$page">
<xf:macro name="page_link"
arg-page="{$page}"
arg-current="{$current}"
arg-link="{$link}"
arg-data="{$data}"
arg-params="{$params}"
arg-pageParam="{$pageParam}"
arg-pageClass="{{ $page < $current ? 'pageNav-page--earlier' : ($page > $current ? 'pageNav-page--later' : '' ) }}" />
</xf:foreach>
<xf:if is="$hasSkipEnd">
<xf:if is="$endInner + 2 == $totalPages">
<xf:macro name="page_link"
arg-page="{{ $totalPages - 1 }}"
arg-current="{$current}"
arg-link="{$link}"
arg-data="{$data}"
arg-params="{$params}"
arg-pageParam="{$pageParam}"
arg-pageClass="pageNav-page--later" />
<xf:else />
<li class="pageNav-page pageNav-page--skip pageNav-page--skipEnd">
<a data-xf-init="tooltip" title="{{ phrase('go_to_page')|for_attr }}"
data-xf-click="menu"
role="button" tabindex="0" aria-expanded="false" aria-haspopup="true">{$xf.language.ellipsis}</a>
<xf:macro name="page_jump_menu"
arg-page="{{ $endInner + 1 }}"
arg-totalPages="{$totalPages}"
arg-link="{$link}"
arg-data="{$data}"
arg-params="{$params}"
arg-pageParam="{$pageParam}" />
</li>
</xf:if>
</xf:if>
<xf:macro name="page_link"
arg-page="{$totalPages}"
arg-current="{$current}"
arg-link="{$link}"
arg-data="{$data}"
arg-params="{$params}"
arg-pageParam="{$pageParam}" />
</ul>
<xf:if is="$next">
<a href="{$next}" class="pageNav-jump pageNav-jump--next"><i class="fa fa-angle-right" aria-hidden="true"></i></a>
</xf:if>
</div>
<div class="pageNavSimple" data-current-page="{{ $current }}">
<xf:if is="$current > 1">
<a href="{{ link($link, $data, $params + {($pageParam): 1}) }}"
class="pageNavSimple-el pageNavSimple-el--first"
data-xf-init="tooltip" title="{{ phrase('first')|for_attr }}">
<i aria-hidden="true"></i> <span class="u-srOnly">{{ phrase('first') }}</span>
</a>
<a href="{{ link($link, $data, $params + {($pageParam): $current - 1}) }}" class="pageNavSimple-el pageNavSimple-el--prev">
<i aria-hidden="true"></i> {{ phrase('prev') }}
</a>
</xf:if>
<a class="pageNavSimple-el pageNavSimple-el--current"
data-xf-init="tooltip" title="{{ phrase('go_to_page')|for_attr }}"
data-xf-click="menu" role="button" tabindex="0" aria-expanded="false" aria-haspopup="true">
{{ phrase('x_of_y', {'current': $current, 'total': $totalPages}) }}
</a>
<xf:macro name="page_jump_menu"
arg-page="{$current}"
arg-totalPages="{$totalPages}"
arg-link="{$link}"
arg-data="{$data}"
arg-params="{$params}"
arg-pageParam="{$pageParam}" />
<xf:if is="$current < $totalPages">
<a href="{{ link($link, $data, $params + {($pageParam): $current + 1}) }}" class="pageNavSimple-el pageNavSimple-el--next">
{{ phrase('next') }} <i aria-hidden="true"></i>
</a>
<a href="{{ link($link, $data, $params + {($pageParam): $totalPages}) }}"
class="pageNavSimple-el pageNavSimple-el--last"
data-xf-init="tooltip" title="{{ phrase('last')|for_attr }}">
<i aria-hidden="true"></i> <span class="u-srOnly">{{ phrase('last') }}</span>
</a>
</xf:if>
</div>
</nav>
<xf:macro name="page_link"
arg-page="!"
arg-current="!"
arg-link="!"
arg-data="!"
arg-params="!"
arg-pageParam="!"
arg-pageClass="">
<xf:if is="$page == $current">
<li class="pageNav-page pageNav-page--current {$pageClass}"><a href="{{ link($link, $data, $params + {($pageParam): ($page > 1 ? $page : null)}) }}">{$page}</a></li>
<xf:else />
<li class="pageNav-page {$pageClass}"><a href="{{ link($link, $data, $params + {($pageParam): ($page > 1 ? $page : null)}) }}">{$page}</a></li>
</xf:if>
</xf:macro>
<xf:macro name="page_jump_menu"
arg-page="!"
arg-totalPages="!"
arg-link="!"
arg-data="!"
arg-params="!"
arg-pageParam="!">
<div class="menu menu--pageJump" data-menu="menu" aria-hidden="true">
<div class="menu-content">
<h4 class="menu-header">{{ phrase('go_to_page') }}</h4>
<div class="menu-row" data-xf-init="page-jump" data-page-url="{{ link($link, $data, $params + {($pageParam): '%page%'}) }}">
<div class="inputGroup inputGroup--numbers">
<xf:numberbox class="input input--numberNarrow js-pageJumpPage" value="{$page}" min="1" max="{$totalPages}" data-menu-autofocus="true" />
<span class="inputGroup-text"><xf:button class="js-pageJumpGo">{{ phrase('go') }}</xf:button></span>
</div>
</div>
</div>
</div>
</xf:macro>]]></template>
<template title="post_macros" type="public" addon_id="XF" version_id="2001070" version_string="2.0.10"><![CDATA[<xf:macro name="post" arg-post="!" arg-thread="!">
<xf:css src="message.less" />
<xf:set var="$isIgnored" value="{{ $post.isIgnored() }}" />
<article class="message message--post js-post js-inlineModContainer {{ $isIgnored ? 'is-ignored' : '' }} {{ $post.isUnread() ? ' is-unread' : '' }}"
data-author="{{ $post.User.username ?: $post.username }}"
data-content="post-{$post.post_id}"
id="js-post-{$post.post_id}">
<span class="u-anchorTarget" id="post-{$post.post_id}"></span>
<div class="message-inner">
<div class="message-cell message-cell--user">
<xf:set var="$dateHtml"><a href="{{ link('threads/post', $thread, {'post_id': $post.post_id}) }}" class="u-concealed" rel="nofollow"><xf:date time="{$post.post_date}" /></a></xf:set>
<xf:set var="$linkHtml"><a href="{{ link('threads/post', $thread, {'post_id': $post.post_id}) }}" class="u-concealed" rel="nofollow">#{{ number($post.position + 1) }}</a></xf:set>
<xf:macro template="message_macros" name="user_info_only_avatar" arg-user="{$post.User}" arg-fallbackName="{$post.username}"/>
</div>
<div class="message-cell message-cell--main">
<div class="message-main js-quickEditTarget">
<header class="message-attribution">
<div class="message-attribution--brv">
<div class="message-attribution-infor">
<xf:macro template="message_macros" name="user_info_header" arg-user="{$post.User}" arg-fallbackName="{$post.username}" />
<span class="user--infor" data-xf-click="menu"><img src="{{ base_url() }}styles/brivium/cerium/extra/mess-info.png"><span class="hidden-xs">{{ phrase('Information') }}</span></span>
<div class="menu menu--structural menu--potentialFixed user--info--menu" data-menu="menu">
<div class="menu-content">
<xf:macro template="message_macros" name="user_info" arg-user="{$post.User}" arg-fallbackName="{$post.username}" arg-dateHtml="{$dateHtml}" arg-linkHtml="{$linkHtml}" />
</div>
</div>
</div>
<div class="message-attribution-opposite">
<span class="item-attribution-opposite item-attribution-show-only-first"><img src="{{ base_url() }}styles/brivium/cerium/extra/mess-eye.png"><span class="item-text">{{ $thread.discussion_type == 'redirect' ? '–' : ($thread.view_count > $thread.reply_count ? $thread.view_count|number : number($thread.reply_count+1)) }}</span></span>
<span class="item-attribution-opposite item-attribution-show-only-first"><img src="{{ base_url() }}styles/brivium/cerium/extra/mess-post.png"><span class="item-text">{{ $thread.discussion_type == 'redirect' ? '–' : $thread.reply_count|number }}</span></span>
<span class="item-attribution-opposite"><i class="fa fa-clock-o" aria-hidden="true"></i><span class="item-text"><xf:date time="{$post.post_date}" /></span></span>
</div>
</div>
<div class="message-title-header js-BrvLoadTitlepost"></div>
</header>
<div class="message-content js-messageContent">
<xf:if is="$post.message_state == 'deleted'">
<div class="messageNotice messageNotice--deleted">
<xf:macro template="deletion_macros" name="notice" arg-log="{$post.DeletionLog}" />
</div>
<xf:elseif is="$post.message_state == 'moderated'" />
<div class="messageNotice messageNotice--moderated">
{{ phrase('this_message_is_awaiting_moderator_approval_and_is_invisible_to_normal') }}
</div>
</xf:if>
<xf:if is="$post.warning_message">
<div class="messageNotice messageNotice--warning">
{$post.warning_message}
</div>
</xf:if>
<xf:if is="$isIgnored">
<div class="messageNotice messageNotice--ignored">
{{ phrase('you_are_ignoring_content_by_this_member') }}
<xf:showignored />
</div>
</xf:if>
<div class="message-userContent lbContainer js-lbContainer {{ $isIgnored ? 'is-ignored' : '' }}"
data-lb-id="post-{$post.post_id}"
data-lb-caption-desc="{{ $post.User ? $post.User.username : $post.username }} · {{ date_time($post.post_date) }}">
<xf:if is="$post.isFirstPost()">
<xf:macro template="custom_fields_macros" name="custom_fields_view"
arg-type="threads"
arg-group="before"
arg-onlyInclude="{$thread.Forum.field_cache}"
arg-set="{$thread.custom_fields}"
arg-wrapperClass="message-fields message-fields--before" />
</xf:if>
<article class="message-body js-selectToQuote">
<xf:ad position="post_above_content" arg-post="{$post}" />
{{ bb_code($post.message, 'post', $post) }}
<div class="js-selectToQuoteEnd"> </div>
<xf:ad position="post_below_content" arg-post="{$post}" />
</article>
<xf:if is="$post.isFirstPost()">
<xf:macro template="custom_fields_macros" name="custom_fields_view"
arg-type="threads"
arg-group="after"
arg-onlyInclude="{$thread.Forum.field_cache}"
arg-set="{$thread.custom_fields}"
arg-wrapperClass="message-fields message-fields--after" />
</xf:if>
<xf:if is="$post.attach_count">
<xf:macro template="message_macros" name="attachments"
arg-attachments="{$post.Attachments}"
arg-message="{$post}"
arg-canView="{{ $thread.canViewAttachments() }}" />
</xf:if>
</div>
<xf:if is="$post.last_edit_date">
<div class="message-lastEdit">
<xf:if is="$post.user_id == $post.last_edit_user_id">
{{ phrase('last_edited:') }} <xf:date time="{$post.last_edit_date}" />
<xf:else />
{{ phrase('last_edited_by_moderator:') }} <xf:date time="{$post.last_edit_date}" />
</xf:if>
</div>
</xf:if>
<xf:macro template="message_macros" name="signature" arg-user="{$post.User}" />
</div>
<footer class="message-footer">
<xf:if contentcheck="true">
<div class="message-actionBar actionBar">
<xf:contentcheck>
<xf:if contentcheck="true">
<div class="actionBar-set actionBar-set--external">
<xf:contentcheck>
<xf:if is="$post.canLike()">
<a href="{{ link('posts/like', $post) }}" class="actionBar-action actionBar-action--like" data-xf-click="like" data-like-list="< .js-post | .js-likeList"><xf:if is="$post.isLiked()">{{ phrase('unlike') }}<xf:else />{{ phrase('like') }}</xf:if></a>
</xf:if>
<xf:if is="$thread.canReply()">
<xf:set var="$quoteLink">{{ link('threads/reply', $thread, {'quote': $post.post_id}) }}</xf:set>
<xf:if is="$xf.options.multiQuote">
<a href="{$quoteLink}"
class="actionBar-action actionBar-action--mq u-jsOnly js-multiQuote"
title="{{ phrase('toggle_multi_quote_tooltip')|for_attr }}"
data-message-id="{$post.post_id}"
data-mq-action="add">{{ phrase('quote') }}</a>
</xf:if>
<a href="{$quoteLink}"
class="actionBar-action actionBar-action--reply"
title="{{ phrase('reply_quoting_this_message')|for_attr }}"
data-xf-click="quote"
data-quote-href="{{ link('posts/quote', $post) }}">{{ phrase('reply') }}</a>
</xf:if>
</xf:contentcheck>
</div>
</xf:if>
<xf:if contentcheck="true">
<div class="actionBar-set actionBar-set--internal">
<xf:contentcheck>
<xf:if is="$post.canReport()">
<a href="{{ link('posts/report', $post) }}"
class="actionBar-action actionBar-action--report actionBar-action--menuItem"
data-xf-click="overlay">{{ phrase('report') }}</a>
</xf:if>
<xf:set var="$hasActionBarMenu" value="{{ false }}" />
<xf:if is="$post.canEdit()">
<xf:js src="xf/message.js" min="1" />
<a href="{{ link('posts/edit', $post) }}"
class="actionBar-action actionBar-action--edit actionBar-action--menuItem"
data-xf-click="quick-edit"
data-editor-target="#js-post-{$post.post_id} .js-quickEditTarget"
data-menu-closer="true">{{ phrase('edit') }}</a>
<xf:set var="$hasActionBarMenu" value="{{ true }}" />
</xf:if>
<xf:if is="$post.edit_count && $post.canViewHistory()">
<a href="{{ link('posts/history', $post) }}"
class="actionBar-action actionBar-action--history actionBar-action--menuItem"
data-xf-click="toggle"
data-target="#js-post-{$post.post_id} .js-historyTarget"
data-menu-closer="true">{{ phrase('history') }}</a>
<xf:set var="$hasActionBarMenu" value="{{ true }}" />
</xf:if>
<xf:if is="$post.canDelete('soft')">
<a href="{{ link('posts/delete', $post) }}"
class="actionBar-action actionBar-action--delete actionBar-action--menuItem"
data-xf-click="overlay">{{ phrase('delete') }}</a>
<xf:set var="$hasActionBarMenu" value="{{ true }}" />
</xf:if>
<xf:if is="$post.canCleanSpam()">
<a href="{{ link('spam-cleaner', $post) }}"
class="actionBar-action actionBar-action--spam actionBar-action--menuItem"
data-xf-click="overlay">{{ phrase('spam') }}</a>
<xf:set var="$hasActionBarMenu" value="{{ true }}" />
</xf:if>
<xf:if is="$xf.visitor.canViewIps() && $post.ip_id">
<a href="{{ link('posts/ip', $post) }}"
class="actionBar-action actionBar-action--ip actionBar-action--menuItem"
data-xf-click="overlay">{{ phrase('ip') }}</a>
<xf:set var="$hasActionBarMenu" value="{{ true }}" />
</xf:if>
<xf:if is="$post.canWarn()">
<a href="{{ link('posts/warn', $post) }}"
class="actionBar-action actionBar-action--warn actionBar-action--menuItem">{{ phrase('warn') }}</a>
<xf:set var="$hasActionBarMenu" value="{{ true }}" />
<xf:elseif is="$post.warning_id && $xf.visitor.canViewWarnings()" />
<a href="{{ link('warnings', {'warning_id': $post.warning_id}) }}"
class="actionBar-action actionBar-action--warn actionBar-action--menuItem"
data-xf-click="overlay">{{ phrase('view_warning') }}</a>
<xf:set var="$hasActionBarMenu" value="{{ true }}" />
</xf:if>
<xf:if is="$hasActionBarMenu">
<a class="actionBar-action actionBar-action--menuTrigger"
data-xf-click="menu"
title="{{ phrase('more_options')|for_attr }}"
role="button"
tabindex="0"
aria-expanded="false"
aria-haspopup="true">•••</a>
<div class="menu" data-menu="menu" aria-hidden="true" data-menu-builder="actionBar">
<div class="menu-content">
<h4 class="menu-header">{{ phrase('more_options') }}</h4>
<div class="js-menuBuilderTarget"></div>
</div>
</div>
</xf:if>
<div class="message-attribution-opposite">
<xf:if is="$post.isUnread()">
<span class="message-newIndicator">{{ phrase('new') }}</span>
</xf:if>
<a href="{{ link('threads/post', $thread, {'post_id': $post.post_id}) }}" class="u-concealed" rel="nofollow">#{{ number($post.position + 1) }}</a>
<xf:if is="$post.canUseInlineModeration()">
<span class="actionBar-action actionBar-action--inlineMod">
<xf:checkbox standalone="true">
<xf:option value="{$post.post_id}" class="js-inlineModToggle"
data-xf-init="tooltip"
title="{{ phrase('select_for_moderation') }}"
label="{{ phrase('select_for_moderation') }}"
hiddenlabel="true" />
</xf:checkbox>
</span>
</xf:if>
</div>
</xf:contentcheck>
</div>
</xf:if>
</xf:contentcheck>
</div>
</xf:if>
<div class="likesBar js-likeList {{ $post.likes ? 'is-active' : '' }}">
<xf:likes content="{$post}" url="{{ link('posts/likes', $post) }}" />
</div>
<div class="js-historyTarget message-historyTarget toggleTarget" data-href="trigger-href"></div>
</footer>
</div>
</div>
</div>
</article>
<xf:ad position="post_below_container" arg-post="{$post}" />
</xf:macro>
<xf:macro name="post_deleted" arg-post="!" arg-thread="!">
<xf:css src="message.less" />
<div class="message message--deleted message--post{{ $post.isIgnored() ? ' is-ignored' : '' }}{{ $post.isUnread() ? ' is-unread' : '' }} js-post js-inlineModContainer"
data-author="{{ $post.User.username ?: $post.username }}"
data-content="post-{$post.post_id}">
<span class="u-anchorTarget" id="post-{$post.post_id}"></span>
<div class="message-inner">
<div class="message-cell message-cell--user">
<xf:macro template="message_macros" name="user_info" arg-user="{$post.User}" arg-fallbackName="{$post.username}" />
</div>
<div class="message-cell message-cell--main">
<div class="message-attribution">
<ul class="listInline listInline--bullet message-attribution-main">
<li><a href="{{ link('threads/post', $thread, {'post_id': $post.post_id}) }}" class="u-concealed" rel="nofollow"><xf:date time="{$post.post_date}" /></a></li>
<li><xf:username user="{$post.User}" defaultname="{$post.username}" class="u-concealed" /></li>
</ul>
</div>
<div class="messageNotice messageNotice--deleted">
<xf:macro template="deletion_macros" name="notice" arg-log="{$post.DeletionLog}" />
<a href="{{ link('posts/show', $post) }}" class="u-jsOnly" data-xf-click="inserter" data-replace="[data-content=post-{$post.post_id}]">{{ phrase('show...') }}</a>
</div>
</div>
</div>
</div>
<xf:ad position="post_below_container" arg-post="{$post}" />
</xf:macro>]]></template>
<template title="profile_post_macros" type="public" addon_id="XF" version_id="2001070" version_string="2.0.10"><![CDATA[<xf:macro name="attribution" arg-profilePost="!" arg-showTargetUser="{{ false }}">
<xf:if is="$showTargetUser AND $profilePost.user_id != $profilePost.profile_user_id">
<xf:username user="$profilePost.User" rich="true" defaultname="{$profilePost.username}" aria-hidden="true" />
<i class="fa {{ $xf.isRtl ? 'fa-caret-left' : 'fa-caret-right' }} u-muted" aria-hidden="true"></i>
<xf:username user="$profilePost.ProfileUser" rich="true" defaultname="{{ phrase('unknown') }}" aria-hidden="true" />
<span class="u-srOnly">{{ phrase('x_wrote_on_ys_profile', {
'name': ($profilePost.User.username ?: {$profilePost.username}),
'profile': ($profilePost.ProfileUser.username ?: phrase('unknown'))
}) }}</span>
<xf:else />
<xf:username user="$profilePost.User" rich="true" defaultname="{$profilePost.username}" />
</xf:if>
</xf:macro>
<xf:macro name="profile_post"
arg-profilePost="!"
arg-showTargetUser="{{ false }}"
arg-allowInlineMod="{{ true }}">
<xf:css src="message.less" />
<xf:js src="xf/comment.js" min="1" />
<article class="message message--simple{{ $profilePost.isIgnored() ? ' is-ignored' : '' }} js-inlineModContainer"
data-author="{{ $profilePost.User.username ?: $profilePost.username }}"
data-content="profile-post-{$profilePost.profile_post_id}"
id="js-profilePost-{$profilePost.profile_post_id}">
<span class="u-anchorTarget" id="profile-post-{$profilePost.profile_post_id}"></span>
<div class="message-inner">
<div class="message-cell message-cell--user">
<xf:macro template="message_macros" name="user_info_simple" arg-user="{$profilePost.User}" arg-fallbackName="{$profilePost.username}" />
</div>
<div class="message-cell message-cell--main">
<div class="message-main js-quickEditTarget">
<div class="message-content js-messageContent">
<header class="message-attribution message-attribution--plain">
<ul class="listInline listInline--bullet">
<li class="message-attribution-user">
<xf:avatar user="$profilePost.User" size="xxs" />
<h4 class="attribution"><xf:macro name="attribution"
arg-profilePost="{$profilePost}"
arg-showTargetUser="{$showTargetUser}" /></h4>
</li>
<li><a href="{{ link('profile-posts', $profilePost) }}" class="u-concealed" rel="nofollow"><xf:date time="$profilePost.post_date" /></a></li>
</ul>
</header>
<xf:if is="$profilePost.message_state == 'deleted'">
<div class="messageNotice messageNotice--deleted">
<xf:macro template="deletion_macros" name="notice" arg-log="{$profilePost.DeletionLog}" />
</div>
<xf:elseif is="$profilePost.message_state == 'moderated'" />
<div class="messageNotice messageNotice--moderated">
{{ phrase('this_message_is_awaiting_moderator_approval_and_is_invisible_to_normal') }}
</div>
</xf:if>
<xf:if is="$profilePost.warning_message">
<div class="messageNotice messageNotice--warning">
{$profilePost.warning_message}
</div>
</xf:if>
<xf:if is="$profilePost.isIgnored()">
<div class="messageNotice messageNotice--ignored">
{{ phrase('you_are_ignoring_content_by_this_member') }}
</div>
</xf:if>
<article class="message-body">
{{ structured_text($profilePost.message) }}
</article>
</div>
<footer class="message-footer">
<div class="message-actionBar actionBar">
<xf:if contentcheck="true">
<div class="actionBar-set actionBar-set--external">
<xf:contentcheck>
<xf:if is="$profilePost.canLike()">
<a href="{{ link('profile-posts/like', $profilePost) }}" class="actionBar-action actionBar-action--like" data-xf-click="like" data-like-list="< .message | .js-likeList"><xf:if is="$profilePost.isLiked()">{{ phrase('unlike') }}<xf:else />{{ phrase('like') }}</xf:if></a>
</xf:if>
<xf:if is="$profilePost.canComment()">
<a class="actionBar-action actionBar-action--reply"
data-xf-click="toggle"
data-target=".js-commentsTarget-{$profilePost.profile_post_id}"
data-scroll-to="true"
role="button"
tabindex="0">{{ phrase('comment') }}</a>
</xf:if>
</xf:contentcheck>
</div>
</xf:if>
<xf:if contentcheck="true">
<div class="actionBar-set actionBar-set--internal">
<xf:contentcheck>
<xf:if is="{$allowInlineMod} AND $profilePost.canUseInlineModeration()">
<xf:checkbox standalone="true"><xf:option
value="{$profilePost.profile_post_id}"
labelclass="actionBar-action actionBar-action--inlineMod"
class="js-inlineModToggle"
data-xf-init="tooltip"
title="{{ phrase('select_for_moderation') }}" />
</xf:checkbox>
</xf:if>
<xf:if is="$profilePost.canReport()">
<a href="{{ link('profile-posts/report', $profilePost) }}" class="actionBar-action actionBar-action--report" data-xf-click="overlay">{{ phrase('report') }}</a>
</xf:if>
<xf:set var="$hasActionBarMenu" value="{{ false }}" />
<xf:if is="$profilePost.canEdit()">
<xf:js src="xf/message.js" min="1" />
<a href="{{ link('profile-posts/edit', $profilePost) }}"
class="actionBar-action actionBar-action--edit actionBar-action--menuItem"
data-xf-click="quick-edit"
data-editor-target="#js-profilePost-{$profilePost.profile_post_id} .js-quickEditTarget"
data-no-inline-mod="{{ !$allowInlineMod ? 1 : 0 }}"
data-menu-closer="true">{{ phrase('edit') }}</a>
<xf:set var="$hasActionBarMenu" value="{{ true }}" />
</xf:if>
<xf:if is="$profilePost.canDelete('soft')">
<a href="{{ link('profile-posts/delete', $profilePost) }}"
class="actionBar-action actionBar-action--delete actionBar-action--menuItem"
data-xf-click="overlay">{{ phrase('delete') }}</a>
<xf:set var="$hasActionBarMenu" value="{{ true }}" />
</xf:if>
<xf:if is="$profilePost.canCleanSpam()">
<a href="{{ link('spam-cleaner', $profilePost) }}"
class="actionBar-action actionBar-action--spam actionBar-action--menuItem"
data-xf-click="overlay">{{ phrase('spam') }}</a>
<xf:set var="$hasActionBarMenu" value="{{ true }}" />
</xf:if>
<xf:if is="$xf.visitor.canViewIps() && $profilePost.ip_id">
<a href="{{ link('profile-posts/ip', $profilePost) }}"
class="actionBar-action actionBar-action--ip actionBar-action--menuItem"
data-xf-click="overlay">{{ phrase('ip') }}</a>
<xf:set var="$hasActionBarMenu" value="{{ true }}" />
</xf:if>
<xf:if is="$profilePost.canWarn()">
<a href="{{ link('profile-posts/warn', $profilePost) }}"
class="actionBar-action actionBar-action--warn actionBar-action--menuItem">{{ phrase('warn') }}</a>
<xf:set var="$hasActionBarMenu" value="{{ true }}" />
<xf:elseif is="$profilePost.warning_id && $xf.visitor.canViewWarnings()" />
<a href="{{ link('warnings', {'warning_id': $profilePost.warning_id}) }}"
class="actionBar-action actionBar-action--warn actionBar-action--menuItem"
data-xf-click="overlay">{{ phrase('view_warning') }}</a>
<xf:set var="$hasActionBarMenu" value="{{ true }}" />
</xf:if>
<xf:if is="$hasActionBarMenu">
<a class="actionBar-action actionBar-action--menuTrigger"
data-xf-click="menu"
title="{{ phrase('more_options')|for_attr }}"
role="button"
tabindex="0"
aria-expanded="false"
aria-haspopup="true">•••</a>
<div class="menu" data-menu="menu" aria-hidden="true" data-menu-builder="actionBar">
<div class="menu-content">
<h4 class="menu-header">{{ phrase('more_options') }}</h4>
<div class="js-menuBuilderTarget"></div>
</div>
</div>
</xf:if>
</xf:contentcheck>
</div>
</xf:if>
</div>
<section class="message-responses js-messageResponses">
<div class="message-responseRow message-responseRow--likes js-likeList {{ $profilePost.likes ? 'is-active' : '' }}"><xf:if is="$profilePost.likes">
<xf:likes content="{$profilePost}" url="{{ link('profile-posts/likes', $profilePost) }}" />
</xf:if></div>
<xf:if is="$profilePost.LatestComments is not empty">
<xf:if is="$profilePost.hasMoreComments()">
<div class="message-responseRow u-jsOnly js-commentLoader">
<a href="{{ link('profile-posts/load-previous', $profilePost, {'before': $profilePost.LatestComments.first().comment_date}) }}"
data-xf-click="comment-loader"
data-container=".js-commentLoader"
rel="nofollow">{{ phrase('view_previous_comments...') }}</a>
</div>
</xf:if>
<div class="js-replyNewMessageContainer">
<xf:foreach loop="$profilePost.LatestComments" value="$comment">
<xf:macro
name="{{ $comment.message_state == 'deleted' ? 'comment_deleted' : 'comment' }}"
arg-comment="{$comment}"
arg-profilePost="{$profilePost}" />
</xf:foreach>
</div>
<xf:else />
<div class="js-replyNewMessageContainer"></div>
</xf:if>
<xf:if is="$profilePost.canComment()">
<xf:js src="xf/message.js" min="1" />
<div class="message-responseRow js-commentsTarget-{$profilePost.profile_post_id} toggleTarget">
<xf:form action="{{ link('profile-posts/add-comment', $profilePost) }}" ajax="true" class="comment"
data-xf-init="quick-reply"
data-message-container="< .js-messageResponses | .js-replyNewMessageContainer">
<div class="comment-inner">
<span class="comment-avatar">
<xf:avatar user="{$xf.visitor}" size="xxs" />
</span>
<div class="comment-main">
<xf:textarea name="message" rows="1" autosize="true"
maxlength="{$xf.options.profilePostMaxLength}"
class="comment-input js-editor"
data-xf-init="user-mentioner"
data-toggle-autofocus="1"
placeholder="{{ phrase('write_comment...') }}" />
<div>
<xf:button type="submit" class="button--primary button--small">
{{ phrase('post_comment') }}
</xf:button>
</div>
</div>
</div>
<xf:set var="$lastProfilePostComment" value="{$profilePost.LatestComments|last}" />
<xf:hiddenval name="last_date">{$lastProfilePostComment.comment_date}</xf:hiddenval>
</xf:form>
</div>
</xf:if>
</section>
</footer>
</div>
</div>
</div>
</article>
</xf:macro>
<xf:macro name="profile_post_deleted"
arg-profilePost="!"
arg-showTargetUser="{{ false }}">
<xf:css src="message.less" />
<div class="message message--simple{{ $profilePost.isIgnored() ? ' is-ignored' : '' }} js-inlineModContainer"
data-author="{{ $profilePost.User.username ?: $profilePost.username }}"
data-content="profile-post-{$profilePost.profile_post_id}">
<span class="u-anchorTarget" id="profile-post-{$profilePost.profile_post_id}"></span>
<div class="message-inner">
<div class="message-cell message-cell--user">
<xf:macro template="message_macros" name="user_info_simple" arg-user="{$profilePost.User}" arg-fallbackName="{$profilePost.username}" />
</div>
<div class="message-cell message-cell--main">
<div class="message-attribution message-attribution--plain">
<ul class="listInline listInline--bullet">
<li class="message-attribution-user">
<xf:avatar user="$profilePost.User" size="xxs" />
<h4 class="attribution"><xf:macro name="attribution"
arg-profilePost="{$profilePost}"
arg-showTargetUser="{$showTargetUser}" /></h4>
</li>
<li><xf:date time="$profilePost.post_date" /></li>
</ul>
</div>
<div class="messageNotice messageNotice--deleted">
<xf:macro template="deletion_macros" name="notice" arg-log="{$profilePost.DeletionLog}" />
<a href="{{ link('profile-posts/show', $profilePost) }}" class="u-jsOnly" data-xf-click="inserter" data-replace="[data-content=profile-post-{$profilePost.profile_post_id}]">{{ phrase('show...') }}</a>
</div>
</div>
</div>
</div>
</xf:macro>
<xf:macro name="profile_post_simple"
arg-profilePost="!"
arg-limitHeight="{{ false }}">
<div class="contentRow">
<div class="contentRow-figure">
<xf:avatar user="$profilePost.User" size="xxs" defaultname="{$profilePost.username}" />
</div>
<div class="contentRow-main contentRow-main--close">
<xf:if is="$limitHeight">
<div class="contentRow-faderContainer">
<div class="contentRow-faderContent">
<a href="{{ link('profile-posts', $profilePost) }}" rel="nofollow" data-xf-click="overlay" data-xf-init="tooltip" title="{{ phrase('interact')|for_attr }}">
{{ structured_text($profilePost.message) }}
</a>
</div>
<div class="contentRow-fader"></div>
</div>
<xf:else />
<a href="{{ link('profile-posts', $profilePost) }}" rel="nofollow" data-xf-click="overlay" data-xf-init="tooltip" title="{{ phrase('interact')|for_attr }}">
{{ structured_text($profilePost.message) }}
</a>
</xf:if>
<div class="contentRow-minor">
<xf:macro name="attribution"
arg-profilePost="{$profilePost}"
arg-showTargetUser="{{ true }}" />
<a href="{{ link('profile-posts', $profilePost) }}" rel="nofollow" class="u-concealed"><xf:date time="{$profilePost.post_date}" /></a>
</div>
</div>
</div>
</xf:macro>
<xf:macro name="comment"
arg-comment="!"
arg-profilePost="!">
<div class="message-responseRow">
<div class="comment{{ $comment.isIgnored() ? ' is-ignored' : '' }}"
data-author="{$comment.User.username}"
data-content="profile-post-comment-{$comment.profile_post_comment_id}"
id="js-profilePostComment-{$comment.profile_post_comment_id}">
<div class="comment-inner">
<span class="comment-avatar">
<xf:avatar user="$comment.User" size="xxs" defaultname="{$comment.username}" />
</span>
<div class="comment-main">
<span class="u-anchorTarget" id="profile-post-comment-{$comment.profile_post_comment_id}"></span>
<div class="js-quickEditTargetComment">
<div class="comment-content">
<xf:if is="$comment.message_state == 'deleted'">
<div class="messageNotice messageNotice--deleted">
<xf:macro template="deletion_macros" name="notice" arg-log="{$comment.DeletionLog}" />
</div>
<xf:elseif is="$comment.message_state == 'moderated'" />
<div class="messageNotice messageNotice--moderated">
{{ phrase('this_message_is_awaiting_moderator_approval_and_is_invisible_to_normal') }}
</div>
</xf:if>
<xf:if is="$comment.warning_message">
<div class="messageNotice messageNotice--warning">
{$comment.warning_message}
</div>
</xf:if>
<xf:if is="$comment.isIgnored()">
<div class="messageNotice messageNotice--ignored">
{{ phrase('you_are_ignoring_content_by_this_member') }}
</div>
</xf:if>
<div class="comment-contentWrapper">
<xf:username user="$comment.User" rich="true" defaultname="{$comment.username}" class="comment-user" />
<article class="comment-body">{{ structured_text($comment.message) }}</article>
</div>
</div>
<footer class="comment-footer">
<div class="comment-actionBar actionBar">
<div class="actionBar-set actionBar-set--internal">
<span class="actionBar-action"><xf:date time="{$comment.comment_date}" /></span>
<xf:if is="$comment.canReport()">
<a href="{{ link('profile-posts/comments/report', $comment) }}"
class="actionBar-action actionBar-action--report"
data-xf-click="overlay">{{ phrase('report') }}</a>
</xf:if>
<xf:set var="$hasActionBarMenu" value="{{ false }}" />
<xf:if is="$comment.canEdit()">
<xf:js src="xf/message.js" min="1" />
<a href="{{ link('profile-posts/comments/edit', $comment) }}"
class="actionBar-action actionBar-action--edit actionBar-action--menuItem"
data-xf-click="quick-edit"
data-editor-target="#js-profilePostComment-{$comment.profile_post_comment_id} .js-quickEditTargetComment"
data-menu-closer="true">{{ phrase('edit') }}</a>
<xf:set var="$hasActionBarMenu" value="{{ true }}" />
</xf:if>
<xf:if is="$comment.canDelete('soft')">
<a href="{{ link('profile-posts/comments/delete', $comment) }}"
class="actionBar-action actionBar-action--delete actionBar-action--menuItem"
data-xf-click="overlay">{{ phrase('delete') }}</a>
<xf:set var="$hasActionBarMenu" value="{{ true }}" />
</xf:if>
<xf:if is="$comment.message_state == 'deleted' AND $comment.canUndelete()">
<a href="{{ link('profile-posts/comments/undelete', $comment, {'t': csrf_token()}) }}"
class="actionBar-action actionBar-action--undelete actionBar-action--menuItem">{{ phrase('undelete') }}</a>
<xf:set var="$hasActionBarMenu" value="{{ true }}" />
</xf:if>
<xf:if is="$comment.canCleanSpam()">
<a href="{{ link('spam-cleaner', $comment) }}"
class="actionBar-action actionBar-action--spam actionBar-action--menuItem"
data-xf-click="overlay">{{ phrase('spam') }}</a>
<xf:set var="$hasActionBarMenu" value="{{ true }}" />
</xf:if>
<xf:if is="$xf.visitor.canViewIps() && $comment.ip_id">
<a href="{{ link('profile-posts/comments/ip', $comment) }}"
class="actionBar-action actionBar-action--ip actionBar-action--menuItem"
data-xf-click="overlay">{{ phrase('ip') }}</a>
<xf:set var="$hasActionBarMenu" value="{{ true }}" />
</xf:if>
<xf:if is="$comment.canWarn()">
<a href="{{ link('profile-posts/comments/warn', $comment) }}"
class="actionBar-action actionBar-action--warn actionBar-action--menuItem">{{ phrase('warn') }}</a>
<xf:set var="$hasActionBarMenu" value="{{ true }}" />
<xf:elseif is="$comment.warning_id && $xf.visitor.canViewWarnings()" />
<a href="{{ link('warnings', {'warning_id': $comment.warning_id}) }}"
class="actionBar-action actionBar-action--warn actionBar-action--menuItem"
data-xf-click="overlay">{{ phrase('view_warning') }}</a>
<xf:set var="$hasActionBarMenu" value="{{ true }}" />
</xf:if>
<xf:if is="$comment.canApproveUnapprove()">
<xf:if is="$comment.message_state == 'moderated'">
<a href="{{ link('profile-posts/comments/approve', $comment, {'t': csrf_token()}) }}"
class="actionBar-action actionBar-action--approve actionBar-action--menuItem">{{ phrase('approve') }}</a>
<xf:set var="$hasActionBarMenu" value="{{ true }}" />
<xf:elseif is="$comment.message_state == 'visible'" />
<a href="{{ link('profile-posts/comments/unapprove', $comment, {'t': csrf_token()}) }}"
class="actionBar-action actionBar-action--unapprove actionBar-action--menuItem">{{ phrase('unapprove') }}</a>
<xf:set var="$hasActionBarMenu" value="{{ true }}" />
</xf:if>
</xf:if>
<xf:if is="$hasActionBarMenu">
<a class="actionBar-action actionBar-action--menuTrigger"
data-xf-click="menu"
title="{{ phrase('more_options')|for_attr }}"
role="button"
tabindex="0"
aria-expanded="false"
aria-haspopup="true">•••</a>
<div class="menu" data-menu="menu" aria-hidden="true" data-menu-builder="actionBar">
<div class="menu-content">
<h4 class="menu-header">{{ phrase('more_options') }}</h4>
<div class="js-menuBuilderTarget"></div>
</div>
</div>
</xf:if>
</div>
<xf:if contentcheck="true">
<div class="actionBar-set actionBar-set--external">
<xf:contentcheck>
<xf:if is="$comment.canLike()">
<a href="{{ link('profile-posts/comments/like', $comment) }}" class="actionBar-action actionBar-action--like" data-xf-click="like" data-like-list="< .comment | .js-commentLikeList"><xf:if is="$comment.isLiked()">{{ phrase('unlike') }}<xf:else />{{ phrase('like') }}</xf:if></a>
</xf:if>
</xf:contentcheck>
</div>
</xf:if>
</div>
<div class="comment-likes js-commentLikeList {{ $comment.likes ? 'is-active' : '' }}"><xf:if is="$comment.likes">
<xf:likes content="{$comment}" url="{{ link('profile-posts/comments/likes', $comment) }}" />
</xf:if></div>
</footer>
</div>
</div>
</div>
</div>
</div>
</xf:macro>
<xf:macro name="comment_deleted"
arg-comment="!"
arg-profilePost="!">
<div class="message-responseRow">
<div class="comment{{ $comment.isIgnored() ? ' is-ignored' : '' }}"
data-author="{$comment.User.username}"
data-content="profile-post-comment-{$comment.profile_post_comment_id}">
<div class="comment-inner">
<span class="comment-avatar">
<xf:avatar user="$comment.User" size="xxs" defaultname="{$comment.username}" />
</span>
<div class="comment-main">
<span class="u-anchorTarget" id="profile-post-comment-{$comment.profile_post_comment_id}"></span>
<div class="comment-content">
<div class="messageNotice messageNotice--deleted">
<xf:macro template="deletion_macros" name="notice" arg-log="{$comment.DeletionLog}" />
<a href="{{ link('profile-posts/comments/show', $comment) }}" class="u-jsOnly"
data-xf-click="inserter"
data-replace="[data-content=profile-post-comment-{$comment.profile_post_comment_id}]">{{ phrase('show...') }}</a>
</div>
</div>
<div class="comment-actionBar actionBar">
<div class="actionBar-set actionBar-set--internal">
<span class="actionBar-action">
<xf:date time="{$comment.comment_date}" />
<span role="presentation" aria-hidden="true">·</span>
<xf:username user="{$comment.User}" defaultname="{$comment.username}" class="u-concealed" />
</span>
</div>
</div>
</div>
</div>
</div>
</div>
</xf:macro>
<xf:macro name="submit" arg-user="!" arg-lastDate="!" arg-containerSelector="!" arg-style="full" arg-context="user">
<xf:js src="xf/message.js" min="1" />
<xf:if is="$style == 'full'">
<xf:css src="message.less" />
</xf:if>
<xf:form action="{{ link('members/post', $user) }}" ajax="true"
class="{{ $style == 'full' ? 'message message--simple' : 'block-row' }}"
data-xf-init="quick-reply"
data-message-container="{$containerSelector}"
data-ascending="0">
<xf:if is="$style == 'full'">
<div class="message-inner">
<div class="message-cell message-cell--user">
<xf:macro template="message_macros" name="user_info_simple" arg-user="{$xf.visitor}" />
</div>
<div class="message-cell message-cell--main">
</xf:if>
<div class="message-editorWrapper">
<span class="u-srOnly" id="ctrl_message">{{ phrase('update_your_status:') }}</span>
<xf:textarea name="message" autosize="true" rows="1" maxlength="{$xf.options.profilePostMaxLength}"
class="{{ $style == 'full' ? 'input--avatarSizeS' : '' }} js-editor"
data-xf-init="focus-trigger user-mentioner"
data-display="< :next" aria-labelledby="ctrl_message"
placeholder="{{ $xf.visitor.user_id == $user.user_id ? (phrase('update_your_status...')) : phrase('write_something...') }}" />
<div class="u-hidden u-hidden--transition u-inputSpacer">
<xf:button type="submit" class="button--primary">{{ phrase('post_verb') }}</xf:button>
</div>
</div>
<xf:if is="$style == 'full'">
</div>
</div>
</xf:if>
<xf:comment><!-- Posts are in descending order so last post is first! --></xf:comment>
<xf:hiddenval name="last_date">{$lastDate}</xf:hiddenval>
<xf:hiddenval name="style">{$style}</xf:hiddenval>
<xf:hiddenval name="context">{$context}</xf:hiddenval>
</xf:form>
</xf:macro>]]></template>
<template title="rating_stars.less" type="public" addon_id="XF" version_id="2000170" version_string="2.0.1"><![CDATA[.ratingStars
{
display: inline-block;
line-height: 1;
font-size: 120%;
vertical-align: sub;
position: relative;
&.ratingStars--larger
{
font-size: 140%;
vertical-align: bottom;
}
&.ratingStars--smaller
{
font-size: 100%;
vertical-align: top;
top: .2em;
}
}
.ratingStars-star
{
float: left;
position: relative;
margin-left: 2px;
&:first-child
{
margin-left: 0;
}
&:before
{
.m-faBase();
.m-faContent(@fa-var-star, .93em);
font-size: 15px;
color: @xf-starEmptyColor;
}
&.ratingStars-star--full
{
&:before
{
color: @xf-starFullColor;
}
}
&.ratingStars-star--half
{
&:after
{
position: absolute;
top: 1px;
left: 0;
.m-faBase();
.m-faContent(@fa-var-star-half, .5em);
color: @xf-starFullColor;
& when(@rtl)
{
.m-transform(scaleX(-1));
}
}
}
}
.ratingStarsRow
{
&.ratingStarsRow--justified
{
display: flex;
.ratingStarsRow-text
{
margin-left: auto;
}
}
&.ratingStarsRow--textBlock
{
display: block;
.ratingStarsRow-text
{
display: block;
}
}
}
/** XF: override */
.br-select
{
display: none;
}
.br-theme-fontawesome-stars
{
.br-widget
{
&.br-widget--withSelected
{
height: 40px;
.br-current-rating
{
display: block;
font-size: 80%;
}
}
}
}
/** Vendor: variables.less */
@star-default: @xf-starEmptyColor;
@star-active: @xf-starFullColor;
@star-selected: @xf-starFullColor;
/** Vendor: fontawesome-stars.less */
.br-theme-fontawesome-stars {
.br-widget {
height: 28px;
white-space: nowrap;
a {
font: normal normal normal 20px/1 FontAwesome;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
text-decoration: none;
margin-right: 2px;
}
a:after {
.m-faContent(@fa-var-star, .93em);
color: @star-default;
}
a.br-active:after {
color: @star-active;
}
a.br-selected:after {
color: @star-selected;
}
.br-current-rating {
display: none;
}
}
.br-readonly {
a {
cursor: default;
}
}
}
@media print {
.br-theme-fontawesome-stars {
.br-widget {
a:after {
.m-faContent(@fa-var-star-o, .93em);
color: black;
}
a.br-active:after,
a.br-selected:after {
.m-faContent(@fa-var-star, .93em);
color: black;
}
}
}
}]]></template>
<template title="register_form" type="public" addon_id="XF" version_id="2000670" version_string="2.0.6"><![CDATA[<xf:js src="xf/login_signup.js" min="1" />
<xf:title>{{ phrase('register') }}</xf:title>
<xf:if is="$providers is not empty">
<div class="block">
<div class="block-container">
<div class="block-body">
<xf:formrow rowtype="button"
label="{{ phrase('register_faster_using') }}">
<ul class="listHeap">
<xf:foreach loop="$providers" value="$provider">
<li>
<xf:button href="{{ link('register/connected-accounts', $provider, {'setup': true}) }}"
class="button--provider button--provider--{$provider.provider_id}">
{$provider.title}
</xf:button>
</li>
</xf:foreach>
</ul>
</xf:formrow>
</div>
</div>
</div>
</xf:if>
<xf:form action="{{ link('register/register') }}" ajax="true" class="block"
data-xf-init="reg-form" data-timer="{$xf.options.registrationTimer}">
<div class="block-container">
<div class="block-body">
<xf:comment>Spam catcher field</xf:comment>
<xf:textboxrow name="username" value="" autocomplete="off" rowclass="formRow--limited"
maxlength="{{ max_length($xf.visitor, 'username') }}"
class="master-form"
placeholder="{{ phrase('user_name') }}"
label="{{ phrase('user_name') }}"
explain="{{ phrase('please_leave_this_field_blank') }}" />
<xf:macro template="register_macros" name="username_row"
arg-fieldName="{{ $regForm.getFieldName('username') }}"
arg-value="{$fields.username}" />
<xf:comment>Spam catcher field</xf:comment>
<xf:if is="{{ rand(0, 2) == 1 }}">
<xf:textboxrow name="{{ $regForm.getFieldName('email_hp') }}" value="" type="email" autocomplete="off"
rowclass="formRow--limited"
maxlength="{{ max_length($xf.visitor, 'email') }}"
label="{{ phrase('email') }}"
class="master-form"
placeholder="{{ phrase('email') }}"
explain="{{ phrase('please_leave_this_field_blank') }}" />
</xf:if>
<xf:macro template="register_macros" name="email_row"
arg-fieldName="{{ $regForm.getFieldName('email') }}"
arg-value="{$fields.email}" />
<xf:comment>Spam catcher field</xf:comment>
<xf:if is="{{ rand(0, 2) == 1 }}">
<xf:textboxrow name="email" value="" type="email" autocomplete="off" rowclass="formRow--limited"
maxlength="{{ max_length($xf.visitor, 'email') }}"
label="{{ phrase('email') }}"
class="master-form"
placeholder="{{ phrase('email') }}"
explain="{{ phrase('please_leave_this_field_blank') }}" />
</xf:if>
<xf:comment>Spam catcher field</xf:comment>
<xf:if is="{{ rand(0, 2) == 1 }}">
<xf:textboxrow name="password" type="password" autocomplete="off" rowclass="formRow--limited"
label="{{ phrase('password') }}"
class="master-form"
placeholder="{{ phrase('password') }}"
explain="{{ phrase('please_leave_this_field_blank') }}" />
</xf:if>
<xf:textboxrow name="{{ $regForm.getFieldName('password') }}" type="password" autocomplete="off"
class="master-form"
placeholder="{{ phrase('password') }}"
label="{{ phrase('password') }}" />
<xf:macro template="register_macros" name="dob_row" />
<xf:macro template="register_macros" name="location_row"
arg-value="{$fields.location}" />
<xf:macro template="register_macros" name="custom_fields" />
<xf:captcharow label="{{ phrase('verification') }}" hint="{{ phrase('required') }}" />
<xf:macro template="register_macros" name="email_choice_row" />
<xf:macro template="register_macros" name="tos_row" />
</div>
<xf:macro template="register_macros" name="submit_row" />
</div>
<xf:hiddenval name="reg_key">{{ $regForm.getUniqueKey() }}</xf:hiddenval>
<xf:hiddenval name="{{ $regForm.getFieldName('timezone') }}" value="" data-xf-init="auto-timezone" />
</xf:form>]]></template>
<template title="register_macros" type="public" addon_id="XF" version_id="2001070" version_string="2.0.10"><![CDATA[<xf:macro name="username_row"
arg-fieldName="username"
arg-value=""
arg-autoFocus="{{ true }}">
<xf:textboxrow name="{$fieldName}" value="{$value}" autocomplete="off" required="required"
autofocus="{{ $autoFocus ? 'autofocus' : false }}"
maxlength="{{ max_length($xf.visitor, 'username') }}"
class="master-form"
placeholder="{{ phrase('user_name') }}"
label="{{ phrase('user_name') }}"
hint="{{ phrase('required') }}"
explain="{{ phrase('this_is_name_that_will_be_shown_with_your_messages') }}" />
</xf:macro>
<xf:macro name="email_row"
arg-fieldName="email"
arg-value="">
<xf:textboxrow name="{$fieldName}" value="{$value}" type="email" autocomplete="off" required="required"
maxlength="{{ max_length($xf.visitor, 'email') }}"
class="master-form"
placeholder="{{ phrase('email') }}"
label="{{ phrase('email') }}"
hint="{{ phrase('required') }}" />
</xf:macro>
<xf:macro name="dob_row" arg-dobData="{{ [] }}">
<xf:if is="$xf.options.registrationSetup.requireDob">
<xf:macro template="helper_user_dob_edit" name="dob_edit"
arg-dobData="{$dobData}"
arg-required="{{ true }}" />
</xf:if>
</xf:macro>
<xf:macro name="location_row"
arg-fieldName="location"
arg-value="">
<xf:if is="$xf.options.registrationSetup.requireLocation">
<xf:textboxrow name="{$fieldName}" value="{$value}" required="true"
label="{{ phrase('location') }}"
class="master-form"
placeholder="{{ phrase('location') }}"
hint="{{ phrase('required') }}" />
</xf:if>
</xf:macro>
<xf:macro name="email_choice_row"
arg-fieldName="email_choice">
<xf:if is="$xf.options.registrationSetup.requireEmailChoice">
<xf:checkboxrow>
<xf:option name="{$fieldName}" selected="{$xf.options.registrationDefaults.receive_admin_email}"
label="{{ phrase('receive_site_mailings') }}"
hint="{{ phrase('receive_site_mailings_hint') }}" />
</xf:checkboxrow>
</xf:if>
</xf:macro>
<xf:macro name="custom_fields">
<xf:macro template="custom_fields_macros" name="custom_fields_edit"
arg-type="users" arg-group="{{ null }}"
arg-set="{$xf.visitor.Profile.custom_fields}"
arg-additionalFilters="{{ ['registration'] }}" />
</xf:macro>
<xf:macro name="tos_row">
<xf:if is="$xf.tosUrl OR $xf.privacyPolicyUrl">
<xf:checkboxrow standalone="true">
<xf:if is="$xf.tosUrl AND $xf.privacyPolicyUrl">
<xf:option name="accept" required="required">{{ phrase('by_registering_you_agree_to_our_terms_and_privacy_policy', {'tos': $xf.tosUrl, 'privacy': $xf.privacyPolicyUrl}) }}</xf:option>
<xf:elseif is="$xf.tosUrl" />
<xf:option name="accept" required="required">{{ phrase('by_registering_you_agree_to_our_terms_and_rules', {'tos': $xf.tosUrl}) }}</xf:option>
<xf:else />
<xf:option name="accept" required="required">{{ phrase('by_registering_you_agree_to_our_privacy_policy', {'privacy': $xf.privacyPolicyUrl}) }}</xf:option>
</xf:if>
</xf:checkboxrow>
</xf:if>
</xf:macro>
<xf:macro name="submit_row">
<xf:submitrow><xf:html>
<xf:button type="submit" class="button--primary" id="js-signUpButton">
<xf:if is="$xf.options.registrationTimer">
<span id="js-regTimer" data-timer-complete="{{ phrase('register')|for_attr }}">
{{ phrase('(please_wait_x_seconds)', {'seconds': "<span>{$xf.options.registrationTimer}</span>"}) }}
</span>
<xf:else />
{{ phrase('register') }}
</xf:if>
</xf:button>
</xf:html></xf:submitrow>
</xf:macro>]]></template>
<template title="search_form_post" type="public" addon_id="XF" version_id="2000170" version_string="2.0.1"><![CDATA[<xf:title>{{ phrase('search_threads') }}</xf:title>
<xf:macro template="search_form_macros" name="keywords" arg-input="{$input}" />
<xf:macro template="search_form_macros" name="user" arg-input="{$input}" />
<xf:macro template="search_form_macros" name="date" arg-input="{$input}" />
<xf:numberboxrow name="c[min_reply_count]" value="{$input.c.min_reply_count|default(0)}" min="0"
label="{{ phrase('minimum_number_of_replies') }}" />
<xf:if is="$prefixesGrouped is not empty">
<div class="master-select">
<xf:selectrow name="c[prefixes][]" size="7" multiple="true" placeholder="{{ phrase('(any)') }}" value="{$input.c.prefixes|default([0])}"
label="{{ phrase('prefixes') }}">
<xf:option value="">{{ phrase('(any)') }}</xf:option>
<xf:foreach loop="$prefixGroups" key="$groupId" value="$prefixGroup" if="{{ count($prefixesGrouped.{$groupId}) > 0 }}">
<xf:foreach loop="{$prefixesGrouped.{$groupId}}" key="$prefixId" value="$prefix">
<xf:option value="{$prefixId}">{{ prefix_title('thread', $prefixId) }}</xf:option>
</xf:foreach>
</xf:foreach>
</xf:selectrow>
</div>
</xf:if>
<xf:formrow rowtype="input"
label="{{ phrase('search_in_forums') }}">
<ul class="inputList master-select">
<li><xf:select name="c[nodes][]" size="7" multiple="multiple" placeholder="{{ phrase('all_forums') }}" value="{$input.c.nodes|default([0])}">
<xf:option value="">{{ phrase('all_forums') }}</xf:option>
<xf:foreach loop="$nodeTree.getFlattened(0)" value="$treeEntry">
<xf:option value="{$treeEntry.record.node_id}">{{ repeat(' ', $treeEntry.depth)|raw }} {$treeEntry.record.title}</xf:option>
</xf:foreach>
</xf:select></li>
<li><xf:checkbox standalone="true">
<xf:option name="c[child_nodes]" selected="{{ (!$input.c || $input.c.child_nodes) }}" label="{{ phrase('search_child_forums_as_well') }}" />
</xf:checkbox></li>
</ul>
</xf:formrow>
<xf:macro template="search_form_macros" name="order"
arg-isRelevanceSupported="{$isRelevanceSupported}"
arg-options="{{ {
'replies': phrase('most_replies')
} }}"
arg-input="{$input}" />
<xf:macro template="search_form_macros" name="grouped"
arg-label="{{ phrase('display_results_as_threads') }}"
arg-input="{$input}" />]]></template>
<template title="search_form_resource" type="public" addon_id="XFRM" version_id="2000070" version_string="2.0.0"><![CDATA[<xf:title>{{ phrase('xfrm_search_resources') }}</xf:title>
<xf:macro template="search_form_macros" name="keywords" arg-input="{$input}" />
<xf:macro template="search_form_macros" name="user" arg-input="{$input}" />
<xf:macro template="search_form_macros" name="date" arg-input="{$input}" />
<xf:if is="$prefixesGrouped is not empty">
<div class="master-select">
<xf:selectrow name="c[prefixes][]" size="7" multiple="true" placeholder="{{ phrase('(any)') }}" value="{$input.c.prefixes|default([0])}"
label="{{ phrase('prefixes') }}">
<xf:option value="">{{ phrase('(any)') }}</xf:option>
<xf:foreach loop="$prefixGroups" key="$groupId" value="$prefixGroup" if="{{ count($prefixesGrouped.{$groupId}) > 0 }}">
<xf:foreach loop="{$prefixesGrouped.{$groupId}}" key="$prefixId" value="$prefix">
<xf:option value="{$prefixId}">{{ prefix_title('resource', $prefixId) }}</xf:option>
</xf:foreach>
</xf:foreach>
</xf:selectrow>
</div>
</xf:if>
<xf:formrow rowtype="input" label="{{ phrase('xfrm_search_in_categories') }}">
<ul class="inputList master-select">
<li><xf:select name="c[categories][]" size="7" multiple="multiple" placeholder="{{ phrase('all_categories') }}" value="{$input.c.categories|default([0])}">
<xf:option value="">{{ phrase('all_categories') }}</xf:option>
<xf:foreach loop="$categoryTree.getFlattened(0)" value="$treeEntry">
<xf:option value="{$treeEntry.record.resource_category_id}">{{ repeat(' ', $treeEntry.depth)|raw }} {$treeEntry.record.title}</xf:option>
</xf:foreach>
</xf:select></li>
<li><xf:checkbox standalone="true">
<xf:option name="c[child_categories]" selected="{{ (!$input.c || $input.c.child_categories) }}" label="{{ phrase('xfrm_search_child_categories_as_well') }}" />
</xf:checkbox></li>
</ul>
</xf:formrow>
<xf:checkboxrow>
<xf:option name="c[include_updates]">{{ phrase('xfrm_include_resource_updates') }}</xf:option>
</xf:checkboxrow>
<xf:macro template="search_form_macros" name="order"
arg-isRelevanceSupported="{$isRelevanceSupported}"
arg-input="{$input}" />]]></template>
<template title="search_form_xfmg_media" type="public" addon_id="XFMG" version_id="902000070" version_string="2.0.0"><![CDATA[<xf:title>{{ phrase('xfmg_search_media') }}</xf:title>
<xf:macro template="search_form_macros" name="keywords" arg-input="{$input}" />
<xf:macro template="search_form_macros" name="user" arg-input="{$input}" />
<xf:macro template="search_form_macros" name="date" arg-input="{$input}" />
<xf:formrow rowtype="input"
label="{{ phrase('xfmg_search_in_media_categories') }}">
<ul class="inputList">
<li><xf:select name="c[categories][]" size="7" multiple="multiple" placeholder="{{ phrase('xfmg_all_categories') }}" value="{$input.c.categories|default([0])}">
<xf:option value="">{{ phrase('xfmg_all_categories') }}</xf:option>
<xf:foreach loop="$categoryTree.getFlattened(0)" value="$treeEntry">
<xf:option value="{$treeEntry.record.category_id}">{{ repeat(' ', $treeEntry.depth)|raw }} {$treeEntry.record.title}</xf:option>
</xf:foreach>
</xf:select></li>
<li><xf:checkbox standalone="true">
<xf:option name="c[child_categories]" selected="{{ (!$input.c OR $input.c.child_categories) }}">
{{ phrase('xfmg_search_child_categories_as_well') }}
</xf:option>
</xf:checkbox></li>
</ul>
</xf:formrow>
<xf:macro template="search_form_macros" name="order"
arg-isRelevanceSupported="{$isRelevanceSupported}"
arg-input="{$input}" />]]></template>
<template title="share_controls.less" type="public" addon_id="XF" version_id="2000170" version_string="2.0.1"><![CDATA[.shareButtons
{
.m-clearFix();
}
.shareButtons-label
{
float: left;
margin-right: 3px;
color: @xf-textColorMuted;
min-height: 35px;
line-height: 35px;
}
.shareButtons-button
{
float: left;
margin-right: 3px;
padding: 6px;
color: @xf-textColorMuted;
font-size: 20px;
line-height: 20px;
white-space: nowrap;
min-width: 35px;
border-radius: @xf-borderRadiusSmall;
background-color: transparent;
.m-transition();
&:last-of-type
{
margin-right: 0;
}
&:hover
{
text-decoration: none;
}
> i
{
display: inline-block;
vertical-align: middle;
.m-faBase();
}
> span
{
font-weight: @xf-fontWeightNormal;
font-size: @xf-fontSizeNormal;
}
.shareButtons--iconic &
{
text-align: center;
> i
{
min-width: 20px;
}
> span
{
.m-visuallyHidden();
}
}
&.shareButtons-button--facebook
{
color: #355ca8;
> i:before { .m-faContent(@fa-var-facebook, .58em); }
}
&.shareButtons-button--twitter
{
color: #1DA1F3;
> i:before { .m-faContent(@fa-var-twitter, .93em); }
}
&.shareButtons-button--gplus
{
color: #dd4b39;
> i:before { .m-faContent(@fa-var-google-plus, 1.29em); }
}
&.shareButtons-button--pinterest
{
color: #bd081c;
> i:before { .m-faContent(@fa-var-pinterest-p, .72em); }
}
&.shareButtons-button--tumblr
{
color: #35465c;
> i:before { .m-faContent(@fa-var-tumblr, .58em); }
}
&.shareButtons-button--reddit
{
color: #FF4500;
> i:before { .m-faContent(@fa-var-reddit-alien, 1em); }
}
&.shareButtons-button--whatsApp
{
color: #25D366;
> i:before { .m-faContent(@fa-var-whatsapp, .86em); }
}
&.shareButtons-button--email
{
color: #1289ff;
> i:before { .m-faContent(@fa-var-envelope-o, 1em); }
}
&.shareButtons-button--link
{
color: #787878;
cursor: pointer;
> i:before { .m-faContent(@fa-var-link, 1em); }
}
&.is-hidden
{
display: none;
}
}
.shareInput
{
margin-bottom: 5px;
&:last-child
{
margin-bottom: 0;
}
}
.shareInput-label
{
font-size: @xf-fontSizeSmall;
.m-appendColon();
}
.shareInput-button
{
color: @xf-linkColor;
cursor: pointer;
> i
{
display: inline-block;
vertical-align: middle;
.m-faBase();
&:before { .m-faContent(@fa-var-copy); }
}
&.is-hidden
{
display: none;
}
}
.shareInput-input
{
font-size: @xf-fontSizeSmall;
.shareInput-button.is-hidden + &
{
border-radius: @xf-borderRadiusMedium;
}
}]]></template>
<template title="structured_list.less" type="public" addon_id="XF" version_id="2000470" version_string="2.0.4"><![CDATA[@_structItem-avatarSize: 36px;
@_structItem-avatarSizeExpanded: 48px;
@_structItem-cellPaddingH: ((@xf-paddingMedium) + (@xf-paddingLarge)) / 2; // average
@_structItem-cellPaddingV: @xf-paddingLarge;
//structItemContainer
.structItemContainer{
form{
.structItem-cell--newThread{
padding: 19px 20px 0 15px!important;
.bbWrapper{
border-radius: 3px;
.fr-toolbar{
border-top: 1px solid transparent;
border-right-color: transparent;
border-left-color: transparent;
background: transparent;
.fr-command{
&.fr-btn{
&:hover{
background: transparent;
}
i{
font-size: 14px;
width: 14px;
}
}
}
.fr-separator{
display: none;
}
}
.fr-wrapper{
border-right-color: transparent;
border-left-color: transparent;
border-bottom-color: transparent;
border-radius: 0 0 3px 3px;
}
}
.formButtonGroup{
padding-top: 8px;
border-top: 1px solid @xf-borderColor;
margin-bottom: 0;
padding-bottom: 8px;
.formButtonGroup-primary{
display: flex;
align-items: center;
.button{
border: none;
margin-left: 5px;
}
}
.formButtonGroup-extra{
display: inline-block;
float: left;
line-height: 37px;
.button--icon--attach{
border: none;
display: inherit;
}
}
}
}
}
form.structItem{
.structItem-cell{
border-top: none;
}
}
.structItem{
position: relative;
border: none;
background: @xf-BrvColor1;
margin-bottom: 2px;
border-radius: 4px;
&.is-deleted{
opacity: 1;
.structItem-cell{
opacity: 0.7;
&.structItem-cell--icon{
opacity: 1;
}
}
}
&.structItem--note{
color: @xf-linkColor;
}
.structItem-cell{
padding: 14px 0 13px 15px;
}
.structItem-cell--icon{
padding: 15px 0 15px 20px;
width: 60px !important;
.avatar--default--dynamic{
background: @xf-paletteAccent2 !important;
color: @xf-BrvColor1 !important;
}
.structItem-iconContainer{
position: absolute;
top: 50%;
transform: translateY(-50%);
>img{
width: auto;
}
.avatar:first-child{
width: 40px;
height: 40px;
font-size: 20px;
border-radius: 100%;
span{
line-height:40px;
}
}
.structItem-secondaryIcon{
border-radius: 100%;
}
}
}
.structItem-cell--main{
.structItem-title{
margin: 4px 0;
font-size: 14px;
a{
color: @xf-paletteAccent2;
&:hover{
color: @xf-paletteColor3;
}
}
.label{
&.label--smallest{
display: inline;
color: @xf-linkColor;
background: transparent;
}
}
.labelLink{
font-size: 11px;
line-height: 18px;
position: relative;
top: -3px;
margin-right: 5px;
.label{
border: none;
padding: 0px 8px;
line-height: 18px;
border-radius: 2.5px;
color: @xf-BrvColor1;
font-weight: 400;
font-size: 12px;
}
}
}
.structItem-minor{
.structItem-extraInfo{
.iconic--checkbox{
i{
&:before{
color: @xf-linkColor;
}
}
}
}
.structItem-parts{
li{
&:before{
display: none;
}
}
.structItem-categories{
margin-right: 15px;
a{
font-size: 11px;
font-weight: 700;
padding: 0 5px;
text-transform: uppercase;
color: @xf-paletteAccent2;
position: relative;
&:before{
content: '';
position: absolute;
left: 0;
top: 50%;
transform: translateY(-50%);
width: 1px;
height: 8px;
background: @xf-paletteAccent2;
}
&:after{
content: '';
position: absolute;
right: 0;
top: 50%;
transform: translateY(-50%);
width: 1px;
height: 8px;
background: @xf-paletteAccent2;
}
}
}
.username{
font-size: 12px;
font-weight: 400;
margin-right: 15px;
color: @xf-paletteAccent2;
text-transform: capitalize;
}
.structItem-startDate{
font-size: 12px;
color: @xf-paletteAccent2;
&:before{
display: none;
}
}
}
.structItem-pageJump{
display: none;
}
}
}
.structItem-cell--resourceMeta{
.structItem-metaItem--rating{
.ratingStarsRow{
.ratingStarsRow-text{
display: none;
}
}
}
&.rating-column{
padding-top: 22px;
}
&.download-column{
text-align: center;
width: 115px;
padding-right: 20px;
span{
display: block;
font-size: 13px;
color: @xf-paletteAccent2;
&.count-number{
line-height: 20px;
margin-top: 5px;
}
}
}
}
.structItem-cell--meta{
text-align: center;
.pairs{
font-size: 14px;
color: @xf-paletteAccent2;
&.column-stick{
margin-top: 15px;
}
span{
display: block;
&.count-number{
line-height: 20px;
}
&.count-text{
font-size: 12px;
color: @xf-paletteAccent1;
text-transform: uppercase;
margin-top: 5px;
}
}
}
}
.structItem-cell--latest{
padding-top: 19px !important;
padding-right: 20px;
width: 150px;
.structItem-minor{
a{
font-size: 14px;
font-weight: 400;
text-transform: capitalize;
color: @xf-paletteAccent2;
&:hover{
color: @xf-paletteColor3;
}
}
}
>a{
font-size: 12px;
color: @xf-paletteAccent2;
}
}
.structItem-cell--avartar{
width: 60px;
padding-right: 20px;
padding-left: 0;
.avatar{
width: 40px;
height: 40px;
font-size: 20px;
border-radius: 50%;
span{
line-height: 40px;
}
}
}
}
}
.is-unread .structItem-title{
a{
color: @xf-linkColor !important;
&:hover{
color: @xf-paletteColor3 !important;
}
}
}
[data-template="forum_view"]{
.structItemContainer .structItem .structItem-cell--main .structItem-title{
position: relative;
top: 8px;
}
}
body[data-template="xfrm_overview"],
body[data-template="whats_new"]{
.structItemContainer .structItem{
&:first-child{
.structItem-cell{
border: none;
}
}
}
}
body[data-template="conversation_list"]{
.structItemContainer{
.structItem{
.structItem-cell{
&.structItem-cell--meta{
width: 120px;
}
&.structItem-cell--latest{
.structItem-minor{
margin: 0;
}
}
}
}
}
}
body[data-template="xfmg_whats_new_media_comments"]{
.structItemContainer{
.structItem{
.structItem-cell--icon{
.structItem-iconContainer{
.xfmgThumbnail.xfmgThumbnail--small{
width: 50px;
height: 50px;
img{
border-radius: 100%;
}
}
}
}
.structItem-cell--meta{
width: 100px;
.pairs{
dt{
margin: 0;
&:after{
display: none;
}
}
dd{
text-align: center;
float: none;
}
}
}
.structItem-cell--latest{
width: 150px;
padding-right: 20px;
}
}
}
}
[data-template="report_list"]{
.structItem-cell--latest{
padding-right: 20px !important;
}
}
body[data-template="xfrm_watched_resources"],
body[data-template="xfmg_watched_media"],
body[data-template="xfmg_watched_albums"]{
.structItemContainer .structItem .structItem-cell{
&.structItem-cell--meta{
width: 110px;
}
&.structItem-cell--latest{
display: none;
}
}
}
//end
.structItemContainer
{
border-collapse: collapse;
list-style: none;
margin: 0;
padding: 0;
width: 100%;
}
.structItemContainer-group
{
}
.structItemContainer > .structItem:first-child,
.structItemContainer > .structItemContainer-group:first-child > .structItem:first-child
{
border-top: none;
}
.structItem
{
display: table;
table-layout: fixed;
border-collapse: collapse;
border-top: @xf-borderSize solid @xf-borderColorFaint;
list-style: none;
margin: 0;
padding: 0;
width: 100%;
&.is-highlighted,
&.is-moderated
{
background: @xf-contentHighlightBg;
}
&.is-deleted
{
opacity: .7;
.structItem-title
{
text-decoration: line-through;
}
}
&.is-mod-selected
{
opacity: 1;
}
}
.structItem-cell
{
display: table-cell;
vertical-align: top;
padding: @_structItem-cellPaddingV @_structItem-cellPaddingH;
.structItem--middle &
{
vertical-align: middle;
}
&.structItem-cell--icon
{
width: ((@_structItem-avatarSize) + (@_structItem-cellPaddingH) * 4);
position: relative;
&.structItem-cell--iconExpanded
{
width: ((@_structItem-avatarSizeExpanded) + (@_structItem-cellPaddingH) * 2);
}
&.structItem-cell--iconFixedSmall
{
width: (60px + (@_structItem-cellPaddingH) * 2);
}
}
&.structItem-cell--meta
{
width: 90px;
}
&.structItem-cell--latest
{
width: 130px;
text-align: right;
}
}
.structItem-iconContainer
{
position: relative;
img
{
display: block;
width: 100%;
}
.avatar
{
.m-avatarSize(@_structItem-avatarSize);
}
.structItem-secondaryIcon
{
position: absolute;
right: -5px;
bottom: -5px;
.m-avatarSize(@_structItem-avatarSize / 2 + 2px);
}
.structItem-cell--iconExpanded &
{
.avatar
{
.m-avatarSize(@_structItem-avatarSizeExpanded);
}
.structItem-secondaryIcon
{
.m-avatarSize(@_structItem-avatarSizeExpanded / 2 - 2px);
}
}
}
.structItem-title
{
font-size: @xf-fontSizeLarge;
font-weight: @xf-fontWeightNormal;
margin: 0;
padding: 0;
.label
{
font-weight: @xf-fontWeightNormal;
border: none;
padding: 0px 8px;
line-height: 19px;
border-radius: 2.5px;
color: #fff;
font-size: 12px;
}
.is-unread &
{
font-weight: @xf-fontWeightHeavy;
}
}
.structItem-minor
{
font-size: @xf-fontSizeSmaller;
color: @xf-textColorMuted;
.m-hiddenLinks();
}
.structItem-parts
{
.m-listPlain();
display: inline;
> li
{
display: inline;
margin: 0;
padding: 0;
&:nth-child(even)
{
color: @xf-textColorDimmed;
}
&:before
{
content: "\00B7\20";
}
&:first-child:before
{
content: "";
display: none;
}
}
}
.structItem-pageJump
{
margin-left: 8px;
font-size: @xf-fontSizeSmallest;
a
{
.xf-chip();
text-decoration: none;
border-radius: @xf-borderRadiusSmall;
padding: 0 3px;
opacity: .5;
.m-transition();
.structItem:hover &,
.has-touchevents &
{
opacity: 1;
}
&:hover
{
text-decoration: none;
.xf-chipHover();
}
}
}
.structItem-statuses,
.structItem-extraInfo
{
.m-listPlain();
float: right;
> li
{
float: left;
margin-left: 8px;
}
input[type=checkbox]
{
.m-checkboxAligner();
}
}
.structItem-status
{
&::before
{
.m-faBase();
display: inline-block;
font-size: 90%;
color: @xf-textColorMuted;
}
&--deleted::before { .m-faContent(@fa-var-trash-o, .79em); }
&--locked::before { .m-faContent(@fa-var-lock, .65em); }
&--moderated::before { .m-faContent(@fa-var-shield, .72em); color: @xf-textColorAttention; }
&--redirect::before { .m-faContent(@fa-var-external-link, 1em); }
&--starred::before { .m-faContent(@fa-var-star, .93em); color: @xf-starFullColor; }
&--sticky::before { .m-faContent(@fa-var-thumb-tack, .65em); }
&--watched::before { .m-faContent(@fa-var-eye, 1.04em); color: @xf-textColorFeature; }
&--poll::before { .m-faContent(@fa-var-bar-chart, 1.15em); }
&--attention::before { .m-faContent(@fa-var-bullhorn, 1.04em); color: @xf-textColorAttention; }
}
.structItem.structItem--note
{
.xf-contentHighlightBase();
color: @xf-textColorFeature;
.structItem-cell
{
padding-top: @_structItem-cellPaddingV / 2;
padding-bottom: @_structItem-cellPaddingV / 2;
font-size: @xf-fontSizeSmaller;
text-align: center;
}
}
@media (max-width: @xf-responsiveWide)
{
.structItem-cell
{
vertical-align: top;
&.structItem-cell--meta
{
width: 120px;
font-size: @xf-fontSizeSmaller;
}
&.structItem-cell--latest
{
width: 140px;
font-size: @xf-fontSizeSmaller;
}
}
}
@media (max-width: @xf-responsiveMedium)
{
.structItem-cell
{
//padding: (@_structItem-cellPaddingV) / 2 @_structItem-cellPaddingH;
&.structItem-cell--main
{
display: block;
padding-bottom: .2em;
padding-left: 0;
}
&.structItem-cell--meta
{
display: block;
width: auto;
float: left;
padding-top: 0;
padding-left: 0;
padding-right: 0;
color: @xf-textColorMuted;
.structItem-minor
{
display: none;
}
.pairs
{
> dt,
> dd
{
display: inline;
float: none;
margin: 0;
}
}
}
&.structItem-cell--latest
{
display: block;
width: auto;
float: left;
padding-top: 0;
padding-left: 0;
&:before
{
content: "\00A0\00B7\20";
color: @xf-textColorMuted;
}
a
{
color: @xf-textColorMuted;
}
.structItem-minor
{
display: none;
}
}
}
.structItem-pageJump,
.structItem-extraInfoMinor
{
display: none;
}
.is-unread .structItem-latestDate
{
font-weight: @xf-fontWeightNormal;
}
}
@media (max-width: @xf-responsiveNarrow)
{
.structItem-parts
{
.structItem-startDate
{
display: none;
}
}
}]]></template>
<template title="thread_list_macros" type="public" addon_id="XF" version_id="2001070" version_string="2.0.10"><![CDATA[<xf:macro name="item"
arg-thread="!"
arg-forum=""
arg-forceRead="{{ false }}"
arg-showWatched="{{ true }}"
arg-allowInlineMod="{{ true }}"
arg-chooseName=""
arg-extraInfo=""
arg-allowEdit="{{ true }}">
<xf:css src="structured_list.less" />
<div class="structItem structItem--thread{{ $thread.prefix_id ? ' is-prefix' . $thread.prefix_id : '' }}{{ $thread.isIgnored() ? ' is-ignored' : '' }}{{ ($thread.isUnread() AND !$forceRead) ? ' is-unread' : '' }}{{ $thread.discussion_state == 'moderated' ? ' is-moderated' : '' }}{{ $thread.discussion_state == 'deleted' ? ' is-deleted' : '' }} js-inlineModContainer js-threadListItem-{$thread.thread_id}" data-author="{{ $thread.User.username ?: $thread.username }}">
<div class="structItem-cell structItem-cell--icon">
<div class="structItem-iconContainer">
<xf:if is="$thread.sticky">
<img src="{{ base_url() }}styles/brivium/cerium/extra/stick.png">
<xf:else/>
<xf:if is="$thread.discussion_state == 'moderated'">
<img src="{{ base_url() }}styles/brivium/cerium/extra/aprove.png">
<xf:else/>
<xf:if is="$thread.discussion_state == 'deleted'">
<img src="{{ base_url() }}styles/brivium/cerium/extra/delete.png">
<xf:else/>
<xf:if is="!$thread.discussion_open">
<img src="{{ base_url() }}styles/brivium/cerium/extra/lock.png">
<xf:else/>
<xf:avatar user="null" size="s" defaultname="{$thread.title}" />
<xf:if is="$thread.getUserPostCount()">
<xf:if is="property('MiniAvatar')">
<xf:avatar user="$xf.visitor" size="s"
href=""
class="avatar--separated structItem-secondaryIcon"
title="{{ phrase('you_have_posted_x_messages_in_this_thread', {'count': $thread.getUserPostCount() }) }}" />
</xf:if>
</xf:if>
</xf:if>
</xf:if>
</xf:if>
</xf:if>
</div>
</div>
<div class="structItem-cell structItem-cell--main" data-xf-init="touch-proxy">
<xf:if contentcheck="true">
<ul class="structItem-statuses">
<xf:contentcheck>
<xf:if is="$thread.discussion_type == 'redirect'">
<li>
<i class="structItem-status structItem-status--redirect" aria-hidden="true" title="{{ phrase('redirect')|for_attr }}"></i>
<span class="u-srOnly">{{ phrase('redirect') }}</span>
</li>
<xf:elseif is="$thread.discussion_type == 'poll'" />
<li>
<i class="structItem-status structItem-status--poll" aria-hidden="true" title="{{ phrase('poll')|for_attr }}"></i>
<span class="u-srOnly">{{ phrase('poll') }}</span>
</li>
</xf:if>
<xf:if is="{$showWatched} AND {$xf.visitor.user_id}">
<xf:if is="{$thread.Watch.{$xf.visitor.user_id}}">
<li>
<i class="structItem-status structItem-status--watched" aria-hidden="true" title="{{ phrase('thread_watched')|for_attr }}"></i>
<span class="u-srOnly">{{ phrase('thread_watched') }}</span>
</li>
<xf:elseif is="!$forum AND {$thread.Forum.Watch.{$xf.visitor.user_id}}" />
<li>
<i class="structItem-status structItem-status--watched" aria-hidden="true" title="{{ phrase('forum_watched')|for_attr }}"></i>
<span class="u-srOnly">{{ phrase('forum_watched') }}</span>
</li>
</xf:if>
</xf:if>
<xf:if is="$thread.sticky">
<li>
<i class="structItem-status structItem-status--sticky" aria-hidden="true" title="{{ phrase('sticky')|for_attr }}"></i>
<span class="u-srOnly">{{ phrase('sticky') }}</span>
</li>
</xf:if>
</xf:contentcheck>
</ul>
</xf:if>
<div class="structItem-title">
<xf:set var="$canPreview" value="{{ $thread.canPreview() }}" />
<xf:if is="$thread.prefix_id">
<xf:if is="$forum">
<a href="{{ link('forums', $forum, {'prefix_id': $thread.prefix_id}) }}" class="labelLink" rel="nofollow">{{ prefix('thread', $thread, 'html', '') }}</a>
<xf:else />
{{ prefix('thread', $thread, 'html', '') }}
</xf:if>
</xf:if>
<a href="{{ link('threads' . (($thread.isUnread() AND !$forceRead) ? '/unread' : ''), $thread) }}" class="" data-tp-primary="on" data-xf-init="{{ $canPreview ? 'preview-tooltip' : '' }}" data-preview-url="{{ $canPreview ? link('threads/preview', $thread) : '' }}">{$thread.title}</a>
</div>
<div class="structItem-minor">
<xf:if contentcheck="true">
<ul class="structItem-extraInfo">
<xf:contentcheck>
<xf:if is="{$extraInfo}">
<li>{$extraInfo}</li>
<xf:elseif is="$thread.canEdit() AND $thread.canUseInlineModeration() AND {$allowEdit}" />
<xf:if is="!$allowInlineMod OR !$forum">
<xf:set var="$editParams" value="{{ {
'_xfNoInlineMod': !$allowInlineMod ? 1 : null,
'_xfForumName': !$forum ? 1 : 0
} }}" />
<xf:else />
<xf:set var="$editParams" value="{{ [] }}" />
</xf:if>
<li class="structItem-extraInfoMinor">
<a href="{{ link('threads/edit', $thread) }}" data-xf-click="overlay" data-href="{{ link('threads/edit', $thread, $editParams) }}">
{{ phrase('edit') }}
</a>
</li>
</xf:if>
<xf:if is="$chooseName">
<li><xf:checkbox standalone="true">
<xf:option name="{$chooseName}[]" value="{$thread.thread_id}" class="js-chooseItem" />
</xf:checkbox></li>
<xf:elseif is="$allowInlineMod AND $thread.canUseInlineModeration()" />
<li><xf:checkbox standalone="true">
<xf:option value="{$thread.thread_id}" class="js-inlineModToggle"
data-xf-init="tooltip"
title="{{ phrase('select_for_moderation') }}"
label="{{ phrase('select_for_moderation') }}"
hiddenlabel="true"
/>
</xf:checkbox></li>
</xf:if>
</xf:contentcheck>
</ul>
</xf:if>
<xf:if is="$thread.discussion_state == 'deleted'">
<xf:if is="{$extraInfo}"><span class="structItem-extraInfo">{$extraInfo}</span></xf:if>
<xf:macro template="deletion_macros" name="notice" arg-log="{$thread.DeletionLog}" />
<xf:else />
<ul class="structItem-parts">
<xf:if is="!$forum">
<li><a href="{{ link('forums', $thread.Forum) }}">{$thread.Forum.title}</a></li>
</xf:if>
</ul>
<xf:if is="$thread.discussion_type != 'redirect' && $thread.reply_count >= $xf.options.messagesPerPage && $xf.options.lastPageLinks">
<span class="structItem-pageJump">
<xf:foreach loop="{{ last_pages($thread.reply_count + 1, $xf.options.messagesPerPage, $xf.options.lastPageLinks) }}" value="$p">
<a href="{{ link('threads', $thread, {'page': $p}) }}">{$p}</a>
</xf:foreach>
</span>
</xf:if>
</xf:if>
</div>
</div>
<div class="structItem-cell structItem-cell--meta structItem-cell-hidden-mobile" title="{{ phrase('first_message_likes:')|for_attr }} {$thread.first_post_likes|number}">
<div class="pairs pairs--justified structItem-minor">
<span class="count-number">{{ $thread.discussion_type == 'redirect' ? '–' : ($thread.view_count > $thread.reply_count ? $thread.view_count|number : number($thread.reply_count+1)) }}</span>
<span class="count-text">{{ phrase('views') }}</span>
</div>
</div>
<div class="structItem-cell structItem-cell--meta" title="{{ phrase('first_message_likes:')|for_attr }} {$thread.first_post_likes|number}">
<div class="pairs pairs--justified">
<span class="count-number">{{ $thread.discussion_type == 'redirect' ? '–' : $thread.reply_count|number }}</span>
<span class="count-text">{{ phrase('replies') }}</span>
</div>
</div>
<div class="structItem-cell structItem-cell--latest">
<xf:if is="$thread.discussion_type == 'redirect'">
{{ phrase('n_a') }}
<xf:else />
<div class="structItem-minor">
<xf:if is="$xf.visitor.isIgnoring($thread.last_post_user_id)">
{{ phrase('ignored_member') }}
<xf:else />
<xf:username user="{$thread.last_post_cache}" />
</xf:if>
</div>
<a href="{{ link('threads/latest', $thread) }}" rel="nofollow"><xf:date time="{$thread.last_post_date}" class="structItem-latestDate" /></a>
</xf:if>
</div>
<div class="structItem-cell structItem-cell--avartar hidden-xs">
<xf:avatar user="$thread.LastPoster" size="s" defaultname="{$thread.last_post_cache.username}" />
</div>
</div>
</xf:macro>
<xf:macro name="item_new_posts" arg-thread="!">
<div class="contentRow">
<div class="contentRow-figure">
<xf:avatar user="$thread.LastPoster" size="s" defaultname="{$thread.last_post_username}" />
</div>
<div class="contentRow-main contentRow-main--close">
<xf:if is="$thread.isUnread()">
<a href="{{ link('threads/unread', $thread) }}">{{ prefix('thread', $thread) }}{$thread.title}</a>
<xf:else />
<a href="{{ link('threads/post', $thread, {'post_id': $thread.last_post_id}) }}">{{ prefix('thread', $thread) }}{$thread.title}</a>
</xf:if>
<div class="contentRow-minor contentRow-minor--hideLinks">
<ul class="listInline listInline--bullet">
<li>{{ phrase('latest_x', {'name': $thread.last_post_cache.username}) }}</li>
<li><xf:date time="{$thread.last_post_date}" /></li>
</ul>
</div>
<div class="contentRow-minor contentRow-minor--hideLinks">
<a href="{{ link('forums', $thread.Forum) }}">{$thread.Forum.title}</a>
</div>
</div>
</div>
</xf:macro>
<xf:macro name="item_new_threads" arg-thread="!">
<div class="contentRow">
<div class="contentRow-figure">
<xf:avatar user="$thread.User" size="xxs" defaultname="{$thread.username}" />
</div>
<div class="contentRow-main contentRow-main--close">
<a href="{{ link('threads', $thread) }}">{{ prefix('thread', $thread) }}{$thread.title}</a>
<div class="contentRow-minor contentRow-minor--hideLinks">
<ul class="listInline listInline--bullet">
<li>{{ phrase('started_by_x', {'name': $thread.username}) }}</li>
<li><xf:date time="{$thread.post_date}" /></li>
<li>{{ phrase('replies:') }} {$thread.reply_count|number}</li>
</ul>
</div>
<div class="contentRow-minor contentRow-minor--hideLinks">
<a href="{{ link('forums', $thread.Forum) }}">{$thread.Forum.title}</a>
</div>
</div>
</div>
</xf:macro>
<xf:macro name="quick_thread"
arg-forum="!"
arg-page="1"
arg-order="last_post_date"
arg-direction="desc">
<xf:css src="structured_list.less" />
<xf:if is="$forum.canCreateThread()">
<xf:js src="xf/thread.js" min="1" />
<xf:set var="$inlineMode" value="{{ ($page == 1 && $order == 'last_post_date' && $direction == 'desc') ? true : false }}" />
<xf:form action="{{ link('forums/post-thread', $forum, {'inline-mode': $inlineMode}) }}" class="structItem" ajax="true"
draft="{{ link('forums/draft', $forum) }}"
data-xf-init="quick-thread"
data-focus-activate=".js-titleInput"
data-focus-activate-href="{{ link('forums/post-thread', $forum, {'inline-mode': true}) }}"
data-focus-activate-target=".js-quickThreadFields"
data-insert-target=".js-threadList"
data-replace-target=".js-emptyThreadList">
<div class="structItem-cell structItem-cell--icon">
<div class="structItem-iconContainer">
<xf:avatar user="$xf.visitor" size="s" />
</div>
</div>
<div class="structItem-cell structItem-cell--newThread js-prefixListenContainer">
<xf:formrow rowtype="noGutter noLabel fullWidth noPadding mergeNext"
label="{{ phrase('title') }}">
<xf:prefixinput maxlength="{{ max_length('XF:Thread', 'title') }}"
placeholder="{$forum.thread_prompt}"
title="{{ phrase('post_new_thread_in_this_forum') }}"
prefix-value="{$forum.default_prefix_id}"
type="thread"
prefixes="{{ $forum.getUsablePrefixes() }}"
data-xf-init="tooltip"
rows="1"/>
</xf:formrow>
<div class="js-quickThreadFields inserter-container is-hidden"><!--{{ phrase('loading...') }}--></div>
</div>
</xf:form>
</xf:if>
</xf:macro>]]></template>
<template title="thread_preview" type="public" addon_id="XF" version_id="2000170" version_string="2.0.1"><![CDATA[<div class="tooltip-content-inner">
<div class="user-avatar">
<xf:avatar user="$thread.User" size="s" defaultname="{$thread.username}" />
</div>
<div class="content-thread">
<xf:username user="$thread.User" defaultname="{$thread.username}" />
<a href="{{ link('threads', $thread) }}" rel="nofollow"><xf:date time="{$thread.post_date}" /></a>
{{ bb_code($firstPost.message, 'post:thread_preview', $firstPost, {
'lightbox': false
}) }}
</div>
<span class="tooltip-content-cover"></span>
</div>]]></template>
<template title="thread_view" type="public" addon_id="XF" version_id="2001070" version_string="2.0.10"><![CDATA[<xf:title page="{$page}">{{ prefix('thread', $thread, 'escaped') }}{$thread.title}</xf:title>
<xf:h1>{{ prefix('thread', $thread) }}{$thread.title}</xf:h1>
<xf:description meta="false">
<ul class="listInline listInline--bullet">
<li>
<i class="fa fa-user" aria-hidden="true" title="{{ phrase('thread_starter')|for_attr }}"></i>
<span class="u-srOnly">{{ phrase('thread_starter') }}</span>
<xf:username user="{$thread.User}" defaultname="{$thread.username}" class="u-concealed" />
</li>
<li>
<i class="fa fa-clock-o" aria-hidden="true" title="{{ phrase('start_date')|for_attr }}"></i>
<span class="u-srOnly">{{ phrase('start_date') }}</span>
<a href="{{ link('threads', $thread) }}" class="u-concealed"><xf:date time="{$thread.post_date}" /></a>
</li>
</ul>
</xf:description>
<xf:if is="$xf.options.enableTagging AND ($thread.canEditTags() OR $thread.tags)">
<div class="tag_thread_view">
<div class="text-tags">{{ phrase('tags') }}</div>
<xf:if is="$thread.tags">
<xf:foreach loop="$thread.tags" value="$tag">
<a href="{{ link('tags', $tag) }}" class="tagItem" dir="auto"><span class="arrow"></span>{$tag.tag}</a>
</xf:foreach>
<xf:else />
{{ phrase('none') }}
</xf:if>
<div class="edit-tags">
<xf:if is="$thread.canEditTags()">
<a href="{{ link('threads/tags', $thread) }}" class="u-concealed" data-xf-click="overlay"
data-xf-init="tooltip" title="{{ phrase('edit_tags')|for_attr }}">
<span>{{ phrase('edit') }}</span>
</a>
</xf:if>
</div>
</div>
</xf:if>
<xf:set var="$fpSnippet" value="{{ snippet($firstPost.message, 0, {'stripBbCode': true}) }}" />
<xf:macro template="metadata_macros" name="metadata"
arg-description="{$fpSnippet}"
arg-shareUrl="{{ link('canonical:threads', $thread) }}"
arg-canonicalUrl="{{ link('canonical:threads', $thread, {'page': $page}) }}" />
<xf:page option="ldJsonHtml">
<xf:if is="$thread.User.avatar_highdpi">
<xf:set var="$image">{$thread.User.getAvatarUrl('h', null, true)}</xf:set>
<xf:elseif is="$thread.User.avatar_date" />
<xf:set var="$image">{$thread.User.getAvatarUrl('l', null, true)}</xf:set>
<xf:elseif is="property('publicMetadataLogoUrl')" />
<xf:set var="$image">{{ base_url(property('publicMetadataLogoUrl'), true) }}</xf:set>
</xf:if>
<xf:if is="$image">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "DiscussionForumPosting",
"@id": "{{ link('canonical:threads', $thread)|escape('json') }}",
"headline": "{$thread.title|escape('json')}",
"articleBody": "{$fpSnippet|escape('json')}",
"articleSection": "{$thread.Forum.Node.title|escape('json')}",
"author": {
"@type": "Person",
"name": "{{ ($thread.User ? $thread.User.username : $thread.username)|escape('json') }}"
},
"datePublished": "{{ date($thread.post_date, 'Y-m-d')|escape('json') }}",
"dateModified": "{{ date($thread.last_post_date, 'Y-m-d')|escape('json') }}",
"image": "{$image|escape('json')}",
"interactionStatistic": {
"@type": "InteractionCounter",
"interactionType": "https://schema.org/ReplyAction",
"userInteractionCount": {$thread.reply_count}
}
}
</script>
</xf:if>
</xf:page>
<!--[XF:content_top]-->
<xf:if is="$pendingApproval">
<div class="blockMessage blockMessage--important">{{ phrase('content_submitted_displayed_pending_approval') }}</div>
</xf:if>
<xf:macro template="forum_macros" name="forum_page_options" arg-forum="{$forum}" arg-thread="{$thread}" />
<xf:breadcrumb source="$forum.getBreadcrumbs()" />
<xf:if is="$canInlineMod OR $thread.canUseInlineModeration()">
<xf:js src="xf/inline_mod.js" min="1" />
</xf:if>
<xf:macro template="lightbox_macros" name="setup" arg-canViewAttachments="{$thread.canViewAttachments()}" />
<xf:if is="$poll">
<xf:macro template="poll_macros" name="poll_block" arg-poll="{$poll}" />
</xf:if>
<xf:ad position="thread_view_above_messages" arg-thread="{$thread}" />
<div class="block block--messages" data-xf-init="{{ $canInlineMod ? 'inline-mod' : '' }}" data-type="post" data-href="{{ link('inline-mod') }}">
<xf:macro name="thread_status" arg-thread="{$thread}" arg-wrapperClass="block-outer" />
<div class="block-outer"><xf:trim>
<xf:pagenav
page="{$page}" perpage="{$perPage}" total="{{ $thread.reply_count + 1 }}"
link="threads" data="{$thread}"
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="$thread.discussion_state == 'deleted' AND $thread.canUndelete()">
<xf:button href="{{ link('threads/undelete', $thread) }}" class="button--link" overlay="true">
{{ phrase('undelete') }}
</xf:button>
</xf:if>
<xf:if is="$thread.canApproveUnapprove() AND $thread.discussion_state == 'moderated'">
<xf:button href="{{ link('threads/approve', $thread) }}" class="button--link" overlay="true">
{{ phrase('approve') }}
</xf:button>
</xf:if>
<xf:if is="$xf.visitor.user_id AND $thread.isUnread()">
<xf:button href="{{ $firstUnread ? ('#post-' . $firstUnread.post_id) : link('threads/unread', $thread, {'new': 1}) }}"
class="button--link"
data-xf-click="scroll-to"
data-silent="true">
{{ phrase('jump_to_new') }}
</xf:button>
</xf:if>
<xf:if is="$thread.canWatch()">
<xf:button href="{{ link('threads/watch', $thread) }}" class="button--link"
data-xf-click="switch-overlay"
data-sk-watch="{{ phrase('watch') }}"
data-sk-unwatch="{{ phrase('unwatch') }}">
<xf:if is="{$thread.Watch.{$xf.visitor.user_id}}">
{{ phrase('unwatch') }}
<xf:else />
{{ phrase('watch') }}
</xf:if>
</xf:button>
</xf:if>
<xf:if contentcheck="true">
<div class="buttonGroup-buttonWrapper">
<xf:button class="button--link menuTrigger" data-xf-click="menu" aria-expanded="false" aria-haspopup="true" title="{{ phrase('more_options') }}">•••</xf:button>
<div class="menu" data-menu="menu" aria-hidden="true">
<div class="menu-content">
<h4 class="menu-header">{{ phrase('more_options') }}</h4>
<xf:contentcheck>
<!--[XF:thread_tools_menu:top]-->
<xf:if is="$thread.canEdit()">
<a href="{{ link('threads/edit', $thread) }}" data-xf-click="overlay" class="menu-linkRow">{{ phrase('edit_thread') }}</a>
</xf:if>
<xf:if is="$thread.canLockUnlock()">
<a href="{{ link('threads/quick-close', $thread) }}"
class="menu-linkRow"
data-xf-click="switch"
data-menu-closer="true">
<xf:if is="$thread.discussion_open">
{{ phrase('close_thread') }}
<xf:else />
{{ phrase('open_thread') }}
</xf:if>
</a>
</xf:if>
<xf:if is="$thread.canStickUnstick()">
<a href="{{ link('threads/quick-stick', $thread) }}"
class="menu-linkRow"
data-xf-click="switch"
data-menu-closer="true">
<xf:if is="$thread.sticky">
{{ phrase('unstick_thread') }}
<xf:else />
{{ phrase('stick_thread') }}
</xf:if>
</a>
</xf:if>
<xf:if is="$thread.canCreatePoll()">
<a href="{{ link('threads/poll/create', $thread) }}" data-xf-click="overlay" class="menu-linkRow">{{ phrase('create_poll') }}</a>
</xf:if>
<xf:if is="$thread.canDelete('soft')">
<a href="{{ link('threads/delete', $thread) }}" data-xf-click="overlay" class="menu-linkRow">{{ phrase('delete_thread') }}</a>
</xf:if>
<xf:if is="$thread.canMove()">
<a href="{{ link('threads/move', $thread) }}" data-xf-click="overlay" class="menu-linkRow">{{ phrase('move_thread') }}</a>
</xf:if>
<xf:if is="$thread.canReplyBan()">
<a href="{{ link('threads/reply-bans', $thread) }}" data-xf-click="overlay" class="menu-linkRow">{{ phrase('manage_reply_bans') }}</a>
</xf:if>
<xf:if is="$thread.canViewModeratorLogs()">
<a href="{{ link('threads/moderator-actions', $thread) }}" data-xf-click="overlay" class="menu-linkRow">{{ phrase('moderator_actions') }}</a>
</xf:if>
<!--[XF:thread_tools_menu:before_footer]-->
<xf:if is="$thread.canUseInlineModeration()">
<div class="menu-footer"
data-xf-init="inline-mod"
data-type="thread"
data-href="{{ link('inline-mod') }}"
data-toggle=".js-threadInlineModToggle">
<xf:checkbox>
<xf:option class="js-threadInlineModToggle" value="{$thread.thread_id}">{{ phrase('select_for_moderation') }}</xf:option>
</xf:checkbox>
</div>
</xf:if>
<!--[XF:thread_tools_menu:bottom]-->
</xf:contentcheck>
</div>
</div>
</div>
</xf:if>
</xf:contentcheck>
</div>
</div>
</xf:if>
</xf:trim></div>
<div class="block-outer js-threadStatusField"><xf:trim>
<xf:if contentcheck="true">
<div class="blockStatus blockStatus--info">
<xf:contentcheck>
<xf:macro template="custom_fields_macros" name="custom_fields_view"
arg-type="threads"
arg-group="thread_status"
arg-onlyInclude="{$forum.field_cache}"
arg-set="{$thread.custom_fields}"
arg-wrapperClass="blockStatus-message" />
</xf:contentcheck>
</div>
</xf:if>
</xf:trim></div>
<div class="block-container lbContainer"
data-xf-init="lightbox{{ $xf.options.selectQuotable ? ' select-to-quote' : '' }}"
data-message-selector=".js-post"
data-lb-id="thread-{$thread.thread_id}"
data-lb-universal="{$xf.options.lightBoxUniversal}">
<div class="block-body js-replyNewMessageContainer">
<xf:foreach loop="$posts" value="$post">
<xf:if is="$post.message_state == 'deleted'">
<xf:macro template="post_macros" name="post_deleted"
arg-post="{$post}"
arg-thread="{$thread}" />
<xf:else />
<xf:macro template="post_macros" name="post"
arg-post="{$post}"
arg-thread="{$thread}" />
</xf:if>
</xf:foreach>
</div>
</div>
<xf:if contentcheck="true">
<div class="block-outer block-outer--after">
<xf:contentcheck>
<xf:pagenav
page="{$page}" perpage="{$perPage}" total="{{ $thread.reply_count + 1 }}"
link="threads" data="{$thread}"
wrapperclass="block-outer-main" />
<xf:showignored wrapperclass="block-outer-opposite" />
<xf:if is="!$thread.canReply() AND $thread.discussion_state == 'visible' AND $thread.discussion_open">
<div class="block-outer-opposite">
<xf:if is="$xf.visitor.user_id">
<span class="button is-disabled">
{{ phrase('no_permission_to_reply') }}
<!-- 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_reply') }}
</xf:button>
</xf:if>
</div>
</xf:if>
</xf:contentcheck>
</div>
</xf:if>
<xf:macro name="thread_status" arg-thread="{$thread}" arg-wrapperClass="block-outer block-outer--after" />
</div>
<xf:ad position="thread_view_below_messages" arg-thread="{$thread}" />
<xf:if is="$thread.canReply()">
<xf:form action="{{ link('threads/add-reply', $thread) }}"
ajax="true"
draft="{{ link('threads/draft', $thread) }}"
class="block js-quickReply"
data-xf-init="attachment-manager quick-reply{{ $xf.visitor.isShownCaptcha() ? ' guest-captcha' : '' }}"
data-message-container=".js-replyNewMessageContainer"
data-preview-url="{{ link('threads/reply-preview', $thread, {'quick_reply': 1}) }}">
<xf:js src="xf/message.js" min="1" />
<xf:set var="$lastPost" value="{$posts|last}" />
<div class="block-container">
<div class="block-body">
<xf:macro template="quick_reply_macros" name="body"
arg-message="{$thread.draft_reply.message}"
arg-attachmentData="{$attachmentData}"
arg-forceHash="{$thread.draft_reply.attachment_hash}"
arg-messageSelector=".js-post"
arg-multiQuoteHref="{{ link('threads/multi-quote', $thread) }}"
arg-multiQuoteStorageKey="multiQuoteThread"
arg-lastDate="{$lastPost.post_date}"
arg-lastKnownDate="{$thread.last_post_date}" />
</div>
</div>
</xf:form>
</xf:if>
<div class="blockMessage blockMessage--none">
<xf:macro template="share_page_macros" name="buttons" arg-iconic="{{ true }}" arg-label="{{ phrase('share:') }}" />
</div>
<xf:macro name="thread_status" arg-thread="!" arg-wrapperClass="">
<xf:if contentcheck="true">
<div class="{$wrapperClass}">
<dl class="blockStatus">
<dt>{{ phrase('status') }}</dt>
<xf:contentcheck>
<xf:if is="$thread.discussion_state == 'deleted'">
<dd class="blockStatus-message blockStatus-message--deleted">
<xf:macro template="deletion_macros" name="notice" arg-log="{$thread.DeletionLog}" />
</dd>
<xf:elseif is="$thread.discussion_state == 'moderated'" />
<dd class="blockStatus-message blockStatus-message--moderated">
{{ phrase('awaiting_approval_before_being_displayed_publicly') }}
</dd>
</xf:if>
<xf:if is="!$thread.discussion_open">
<dd class="blockStatus-message blockStatus-message--locked">
{{ phrase('not_open_for_further_replies') }}
</dd>
</xf:if>
</xf:contentcheck>
</dl>
</div>
</xf:if>
</xf:macro>
<xf:widgetpos id="thread_view_sidebar" context-thread="{$thread}" position="sidebar" />]]></template>
<template title="widget_forum_statistics" type="public" addon_id="XF" version_id="2000038" version_string="2.0.0 Beta 8"><![CDATA[<div class="block"{{ widget_data($widget) }}>
<div class="block-container">
<h3 class="block-minorHeader block-forum-static">{$title}</h3>
<div class="block-body block-row forum-static-content">
<dl class="pairs pairs--justified">
<dt>{{ phrase('threads') }}</dt>
<dd>{$forumStatistics.threads|number}</dd>
</dl>
<dl class="pairs pairs--justified">
<dt>{{ phrase('messages') }}</dt>
<dd>{$forumStatistics.messages|number}</dd>
</dl>
<dl class="pairs pairs--justified">
<dt>{{ phrase('members') }}</dt>
<dd>{$forumStatistics.users|number}</dd>
</dl>
<dl class="pairs pairs--justified">
<dt>{{ phrase('latest_member') }}</dt>
<dd><xf:username user="{$forumStatistics.latestUser}" /></dd>
</dl>
</div>
</div>
</div>]]></template>
<template title="widget_members_online" type="public" addon_id="XF" version_id="2000270" version_string="2.0.2"><![CDATA[<xf:if is="$options.staffOnline">
<xf:if contentcheck="true">
<div class="block" data-widget-section="staffMembers"{{ widget_data($widget) }}>
<div class="block-container">
<h3 class="block-minorHeader block-staff"><a href="{{ link('members', null, {'key': 'staff_members'}) }}">{{ phrase('staff_online') }}</a></h3>
<ul class="block-body staff-content">
<xf:contentcheck>
<xf:foreach loop="$online.users" value="$user">
<xf:if is="$user.is_staff">
<li class="block-row">
<div class="contentRow">
<div class="contentRow-figure">
<xf:avatar user="$user" size="xs" />
</div>
<div class="contentRow-main contentRow-main--close">
<xf:username user="$user" rich="true" />
<div class="contentRow-minor">
<xf:usertitle user="$user" />
</div>
</div>
</div>
</li>
</xf:if>
</xf:foreach>
</xf:contentcheck>
</ul>
</div>
</div>
</xf:if>
</xf:if>
<div class="block" data-widget-section="onlineNow"{{ widget_data($widget) }}>
<div class="block-container">
<h3 class="block-minorHeader block-member"><a href="{{ link('online') }}">{$title}</a></h3>
<div class="block-body member-content">
<xf:if contentcheck="true">
<div class="block-row block-row--minor">
<h4 class="block-textHeader block-textHeader--scaled">
{{ phrase('people_you_follow') }}
</h4>
<ul class="listHeap">
<xf:contentcheck>
<xf:if is="$options.followedOnline">
<xf:foreach loop="$online.users" value="$user">
<xf:if is="in_array($user.user_id, $xf.visitor.Profile.following)">
<li>
<xf:avatar user="$user" size="xxs" img="true" />
</li>
</xf:if>
</xf:foreach>
</xf:if>
</xf:contentcheck>
</ul>
</div>
<div class="block-row block-row--minor">
<h4 class="block-textHeader block-textHeader--scaled">
{{ phrase('members') }}
</h4>
<xf:else />
<div class="block-row block-row--minor">
</xf:if>
<xf:if is="$online.users is not empty">
<ul class="listInline listInline--comma">
<xf:foreach loop="$online.users" value="$user"><xf:trim>
<li><xf:username user="$user" rich="true" class="{{ !$user.visible ? 'username--invisible' : '' }}" /></li>
</xf:trim></xf:foreach>
</ul>
<xf:if is="$online.counts.unseen">
<a href="{{ link('online') }}">{{ phrase('ellipsis_and_x_more', {'count': $online.counts.unseen}) }}</a>
</xf:if>
<xf:else />
{{ phrase('no_members_online_now') }}
</xf:if>
</div>
</div>
<div class="block-footer">
<span class="block-footer-counter">{{ phrase('online_now_x_members_y_guests_z',{
'total': number($online.counts.total),
'members': number($online.counts.members),
'guests': number($online.counts.guests)})
}}</span>
</div>
</div>
</div>]]></template>
<template title="widget_new_posts" type="public" addon_id="XF" version_id="2000038" version_string="2.0.0 Beta 8"><![CDATA[<xf:if is="$threads is not empty OR ($threads is empty AND $filter != 'latest')">
<div class="block"{{ widget_data($widget) }}>
<div class="block-container">
<xf:if is="$style == 'full'">
<h3 class="block-header">
<a href="{$link}" rel="nofollow">{$title}</a>
</h3>
<div class="block-body">
<div class="structItemContainer">
<xf:if is="$threads is not empty">
<xf:foreach loop="$threads" value="$thread">
<xf:macro template="thread_list_macros" name="item"
arg-allowInlineMod="{{ false }}"
arg-thread="{$thread}" />
</xf:foreach>
<xf:elseif is="$filter == 'unread'" />
<div class="block-row">
{{ phrase('no_unread_posts_view_latest', {'link': link('whats-new/posts', null, {'skip': 1})}) }}
</div>
<xf:else />
<div class="block-row">
{{ phrase('no_results_found') }}
</div>
</xf:if>
</div>
</div>
<xf:if is="$hasMore">
<div class="block-footer">
<span class="block-footer-controls">
<xf:button href="{$link}" rel="nofollow">{{ phrase('view_more...') }}</xf:button>
</span>
</div>
</xf:if>
<xf:else />
<h3 class="block-minorHeader block-post">
<a href="{$link}" rel="nofollow">{$title}</a>
</h3>
<ul class="block-body post-content">
<xf:if is="$threads is not empty">
<xf:foreach loop="$threads" value="$thread">
<li class="block-row">
<xf:macro template="thread_list_macros" name="item_new_posts"
arg-thread="{$thread}" />
</li>
</xf:foreach>
<xf:elseif is="$filter == 'unread'" />
<li class="block-row block-row--minor">
{{ phrase('no_unread_posts_view_latest', {'link': link('whats-new/posts', null, {'skip': 1})}) }}
</li>
<xf:else />
<li class="block-row block-row--minor">
{{ phrase('no_results_found') }}
</li>
</xf:if>
</ul>
</xf:if>
</div>
</div>
</xf:if>]]></template>
<template title="widget_online_statistics" type="public" addon_id="XF" version_id="2000038" version_string="2.0.0 Beta 8"><![CDATA[<div class="block"{{ widget_data($widget) }}>
<div class="block-container">
<h3 class="block-minorHeader block-static">{$title}</h3>
<div class="block-body block-row">
<dl class="pairs pairs--justified">
<dt>{{ phrase('members_online') }}</dt>
<dd>{$counts.members|number}</dd>
</dl>
<dl class="pairs pairs--justified">
<dt>{{ phrase('guests_online') }}</dt>
<dd>{$counts.guests|number}</dd>
</dl>
<dl class="pairs pairs--justified">
<dt>{{ phrase('total_visitors') }}</dt>
<dd>{$counts.total|number}</dd>
</dl>
</div>
<div class="block-footer">
{{ phrase('totals_may_include_hidden_visitors') }}
</div>
</div>
</div>]]></template>
<template title="widget_share_page" type="public" addon_id="XF" version_id="2000038" version_string="2.0.0 Beta 8"><![CDATA[<xf:if contentcheck="true">
<div class="block"{{ widget_data($widget) }}>
<div class="block-container">
<h3 class="block-minorHeader block-share">{$title}</h3>
<div class="block-body block-row">
<xf:contentcheck>
<xf:macro template="share_page_macros" name="buttons" arg-iconic="{$options.iconic}" />
</xf:contentcheck>
</div>
</div>
</div>
</xf:if>]]></template>
<template title="widget_visitor_panel" type="public" addon_id="XF" version_id="2000038" version_string="2.0.0 Beta 8"><![CDATA[<xf:if is="$xf.visitor.user_id">
<div class="block member-visitor"{{ widget_data($widget) }}>
<xf:macro template="account_visitor_sidebar" name="visitor_panel_row_sidebar" />
</div>
</xf:if>]]></template>
<template title="xfmg_comment_macros" type="public" addon_id="XFMG" version_id="902000470" version_string="2.0.4"><![CDATA[<xf:macro name="comment_list" arg-comments="!" arg-content="!" arg-linkPrefix="!" arg-link="!" arg-linkParams="{{ {} }}" arg-page="!" arg-perPage="!" arg-totalItems="!" arg-pageParam="page" arg-canInlineMod="!">
<xf:if is="$canInlineMod">
<xf:js src="xf/inline_mod.js" min="1" />
</xf:if>
<div class="block block--messages"
data-xf-init="{{ $canInlineMod ? 'inline-mod' : '' }}"
data-type="xfmg_comment"
data-href="{{ link('inline-mod') }}">
<div class="block-outer"><xf:trim>
<xf:pagenav
page="{$page}" perpage="{$perPage}" total="{$totalItems}"
link="{$link}" data="{$content}" params="{$linkParams}"
pageparam="{$pageParam}" 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:contentcheck>
</div>
</div>
</xf:if>
</xf:trim></div>
<div class="block-container"
data-xf-init="{{ $xf.options.selectQuotable ? 'select-to-quote' : '' }}"
data-message-selector=".js-comment">
<div class="block-body js-replyNewCommentContainer">
<xf:if is="$comments is not empty">
<span class="u-anchorTarget" id="comments"></span>
<xf:foreach loop="$comments" value="$comment">
<xf:if is="$comment.comment_state == 'deleted'">
<xf:macro name="comment_deleted" arg-comment="{$comment}" arg-content="{$content}" arg-linkPrefix="{$linkPrefix}" />
<xf:else />
<xf:macro name="comment" arg-comment="{$comment}" arg-content="{$content}" arg-linkPrefix="{$linkPrefix}" />
</xf:if>
</xf:foreach>
<xf:else />
<div class="blockMessage js-replyNoMessages">{{ phrase('xfmg_there_no_comments_to_display') }}</div>
</xf:if>
</div>
</div>
<div class="block-outer block-outer--after">
<xf:pagenav
page="{$page}" perpage="{$perPage}" total="{$totalItems}"
link="{$link}" data="{$content}" params="{$linkParams}"
pageparam="{$pageParam}" wrapperclass="block-outer-main" />
<xf:showignored wrapperclass="block-outer-opposite" />
</div>
</div>
<xf:macro name="comment_add" arg-comments="{$comments}" arg-content="{$content}" arg-linkPrefix="{$linkPrefix}" />
</xf:macro>
<xf:macro name="comment" arg-comment="!" arg-content="!" arg-linkPrefix="!">
<xf:css src="xfmg_comment.less" />
<article class="message message--simple message--comment{{ $comment.isIgnored() ? ' is-ignored' : '' }} js-comment js-inlineModContainer"
data-author="{{ $comment.User.username ?: $comment.username }}"
data-content="xfmg-comment-{$comment.comment_id}">
<span class="u-anchorTarget" id="xfmg-comment-{$comment.comment_id}"></span>
<div class="message-inner">
<div class="message-cell message-cell--user">
<xf:macro template="message_macros" name="user_info_simple" arg-user="{$comment.User}" arg-fallbackName="{$comment.username}" />
</div>
<div class="message-cell message-cell--main">
<div class="js-quickEditTarget">
<div class="message-content js-messageContent">
<header class="message-attribution message-attribution--plain">
<ul class="listInline listInline--bullet">
<li class="message-attribution-user">
<xf:avatar user="$comment.User" size="xxs" />
<h4 class="attribution"><xf:username user="$comment.User" rich="true" defaultname="{$comment.username}" /></h4>
</li>
<li>
<a href="{{ link('media/comments', $comment) }}" class="u-concealed"><xf:date time="$comment.comment_date" /></a>
</li>
<xf:if is="$comment.Rating">
<li>
<xf:macro template="rating_macros" name="rating"
arg-row="{{ false }}"
arg-readOnly="true"
arg-currentRating="{$comment.Rating.rating}"
arg-showSelected="false" />
</li>
</xf:if>
</ul>
</header>
<xf:if is="$comment.comment_state == 'deleted'">
<div class="messageNotice messageNotice--deleted">
<xf:macro template="deletion_macros" name="notice" arg-log="{$comment.DeletionLog}" />
</div>
<xf:elseif is="$comment.comment_state == 'moderated'" />
<div class="messageNotice messageNotice--moderated">
{{ phrase('this_message_is_awaiting_moderator_approval_and_is_invisible_to_normal') }}
</div>
</xf:if>
<xf:if is="$comment.warning_message">
<div class="messageNotice messageNotice--warning">
{$comment.warning_message}
</div>
</xf:if>
<xf:if is="$comment.isIgnored()">
<div class="messageNotice messageNotice--ignored">
{{ phrase('you_are_ignoring_content_by_this_member') }}
</div>
</xf:if>
<div class="message-userContent">
<article class="message-body js-selectToQuote">
{{ bb_code($comment.message, 'xfmg_comment', $comment) }}
<div class="js-selectToQuoteEnd"> </div>
</article>
</div>
<xf:if is="$comment.last_edit_date">
<div class="message-lastEdit">
<xf:if is="$comment.user_id == $comment.last_edit_user_id">
{{ phrase('last_edited:') }} <xf:date time="{$comment.last_edit_date}" />
<xf:else />
{{ phrase('last_edited_by_moderator:') }} <xf:date time="{$comment.last_edit_date}" />
</xf:if>
</div>
</xf:if>
<xf:macro template="message_macros" name="signature" arg-user="{$comment.User}" />
</div>
<footer class="message-footer">
<xf:if contentcheck="true">
<div class="message-actionBar actionBar">
<xf:contentcheck>
<xf:if contentcheck="true">
<div class="actionBar-set actionBar-set--external">
<xf:contentcheck>
<xf:if is="$comment.canLike()">
<a href="{{ link('media/comments/like', $comment) }}" class="actionBar-action actionBar-action--like" data-xf-click="like" data-like-list="< .js-comment | .js-likeList"><xf:if is="$comment.isLiked()">{{ phrase('unlike') }}<xf:else />{{ phrase('like') }}</xf:if></a>
</xf:if>
<xf:if is="$content.canReplyToComment()">
<xf:set var="$quoteLink">{{ link($linkPrefix . '/comment', $content, {'quote': $comment.comment_id}) }}</xf:set>
<xf:if is="$xf.options.multiQuote">
<a href="{$quoteLink}"
class="actionBar-action actionBar-action--mq u-jsOnly js-multiQuote"
title="{{ phrase('toggle_multi_quote_tooltip')|for_attr }}"
data-message-id="{$comment.comment_id}"
data-mq-action="add">
{{ phrase('quote') }}
</a>
</xf:if>
<a href="{$quoteLink}"
class="actionBar-action actionBar-action--reply"
title="{{ phrase('reply_quoting_this_message')|for_attr }}"
data-xf-click="quote"
data-quote-href="{{ link('media/comments/quote', $comment) }}">{{ phrase('reply') }}</a>
</xf:if>
</xf:contentcheck>
</div>
</xf:if>
<xf:if contentcheck="true">
<div class="actionBar-set actionBar-set--internal">
<xf:contentcheck>
<xf:if is="$comment.canEdit()">
<xf:js src="xf/message.js" min="1" />
<a href="{{ link('media/comments/edit', $comment) }}"
class="actionBar-action actionBar-action--edit"
data-xf-click="quick-edit"
data-editor-target="< .js-quickEditTarget">{{ phrase('edit') }}</a>
</xf:if>
<xf:if is="$comment.edit_count AND $comment.canViewHistory()">
<a href="{{ link('media/comments/history', $comment) }}" class="actionBar-action actionBar-action--history actionBar-action--menuItem" data-xf-click="toggle" data-target="< .js-comment | .js-historyTarget">{{ phrase('history') }}</a>
</xf:if>
<xf:if is="$comment.canDelete()">
<a href="{{ link('media/comments/delete', $comment) }}" class="actionBar-action actionBar-action--delete actionBar-action--menuItem" data-xf-click="overlay">{{ phrase('delete') }}</a>
</xf:if>
<xf:if is="$comment.canCleanSpam()">
<a href="{{ link('spam-cleaner', $comment) }}" class="actionBar-action actionBar-action--spam actionBar-action--menuItem" data-xf-click="overlay">{{ phrase('spam') }}</a>
</xf:if>
<xf:if is="$xf.visitor.canViewIps() AND $comment.ip_id">
<a href="{{ link('media/comments/ip', $comment) }}" class="actionBar-action actionBar-action--ip actionBar-action--menuItem" data-xf-click="overlay">{{ phrase('ip') }}</a>
</xf:if>
<xf:if is="$comment.canWarn()">
<a href="{{ link('media/comments/warn', $comment) }}" class="actionBar-action actionBar-action--warn actionBar-action--menuItem">{{ phrase('warn') }}</a>
<xf:elseif is="$comment.warning_id AND $xf.visitor.canViewWarnings()" />
<a href="{{ link('warnings', {'warning_id': $comment.warning_id}) }}" class="actionBar-action actionBar-action--warn actionBar-action--menuItem" data-xf-click="overlay">{{ phrase('view_warning') }}</a>
</xf:if>
<xf:if is="$comment.canReport()">
<a href="{{ link('media/comments/report', $comment) }}" class="actionBar-action actionBar-action--report actionBar-action--menuItem" data-xf-click="overlay">{{ phrase('report') }}</a>
</xf:if>
<a class="actionBar-action actionBar-action--menuTrigger"
data-xf-click="menu"
title="{{ phrase('more_options')|for_attr }}"
role="button"
tabindex="0"
aria-expanded="false"
aria-haspopup="true">•••</a>
<div class="menu" data-menu="menu" aria-hidden="true" data-menu-builder="actionBar">
<div class="menu-content">
<h4 class="menu-header">{{ phrase('more_options') }}</h4>
<div class="js-menuBuilderTarget"></div>
</div>
</div>
<xf:if is="$comment.canUseInlineModeration()">
<xf:checkbox standalone="true"><xf:option
labelclass="actionBar-action actionBar-action--inlineMod"
class="js-inlineModToggle"
value="{$comment.comment_id}"
data-xf-init="tooltip"
title="{{ phrase('select_for_moderation')|for_attr }}" /></xf:checkbox>
</xf:if>
</xf:contentcheck>
</div>
</xf:if>
</xf:contentcheck>
</div>
</xf:if>
<div class="likesBar js-likeList {{ $comment.likes ? 'is-active' : '' }}">
<xf:likes content="{$comment}" url="{{ link('media/comments/likes', $comment) }}" />
</div>
</footer>
<div class="js-historyTarget toggleTarget" data-href="trigger-href"></div>
</div>
</div>
</div>
</article>
</xf:macro>
<xf:macro name="comment_simple"
arg-comment="!"
arg-content="!">
<div class="contentRow">
<div class="contentRow-figure">
<xf:avatar user="$comment.User" size="xxs" defaultname="{$comment.username}" />
</div>
<div class="contentRow-main contentRow-main--close">
<a href="{{ link('media/comments', $comment) }}">{$content.title}</a>
<div class="contentRow-snippet">
{{ smilie(snippet($comment.message, 150, {'stripBbCode': true, 'stripQuote': true})) }}
</div>
<div class="contentRow-minor contentRow-minor--hideLinks">
<ul class="listInline listInline--bullet">
<li><xf:date time="{$comment.comment_date}" /></li>
</ul>
</div>
</div>
</div>
</xf:macro>
<xf:macro name="comment_deleted" arg-comment="!" arg-content="!" arg-linkPrefix="!">
<xf:css src="xfmg_comment.less" />
<section class="message message--simple message--deleted message--comment{{ $comment.isIgnored() ? ' is-ignored' : '' }} js-comment js-inlineModContainer"
data-author="{{ $comment.User.username ?: $comment.username }}"
data-content="xfmg-comment-{$comment.comment_id}">
<span class="u-anchorTarget" id="xfmg-comment-{$comment.comment_id}"></span>
<div class="message-inner">
<div class="message-cell message-cell--user">
<xf:macro template="message_macros" name="user_info_simple" arg-user="{$comment.User}" arg-fallbackName="{$comment.username}" />
</div>
<div class="message-cell message-cell--main">
<header class="message-attribution message-attribution--plain">
<ul class="listInline listInline--bullet">
<li class="message-attribution-user">
<xf:avatar user="$comment.User" size="xxs" />
<h4 class="attribution"><xf:username user="$comment.User" rich="true" defaultname="{$comment.username}" /></h4>
</li>
<li><xf:date time="$comment.comment_date" /></li>
</ul>
</header>
<div class="messageNotice messageNotice--deleted">
<xf:macro template="deletion_macros" name="notice" arg-log="{$comment.DeletionLog}" />
<a href="{{ link('media/comments/show', $comment) }}" class="u-jsOnly" data-xf-click="inserter" data-replace="[data-content=xfmg-comment-{$comment.comment_id}]">{{ phrase('show...') }}</a>
</div>
</div>
</div>
</section>
</xf:macro>
<xf:macro name="comment_add" arg-comments="!" arg-content="!" arg-linkPrefix="!">
<xf:if is="$content.canAddComment()">
<xf:form action="{{ link($linkPrefix . '/add-comment', $content) }}"
ajax="true"
draft="{{ link($linkPrefix . '/draft', $content) }}"
class="block js-quickReply"
data-xf-init="quick-reply{{ $xf.visitor.isShownCaptcha() ? ' guest-captcha' : '' }}"
data-message-container="< :prev | .js-replyNewCommentContainer"
data-preview-url="{{ link($linkPrefix . '/preview', $content, {'quick_reply': 1}) }}">
<xf:js src="xf/message.js" min="1" />
<xf:set var="$lastPost" value="{$comments|last}" />
<div class="block-container">
<div class="block-body">
<xf:macro template="quick_reply_macros" name="body"
arg-message="{$content.draft_comment.message}"
arg-messageSelector=".js-comment"
arg-supportsMultiQuote="{$xf.options.multiQuote}"
arg-multiQuoteHref="{{ link($linkPrefix . '/multi-quote', $content) }}"
arg-multiQuoteStorageKey="multiQuoteMediaItem"
arg-simple="{{ true }}"
arg-submitText="{{ phrase('post_comment') }}"
arg-lastDate="{$lastPost.comment_date}" />
</div>
</div>
</xf:form>
</xf:if>
</xf:macro>]]></template>
<template title="xfmg_item_list.less" type="public" addon_id="XFMG" version_id="902000470" version_string="2.0.4"><![CDATA[@_stripThumbSize: 50px;
@_thumbSize: xf-option('xfmgThumbnailDimensions.width', px);
.itemList
{
display: flex;
flex-flow: row wrap;
margin: @xf-paddingSmall;
&.itemList--strip
{
justify-content: center;
min-height: @_stripThumbSize + (@xf-paddingSmall * 2);
@media (max-width: @xf-responsiveNarrow)
{
min-height: @_stripThumbSize / 1.3 + (@xf-paddingSmall * 2);
}
@media (max-width: 360px)
{
min-height: @_stripThumbSize / 1.9 + (@xf-paddingSmall * 2);
}
}
&.itemList--slider
{
display: block;
margin: 0;
.itemList-item--slider
{
margin: 0;
display: none;
.lightSlider--loaded &
{
display: block;
}
.itemList-itemTypeIcon
{
display: none;
}
}
}
}
.itemList-item
{
flex: auto;
width: (@_thumbSize) / 1.6;
max-width: @_thumbSize;
margin: @xf-paddingSmall;
position: relative;
overflow: hidden;
.itemList--strip &
{
justify-items: center;
width: (@_stripThumbSize) / 1.6;
max-width: @_stripThumbSize;
margin-top: auto;
margin-bottom: auto;
opacity: 1;
.m-transition(opacity);
&.itemList-item--fading
{
opacity: 0 !important;
}
}
@media (max-width: @xf-responsiveNarrow)
{
width: (@_thumbSize) / 2;
.itemList--strip && // for extra specificity
{
max-width: (@_stripThumbSize) / 1.3;
}
}
@media (max-width: 360px)
{
.itemList--strip &&
{
max-width: (@_stripThumbSize) / 1.9;
}
}
&.itemList-item--placeholder
{
margin-top: 0;
margin-bottom: 0;
height: 0;
.itemList--strip &
{
.xf-contentAltBase();
.xf-blockBorder();
margin-top: inherit;
margin-bottom: inherit;
height: initial;
opacity: 0.7;
}
}
}
.itemList-button
{
.xf-contentAltBase();
.xf-blockBorder();
width: 25px;
border-radius: @xf-borderRadiusMedium;
color: @xf-linkColor;
display: block;
position: relative;
margin: @xf-paddingSmall;
cursor: pointer;
&.is-disabled
{
display: none;
}
&.is-loading
{
.xf-buttonDisabled();
pointer-events: none;
cursor: default;
}
}
.itemList-button-icon
{
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
.m-faBase();
font-size: 1.2em;
.itemList-button--next &
{
&:before
{
.m-faContent(@fa-var-chevron-right, .71em, ltr);
.m-faContent(@fa-var-chevron-left, .71em, rtl);
}
}
.itemList-button--prev &
{
&:before
{
.m-faContent(@fa-var-chevron-left, .71em, ltr);
.m-faContent(@fa-var-chevron-right, .71em, rtl);
}
}
}
.itemList-itemTypeIcon
{
position: absolute;
top: @xf-paddingMedium;
right: @xf-paddingMedium;
z-index: @zIndex-1;
width: 20px;
height: 20px;
display: flex;
align-items: center;
justify-content: center;
.m-textOutline(white, black, thin);
color: #fff;
opacity: 0.6;
.has-touchevents &,
.itemList-item:hover &,
.itemList-item.is-mod-selected &
{
opacity: 1;
}
.m-faBase;
&::after
{
font-size: @xf-fontSizeLargest;
}
}
@_overlayHeight: 52px;
.itemList-itemOverlay
{
width: 100%;
height: @_overlayHeight;
bottom: -@_overlayHeight;
position: absolute;
background-color: rgba(0, 0, 0, 0.6);
.m-hiddenLinks();
.m-transition();
padding: 4px;
overflow: hidden;
.has-touchevents &,
.itemList-item:hover &
{
bottom: 0;
}
.itemList-item.is-mod-selected &
{
bottom: 0;
background: @xf-inlineModHighlightColor;
}
a:hover
{
text-decoration: none;
}
}
.itemList-itemOverlayTop
{
cursor: pointer;
position: absolute;
top: 3px;
left: 3px;
z-index: @zIndex-3;
width: 25px;
height: 25px;
border-radius: @xf-borderRadiusMedium;
display: flex;
align-items: center;
justify-content: center;
opacity: 0;
.has-touchevents &,
.itemList-item:hover &
{
opacity: 1;
}
.itemList-item.is-mod-selected &
{
opacity: 1;
background: @xf-inlineModHighlightColor;
&.iconic
{
> input
{
+ i:before
{
color: @xf-textColorDimmed;
}
&:hover
{
+ i:before
{
color: @xf-textColorDimmed;
}
}
}
}
}
&&.iconic
{
> input
{
+ i:before
{
color: #fff !important;
display: inline;
vertical-align: -0.05em;
}
&:hover
{
+ i:before
{
color: xf-intensify(#fff, 15%);
}
}
}
}
}
.itemInfoRow
{
display: flex;
align-items: center;
.has-no-flexbox &
{
display: table;
width: 100%;
}
}
.itemInfoRow-avatar
{
.has-no-flexbox &
{
display: table-cell;
width: 1%;
vertical-align: middle;
}
white-space: nowrap;
word-wrap: normal;
text-align: center;
}
.itemInfoRow-main
{
flex: 1;
min-width: 0;
vertical-align: top;
text-shadow: 0 0 2px rgba(0, 0, 0, 0.6);
color: #fff;
.itemList-item.is-mod-selected &
{
text-shadow: none;
color: @xf-textColorDimmed;
}
.has-no-flexbox &
{
display: table-cell;
}
&:before
{
// because of line height, there appears to be extra space at the top of this
content: '';
display: block;
margin-top: -.18em;
}
}
.itemInfoRow-title
{
margin: 0;
padding: 0 0 0 @xf-paddingSmall;
font-size: @xf-fontSizeSmall;
font-weight: @xf-fontWeightNormal;
.m-overflowEllipsis();
}
.itemInfoRow-status
{
margin: 0;
padding: 0 0 0 @xf-paddingSmall;
font-size: @xf-fontSizeSmallest;
overflow: hidden;
white-space: nowrap;
}]]></template>
<template title="xfmg_media_list_macros" type="public" addon_id="XFMG" version_id="902000070" version_string="2.0.0"><![CDATA[<xf:macro template="xfmg_media_list_macros" name="media_create_message" arg-transcoding="{$transcoding}" arg-pendingApproval="{$pendingApproval}">
<xf:if is="$transcoding">
<div class="blockMessage blockMessage--important">
{{ phrase('xfmg_one_or_more_of_your_videos_needs_to_be_processed') }}
</div>
</xf:if>
<xf:if is="$pendingApproval">
<div class="blockMessage blockMessage--important">
{{ phrase('content_submitted_displayed_pending_approval') }}
</div>
</xf:if>
</xf:macro>
<xf:macro name="media_list" arg-mediaItems="!" arg-allowInlineMod="{{ true }}" arg-forceInlineMod="{{ false }}">
<xf:css src="xfmg_media_list.less" />
<div class="itemList">
<xf:foreach loop="$mediaItems" value="$mediaItem">
<xf:macro name="media_list_item"
arg-mediaItem="{$mediaItem}"
arg-allowInlineMod="{$allowInlineMod}"
arg-forceInlineMod="{$forceInlineMod}" />
</xf:foreach>
<xf:macro name="media_list_placeholders" />
</div>
</xf:macro>
<xf:macro name="list_filter_bar" arg-filters="!" arg-baseLinkPath="!" arg-linkData="{{ null }}" arg-ownerFilter="{{ null }}">
<xf:set var="$sortOrders" value="{{ {
'media_date': phrase('date'),
'comment_count': phrase('xfmg_comments'),
'rating_weighted': phrase('rating'),
'likes': phrase('likes'),
'view_count': phrase('views')
} }}" />
<div class="block-filterBar">
<div class="filterBar">
<xf:if contentcheck="true">
<ul class="filterBar-filters">
<xf:contentcheck>
<xf:if is="$filters.type">
<li><a href="{{ link($baseLinkPath, $linkData, $filters|replace('type', null)) }}"
class="filterBar-filterToggle" data-xf-init="tooltip" title="{{ phrase('remove_this_filter')|for_attr }}">
<span class="filterBar-filterToggle-label">{{ phrase('type:') }}</span>
<xf:if is="$filters.type == 'image'">
{{ phrase('xfmg_images') }}
<xf:elseif is="$filters.type == 'audio'" />
{{ phrase('xfmg_audio') }}
<xf:elseif is="$filters.type == 'video'" />
{{ phrase('xfmg_videos') }}
<xf:elseif is="$filters.type == 'embed'" />
{{ phrase('xfmg_embeds') }}
</xf:if>
</a></li>
</xf:if>
<xf:if is="$filters.owner_id AND $ownerFilter">
<li><a href="{{ link($baseLinkPath, $linkData, $filters|replace('owner_id', null)) }}"
class="filterBar-filterToggle" data-xf-init="tooltip" title="{{ phrase('remove_this_filter')|for_attr }}">
<span class="filterBar-filterToggle-label">{{ phrase('xfmg_media_owner:') }}</span>
{$ownerFilter.username}</a></li>
</xf:if>
<xf:if is="$filters.order AND {$sortOrders.{$filters.order}}">
<li><a href="{{ link($baseLinkPath, $linkData, $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($baseLinkPath . '/filters', $linkData, $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:macro>
<xf:macro name="media_list_item" arg-mediaItem="!" arg-allowInlineMod="{{ true }}" arg-forceInlineMod="{{ false }}">
<div class="itemList-item js-inlineModContainer{{ $mediaItem.isIgnored() ? ' is-ignored' : '' }}" data-author="{{ $mediaItem.User.username ?: $mediaItem.username }}">
<xf:if is="$allowInlineMod">
<xf:macro name="media_list_item_inline_mod"
arg-mediaItem="{$mediaItem}"
arg-forceInlineMod="{$forceInlineMod}" />
</xf:if>
<xf:macro name="media_list_item_type_icon" arg-mediaItem="{$mediaItem}" />
<div class="thumbnailContainer">
<a href="{{ link('media', $mediaItem) }}">
<xf:macro name="media_list_item_thumb" arg-mediaItem="{$mediaItem}" />
</a>
<div class="overlay--image">
<div class="overlay--content">
<div class="overlay--author">
<span><i class="fa fa-user" title="{{ phrase('xfmg_media_owner')|for_attr }}" aria-hidden="true"></i> <xf:username user="$mediaItem.User" defaultname="{$mediaItem.username}" /></span>
<span><i class="fa fa-clock-o" title="{{ phrase('xfmg_date_added')|for_attr }}" aria-hidden="true"></i> {{ date($mediaItem.media_date, 'absolute') }}</span>
</div>
<div class="overlay--title">
<h3 class="itemInfoRow-title">
<a href="{{ link('media', $mediaItem) }}">{$mediaItem.title}</a>
</h3>
</div>
</div>
</div>
</div>
<xf:macro name="media_list_item_overlay" arg-mediaItem="{$mediaItem}" />
</div>
</xf:macro>
<xf:macro name="media_list_item_struct_item" arg-item="!" arg-chooseName="" arg-extraInfo="">
<xf:css src="structured_list.less" />
<xf:if is="$item.LastComment AND $item.LastComment.isUnread()">
<xf:set var="$link">{{ link(($item.content_type == 'xfmg_media' ? 'media/media-comments/unread' : 'media/album-comments/unread'), $item) }}</xf:set>
<xf:else />
<xf:set var="$link">{{ link(($item.content_type == 'xfmg_media' ? 'media' : 'media/albums'), $item) }}</xf:set>
</xf:if>
<div class="structItem structItem--middle{{ ($item.LastComment AND $item.LastComment.isUnread()) ? ' is-unread' : '' }}" data-author="{{ $item.User.username ?: $item.username }}">
<div class="structItem-cell structItem-cell--icon structItem-cell--iconFixedSmall">
<div class="structItem-iconContainer">
<a href="{$link}">
{{ xfmg_thumbnail($item, 'xfmgThumbnail--small', true) }}
</a>
<xf:avatar user="$item.User" size="s"
href="" class="avatar--separated structItem-secondaryIcon" />
</div>
</div>
<div class="structItem-cell structItem-cell--main" data-xf-init="touch-proxy">
<div class="structItem-title">
<a href="{$link}" class="" data-tp-primary="on">{$item.title}</a>
</div>
<div class="structItem-minor">
<xf:if contentcheck="true">
<ul class="structItem-extraInfo">
<xf:contentcheck>
<xf:if is="{$extraInfo}">
<li>{$extraInfo}</li>
</xf:if>
<xf:if is="$chooseName">
<li><xf:checkbox standalone="true">
<xf:if is="$item.content_type == 'xfmg_media'">
<xf:option name="{$chooseName}[]" value="{$item.media_id}" class="js-chooseItem" />
<xf:else />
<xf:option name="{$chooseName}[]" value="{$item.album_id}" class="js-chooseItem" />
</xf:if>
</xf:checkbox></li>
</xf:if>
</xf:contentcheck>
</ul>
</xf:if>
<ul class="structItem-parts">
<li><xf:username user="{$item.User}" defaultname="{$item.username}" /></li>
<xf:if is="$item.content_type == 'xfmg_media'">
<li>{{ phrase('xfmg_media_item') }}</li>
<li><xf:date time="{$item.media_date}" /></li>
<xf:else />
<li>{{ phrase('xfmg_album') }}</li>
<li><xf:date time="{$item.create_date}" /></li>
</xf:if>
<xf:if is="$item.category_id AND $item.Category">
<li>{{ phrase('xfmg_category:') }} {$item.Category.title}</li>
</xf:if>
<xf:if is="$item.content_type == 'xfmg_media' AND $item.Album">
<li>{{ phrase('xfmg_album:') }} {$item.Album.title}</li>
</xf:if>
</ul>
</div>
</div>
<div class="structItem-cell structItem-cell--meta">
<dl class="pairs pairs--justified">
<dt>{{ phrase('comments') }}</dt>
<dd>{$item.comment_count|number}</dd>
</dl>
</div>
<div class="structItem-cell structItem-cell--latest">
<xf:if is="$item.LastComment">
<a href="{{ link('media/comments', $item.LastComment) }}" rel="nofollow"><xf:date time="{$item.last_comment_date}" class="structItem-latestDate" /></a>
<div class="structItem-minor">
<xf:username user="{$item.LastCommenter}" />
</div>
<xf:else />
-
</xf:if>
</div>
</div>
</xf:macro>
<xf:macro name="media_list_item_slider" arg-mediaItem="!">
<div class="itemList-item itemList-item--slider">
<a href="{{ link('media', $mediaItem) }}">
<xf:macro name="media_list_item_thumb" arg-mediaItem="{$mediaItem}" />
</a>
</div>
</xf:macro>
<xf:macro name="media_list_item_inline_mod" arg-mediaItem="!" arg-forceInlineMod="{{ false }}">
<xf:if is="$mediaItem.canUseInlineModeration() OR $forceInlineMod">
<xf:checkbox standalone="true">
<xf:option value="{$mediaItem.media_id}"
labelclass="itemList-itemOverlayTop"
class="js-inlineModToggle"
data-xf-init="{{ $mediaItem.canUseInlineModeration() ? 'tooltip' : '' }}"
title="{{ $mediaItem.canUseInlineModeration() ? phrase('select_for_moderation')|for_attr : '' }}" />
</xf:checkbox>
</xf:if>
</xf:macro>
<xf:macro name="media_list_item_type_icon" arg-mediaItem="!">
<xf:if is="$mediaItem.media_type == 'embed'">
<div class="itemList-itemTypeIcon itemList-itemTypeIcon--embed itemList-itemTypeIcon--embed--{$mediaItem.media_site_id}"></div>
<xf:else />
<div class="itemList-itemTypeIcon itemList-itemTypeIcon--{$mediaItem.media_type}"></div>
</xf:if>
</xf:macro>
<xf:macro name="media_list_item_icon_type" arg-mediaItem="!">
<xf:if is="$mediaItem.media_type == 'image'">
<div class="icon-type">
<a href="{{ link('media', $mediaItem) }}"><i class="fa fa-picture-o" aria-hidden="true"></i></a>
</div>
<xf:else />
<div class="icon-type">
<a href="{{ link('media', $mediaItem) }}"><i class="fa fa-play" aria-hidden="true"></i></a>
</div>
</xf:if>
</xf:macro>
<xf:macro name="media_list_item_thumb" arg-mediaItem="!">
{{ xfmg_thumbnail($mediaItem, 'xfmgThumbnail--fluid', true) }}
</xf:macro>
<xf:macro name="media_list_item_overlay" arg-mediaItem="!">
<div class="itemList-itemOverlay">
<div class="itemInfoRow">
<div class="itemInfoRow-main">
<div class="itemInfoRow-status">
<ul class="listInline listInline--bullet">
<li><img src="{{ base_url() }}styles/brivium/cerium/extra/view.png">{$mediaItem.view_count|number_short}</li>
<li><img src="{{ base_url() }}styles/brivium/cerium/extra/comment.png">{$mediaItem.comment_count|number_short}</li>
<li><img src="{{ base_url() }}styles/brivium/cerium/extra/like.png">{$mediaItem.likes|number_short}</li>
<li><img src="{{ base_url() }}styles/brivium/cerium/extra/rate.png">{$mediaItem.rating_count|number_short}</li>
</ul>
</div>
</div>
</div>
</div>
</xf:macro>
<xf:macro name="media_list_placeholders" arg-start="1" arg-end="10">
<xf:foreach loop="{{ range($start, $end) }}" value="$placeholder">
<div class="itemList-item itemList-item--placeholder"></div>
</xf:foreach>
</xf:macro>]]></template>
<template title="xfmg_media_view" type="public" addon_id="XFMG" version_id="902000470" version_string="2.0.4"><![CDATA[<xf:title>{$mediaItem.title}</xf:title>
<xf:h1 hidden="true" />
<xf:css src="xfmg_media_view.less" />
<xf:js prod="xfmg/image_noter-compiled.js" dev="xfmg/vendor/cropper/cropper.js, xfmg/image_noter.js" />
<xf:macro template="xfmg_page_macros" name="xfmg_page_options" arg-album="{$mediaItem.Album}" arg-category="{$mediaItem.Category}" arg-mediaItem="{$mediaItem}" />
<xf:set var="$descSnippet" value="{{ snippet($mediaItem.description, 250) }}" />
<xf:macro template="metadata_macros" name="metadata"
arg-description="{$descSnippet}"
arg-shareUrl="{{ link('canonical:media', $mediaItem) }}"
arg-imageUrl="{$mediaItem.getCurrentThumbnailUrl(true)}"
arg-canonicalUrl="{{ link('canonical:media', $mediaItem, {'page': $page}) }}" />
<xf:page option="ldJsonHtml">
<script type="application/ld+json">
{$mediaItem.structured_data|json(true)|raw}
</script>
</xf:page>
<xf:breadcrumb source="$mediaItem.getBreadcrumbs(false)" />
<xf:macro template="xfmg_media_view_macros" name="media_status" arg-mediaItem="{$mediaItem}" />
<div class="media">
<xf:if is="$filmStripParams.prevItem">
<a href="{{ link('media', $filmStripParams.prevItem) }}" class="media-button media-button--prev" data-xf-key="ArrowLeft"><i class="media-button-icon"></i></a>
</xf:if>
<div class="media-container"
data-xf-init="{{ ($mediaItem.media_type == 'image') ? 'image-noter' : '' }}"
data-toggle-id="#js-noterToggle"
data-edit-url="{{ link('media/note-edit', $mediaItem) }}">
<xf:macro template="xfmg_media_view_macros" name="media_content" arg-mediaItem="{$mediaItem}" arg-mediaNotes="{$mediaNotes}" />
</div>
<xf:if is="$filmStripParams.nextItem">
<a href="{{ link('media', $filmStripParams.nextItem) }}" class="media-button media-button--next" data-xf-key="ArrowRight"><i class="media-button-icon"></i></a>
</xf:if>
</div>
<div class="block js-mediaInfoBlock">
<xf:macro template="xfmg_media_view_macros" name="media_film_strip" arg-mediaItem="{$mediaItem}" arg-filmStripParams="{$filmStripParams}" />
<div class="block-container">
<div class="block-body block-row xfmgInfoBlock">
<xf:macro template="custom_fields_macros" name="custom_fields_view"
arg-type="xfmgMediaFields"
arg-group="below_media"
arg-onlyInclude="{{ $mediaItem.category_id ? $mediaItem.Category.field_cache : $mediaItem.Album.field_cache }}"
arg-set="{$mediaItem.custom_fields}" />
<xf:if contentcheck="true">
<div class="actionBar">
<xf:contentcheck>
<xf:if contentcheck="true">
<div class="actionBar-set actionBar-set--external">
<xf:contentcheck>
<xf:if is="$mediaItem.canLike()">
<a href="{{ link('media/like', $mediaItem) }}"
class="actionBar-action actionBar-action--like"
data-xf-click="like"
data-like-list="< .js-mediaInfoBlock | .js-likeList">
<xf:if is="$mediaItem.isLiked()">{{ phrase('unlike') }}<xf:else />{{ phrase('like') }}</xf:if>
</a>
</xf:if>
</xf:contentcheck>
</div>
</xf:if>
<xf:if contentcheck="true">
<div class="actionBar-set actionBar-set--internal">
<xf:contentcheck>
<xf:if is="$mediaItem.canReport()">
<a href="{{ link('media/report', $mediaItem) }}"
class="actionBar-action actionBar-action--report actionBar-action--menuItem"
data-xf-click="overlay">{{ phrase('report') }}</a>
</xf:if>
<xf:set var="$hasActionBarMenu" value="{{ false }}" />
<xf:if is="$mediaItem.canEdit()">
<a href="{{ link('media/edit', $mediaItem) }}"
class="actionBar-action actionBar-action--edit actionBar-action--menuItem"
data-xf-click="overlay">{{ phrase('edit') }}</a>
<xf:set var="$hasActionBarMenu" value="{{ true }}" />
</xf:if>
<xf:if is="$mediaItem.canDelete()">
<a href="{{ link('media/delete', $mediaItem) }}"
class="actionBar-action actionBar-action--delete actionBar-action--menuItem"
data-xf-click="overlay">{{ phrase('delete') }}</a>
<xf:set var="$hasActionBarMenu" value="{{ true }}" />
</xf:if>
<xf:if is="$mediaItem.canCleanSpam()">
<a href="{{ link('spam-cleaner', $mediaItem) }}"
class="actionBar-action actionBar-action--spam actionBar-action--menuItem"
data-xf-click="overlay">{{ phrase('spam') }}</a>
<xf:set var="$hasActionBarMenu" value="{{ true }}" />
</xf:if>
<xf:if is="$xf.visitor.canViewIps() AND $mediaItem.ip_id">
<a href="{{ link('media/ip', $mediaItem) }}"
class="actionBar-action actionBar-action--ip actionBar-action--menuItem"
data-xf-click="overlay">{{ phrase('ip') }}</a>
<xf:set var="$hasActionBarMenu" value="{{ true }}" />
</xf:if>
<xf:if is="$mediaItem.canWarn()">
<a href="{{ link('media/warn', $mediaItem) }}"
class="actionBar-action actionBar-action--warn actionBar-action--menuItem">{{ phrase('warn') }}</a>
<xf:set var="$hasActionBarMenu" value="{{ true }}" />
<xf:elseif is="$mediaItem.warning_id AND $xf.visitor.canViewWarnings()" />
<a href="{{ link('warnings', {'warning_id': $mediaItem.warning_id}) }}"
class="actionBar-action actionBar-action--warn actionBar-action--menuItem"
data-xf-click="overlay">{{ phrase('view_warning') }}</a>
<xf:set var="$hasActionBarMenu" value="{{ true }}" />
</xf:if>
<xf:if is="$hasActionBarMenu">
<a class="actionBar-action actionBar-action--menuTrigger"
data-xf-click="menu"
title="{{ phrase('more_options')|for_attr }}"
role="button"
tabindex="0"
aria-expanded="false"
aria-haspopup="true">•••</a>
<div class="menu" data-menu="menu" aria-hidden="true" data-menu-builder="actionBar">
<div class="menu-content">
<h4 class="menu-header">{{ phrase('more_options') }}</h4>
<div class="js-menuBuilderTarget"></div>
</div>
</div>
</xf:if>
</xf:contentcheck>
</div>
</xf:if>
</xf:contentcheck>
</div>
</xf:if>
<div class="likesBar js-likeList{{ $mediaItem.likes ? ' is-active' : '' }}">
<xf:likes content="{$mediaItem}" url="{{ link('media/likes', $mediaItem) }}" />
</div>
</div>
</div>
</div>
<div class="block js-mediaInfoBlock block-title-media-view-top">
<div class="block-container">
<div class="block-body block-row xfmgInfoBlock">
<div class="xfmgInfoBlock-title">
<div class="contentRow contentRow--alignMiddle">
<div class="contentRow-main">
<div class="contentRow-lesser p-description">
<div class="media-item--user">
<xf:avatar user="$mediaItem.User" size="s" defaultname="{$mediaItem.username}" class="avatar-s40 avatar-circle"/>
<xf:username user="{$mediaItem.User}" defaultname="{$mediaItem.username}" class="u-concealed" />
</div>
<div class="media-item--info">
<span class="item count-view"><img src="{{ base_url() }}styles/brivium/cerium/extra/mess-eye.png">{$mediaItem.view_count|number}</span>
<span class="item count-replie"><img src="{{ base_url() }}styles/brivium/cerium/extra/mess-post.png">{$mediaItem.comment_count|number}</span>
<span class="item media-date"><i class="fa fa-clock-o" title="{{ phrase('xfmg_date_added')|for_attr }}" aria-hidden="true"></i> <xf:date time="{$mediaItem.media_date}" /></span>
</div>
</div>
<h1 class="contentRow-title p-title-value"><xf:h1 /></h1>
<div class="brv--tag__position">
<xf:if is="$xf.options.enableTagging AND ($mediaItem.canEditTags() OR $mediaItem.tags)">
<li><i class="fa fa-tags" title="{{ phrase('tags')|for_attr }}"></i>
<xf:if is="$mediaItem.tags">
<xf:foreach loop="$mediaItem.tags" value="$tag">
<a href="{{ link('tags', $tag) }}" class="tagItem">{$tag.tag}</a>
</xf:foreach>
<xf:else />
{{ phrase('none') }}
</xf:if>
<xf:if is="$mediaItem.canEditTags()">
<a href="{{ link('media/tags', $mediaItem) }}" data-xf-click="overlay">{{ phrase('edit') }}</a>
</xf:if>
</li>
</xf:if>
</div>
</div>
</div>
</div>
<xf:if is="$mediaItem.description">
<div class="xfmgInfoBlock-description">
<div class="bbCodeBlock bbCodeBlock--expandable">
<div class="bbCodeBlock-content">
<div class="bbCodeBlock-expandContent">
{{ structured_text($mediaItem.description) }}
</div>
<div class="bbCodeBlock-expandLink"><a>{{ phrase('click_to_expand') }}</a></div>
</div>
</div>
</div>
</xf:if>
</div>
</div>
<div class="block-outer block-outer--after">
<xf:if contentcheck="true">
<div class="block-outer-opposite">
<xf:contentcheck>
<xf:if is="$mediaItem.canRate()">
<xf:button href="{{ link('media/media-ratings/rate', $mediaItem) }}" overlay="true">
{{ phrase('leave_rating') }}
</xf:button>
</xf:if>
<xf:if is="$mediaItem.canAddNote()">
<xf:button id="js-noterToggle" class="button--icon"
data-active-label="{{ phrase('xfmg_stop_adding_note_tag')|for_attr }}"
data-active-icon="cancel"
data-active-message="{{ phrase('xfmg_note_tag_mode_activated')|for_attr }}"
data-inactive-label="{{ phrase('xfmg_add_note_tag')|for_attr }}"
data-inactive-icon=""
data-inactive-message="{{ phrase('xfmg_note_tag_mode_deactivated')|for_attr }}">
{{ phrase('xfmg_add_note_tag') }}
</xf:button>
</xf:if>
<xf:if contentcheck="true">
<div class="buttonGroup">
<xf:contentcheck>
<xf:if is="$mediaItem.canUndelete() AND $mediaItem.media_state == 'deleted'">
<xf:button href="{{ link('media/undelete', $mediaItem) }}" class="button--link" overlay="true">
{{ phrase('undelete') }}
</xf:button>
</xf:if>
<xf:if is="$mediaItem.canApproveUnapprove() AND $mediaItem.media_state == 'moderated'">
<xf:button href="{{ link('media/approve', $mediaItem) }}" class="button--link" overlay="true">
{{ phrase('approve') }}
</xf:button>
</xf:if>
<xf:if is="$mediaItem.canWatch()">
<xf:button href="{{ link('media/watch', $mediaItem) }}" class="button--link"
data-xf-click="switch-overlay"
data-sk-watch="{{ phrase('watch') }}"
data-sk-unwatch="{{ phrase('unwatch') }}">
<xf:if is="{$mediaItem.Watch.{$xf.visitor.user_id}}">
{{ phrase('unwatch') }}
<xf:else />
{{ phrase('watch') }}
</xf:if>
</xf:button>
</xf:if>
<xf:if contentcheck="true">
<div class="buttonGroup-buttonWrapper">
<xf:button class="button--link menuTrigger" data-xf-click="menu" aria-expanded="false" aria-haspopup="true" title="{{ phrase('more_options')|for_attr }}">•••</xf:button>
<div class="menu" data-menu="menu" aria-hidden="true">
<div class="menu-content">
<h4 class="menu-header">{{ phrase('more_options') }}</h4>
<xf:contentcheck>
<!--[XF:media_tools_menu:top]-->
<xf:if is="$mediaItem.canSetAsAvatar()">
<a href="{{ link('media/set-as-avatar', $mediaItem) }}" data-xf-click="overlay" class="menu-linkRow">
{{ phrase('xfmg_set_as_avatar') }}
</a>
<xf:if is="$avatarUpdated">
<a href="{{ link('account/avatar') }}" data-xf-click="overlay" data-load-auto-click="true" style="display: none"></a>
</xf:if>
</xf:if>
<xf:if is="$mediaItem.canEdit()">
<a href="{{ link('media/edit', $mediaItem) }}" data-xf-click="overlay" class="menu-linkRow">{{ phrase('xfmg_edit_media_item') }}</a>
</xf:if>
<xf:if is="$mediaItem.canEditImage()">
<a href="{{ link('media/edit-image', $mediaItem) }}" class="menu-linkRow">{{ phrase('xfmg_edit_image') }}</a>
</xf:if>
<xf:if is="$mediaItem.canChangeThumbnail()">
<a href="{{ link('media/change-thumbnail', $mediaItem) }}" data-xf-click="overlay" class="menu-linkRow">{{ phrase('xfmg_change_thumbnail') }}</a>
</xf:if>
<xf:if is="$mediaItem.canMove()">
<a href="{{ link('media/move', $mediaItem) }}" data-xf-click="overlay" class="menu-linkRow">{{ phrase('xfmg_move_media_item') }}</a>
</xf:if>
<xf:if is="$mediaItem.canDelete('soft')">
<a href="{{ link('media/delete', $mediaItem) }}" data-xf-click="overlay" class="menu-linkRow">{{ phrase('xfmg_delete_media_item') }}</a>
</xf:if>
<!--[XF:media_tools_menu:before_footer]-->
<xf:if is="$mediaItem.canUseInlineModeration()">
<xf:js src="xf/inline_mod.js" min="1" />
<div class="menu-footer"
data-xf-init="inline-mod"
data-type="xfmg_media"
data-href="{{ link('inline-mod') }}"
data-toggle=".js-mediaInlineModToggle">
<xf:checkbox>
<xf:option class="js-mediaInlineModToggle" value="{$mediaItem.media_id}">{{ phrase('select_for_moderation') }}</xf:option>
</xf:checkbox>
</div>
</xf:if>
<!--[XF:media_tools_menu:bottom]-->
</xf:contentcheck>
</div>
</div>
</div>
</xf:if>
</xf:contentcheck>
</div>
</xf:if>
</xf:contentcheck>
</div>
</xf:if>
</div>
</div>
<div class="media hidden">
<xf:if is="$filmStripParams.prevItem">
<a href="{{ link('media', $filmStripParams.prevItem) }}" class="media-button media-button--prev" data-xf-key="ArrowLeft"><i class="media-button-icon"></i></a>
</xf:if>
<div class="media-container"
data-xf-init="{{ ($mediaItem.media_type == 'image') ? 'image-noter' : '' }}"
data-toggle-id="#js-noterToggle"
data-edit-url="{{ link('media/note-edit', $mediaItem) }}">
<xf:macro template="xfmg_media_view_macros" name="media_content" arg-mediaItem="{$mediaItem}" arg-mediaNotes="{$mediaNotes}" />
</div>
<xf:if is="$filmStripParams.nextItem">
<a href="{{ link('media', $filmStripParams.nextItem) }}" class="media-button media-button--next" data-xf-key="ArrowRight"><i class="media-button-icon"></i></a>
</xf:if>
</div>
<xf:if is="$mediaItem.canViewComments()">
<div class="columnContainer">
<div class="columnContainer-comments">
<xf:macro template="xfmg_comment_macros" name="comment_list"
arg-comments="{$comments}"
arg-content="{$mediaItem}"
arg-linkPrefix="media/media-comments"
arg-link="media"
arg-page="{$page}"
arg-perPage="{$perPage}"
arg-totalItems="{$totalItems}"
arg-canInlineMod="{$canInlineModComments}" />
</div>
<div class="columnContainer-sidebar">
<xf:macro template="xfmg_media_view_macros" name="info_sidebar" arg-mediaItem="{$mediaItem}" />
<xf:macro template="xfmg_media_view_macros" name="extra_info_sidebar" arg-mediaItem="{$mediaItem}" />
<xf:macro template="xfmg_media_view_macros" name="additional_sidebar" arg-mediaItem="{$mediaItem}" />
<xf:macro template="xfmg_media_view_macros" name="exif_sidebar" arg-mediaItem="{$mediaItem}" />
<xf:macro template="xfmg_media_view_macros" name="user_tags_sidebar" arg-mediaNotes="{$mediaNotes}" />
<xf:macro template="xfmg_media_view_macros" name="share_sidebar" arg-mediaItem="{$mediaItem}" />
</div>
</div>
<xf:else />
<xf:sidebar key="infoSidebar">
<xf:macro template="xfmg_media_view_macros" name="info_sidebar" arg-mediaItem="{$mediaItem}" />
</xf:sidebar>
<xf:sidebar key="extraInfoSidebar">
<xf:macro template="xfmg_media_view_macros" name="extra_info_sidebar" arg-mediaItem="{$mediaItem}" />
</xf:sidebar>
<xf:sidebar key="additionalSidebar">
<xf:macro template="xfmg_media_view_macros" name="additional_sidebar" arg-mediaItem="{$mediaItem}" />
</xf:sidebar>
<xf:sidebar key="exifSidebar">
<xf:macro template="xfmg_media_view_macros" name="exif_sidebar" arg-mediaItem="{$mediaItem}" />
</xf:sidebar>
<xf:sidebar key="userTagsSidebar">
<xf:macro template="xfmg_media_view_macros" name="user_tags_sidebar" arg-mediaNotes="{$mediaNotes}" />
</xf:sidebar>
<xf:sidebar key="shareSidebar">
<xf:macro template="xfmg_media_view_macros" name="share_sidebar" arg-mediaItem="{$mediaItem}" />
</xf:sidebar>
</xf:if>]]></template>
<template title="xfrm.less" type="public" addon_id="XFRM" version_id="2000070" version_string="2.0.0"><![CDATA[// ############################ RESOURCE LIST ######################
.structItem-resourceTagLine
{
font-size: @xf-fontSizeSmaller;
margin-top: @xf-paddingSmall;
}
.structItem-cell.structItem-cell--resourceMeta
{
width: 95px;
}
.structItem-metaItem--rating
{
font-size: @xf-fontSizeSmall;
}
@media (max-width: @xf-responsiveWide)
{
.structItem-cell.structItem-cell--resourceMeta
{
width: 95px;
font-size: @xf-fontSizeSmaller;
}
}
@media (max-width: @xf-responsiveMedium)
{
.structItem-cell.structItem-cell--resourceMeta
{
display: block;
width: auto;
float: left;
padding-top: 0;
padding-left: 0;
padding-right: 0;
color: @xf-textColorMuted;
.pairs
{
display: inline;
&:before,
&:after
{
display: none;
}
> dt,
> dd
{
display: inline;
float: none;
margin: 0;
}
}
.structItem-metaItem
{
display: inline;
}
.ratingStarsRow
{
display: inline;
.ratingStarsRow-text
{
display: none;
}
}
.structItem-metaItem--lastUpdate > dt
{
display: none;
}
.structItem-metaItem + .structItem-metaItem:before
{
display: inline;
content: "\20\00B7\20";
color: @xf-textColorMuted;
}
}
}
// #################################### RESOURCE BODY / VIEW ########################
.resourceBody
{
display: flex;
}
.resourceBody-main
{
flex: 1;
min-width: 0;
padding: @xf-blockPaddingV @xf-blockPaddingH;
}
.resourceBody-sidebar
{
flex: 0 0 auto;
width: 250px;
.xf-contentAltBase();
border-left: @xf-borderSize solid @xf-borderColor;
padding: @xf-blockPaddingV @xf-blockPaddingH;
font-size: @xf-fontSizeSmall;
> :first-child
{
margin-top: 0;
}
> :last-child
{
margin-bottom: 0;
}
}
.resourceBody-fields
{
&.resourceBody-fields--before
{
margin-bottom: @xf-paddingLarge;
padding-bottom: @xf-paddingMedium;
border-bottom: @xf-borderSize solid @xf-borderColorLight;
}
&.resourceBody-fields--after
{
margin-top: @xf-paddingLarge;
padding-top: @xf-paddingMedium;
border-top: @xf-borderSize solid @xf-borderColorLight;
}
}
.resourceBody-attachments
{
margin: .5em 0;
}
.resourceBody .actionBar-set
{
margin-top: @xf-messagePadding;
font-size: @xf-fontSizeSmall;
}
.resourceSidebarGroup
{
margin-bottom: @xf-elementSpacer;
&.resourceSidebarGroup--buttons
{
> .button
{
display: block;
margin: 5px 0;
&:first-child
{
margin-top: 0;
}
&:last-child
{
margin-bottom: 0;
}
}
}
}
.resourceSidebarGroup-title
{
margin: 0;
padding: 0;
font-size: @xf-fontSizeLarge;
font-weight: @xf-fontWeightNormal;
color: @xf-textColorFeature;
padding-bottom: @xf-paddingMedium;
.m-hiddenLinks();
}
.resourceSidebarList
{
.m-listPlain();
> li
{
padding: @xf-paddingSmall 0;
&:first-child
{
padding-top: 0;
}
&:last-child
{
padding-bottom: 0;
}
}
}
@media (max-width: @xf-responsiveWide)
{
.resourceBody
{
display: block;
}
.resourceBody-sidebar
{
width: auto;
border-left: none;
border-top: @xf-borderSize solid @xf-borderColor;
}
.resourceSidebarGroup
{
max-width: 600px;
margin-left: auto;
margin-right: auto;
}
}]]></template>
<template title="xfrm_resource_list_macros" type="public" addon_id="XFRM" version_id="2000370" version_string="2.0.3"><![CDATA[<xf:macro name="resource"
arg-resource="!"
arg-category="{{ null }}"
arg-showWatched="{{ true }}"
arg-allowInlineMod="{{ true }}"
arg-chooseName=""
arg-extraInfo="">
<xf:css src="structured_list.less" />
<xf:css src="xfrm.less" />
<div class="structItem structItem--resource {{ $resource.prefix_id ? 'is-prefix' . $resource.prefix_id : '' }} {{ $resource.isIgnored() ? 'is-ignored' : '' }}{{ $resource.resource_state == 'moderated' ? 'is-moderated' : '' }}{{ $resource.resource_state == 'deleted' ? 'is-deleted' : '' }} js-inlineModContainer js-resourceListItem-{$resource.resource_id}" data-author="{{ $resource.User.username ?: $resource.username }}">
<div class="structItem-cell structItem-cell--icon structItem-cell--iconExpanded">
<div class="structItem-iconContainer">
<xf:if is="$resource.resource_state == 'deleted'">
<img src="{{ base_url() }}styles/brivium/cerium/extra/delete.png">
<xf:else/>
<xf:if is="$xf.options.xfrmAllowIcons">
{{ resource_icon($resource, 's', link('resources', $resource)) }}
<xf:if is="property('MiniAvatar')">
<xf:avatar user="$resource.User" size="s"
href=""
class="avatar--separated structItem-secondaryIcon" />
</xf:if>
<xf:else />
<xf:avatar user="$resource.User" size="s" defaultname="{$resource.username}" />
</xf:if>
</xf:if>
</div>
</div>
<div class="structItem-cell structItem-cell--main" data-xf-init="touch-proxy">
<xf:if contentcheck="true">
<ul class="structItem-statuses">
<xf:contentcheck>
<xf:if is="$resource.Featured">
<li>
<i class="structItem-status structItem-status--attention" aria-hidden="true" title="{{ phrase('xfrm_featured')|for_attr }}"></i>
<span class="u-srOnly">{{ phrase('xfrm_featured') }}</span>
</li>
</xf:if>
<xf:if is="$resource.resource_state == 'moderated'">
<li>
<i class="structItem-status structItem-status--moderated" aria-hidden="true" title="{{ phrase('awaiting_approval')|for_attr }}"></i>
<span class="u-srOnly">{{ phrase('awaiting_approval') }}</span>
</li>
</xf:if>
<xf:if is="{$showWatched} AND {$xf.visitor.user_id}">
<xf:if is="{$resource.Watch.{$xf.visitor.user_id}}">
<li>
<i class="structItem-status structItem-status--watched" aria-hidden="true" title="{{ phrase('xfrm_resource_watched')|for_attr }}"></i>
<span class="u-srOnly">{{ phrase('xfrm_resource_watched') }}</span>
</li>
<xf:elseif is="!$category AND {$resource.Category.Watch.{$xf.visitor.user_id}}" />
<li>
<i class="structItem-status structItem-status--watched" aria-hidden="true" title="{{ phrase('xfrm_category_watched')|for_attr }}"></i>
<span class="u-srOnly">{{ phrase('xfrm_category_watched') }}</span>
</li>
</xf:if>
</xf:if>
</xf:contentcheck>
</ul>
</xf:if>
<div class="structItem-title">
<xf:if is="$resource.prefix_id">
<xf:if is="$category">
<a href="{{ link('resources/categories', $category, {'prefix_id': $resource.prefix_id}) }}" class="labelLink" rel="nofollow">{{ prefix('resource', $resource, 'html', '') }}</a>
<xf:else />
{{ prefix('resource', $resource, 'html', '') }}
</xf:if>
</xf:if>
<a href="{{ link('resources', $resource) }}" class="" data-tp-primary="on">{$resource.title}</a>
<xf:if is="$resource.isVersioned()">
<span class="u-muted">{$resource.CurrentVersion.version_string}</span>
</xf:if>
<xf:if is="$resource.isExternalPurchasable()">
<span class="label label--primary label--smallest">{$resource.price|currency($resource.currency)}</span>
</xf:if>
</div>
<div class="structItem-minor">
<xf:if contentcheck="true">
<ul class="structItem-extraInfo">
<xf:contentcheck>
<xf:if is="{$extraInfo}">
<li>{$extraInfo}</li>
</xf:if>
<xf:if is="$chooseName">
<li><xf:checkbox standalone="true">
<xf:option name="{$chooseName}[]" value="{$resource.resource_id}" class="js-chooseItem" />
</xf:checkbox></li>
<xf:elseif is="$allowInlineMod AND $resource.canUseInlineModeration()" />
<li><xf:checkbox standalone="true"><xf:option value="{$resource.resource_id}"
class="js-inlineModToggle"
data-xf-init="tooltip" title="{{ phrase('select_for_moderation')|for_attr }}" /></xf:checkbox></li>
</xf:if>
</xf:contentcheck>
</ul>
</xf:if>
<xf:if is="$resource.resource_state == 'deleted'">
<xf:if is="{$extraInfo}"><span class="structItem-extraInfo">{$extraInfo}</span></xf:if>
<xf:macro template="deletion_macros" name="notice" arg-log="{$resource.DeletionLog}" />
<xf:else />
<ul class="structItem-parts edit-label">
<xf:if is="!$category OR $category.hasChildren()">
<li class="structItem-categories"><a href="{{ link('resources/categories', $resource.Category) }}">{$resource.Category.title}</a></li>
</xf:if>
<li><xf:username user="$resource.User" defaultname="{$resource.username}" /></li>
<li class="structItem-startDate"><a href="{{ link('resources/updates', $resource) }}" class="u-concealed"><xf:date time="{$resource.last_update}" /></a></li>
</ul>
</xf:if>
</div>
</div>
<div class="structItem-cell structItem-cell--resourceMeta rating-column">
<div class="structItem-metaItem structItem-metaItem--rating">
<xf:macro template="rating_macros" name="stars_text"
arg-rating="{$resource.rating_avg}"
arg-count="{$resource.rating_count}"
arg-rowClass="ratingStarsRow--justified"
arg-starsClass="ratingStars--larger" />
</div>
</div>
<div class="structItem-cell structItem-cell--resourceMeta download-column">
<xf:if is="$resource.isDownloadable()">
<div class="pairs pairs--justified structItem-minor structItem-metaItem structItem-metaItem--downloads">
<span class="count-number">{$resource.download_count|number}</span>
<span class="count-text">{{ phrase('xfrm_downloads') }}</span>
</div>
</xf:if>
</div>
</div>
</xf:macro>
<xf:macro name="resource_simple" arg-resource="!" arg-withMeta="{{ true }}">
<div class="contentRow">
<div class="contentRow-figure">
<xf:if is="$xf.options.xfrmAllowIcons">
{{ resource_icon($resource, 'xxs', link('resources', $resource)) }}
<xf:else />
<xf:avatar user="$resource.User" size="xxs" />
</xf:if>
</div>
<div class="contentRow-main contentRow-main--close">
<a href="{{ link('resources', $resource) }}">{{ prefix('resource', $resource) }}{$resource.title}</a>
<div class="contentRow-lesser">{$resource.tag_line}</div>
<xf:if is="$withMeta">
<div class="contentRow-minor contentRow-minor--smaller">
<ul class="listInline listInline--bullet">
<li>{{ $resource.User.username ?: $resource.username }}</li>
<li>{{ phrase('updated:') }} <xf:date time="{$resource.last_update}" /></li>
</ul>
</div>
</xf:if>
</div>
</div>
</xf:macro>]]></template>
</templates>
<properties>
<group group_name="BriviumSettings" title="[Brivium] Settings" description="" display_order="0" addon_id=""/>
<group group_name="brivium_footer" title="[Brivium] Footer" description="" display_order="1" addon_id=""/>
<property property_name="BrvColor1" group_name="BriviumSettings" title="Brv Color 1" description="" property_type="value" value_type="color" depends_on="" value_group="" display_order="0" addon_id="">
<value>"#ffffff"</value>
</property>
<property property_name="BrvColor2" group_name="BriviumSettings" title="Brv Color 2" description="" property_type="value" value_type="color" depends_on="" value_group="" display_order="10" addon_id="">
<value>"#fbcc58"</value>
</property>
<property property_name="BrvColor3" group_name="BriviumSettings" title="Brv Color 3" description="" property_type="value" value_type="color" depends_on="" value_group="" display_order="20" addon_id="">
<value>"#ff554d"</value>
</property>
<property property_name="BrvLogoMobile" group_name="BriviumSettings" title="Logo Mobile URL" description="Logo show only in mobile." property_type="value" value_type="string" depends_on="" value_group="" display_order="600" addon_id="">
<value>"styles/brivium/cerium/extra/logo-mobile.png"</value>
</property>
<property property_name="CustomSidebar" group_name="BriviumSettings" title="Show Sidebar" description="Show / hide sidebar." property_type="value" value_type="boolean" depends_on="" value_group="" display_order="560" addon_id="">
<value>0</value>
</property>
<property property_name="FooterBottom" group_name="footer" title="Footer Bottom" description="Footer Bottom background color." property_type="value" value_type="color" depends_on="" value_group="" display_order="20200" addon_id="">
<value>"transparent"</value>
</property>
<property property_name="FooterColumn1" group_name="brivium_footer" title="Footer Column 1" description="" property_type="value" value_type="string" depends_on="" value_group="" display_order="0" addon_id="">
<value>"<p>Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.</p>"</value>
</property>
<property property_name="FooterColumn2" group_name="brivium_footer" title="Footer Column 2" description="" property_type="value" value_type="string" depends_on="" value_group="" display_order="0" addon_id="">
<value>""</value>
</property>
<property property_name="FooterColumn3" group_name="brivium_footer" title="Footer Column 3" description="Action link subscribe." property_type="value" value_type="string" depends_on="" value_group="" display_order="0" addon_id="">
<value>"#"</value>
</property>
<property property_name="MiniAvatar" group_name="BriviumSettings" title="Mini Avatar" description="Show / Hide mini avatar in thread list." property_type="value" value_type="boolean" depends_on="1" value_group="" display_order="530" addon_id="">
<value>1</value>
</property>
<property property_name="NodeCategoriesImage" group_name="BriviumSettings" title="Node Categories Image" description="Show icon image in categories." property_type="value" value_type="boolean" depends_on="1" value_group="" display_order="550" addon_id="">
<value>0</value>
</property>
<property property_name="PageTitle" group_name="BriviumSettings" title="Page Title" description="Hide / show page title in home page." property_type="value" value_type="boolean" depends_on="1" value_group="" display_order="500" addon_id="">
<value>1</value>
</property>
<property property_name="TooltipCategories" group_name="BriviumSettings" title="Tooltip Categories" description="Show categories description is tooltip." property_type="value" value_type="boolean" depends_on="1" value_group="" display_order="540" addon_id="">
<value>1</value>
</property>
<property property_name="UserAvatar" group_name="BriviumSettings" title="User Avatar" description="Show user avatar." property_type="value" value_type="boolean" depends_on="0" value_group="" display_order="520" addon_id="">
<value>0</value>
</property>
<property property_name="bbCodeBlock" group_name="bbCode" title="BB code blocks" description="All BB code blocks within messages make use of these styling rules" property_type="css" value_type="" depends_on="" value_group="" display_order="20000" css_components="text,background,border,border_radius,extra" addon_id="XF">
<value>{
"background-color": "#ffffff",
"border-width": "@xf-borderSize",
"border-color": "#2495f5",
"extra": "border-radius: 3px;"
}</value>
</property>
<property property_name="bbCodeBlockTitle" group_name="bbCode" title="BB code blocks - title" description="Styles the title section of BB code blocks within messages" property_type="css" value_type="" depends_on="" value_group="" display_order="20100" css_components="text,background,border,extra" addon_id="XF">
<value>{
"font-size": "14px",
"color": "#2495f5",
"font-weight": "@xf-fontWeightNormal",
"background-color": "#ffffff"
}</value>
</property>
<property property_name="bbCodeInlineCode" group_name="bbCode" title="BB code block - inline code" description="Special styling rules for inline code ([ICODE]) elements." property_type="css" value_type="" depends_on="" value_group="" display_order="20200" css_components="text,background,border_width_simple,border_color_simple,border_radius_simple,padding,extra" addon_id="XF">
<value>{
"font-size": "80%",
"background-color": "#ffffff",
"border-width": "@xf-borderSize",
"border-color": "@xf-borderColorLight",
"border-radius": "@xf-borderRadiusSmall",
"padding-top": "1px",
"padding-right": "@xf-paddingSmall",
"padding-bottom": "1px",
"padding-left": "@xf-paddingSmall"
}</value>
</property>
<property property_name="blockFilterBar" group_name="block" title="Block filter bar" description="When the content of a block can be filtered, the controls to do so are styled here" property_type="css" value_type="" depends_on="" value_group="" display_order="20800" css_components="text,background,border,extra" addon_id="XF">
<value>{
"font-size": "@xf-fontSizeSmall",
"color": "@xf-linkColor",
"background-color": "transparent",
"extra": "padding: 10px 15px;\nmargin-bottom: 5px;\nborder-radius: 5px;\nborder: 1px solid @xf-borderColor;"
}</value>
</property>
<property property_name="blockFooter" group_name="block" title="Block footer" description="When information needs to be conveyed in a footer element for a block, its style is controlled here" property_type="css" value_type="" depends_on="" value_group="" display_order="21200" css_components="text,background,border,extra" addon_id="XF">
<value>{
"font-size": "13px",
"color": "@xf-linkColor",
"background-color": "transparent"
}</value>
</property>
<property property_name="blockHeader" group_name="block" title="Block header" description="Blocks often have title bars at their tops, which are styled here" property_type="css" value_type="" depends_on="" value_group="" display_order="20100" css_components="text,background,border,extra" addon_id="XF">
<value>{
"font-size": "20px",
"color": "@xf-linkColor",
"font-weight": "@xf-fontWeightNormal",
"background-color": "transparent",
"extra": "padding: 15px 0;"
}</value>
</property>
<property property_name="blockLinkSelected" group_name="misc" title="Block link - selected" description="Styling for block-type links when in their selected state" property_type="css" value_type="" depends_on="" value_group="" display_order="21000" css_components="text,background,border_width_simple,border_color_simple,extra" addon_id="XF">
<value>{
"font-weight": "@xf-fontWeightHeavy",
"background-color": "#fff",
"border-width": "@xf-borderSizeFeature",
"border-color": "@xf-borderColorFeature"
}</value>
</property>
<property property_name="blockMinorHeader" group_name="block" title="Block minor header" description="Sub-headings in blocks use these settings" property_type="css" value_type="" depends_on="" value_group="" display_order="20400" css_components="text,background,border,extra" addon_id="XF">
<value>{
"font-size": "20px",
"color": "@xf-linkColor",
"font-weight": "@xf-fontWeightNormal",
"background-color": "transparent",
"extra": "padding: 5px 0;"
}</value>
</property>
<property property_name="blockTabHeader" group_name="block" title="Block tab header" description="Occasionally, blocks will have multi-part, tab headers, styled with these settings" property_type="css" value_type="" depends_on="" value_group="" display_order="20200" css_components="text,background,border,extra" addon_id="XF">
<value>{
"font-size": "14px",
"color": "@xf-linkColor",
"background-color": "transparent",
"border-bottom-width": "@xf-borderSize",
"border-bottom-color": "@xf-borderColor",
"extra": "padding: 0 10px;"
}</value>
</property>
<property property_name="blockTabHeaderSelected" group_name="block" title="Block tab header - selected tab" description="The selected tab in multi-part headers takes additional styling from here" property_type="css" value_type="" depends_on="" value_group="" display_order="20300" css_components="text,background,border_color_simple,extra" addon_id="XF">
<value>{
"color": "@xf-paletteColor3",
"background-color": "transparent"
}</value>
</property>
<property property_name="borderColor" group_name="color" title="Border color" description="Structural borders around blocks of content generally use this color" property_type="value" value_type="color" depends_on="" value_group="borderBasic" display_order="4000" addon_id="XF">
<value>"#d5d7d9"</value>
</property>
<property property_name="buttonBase" group_name="button" title="Button base" description="Defines the styling for the basic elements that are common to all text-based buttons" property_type="css" value_type="" depends_on="" value_group="" display_order="20000" css_components="text,border_radius,padding,extra" addon_id="XF">
<value>{
"font-size": "14px",
"font-weight": "@xf-fontWeightNormal",
"border-radius": "20px",
"padding-top": "5px",
"padding-right": "10px",
"padding-bottom": "5px",
"padding-left": "10px",
"extra": "text-align: center;\ndisplay: inline-table;"
}</value>
</property>
<property property_name="buttonCta" group_name="button" title="Button - call to action" description="Call to action buttons sit alone and invite the user to do something, like post a new thread" property_type="css" value_type="" depends_on="" value_group="" display_order="20300" css_components="text,background,extra" addon_id="XF">
<value>{
"font-size": "14px",
"color": "@xf-linkColor",
"background-color": "transparent"
}</value>
</property>
<property property_name="buttonDefault" group_name="button" title="Button - default" description="Most buttons use this styling, except for primary form submit buttons" property_type="css" value_type="" depends_on="" value_group="" display_order="20100" css_components="text,background,extra" addon_id="XF">
<value>{
"font-size": "14px",
"color": "@xf-linkColor",
"background-color": "transparent",
"extra": "padding: 8px 20px;"
}</value>
</property>
<property property_name="buttonDisabled" group_name="button" title="Button - disabled" description="When buttons are disabled and unclickable, they use these styling rules" property_type="css" value_type="" depends_on="" value_group="" display_order="20400" css_components="text,background,extra" addon_id="XF">
<value>{
"color": "@xf-inputDisabled--color",
"font-style": "italic",
"background-color": "@xf-inputDisabled--background-color",
"extra": "cursor: default;"
}</value>
</property>
<property property_name="buttonPrimary" group_name="button" title="Button - primary" description="These rules are used mostly for the main submit button for forms" property_type="css" value_type="" depends_on="" value_group="" display_order="20200" css_components="text,background,extra" addon_id="XF">
<value>{
"font-size": "14px",
"color": "#fff",
"background-color": "#ff554d",
"extra": "min-width: 80px;\npadding: 8px 20px;"
}</value>
</property>
<property property_name="contentHighlightBg" group_name="color" title="Highlighted content background color" description="When the standard background color is highlighted or selected, it will use this color" property_type="value" value_type="color" depends_on="" value_group="contentBg" display_order="2300" addon_id="XF">
<value>"#e7e9e9"</value>
</property>
<property property_name="dataListHeader" group_name="dataList" title="Data list header" description="The title bar of a data list is styled with these settings" property_type="css" value_type="" depends_on="" value_group="" display_order="20000" css_components="text,background,border,extra" addon_id="XF">
<value>{
"font-size": "@xf-fontSizeSmaller",
"color": "#221e26",
"font-weight": "@xf-fontWeightHeavy",
"background-color": "#fff",
"border-bottom-width": "@xf-borderSize",
"border-bottom-color": "@xf-borderColorHeavy",
"extra": "text-transform: none;"
}</value>
</property>
<property property_name="dataListSection" group_name="dataList" title="Data list section header" description="Individual data list sections are divided with this titular header bar" property_type="css" value_type="" depends_on="" value_group="" display_order="20100" css_components="text,background,border,extra" addon_id="XF">
<value>{
"font-size": "@xf-fontSizeLarge",
"color": "@xf-linkColor",
"background-color": "#fff",
"border-bottom-width": "@xf-borderSize",
"border-bottom-color": "@xf-borderColorLight"
}</value>
</property>
<property property_name="fontFamilyBody" group_name="fonts" title="Body Text Font" description="This font is used for the text of messages etc." property_type="value" value_type="string" depends_on="" value_group="font" display_order="200" addon_id="XF">
<value>"'Cerium', sans-serif"</value>
</property>
<property property_name="fontFamilyUi" group_name="fonts" title="User Interface Font" description="The font list for your main text" property_type="value" value_type="string" depends_on="" value_group="font" display_order="100" addon_id="XF">
<value>"'Cerium', sans-serif"</value>
</property>
<property property_name="fontSizeNormal" group_name="fonts" title="Normal font size" description="" property_type="value" value_type="unit" depends_on="" value_group="size" display_order="1000" addon_id="XF">
<value>"14px"</value>
</property>
<property property_name="formSubmitRow" group_name="form" title="Form submit row" description="At the bottom of most forms is a bar containing the submit button etc." property_type="css" value_type="" depends_on="" value_group="" display_order="20400" css_components="background,border,extra" addon_id="XF">
<value>{
"background-color": "#fff",
"border-top-width": "@xf-borderSize",
"border-top-color": "@xf-borderColorHeavy"
}</value>
</property>
<property property_name="inlineModBar" group_name="inlineMod" title="Inline moderation bar" description="A bar containing controls appears when content is selected for inline moderation. Its appearance is controlled here" property_type="css" value_type="" depends_on="" value_group="" display_order="20000" css_components="text,background,border,padding,extra" addon_id="XF">
<value>{
"color": "#221e26",
"background-color": "#fff",
"border-bottom-width": "@xf-borderSize",
"border-bottom-color": "xf-intensify(@xf-paletteColor5, 10%)",
"padding-top": "@xf-paddingSmall",
"padding-bottom": "@xf-paddingSmall"
}</value>
</property>
<property property_name="input" group_name="input" title="Form input" description="Controls the style of most text-input boxes" property_type="css" value_type="" depends_on="" value_group="" display_order="20000" css_components="text,background,border,border_radius,padding,extra" addon_id="XF">
<value>{
"font-size": "13px",
"color": "@xf-textColor",
"background-color": "#ffffff",
"border-width": "1px",
"border-color": "@xf-borderColor",
"padding": "@xf-paddingMedium"
}</value>
</property>
<property property_name="inputFocus" group_name="input" title="Form input - focused" description="These rules are applied to text boxes when they are selected for input" property_type="css" value_type="" depends_on="" value_group="" display_order="20100" css_components="text,background,extra" addon_id="XF">
<value>{
"background-color": "#ffffff"
}</value>
</property>
<property property_name="linkColor" group_name="color" title="Link color" description="Basic hyperlinks on standard background colors will use this style" property_type="value" value_type="color" depends_on="" value_group="link" display_order="1000" addon_id="XF">
<value>"@xf-paletteAccent3"</value>
</property>
<property property_name="linkHover" group_name="page" title="Links - hovered" description="When basic links are hovered, they use this set of rules for their styling" property_type="css" value_type="" depends_on="" value_group="" display_order="20100" css_components="text,extra" addon_id="XF">
<value>{
"color": "@xf-linkHoverColor"
}</value>
</property>
<property property_name="linkHoverColor" group_name="color" title="Link hover color" description="Basic hyperlinks will turn this color when hovered" property_type="value" value_type="color" depends_on="" value_group="link" display_order="1100" addon_id="XF">
<value>"@xf-paletteColor3"</value>
</property>
<property property_name="memberHeader" group_name="member" title="Member profile header" description="The member profile page's content header is styled with these settings" property_type="css" value_type="" depends_on="" value_group="" display_order="20000" css_components="text,background,border,extra" addon_id="XF">
<value>{
"background-color": "#fff",
"border-bottom-width": "@xf-borderSize",
"border-bottom-color": "@xf-borderColorLight"
}</value>
</property>
<property property_name="memberHeaderName" group_name="member" title="Member profile header - name" description="The styling of the name of the member whose page is being viewed is controlled here" property_type="css" value_type="" depends_on="" value_group="" display_order="20100" css_components="text,extra" addon_id="XF">
<value>{
"font-size": "@xf-fontSizeLargest",
"color": "#221e26"
}</value>
</property>
<property property_name="memberTooltipHeader" group_name="member" title="Member tooltip header" description="The member tooltip, which appears when hovering over user names, is styled with these controls" property_type="css" value_type="" depends_on="" value_group="" display_order="20200" css_components="text,background,border,extra" addon_id="XF">
<value>{
"background-color": "#fff",
"border-bottom-width": "@xf-borderSize",
"border-bottom-color": "@xf-borderColorLight"
}</value>
</property>
<property property_name="memberTooltipName" group_name="member" title="Member tooltip header - name" description="Styling for the name of the user whose tooltip is being displayed" property_type="css" value_type="" depends_on="" value_group="" display_order="20300" css_components="text,extra" addon_id="XF">
<value>{
"font-size": "@xf-fontSizeLargest",
"color": "#221e26"
}</value>
</property>
<property property_name="menu" group_name="menu" title="Menu" description="Controls the main block of all popup menus" property_type="css" value_type="" depends_on="" value_group="" display_order="20000" css_components="text,background,border_width_simple,border_color_simple,extra" addon_id="XF">
<value>{
"font-size": "@xf-fontSizeSmall",
"color": "@xf-textColor",
"background-color": "#fff"
}</value>
</property>
<property property_name="menuFeatureBorderColor" group_name="menu" title="Menu feature border color" description="Popup menus have a thick feature border on their upper edge, the styling of which is controlled here" property_type="value" value_type="color" depends_on="" value_group="" display_order="100" addon_id="XF">
<value>"#fff"</value>
</property>
<property property_name="menuFooter" group_name="menu" title="Menu footer" description="When a popup menu has a bottom, footer element, it will use these settings" property_type="css" value_type="" depends_on="" value_group="" display_order="20600" css_components="text,background,border,extra" addon_id="XF">
<value>{
"font-size": "@xf-fontSizeSmaller",
"color": "@xf-textColorDimmed",
"background-color": "#fff"
}</value>
</property>
<property property_name="menuHeader" group_name="menu" title="Menu header" description="Most menus identify themselves with a header just underneath their top border" property_type="css" value_type="" depends_on="" value_group="" display_order="20100" css_components="text,background,border,extra" addon_id="XF">
<value>{
"font-size": "@xf-fontSizeLarge",
"color": "@xf-paletteAccent3",
"background-color": "#fff",
"border-bottom-width": "@xf-borderSize",
"border-bottom-color": "@xf-borderColorLight"
}</value>
</property>
<property property_name="menuLinkRowSelected" group_name="menu" title="Menu link row - selected" description="Styling for link rows in menus, when selected or hovered" property_type="css" value_type="" depends_on="" value_group="" display_order="20500" css_components="text,background,extra" addon_id="XF">
<value>{
"color": "@xf-linkHoverColor",
"text-decoration": "none",
"background-color": "#fff"
}</value>
</property>
<property property_name="menuTabHeader" group_name="menu" title="Menu tab header" description="Multi-part, tabbed menu headers use these settings" property_type="css" value_type="" depends_on="" value_group="" display_order="20200" css_components="text,background,border,extra" addon_id="XF">
<value>{
"font-size": "@xf-fontSizeNormal",
"color": "#221e26",
"background-color": "#fff",
"border-bottom-width": "@xf-borderSize",
"border-bottom-color": "@xf-borderColorLight"
}</value>
</property>
<property property_name="messageUserBlock" group_name="message" title="Message user info block" description="Apart from its width, the (left) message user info column is styled here" property_type="css" value_type="" depends_on="" value_group="" display_order="20000" css_components="text,background,border_width_simple,border_color_simple,extra" addon_id="XF">
<value>{
"background-color": "transparent",
"border-width": "@xf-borderSize",
"border-color": "@xf-borderColor"
}</value>
</property>
<property property_name="messageUserBlockWidth" group_name="message" title="Message user info block width" description="Controls the width of the (left) user info column on the full size message block" property_type="value" value_type="unit" depends_on="" value_group="user" display_order="500" addon_id="XF">
<value>"100px"</value>
</property>
<property property_name="messageUserElements" group_name="message" title="Message user info elements" description="The elements selected here will be displayed in the message user info block. It will not be displayed below the single column width." property_type="value" value_type="template" depends_on="" value_group="user" display_order="600" addon_id="XF">
<value_parameters>template=style_property_template_messageUserElements
type=array</value_parameters>
<value>{
"register_date": "1",
"message_count": "1",
"like_count": "1",
"trophy_points": "1",
"age": "1",
"location": "1",
"website": "1",
"custom_fields": "1"
}</value>
</property>
<property property_name="minorBlockContent" group_name="block" title="Minor internal block content" description="Content within blocks that is of less importance than the main content may be styled here" property_type="css" value_type="" depends_on="" value_group="" display_order="21100" css_components="text,background,border_width_simple,border_color_simple,extra" addon_id="XF">
<value>{
"background-color": "#f7f7f8",
"border-width": "@xf-borderSize",
"border-color": "@xf-borderColorLight"
}</value>
</property>
<property property_name="nodeIconReadColor" group_name="nodeList" title="Read node icon color" description="When the content within a node has been read, its icon will revert to a less attention-grabbing color, defined here" property_type="value" value_type="color" depends_on="" value_group="" display_order="200" addon_id="XF">
<value>"#727174"</value>
</property>
<property property_name="nodeIconUnreadColor" group_name="nodeList" title="Unread node icon color" description="Node icons give an at-a-glance indication of whether or not the content housed within the node has been read. The unread icon color should stand out from its background for quick identification" property_type="value" value_type="color" depends_on="" value_group="" display_order="100" addon_id="XF">
<value>"#221e26"</value>
</property>
<property property_name="nodeListSubDisplay" group_name="nodeList" title="Sub-forums display style" description="Choose the style in which sub-forums will be displayed within a particular node element, according to the amount of space you want them to occupy" property_type="value" value_type="radio" depends_on="" value_group="" display_order="300" addon_id="XF">
<value_parameters>menu={{ phrase('popup_menu') }}
flat={{ phrase('listed_below_node') }}
none={{ phrase('none') }}</value_parameters>
<value>"flat"</value>
</property>
<property property_name="overlayHeader" group_name="overlay" title="Overlay header" description="Overlays use a header element to identify their contents, styled here" property_type="css" value_type="" depends_on="" value_group="" display_order="20000" css_components="text,background,border,padding,extra" addon_id="XF">
<value>{
"font-size": "14px",
"color": "@xf-linkColor",
"font-weight": "@xf-fontWeightNormal",
"background-color": "#ffffff",
"border-bottom-width": "@xf-borderSize",
"border-bottom-color": "@xf-borderColorLight",
"padding-top": "15px",
"padding-right": "20px",
"padding-bottom": "15px",
"padding-left": "20px"
}</value>
</property>
<property property_name="overlayTopMargin" group_name="overlay" title="Overlay top margin" description="This defines the distance between the top of the viewport and the top of the overlay" property_type="value" value_type="unit" depends_on="" value_group="" display_order="100" addon_id="XF">
<value>"15vh"</value>
</property>
<property property_name="pageBackground" group_name="page" title="Page background" description="The page background, behind all block elements, uses the styling rules defined here" property_type="css" value_type="" depends_on="" value_group="" display_order="20200" css_components="background,extra" addon_id="XF">
<value>{
"background-color": "#eff0f0"
}</value>
</property>
<property property_name="pageWidthMax" group_name="page" title="Maximum page width" description="As the window is resized, it will continue to grow in width until this value, after which it will remain static" property_type="value" value_type="unit" depends_on="" value_group="page" display_order="100" addon_id="XF">
<value>"1140px"</value>
</property>
<property property_name="paletteAccent1" group_name="palette" title="Accent 1" description="" property_type="value" value_type="color" depends_on="" value_group="accent" display_order="2000" addon_id="XF">
<value_parameters>hidePalette=true</value_parameters>
<value>"#bbbfc2"</value>
</property>
<property property_name="paletteAccent2" group_name="palette" title="Accent 2" description="" property_type="value" value_type="color" depends_on="" value_group="accent" display_order="2100" addon_id="XF">
<value_parameters>hidePalette=true</value_parameters>
<value>"#74747e"</value>
</property>
<property property_name="paletteAccent3" group_name="palette" title="Accent 3" description="" property_type="value" value_type="color" depends_on="" value_group="accent" display_order="2200" addon_id="XF">
<value_parameters>hidePalette=true</value_parameters>
<value>"#4e4e56"</value>
</property>
<property property_name="paletteColor1" group_name="palette" title="Color 1" description="" property_type="value" value_type="color" depends_on="" value_group="primary" display_order="1000" addon_id="XF">
<value_parameters>hidePalette=true</value_parameters>
<value>"#e9f8fb"</value>
</property>
<property property_name="paletteColor2" group_name="palette" title="Color 2" description="" property_type="value" value_type="color" depends_on="" value_group="primary" display_order="1100" addon_id="XF">
<value_parameters>hidePalette=true</value_parameters>
<value>"#a7e2f1"</value>
</property>
<property property_name="paletteColor3" group_name="palette" title="Color 3" description="" property_type="value" value_type="color" depends_on="" value_group="primary" display_order="1200" addon_id="XF">
<value_parameters>hidePalette=true</value_parameters>
<value>"#5dc9e5"</value>
</property>
<property property_name="paletteColor4" group_name="palette" title="Color 4" description="" property_type="value" value_type="color" depends_on="" value_group="primary" display_order="1300" addon_id="XF">
<value_parameters>hidePalette=true</value_parameters>
<value>"#20a4c5"</value>
</property>
<property property_name="paletteColor5" group_name="palette" title="Color 5" description="" property_type="value" value_type="color" depends_on="" value_group="primary" display_order="1400" addon_id="XF">
<value_parameters>hidePalette=true</value_parameters>
<value>"#125b6e"</value>
</property>
<property property_name="paletteNeutral1" group_name="palette" title="Neutral 1" description="" property_type="value" value_type="color" depends_on="" value_group="neutral" display_order="3000" addon_id="XF">
<value_parameters>hidePalette=true</value_parameters>
<value>"#ffffff"</value>
</property>
<property property_name="paletteNeutral2" group_name="palette" title="Neutral 2" description="" property_type="value" value_type="color" depends_on="" value_group="neutral" display_order="3100" addon_id="XF">
<value_parameters>hidePalette=true</value_parameters>
<value>"rgb(150, 150, 150)"</value>
</property>
<property property_name="paletteNeutral3" group_name="palette" title="Neutral 3" description="" property_type="value" value_type="color" depends_on="" value_group="neutral" display_order="3200" addon_id="XF">
<value_parameters>hidePalette=true</value_parameters>
<value>"#666666"</value>
</property>
<property property_name="publicFooter" group_name="footer" title="Footer" description="The footer is the primary element that sits below the main content on all public pages" property_type="css" value_type="" depends_on="" value_group="" display_order="20000" css_components="text,background,border,extra" addon_id="XF">
<value>{
"font-size": "@xf-fontSizeSmall",
"color": "#bbbfc2",
"background-color": "#3b3b40"
}</value>
</property>
<property property_name="publicFooterLink" group_name="footer" title="Footer links" description="Controls styling for individual links within the footer" property_type="css" value_type="" depends_on="" value_group="" display_order="20100" css_components="text,extra" addon_id="XF">
<value>{
"color": "#bbbfc2"
}</value>
</property>
<property property_name="publicHeader" group_name="headerNav" title="Header/logo row" description="The header row contains your logo and sits at the top of every public page" property_type="css" value_type="" depends_on="" value_group="" display_order="20000" css_components="text,background,extra" addon_id="XF">
<value>{
"color": "@xf-textColor",
"background-color": "#ffffff"
}</value>
</property>
<property property_name="publicLogoUrl" group_name="basic" title="Logo URL" description="The web path from your site's XenForo installation directory to your logo image." property_type="value" value_type="string" depends_on="" value_group="logo" display_order="100" addon_id="XF">
<value>"styles/brivium/cerium/extra/logo.png"</value>
</property>
<property property_name="publicNav" group_name="headerNav" title="Navigation row" description="The navigation row sits below the header and contains the primary site navigation tabs and menus" property_type="css" value_type="" depends_on="" value_group="" display_order="20100" css_components="text,background,extra" addon_id="XF">
<value>{
"color": "@xf-textColor",
"background-color": "#ffffff"
}</value>
</property>
<property property_name="publicNavSelected" group_name="headerNav" title="Navigation row - selected tab" description="Additional styling to apply to navigation tabs when they are selected" property_type="css" value_type="" depends_on="" value_group="" display_order="20300" css_components="text,background,border,border_radius,extra" addon_id="XF">
<value>{
"font-size": "14px",
"color": "@xf-paletteColor3",
"font-weight": "@xf-fontWeightNormal"
}</value>
</property>
<property property_name="publicNavTab" group_name="headerNav" title="Navigation row - tab" description="Controls the styling of individual tab elements within the navigation row" property_type="css" value_type="" depends_on="" value_group="" display_order="20200" css_components="text,background,extra" addon_id="XF">
<value>{
"font-size": "14px",
"color": "@xf-textColor",
"font-weight": "@xf-fontWeightNormal",
"text-decoration": "none"
}</value>
</property>
<property property_name="publicNavTabHover" group_name="headerNav" title="Navigation row - hovered tab" description="Additional styling to apply to navigation tabs when the pointer hovers over them" property_type="css" value_type="" depends_on="" value_group="" display_order="20400" css_components="text,background,extra" addon_id="XF">
<value>{
"font-size": "14px",
"color": "@xf-paletteColor3",
"font-weight": "@xf-fontWeightNormal",
"text-decoration": "none",
"background-color": "transparent"
}</value>
</property>
<property property_name="publicNavTabMenuOpen" group_name="headerNav" title="Navigation row - menu open" description="Styling applied when the popup menu for the current tab is visible" property_type="css" value_type="" depends_on="" value_group="" display_order="20450" css_components="text,background,extra" addon_id="XF">
<value>{
"color": "@xf-paletteColor3",
"text-decoration": "none"
}</value>
</property>
<property property_name="publicStaffBar" group_name="headerNav" title="Staff tools bar" description="Visible only to staff, the staff tools bar sits above the header and contains items such as reported content, the moderation queue..." property_type="css" value_type="" depends_on="" value_group="" display_order="20700" css_components="text,background,border,extra" addon_id="XF">
<value>{
"font-size": "@xf-fontSizeSmall",
"color": "#fff",
"font-weight": "@xf-fontWeightNormal",
"background-color": "@xf-paletteAccent3",
"extra": "padding: 5px 0;"
}</value>
</property>
<property property_name="publicSubNav" group_name="headerNav" title="Sub-navigation row" description="Below the main navigation row, this row shows content associated with the selected main navigation tab" property_type="css" value_type="" depends_on="" value_group="" display_order="20500" css_components="text,background,border,extra" addon_id="XF">
<value>{
"font-size": "@xf-fontSizeSmall",
"color": "@xf-linkColor",
"background-color": "#fff",
"border-bottom-width": "@xf-borderSize",
"border-bottom-color": "@xf-borderColorHeavy"
}</value>
</property>
<property property_name="publicSubNavElHover" group_name="headerNav" title="Sub-navigation row - hovered element" description="Additional styling applied to sub-navigation tabs when the pointer hovers over them" property_type="css" value_type="" depends_on="" value_group="" display_order="20600" css_components="text,extra" addon_id="XF">
<value>{
"color": "@xf-linkColor"
}</value>
</property>
<property property_name="publicSubNavElMenuOpen" group_name="headerNav" title="Sub-navigation row - menu-open element" description="Styles sub-navigation elements whose popup menu is currently open" property_type="css" value_type="" depends_on="" value_group="" display_order="20650" css_components="text,background,extra" addon_id="XF">
<value>{
"color": "@xf-linkColor",
"text-decoration": "none"
}</value>
</property>
<property property_name="sidebarSpacer" group_name="page" title="Sidebar and side navigation spacer" description="Distance between the main content and the sidebar" property_type="value" value_type="unit" depends_on="" value_group="sidebar" display_order="1000" addon_id="XF">
<value>"20px"</value>
</property>
<property property_name="sidebarWidth" group_name="page" title="Sidebar and side navigation width" description="Width of any elements that make up the sidebar" property_type="value" value_type="unit" depends_on="" value_group="sidebar" display_order="1100" addon_id="XF">
<value>"260px"</value>
</property>
<property property_name="standaloneTab" group_name="tab" title="Standalone tabs" description="Tabs that are not part of block headers are styled here" property_type="css" value_type="" depends_on="" value_group="" display_order="20000" css_components="text,background,extra" addon_id="XF">
<value>{
"font-size": "14px",
"color": "@xf-linkColor",
"font-weight": "@xf-fontWeightNormal",
"background-color": "transparent",
"extra": "border: none;\nborder-radius: 3px;"
}</value>
</property>
<property property_name="standaloneTabSelected" group_name="tab" title="Standalone tabs - selected tab" description="The selected tab in groups that are not part of block headers" property_type="css" value_type="" depends_on="" value_group="" display_order="20100" css_components="text,background,border_color_simple,extra" addon_id="XF">
<value>{
"color": "@xf-paletteColor3"
}</value>
</property>
<property property_name="textColor" group_name="color" title="Text color" description="Unless otherwise specified, text will be this color" property_type="value" value_type="color" depends_on="" value_group="textBasic" display_order="100" addon_id="XF">
<value>"@xf-paletteAccent2"</value>
</property>
<property property_name="tooltip" group_name="tooltip" title="Tooltip" description="Certain elements have special floating tooltips, which are controlled here" property_type="css" value_type="" depends_on="" value_group="" display_order="20000" css_components="text,background,border_radius,padding,extra" addon_id="XF">
<value>{
"font-size": "11px",
"color": "#fff",
"background-color": "rgba(0,0,0,.7)",
"border-radius": "3px",
"padding-top": "3px",
"padding-right": "17px",
"padding-bottom": "3px",
"padding-left": "17px",
"extra": "line-height: 18px;"
}</value>
</property>
</properties>
</style>