Баннеры в названиях категорий

kasim

Регистрация
31.01.16
Сообщения
28
Симпатии
11
#1
XenForo поддерживает много мест, куда можно установить баннер. Для этого созданы специальные hook's. А как быть, если хочется добавить баннер в место, по мнению разработчиков, не предназначенное для этого? Например, в название категории.

web.screenshot.2016-03-03.17-13-40.png

Делается очень просто. Шаблон, отвечающий за отображение категорий главной станицы называется node_category_level_1. В нём находится код, отвечающий за заголовок категории:
Код:
<h3 class="nodeTitle"><a href="{xen:link categories, $category}">{$category.title}</a></h3>
Чтобы вывести баннер, нужно между тегами </a></h3> добавить следующий код:

Код:
<div class="ad_nodeTitle_banner">
  <xen:if is="{$category.node_id} == 1">
    <a rel="nofollow" href="#" target="_blank">[ Реклама ]</a>
  <xen:elseif is="{$category.node_id} == 3" />
    <a rel="nofollow" href="#" target="_blank">[ Реклама ]</a>
  </xen:if>
</div>
{$category.node_id} == 1 и {$category.node_id} == 3 - это условия, которые будут отображать баннеры в категориях с ID = 1 и ID = 3, соответственно.

Можно добавить неограниченное количество баннеров, расширив приведённый выше код, например:

Код:
<div class="ad_nodeTitle_banner">
  <xen:if is="{$category.node_id} == 1">
    <a rel="nofollow" href="#" target="_blank">[ Реклама ]</a>
  <xen:elseif is="{$category.node_id} == 3" />
    <a rel="nofollow" href="#" target="_blank">[ Реклама ]</a>
  <xen:elseif is="{$category.node_id} == 5" />
    <a rel="nofollow" href="#" target="_blank">[ Реклама ]</a>
  <xen:elseif is="{$category.node_id} == 7" />
    <a rel="nofollow" href="#" target="_blank">[ Реклама ]</a>
  <xen:elseif is="{$category.node_id} == 9" />
    <a rel="nofollow" href="#" target="_blank">[ Реклама ]</a>
  <xen:elseif is="{$category.node_id} == 11" />
    <a rel="nofollow" href="#" target="_blank">[ Реклама ]</a>
  </xen:if>
</div>
Код:
В этом коде, баннер выводится уже в категориях с ID 3, 5, 7, 9 и 11.

Как только код с баннерами будет подготовлен, необходимо в EXTRA.css добавить темизацию ссылок. Для этого необходимо открыть EXTRA.css и добавить:

[CODE]/**
- * Category Banners
- * by WebNull.info
- */

.ad_nodeTitle_banner {
  float: right;
}
В классе .ad_nodeTitle_banner {...} можно прописать любую темизацию за Ваш вкус.
 
Последнее редактирование модератором:

IonRadu

Регистрация
15.03.16
Сообщения
53
Симпатии
1
#2
XenForo поддерживает много мест, куда можно установить баннер. Для этого созданы специальные hook's. А как быть, если хочется добавить баннер в место, по мнению разработчиков, не предназначенное для этого? Например, в название категории.

web.screenshot.2016-03-03.17-13-40.png

Делается очень просто. Шаблон, отвечающий за отображение категорий главной станицы называется node_category_level_1. В нём находится код, отвечающий за заголовок категории:
Код:
<h3 class="nodeTitle"><a href="{xen:link categories, $category}">{$category.title}</a></h3>
Чтобы вывести баннер, нужно между тегами </a></h3> добавить следующий код:

Код:
<div class="ad_nodeTitle_banner">
  <xen:if is="{$category.node_id} == 1">
    <a rel="nofollow" href="#" target="_blank">[ Реклама ]</a>
  <xen:elseif is="{$category.node_id} == 3" />
    <a rel="nofollow" href="#" target="_blank">[ Реклама ]</a>
  </xen:if>
