форум vBSupport.ru > vBulletin > vBulletin 3.8.x > Вопросы по vBulletin 3.8
  • »
VBsupport перешел с домена .ORG на родной .RU Ура! Пожалуйста, обновите свои закладки - VBsupport.ru
 
 
 
 
Videomaster
Продвинутый
Default Как перенаправить пользователя после нажатия кнопки "Новая тема"?
0

Есть форум на vBulletin и сайт на DLE. На сайте в новостях есть ссылка "Обсудить на форуме". По нажатию на нее, если он первый, посетитель попадает в форму создания новой темы с введенным названием новости и постит там свой отзыв или мнение. А если кто-то уже завел эту тему для обсуждения, то попадает в тему. Все работает отлично, но! Если в vBulletin зайти в этот раздел, с обсуждениями, то по нажатию кнопки "Новая тема" можно запостить любую свою тему.

Вопрос: как сделать, чтобы после нажатия на кнопку "Новая тема" в определенном разделе пользователю показывалось сообщение такого плана: "В этом разделе можно только обсуждать новости размещенные там-то." И новая тема не создавалась бы и в то же время работала бы ссылка по созданию с сайта.

Я так понимаю, нужно использовать if? Типа "Если раздел такой-то, то не показывать кнопку или менять ссылку, а если все остальные,то все как обычно". Но тогда наверное и по ссылке тема создаваться не будет?

Ссылка на сайте для обсуждения такого вида:

PHP Code:
"<a href=\"" $config['http_home_url'] ."forum/newthread.php?do=newthread&f=218&news_id={$row['id']}&news_title=" urlencode(stripslashes($row['title'])) . "\"  >Начать обсуждение на форуме</a>" 
Спасибо.
Bot
Yandex Bot Yandex Bot is online now
 
Join Date: 05.05.2005
Реклама на форуме А что у нас тут интересного? =)
 
 
Ghost
Гуру
 
Ghost's Avatar
Default
1

Videomaster, на хук "newthread_start" вешай модуль, который будет проверять наличие переданного news_id (как минимум). что-то типа такого:
PHP Code:
if (!isset ($_GET['news_id']) OR !intval ($_GET['news_id']))
{
    eval(
standard_error(fetch_error('имя_фразы_ошибки')));

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

Ghost добавил 27.05.2009 в 16:51
по хорошему-же, нужно еще проверить не только наличие news_id, но и существование соответствующей новости сразу после "eval(...);"

Last edited by Ghost : 05-27-2009 at 04:51 PM. Reason: Добавлено сообщение
 
 
Videomaster
Продвинутый
Default
1

Сделал проще, скрыл через if по id раздела кнопку "Новая тема". Теперь создать тему из самого форума нельзя, только через сайт, по ссылке "Обсудить на форуме".
В шаблоне forumdisplay ищем:

PHP Code:
<if condition="$show['newthreadlink']"
перед этой конструкцией вставляем:

PHP Code:
<if condition="$foruminfo['forumid'] == номер id вашего раздела">
&
nbsp;
<else /> 
потом ищем закрывающий тэг
PHP Code:
</if> 
для
PHP Code:
<if condition="$show['newthreadlink']"
и после него добавляем
PHP Code:
</if> 
После этих манипуляций в выбранном разделе кнопка "Новая тема" не показывается.

Вместо пустого символа можно вставить ссылку с переходом на другую страницу, текстовое сообщение и т.п.

Last edited by Videomaster : 05-27-2009 at 10:12 PM.
 
 
kerk
k0t
 
kerk's Avatar
Default
0

Quote:
Originally Posted by Videomaster View Post
Теперь создать тему из самого форума нельзя
но продвинутые пользователи могут руками вставить ссылку на создание новой темы, "подсмотрев" ссылку в разделе, где темы можно создавать и немного подумав головой =)
типа того:
_http://domain.tld/forum/newthread.php?do=newthread&f=xx
где хх = ID раздела, где кнопка создания новой темы скрыта =)
так что правильней все таки проверять news_id при переходе к созданию темы
 
 
Videomaster
Продвинутый
Default
0

kerk, продвинутых у меня на форуме нет. У меня одни блондинки ))
Хотя, наверное, правильно. Лучше сделать проверку, мало ли.
 
 
kerk
k0t
 
kerk's Avatar
Default
0

Quote:
Originally Posted by Videomaster View Post
У меня одни блондинки
блондинки иногда тоже думают головой?
 


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 08:24 AM.


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