форум vBSupport.ru > vBulletin > vBulletin 4.2.x > Вопросы по vBulletin 4.2.x
Register Меню vBsupport Изображения Files Manager О рекламе Today's Posts Search
  • Родная гавань
  • Блок РКН снят
  • Premoderation
  • For English speaking users
  • Каталог Фрилансеров
  • If you want to buy some product or script
  • Администраторам
VBsupport перешел с домена .ORG на родной .RU Ура! Пожалуйста, обновите свои закладки - VBsupport.ru
Блок РКН снят, форум доступен на всей территории России, включая новые терртории, без VPN
На форуме введена премодерация ВСЕХ новых пользователей

Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
for English speaking users:
You may be surprised with restriction of access to the attachments of the forum. The reason is the recent change in vbsupport.org strategy:

- users with reputation < 10 belong to "simple_users" users' group
- if your reputation > 10 then administrator (kerk, Luvilla) can decide to move you into an "improved" group, but only manually

Main idea is to increase motivation of community members to share their ideas and willingness to support to each other. You may write an article for the subject where you are good enough, you may answer questions, you may share vbulletin.com/org content with vbsupport.org users, receiving "thanks" equal your reputation points. We should not only consume, we should produce something.

- you may:
* increase your reputation (doing something useful for another members of community) and being improved
* purchase temporary access to the improved category:
10 $ for 3 months. - this group can download attachments, reputation/posts do not matter.
20 $ for 3 months. - this group can download attachments, reputation/posts do not matter + adds eliminated + Inbox capacity increased + files manager increased permissions.

Please contact kerk or Luvilla regarding payments.

Important!:
- if your reputation will become less then 0, you will be moved into "simple_users" users' group automatically.*
*for temporary groups (pre-paid for 3 months) reputation/posts do not matter.
Уважаемые пользователи!

На форуме открыт новый раздел "Каталог фрилансеров"

и отдельный раздел для платных заказов "Куплю/Закажу"

Если вы хотите приобрести какой то скрипт/продукт/хак из каталогов перечисленных ниже:
Каталог модулей/хаков
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота.
Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
 
 
 
 
Svetlana
Эксперт
 
Svetlana's Avatar
Default Возможно ли убрать rel="nofollow" в отдельном разделе?
0

Повадились к нам на форум коллеги-продвигатели, которые с энтузиазмом сыпят ссылками, по пятнадцать штук на тему. Найдут название, соответствующее интересующему их поисковому запросу - и начинают участвовать в ней до умопомрачения.
Тем не менее, мне не хотелось бы добавлять rel="nofollow" через настройки бб кодов глобально, потому что для многих нормальных коллег это является мотивом для присутствия. Хотелось бы мягонько направить активных товарищей в отдельный раздел, не доводя остальных пользователей до белого каления.
В моём представлении решением проблемы был бы атрибут "nofollow" везде, кроме нужного раздела, плюс использование исключений ("белого" списка, для которого запрет бы не действовал нигде). Можно ли так?
Спасибо.

Last edited by Svetlana : 01-12-2016 at 06:39 PM.
Bot
Yandex Bot Yandex Bot is online now
 
Join Date: 05.05.2005
Реклама на форуме А что у нас тут интересного? =)
 
 
Svetlana
Эксперт
 
Svetlana's Avatar
Default
4

1. Включила в настройках Опции—>BB коды "Добавлять атрибут nofollow к внешним ссылкам в BB кодах URL" - "ДА".
2. Добавила в белый список домены-исключения, они будут работать во всех разделах.
3. В файле /includes/class_bbcode.php нашла кусок со сценарием работы этой настройки:
PHP Code:
if (!isset($current_url))
            {
                
$current_url $this->registry->input->parse_url($this->registry->options['bburl']);
            }
            
$is_external $this->registry->options['url_nofollow'];

            if (
$this->registry->options['url_nofollow'])
            {
                if (!isset(
$current_host))
                {
                    
$current_host preg_replace('#:(\d)+$#'''VB_HTTP_HOST);

                    
$allowed preg_split('#\s+#'$this->registry->options['url_nofollow_whitelist'], -1PREG_SPLIT_NO_EMPTY);
                    
$allowed[] = preg_replace('#^www\.#i'''$current_host);
                    
$allowed[] = preg_replace('#^www\.#i'''$current_url['host']);
                }

                
$target_url preg_replace('#^([a-z0-9]+:(//)?)#'''$rightlink);

                foreach (
$allowed AS $host)
                {
                    if (
stripos($target_url$host) !== false)
                    {
                        
$is_external false;
                    }
                }
            } 
