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

Вес предупреждений


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

Гарантированная совместимость: 2.0.х

 

Мной предлагается несколько иная концепция предупреждений пользователей. Основные доводы моего видения системы предупреждений:

 

1. Основная часть предупреждений имеет отношение к Правилам форума и почти каждое предупреждение связано с определенным пунктом Правил. Даже если предупреждение выносится по нескольким соображениям, то всегда можно выделить основное из них.

2. Каждый пункт правил имеет определенный вес, т.е. могут быть легкие, средние и серьезные нарушения.

3. Правила форума размещаются на форуме в определенном специальном посте в определенном формате, с целью последующего парсинга. Каждый пункт правил имеет номер, состоящий из цифр (0-9) и символа точки (.), а вес предупреждения по данному пункту обозначается цветной отметкой в конце пунктов Правил, которые потенциально можно нарушить. например:

1.3.2.4. Запрещается нецензурно выражаться на форуме [color=orange](Характер нарушения: Среднее)[/color]
1.4. Запрещается создавать на форуме клонов [color=red](Характер нарушения: Серьезное)[/color]

. В одном пункте правил не должно быть разрывов строк!

4. Цветные отметки обозначают парсеру (о котором напишу чуть ниже) стандартный вес предупреждения по данному пункту правил следующим образом: Green - легкое нарушение (+1), Orange - среднее нарушение (+2), Red - серьезное нарушение (+3).

5. Каждое предупреждение таким образом изменяет уровень предупреждений пользователя не на единицу, как было ранее, а на величину в соответствии с цветной отметкой пункта Правил.

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

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

8. Фиксируется максимальный уровень предупреждений в весе. (Например 6 - два серьезных или три средних предупреждения). Запрещается превышение максимального уровня, если он уже достигнут, но разрешается в том случае, если таковая ситуация возникнет при предполагаемом непосредственном действии повышения уровня предупреждений (например, пользователь имеет суммарный вес предупреждений: 5, максимум: 6, разрешается выставить серьезное предупреждение с весом: 3, в результате вес будет: 8 - это 133%). Нижняя граница (ноль) остается без каких-либо изменений.

 

Итак, если концепция понятна, поясню по поводу парсера. В форме изменения уровня предупреждений добавляется несколько примочек, одна из которых - выбор ОСНОВНОГО ПУНКТА ПРАВИЛ, по которому выносится предупреждение. Все эти пункты правил вынимаются в онлайн режиме из Правил форума и парсятся налету в специальный комбо-бокс :D выглядит это довольно мило кстати ;)

 

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

Как известно, при регистрации выдаются Правила, которые введены в специальное поле в админцентре. Предлагается разместить их на форуме в специальном посте, а в том поле в админке поставить ID этого поста.

 

1. Итак, создаем такой пост с правилами и запоминаем его ID

2. Идем в админку / Правила форума / Регистрационные правила и положения : пишем сюда наш ID

3. Редактируем файл /sources/register.php. Находим:

		$this->output .= $this->html->show_terms( $std->my_nl2br($text), $coppa );

 

заменяем на

		$DB->query("SELECT pid, post FROM ibf_posts WHERE pid=".intval($text));
	$row=$DB->fetch_row();
	$this->output .= $this->html->show_terms( $std->my_nl2br($row['post']), $coppa );

 

Теперь Правила при регистрации высвечиваются из нашего специального поста.

Начинаем установку модификации "Вес предупреждений"

 

1. Редактируем Правила таким оборазом, чтобы в начале каждого пункта был номер из цифр и точек, а в конце присутствовал кусочек текста, обрамленный в теги цвета, содержащий информацию для пользователя о характере нарушения по данному пункту (текст может быть любым, главное - цвет: green, orange, red)

 

2. Настраиваем систему предупреждений в админке:

Минимальный уровень предупреждений: 0

Максимальный уровень предупреждений: 6

Отображение индикатора уровня предупреждений: Режим предупреждений (блоки)

