Перейти к контенту

Еще одни модерские тэги


Garret

Рекомендуемые сообщения

Мод: Еще одни модерские тэги

Категория: Модификации

Совместимость: 2.0.x

Описание:

Проект закрыт

 

Подробнее...

Скачать

Ссылка на комментарий
Поделиться на других сайтах

Fatal error: Call to undefined function: regex_build_warn() in /home/neombiru/www/forum/sources/lib/post_parser.php on line 318

 

 	 $txt = preg_replace( "#\(c\)#i"     , "©" , $txt );
	 $txt = preg_replace( "#\(tm\)#i"    , "(tm)" , $txt );
	 $txt = preg_replace( "#\(r\)#i"     , "®"  , $txt );
	 
	 // email tags
	 // [email]matt@index.com[/email]   [email=matt@index.com]Email me[/email]
	 
	 $txt = preg_replace( "#\[email\](\S+?)\[/email\]#i"                                                                , "<a href='mailto:\\1'>\\1</a>", $txt );
	 $txt = preg_replace( "#\[email\s*=\s*\&quot\;([\.\w\-]+\@[\.\w\-]+\.[\.\w\-]+)\s*\&quot\;\s*\](.*?)\[\/email\]#i"  , "<a href='mailto:\\1'>\\2</a>", $txt );
	 $txt = preg_replace( "#\[email\s*=\s*([\.\w\-]+\@[\.\w\-]+\.[\w\-]+)\s*\](.*?)\[\/email\]#i"                       , "<a href='mailto:\\1'>\\2</a>", $txt );
	 
	 // url tags
	 // [url]http://www.index.com[/url]   [url=http://www.index.com]ibforums![/url]
	 
	 $txt = preg_replace( "#\[url\](\S+?)\[/url\]#ie"                                       , "\$this->regex_build_url(array('html' => '\\1', 'show' => '\\1'))", $txt );
	 $txt = preg_replace( "#\[url\s*=\s*\&quot\;\s*(\S+?)\s*\&quot\;\s*\](.*?)\[\/url\]#ie" , "\$this->regex_build_url(array('html' => '\\1', 'show' => '\\2'))", $txt );
	 $txt = preg_replace( "#\[url\s*=\s*(\S+?)\s*\](.*?)\[\/url\]#ie"                       , "\$this->regex_build_url(array('html' => '\\1', 'show' => '\\2'))", $txt );
	 //Warn tag [w]text[/w]
if ($ibforums->member['mgroup'] == 4) 
{
(Строка 318)	$txt = $this->regex_build_warn($txt);
}
//Moder tag [m]text[/m]
if ($ibforums->member['mgroup'] == 4) 
{
$txt = $this->regex_build_moder($txt);  
}
     

[1128345744:1128346950]Строка:

$txt = preg_replace( "#\[url\s*=\s*(\S+?)\s*\](.*?)\[\/url\]#ie"                       , "\$this->regex_build_url(array('html' => '\\1', 'show' => '\\2'))", $txt );

 

Встречаеться 2 раза в файле post_parser.php

Ссылка на комментарий
Поделиться на других сайтах

Встречаеться 2 раза в файле post_parser.php

Недосмотрел. После:

// url tags
	 // [url]http://www.index.com[/url]   [url=http://www.index.com]ibforums![/url]
	 
	 $txt = preg_replace( "#\[url\](\S+?)\[/url\]#ie"                                       , "\$this->regex_build_url(array('html' => '\\1', 'show' => '\\1'))", $txt );
	 $txt = preg_replace( "#\[url\s*=\s*\&quot\;\s*(\S+?)\s*\&quot\;\s*\](.*?)\[\/url\]#ie" , "\$this->regex_build_url(array('html' => '\\1', 'show' => '\\2'))", $txt );
	 $txt = preg_replace( "#\[url\s*=\s*(\S+?)\s*\](.*?)\[\/url\]#ie"                       , "\$this->regex_build_url(array('html' => '\\1', 'show' => '\\2'))", $txt );

[1128350504:1128350782]

if ($ibforums->member['mgroup'] == 4)

{

(Строка 318) $txt = $this->regex_build_warn($txt);

}

У тебя потом в названии функции нет очепятки?

