FluxBB

Нравится


  • Всего проголосовало
    7

нарада

Гуру форума
Регистрация
15 Сен 2009
Сообщения
508
Реакции
74
Понравился лёгкий движок.

Кратко:

FluxBB is fast, light, user-friendlyforum software for your website.
FluxBB is designed as a lighter, faster alternative to some of the traditional feature heavy forum applications. It is easy to use and has a proven track record of stability and security making it an ideal choice of forum for your website.

UTF-8 support
XHTML compliant
Password hashing
IPv6 support
GZip output
MySQL(i)
MySQL(i) InnoDB
PostgreSQL
SQLite
External SMTP support
SMTP over SSL
Language packs
User selectable language
CSS styles
User selectable style
Admin panel plugins
Read topic tracking
Topic subscription
Forum subscription
Announcements
Post preview
Move topics
Merge topics
Split topics
Close topics
Sticky topics
Prune old topics
Edit posts
Delete posts
BBCode
Smilies
Quoting
(Dis)Allow links
Word censoring
RSS feed support
Atom feed support
New topic feed
Forum specific feed
Topic specific feed
Disable registrations
Registration notification
Email validation
Registration terms
Online users list
Avatar upload
Signatures
User post counts
User ranks
User profile
User preferences
User titles
Topic search
Author search
Userlist search
New posts view
Recent posts view
Unanswered posts view
Subscribed posts view
View specific users posts
Forum categories
Redirect forums
User groups
Group based permissions
Promote users
Moderator groups
Group titles
(Dis)Allow guest view
(Dis)Allow guest posts
Maintenance mode
Permanent bans
Temporary bans
Delete users
Ban by username
Ban by email
Ban by IP address
Flood control
User notes
IP address logging
(Dis)Allow used emails
(Dis)Allow banned emails
Report posts

Адрес сайта разработчика: Для просмотра ссылки Войди или Зарегистрируйся
 
  • Нравится
Реакции: Inov
Сам с ним работаю. Вы не хотели перевести сообщение на русский язык?
 
Последнее редактирование:
Так ведь он есть в паблике:
Скрытое содержимое доступно для зарегистрированных пользователей!
 
В чем отличие от phpbb 3?
 
Понравился лёгкий движок.

Кратко:

FluxBB is fast, light, user-friendlyforum software for your website.
FluxBB is designed as a lighter, faster alternative to some of the traditional feature heavy forum applications. It is easy to use and has a proven track record of stability and security making it an ideal choice of forum for your website.

Я про первое сообщение. После слова "кратко". Лично я плох в английском. :)
FluxBB быстрая, лёгкая и удобная в использовании платформа создания форума на вашем сайте.
FluxBB была спроектирована как лёгкая и быстрая альтернатива большинству общеизвестных форумных решений. Легка в использовании и имеет положительную репутацию стабильности и безопасности, что делает её хорошим выбором для вашего сайта.
 
Хак для скрытия всех внешних ссылок через редирект на Fluxbb
(с возможностью оставить открытой любую необходимую ссылку)

Когда хак будет настроен, все внешние ссылки с сайта, включая ссылки в бб-кодах url, в описаниях профилей и на страницах профилей, будут работать редиректом через файл go.php
Таким образом все внешние ссылки будут иметь следующий вид:
Код:
http://site.ru/go.php?to=http://yandex.ru
Затем данный файл для надежности закрывается от индексации в robots.txt с помощью такой директивы:
Код:
Disallow: go.php
Чтобы иметь возможность оставлять некоторые ссылки открытыми, мы добавим на форум дополнительный бб-код [rurl]. Далее в инструкции в коде в качестве бб-кода будет использоваться rurl, но вы можете использовать любой другой (скажем [refurl231], чтобы защитить свой форум от спамеров, которые возможно набредут на инструкцию по этому хаку. Это маловероятно, но всё же.

Инструкция для Fluxbb 1.5.10:
1) Создаем в корне форума файл с названием go.php и таким содержанием:
Код:
<?php
$to_link = $_GET["to"];
$URL = substr_replace($URL, $to_link, 0);
header ("Location: $URL");
?>
2) Находим в файле /includes/parser.php функцию handle_url_tag, в которой нас интересует вот эта часть:

