форум vBSupport.ru > vBulletin > Вопрос — Ответ
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'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота.
Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
 
 
 
 
Ramzes
Знаток
Question Просмотр непроверенной темы автором.
0

Привет.
Как известно, в булке, если в опциях раздела включить премодерацию новых тем модераторами, то авторы (да и вообще все юзеры) не видят свои детища пока модератор не даст добро.

Теперь вопрос: можно сделать так, чтобы авторы могли видеть созданные темы, но еще непроверенные модератором?

Суть в чем?! Просто надо чтобы автор учитывал замечания модератора и вносил коррективы в тему. Уж потом модератор даст добро, и тему на паблик можно.
А он (автор) не может этого сделать, потому что нет прав.

Все настройки перековырял, но смог найти пункт чтобы настроить такие права.
Подскажите советом. Может хак какой-то есть?
Bot
Yandex Bot Yandex Bot is online now
 
Join Date: 05.05.2005
Реклама на форуме А что у нас тут интересного? =)
 
 
Ramzes
Знаток
Default
0

Up!
Все еще актуально!
 
 
Ramzes
Знаток
Default
0

Ребята, ну помогите, пожалуйста. Очень нужно сделать такую настройку.
Или это так нереально? (((
 
 
Ghost
Гуру
 
Ghost's Avatar
Default
2

Хоть и не пользуюсь такой фичей, но ща попробуем посмотреть, что там и как, но думаю нужно будет править скрипты editpost.php (для редактирования сообщения темы), showthread.php (чтобы видели содержимое темы) и forumdisplay.php (чтобы видели ее в списке тем раздела).

Начнем с "forumdisplay.php". Там есть такие строки (коментарии -- мои):
PHP Code:
    // если пользователь -- не модератор
    
if (!can_moderate($forumid'canmoderateposts'))
    {
        
// если не может видеть удаленные темы
        
if (!($forumperms $vbulletin->bf_ugp_forumpermissions['canseedelnotice']))
        {
            
// показывать только обычные
            
$visiblethreads " AND visible = 1 ";
        }
        
// иначе
        
else
        {
            
// показывать обычные и удаленные
            
$visiblethreads " AND visible IN (1,2)";
        }
        
// вот сюда нужно вставить код для разрешения просмотра авторам своих непроверенных тем
    
}
    
// иначе
    
else
    {
        
// показывать все
        
$visiblethreads " AND visible IN (0,1,2)";
    } 
Собсна сам код (см. коментарии в коде выше) должен выглядеть как-то так:
PHP Code:
        // если пользователь, а не гость
        
if ($vbulletin->userinfo['userid'])
        {
            
// разрешить видеть темы, для которых является автором
            
$visiblethreads " ($visiblethreads OR thread.postuserid = {$vbulletin->userinfo['userid']})";
        } 
Можешь проверить пока этот код, а я пока буду ковырять два других скрипта.

Ghost добавил 14.05.2009 в 12:17
Эм... Посмотрел скрипт showthread.php -- проверка осуществляется кодом (коментарии на русском -- мои)
PHP Code:
// check for visible / deleted thread
// если тема не проверена и пользователь не может проверять сообщения
// или тема удалена и пользователь не может модерировать раздел
if (((!$thread['visible'] AND !can_moderate($thread['forumid'], 'canmoderateposts'))) OR ($thread['isdeleted'] AND !can_moderate($thread['forumid'])))
{
    
// показываем сообщение об ошибке
    
eval(standard_error(fetch_error('invalidid'$vbphrase['thread'], $vbulletin->options['contactuslink'])));

Вот этот весь код можно заключить в условие "если тема не проверена и не вы ее автор", т.е.
PHP Code:
// если тема не проверена и не вы ее автор
if (!$thread['visible'] AND $thread['postuserid'] != $vbulletin->userinfo['userid'])
{
    
// здесь весь остальной код проверок (см. выше)

Пойду смотреть editpost.php

Ghost добавил 14.05.2009 в 12:30
В файле editpost.php есть такие условия (коментарии снова мои):
PHP Code:
// если не указан пост или он удален или не проверен и вы не можете проверять сообщения в этом разделе
if (!$postinfo['postid'] OR $postinfo['isdeleted'] OR (!$postinfo['visible'] AND !can_moderate($threadinfo['forumid'], 'canmoderateposts')))
{
    
// выдать сообщение об ошибке
    
eval(standard_error(fetch_error('invalidid'$vbphrase['post'], $vbulletin->options['contactuslink'])));
}
// если тема не указана или удалена или непроверена и вы не можете проверять сообщения в этом разделе
if (!$threadinfo['threadid'] OR $threadinfo['isdeleted'] OR (!$threadinfo['visible'] AND !can_moderate($threadinfo['forumid'], 'canmoderateposts')))
{
    
// выдать сообщение об ошибке
    
eval(standard_error(fetch_error('invalidid'$vbphrase['thread'], $vbulletin->options['contactuslink'])));

Здесь, думаю, достаточно будет после "!can_moderate(...)" дописать условие " и вы не автор" как-то так (для первого и второго if'ов)
PHP Code:
 AND $postinfo['userid'] != $vbulletin->userinfo['userid'
PHP Code:
 AND $threadinfo['postuserid'] != $vbulletin->userinfo['userid'
Ghost добавил 14.05.2009 в 12:30
Это все только на первый взгляд. Возможно потребуется где-то что-то еще править.

Last edited by Ghost : 05-14-2009 at 01:30 PM. Reason: Добавлено сообщение
 
 
Ramzes
Знаток
Default
0

Спасибо, гуру. Сегодня попробую и отпишусь о результатах.
 
 
Ramzes
Знаток
Default
0

Ghost,
На стадии правки файла "forumdisplay.php" форум лег и терь отказывается открывать разделы "forumdisplay"

На почту мне приходят такие ошибки:
HTML Code:
Invalid SQL:

               SELECT COUNT(*) AS threads, SUM(IF(thread.lastpost > 1242392581 AND open <> 10, 1, 0)) AS newthread

               FROM thread AS thread


               WHERE forumid = 6
                       AND sticky = 0

                        ( AND visible = 1  OR thread.postuserid = 377);

MySQL Error   : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '( AND visible = 1  OR thread.postuserid = 377)' at line 9
Error Number  : 1064
Как быть?
 
 
Ghost
Гуру
 
Ghost's Avatar
Default
1

Уп-пс. Ошибочка. Поправь
PHP Code:
$visiblethreads " ($visiblethreads OR thread.postuserid = {$vbulletin->userinfo['userid']})"
на
PHP Code:
$visiblethreads str_replace ('AND ''AND ('"$visiblethreads OR thread.postuserid = {$vbulletin->userinfo['userid']})"); 
 
 
Ramzes
Знаток
Default
0

Ghost,
Пасибо. Заработало..
Терь значит так... Стадии "forumdisplay.php" и "showthread.php" прошел успешно.
То есть автор тему увидел и далее открыл тему.

Не получается с "editpost.php"
При первом нажатии на "изменить" получаю просто игнор, при повторном нажатии получаю это:
PHP Code:
Тема не существует или не указан идентификатор (номер). Если вы уверенычто использовали правильную ссылкусвяжитесь с администрацией 
Возможно, я сделал что-то не так.
Вот кусок кода, который я изменил:
PHP Code:
if (!$postinfo['postid'] OR $postinfo['isdeleted'] OR (!$postinfo['visible'] AND !can_moderate($threadinfo['forumid'] AND $postinfo['userid'] != $vbulletin->userinfo['userid'] , 'canmoderateposts')))  
{
    eval(
standard_error(fetch_error('invalidid'$vbphrase['post'], $vbulletin->options['contactuslink'])));
}

if (!
$threadinfo['threadid'] OR $threadinfo['isdeleted'] OR (!$threadinfo['visible'] AND !can_moderate($threadinfo['forumid'] AND $threadinfo['postuserid'] != $vbulletin->userinfo['userid'] , 'canmoderateposts'))) 
{
    eval(
standard_error(fetch_error('invalidid'$vbphrase['thread'], $vbulletin->options['contactuslink'])));


Что не так я сделал?

Ramzes добавил 15.05.2009 в 17:43
Я понял ошибку. Надо было вот так сделать:

PHP Code:
if (!$postinfo['postid'] OR $postinfo['isdeleted'] OR (!$postinfo['visible'] AND !can_moderate($threadinfo['forumid'], 'canmoderateposts') AND $postinfo['userid'] != $vbulletin->userinfo['userid']))  
{
    eval(
standard_error(fetch_error('invalidid'$vbphrase['post'], $vbulletin->options['contactuslink'])));
}

if (!
$threadinfo['threadid'] OR $threadinfo['isdeleted'] OR (!$threadinfo['visible'] AND !can_moderate($threadinfo['forumid'], 'canmoderateposts')AND $threadinfo['postuserid'] != $vbulletin->userinfo['userid'])) 
{
    eval(
standard_error(fetch_error('invalidid'$vbphrase['thread'], $vbulletin->options['contactuslink'])));

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

Как исправить?

Last edited by Ramzes : 05-15-2009 at 06:43 PM. Reason: Добавлено сообщение
 
 
Ghost
Гуру
 
Ghost's Avatar
Default
2

Quote:
Originally Posted by Ramzes View Post
Что не так я сделал?
ты дополнительное условие вставил внутрь функции "can_moderate", а нужно было после нее. т.е. не "can_moderate(... дополнительное условие, ...)", а "can_moderate(... , ...) дополнительное условие".

Ghost добавил 15.05.2009 в 17:47
Quote:
Originally Posted by Ramzes View Post
Как исправить?
Ща посмотрим...

Ghost добавил 15.05.2009 в 17:51
В скрипте "ajax.php" есть такие строки:
PHP Code:
        if ((!$postinfo['visible'] OR $postinfo ['isdeleted']) AND !can_moderate($threadinfo['forumid']))
        {
            
$xml->add_tag('error''nopermission');
            
$xml->print_xml();
        }

        if ((!
$threadinfo['visible'] OR $threadinfo['isdeleted']) AND !can_moderate($threadinfo['forumid']))
        {
            
$xml->add_tag('error''nopermission');
            
$xml->print_xml();
        } 
т.е. те же условия, что и в "editpost.php", только выводят иной результат для ajax'а. дополнительные условия туда нужно впихнуть туже, что и в "editpost.php".

Last edited by Ghost : 05-15-2009 at 06:51 PM. Reason: Добавлено сообщение
 
 
Ramzes
Знаток
Default
0

Ghost,
Спасибо! Супер! Все пучком, за одним но:
На главной странице форума в графе "Последнее сообщение" написано "никогда".
Ну это если раздел пустой и там создана тема и она еще не проверена.
Мелочь, конечно, но можно это тоже исправить? Чтобы автор темы видел свою тему с главной?!

Ramzes добавил 15.05.2009 в 18:07
Кстати, надо будет еще файл "search.php" править. Потому как поиск не показывает темы автора, которые еще не проверены (((
Какое место нужно в поиске править?

Last edited by Ramzes : 05-15-2009 at 07:07 PM. 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 09:45 PM.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.