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

Дать модератору возможность присваивать теме


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

Здравствуйте.

У меня следующая проблемка (точнее не проблема, а просьба помочь :D )

Мне нужно сделать возможным задавать теме определенный параметр, из меню простого модератора.

Тоесть модератор может ведь "сделать тему важной и прочее", а мне ещё нужно вставить одну функцию (будет селект, option которого нужно будет занести в новое поле (например Art_id)в таблице ibf_topics).

Тоесть модератор зайдя в тему может присвоить ей определенное новое значение. Подскажи пожалуйста - как это лучше сделать, в каких файлах смотреть и прочее.

Ну для начала я создал новое поле в таблице "ibf_topics", назвал его 'art_id'

а дальше как? Точнее не как а "где и как"?

Оченть прошу - помогите, о великие Гуру IBF ;)

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

Thorn

mod_cp.php + Moderate.php + modfunctions.php - для реализации действий модератора

skin_mod.php, skin_modcp.php - туда вписывай хтмл-код своего option'a

Конкретно ставь задачу... :D

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

theIggs спасибо :D Конкретная задача:

 

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

Код селекта (сам код сделан под php-nuke, как его подстроить под форум - незнаю, так как я в нюке разбираюсь, а в форуме все функции для меня незнакомые, даже незнаю вообщем):

 

 echo "<select name=\"game_id\">
        .<option value=\"\">Не относиться к играм</option>";
           $sql = "select game_id, title from ".$prefix."_games where active=1";
           $result = $db->sql_query($sql);
           while ($rowgi = $db->sql_fetchrow($result)) {
           $gametitle = $rowgi[title];
           $game_id = $rowgi[game_id];
           echo "<option value=\"$game_id\">$gametitle</option>";
           }
        echo "</select><br><br>";

 

Поможете? ;)

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

Помогаем. :)

 

Запасаемся инструментами модификатора. Это установленная локально копия форума + Windows Commander / Total Commander.

Затем смотрим на нашу задачу. Мы хотим дать модератору выпадающую менюшку. Думаем, нет ли чего похожего под рукой, чтоб не кодить два раза — и ура! — находим модераторскую панельку внизу, ту, где Опции модератора: Переместить тему, Закрыть тему и т.д.

Нам нужно по сути такую же, только делать она должна кое-что другое. Но что-то мы в этой панельке позаимствуем.

 

Итак, открываем наш WC / TC и применяем знаменитый метод "текст -> HTML-шаблон -> PHP-генератор".

Давим Alt+F7 и ищем в папке форума все файлы, содержащие слова "Опции модератора", "Переместить тему", "Закрыть тему".

Нашлось: lang_mod, lang_topic, lang_modcp.

 

Все файлы форума делятся по разделам (например, Boards.php, skin_boards.php и lang_boards.php — главная страница форума, Topics.php, skin_topic.php и lang_topic.php — отображение конкретной темы и т.д.). У каждого раздела форума есть три файла:

PHP-генератор (в папке sources),

HTML-шаблоны (в папке Skin/s*),