и заменила его на такой же кусок, обёрнутый в дополнительное условие (чтобы всё это работало при условии, что ID раздела был не равен моему разделу-исключению):
PHP Code:
        if ($this->forumid != '2')
        {
            if (!isset(
$current_url))
            {
                
$current_url $this->registry->input->parse_url($this->registry->options['bburl']);
            }
            
$is_external $this->registry->options['url_nofollow'];

            if (
$this->registry->options['url_nofollow'])
            {
                if (!isset(
$current_host))
                {
                    
$current_host preg_replace('#:(\d)+$#'''VB_HTTP_HOST);

                    
$allowed preg_split('#\s+#'$this->registry->options['url_nofollow_whitelist'], -1PREG_SPLIT_NO_EMPTY);
                    
$allowed[] = preg_replace('#^www\.#i'''$current_host);
                    
$allowed[] = preg_replace('#^www\.#i'''$current_url['host']);
                }

                
$target_url preg_replace('#^([a-z0-9]+:(//)?)#'''$rightlink);

                foreach (
$allowed AS $host)
                {
                    if (
stripos($target_url$host) !== false)
                    {
                        
$is_external false;
                    }
                }
            }
        } 
Всё это придётся заново поправлять при обновлении. Вроде, работает.

Last edited by Svetlana : 01-25-2016 at 01:11 PM.
 
 
Hobot
Эксперт
 
Hobot's Avatar
Default
1

я бы сделал так же.
 
 
Svetlana
Эксперт
 
Svetlana's Avatar
Default
0

Quote:
Originally Posted by Hobot View Post
я бы сделал так же.
Спасибо. Я голову ломаю над подписями. ББ код [URL] в них обрабатывается по тем же правилам, что и в сообщении, но привязка к разделу не работает. То есть, 'nofollow', установленное глобально, работает в подписях по всему форуму, как ни придумывай условия. Изначально хотелось, чтобы подписи были открыты везде.
Сразу этого не увидела, нужно было почистить кэш подписей.
Я так хотела открыть новый раздел, объявить об особенностях ссылок в остальных, и развести тем самым продавцов и мастеров по разным углам. А теперь боюсь распугать всех такими заявлениями.
Если получится что-то, поделюсь.
 
 
OldEr
Специалист
Master
 
OldEr's Avatar
Default
0

@Svetlana, $GLOBALS['forumid'] в условии пробовала использовать?
 
 
Svetlana
Эксперт
 
Svetlana's Avatar
Default
1

OldEr, нет, не пробовала.
Это в этом же фрагменте нужно сделать?

Svetlana добавил 28.01.2016 в 03:36
Quote:
Originally Posted by Svetlana View Post
Спасибо. Я голову ломаю над подписями. ББ код [URL] в них обрабатывается по тем же правилам, что и в сообщении, но привязка к разделу не работает. То есть, 'nofollow', установленное глобально, работает в подписях по всему форуму, как ни придумывай условия. Изначально хотелось, чтобы подписи были открыты везде.
Попыталась использовать отсутствие привязки к подписям при добавлении условия if ($this->forumid != '2'). Если так, значит, я могу обернуть в это условие вывод ссылки с атрибутом nofollow, и это будет работать только относительно ссылок в тексте.
Отключила nofollow в настройках бб кодов.
В class_bbcode.php есть фрагмент, отвечающий за вывод ссылок:
PHP Code:
                if ($image)
        {
            return array(
'link' => $rightlink'nofollow' => $is_external);
        }
        else
        {
            
// standard URL hyperlink
            
return "<a href=\"$rightlink\" target=\"_blank\"" . ($is_external ' rel="nofollow"' '') . ">$text</a>";
        } 
