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

Назначение куратора для темы


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

Ну что, кто-нить нашёл ошибку в коде для 2.1.*

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

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

  • Ответы 103
  • Создана
  • Последний ответ

Лучшие авторы в этой теме

Лучшие авторы в этой теме

Загружено фотографий

Вот вообщем нашёл код для куратора темы. Работает. Сразу говорю, код не мой, выкладываю не свою разработку. Тестил у себя на 2.1.4, сказали, что тестили ещё и на 2.1.7.

 

+---------------------------------------------------------------------
|   Invision Power Board v2.1.x
|  =================================================================
|   При поддержке [url=http://ibresource.ru]ibresource.ru[/url]
|   И [url=http://respublika16.ru]respublika16.ru[/url]
|  =================================================================
+---------------------------------------------------------------------
|
|   > Мод "Куратор/Модератор одной темы"
|   > Автор fr0z3n aka andar!l
|
|   > Автор оригинального мода для версий 2.0.х Пухыч
|   > Версия: 1.0
|   > Дата: 19.02.2007
|
+---------------------------------------------------------------------
|
|   > Эта модификация позволяет добавить куратора для темы. 
|   > Куратор может удалять, и редактировать сообщения в пределах одной
|   > темы. Добавлять куратора может супермодератор
|
+---------------------------------------------------------------------
|
|   > Автор не несет ответственности за проблемы в связи с 
|   > использованием этой модификации
|   > Используйте мод на свой страх и риск.
|
|   > Author is not responsible for any consequences of using this
|   > forum modification, including those caused by this module
|   > Use at your own risk
|
+---------------------------------------------------------------------

######################################################################
Выполнить SQL запрос в базе данных вашего форума. Не забывайте сменить
префикс (ibf_) таблиц на свой если вы не используете стандартный.
======================================================================
ALTER TABLE `ibf_topics` ADD `curator_id` VARCHAR( 255 ) DEFAULT NULL;
======================================================================

######################################################################
./sources/action_public/moderate.php
======================================================================
НАЙТИ
----------------------------------------------------------------------
function auto_run()
{
----------------------------------------------------------------------
НАЙТИ НИЖЕ
----------------------------------------------------------------------
$post_array   = array( '04', '02', '20', '22', 'resync', 'prune_start', 'prune_finish', 'prune_move', 'editmember' );
----------------------------------------------------------------------
ЗАМЕНИТЬ НА
----------------------------------------------------------------------
//curator//
//$post_array   = array( '04', '02', '20', '22', 'resync', 'prune_start', 'prune_finish', 'prune_move', 'editmember' );
$post_array   = array( '04', '02', '20', '22', 'resync', 'prune_start', 'prune_finish', 'prune_move', 'editmember', 'topiccurator' );
//curator//
----------------------------------------------------------------------
НАЙТИ
----------------------------------------------------------------------
case 'editmember':
  $this->edit_member();
  break;
----------------------------------------------------------------------
НИЖЕ ДОБАВИТЬ
----------------------------------------------------------------------
//curator
 case 'topiccurator':   
  $this->topic_curator(); 
  break;
//curator
----------------------------------------------------------------------
НАЙТИ
----------------------------------------------------------------------
/*-------------------------------------------------------------------------*/
// Edit member
/*-------------------------------------------------------------------------*/

function edit_member()
----------------------------------------------------------------------
ВЫШЕ, ДОБАВИТЬ
----------------------------------------------------------------------
//-----------------------------------------
// Topic curator
//-----------------------------------------
function topic_curator()
	{

	 //-----------------------------------------
	 // Check Permissions
	 //-----------------------------------------
		$passed = 0;

		if ($this->ipsclass->member['g_is_supmod'] == 1)
		{
			$passed = 1;
		}

		else if ($this->moderator['add_curator'] == 1)
		{
			$passed = 1;
		}
		else 
		{
			$passed = 0;
		}

		if ($passed != 1) $this->moderate_error();

		if ( ! $this->topic['tid'] )
		{
			$this->moderate_error();
		}

	//-----------------------------------------------
	// Are we checking first?
	//-----------------------------------------------
	 $update='';

	 if ($this->ipsclass->input['check'] == 1)
		{
			$user_list=$this->ipsclass->input['topic_curator'];
			if (isset($user_list) and $user_list != "")
		{
			//---------------------------
			// Sort out the array
			//---------------------------

			$user_list = str_replace(  "<br>", "<br />" , trim($user_list) );
			$user_list = str_replace(  "<br /><br />", "<br />" , trim($user_list) );
			$user_list = preg_replace( "#^(<br />){1}#", "" , $user_list );
			$user_list = preg_replace( "#(<br />){1}$#", "" , $user_list );
			$user_list = preg_replace( "#<br />\s+#",  ","  , $user_list );


		$this->ipsclass->DB->simple_construct( array(  'select' => 'id, name',
														'from'   => 'members',
														'where'  => "LOWER(name)='{$user_list}'"
													));
		$this->ipsclass->DB->simple_exec();

			if ( ! $this->ipsclass->DB->get_num_rows() )
				{
					$this->moderate_error('cp_error_no_mem');
					return;
				}
			else
				{
					$cc_array = $this->ipsclass->DB->fetch_row(); 
				}

		$this->ipsclass->DB->do_update( 'topics', array ('curator_id' =>addslashes(serialize($cc_array)),),"tid={$this->ipsclass->input['t']}" );
		$update="Добавлен куратор: <b>{$cc_array['name']}</b>";
		//  $this->ipsclass->DB->do_update
		}
	else
		{
		$this->ipsclass->DB->do_update( 'topics', array ('curator_id' =>'',),"tid={$this->ipsclass->input['t']}" );
		$update="Куратор удалён!";
		} 
	}
	$this->ipsclass->DB->simple_construct( array( 'select' => '*', 'from' => 'topics', 'where' => 'tid='.intval($this->ipsclass->input['t']) ) );
	$this->ipsclass->DB->simple_exec();

	$this->topic = $this->ipsclass->DB->fetch_row();

	$list = unserialize(stripslashes($this->topic['curator_id']));
	$this->output .= $this->ipsclass->compiled_templates['skin_mod']->topic_curator_splash ($this->forum, $this->topic, $this->ipsclass->return_md5_check(),$list['name'], $update );
	// $print->pop_up_window( "", $this->output );
	$this->ipsclass->print->pop_up_window( "", $this->output );
}

----------------------------------------------------------------------
НАЙТИ
----------------------------------------------------------------------
function delete_post()
{
// Get this post id.

$this->ipsclass->input['p'] = intval($this->ipsclass->input['p']);
----------------------------------------------------------------------
НИЖЕ НАЙТИ
----------------------------------------------------------------------
$this->ipsclass->DB->simple_construct( array( 'select' => 'pid, author_id, post_date, new_topic', 'from' => 'posts', 'where' => "topic_id={$this->topic['tid']} and pid={$this->ipsclass->input['p']}" ) );
----------------------------------------------------------------------
ЗАМЕНИТЬ НА
----------------------------------------------------------------------
//curator//
//$this->ipsclass->DB->simple_construct( array( 'select' => 'pid, author_id, post_date, new_topic', 'from' => 'posts', 'where' => "topic_id={$this->topic['tid']} and pid={$this->ipsclass->input['p']}" ) );
$this->ipsclass->DB->simple_construct( array( 'select' => 'pid, author_id, post_date, new_topic, curator_id', 'from' => 'posts p LEFT JOIN '.SQL_PREFIX.'topics t ON (tid=topic_id)', 'where' => "topic_id={$this->topic['tid']} and pid={$this->ipsclass->input['p']}" ) );
//curator//
----------------------------------------------------------------------
НАЙТИ
----------------------------------------------------------------------
else if ( ($this->ipsclass->member['g_delete_own_posts'] == 1) and ( $this->ipsclass->member['id'] == $post['author_id'] ) )
{
$passed = 1;
}
----------------------------------------------------------------------
НИЖЕ ДОБАВИТЬ
----------------------------------------------------------------------
//curator//
else if ($post['curator_id'])
{
 $list = unserialize(stripslashes($post['curator_id']));
 if ($this->ipsclass->member['id']==$list['id']) $passed = 1;
}
//curator//
======================================================================

######################################################################
./sources/classes/post/class_post_edit.php
======================================================================
НАЙТИ
----------------------------------------------------------------------
//-----------------------------------------
// Load the old post
//-----------------------------------------
----------------------------------------------------------------------
НИЖЕ НАЙТИ
----------------------------------------------------------------------
$this->ipsclass->DB->simple_construct( array( 'select' => '*', 'from' => 'posts', 'where' => "pid=".intval($this->ipsclass->input['p']) ) );
----------------------------------------------------------------------
ЗАМЕНИТЬ НА
----------------------------------------------------------------------
//curator
//$this->ipsclass->DB->simple_construct( array( 'select' => '*', 'from' => 'posts', 'where' => "pid=".intval($this->ipsclass->input['p']) ) );
$this->ipsclass->DB->simple_construct(array( 'select' => '*, curator_id', 'from' => 'posts p LEFT JOIN '.SQL_PREFIX.'topics t ON (tid=topic_id)', 'where' => "pid=".intval($this->ipsclass->input['p'])  ) );
//curator
----------------------------------------------------------------------
НАЙТИ
----------------------------------------------------------------------
if ($this->moderator['edit_post'])
{
$can_edit = 1;
}
----------------------------------------------------------------------
НИЖЕ ДОБАВИТЬ
----------------------------------------------------------------------
//curator
if ($this->orig_post['curator_id']) 
{
 $list = unserialize(stripslashes($this->topic['curator_id']));
 if ($this->ipsclass->member['id']==$list['id']) $can_edit = 1;
}
//curator
######################################################################
./sources/action_public/topics.php
======================================================================
НАЙТИ
----------------------------------------------------------------------
if ($this->moderator['delete_post']) return $button;
----------------------------------------------------------------------
НИЖЕ ДОБАВИТЬ
----------------------------------------------------------------------
//curator
if ($this->topic['curator_id'])
{ 
$curator = unserialize(stripslashes($this->topic['curator_id']));
if ($this->ipsclass->member['id']==$curator['id']) return $button;
}
//curator
----------------------------------------------------------------------
НАЙТИ
----------------------------------------------------------------------
if ($this->moderator['edit_post']) return $button;
----------------------------------------------------------------------
НИЖЕ, ДОБАВИТЬ 
----------------------------------------------------------------------
//curator
if ($this->topic['curator_id'])
{ 
$curator = unserialize(stripslashes($this->topic['curator_id']));
if ($this->ipsclass->member['id']==$curator['id']) return $button;
}
//curator
----------------------------------------------------------------------
НАЙТИ (примерно строка 1093)
----------------------------------------------------------------------
$member['member_group']  = $this->ipsclass->compiled_templates['skin_topic']->member_group( $this->ipsclass->cache['group_cache'][ $member['mgroup'] ]['g_title'] );
----------------------------------------------------------------------
ЗАМЕНИТЬ НА
----------------------------------------------------------------------
//curator
//$member['member_group']  = $this->ipsclass->compiled_templates['skin_topic']->member_group( $this->ipsclass->cache['group_cache'][ $member['mgroup'] ]['g_title'] );
$curator = unserialize(stripslashes($this->topic['curator_id']));
$member['member_group']  = $member['id']==$curator['id'] ? "<strong>Куратор темы</strong>" : $this->ipsclass->compiled_templates['skin_topic']->member_group( $this->ipsclass->cache['group_cache'][ $member['mgroup'] ]['g_title'] );
//curator
======================================================================

######################################################################
./sources/action_public/forums.php
======================================================================
НАЙТИ
----------------------------------------------------------------------
if ($this->pinned_print == 0)
		{
			// we've a pinned topic, but we've not printed the pinned
			// starter row, so..

			$show	= $this->announce_out ? 1 : 0;
			$p_start = $this->ipsclass->compiled_templates['skin_forum']->render_pinned_start( $show );

			$this->pinned_print = 1;
		}
----------------------------------------------------------------------
ДОБАВИТЬ НИЖЕ
----------------------------------------------------------------------
//curator
$list = unserialize(stripslashes($topic['curator_id']));
if ($list['id'])
{
$topic['curator']='Куратор темы: <a href="./index.php?showuser='.$list['id'].'">'.$list['members_display_name']."</a>";
}
//curator
----------------------------------------------------------------------
НАЙТИ
----------------------------------------------------------------------
if ($this->pinned_print == 1)
		{
			//-----------------------------------------
			// Nope, so..
			//-----------------------------------------

			$p_end = $this->ipsclass->compiled_templates['skin_forum']->render_pinned_end();

			$this->pinned_print = 0;
		}
----------------------------------------------------------------------
ДОБАВИТЬ НИЖЕ
----------------------------------------------------------------------
//curator
$list = unserialize(stripslashes($topic['curator_id']));
if ($list['id'])
{
$topic['curator']='Куратор темы: <a href="./index.php?showuser='.$list['id'].'">'.$list['members_display_name']."</a>";
}
//curator
======================================================================

######################################################################
Выполнить SQL запрос в базе данных вашего форума. Не забывайте сменить
префикс (ibf_) таблиц на свой если вы не используете стандартный.
======================================================================
ALTER TABLE `ibf_moderators` ADD `add_curator` TINYINT( 1 ) DEFAULT 0;
----------------------------------------------------------------------
ЕСЛИ ВЫ ХОТИТЕ ЧТОБЫ ВСЕ ТЕКУЩИЕ МОДЕРАТОРЫ МОГЛИ УСТАНАВЛИВАТЬ 
УСТНЫЕ ПРЕДУПРЕЖДЕНИЯ ВЫПОЛНИТЕ СЛЕДУЮЩИЙ ЗАПРОС
----------------------------------------------------------------------
UPDATE `ibf_moderators` SET `add_curator` = '1'
======================================================================

######################################################################
ACP Home > Cache Control > Moderators > Update cache

Может навигацию не правильно написал, вообщем обновите кэш модераторов.
Без этого работать не будет.
######################################################################

######################################################################
./sources/action_admin/moderator.php
======================================================================
НАЙТИ ( ЭТА СТРОКА ПОВТОРЯЕТСЯ ДВА РАЗА )
----------------------------------------------------------------------
'allow_warn'   => intval($this->ipsclass->input['allow_warn']),
----------------------------------------------------------------------
НИЖЕ, ДОБАВИТЬ (ПОСЛЕ КАЖДОГО ПОВТОРЕНИЯ)
----------------------------------------------------------------------
// curator
'add_curator'	=> intval($this->ipsclass->input['add_curator']),
// curator
----------------------------------------------------------------------
НАЙТИ
----------------------------------------------------------------------
$this->ipsclass->adskin->form_yes_no("allow_warn", $mod['allow_warn'] )
									 )	  );	
----------------------------------------------------------------------
НИЖЕ, ДОБАВИТЬ
----------------------------------------------------------------------
//curator
	$this->ipsclass->html .= $this->ipsclass->adskin->add_td_row( array( "<b>Добавлять кураторов тем?</b><div class='desctext'>Куратор может удалять/редактировать сообщения в курируемой им теме.</div>" ,
											  $this->ipsclass->adskin->form_yes_no("add_curator", $mod['add_curator'] )
									 )	  );
//curator
======================================================================
Возможность добавлять куратора для модераторов ставится
при добавлении/редактировании модератора
======================================================================

######################################################################
Заходим в админку 
ACP Home > Skin Manager Home > Edit Template HTML
Выбираем там группу фрагментов Forum Index в ней выбираем фрагмент render_forum_row
======================================================================
Ищем в фрагменте 
----------------------------------------------------------------------
</span> {$data['PAGES']}
 <div class="desc"><span onclick='return span_desc_to_input("{$data['tid']}");' id='tid-desc-{$data['tid']}'>{$data['description']}</span>
----------------------------------------------------------------------
Вставляем после этого 
----------------------------------------------------------------------
<span class="forumdesc"><if="$data['curator']"><i>{$data['curator']}</i></if></span>
======================================================================

######################################################################
Заходим в админцентр
ACP Home > Look & feel > Edit Template HTML (В меню стиля)
======================================================================
Нажимаем Add Template Bit (Добавить фрагмент)
----------------------------------------------------------------------
New Template Bit Name (Название фрагмента):
----------------------------------------------------------------------
topic_curator_splash
----------------------------------------------------------------------
New Template Bit Incoming Data Variables (Входящие переменные):
----------------------------------------------------------------------
$forum="", $topic="", $auth_key="", $list_user="", $update=""
----------------------------------------------------------------------
Template group (Группа фрагмента):
----------------------------------------------------------------------
skin_mod
----------------------------------------------------------------------
Тело фрагмента
----------------------------------------------------------------------
</script><script language='javascript' type="text/javascript">
<!--
function find_users()
{
url = "index.php?act=legends&CODE=finduser_one&s=&entry=textarea&name=topic_curator&sep=none";
window.open(url,'FindUsers','width=400,height=250,resizable=yes,scrollbars=yes'); 
}
//-->
</script>
<div class='borderwrap'>
<div class='maintitle'><table><tr><td width="99%">Добавить куратора для темы {$topic['title']}<td width="1%"><a href="java script:self.close();"><b>[X]</b></a><td></td></tr></table></div>
<div class='row2'><center>{$update}</center></div>
<div class='tablepad'>Впишите точное имя пользователя или воспользуйтесь поиском</div>
<form action='{$this->ipsclass->baseurl}' method='POST' name='REPLIER' >
<input type='hidden' name='s' value='{$this->ipsclass->session_id}'>
<input type='hidden' name='act' value='mod'>
<input type='hidden' name='CODE' value='topiccurator'>
<input type='hidden' name='f' value='{$forum['id']}'>
<input type='hidden' name='t' value='{$topic['tid']}'>
<input type='hidden' name='auth_key' value='$auth_key' />
<input type='hidden' name='check' value='1'>
<table width="100%" cellspacing="0">
<tr>
<td class='pformright' align='center'>
<input type="text" name='topic_curator' size='30' value={$list_user}><br />
<input type='button' class='forminput' name='findusers' onclick='find_users()' value='{$this->ipsclass->lang['find_user_names']}' />
</td></tr></table>
<div class='formsubtitle' align='center'><input type='submit' value='Сохранить' class='button' /></div>
</form>
</div>
======================================================================
Заходим в админцентр
ACP Home > Look & feel > Edit Template HTML (В меню стиля)
Выбираем "Topic view" в нем "TableFooter"
======================================================================
НАЙТИ
----------------------------------------------------------------------
<form name="modform" method="post" action="{ipb.script_url}act=mod&CODE=postchoice&f={$data['TOPIC']['forum_id']}&t={$data['TOPIC']['tid']}" onsubmit="return checkdelete();">
----------------------------------------------------------------------
ВЫШЕ ДОБАВИТЬ
----------------------------------------------------------------------
<form method="POST" name="modformCurator" action="{$this->ipsclass->base_url}">
<input type="hidden" name="act" value="mod" />
<input type="hidden" name="CODE" value="topiccurator" />
<input type="hidden" name="f" value="{$data['TOPIC']['forum_id']}" />
<input type="hidden" name="t" value="{$data['TOPIC']['tid']}" />
<input type="hidden" name="auth_key" value="{$auth_key}" />
<input type="submit" value="Управление Куратором" class="button" target="_blank" /></form>
======================================================================

СОХРАНИТЬ
######################################################################
Готово

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

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

  • 2 недели спустя...
Engell, спасибо, но я всё равно воспользовался версией от предыдущего постера, а у тебя содрал только кусок кода в Table Footer :D
Ссылка на комментарий
Поделиться на других сайтах

  • 1 месяц спустя...
ойп, поставил мод на 2.1.7 работает чудесно, однако куратора почему-то может добавлять только администратор, как сделать так, чтобы его мог добавить и обычный модератор?
Ссылка на комментарий
Поделиться на других сайтах

  • 1 месяц спустя...

Скажите пожалуйста, может быть на каком-то другому форуме есть данный мод под 2.3.1?

 

Просто очень хочу поставить себе его на форум...

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

  • 4 недели спустя...
  • 1 месяц спустя...
А чем он от модератора отличается-то?
Ссылка на комментарий
Поделиться на других сайтах

вот версия для 23х.

Не работает в этой версии:

- вывод ника куратора под названием темы в списке тем; (вместо этого сделано уведомление, что в теме есть куратор)

- вывод группы участника в данной теме, если он куратор данной темы.

 

######################################################################
Выполнить SQL запрос в базе данных вашего форума. Не забывайте сменить
префикс (ibf_) таблиц на свой если вы не используете стандартный.
======================================================================
ALTER TABLE `ibf_topics` ADD `curator_id` VARCHAR( 255 ) DEFAULT NULL;
======================================================================

######################################################################
./sources/action_public/moderate.php
======================================================================
НАЙТИ
----------------------------------------------------------------------
function auto_run()
{
----------------------------------------------------------------------
НАЙТИ НИЖЕ
----------------------------------------------------------------------
$post_array   = array( '04', '02', '20', '22', 'resync', 'prune_start', 'prune_finish', 'prune_move', 'editmember' );
----------------------------------------------------------------------
ЗАМЕНИТЬ НА
----------------------------------------------------------------------
//curator//
//$post_array   = array( '04', '02', '20', '22', 'resync', 'prune_start', 'prune_finish', 'prune_move', 'editmember' );
$post_array   = array( '04', '02', '20', '22', 'resync', 'prune_start', 'prune_finish', 'prune_move', 'editmember', 

'topiccurator' );
//curator//
----------------------------------------------------------------------
НАЙТИ
----------------------------------------------------------------------
case 'editmember':
  $this->edit_member();
  break;
----------------------------------------------------------------------
НИЖЕ ДОБАВИТЬ
----------------------------------------------------------------------
//curator
 case 'topiccurator':   
  $this->topic_curator(); 
  break;
//curator
----------------------------------------------------------------------
НАЙТИ
----------------------------------------------------------------------
/*-------------------------------------------------------------------------*/
// Edit member
/*-------------------------------------------------------------------------*/

function edit_member()
----------------------------------------------------------------------
ВЫШЕ, ДОБАВИТЬ
----------------------------------------------------------------------
//-----------------------------------------
// Topic curator
//-----------------------------------------
function topic_curator()
	{

	 //-----------------------------------------
	 // Check Permissions
	 //-----------------------------------------
		$passed = 0;

		if ($this->ipsclass->member['g_is_supmod'] == 1)
		{
			$passed = 1;
		}

		else if ($this->moderator['add_curator'] == 1)
		{
			$passed = 1;
		}
		else 
		{
			$passed = 0;
		}

		if ($passed != 1) $this->moderate_error();

		if ( ! $this->topic['tid'] )
		{
			$this->moderate_error();
		}

	//-----------------------------------------------
	// Are we checking first?
	//-----------------------------------------------
	 $update='';

	 if ($this->ipsclass->input['check'] == 1)
		{
			$user_list=$this->ipsclass->input['topic_curator'];
			if (isset($user_list) and $user_list != "")
		{
			//---------------------------
			// Sort out the array
			//---------------------------

			$user_list = str_replace(  "<br>", "<br />" , trim($user_list) );
			$user_list = str_replace(  "<br /><br />", "<br />" , trim($user_list) );
			$user_list = preg_replace( "#^(<br />){1}#", "" , $user_list );
			$user_list = preg_replace( "#(<br />){1}$#", "" , $user_list );
			$user_list = preg_replace( "#<br />\s+#",  ","  , $user_list );


		$this->ipsclass->DB->simple_construct( array(  'select' => 'id, name',
														'from'   => 'members',
														'where'  => "LOWER(name)='{$user_list}'"
													));
		$this->ipsclass->DB->simple_exec();

			if ( ! $this->ipsclass->DB->get_num_rows() )
				{
					$this->moderate_error('cp_error_no_mem');
					return;
				}
			else
				{
					$cc_array = $this->ipsclass->DB->fetch_row(); 
				}

		$this->ipsclass->DB->do_update( 'topics', array ('curator_id' 

=>addslashes(serialize($cc_array)),),"tid={$this->ipsclass->input['t']}" );
		$update="Добавлен куратор: <b>{$cc_array['name']}</b>";
		//  $this->ipsclass->DB->do_update
		}
	else
		{
		$this->ipsclass->DB->do_update( 'topics', array ('curator_id' =>'',),"tid={$this->ipsclass->input['t']}" );
		$update="Куратор удалён!";
		} 
	}
	$this->ipsclass->DB->simple_construct( array( 'select' => '*', 'from' => 'topics', 'where' => 

'tid='.intval($this->ipsclass->input['t']) ) );
	$this->ipsclass->DB->simple_exec();

	$this->topic = $this->ipsclass->DB->fetch_row();

	$list = unserialize(stripslashes($this->topic['curator_id']));
	$this->output .= $this->ipsclass->compiled_templates['skin_mod']->topic_curator_splash ($this->forum, $this->topic, 

$this->ipsclass->return_md5_check(),$list['name'], $update );
	// $print->pop_up_window( "", $this->output );
	$this->ipsclass->print->pop_up_window( "", $this->output );
}

----------------------------------------------------------------------
НАЙТИ
----------------------------------------------------------------------
function delete_post()
{
// Get this post id.

$this->ipsclass->input['p'] = intval($this->ipsclass->input['p']);
----------------------------------------------------------------------
НИЖЕ НАЙТИ
----------------------------------------------------------------------
$this->ipsclass->DB->simple_construct( array( 'select' => 'pid, author_id, post_date, new_topic', 'from' => 'posts', 'where' 

=> "topic_id={$this->topic['tid']} and pid={$this->ipsclass->input['p']}" ) );
----------------------------------------------------------------------
ЗАМЕНИТЬ НА
----------------------------------------------------------------------
//curator//
//$this->ipsclass->DB->simple_construct( array( 'select' => 'pid, author_id, post_date, new_topic', 'from' => 'posts', 

'where' => "topic_id={$this->topic['tid']} and pid={$this->ipsclass->input['p']}" ) );
$this->ipsclass->DB->simple_construct( array( 'select' => 'pid, author_id, post_date, new_topic, curator_id', 'from' => 

'posts p LEFT JOIN '.SQL_PREFIX.'topics t ON (tid=topic_id)', 'where' => "topic_id={$this->topic['tid']} and 

pid={$this->ipsclass->input['p']}" ) );
//curator//
----------------------------------------------------------------------
НАЙТИ
----------------------------------------------------------------------
else if ( ($this->ipsclass->member['g_delete_own_posts'] == 1) and ( $this->ipsclass->member['id'] == $post['author_id'] ) )
{
$passed = 1;
}
----------------------------------------------------------------------
НИЖЕ ДОБАВИТЬ
----------------------------------------------------------------------
//curator//
else if ($post['curator_id'])
{
 $list = unserialize(stripslashes($post['curator_id']));
 if ($this->ipsclass->member['id']==$list['id']) $passed = 1;
}
//curator//
======================================================================

######################################################################
./sources/classes/post/class_post_edit.php
======================================================================
НАЙТИ
----------------------------------------------------------------------
//-----------------------------------------
// Load the old post
//-----------------------------------------
----------------------------------------------------------------------
НИЖЕ НАЙТИ
----------------------------------------------------------------------
$this->ipsclass->DB->simple_construct( array( 'select' => '*', 'from' => 'posts', 'where' => 

"pid=".intval($this->ipsclass->input['p']) ) );
----------------------------------------------------------------------
ЗАМЕНИТЬ НА
----------------------------------------------------------------------
//curator
//$this->ipsclass->DB->simple_construct( array( 'select' => '*', 'from' => 'posts', 'where' => 

"pid=".intval($this->ipsclass->input['p']) ) );
$this->ipsclass->DB->simple_construct(array( 'select' => '*, curator_id', 'from' => 'posts p LEFT JOIN '.SQL_PREFIX.'topics t 

ON (tid=topic_id)', 'where' => "pid=".intval($this->ipsclass->input['p'])  ) );
//curator
----------------------------------------------------------------------
НАЙТИ
----------------------------------------------------------------------
if ($this->moderator['edit_post'])
{
$can_edit = 1;
}
----------------------------------------------------------------------
НИЖЕ ДОБАВИТЬ
----------------------------------------------------------------------
//curator
if ($this->orig_post['curator_id']) 
{
 $list = unserialize(stripslashes($this->topic['curator_id']));
 if ($this->ipsclass->member['id']==$list['id']) $can_edit = 1;
}
//curator
######################################################################
./sources/action_public/topics.php
======================================================================
НАЙТИ
----------------------------------------------------------------------
if ($this->moderator['delete_post']) return $button;
----------------------------------------------------------------------
НИЖЕ ДОБАВИТЬ
----------------------------------------------------------------------
//curator
if ($this->topic['curator_id'])
{ 
$curator = unserialize(stripslashes($this->topic['curator_id']));
if ($this->ipsclass->member['id']==$curator['id']) return $button;
}
//curator
----------------------------------------------------------------------
НАЙТИ
----------------------------------------------------------------------
if ($this->moderator['edit_post']) return $button;
----------------------------------------------------------------------
НИЖЕ, ДОБАВИТЬ 
----------------------------------------------------------------------
//curator
if ($this->topic['curator_id'])
{ 
$curator = unserialize(stripslashes($this->topic['curator_id']));
if ($this->ipsclass->member['id']==$curator['id']) return $button;
}
//curator
======================================================================

######################################################################
./sources/ipsclass.php
======================================================================
НАЙТИ  (прим. куратор будет выделен, но его группа отображена не будет)
----------------------------------------------------------------------
$member['member_group']	= $this->compiled_templates[ $skin_file ]->member_group( $group_name );
----------------------------------------------------------------------
ЗАМЕНИТЬ НА
----------------------------------------------------------------------
//curator
//$member['member_group']	= $this->compiled_templates[ $skin_file ]->member_group( $group_name );
$curator = unserialize(stripslashes($this->topic['curator_id']));
$member['member_group']  = $member['id']==$curator['id'] ? "<strong><font color=red>Куратор темы</font></strong>" : 

$member['member_group']	= $this->compiled_templates[ $skin_file ]->member_group( $group_name );
//curator
======================================================================
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

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

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
./sources/action_public/forums.php
======================================================================
НАЙТИ
----------------------------------------------------------------------
if ($this->pinned_print == 0)
		{
			// we've a pinned topic, but we've not printed the pinned
			// starter row, so..

			$show	= $this->announce_out ? 1 : 0;
			$p_start = $this->ipsclass->compiled_templates['skin_forum']->render_pinned_start( $show );

			$this->pinned_print = 1;
		}
----------------------------------------------------------------------
ДОБАВИТЬ НИЖЕ
----------------------------------------------------------------------
//curator
$list = unserialize(stripslashes($topic['curator_id']));
if ($list['id'])
{
$topic['curator']='Куратор темы: <a href="./index.php?showuser='.$list['id'].'">'.$list['members_display_name']."</a>";
}
//curator
----------------------------------------------------------------------
НАЙТИ
----------------------------------------------------------------------
if ($this->pinned_print == 1)
		{
			//-----------------------------------------
			// Nope, so..
			//-----------------------------------------

			$p_end = $this->ipsclass->compiled_templates['skin_forum']->render_pinned_end();

			$this->pinned_print = 0;
		}
----------------------------------------------------------------------
ДОБАВИТЬ НИЖЕ
----------------------------------------------------------------------
//curator
$list = unserialize(stripslashes($topic['curator_id']));
if ($list['id'])
{
$topic['curator']='Куратор темы: <a href="./index.php?showuser='.$list['id'].'">'.$list['members_display_name']."</a>";
}
//curator
======================================================================
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Блок вывода окончен. Делаем дальше.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


######################################################################
Выполнить SQL запрос в базе данных вашего форума. Не забывайте сменить
префикс (ibf_) таблиц на свой если вы не используете стандартный.
======================================================================
ALTER TABLE `ibf_moderators` ADD `add_curator` TINYINT( 1 ) DEFAULT 0;
----------------------------------------------------------------------
ЕСЛИ ВЫ ХОТИТЕ ЧТОБЫ ВСЕ ТЕКУЩИЕ МОДЕРАТОРЫ МОГЛИ УСТАНАВЛИВАТЬ 
УСТНЫЕ ПРЕДУПРЕЖДЕНИЯ ВЫПОЛНИТЕ СЛЕДУЮЩИЙ ЗАПРОС
----------------------------------------------------------------------
UPDATE `ibf_moderators` SET `add_curator` = '1'
======================================================================

######################################################################
acp > tools&settings > Cache Control > Moderators > Update cache

Может навигацию не правильно написал, вообщем обновите кэш модераторов.
Без этого работать не будет.
######################################################################

######################################################################
./sources/action_admin/moderator.php
======================================================================
НАЙТИ ( ЭТА СТРОКА ПОВТОРЯЕТСЯ ДВА РАЗА )
----------------------------------------------------------------------
'allow_warn'   => intval($this->ipsclass->input['allow_warn']),
----------------------------------------------------------------------
НИЖЕ, ДОБАВИТЬ (ПОСЛЕ КАЖДОГО ПОВТОРЕНИЯ)
----------------------------------------------------------------------
// curator
'add_curator'	=> intval($this->ipsclass->input['add_curator']),
// curator
----------------------------------------------------------------------
НАЙТИ
----------------------------------------------------------------------
$this->ipsclass->adskin->form_yes_no("allow_warn", $mod['allow_warn'] )
									 )	  );	
----------------------------------------------------------------------
НИЖЕ, ДОБАВИТЬ
----------------------------------------------------------------------
//curator
	$this->ipsclass->html .= $this->ipsclass->adskin->add_td_row( array( "<b>Добавлять кураторов тем?</b><div 

class='desctext'>Куратор может удалять/редактировать сообщения в курируемой им теме.</div>" ,
											  $this->ipsclass->adskin->form_yes_no("add_curator", $mod['add_curator'] )
									 )	  );
//curator
======================================================================
Возможность добавлять куратора для модераторов ставится
при добавлении/редактировании модератора
======================================================================



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

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

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Выбираем там группу фрагментов Forum Index в ней выбираем фрагмент render_forum_row
======================================================================
Ищем в фрагменте 
----------------------------------------------------------------------
</span> {$data['PAGES']}
 <div class="desc"><span onclick='return span_desc_to_input("{$data['tid']}");' 

id='tid-desc-{$data['tid']}'>{$data['description']}</span>
----------------------------------------------------------------------
Вставляем после этого 
----------------------------------------------------------------------
<span class="forumdesc"><if="$data['curator']"><i>{$data['curator']}</i></if></span>
======================================================================
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Блок вывода окончен. Делаем дальше.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

вывод уведомления о том, что в теме есть куратор.	
Для его работы нужно внести правку в файл forums.php
(в этом же мануале выше по тексту)	

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Выбираем там группу фрагментов Forum Index в ней выбираем фрагмент render_forum_row
======================================================================
Ищем в фрагменте 
----------------------------------------------------------------------
</span> {$data['PAGES']}
 <div class="desc"><span onclick='return span_desc_to_input("{$data['tid']}");' 

id='tid-desc-{$data['tid']}'>{$data['description']}</span>
----------------------------------------------------------------------
Вставляем после этого 
----------------------------------------------------------------------
<span class="forumdesc"><if="$data['curator']"><i>В теме есть куратор</i></if></span>
======================================================================
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

вывод уведомления окончен. делаем дальше.

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@


######################################################################
Заходим в админку 
ACP Home > Skin Manager Home > Edit Template HTML
######################################################################
Заходим в админцентр
ACP Home > Look & feel > Edit Template HTML (В меню стиля)
======================================================================
Нажимаем Add Template Bit (Добавить фрагмент)
----------------------------------------------------------------------
New Template Bit Name (Название фрагмента):
----------------------------------------------------------------------
topic_curator_splash
----------------------------------------------------------------------
New Template Bit Incoming Data Variables (Входящие переменные):
----------------------------------------------------------------------
$forum="", $topic="", $auth_key="", $list_user="", $update=""
----------------------------------------------------------------------
Template group (Группа фрагмента):
----------------------------------------------------------------------
skin_mod
----------------------------------------------------------------------
Тело фрагмента
----------------------------------------------------------------------
</script><script language='javascript' type="text/javascript">
<!--
function find_users()
{
url = "index.php?act=legends&CODE=finduser_one&s=&entry=textarea&name=topic_curator&sep=none";
window.open(url,'FindUsers','width=400,height=250,resizable=yes,scrollbars=yes'); 
}
//-->
</script>
<div class='borderwrap'>
<div class='maintitle'><table><tr><td width="99%">Добавить куратора для темы {$topic['title']}<td width="1%"><a 

href="java script:self.close();"><b>[X]</b></a><td></td></tr></table></div>
<div class='row2'><center>{$update}</center></div>
<div class='tablepad'>Впишите точное имя пользователя или воспользуйтесь поиском</div>
<form action='{$this->ipsclass->baseurl}' method='POST' name='REPLIER' >
<input type='hidden' name='s' value='{$this->ipsclass->session_id}'>
<input type='hidden' name='act' value='mod'>
<input type='hidden' name='CODE' value='topiccurator'>
<input type='hidden' name='f' value='{$forum['id']}'>
<input type='hidden' name='t' value='{$topic['tid']}'>
<input type='hidden' name='auth_key' value='$auth_key' />
<input type='hidden' name='check' value='1'>
<table width="100%" cellspacing="0">
<tr>
<td class='pformright' align='center'>
<input type="text" name='topic_curator' size='30' value={$list_user}><br />
<input type='button' class='forminput' name='findusers' onclick='find_users()' 

value='{$this->ipsclass->lang['find_user_names']}' />
</td></tr></table>
<div class='formsubtitle' align='center'><input type='submit' value='Сохранить' class='button' /></div>
</form>
</div>
======================================================================
Заходим в админцентр
ACP Home > Look & feel > Edit Template HTML (В меню стиля)
Выбираем "Topic view" в нем "mod_panel_wrapper"
======================================================================
НАЙТИ
----------------------------------------------------------------------
<form name="modform" method="post" action="{$this->ipsclass->base_url}" onsubmit="return checkdelete();">
----------------------------------------------------------------------
ВЫШЕ ДОБАВИТЬ
----------------------------------------------------------------------
<form method="POST" name="modformCurator" action="{$this->ipsclass->base_url}">
<input type="hidden" name="act" value="mod" />
<input type="hidden" name="CODE" value="topiccurator" />
<input type="hidden" name="f" value="{$data['TOPIC']['forum_id']}" />
<input type="hidden" name="t" value="{$data['TOPIC']['tid']}" />
<input type="hidden" name="auth_key" value="{$auth_key}" />
<input type="submit" value="Управление Куратором" class="button" target="_blank" /></form>
======================================================================

СОХРАНИТЬ
######################################################################

А теперь листаем страничку в начало поста. и поиском по странице ищем: 
"java script" 
без кавычек.
там де нашли, проверяем у себя в скине и файлах... пробел убираем;)

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

  • 2 недели спустя...
У меня все вроде заработало. Но окно назначения куратора открывается в текущем окне. Т.е. нужно возвращаться чтобы вернуться в форум.
Ссылка на комментарий
Поделиться на других сайтах

  • 3 недели спустя...

решил эту проблему, что бы заново не входить на форум, просто заменил этот код

href="java script:self.close();"><b>[X]</b></a><td></td></tr></table></div>

на этот где "forum" если у вас форум расположен типа того "www.мой_сай.ru/forum"

<a href="/forum">На форум</a><td></td></tr></table></div>

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

  • 3 месяца спустя...

Как же поправить исходники, чтобы всё-таки возле названия темы отображался куратор...?

Никак не могу победить... ИПБ 2.1.7

 

=== Этот пост можно (и нужно) удалить !!! ===

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

В общем, сам спросил - сам ответил...!

Путём исследований и методом проб и ошибок, добился следующего:

а) использовал часть кода от kazus`а + немного модифицировал неск. строк....

было: $curator='Куратор темы: <a href="./index.php?showuser='.$list['id'].'">'.$list['members_display_name']."</a>";

Под названием топика выводило просто Куратор темы:

стало: $curator='<a href="./index.php?showuser='.$list['id'].'"><strong>Куратор темы</strong></a>';

Теперь жирным шрифтом выводит всё тот же Куратор темы, только со ссылкой на существующего куратора конкретной темы...

Осталось только "добить" чтобы выводился ник куратора.... Чего-то $list['members_display_name'] не работает...

Копаю дальше...

 

• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •

 

Ну вот я его (код) и пАбидил..!!!

В итоге, для корректного отображения ника куратора, строчка кода приобрела вид:

$curator='Куратор темы: <a href="./index.php?showuser='.$list['id'].'"><strong>'.$list['name'].'</strong></a>';

Всё оказалось просто...! Дабы не быть голословным, прикрепляю картинкО..

post-43382-1216403625_thumb.png

В принципе, более_или_не_менее рабочий мод готов → 2.1.7_curator_my.zip

Спасибо за внимание..!!

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

вот версия для 23х.

Не работает в этой версии:

- вывод ника куратора под названием темы в списке тем; (вместо этого сделано уведомление, что в теме есть куратор)

- вывод группы участника в данной теме, если он куратор данной темы.

а "испарвление" ошибок и "не работает" проводилось? не подскажет никто?

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

  • 3 недели спустя...

Кому интересно.

Для IPB 2.3.x:

1. Чтобы выводить группу и надпись "Куратор темы" делаем следующее:

ipsclass.php:

Находим:

$member['member_group']	= $this->compiled_templates[ $skin_file ]->member_group( $group_name );

Добавляем ниже:

$curator = unserialize(stripslashes($this->topic['curator_id']));
$member['member_group']   .= ($member['id']==$curator['id']) ? "<br/><strong>Куратор темы</strong>" : "";

2. Чтобы выводить ник куратора в списке тем, под ее описанием, делаем следующее:

forums.php:

Находим:

if ($topic['pinned'] == 1)

Добавляем выше:

	$list = unserialize(stripslashes($topic['curator_id']));
if ($list['id'])
{
	  $topic['curator'] = "Куратор темы: <a href=\"./index.php?showuser=".$list['id']."\">".$list['name']."</a>";
}

В шаблонах изменения те же, что были описаны страницу назад.

 

Кому надо, поймет. Удачи.

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

  • 11 месяцев спустя...

Поставила этот мод на 2.3.4 . Перестало работать редактирование сообщений. Как быстрое, так и полное. При попыьке быстрого редактирования - никакой реакции. При попытке полного - сообщение:

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

Причина:

 

Некоторые требуемые файлы отсутствуют. Если вы хотели просмотреть тему, возможно эта тема перемещена или удалена. Вернитесь назад и попробуйте снова."

 

В чем может быть ошибка?

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

Где-то в post.php или cplass_edit_post.php скорее всего. Проверяйте проделанные действия nxfntkmytq/
Ссылка на комментарий
Поделиться на других сайтах

Где-то в post.php или cplass_edit_post.php скорее всего. Проверяйте проделанные действия nxfntkmytq/

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

 

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

 

Спасибо за ответ.

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

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

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

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

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

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

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

Зарузка...

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

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

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