Разрешить продолжать предупреждать пользователя при достижении им максимального/минимального уровня предупреждений?: Нет

 

3. Устанавливаем новые шаблоны в админке в скин модерации (skin_mod)

warn_main_rule

Переменные: $contains="",$display="block"

<tr id='option_mainrule' style='display: {$display}'>
 <td class="pformleftw"><b>{ipb.lang['w_mainrule']}</b></td>
 <td class="pformright">{ipb.lang['w_mainrule_desc']}<br />
  <select name="mainrule" style="width: 100%">
  {$contains}
  </select>
 </td>
</tr>

 

warn_weight

Переменные: $contains="",$display="block"

<tr id='option_weight' style='display: {$display}'>
 <td class="pformleftw"><b>{ipb.lang['w_weight']}</b></td>
 <td class="pformright">{ipb.lang['w_weight_desc']}<br />
  <select name="weight">
  {$contains}
  </select>
 </td>
</tr>

 

warn_weight_minus

Переменные: $contains="",$display="none"

<tr id='option_weight_minus' style='display: {$display}'>
 <td class="pformleftw"><b>{ipb.lang['w_weight']}</b></td>
 <td class="pformright">{ipb.lang['w_weight_minus_desc']}<br />
  <select name="weight_minus">
  {$contains}
  </select>
 </td>
</tr>

 

4. Редактируем имеющиеся шаблоны в той же рубрике скинов (skin_mod):

warn_header

<form method="post" action="{ipb.script_url}&act=warn&CODE=dowarn&mid=$mid&t=$tid&st=$st&type={ipb.input['type']}">
<input type="hidden" name="key" value="$key" />
 <div class="borderwrap">
 <div class="maintitle"><{CAT_IMG}> {ipb.lang['w_warnfor']} <a href="{ipb.script_url}showuser=$mid">$name</a> ( $min < $cur > $max )</div>
  <div class="formsubtitle">{ipb.lang['w_complete']}</div>
<table cellspacing="0">
 <tr>
  <td class="pformleftw"><b>{ipb.lang['w_adjust_level']}</b></td>
  <td class="pformright">
   <input type="radio" name="level" id="add" class="radiobutton" value="add" {$type['add']} onclick="document.getElementById('option_mainrule').style.display='block'; document.getElementById('option_weight').style.display='block'; document.getElementById('option_weight_minus').style.display='none'" /><label for="add" class="warnbad"><b>{ipb.lang['w_add']}</b></label>
	<br />
   <input type="radio" name="level" id="minus" class="radiobutton" value="remove" {$type['minus']} onclick="document.getElementById('option_mainrule').style.display='none'; document.getElementById('option_weight').style.display='none'; document.getElementById('option_weight_minus').style.display='block'" /><label for="minus" class="warngood"><b>{ipb.lang['w_remove']}</b></label>
  </td>
 </tr>

 

warn_view_negative_row

Переменные: $date="",$content="",$puni_name="",$weight=""

  <tr>
  <td class="row2" valign="top"><b>$puni_name</b></td>
  <td class="row2" valign="top">{ipb.lang['w_v_warned_on']} <b>$date</b></td>
 </tr>
 <tr>
  <td class="row1" valign="middle"><span class="warnbad">{ipb.lang['w_v_add']}</span><br /><br />{$weight}</td>
  <td class="row1" valign="top"><span class="postcolor">$content</span></td>
 </tr>

 

warn_view_positive_row

Переменные: $date="",$content="",$puni_name="",$weight=""

  <tr>
  <td class="row2" valign="top"><b>$puni_name</b></td>
  <td class="row2" valign="top">{ipb.lang['w_v_warned_on']} <b>$date</b></td>
 </tr>
 <tr>
  <td class="row1" valign="middle"><span class="warngood">{ipb.lang['w_v_minus']}</span><br /><br />{$weight}</td>
  <td class="row1" valign="top"><span class="postcolor">$content</span></td>
 </tr>

 

