Удаление папки /install/ - обязательно!

Файловый Архив

  • Неограниченное количество категорий и суб-категорий
  • Настройки прав доступа по группам
  • Настройки прав доступа по каждой категории
  • Предпросмотр медиа файлов: FLV, IFLV, F4A, F4V, MP4, MP3, MOV и других...
  • Мультизагрузка файлов - SWFUploader
  • Добавление файлов с сервера
Подробности и история обновлений продукта в этой теме
Loading

Go Back   форум vBSupport.org > > >
Register Изображения Меню vBsupport Files Manager Аллея Звёзд Реклама на форуме Search Today's Posts Mark Forums Read
  • Мемберка
  • Администраторам
  • Premoderation
  • For English speaking users
  • Изменения в правах
  • Каталог Фрилансеров
Пароли на скачивание файлов в Member Area меняются автоматически каждый день
Если вам нужно скачать какой то скрипт, за паролем ко мне в ЛС
привет какирам kerk
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота.
Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
На форуме введена премодерация ВСЕХ новых пользователей

Почта с временных сервисов, типа 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.
Не можете скачать вложение?
Изменения в правах групп пользователей
внимательно читаем эту и эту темы
Короткая версия - тут
Уважаемые пользователи!

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

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

 
 
Old  
Sellrion
В Черном-причерном списке
 
Sellrion's Avatar
Default Комментарий модератора/администратора 74

В общем я тут решил заняться этим вопросом. Ведь функция достаточно полезная, однако, почему-то, все попытки ее нормально реализовать были неудачными. Итак, для начала подумаем что же нам нужно от этой функции. А нужно всем ровно три вещи:

1. Невозможность редактирования комментов юзером.
2. Возможность вставки коммента в любое место сообщения.
3. Невозможность использования комментов юзером.

Так, по поряку:
Quote:
1. Невозможность редактирования комментов юзером.
У меня возникает вопрос ЗАЧЕМ??? Ради этой сомнительной возможности надо городить лишние таблицы в БД с хранением информации о правах редактирования, и писать соответсвующие скрипты. Хотя, если разобраться, то коммент предназначен для информации пользователю. Поэтому, чтобы пользователь с ним не сделал, он его прочтет, что и необходимо. Поэтому, пусть делает с комментом что хочет. Далее:
Quote:
2. Возможность вставки коммента в любое место сообщения.
Вот это требование наталкивает нас на единственно выгодное решение этой задачи - ВВ-коды. Но кроме того, что тут возникает сложность исполнения третьего требования, появляется еще одно:
Quote:
4. Отсутсвие этих ВВ-кодов в списке тегов форума
Решение:
Итак, для реализации требования №4 нам придется добавлять ВВ-код не через Админку, а встроить его непосредственно в парсер ВВ-кодов. Посему открываем файл class_bbcode.php и редактируем. Сначала вставим код парсера:
Найти:
PHP Code:
}
  
// standard URL hyperlink
  
return "<a href=\"$rightlink\" target=\"_blank\">$text</a>";
 } 
Ниже добавить:
PHP Code:
/**
 * Handles a [mod] tag.
 * @return string
 */
 
 
function handle_bbcode_mod ($comment$modnick)
 {
 return 
"<style type='text/css'>
<!--
.modcomment {
 font-family: Verdana, Arial, Helvetica, sans-serif;
 font-size: 12px;
 color: #FFFFFF;
}
-->
</style>
<table width='90%' border='0' cellpadding='0' cellspacing='0' align='center'>
  <tr>
    <td><table width='100%' border='0' cellspacing='0' cellpadding='0'>
      <tr>
        <td width='88' height='20'><img src='images/misc/modcomment_left.gif' width='88' height='20' /></td>
        <td height='20' background='images/misc/modcomment_texture.gif'>&nbsp;</td>
        <td width='200' height='20'><div align='center'><span class='modcomment'><strong>Комментарий модератора</strong></span></div></td>
        <td height='20' background='images/misc/modcomment_texture.gif'>&nbsp;</td>
        <td width='88' height='20'><img src='images/misc/modcomment_right.gif' width='88' height='20' /></td>
      </tr>
    </table>
      <table width='100%' border='0' cellpadding='0' cellspacing='3' bordercolor='#FFFFFF' bgcolor='#FFFFFF'>
        <tr>
          <td width='30' height='29' bgcolor='#FFFFFF' valign='top'><img src='images/misc/mod.jpg' width='30' height='29' /></td>
          <td bgcolor='#FFFFFF'><font color=green><b>
$modnick:</b></font><br /><font color=black>$comment</font>
          </td>
        </tr>
      </table>      
    </td>
  </tr>
</table>"
;
}
/**
 * Handles a [admin] tag.
 * @return string
 */
 
 