и тексты на разных языках (в папке lang/*).

Посмотрев на названия файлов, можно в большинстве случаев сказать, за что они отвечают.

Мы нашли файлы: lang_mod, lang_topic, lang_modcp.

Выпадающий список с опциями модератора присутствует только в темах — значит, он описан в файлах Topics.php, skin_topic.php, lang_topic.php.

Файлы *modcp* отвечают за панель модератора (это которая в верху страницы ссылочка), файлы *mod* — за реализацию конкретных модераторских действий (т.е. когда уже модер тут в выпадающем списочке выбрал, что с темой сотворить, эти данные передаются в файлы Moderate.php, skin_mod.php, lang_mod.php).

 

С файлами мы разобрались, теперь посмотрим, что нам дальше делать с найденными результатами. Очевидно, шаблончик исходный содержит в себе текст "Опции модератора". Такой текст мы нашли в lang_topic.php. Глянем на эту строчку:

moderation_ops    	=>	"Опции модератора",

Очевидно, раз больше текст "Опции модератора" нигде не нашёлся, в других модулях используется подстановка

moderation_ops

Следовательно, сделав ещё раз поиск по всем файлам форума, мы и найдём, где формируется сам HTML-шаблон для выпадающего меню!

Итак, поиск по слову "moderation_ops"; результат: lang_topic.php (логично :)), а также skin_topic.php!

 

Найдём, где же хранится сам этот шаблончик. Открываем skin_topic.php и ищем по "moderation_ops". Вот:

function Mod_Panel($data, $fid, $tid, $key="") {
global $ibforums;
return <<<EOF
  <div align='left' style='float:left;width:auto'>
<form method='POST' style='display:inline' name='modform' action='{$ibforums->base_url}'>
<input type='hidden' name='t' value='$tid' />
<input type='hidden' name='f' value='$fid' />
<input type='hidden' name='st' value='{$ibforums->input['st']}' />
<input type='hidden' name='auth_key' value='$key' />
<input type='hidden' name='act' value='Mod' />
<select name='CODE' class='forminput' style="font-weight:bold;color:red">
<option value='-1' style='color:black'>{$ibforums->lang['moderation_ops']}</option>
$data
</select> <input type='submit' value='{$ibforums->lang['jmp_go']}' class='forminput' /></form>
  </div>
        
EOF;
}

Обрати внимание — весь шаблон представляет собой HTML-код, подобный тому, какой ты хочешь. Нужно лишь некоторые переменные поменять, а основное останется так же.

 

Итак, разбираем HTML-шаблончик и клепаем из него шаблон для тебя:

<form method='POST' style='display:inline' name='modform' action='{$ibforums->base_url}'>

Открывается форма. Тебе нужно будет поменять название (name), чтоб не было двух одинаковых форм на странице. base_url указывает, что данные методом POST будут передаваться скрипту index.php. Ну, это и так понятно. :)

 <input type='hidden' name='t' value='$tid' />
<input type='hidden' name='f' value='$fid' />
<input type='hidden' name='st' value='{$ibforums->input['st']}' />

t — номер темы, f — номер форума, а st — это текущая страница, которая в теме была открыта. Нужно тебе это в твоей обработке? Сам решишь.

<input type='hidden' name='auth_key' value='$key' />

Это придётся оставить. Служебная переменная, нужная для безопасности.

<input type='hidden' name='act' value='Mod' />

Какому именно модулю передать переменные твои для обработки. Список act-ов хранится в index.php, вот он:

$choice = array(
...
"Mod"      => "Moderate",
...
);

Мораль — разбором данных будет заниматься скрипт Moderate.php. Наверное, мы с тобой просто в этот скрипт нашу обработку и допишем. ;)

<select name='CODE' class='forminput' style="font-weight:bold;color:red">

SELECT у тебя уже есть, только называется он не CODE, а game_id. Название сам поменяешь. :)

<option value='-1' style='color:black'>{$ibforums->lang['moderation_ops']}</option>

Первая опция в списке. У тебя такая тоже есть, только текст у неё "Не относится к играм".

$data

Чисто по логике — сами строчки в SELECT'e. Видимо, где-то в другом месте формируются. У нас такие тоже будут, ну и, соответственно, скриптик для формирования напишем.

</select> <input type='submit' value='{$ibforums->lang['jmp_go']}' class='forminput' /></form>

SELECT закрылся, формочка тоже закрылась. Кнопка тут нарисовалась. Ты, я думаю, уже понял логику добавления текста на эти кнопки. В принципе, можно {$ibforums->lang['jmp_go']} с кнопки убрать и просто написать там "Добавить ID игры".

 

Итак, из имеющегося шаблона мы путём замены некоторых данных получили готовый шаблон для твоей задачи, только обозвать его надо по-другому как-то

function Game_Id($data, $fid, $tid, $key="") {
global $ibforums;
return <<<EOF
  <div align='left' style='float:left;width:auto'>
<form method='POST' style='display:inline' name='gameform' action='{$ibforums->base_url}'>
<input type='hidden' name='t' value='$tid' />
<input type='hidden' name='f' value='$fid' />
<input type='hidden' name='auth_key' value='$key' />
<input type='hidden' name='act' value='Mod' />
<select name='game_id' class='forminput' style="font-weight:bold;color:red">
<option value='' style='color:black'>Не относится к играм</option>
$data
</select> <input type='submit' value='Записать в базу' class='forminput' /></form>
  </div>
EOF;
}

 

Красота! :D

 

Параметры t и f я в форме оставил. Скрипт обработки должен же знать, в какую тему мы хотим добавить значение game_id...

Теперь нам нужно написать два обработчика: первый выведет модератору на экран нашу новую панельку, а второй примет от модератора данные и запишет их в базу.

 

Итак, №1.

Вывод на экран нашей панельки, наверно, будет протекать примерно так же, как и вывод обычной модераторской панельки (Mod_Panel).

Опять воспользуемся поиском по файлам форума и посмотрим, где же вызывается эта Mod_Panel.

Результаты поиска не удивительны: она в Topics.php. ;)

return $this->html->Mod_Panel($mod_links, $this->forum['id'], $this->topic['tid'], $this->md5_check);

Переменная $data, которая была нами замечена в функции Mod_Panel, берётся как раз отсюда, из переменной $mod_links. Выше для этого самого $mod_links куча разных расчётов...

 

Что надо нам. Забодяжить такой же расчёт для переменной $data (там у нас будут строчки с номерами и названиями игр), ну и вызвать нашу функцию Game_Id()...

Из всей функции формирования модераторской панельки нас интересует вот этот кусок:

 	$mod_links = "";
  
  if (!isset($ibforums->member['id'])) return "";
  
  $skcusgej = 0;
  
  if ($ibforums->member['id'] == $this->topic['starter_id'])
  {
  	$skcusgej = 1;
  }
  
  if ($ibforums->member['g_is_supmod'] == 1)
  {
  	$skcusgej = 1;
  }
  
  if ($this->moderator['mid'] != "")
  {
  	$skcusgej = 1;
  }
  
  if ($skcusgej == 0)
  {
      	return "";
  }

Тут переменная $mod_links инициализируется, а потом идут всякоразные проверки на модератора. Само собой, нам без этих проверок тоже не обойтись.

Итак, что сделаем:

 	$mod_links = "";
  $game_links = "";
  
  if (!isset($ibforums->member['id'])) return "";
  
  $skcusgej = 0;
  $flag = 0;
  
  if ($ibforums->member['id'] == $this->topic['starter_id'])
  {
  	$skcusgej = 1;
  }
  
  if ($ibforums->member['g_is_supmod'] == 1)
  {
  	$skcusgej = 1;
  	$flag = 1;
  }
  
  if ($this->moderator['mid'] != "")
  {
  	$skcusgej = 1;
  	$flag = 1;
  }
  
  if ($flag == 1)
  {
           $sql = "select game_id, title from ".$prefix."_games where active=1";
           $result = $DB->query($sql);
           while ($rowgi = $DB->fetch_row($result)) {
           $gametitle = $rowgi[title];
           $game_id = $rowgi[game_id];
           $game_links .= "<option value=\"$game_id\">$gametitle</option>\n";
           }
           $MYHTML = $this->html->Game_Id($game_links, $this->forum['id'], $this->topic['tid'], $this->md5_check);
  }
  
  if ($skcusgej == 0)
  {
      	return "";
  }

Введём новую переменную $game_links. Туда соберём все ID и названия игр. Код для собирания ты уже выше написал, по сути.

Имеющиеся проверки нам пригодятся. Введём переменную $flag = 0. Если после нужных проверок она останется нулём, значит, пользователь не модератор и панель ему не нужна.

Переменная $flag может стать единицей если:

а) пользователь супермодер или админ

$ibforums->member['g_is_supmod'] == 1

или б) пользователь модер

$this->moderator['mid'] != ""

Если переменная $flag равна 1, значит, формируем строчки для нашего SELECT'a.

Я взял твой код. $prefix нужно заменить на префикс таблицы с играми, $db->sql_query в Invision'e превращается в $DB->query, а $db->sql_fetchrow — в $DB->fetch_row(). Всё больше разницы нет. Единственно что, option'ы не сразу выводим на экран (echo), а накапливаем в переменной $game_links.

Всё, панельку Game_Id можно выводить на экран! К сожалению, два return'a в модуль не вставишь, поэтому я забацаю переменную $MYHTML, в неё соберу результаты, а выведу её позже. Например, вот тут:

 	if ($mod_links != "")
  {
  	return $MYHTML . $this->html->Mod_Panel($mod_links, $this->forum['id'], $this->topic['tid'], $this->md5_check);
  	
  }

 

PS Всё бы было хорошо, но на этом шаге вылетает

Fatal error: Call to a member function on a non-object in z:\home\localhost\www\131\sources\Topics.php on line 1388

Ещё бы, мы объект $DB вовсю юзаем, а в global его не добавили.

Добавляем:

function moderation_panel() {

  global $ibforums, $std, $DB;

Ну, всё так вроде красивенько, в теме уже выпадающий список отображается.

Правда, выпадающие списки в теме все слиплись, поэтому я бы лично ещё помучал HTML+CSS. Но это позже.

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

Ну, а теперь №2. Обработочку бы для этого дела написать, чтобы сохранялось в базу.

Будем полагать, что поле в базе уже создано и называется art_id. :D

HTML-форма, которую мы набросали, будет передавать в модуль Moderate.php значение game_id. Это значение нужно записать в БД.

Открываем Moderate.php.

 

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

    function Moderate()
    {
    
        global $ibforums, $DB, $std, $print, $skin_universal, $HTTP_POST_VARS;

Предлагаю ниже добавить:

        $ibforums->input['game_id'] = intval( $ibforums->input['game_id'] );
        
  if ( $ibforums->input['game_id'] )
  {
  	// Проверка на хацкера, чтоб все значения передал!
         if ($ibforums->input['t'])
         {
         	$ibforums->input['t'] = intval($ibforums->input['t']);
         	if (! $ibforums->input['t'] )
         	{
           $std->Error( array( 'LEVEL' => 1, 'MSG' => 'missing_files') );
         	}
         	else
         	{
           $DB->query("SELECT tid, title, description, posts, state, starter_id, pinned, forum_id, last_post from ibf_topics WHERE tid='".$ibforums->input['t']."'");
           $this->topic = $DB->fetch_row();
           
           if (empty($this->topic['tid']))
           {
           	$std->Error( array( 'LEVEL' => 1, 'MSG' => 'missing_files') );
           }
         	}
         }
  	
         $ibforums->input['f'] = intval($ibforums->input['f']);
         if (! $ibforums->input['f'] )
         {
         	$std->Error( array( 'LEVEL' => 1,'MSG' => 'missing_files') );
         }
  	
         $DB->query("SELECT f.*, c.name as cat_name, c.id as cat_id from ibf_forums f, ibf_categories c WHERE f.id=".$ibforums->input['f']." and c.id=f.category");
         
         $this->forum = $DB->fetch_row();
  	
  	// Надо забацать проверку, модератор ли это вообще!
         if ($ibforums->member['id'])
         {
         	if ($ibforums->member['g_is_supmod'] != 1)
         	{
           $DB->query("SELECT * FROM ibf_moderators WHERE forum_id=".$this->forum['id']." AND (member_id=".$ibforums->member['id']." OR (is_group=1 AND group_id=".$ibforums->member['mgroup']."))");
           $this->moderator = $DB->fetch_row();
           if ( ! $this->moderator['id'] ) return;
         	}
         }
  	
  	// Это модер. Все данные есть. Пишем в базу и валим.
  	$DB->query("UPDATE ibf_topics SET art_id = '{$ibforums->input['game_id']}' WHERE tid = '{$ibforums->input['t']}'");
  	$std->boink_it( $ibforums->base_url."showtopic=".$ibforums->input['t'] );
  }

Проверки в данном случае мы просто выдрали из уже имеющегося текста модуля.

Всё вроде работает. ;)

Если хочешь, можешь $std->boink_it() заменить на $print->redirect_screen(). Как грамотно вызвать redirect_screen(), смотри в этом же модуле, там куча примеров.

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

theIggs

Огромнейшее приогромнейшее спасибо! Сейчас буду всё делать. следую инструкциям! Честное слово не ожидал что мне дадут настолько точный и полный ответ :D Спасибо! ;)

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

theIggs елки-палки :D ене выводиться у меня панелька эта ;)

Может я что-то не так делаю в Topics.php?

 

вот у меня такой код (наверное не правильно сделал?):

 function moderation_panel() {
                global $ibforums, $std, $DB;
                
                $mod_links = "";

                if (!isset($ibforums->member['id'])) return "";

                $skcusgej = 0;

                if ($ibforums->member['id'] == $this->topic['starter_id'])
                {
                        $skcusgej = 1;
                }

                if ($ibforums->member['g_is_supmod'] == 1)
                {
                        $skcusgej = 1;
                }

                if ($this->moderator['mid'] != "")
                {
                        $skcusgej = 1;
                }

                if ($skcusgej == 0)
                {
                                   return "";
                }
                $mod_links = "";
  $game_links = "";

  if (!isset($ibforums->member['id'])) return "";

  $skcusgej = 0;
  $flag = 0;

  if ($ibforums->member['id'] == $this->topic['starter_id'])
  {
   $skcusgej = 1;
  }

  if ($ibforums->member['g_is_supmod'] == 1)
  {
   $skcusgej = 1;
   $flag = 1;
  }

  if ($this->moderator['mid'] != "")
  {
   $skcusgej = 1;
   $flag = 1;
  }

  if ($flag == 1)
  {
           $sql = "select game_id, title from nuke_games where active=1";
           $result = $DB->query($sql);
           while ($rowgi = $DB->fetch_row($result)) {
           $gametitle = $rowgi[title];
           $game_id = $rowgi[game_id];
           $game_links .= "<option value=\"$game_id\">$gametitle</option>\n";
           }
           $MYHTML = $this->html->Game_Id($game_links, $this->forum['id'], $this->topic['tid'], $this->md5_check);
  }

  if ($skcusgej == 0)
  {
       return "";
  }
                
                $actions = array( 'MOVE_TOPIC', 'CLOSE_TOPIC', 'OPEN_TOPIC', 'DELETE_TOPIC', 'EDIT_TOPIC', 'PIN_TOPIC', 'UNPIN_TOPIC', 'UNSUBBIT', 'MERGE_TOPIC', 'SPLIT_TOPIC' );
                
                foreach( $actions as $key )
                {
                        if ($ibforums->member['g_is_supmod'])
                        {
                                $mod_links .= $this->append_link($key);
                        }
                        elseif ($this->moderator['mid'])
                        {
                                if ($key == 'MERGE_TOPIC' or $key == 'SPLIT_TOPIC')
                                {
                                        if ($this->moderator['split_merge'] == 1)
                                        {
                                                $mod_links .= $this->append_link($key);
                                        }
                                }
                                else
                                {
                                        if ($this->moderator[ strtolower($key) ])
                                        {
                                                $mod_links .= $this->append_link($key);
                                        }
                                }
                        }
                        elseif ($key == 'OPEN_TOPIC' or $key == 'CLOSE_TOPIC')
                        {
                                if ($ibforums->member['g_open_close_posts'])
                                {
                                        $mod_links .= $this->append_link($key);
                                }
                        }
                        elseif ($key == 'DELETE_TOPIC')
                        {
                                if ($ibforums->member['g_delete_own_topics'])
                                {
                                        $mod_links .= $this->append_link($key);
                                }
                        }
                }
                
                if ($ibforums->member['g_access_cp'] == 1)
                {
                        $mod_links .= $this->append_link('TOPIC_HISTORY');
                }
                
                if ($mod_links != "")
                {
                        return $this->html->Mod_Panel($mod_links, $this->forum['id'], $this->topic['tid'], $this->md5_check);
                        
                }
        
        }
       

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

Зачем вот это закопировал?

  $mod_links = "";
  $game_links = "";
  
  if (!isset($ibforums->member['id'])) return "";
  
  $skcusgej = 0;
  $flag = 0;
  
  if ($ibforums->member['id'] == $this->topic['starter_id'])
  {
   $skcusgej = 1;
  }
  
  if ($ibforums->member['g_is_supmod'] == 1)
  {
   $skcusgej = 1;
   $flag = 1;
  }
  
  if ($this->moderator['mid'] != "")
  {
   $skcusgej = 1;
   $flag = 1;
  }
  
  if ($flag == 1)
  {
           $sql = "select game_id, title from ".$prefix."_games where active=1";
           $result = $DB->query($sql);
           while ($rowgi = $DB->fetch_row($result)) {
           $gametitle = $rowgi[title];
           $game_id = $rowgi[game_id];
           $game_links .= "<option value=\"$game_id\">$gametitle</option>\n";
           }
           $MYHTML = $this->html->Game_Id($game_links, $this->forum['id'], $this->topic['tid'], $this->md5_check);
  }
  
  if ($skcusgej == 0)
  {
       return "";
  }

:D

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

return $this->html->Mod_Panel($mod_links, $this->forum['id'], $this->topic['tid'], $this->md5_check);

А тут кто $MYHTML допишет? Смотри выше, эта строчка тоже должна измениться.

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

theIggs

Извини, я конкретно ... ошибся :D Всё уже все видно, сейчас приступаю к пункту номер два.

И ещё - раз уже впринципе мы в разделе форума "Модификации в разработке" о можно продолжить то что уже начато?

Для начала хочу сказать что то что я вообще пропросил сделать, и то что реализовал theIggs - помогает связывать определенный материал сайта, с фоумом.

 

А вот что нужно ещё сделать:

Например выбрали мы что топик относиться к игре "Half-Life-2", - как теперь в шапке темы удобнее вывести некоторую информацию п игре (необязательно это будет игра - у кого-то это может быть рецепт, песня, книга и прочее).

Допустим что бы в верху топика, Над или Под кнопочками "Add reply" etc. была бы табличка которая выведет ещё некоторую информацию, взятую из определенной таблицы (например prefix_games).

 

Впринципе это просто нужно сделать челект некоторых полей, и вывести в оформленную табличку. Только незнаю - где именно нужно это выводить, в каких файлах править?

Помогите, пожалуйста ;)

Добавлено в [mergetime]1109875702[/mergetime]

Хм.. при попытке присвоить теме определенное значение, пишет:

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

 

Обнаружена ошибка:

 

Вам запрещено использование этой функции

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

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

theIggs

Подскажи пожалуйста, в чём может быть проблема? (тоесть выдаёт сообщение "Вам запрещено использование этой функции").

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

выдаёт сообщение "Вам запрещено использование этой функции"

Ещё раз открывай Moderate.php и проверяй. Я тебе привёл, после чего там надо втыкать код, а ты его воткнул, видимо, НИЖЕ, после проверок, которые там есть.

Если же по инструкции делать, то вся обработка game_id проходит до всех проверок в модераторском модуле.

Впринципе это просто нужно сделать челект некоторых полей, и вывести в оформленную табличку. Только незнаю - где именно нужно это выводить, в каких файлах править?

С темами ты уже знаком, Topics.php. Тебе это нужно выводить над списком страниц и кнопками, не правда ли. Список страниц формируется функцией build_pagelinks(). Найдёшь в файле такую функцию - выше и вставляй. :D

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

Игс, ты попал :D

Теперь пока сам к нему на фтп не залезешь, ничего не получится

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

Да, Игорь, за изложение материала вечное уважение. Читал и не мог оторваться.

Но вот ученик у тебя, типичный дендромутант, эхх =( Надеюсь что не даром все писалось, кому то поможет.

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

Надеюсь что не даром все писалось, кому то поможет.

Да, а если запихнуть в архив модов - было бы вообще супер! :D

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

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

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

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

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

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

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

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

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

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

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

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