Добавила в else условие, исключающее нужный мне раздел (помня, что на подписи это не повлияет):
PHP Code:
        if ($image)
        {
            return array(
'link' => $rightlink'nofollow' => $is_external);
        }
        else
        {
            if (
$this->forumid != '2')
            {
                
// стандартная ссылка
                
return "<a href=\"$rightlink\" target=\"_blank\" rel=\"nofollow\">$text</a>"
            }
            else
            {
                
// ссылка, работающая в нужном нам разделе (forumid=2)
                
return "<a href=\"$rightlink\" target=\"_blank\"" . ($is_external ' rel="nofollow"' '') . ">$text</a>";
            }
        } 
В результате у меня работающие во всём форуме подписи и закрытые ссылки в тексте сообщения, кроме нужного раздела . Почти как хотелось. "Почти" - потому что совсем хорошо было бы использовать с этим всем белый список.

Last edited by Svetlana : 01-28-2016 at 04:36 AM. Reason: Добавлено сообщение
 
 
OldEr
Специалист
Master
 
OldEr's Avatar
Default
1

Quote:
Originally Posted by Svetlana View Post
OldEr, нет, не пробовала.
Это в этом же фрагменте нужно сделать?
Вместо $this->forumid.
 
 
Svetlana
Эксперт
 
Svetlana's Avatar
Default
0

Quote:
Originally Posted by OldEr View Post
Вместо $this->forumid.
Вот так работает.
PHP Code:
if (!in_array($GLOBALS['forumid'], array(1234)))
            {
                
// стандартная ссылка
                
return "<a href=\"$rightlink\" target=\"_blank\" rel=\"nofollow\">$text</a>"
            }
            else
            {
                
// ссылка, работающая в нужном нам разделе (forumid=2)
                
return "<a href=\"$rightlink\" target=\"_blank\"" . ($is_external ' rel="nofollow"' '') . ">$text</a>";
            } 
Только я рано воодушевилась относительно того, что условия не будут касаться подписей. Видимо, где-то не дочистила кэш, вот оно и не отразилось сразу.
Я переискала что можно, но не могу найти, какую переменную нужно указать в условии, чтобы вывод nofollow в ссылке работало в подписи.
Обсуждение подобной задачи видела на форуме xenforo https://xenforo.com/community/thread...g-links.24796/
 
 
OldEr
Специалист
Master
 
OldEr's Avatar
Default
1

Quote:
Originally Posted by Svetlana View Post
Только я рано воодушевилась относительно того, что условия не будут касаться подписей. Видимо, где-то не дочистила кэш, вот оно и не отразилось сразу.
Я переискала что можно, но не могу найти, какую переменную нужно указать в условии, чтобы вывод nofollow в ссылке работало в подписи.
Обсуждение подобной задачи видела на форуме xenforo https://xenforo.com/community/thread...g-links.24796/
Вероятнее всего, что такой переменной просто нет. Так как используется один и тот же парсер бб-кодов для сообщений и подписей. Но, можно добавить свой параметр при вызове парсера и проверять значение этого параметра в функции обработки бб-кода URL. Либо же вообще сделать отдельный бб-код ссылок для подписей, а стандартный бб-код URL в подписях запретить.
 
 
Svetlana
Эксперт
 
Svetlana's Avatar
Default
0

Quote:
Originally Posted by OldEr View Post
Вероятнее всего, что такой переменной просто нет. Так как используется один и тот же парсер бб-кодов для сообщений и подписей. Но, можно добавить свой параметр при вызове парсера и проверять значение этого параметра в функции обработки бб-кода URL. Либо же вообще сделать отдельный бб-код ссылок для подписей, а стандартный бб-код URL в подписях запретить.
Спасибо, буду пытаться. В post.php упоминается $post['signature'], но какие-либо телодвижения с ней результата не дали.

Svetlana добавил 03.02.2016 в 01:02
Quote:
Originally Posted by OldEr View Post
Либо же вообще сделать отдельный бб-код ссылок для подписей, а стандартный бб-код URL в подписях запретить
Он ведь не выключится в постах...

Last edited by Svetlana : 02-03-2016 at 02:02 AM. Reason: Добавлено сообщение
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off




All times are GMT +4. The time now is 12:52 PM.


Powered by vBulletin® Version 3.5.9
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.