Код:
return '<a href="'.$full_url.'" rel="nofollow">'.$link.'</a>';
Заменяем её на это, изменив site.ru на ваш домен:

Код:
return '<a href="http://site.ru/go.php?to='.$full_url.'" rel="nofollow">'.$link.'</a>';
Теперь все ссылки в бб-коде url будут идти редиректом через go.php

3) Чтобы иметь возможность оставлять некоторые ссылки прямыми, без редиректов и rel=nofollow, нам нужна точно такая же функция, но которая будет обрабатывать ссылки, скажем, в бб-коде [rurl] и выдавать их напрямую, без подстановки go.php.

Для этого мы полностью копируем функцию handle_url_tag, переименовываем её в handle_rurl_tag, приводим строчку return к такому виду:
Код:
return '<a href="'.$full_url.'">'.$link.'</a>';
А также находим вот этот кусок кода:
Код:
if ($bbcode)
{
    if ($full_url == $link)
        return '[url]'.$link.'[/url]';
    else
        return '[url=.$full_url.]'.$link.'[/url]';
}
И заменяем в нём все url, на rurl. Получится вот так:
Код:
if ($bbcode)
{
    if ($full_url == $link)
        return '[rurl]'.$link.'[/rurl]';
    else
        return '[rurl='.$full_url.']'.$link.'[/rurl]';
}
Вы могли заметить, что помимо отсутствия go.php мы также убрали и rel="nofollow".
Напоминаю, что если вы хотите получить в итоге не [rurl] бб-код для открытых ссылок, а какой-то другой, то начиная с этого момента и далее все rurl вам надо заменять на свой вариант.

В итоге у вас должна получиться вот такая картина:
Код:
function handle_rurl_tag($url, $link = '', $bbcode = false)
{
    $url = pun_trim($url);

    // Deal with [url][img]http://example.com/test.png[/img][/url]
    if (preg_match('%<img src=\"(.*?)\"%', $url, $matches))
        return handle_url_tag($matches[1], $url, $bbcode);

    $full_url = str_replace(array(' ', '\'', '`', '"'), array('%20', '', '', ''), $url);
    if (!preg_match('#^([a-z0-9]{3,6})://#', $url)) // Else if it doesn't start with abcdef://, we add http://
        $full_url = 'http://'.$full_url;

    // Ok, not very pretty :-)
    if ($bbcode)
    {
        if ($full_url == $link)
            return '[rurl]'.$link.'[/rurl]';
        else
            return '[rurl='.$full_url.']'.$link.'[/rurl]';
    }
    else
    {
        if ($link == '' || $link == $url)
        {
            $url = pun_htmlspecialchars_decode($url);
            $link = utf8_strlen($url) > 55 ? utf8_substr($url, 0 , 39).' … '.utf8_substr($url, -10) : $url;
            $link = pun_htmlspecialchars($link);
        }
        else
            $link = stripslashes($link);

        return '<a href="'.$full_url.'">'.$link.'</a>';
    }
}
Не забываем про замену site.ru на ваш домен.

Необязательное улучшение
Хотите немного сэкономить ресурсы сервера? Для этого можно удалить лишние обработчики неправильного написания ссылок в нашей новой функции.
Убираем из handle_rurl_tag данный кусок кода:
Код:
if (strpos($url, 'www.') === 0) // If it starts with www, we add http://
        $full_url = 'http://'.$full_url;
else if (strpos($url, 'ftp.') === 0) // Else if it starts with ftp, we add ftp://
        $full_url = 'ftp://'.$full_url;
else if (strpos($url, '/') === 0) // Allow for relative URLs that start with a slash
        $full_url = get_base_url(true).$full_url;
и заменяем оставшуюсся

