ХАК Как сделать рекламу в XenForo

Sam Jack

Капитан-Узурпатор
Команда форума
Созидатель
5 Май 2015
13.917
4.894
113
Россия
null-prog.ru
Для рекламы в XenForo есть свои шаблоны c с приставкой ad_, давайте их расшифруем:

Название шаблона: ad_above_content
Описание: Реклама отображается на всех страницах перед узлами.

Название шаблона: ad_below_top_breadcrumb
Описание: Реклама отображается на всех страницах перед верхними хлебными крошками.

Название шаблона: ad_below_bottom_breadcrumb
Описание: Реклама отображается на всех страницах после нижних хлебных крошек.

Название шаблона: ad_below_content
Описание: Реклама отображается на всех страницах после узлов.

Название шаблона: ad_below_top_breadcrumb
Описание: Реклама отображается на всех страницах после верхних хлебных крошек.

Название шаблона: ad_forum_view_above_node_list
Описание: Реклама отображается вверху перед подразделами (3 уровень вложенности).

Название шаблона: ad_forum_view_above_thread_list
Описание: Реклама отображается вверху перед списком тем.

Название шаблона: ad_header
Описание: Реклама отображается на всех страницах вверху хедера (после логотипа).

Название шаблона: ad_member_view_above_messages
Описание: Реклама отображается перед сообщения профиля (при просмотре страницы профиля).

Название шаблона: ad_member_view_below_avatar
Описание: Реклама отображается после аватара (при просмотре страницы профиля).

Название шаблона: ad_member_view_sidebar_bottom
Описание: Реклама отображается после статистики пользователя (при просмотре страницы профиля).

Название шаблона: ad_message_below
Описание: Реклама отображается после каждого сообщения (при просмотре темы).

Название шаблона: ad_message_body

Описание: Реклама отображается в теле каждого сообщения (при просмотре темы).

Название шаблона: ad_sidebar_below_visitor_panel
Описание: Реклама отображается только на главной после статистики пользоватеяля (в сайдбаре).

Название шаблона: ad_sidebar_bottom
Описание: Реклама отображается только на главной после всех блоков сайдбара.

Название шаблона: ad_thread_list_below_stickies

Описание: Реклама отображается перед списком тем в разделе.

Название шаблона: ad_thread_view_above_messages
Описание: Реклама отображается перед списком сообщений в теме.

Это не полный список, можете добавить !

Также в шаблонах можно делать условия, т.е. отображения контента определённым пользователям, группам и прочее, приведу примеры:

Отображение содержимого только авторизованным пользователям (не показывать гостям):
<xen:if is="{$visitor.user_id}">
Содержимое видно только авторизованным пользователям
</xen:if>



Отображение содержимого только гостям (не показывать авторизованным пользователям):
<xen:if is="!{$visitor.user_id}">
Содержимое видно только гостям
</xen:if>



Отображение различного содержимого гостям и авторизованным:
<xen:if is="{$visitor.user_id}">
Это содержимое видно только авторизованным пользователям
<xen:else />
Это содержимое видно только гостям
</xen:if>



Отображение содержимого определенной группе пользователей:
<xen:if is="{xen:helper ismemberof, $visitor, X}">
Это содержимое видно только группе с ID=X
</xen:if>



Скрытие содержимого от определенной группы пользователей:
<xen:if is="!{xen:helper ismemberof, $visitor, X}">
Это содержимое скрыто от группы с ID=X
</xen:if>



Отображение содержимого нескольким группам пользователей:
<xen:if is="{xen:helper ismemberof, $visitor, X, Y}">
Это содержимое видно только группам с ID=X и ID=Y
</xen:if>



Скрытие содержимого от нескольких групп пользователей:
<xen:if is="!{xen:helper ismemberof, $visitor, X, Y}">
Это содержимое скрыто от групп с ID=X и ID=Y
</xen:if>



Отображение содержимого только администраторам:
<xen:if is="{$visitor.is_admin}">
Это содержимое видно только администраторам
</xen:if>



Отображение содержимого только модераторам:
<xen:if is="{$visitor.is_moderator}">
Это содержимое видно только модераторам
</xen:if>



Отображение содержимого только администраторам и модераторам:
<xen:if is="{$visitor.is_admin} OR {$visitor.is_moderator}">
Это содержимое видно толькоадминистраторам и модераторам
</xen:if>



Отображение содержимого только определенному пользователю:
<xen:if is="{$visitor.user_id} == X">
Это содержимое видно только пользователю с ID=X
</xen:if>



Отображение содержимого нескольким пользователям:
<xen:if is="in_array({$visitor.user_id}, array(X, Y, Z))">
Это содержимое видно только пользователям с ID=X, ID=Y и ID=Z.
</xen:if>



Отображение содержимого после первого сообщения в теме:
<xen:if is="{$post.position} == 0">
Это содержимое видно после первого сообщения в теме
</xen:if>