</div>
{$category.node_id} == 1 и {$category.node_id} == 3 - это условия, которые будут отображать баннеры в категориях с ID = 1 и ID = 3, соответственно.

Можно добавить неограниченное количество баннеров, расширив приведённый выше код, например:

Код:
<div class="ad_nodeTitle_banner">
  <xen:if is="{$category.node_id} == 1">
    <a rel="nofollow" href="#" target="_blank">[ Реклама ]</a>
  <xen:elseif is="{$category.node_id} == 3" />
    <a rel="nofollow" href="#" target="_blank">[ Реклама ]</a>
  <xen:elseif is="{$category.node_id} == 5" />
    <a rel="nofollow" href="#" target="_blank">[ Реклама ]</a>
  <xen:elseif is="{$category.node_id} == 7" />
    <a rel="nofollow" href="#" target="_blank">[ Реклама ]</a>
  <xen:elseif is="{$category.node_id} == 9" />
    <a rel="nofollow" href="#" target="_blank">[ Реклама ]</a>
  <xen:elseif is="{$category.node_id} == 11" />
    <a rel="nofollow" href="#" target="_blank">[ Реклама ]</a>
  </xen:if>
</div>
Код:
В этом коде, баннер выводится уже в категориях с ID 3, 5, 7, 9 и 11.

Как только код с баннерами будет подготовлен, необходимо в EXTRA.css добавить темизацию ссылок. Для этого необходимо открыть EXTRA.css и добавить:

[CODE]/**
- * Category Banners
- * by WebNull.info
- */

.ad_nodeTitle_banner {
  float: right;
}
В классе .ad_nodeTitle_banner {...} можно прописать любую темизацию за Ваш вкус.
Код:
<xen:require css="node_list.css" />
<xen:require css="node_category.css" />

<li class="node category level_{$level} node_{$category.node_id}" id="{xen:helper linktitle, $category.node_id, $category.title, 1}">

    <div class="nodeInfo categoryNodeInfo categoryStrip {xen:if '{$uix_nodeClasses.{$category.node_id}}', '{$uix_nodeClasses.{$category.node_id}}'}">
  
        <div class="categoryText">
            <h3 class="nodeTitle">
                <xen:if is="@uix_nodeIcons_categoryStrip">
                <xen:include template="uix_nodeIcon">
                    <xen:set var="$state">{$category.hasNew}</xen:set>
                    <xen:set var="$type">category</xen:set>
                    <xen:set var="$nodeId">{$category.node_id}</xen:set>
                    <xen:set var="$location">categoryStrip</xen:set>
                </xen:include>
                </xen:if>
                <a href="{xen:link categories, $category}" data-description="{xen:if @uix_categoryStrip_descriptionTooltips, '#nodeDescription-{$category.node_id}'}">{$category.title}</a>
            </h3>
            <xen:if is="{$category.description}"><blockquote class="nodeDescription {xen:if @uix_categoryStrip_descriptionTooltips, nodeDescriptionTooltip} baseHtml" id="nodeDescription-{$category.node_id}">{xen:raw $category.description}</blockquote></xen:if>
        </div>
        <xen:if is="@uix_collapseNodes"><a href="#" class="uix_collapseNodes" title="{xen:phrase uix_toggle_visibility}"><i class="uix_icon uix_icon-collapse"></i></a></xen:if>
      
    </div>
  
    <xen:if is="{$renderedChildren}">      
        <ol class="nodeList">
            <xen:foreach loop="$renderedChildren" value="$child">{xen:raw $child}</xen:foreach>
        </ol>
    </xen:if>
    <xen:if is="@uix_nodeStyle"><div class="clear"></div></xen:if>
    <span class="tlc"></span>
    <span class="trc"></span>
    <span class="blc"></span>
    <span class="brc"></span>
</li>
У миня нету
Код:
<h3 class="nodeTitle"><a href="{xen:link categories, $category}">{$category.title}</a></h3>
Где найти?
 

bakuryu

Регистрация
21.04.16
Сообщения
5
Симпатии
0
#3
Благодарю за инструкцию, все получилось.