Код:
else if (!preg_match('#^([a-z0-9]{3,6})://#', $url)) // Else if it doesn't start with abcdef://, we add http://
        $full_url = 'http://'.$full_url;
на

Код:
if (!preg_match('#^([a-z0-9]{3,6})://#', $url)) // Else if it doesn't start with abcdef://, we add http://
        $full_url = 'http://'.$full_url;
В итоге наша функция handle_rurl_tag станет на несколько операций короче и будет выглядеть так:

Код:
function handle_rurl_tag($url, $link = '', $bbcode = false)
{
    $url = pun_trim($url);

    // Deal with [url][img]http://example.com/test.png[/img][/url]
    if (preg_match('%<img src=\"(.*?)\"%', $url, $matches))
        return handle_url_tag($matches[1], $url, $bbcode);

    $full_url = str_replace(array(' ', '\'', '`', '"'), array('%20', '', '', ''), $url);
    if (!preg_match('#^([a-z0-9]{3,6})://#', $url)) // Else if it doesn't start with abcdef://, we add http://
        $full_url = 'http://'.$full_url;

    // Ok, not very pretty :-)
    if ($bbcode)
    {
        if ($full_url == $link)
            return '[rurl]'.$link.'[/rurl]';
        else
            return '[rurl='.$full_url.']'.$link.'[/rurl]';
    }
    else
    {
        if ($link == '' || $link == $url)
        {
            $url = pun_htmlspecialchars_decode($url);
            $link = utf8_strlen($url) > 55 ? utf8_substr($url, 0 , 39).' … '.utf8_substr($url, -10) : $url;
            $link = pun_htmlspecialchars($link);
        }
        else
            $link = stripslashes($link);

        return '<a href="'.$full_url.'">'.$link.'</a>';
    }
}
С такой функцией в тэгах [rurl] ссылки нужно будет обязательно прописывать с http:// в начале. Вот так:
Код:
[rurl=http://yandex.ru]анкор ссылки[/rurl]
Если указать ссылку без http:// - она не будет работать, потому что мы удалили код, отвечающий за преобразование неправильных ссылок без протокола к виду с протоколом: Для просмотра ссылки Войди или Зарегистрируйся
Зато сэкономили немного серверных ресурсов на будущее.


3) Теперь нам надо связать новую функцию handle_rurl_tag с, собственно, бб-кодом rurl, который нам кстати тоже сперва надо добавить.

Для этого находим в файле /includes/parser.php функцию do_bbcode, а в ней такие строки:
Код:
$pattern_callback[] = '%\[url\]([^\[]*?)\[/url\]%';
$pattern_callback[] = '%\[url=([^\[]+?)\](.*?)\[/url\]%';
Делаем дубль этих двух строк.
Меняем в дублированных строках url на rurl или ваш бб-код.

В итоге получаем такой код:
Код:
$pattern_callback[] = '%\[url\]([^\[]*?)\[/url\]%';
$pattern_callback[] = '%\[url=([^\[]+?)\](.*?)\[/url\]%';
$pattern_callback[] = '%\[rurl\]([^\[]*?)\[/rurl\]%';
$pattern_callback[] = '%\[rurl=([^\[]+?)\](.*?)\[/rurl\]%';
Далее опускаемся ниже и находим такие строки:
Код:
$replace_callback[] = 'handle_url_tag($matches[1])';
$replace_callback[] = 'handle_url_tag($matches[1], $matches[2])';
Поясню подробнее. Данные строки отвечают за то, чтобы бб-код url обрабатывался функцией handle_url_tag.
Наша задача теперь привязать только что созданный [rurl] бб-код к новой функции handle_rurl_tag.
Для этого мы также делаем дубль этих двух строк и заменяем в них handle_url_tag на handle_rurl_tag.