Отображение содержимого после первого сообщения в теме или личной переписке:
<xen:if is="{$post.position} == 0 AND !{$message.conversation_id}">
Это содержимое видно после первого сообщения в теме или личной переписке
</xen:if>



Отображение содержимого после X сообщений в теме на каждой странице:
<xen:if is="{$post.position} % {$xenOptions.messagesPerPage} == X AND !{$message.conversation_id}">
Это содержимое видно после X сообщений в теме на каждой странице
</xen:if>



Отображение содержимого после X сообщений в теме или личной переписке на каждой странице:
<xen:if is="{$post.position} % {$xenOptions.messagesPerPage} == X">
Это содержимое видно после X сообщений в теме или личной переписке на каждой странице
</xen:if>



Отображение содержимого после X сообщений в теме на каждой странице, только в разделах Y или Z:
<xen:if is="{$post.position} % {$xenOptions.messagesPerPage} == X AND in_array({$thread.node_id}, array(Y, Z))">
Это содержимое видно после X сообщений в теме на каждой странице, только в разделах Y и Z
</xen:if>



Отображение содержимого после X сообщений в теме на каждой странице, кроме разделов Y и Z:
<xen:if is="{$post.position} % {$xenOptions.messagesPerPage} == x AND !in_array({$thread.node_id}, array(Y, Z))">
Это содержимое видно после X сообщений в теме на каждой странице, кроме разделов Y и Z
</xen:if>



Отображение содержимого только на определенных страницах:
<xen:if is="{$contentTemplate} == 'XYZ'">
Это содержимое видно только на странице XYZ
</xen:if>



Отображение содержимого только в определенной категории:
<xen:if is="{$category.node_id} == X">
Это содержимое видно только в категории X
</xen:if>

Примечание: чтобы это работало, необходимо включить опцию "Создавать страницы для категорий" в настройках:
Панель администратора -> Настройки -> Список разделов форума и узлов.


Отображение содержимого только в определенном разделе:
<xen:if is="{$forum.node_id} == X">
Это содержимое видно только в разделе X
</xen:if>



Отображение содержимого только в нескольких определенных разделах:
<xen:if is="in_array({$forum.node_id}, array(X, Y, Z))">
Это содержимое видно только в разделах X, Y и Z
</xen:if>



Отображение содержимого только в определенной теме:
<xen:if is="{$threadId} == X">
Это содержимое видно только в теме X
</xen:if>



Отображение содержимого только в нескольких определенных темах:
<xen:if is="in_array({$threadId}, array(X, Y, Z))">
Это содержимое видно только в темах X, Y и Z
</xen:if>



Отображение содержимого только в определенном сообщении:
<xen:if is="{$postId} == X">
Это содержимое видно только в сообщении X
</xen:if>



Отображение содержимого только в нескольких определенных сообщениях:
<xen:if is="in_array({$postId}, array(X, Y, Z))">
Это содержимое видно только в сообщениях X, Y и Z
</xen:if>



Отображение содержимого если автор сообщения является автором темы:
<xen:if is="{$post.user_id} == {$thread.user_id}">
Это содержимое видно если автор является автором темы
</xen:if>



Отображение содержимого пользователям, у которых 0 сообщений:
<xen:if is="{$visitor.message_count} == 0">
Это содержимое видно только пользователям, у которых 0 сообщений
</xen:if>



Отображение содержимого пользователям, у которых более X сообщений:
<xen:if is="{$visitor.message_count} > X">
Это содержимое видно только пользователям, у которых более X сообщений
</xen:if>



Отображение содержимого пользователям, у которых менее X сообщений:
<xen:if is="{$visitor.message_count} < X">
Это содержимое видно только пользователям, у которых менее X сообщений
</xen:if>



Отображение содержимого пользователям, которые не подтвердили свой почтовый адрес:
<xen:if is="{$isAwaitingEmailConfirmation}">
Это содержимое видно только пользователям, которые не подтвердили свой почтовый адрес
</xen:if>



Отображение содержимого пользователям, которые пришли с поисковых систем:
<xen:if is="{$visitor.from_search}">
Это содержимое видно только пользователям, которые пришли с поисковых систем
</xen:if>


Можете также дополнить ещё !

Как видите стандартных возможностей вполне достаточно, также в XenForo начиная с версии 1.2 можно делать инклуды своего php из шаблона, тег <xen:callback> ! ;)
 

Sam Jack

Капитан-Узурпатор
Команда форума
Созидатель
5 Май 2015
13.917
4.894
113
Россия
null-prog.ru
Скриншоты мест объявлений, описанных выше:
 

Вложения

  • untitled(2).jpg
    untitled(2).jpg
    299,8 KB · Просмотры: 78
  • untitled(3).jpg
    untitled(3).jpg
    275,9 KB · Просмотры: 72
  • untitled(4).jpg
    untitled(4).jpg
    264,1 KB · Просмотры: 71
  • untitled.jpg
    untitled.jpg
    278,3 KB · Просмотры: 65