5. Редактируем файл sources/misc/warn.php

найти

	var $warn_member  = "";

 

НИЖЕ добавить:

 // warn weight
 var $tmp_row_length = 50;
 var $tmp_weight_arr = array( 0 => 'В соответствии с выбранным пунктом Правил', 1 => 'Легкое', 2 => 'Среднее', 3 => 'Серьезное' );
 var $tmp_colors_arr = array( 0 => 'gray' , 1 => 'green', 2 => 'orange', 3 => 'red' );
//^^

 

найти

	$content   = $this->parser->convert( array(
		   'TEXT'	=> $match[1],
		   'SMILIES' => 1,
		   'CODE'	=> 1,
		   'HTML'	=> 0
		   )	  );

 

НИЖЕ добавить

	// warn weight
$weight = "";
if (strlen($r['wlog_mainrule'])>0)
{
 $content .= "<br /><br /><span align=left><b>Основной пункт правил: {$r['wlog_mainrule']}</b></span>";
}
if (strlen($r['wlog_weight'])>0)
{
 $weight = "<span style='color: {$this->tmp_colors_arr[$r['wlog_weight']]}; border: 2px solid white'><b>  " . ($r['wlog_type'] == 'pos' ? "-" : "+")  . $r['wlog_weight'] . " (". $this->tmp_weight_arr[$r['wlog_weight']].")  </b></span>";
}
// ^^

 

найти

	if ( $r['wlog_type'] == 'pos' )
{
 $this->output .= $this->html->warn_view_positive_row($date, $content, $puni_name);
}
else
{
 $this->output .= $this->html->warn_view_negative_row($date, $content, $puni_name);
}

 

ЗАМЕНИТЬ на:

	if ( $r['wlog_type'] == 'pos' )
{
 // warn weight
 //$this->output .= $this->html->warn_view_positive_row($date, $content, $puni_name);
 $this->output .= $this->html->warn_view_positive_row($date, $content, $puni_name, $weight);
 //^^
}
else
{
 //warn weight
 //$this->output .= $this->html->warn_view_negative_row($date, $content, $puni_name);
 $this->output .= $this->html->warn_view_negative_row($date, $content, $puni_name, $weight);
 //^^
}

 

найти:

  $save['wlog_mid']	 = $this->warn_member['id'];
 $save['wlog_addedby'] = $ibforums->member['id'];

 

НИЖЕ добавить:

//warn weight
 if ($ibforums->input['level'] == 'add')
 {
  $tmp = explode( "," , $ibforums->input['mainrule'] );
  if (intval($ibforums->input['weight']) > 0)
  {
$save['wlog_weight'] = $ibforums->input['weight'];
if (intval($tmp[1]) > 0)
{
 $save['wlog_mainrule'] = $tmp[0];
}
  } else {
if (intval($tmp[1]) == 0)
{
 $save['wlog_weight'] = 2;
} else {
 $save['wlog_weight'] = $tmp[1];
 $save['wlog_mainrule'] = $tmp[0];
}
  }
 } else {
  $save['wlog_weight'] = $ibforums->input['weight_minus'];
 }
//^^

 

найти:

  if ( $ibforums->input['level'] == 'add' )
 {
  $warn_level++;
 }
 else
 {
  $warn_level--;
 }

 

ЗАМЕНИТЬ на:

  if ( $ibforums->input['level'] == 'add' )
 {
  // warn weight
  //$warn_level++;
  $warn_level += $save['wlog_weight'];
  //^^
 }
 else
 {
  // warn weight
  //$warn_level--;
  $warn_level -= $save['wlog_weight'];
  //^^
 }

 

найти:

  if ( $warn_level > $ibforums->vars['warn_max'] )
 {
  $warn_level = $ibforums->vars['warn_max'];
 }

 