function handle_bbcode_admin ($comment$adminnick)
 {
 return 
"<style type='text/css'>
<!--
.admincomment {
 font-family: Verdana, Arial, Helvetica, sans-serif;
 font-size: 12px;
 color: red;
}
-->
</style>
<table width='90%' border='0' cellpadding='0' cellspacing='0' align='center'>
  <tr>
    <td><table width='100%' border='0' cellspacing='0' cellpadding='0'>
      <tr>
        <td width='88' height='20'><img src='images/misc/modcomment_left.gif' width='88' height='20' /></td>
        <td height='20' background='images/misc/modcomment_texture.gif'>&nbsp;</td>
        <td width='220' height='20'><div align='center'><span class='admincomment'><strong>Комментарий администратора</strong></span></div></td>
        <td height='20' background='images/misc/modcomment_texture.gif'>&nbsp;</td>
        <td width='88' height='20'><img src='images/misc/modcomment_right.gif' width='88' height='20' /></td>
      </tr>
    </table>
      <table width='100%' border='0' cellpadding='0' cellspacing='3' bordercolor='#FFFFFF' bgcolor='#FFFFFF'>
        <tr>
          <td width='30' height='29' bgcolor='#FFFFFF' valign='top'><img src='images/misc/admin.jpg' width='30' height='30' /></td>
          <td bgcolor='#FFFFFF'><font color=red><b>
$adminnick:</b></font><br /><font color=black>$comment</font>
          </td>
        </tr>
      </table>      
    </td>
  </tr>
</table>"
;

Замечание! Впринципе не важно куда этот код вставлять, но для того чтобы указать рамки "дозволенного" я выбрал для примера именно этот участок кода после парсера url адресов.
Замечание! Содержимое директивы return не для копипаста, а для примера. Тут вы можете написать все, что хотите видеть.
Далее необходимо подключить эти теги к парсингу. Посему в этом же файле ищем:
PHP Code:
// [POST=XXX]
   
$tag_list['option']['post'] = array(
    
'html' => '<a href="' $prepend_path 'showthread.php?' $vbulletin->session->vars['sessionurl'] . 'p=%2$s#post%2$s" title="' htmlspecialchars_uni($vbulletin->options['bbtitle']) . ' - ' $vbphrase['post'] . ' %2$s">%1$s</a>',
    
'option_regex' => '#^\d+$#',
    
'strip_empty' => true
   
);
  } 
Ниже добавить:
PHP Code:
// [MOD=XXX]
   
$tag_list['option']['mod'] = array(
    
'callback' => 'handle_bbcode_mod',
    
'strip_empty' => true
   
);
   
   
// [ADMIN=XXX]
   
$tag_list['option']['admin'] = array(
    
'callback' => 'handle_bbcode_admin',
    
'strip_empty' => true
   
); 
Итак, два из трех условий выполнены. Осталось ограничить использование этих кодов. Для этого воспользуемся механизмом проверки текста поста. Если юзер не является членом группы модов или админов, теги комментирования автоматически вырезаются из его сообщения. Открываем файл newreply.php, ищем код:
PHP Code:
if ($vbulletin->GPC['ajax'])
 {
  
// posting via ajax so we need to handle those  entries
  
$newpost['message'] = convert_urlencoded_unicode($newpost['message']);
 } 
Ниже добавляем:
PHP Code:
// ###################### Start comments filter #######################
 
if ($vbulletin->userinfo['usergroupid'] == OR $vbulletin->userinfo['usergroupid'] == 12 OR $vbulletin->userinfo['usergroupid'] == 10)
 {
 
//Allow comments if admin
 
$newpost['message'] = $newpost['message'];
 }
 else if (
$vbulletin->userinfo['usergroupid'] == 7)
 {
 
//Allow comments if mod
 
$fil = array("[/admin]""[admin]");
 
$newpost['message'] = preg_replace ($fil''$newpost['message']);
 }
 else
 {
 
//Cut comments if illegal
 
$fil = array("[/mod]""[/admin]""[mod]""[admin]");
 
$newpost['message'] = preg_replace ($fil''$newpost['message']);
 } 