В итоге у нас получится вот это:
Код:
$replace_callback[] = 'handle_url_tag($matches[1])';
$replace_callback[] = 'handle_url_tag($matches[1], $matches[2])';
$replace_callback[] = 'handle_rurl_tag($matches[1])';
$replace_callback[] = 'handle_rurl_tag($matches[1], $matches[2])';
Сохраняем файл на сервере вместо стандартного, заходим на форум и создаём пост с двумя ссылками:
Одну через url бб-код, другую через rurl бб-код. Если вы всё сделали правильно, то обычная ссылка будет идти через редирект, а rurl-ссылка будет прямой и без атрибута rel="nofollow".

4) Осталось дело за малым. Помимо текстов постов, нам надо закрыть ещё и ссылки в описаниях профилей и на страницах профилей.
а) Чтобы такие ссылки в описаниях профилей тоже работали через редирект:
9ybnz474gbpret6ojfer89v3w.jpg

Открываем файл /viewtopic.php и заменяем вот эту строку:

Код:
$user_contacts[] = '<span class="website"><a href="'.pun_htmlspecialchars($cur_post['url']).'" rel="nofollow">'.$lang_topic['Website'].'</a></span>';
на это, заменив site.ru на свой домен:
Код:
$user_contacts[] = '<span class="website"><a href="http://site.ru/go.php?to='.pun_htmlspecialchars($cur_post['url']).'" rel="nofollow">'.$lang_topic['Website'].'</a></span>';
б) Чтобы редиректить ссылки со страниц профилей, открываем файл /profile.php и аналогичным образом заменяем это:

Код:
$user_personal[] = '<dd><span class="website"><a href="'.$user['url'].'" rel="nofollow">'.$user['url'].'</a></span></dd>';
на это, заменив site.ru на свой домен:

Код:
$user_personal[] = '<dd><span class="website"><a href="http://site.ru/go.php?to='.$user['url'].'" rel="nofollow">'.$user['url'].'</a></span></dd>';
Инструкция для Fluxbb 1.4

В файле include/parser.php также дублируем функцию function handle_url_tag
и меняем
Код:
{
        if ($full_url == $link)
            return '[url]'.$link.'[/url]';
        else
            return '[url=.$full_url.]'.$link.'[/url]';
    }
на
Код:
{
        if ($full_url == $link)
            return '[rurl]'.$link.'[/rurl]';
        else
            return '[rurl='.$full_url.']'.$link.'[/rurl]';
    }
Добавляем бб-тэг rurl и связываем его с нашей новой функцией. Для этого находим в файле include/parser.php такие строчки:

Код:
$pattern[] = '#\[url\]([^\[]*?)\[/url\]#e';
    $pattern[] = '#\[url=([^\[]+?)\](.*?)\[/url\]#e';
Дублируем их и в продублированных строчках заменяем url на rurl
Далее находим строки:
Код:
$replace[] = 'handle_url_tag(\'$1\')';
    $replace[] = 'handle_url_tag(\'$1\', \'$2\')';
Дублируем их и также заменяем url на rurl

Примеры include/parser.php:
Для просмотра ссылки Войди или Зарегистрируйся
Для просмотра ссылки Войди или Зарегистрируйся

Сделал фрилансер Для просмотра ссылки Войди или Зарегистрируйся

Я потратился на этот код, в знак благодарности можете зарегистрироваться по моей партнёрской ссылке на linkum.ru

Для просмотра ссылки Войди или Зарегистрируйся
 
Развиваться не будет, поддержка в течении года (латание дыр), а дальше зависит от количества оставшихся ресурсов на движке. Разработчик участвует в проекте и, естественно, предлагает перейти на Flarum Для просмотра ссылки Войди или Зарегистрируйся .
 
Развиваться не будет
2008-2017, почти 10 лет уже. Врядли один из самых быстрых форумных движков вот так возмёт и погибнет. Надежда ещё варит вареники :)

[UPD]Но на дворе уже пхп7.2, MyBB, PunBB, FluxBB никак не хотят обновляться :(
Видимо, проэкты переходят с стадию спячки...
 
Последнее редактирование:
Назад
Сверху