//*****************************************//
// Warn tag [w]text[/w]
//*****************************************//
function regex_build_warn($in)
{
...

Ссылка на комментарий
Поделиться на других сайтах

Вот мой вариант, только до конца не дописан:

 

/////////////////////////////////////
// Автор мода: Jax
// Форум: www.NewAge.gcnet.ru
// Версия: 1.0 
// Для версии форума: 2.х
// Название: простой ББ код предупреждений (Simple Warm Tag)
// Пользоваться могут только админы
// Вопросы сюда: ibresource.ru
/////////////////////////////////////


------------------------------------------------------------
Открыть файл sources/lib/post_parser.php
------------------------------------------------------------


Найти:
*********************************************************************

$txt = preg_replace( "~^(/warn){1,2}\s?(.+?)$~im", '<div class="w">[b][color=red]Предупреждение:[/b][/color] \\2</div>', $txt); 


Ниже добавить:
*********************************************************************

	 if ($ibforums->member['mgroup'] == 4) {
   $txt = preg_replace( "~^(/warn){1,2}\s?(.+?)$~im", '<div class="w"> \\2</div>', $txt); 
   }

Примечание: если хотите, чтобы этой фишкой пользовался не только админ, но и кодер к примеру, вместо "== 4", поставьте "==ID" групп


Найти:
*********************************************************************
$txt = preg_replace( "#<u>(.+?)</u>#is"  , "\[u\]\\1\[/u\]"  , $txt );

Ниже добавить:
*********************************************************************
$txt = preg_replace( "#<div class=['\"]w['\"]>(.+?)</div>#is", "\/warn \\1", $txt );

Сохраните post_parser.php

Скины и шаблоны > Ваш скин > Стили > Редактировать

Найдите там:
*********************************************************************
#QUOTE { font-family: Verdana, Arial; font-size: 8pt; color: #333333; background-color: #FAFCFE; border: 1px solid Black; padding-top: 2px; padding-right: 2px; padding-bottom: 2px; padding-left: 2px }
*********************************************************************

Выше добавьте:
*********************************************************************
#w { font-family: Verdana, Arial; font-size: 11px; color: #e90606; background-color: #ffe0e0; border: 1px solid #b2081d; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px }
*********************************************************************

Жмите [Редактировать стиль]

 

Там в общем после отправки поста, не появляется слово предупреждение, а после едита - есть. В общем, кто хочет, пишите дальше. :D

Ссылка на комментарий
Поделиться на других сайтах

замечательно работает...а как можно расширить группу тех, кто может юзать эти тэги? хочется модерам раздать
Ссылка на комментарий
Поделиться на других сайтах

if ($ibforums->member['mgroup'] == 4) {

заменить на

if (($ibforums->member['mgroup'] == 4) || ($ibforums->member['mgroup'] == {номер нужной группы})){

Что-то у меня из-за этого выводит:

Parse error: parse error, unexpected '{' in /home/dance/domains/dancegalaxy.net/public_html/forums/sources/lib/post_parser.php on line 309
Ссылка на комментарий
Поделиться на других сайтах

Возможно у тебя там где то очепятка, я только что у себя сделал - работает. Может у тебя одна фигурная скобка лишняя?
Ссылка на комментарий
Поделиться на других сайтах

Короче

вот кусок кода который у меня получается:

          //Warn tag [w]text[/w]
                       if (($ibforums->member['mgroup'] == 4) || ($ibforums->member['mgroup'] == {10}))
                       {
                       $txt = $this->regex_build_warn($txt);
                       }
                       //Moder tag [m]text[/m]
                       if (($ibforums->member['mgroup'] == 4) || ($ibforums->member['mgroup'] == {10}))
                       {
                       $txt = $this->regex_build_moder($txt);
                       }

Ошибка такая:

Parse error: parse error, unexpected '{' in /home/dance/domains/dancegalaxy.net/public_html/forums/sources/lib/post_parser.php on line 304

Строка 304 - это и есть строка с назначениями групп!

со стандартной строкой т.е. только для админов - всё ок

ставлю код что дал ты - ошибка! :D

Ссылка на комментарий
Поделиться на других сайтах

if (($ibforums->member['mgroup'] == 4) || ($ibforums->member['mgroup'] == {10}))

вот так:

if (($ibforums->member['mgroup'] == 4) || ($ibforums->member['mgroup'] == 10))

Фигурных скобок не нужно :D

Ссылка на комментарий
Поделиться на других сайтах

GarretM

Спасибо, извини за невнимательность, виноват. Больше не повторится.

 

ЗЫ: Ты бы предупредил, что еще нужно провериь валидность группы модеров, а то у меня они, к примеру не 10 а 6 :D

Ссылка на комментарий
Поделиться на других сайтах

хм

вот заметил недочёт:

когда даёшь предупреждение и если его юзверь цитирует получается вот что:

[m]<font color=red>я уже запарился переносить твои топики

Соблюдай правила</font>[/m]

не красиво как-то

колор=ред думаю можно просто поправить и заменить на бб код

а что делать с тегами?

или может както запретить цитировать предупреждения?

Ссылка на комментарий
Поделиться на других сайтах

Посмотрю.[1128775283:1128779174]dfc_darkman, спасибо, переделал на бб-тэги.

 

Заменить:

//*****************************************//
// Moder tag [m]text[/m]
//*****************************************//
function regex_build_moder($in)
{
 preg_match_all("#\[m\]#is", $in, $num);
 
 $i = count($num[0]);
 $a = 0;
 $v = 0;
 
 while($a < $i)
 {
	 $out =  "<!--MODER BEGIN--><div class=\"quotetop\" onClick=\"Open('".$obj=md5(microtime());
	 $out .= "')\" style=\"cursor: hand\"><b><img border=0 src=style_images/<#IMG_DIR#>/alert.png>Предупреждение модератора</b></div>";
	 $out .= "<div class=\"quotemain\" id=\"".$obj."\"><!--MODER END--><font color=red>"; 	 
	 
	 $in = preg_replace("#\[m\]#is", $out, $in, 1);
	 $a++;
 }
 while($v < $i)
 {
	 $in = preg_replace("#\[\/m\]#is", "</font><!--MODER DIV--></div><!--MODER DIV-->", $in, 1);
	 $v++;
 }	

 return $in;

}

На:

//*****************************************//
// Moder tag [m]text[/m]
//*****************************************//
function regex_build_moder($in)
{
 preg_match_all("#\[m\]#is", $in, $num);
 
 $i = count($num[0]);
 $a = 0;
 $v = 0;
 
 while($a < $i)
 {
	 $out =  "<!--MODER BEGIN--><div class=\"quotetop\" onClick=\"OpenSpoiler('".$obj=md5(microtime());
	 $out .= "')\" style=\"cursor: hand\"><b><img border=0 src=style_images/<#IMG_DIR#>/alert.png>Предупреждение модератора</b></div>";
	 $out .= "<div class=\"quotemain\" id=\"".$obj."\"><!--MODER END-->[color=red]"; 	 
	 
	 $in = preg_replace("#\[m\]#is", $out, $in, 1);
	 $a++;
 }
 while($v < $i)
 {
	 $in = preg_replace("#\[\/m\]#is", "[/color]<!--MODER DIV--></div><!--MODER DIV-->", $in, 1);
	 $v++;
 }	

 return $in;

}

[1128779174:1128779237]А предупреждение пользователю, временно удалено из мода для глобальной переделки.

Ссылка на комментарий
Поделиться на других сайтах

Кстати, а нельзя сделать так, чтобы при написании [m]ник_юзера[/m] юзеру автоматом зачислялось предупреждение ? (на форуме стоит система замечаний)
Ссылка на комментарий
Поделиться на других сайтах

один вопрос !!!

я скачал архив, сделал как написано но , не чего не меняется просто пишет [m]![/m] или что напишу

, что делать???

Ссылка на комментарий
Поделиться на других сайтах

Сделай еще раз всё заново

может ты забыл залить обновлённый файл на хост? :D

Ссылка на комментарий
Поделиться на других сайтах

гы

чёта вобще не продумано как-то :D

у меня при цитировании [w]

получается такое:

<font color=red id="">Предупреждение пользователю: </font><!--WARN END-->

Пожалуйста, не делай такие большие пробелы менжу цитатой и твоим текстом.<!--WARN DIV--> <img border=0 src=style_images/skin/alert.png><!--WARN DIV-->

ужоснах

и когда нажимаешь "редактировать" - в тексте тоже самое ;)

Ссылка на комментарий
Поделиться на других сайтах

А де оно!?

Этож вроде всё что ты выкладывал

Еще одни модерские тэги

и я это поставил :D

или ты еще что то обновил?

Ссылка на комментарий
Поделиться на других сайтах

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.