Далее предусмотрим, чтобы пользователь не смог воспользоваться комментами через редактирование сообщения. Поэтому, редактируя файл editpost.php, найдем:
PHP Code:
}
    else
    {
        
$edit['message'] =& $vbulletin->GPC['message'];
    } 
Ниже добавим:
PHP Code:
// ###################### Start comments filter #######################
    
if ($vbulletin->userinfo['usergroupid'] == OR $vbulletin->userinfo['usergroupid'] == 12 OR $vbulletin->userinfo['usergroupid'] == 10)
    {
    
//Allow comments if admin
    
$edit['message'] = $edit['message'];
    }
    else if (
$vbulletin->userinfo['usergroupid'] == 7)
    {
    
//Allow comments if mod
    
$fil = array("[/admin]""[admin]");
    
$edit['message'] = preg_replace ($fil''$edit['message']);
    }
    else
    {
    
//Cut comments if illegal
    
$fil = array("[/mod]""[/admin]""[mod]""[admin]");
    
$edit['message'] = preg_replace ($fil''$edit['message']);
    } 
Добавление кнопки в текстовый редактор:
Итак, по причине востребованности этой функции, расскажу как это сделать. Тут не так все просто как кажется. Для начала правим клиент-скрипт vbulletin_textedit.js. Ищем:
PHP Code:
/** 
        * Insert Link 
        */ 
        