ЗАМЕНИТЬ:

  //  warn weight
 /*
 // ^^
 if ( $warn_level > $ibforums->vars['warn_max'] )
 {
  $warn_level = $ibforums->vars['warn_max'];
 }
 //  warn weight
 */
 // ^^

 

найти

   $this->output .= $this->html->warn_suspend($ban_arr, $ban_extra);

 }

 

НИЖЕ добавить:

//  warn weight

  $mainrule_contains = "<option value='' style='text-weight: bold; color: red'>Не удалось подгрузить Правила или распарсить их!</option>";
  $cache = $DB->simple_exec_query( array( 'select' => '*', 'from' => 'conf_settings', 'where' => "conf_key='reg_rules'" ) );
  $text  = $cache['conf_value'] ? $cache['conf_value'] : $cache['conf_default'];
  $DB->query("SELECT pid, post FROM ibf_posts WHERE pid=".intval($text));
  if ($row=$DB->fetch_row())
  {
$mainrule_contains = "<option style='color: gray' value='0,0'>Не выбрано</option>\n";
$text = $std->my_nl2br($row['post']);
$tmp = explode( "<br />" , $text);
foreach ($tmp as $row)
{
 if (preg_match("/color\:/", $row))
 {
  $tmp_clear  = preg_replace('/<span style=\'color:.+?<\/span>/', '', $row);
  $tmp_clear  = str_replace("'", "", preg_replace('/<.+?>/', '', $tmp_clear));	  
  $tmp_color  = str_replace("'", "", preg_replace('/(.*)color:(\w+)(.*)/', '$2', $row));
  switch ($tmp_color)
  {
   case $this->tmp_colors_arr[3]:
	$tmp_weight = 3;
	$tmp_weight_desc = $this->tmp_weight_arr[$tmp_weight];
	break;
   case $this->tmp_colors_arr[1]:
	$tmp_weight = 1;
	$tmp_weight_desc = $this->tmp_weight_arr[$tmp_weight];
	break;
   default:
	$tmp_weight = 2;
	$tmp_weight_desc = $this->tmp_weight_arr[$tmp_weight];
  }
  $tmp_number = str_replace("'", "", preg_replace('/([\d\.]+)(.*)/', '$1', $tmp_clear));
  $tmp_clear  = substr( $tmp_clear , strlen($tmp_number) );
  $mainrule_contains .= "<option style='color: {$this->tmp_colors_arr[$tmp_weight]}' value='{$tmp_number},{$tmp_weight}'>{$tmp_number} - Характер нарушения: {$tmp_weight_desc}</option>\n";
  $tmp_clear_arr = explode(" ", $tmp_clear);
  $tmp_part = "";
  foreach ($tmp_clear_arr as $entry)
  {
   $tmp_part .= $entry." ";
   if (strlen($tmp_part)>=$this->tmp_row_length)
   {
	$mainrule_contains = $this->mainrule_optgroup($mainrule_contains, trim($tmp_part));
	$tmp_part = "";
   }
  }
  if (strlen(trim($tmp_part))>0)
  {
   $mainrule_contains = $this->mainrule_optgroup($mainrule_contains, $tmp_part);
  }
 }
}
  }
  $this->output .= $this->html->warn_main_rule($mainrule_contains, $ibforums->input['type'] == 'minus' ? 'none' : 'block');

  $weight_contains = "";
  $weight_minus_contains = "";
  foreach ($this->tmp_weight_arr as $k => $v)
  {	
$weight_contains .= "<option style='color: {$this->tmp_colors_arr[$k]}' value='{$k}'>{$v}</option>\n";
if ($k > 0) $weight_minus_contains .= "<option style='color: {$this->tmp_colors_arr[$k]}' value='{$k}'>{$v} (-{$k})</option>\n";
  }
  $this->output .= $this->html->warn_weight($weight_contains, $ibforums->input['type'] == 'minus' ? 'none' : 'block');
  $this->output .= $this->html->warn_weight_minus($weight_minus_contains, $ibforums->input['type'] == 'minus' ? 'block' : 'none');

//^^

 

найти

}


?>

 

ВЫШЕ добавить:

// warn weight
 function mainrule_optgroup($full, $part)
 {
  return $full . "<optgroup style='color: gray' label='   {$part}'></optgroup>\n";
 }
//^^

 

6. Редактируем lang / lang_mod.php

добавляем новые определения:

// warn weight

'w_mainrule' => "Основной пункт правил",
'w_mainrule_desc' => "Выберите основной пункт Правил на основании которого выносится данное предупреждение:",
'w_weight' => "Характер нарушения",
'w_weight_desc' => "Выберите характер данного нарушения, либо используйте стандартную настройку. Если ничего не выбрано, будет использоваться Средний характер нарушения.",
'w_weight_minus_desc' => "Выберите характер нарушения, которое вы хотите снять",

// ^^

 

ЛИБО (если у вас другая система описания лэнгов):

 

// warn weight

$lang['w_mainrule'] = "Основной пункт правил";
$lang['w_mainrule_desc'] = "Выберите основной пункт Правил на основании которого выносится данное предупреждение:";
$lang['w_weight'] = "Характер нарушения";
$lang['w_weight_desc'] = "Выберите характер данного нарушения, либо используйте стандартную настройку. Если ничего не выбрано, будет использоваться Средний характер нарушения.";
$lang['w_weight_minus_desc'] = "Выберите характер нарушения, которое вы хотите снять";

// ^^

 

7. Редактируем sources / profile.php

найти

	  if ( $member['warn_level'] < 1 )
  {
   $member['warn_img'] = '<{WARN_0}>';
  }
  else if ( $member['warn_level'] >= $ibforums->vars['warn_max'] )
  {
   $member['warn_img']	 = '<{WARN_5}>';
   $member['warn_percent'] = 100;
  } 
  else
  {
   $member['warn_percent'] = $member['warn_level'] ? sprintf( "%.0f", ( ($member['warn_level'] / $ibforums->vars['warn_max']) * 100) ) : 0;
   if ( $member['warn_percent'] > 100 )
   {
	$member['warn_percent'] = 100;
   }

 

 

ЗАМЕНИТЬ на

	  if ( $member['warn_level'] < 1 )
  {
   $member['warn_img'] = '<{WARN_0}>';
  }
  // warn weight
  /*
  //^^
  else if ( $member['warn_level'] >= $ibforums->vars['warn_max'] )
  {
   $member['warn_img']	 = '<{WARN_5}>';
   $member['warn_percent'] = 100;
  } 
  // warn weight
  */
  // ^^
  else
  {
   $member['warn_percent'] = $member['warn_level'] ? sprintf( "%.0f", ( ($member['warn_level'] / $ibforums->vars['warn_max']) * 100) ) : 0;
   // warn weight
   /*
   //^^
   if ( $member['warn_percent'] > 100 )
   {
	$member['warn_percent'] = 100;
   }
   // warn weight
   */
   //^^

 

8. Аналогично редактируем /sources/Topics.php

найти

	if ( ! $ibforums->vars['warn_show_rating'] )
{
 if ( $member['warn_level'] <= $ibforums->vars['warn_min'] )
 {
  $member['warn_img']	 = '<{WARN_0}>';
  $member['warn_percent'] = 0;
 }
 else if ( $member['warn_level'] >= $ibforums->vars['warn_max'] )
 {
  $member['warn_img']	 = '<{WARN_5}>';
  $member['warn_percent'] = 100;
 }
 else
 {

  $member['warn_percent'] = $member['warn_level'] ? sprintf( "%.0f", ( ($member['warn_level'] / $ibforums->vars['warn_max']) * 100) ) : 0;

  if ( $member['warn_percent'] > 100 )
  {
   $member['warn_percent'] = 100;
  }

 

ЗАМЕНИТЬ на

	if ( ! $ibforums->vars['warn_show_rating'] )
{
 if ( $member['warn_level'] <= $ibforums->vars['warn_min'] )
 {
  $member['warn_img']	 = '<{WARN_0}>';
  $member['warn_percent'] = 0;
 }
 // warn weight
 /*
 // ^^
 else if ( $member['warn_level'] >= $ibforums->vars['warn_max'] )
 {
  $member['warn_img']	 = '<{WARN_5}>';
  $member['warn_percent'] = 100;
 }
 // warn weight
 */
 // ^^
 else
 {

  $member['warn_percent'] = $member['warn_level'] ? sprintf( "%.0f", ( ($member['warn_level'] / $ibforums->vars['warn_max']) * 100) ) : 0;

  // warn weight
  /*
  //^^
  if ( $member['warn_percent'] > 100 )
  {
   $member['warn_percent'] = 100;
  }
  //  warn weight
  */
  // ^^

 

9. Изменения в базе:

в таблицу warn_logs добавить два пля:

- wlog_weight char(1) NULL

- wlog_mainrule varchar(15) NULL

Вот соответствующие запросы (префикс ibf_ заменить на свой)

alter ibf_warn_logs add wlog_weight char(1) NULL
alter ibf_warn_logs add wlog_mainrule varchar(15) NULL

 

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

 

Во-первых, мы можем составлять статистику наиболее нарушаемых пунктов Правил, кем, как часто и т.п. Больше того, данный мод дает базу для создания системы автоматического СНЯТИЯ предупреждени через определенный срок, например, чтобы легкие предупреждения автоматически снимались через месяц, средние - через пол года, а серьезные - через год :)

 

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

 

СКРИНШОТЫ временно размещены тут:

http://warnweight.narod.ru/index.html

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

Интересный подход, надо будет попробовать на себе. А можно где-нибудь глянуть демо версию? Хотя бы скриншоты.
Ссылка на комментарий
Поделиться на других сайтах

Да, конечно. Я сделала семь скриншотов, их можно увидеть здесь:

http://warnweight.narod.ru/index.html

 

На последнем скриншоте показано как изменяется отображение истории уровня предупреждений. Обратите внимание на три последние записи. Они иллюстрируют три варианта повышения уровня предупреждений.

 

Нижняя (test orange) - выставлено предупреждение по пункту 1.1.3.3., где стандартный вес - средний. Уровень предупреждений стал: 2

Второй снизу (test orange with red) - выставлено предупреждение ПО ТОМУ ЖЕ пункту, однако вручную был выбран более высокий вес - серьезный. Уровень предупреждений стал: 2+3=5 (несмотря на то, что нарушен был один и тот же пункт Правил - модератором были применены штрафные санкции, за упрямость например :D )

Третий снизу (test manual green) - выставлено легкое предупреждение без привязки к Правилам (старая система). Это для тех, кто хочет по-старому, не снося данного мода ;) Уровень предупреждений стал: 5+1=6 (максимум по умолчанию, дальнейшее повышение невозможно)

Две верхние записи - снятие предупреждений (низкого и среднего характера). 6-1-2=3

В итоге уровень предупреждений становится 3/6 = 50%

 

Стилистический нюанс.

При парсинге правил в комбобокс - они автоматически разделяются на строчки, делясь при этом по словам (как в Wordе) :) Т.е. слово не будет разорвано между двумя строчками. Максимальная длина каждой такой строки выставляется мной тут:

var $tmp_row_length = 50;

это оптимальная ширина в символах, когда окошко развернуто на весь экран при разрешении 1024х768. Вы можете вручную изменить этот параметр, если заметите, что строки с правилами длинее, чем длина комбобокса :)

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

Anna

Хорошая и интерстная идея

Мое имхо надо этот мод с модом показа предупрежединя в подписи юзверя совмеситть

и вообще лофа

ну и возможно имеет смысл сделать выдачу предуперждений с использованием технологии ajax

на сим все хотелка или пожелалка иссякла

 

Респект за идею :D

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

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

Как известно, при регистрации выдаются Правила, которые введены в специальное поле в админцентре. Предлагается разместить их на форуме в специальном посте, а в том поле в админке поставить ID этого поста.

В админке 2.0.4 (перевод 1.4.1 Серега) есть пункт:

Внешняя ссылка на страницу правил (http://):

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

Оставьте поле пустым, если вы не хотите использовать эту опцию.

там ID не вставляется, нужна именно ссылка до файла. В полях ниже соответственно тоже это не работает. Незнаю, может перевод админки кривой, но куда именно ID-форума с правилами пихать - я так и не понял :D

 

Пардон, посмотрел код изменений register.php увидел, что нужно номер pid в тело формы Правил написать. Сделал так, но по прежнему в окне выдачи замечаний Не удалось подгрузить Правила или распарсить их

 

Прошу прощения, всё получилось ;)

Чтобы народ не пугать измените:

 

9. Изменения в базе:

в таблицу warn_logs добавить два пля:

- wlog_weight char(1) NULL

- wlog_mainrule varchar(15) NULL

 

alter ibf_warn_logs add wlog_weight char(1) NULL

alter ibf_warn_logs add wlog_mainrule varchar(15) NULL

 

:) Еще раз спасибо :)

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

SQL запросы добавила в свой первый постинг.

ID поста нужно записать в админке в то поле, где пишется САМ ТЕКСТ этих правил. Этот текст по умолчанию высвещивается здесь: /index.php?act=reg

А цель - сделать так, чтобы Правила были в определенном посте на форуме и они же высвечивались при регистрации.

 

Все остальное, как я понимаю, нормально?

 

Anna

Хорошая и интерстная идея

Мое имхо надо этот мод с модом показа предупрежединя в подписи юзверя совмеситть

и вообще лофа

ну и возможно имеет смысл сделать выдачу предуперждений с использованием технологии ajax

на сим все хотелка или пожелалка иссякла

 

Респект за идею :D

 

Не могли бы вы дать ссылку на "мод показа предупреждений в подписи юзверя"?

Не совсем представляю себе в какое место грузить аяксом такую массивную форму, как форма предупреждений.... Как вы себе это видите? Мне кажется, было бы удобнее просто открывать форму предупреждений во всплывающем окне, так же как делается просмотр предупреждений.

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

Anna: Спасибо, всё работает, но проблема другая возникла :D

 

http://alex-dexter.narod.ru/warn.jpg

 

Соответственно всё перепроверил 2 раза. Форум 2.0.4

Не подскажете где рыть?

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

Криво отредактированы шаблоны. И еще ты забыл отредактировать lang_mod.php.

 

Если тебе не сложно -выложи на своем хосте полный HTML текст этой страницы - я гляну что там с версткой.

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

Anna: lang_mod.php редактировал только в папке с английским языком. А по поводу кода хтмл - его откуда брать-то? :D

 

Сейчас сделал исправление для lang_mod.php на русском языке, его можно в 1ый пост тоже кинуть ;)

 

// warn weight

$lang['w_mainrule'] = "Основной пункт правил";
$lang['w_mainrule_desc'] = "Выберите основной пункт Правил на основании которого выносится данное предупреждение:";
$lang['w_weight'] = "Характер нарушения";
$lang['w_weight_desc'] = "Выберите характер данного нарушения, либо используйте стандартную настройку. Если ничего не выбрано, будет использоваться Средний характер нарушения.";
$lang['w_weight_minus_desc'] = "Выберите характер нарушения, которое вы хотите снять";

// ^^

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

Anna: lang_mod.php редактировал только в папке с английским языком. А по поводу кода хтмл - его откуда брать-то? :D

 

лэнги надо добавлять во все языки, котрые на форуме используются.

Насчет кода хтмл: открой страницу с глюком в браузере, нажми "вид / просмотр html-кода" (для ие) или "просмотр исходного кода страницы" (для файрфокса).

 

 

Сейчас сделал исправление для lang_mod.php на русском языке, его можно в 1ый пост тоже кинуть ;)

 

// warn weight

$lang['w_mainrule'] = "Основной пункт правил";
$lang['w_mainrule_desc'] = "Выберите основной пункт Правил на основании которого выносится данное предупреждение:";
$lang['w_weight'] = "Характер нарушения";
$lang['w_weight_desc'] = "Выберите характер данного нарушения, либо используйте стандартную настройку. Если ничего не выбрано, будет использоваться Средний характер нарушения.";
$lang['w_weight_minus_desc'] = "Выберите характер нарушения, которое вы хотите снять";

// ^^

 

 

Спасибо.

 

 

Anna

Надо к тме с правилами цеплятся а к правилам форума к тем что уже есть.

Ты так не считаеш?

 

Во-первых, я цепляюсь не к теме с Правилами, а к посту. А во вторых, если я правильно понимаю, ты предлагает наоборот - тянуть на форум правила из админки, то я абсолютно не считаю так, как ты пишешь и я объясню почему.

Когда Правила находятся на форуме (в посте), а не в админке (как ты предлагаешь), то при их редактировании тебе предлагается полный оформительский инструментарий - это теги, кнопки и предпросмотр. В админке ты можешь юзать HTML, но это замедляет и усложняет работу по формированию Правил, тем более, что далее нам нужно в каждом пункте поставить цветовой маркер, т.е. велика вероятность человеческих опечаток, а предпросмотра в админке нет. Плюс к этому: не все современные админы знают HTML, как это ни печально :). Плюс, чтоб зайти в админку надо логиниться еще раз (а на некоторых форумах - даже два раза (когда админка защищена доп. паролем)), а для редактирования Правил в посте не нужно этого.

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

Anna:

Насчет кода хтмл: открой страницу с глюком в браузере, нажми "вид / просмотр html-кода" (для ие) или "просмотр исходного кода страницы" (для файрфокса)

пардон, после работы туго соображаю :D вот код:

 

http://alex-dexter.narod.ru/code.txt

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

Видимо не все. Чтобы узнать в чем проблема я тебя прошу выложить код страницы.

 

Я говорю, что в этом файле

http://alex-dexter.narod.ru/code.txt

выложен только кусок этого HTML-ного кода твоей страницы, он обрывается на шапке. Ты его скопировал туда просто не весь. сам попробуй открыть эту ссылку и ты увидишь только шапку.

Я тебя прошу:

- открой страницу выставления предупреждения

- выбери "просмотреть исходный код страницы"

- она откроется в блонкоте или еще чем-то там

- выбери в меню файл / сохранить как

- набери warn.txt

- залей этот файл на свой хост и напиши, что залил

:D

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

Anna: спасибо :D на будущее: проверяйте сначала всё-таки в Мозилловских браузерах, там сразу будет видно, что есть ошибка в коде ;)
Ссылка на комментарий
Поделиться на других сайтах

  • 2 недели спустя...
Ну естественно просто так оно работать под 2.1 не будет. Вы же видите, у меня хотя бы $DB->query - в 2.1 нет такого объекта, там помоему $ipsclass->DB если я не ошибаюсь. Ну и все в таком духе.
Ссылка на комментарий
Поделиться на других сайтах

а никто знающий не делал ещё релиз такой "фишки" под 2.1.x ? очень полезная вещь, заметно облегчит работу модеров/админов, да и вопросов будут меньше задавать пользователи, типа "За что? Почему?"
Ссылка на комментарий
Поделиться на других сайтах

Торжественно вручаю авторское право на реализацию данной фичи любому знающему, увлекающемуся модами под линейку 2.1.х :D

Я в плане линеек консерватор своего времени ;) (2.0.х)

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

Присоединиться к обсуждению

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

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

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

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