Показаны сообщения с ярлыком vbulletin. Показать все сообщения
Показаны сообщения с ярлыком vbulletin. Показать все сообщения

среда, 25 ноября 2009 г.

Условные выражения Vbulletin Conditionals

Список полезных условных выражений для Vbulletin:


Рассмотрим некоторые условия, применяемые в шаблонах форумного движка vBulletin.


1. Как установить условие для показа некоторой информации только для одной группы пользователей.

2. Как установить условие для показа некоторой информации только для нескольких групп пользователей.


<if condition="is_member_of($bbuserinfo, X, Y, Z)">
</if>

3. Установка условия только для одного пользователя (по user id).


<if condition="$bbuserinfo[userid] == X">

</if>

4. То же самое для нескольких пользователей.


<if condition="in_array($bbuserinfo[userid], array(X,Y,Z))">
</if>

5. Скрыть инфу только от 1 группы.


<if condition="!is_member_of($bbuserinfo, X)">
</if>

6. От нескольких групп пользователей vBulletin информацию можно скрыть так:


<if condition="!is_member_of($bbuserinfo, X, Y, Z)">

</if>

7. Скрыть от одного пользователя форума.


<if condition="$bbuserinfo[userid] == X">
</if>

8. Скрыть от некоторых:


<if condition="!in_array($bbuserinfo[userid], array(X,Y,Z))">
</if>

9. Как показать текст только в каком-то разделе форума?


<if condition="$forumid == X">

</if>

10. В нескольких разделах форума информацию показывают так:


<if condition="in_array($forumid, array(X,Y,Z))">
</if>

11. Скрытие в 1 форуме


<if condition="$forumid != X">
</if>

12. Скрыть в нескольких разделах форума на vBulletin:


<if condition="!in_array($forumid, array(X,Y,Z))">

</if>


13. Условие $show['popups']

Некоторые браузеры не могут использовать систему vBMenu. Для этого имеется условие $show['popups']. С ним мы можем предотвратить попытку инициализации такого кода. Ошибки JavaScript теперь не будут иметь место, а показываться будет альтернативный HTML-код.


<if condition="$show['popups']">

<!-- Здесь контент для браузеров, которые могут использовать систему vBMenu -->

<else>

<!-- Здесь контент для браузеров, которые НЕ могут использовать сплывающие окна vBMenu -->

</else>
</if>


14. Показать что-то только для определённого стиля (шаблона) можно так:


<if condition="$bbuserinfo[styleid]==x">
<!-- Здесь содержимое для стиля с идентификатором 'x' -->
</if>


Обычно на практике бывает полезно разбираться в этих вещах, так как в любом шаблоне vBulletin этих уловий очень много, и, как правило, они вложены друг в друга, что возволяет писать многоступенчатые проверки.

суббота, 31 октября 2009 г.

Закрытие ссылок с постов пользователей в vBulletin с помощью rel nofollow

Для закрытия ссылок на форуме с движком vBulletin я ещё год назад применил следующую методику:

Открываем файл _Директория vBulletin_/includes/class_bbcode.php, и находим там функцию обработки ссылок:


function handle_bbcode_url($text, $link)

В функцию в качестве параметров передаются:

$text - текст ссылки, указанной пользователем, и

$link - сама ссылка.

Эта функция занимается обработкой ссылок в посте пользователя. В конце концов, переменная $rightlink содержит ссылку, а $text - текст ссылки. После обработки, возвращает строку вида:

return "<a href=\"$rightlink\" target=\"_blank\">$text</a>";

Для закрытия ссылок, а именно, закрытие ссылок параметром rel=nofollow, надо всего лишь добавить наш параметр в указанный выше код:



return "<a href=\"$rightlink\" rel=\"nofollow\" target=\"_blank\">$text</a>";

Однако, вдруг нам надо закрывать не все ссылки?
Более детальная настройка: Мы хотим, чтобы ссылки на наш форум не закрывались. И ещё, рассмотрим случай, когда наш форум установлен в папке сайта, то есть типа: http://www.example.com/forum/ - ведь тогда желательно не закрывать ссылки в vBulletin и для домена www.example.com. И ещё сайт example.ru является нашим доменом. Тогда перед return пишем:



$pos1 = strpos($rightlink, 'example.com');
$pos2 = strpos($rightlink, 'example.ru');

if ( ($pos1 === false) && ($pos2 === false) ) {
$relnofollow = "rel=\"nofollow\"";
}
else
$relnofollow = "";

А сам return изменяем в виде:

return "<a href=\"$rightlink\" ".$relnofollow." target=\"_blank\">$text</a>";

Стоит отметить, что таким же образом Вы можете закрыть ссылки и тегами noindex для Яндекса. Однако, стоит ли закрывать ссылки от Яши, раз она всё равно не учитывает их при расчёте тИЦ?

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