this.createlink = function(eurl
        { 
            return 
this.apply_format('createlink'is_ie, (typeof url == 'undefined' true url)); 
        }; 
Ниже вставляем:
PHP Code:
// Insert Mod & Admin Comments
        
this.mod = function(eselection)
        {
            var 
selection this.get_selection();
            return 
this.insert_text("[mod=" modname "]" selection "[/mod]\n"0);
        };

        
this.admin = function(eselection)
        {
            var 
selection this.get_selection();
            return 
this.insert_text("[admin=" modname "]" selection "[/admin]\n"0);
        };
// end Insert Mod & Admin Comments 
В этом же файле ищем:
PHP Code:
** 
        * 
Apply formatting 
        
*/ 
        
this.apply_format = function(cmddialogargument
        { 
            
// undo & redo array pops 

            
switch (cmd
            { 
                case 
'bold'
                case 
'italic'
                case 
'underline'
                { 
                    
this.wrap_tags(cmd.substr(01), false); 
                    return; 
                } 

                case 
'justifyleft'
                case 
'justifycenter'
                case 
'justifyright'
                { 
                    
this.wrap_tags(cmd.substr(7), false); 
                    return; 
                } 
Ниже добавим:
PHP Code:
        case 'mod'
                case 
'admin'
                { 
                    
this.wrap_tags(cmdmodname); 
                    return; 
                } 
Теперь правка шаблона editor_toolbar_on. В нужное вам место (в зависимости от желаемого рассположения кнопки) вставляем следующее:
1. Сепаратор (если нужен):
HTML Code:
<td><img src="$stylevar[imgdir_editor]/separator.gif" width="6" height="20" alt="" /></td>
2. Сама кнопка (модератор):
HTML Code:
<td><div class="imagebutton" id="{$editorid}_cmd_mod"><img src="$stylevar[imgdir_editor]/mod.gif" width="4" height="20" alt="Комментарий модератора" /></div></td>
3. Сама кнопка (админ):
HTML Code:
<td><div class="imagebutton" id="{$editorid}_cmd_admin"><img src="$stylevar[imgdir_editor]/mod.gif" width="4" height="20" alt="Комментарий администратора" /></div></td>
В этом же шаблоне можно прописать условия для того, чтобы эти кнопки не видели кто попало. Для вставки кнопок в текстовый редактор на форме быстрого ответа редактируйте вышеописанным способом шаблон showthread_quickreply. Для добавления кнопок в окно быстрого редактирования - шаблон postbit_quickedit.
И последнее. Открываем шаблон editor_clientscript.
Найти:
HTML Code:
var smiliewindow_x = 240;
var smiliewindow_y = 280;
Ниже добавить:
HTML Code:
var modname = '$bbuserinfo[username]';
Функция блокировки поста после комментария:
Для того, чтобы пользователь не смог отредактировать пост после внесения комментария откройте файл class_postbit.php. В нем надо найти:
PHP Code:
// can edit or delete this post, so show the link
            
$this->post['editlink'] = 'editpost.php?' $this->registry->session->vars['sessionurl'] . 'do=editpost&amp;p=' $this->post['postid'];
            if (
$this->registry->options['quickedit'])
            {
                
$show['ajax_js'] = true;
            }
        } 
Аккуратно заменить на:
PHP Code:
//################## Start parse comments ###################
$fil = array("[/mod]""[/admin]""[mod]""[admin]");
$messagebit preg_replace($fil''$this->post['message']);

//Check if message contains any commenting
if ($messagebit != $this->post['message'])
{
//If admin or mod, show edit button
   
if (can_moderate($this->thread['forumid'], 'caneditposts'))
   {
$this->post['editlink'] = 'editpost.php?' $this->registry->session->vars['sessionurl'] . 'do=editpost&amp;p=' $this->post['postid'];
            if (
$this->registry->options['quickedit'])
            {
                
$show['ajax_js'] = true;
            }
        }
        else
        {
            
$this->post['editlink'] = '';
        }
}
else
{
$this->post['editlink'] = 'editpost.php?' $this->registry->session->vars['sessionurl'] . 'do=editpost&amp;p=' $this->post['postid'];
            if (
$this->registry->options['quickedit'])
            {
                
$show['ajax_js'] = true;
            }
        else
        {
            
$this->post['editlink'] = '';
        }
}

Внимание! Данный BB-код не работает с редакторами WYSIWYG. Вам необходимо отключить использование визуального редактора в Правке сообщений, и в "полном" редакторе. В редакторе быстрого ответа этот режим можно не отключать.
Внимание! Ввиду того, что ситуация с группами на форумах разная, могут возникнуть проблеммы с установкой. Если что - пишите в этой теме, буду помогать всем.

Вот и все! Не забываем жать Спасибу...
Attached Thumbnails
adm_com.jpg  

Last edited by Sellrion : 11-10-2007 at 11:32 PM.
 
Old  
OlgaB
Мастер
 
OlgaB's Avatar
Default 0

legal, Оффтоп
 
Bot
Yandex Bot Yandex Bot is online now
 
Join Date: 05.05.2005
Реклама на форуме А что у нас тут интересного? =)
Old  
xorex
Эксперт
vBSponsor
 
xorex's Avatar
Exclamation Oops 1

OlgaB, Там инфа видимо к старой версии хака
во первых в новой версии нету файла includes/xml/hooks_commtag.xml

подстановка ссылки для редактирования editpost.php?do=editpost&p= не работает в новой версии (выдаст сообщении о невозможности редактирования поста)
для подписей, Лс и прочих не подключается CSS поэтому смысла использовать там этот тег нету

функция для проверки тега уже есть в файле functions_comments_filter.php и без редактирования тучи файлов

Его только нужно подключить для создания новой темы, это единственное место где действительно он срабатывает (у меня по крайней мере)

Как вариант cоздаем модуль

Продукт: Comments Tags
Местоположение модуля: newthread_post_start
Заголовок: Comments Tags: defence newthread
Порядок выполнения: 5
Код PHP модуля:

Code:
if ($vbulletin->options['commtag_onoff'])
{
	require_once(DIR . '/includes/functions_comments_filter.php');
	$vbulletin->GPC['message'] = comments_filter($vbulletin->GPC['message'], true);
}
Модуль включен: Да

И конечно же имеет смысл кнопку вставить вручную, для этого в модуле

Comments Tags: button

удаляем кусок кода (в двух местах)

Code:
$vBeditTemplate['extrabuttons'] .= $commbtn;
в шаблонах showthread_quickreply, editor_toolbar_on и postbit_quickedit вручную навтыкать кнопку

например

после

Code:
<if condition="$show['editor_toolbar']">
<div id="{$editorid}_controls" class="controlbar">
	<table cellpadding="0" cellspacing="0" border="0" width="100%">
	<tr>

Вставляем

Code:
$commbtn
 
Old  
OlgaB
Мастер
 
OlgaB's Avatar
Default 0

xorex, legal отписал что пользуется версией Comments Tag v1.3.4.
Я тоже ей пользуюсь. Та инструкция мне подошла целиком и полностью
 
Old  
xorex
Эксперт
vBSponsor
 
xorex's Avatar
Default 0

OlgaB, видимо у нас разные версии 1.3.4 ;/ ну нет там hooks_commtag.xml и подстановка ссылки на редактирование поста не срабатывает, как и нормальное отображение тега в других местах ЛС пуб.сообщения и.т.п Так какая у вас все таки версия ?
 
Old  
OlgaB
Мастер
 
OlgaB's Avatar
Default 0

xorex, вот веришь нет, но - http://savepic.net/2595578.png
 
Old  
TAIFUN
Человек
vBSSecurity
 
TAIFUN's Avatar
Default 0

OlgaB, в версии 1.3.4 действительно нет такого файла. Можете качнуть из поста выше и проверить. Скорей всего он тянется у вас с ранних версий, потому что в них этот файл был.
 
Old  
OlgaB
Мастер
 
OlgaB's Avatar
Default 0

TAIFUN, я видела.
Файл hooks_commtag.xml скорее всего у меня остался от старой версии (1.3.2)
Но у меня действительно сейчас версия 1.3.4
И, отредактировав именно по той инструкции, у меня не возникает проблемы, которую описывает legal.
 
Old  
xorex
Эксперт
vBSponsor
 
xorex's Avatar
Default 2

OlgaB, Автор темы упомянул что у него установлена версия Comments Tags 1.3.2 именно для нее и писалась инструкция (видимо тогда еще не было файла functions_comments_filter.php). Я проверил где срабатывает этот тег, только при создании новой темы и в публичных сообщениях, в остальных же случаях CSS не подключается, соответственно тег выглядит как обычный текст и смыла его юзать нету. Поэтому достаточно добавить только 2 модуля

Модуль для публичных сообщений

Продукт: Comments Tags
Местоположение модуля: visitor_message_post_start
Заголовок: Comments Tags: defence visitors messages
Порядок выполнения: 5
Код PHP модуля:

PHP Code:
if ($vbulletin->options['commtag_onoff'])
{
    require_once(
DIR '/includes/functions_comments_filter.php');
    
$vbulletin->GPC['message'] = comments_filter($vbulletin->GPC['message'], true);

Модуль включен: Да

ок, добавлю и для новых тем здесь чтобы были в одном посте

Продукт: Comments Tags
Местоположение модуля: newthread_post_start
Заголовок: Comments Tags: defence newthread
Порядок выполнения: 5
Код PHP модуля:

PHP Code:
if ($vbulletin->options['commtag_onoff'])
{
    require_once(
DIR '/includes/functions_comments_filter.php');
    
$vbulletin->GPC['message'] = comments_filter($vbulletin->GPC['message'], true);

Модуль включен: Да

Вы кончено можете воспользоваться и старым вариантом если вас устраивает ненужная правка файлов и туча лишних модулей с функцией которая и так есть в файле functions_comments_filter.php который нужно только подключить.
 
Old  
siriusmelaf
Знаток
 
siriusmelaf's Avatar
Default 0

использую Comments Tags v1.3.6
и нашел небольшой баг, помогите исправить.
В общем к примеру я являсь админом использую теги [admin]
но стоит мне подключить дополнительную группу себе модерскую группу, то при нажатии на BB-код вставляется уже не [admin] а тег [mod] и в итоге не работает.
как сделать чтобы к примеру если ты являешься в группе админов и дополнительно в группе модера то вставлялся тег админский

siriusmelaf добавил 11.02.2014 в 19:35
тоесть вот выделенная настройка пользовалась преимуществом



перед модерской

Last edited by siriusmelaf : 02-11-2014 at 09:35 PM. Reason: Добавлено сообщение
 
Old  
Sellrion
В Черном-причерном списке
 
Sellrion's Avatar
Default 0

Quote:
Originally Posted by siriusmelaf View Post
если ты являешься в группе админов и дополнительно в группе модера
Зачем?
 
 

Tags
comments tags, коментарии

Thread Tools

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 03:59 PM.


Powered by vBulletin® Version ?.?.?
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd.