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

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


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

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

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

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

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

Мде , его видимо не будет никогда :D

На 2.1.7 смотрю траблы

 

Господа, скажите, данный мод доделан для версии 2.0????

Если да, то дайте ссылку откуда можно скачать!!!

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

Мде , его видимо не будет никогда :D

На 2.1.7 смотрю траблы

 

Господа, скажите, данный мод доделан для версии 2.0????

Если да, то дайте ссылку откуда можно скачать!!!

 

Не доделан! По-моему даже за деньги тут особенно никто его доделывать не собирается. Видимо придется обращаться выше по иерархии Ibresource или к своим программерам.

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

replicant

респект тебе что стараешся!

надеюсь что работа всё таки будет завершена

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

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

да уж, более года, я успешно прикрутил этот мод к форуму 2.1.4

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

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

доработал версию 2.1.4 немного

исправлено что модераторы не могли назначать кураторов

кураторы отображаются в списке топиков, под его описанием

надпись куратор темы под аватаром внутри топика

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

а как долго это будет? :D примерно хотябы

 

неделю с сегодняшнего дня я думаю им хватит, чтобы на досуге разобраться

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

Надеюсь ничего не забыл, проверить нет возможности :D

+---------------------------------------------------------------------
|   Invision Power Board v2.1.x
|  =================================================================
|   [url="http://www.invisionpower.com"]<a href="http://www.invisionpower.com" target="_blank">http://www.invisionpower.com[/url]</a>
|   [url="http://www.ibresource.ru"]<a href="http://www.ibresource.ru" target="_blank">http://www.ibresource.ru[/url]</a>
|  =================================================================
+---------------------------------------------------------------------
|
|   > Кураторы
|   > Делалась многими людьми. Последняя модификация сделана мной
|   > by kazus
|
|   > Version: 1.0a
|   > Date: 1.02.2007
|   > Last Update: 1.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
|
+---------------------------------------------------------------------
######################################################################
Execute the following SQL query on the database
======================================================================
ALTER TABLE `ibf_topics` ADD `curator_id` VARCHAR( 255 ) DEFAULT '' ; 
======================================================================
######################################################################
./sources/action_public/topics.php
======================================================================
FIND
----------------------------------------------------------------------
       /*-------------------------------------------------------------------------*/
       // Render the delete button
       /*-------------------------------------------------------------------------*/

       function delete_button($post_id, $poster)
       {
               if ($this->ipsclass->member['id'] == "" or $this->ipsclass->member['id'] == 0)
               {
                       return "";
               }

               $button = $this->ipsclass->compiled_templates['skin_topic']->button_delete($this->forum['id'],$this->topic['tid'],$post_id,$this->md5_check );

               if ($this->ipsclass->member['g_is_supmod']) return $button;
               if ($this->moderator['delete_post']) return $button;
----------------------------------------------------------------------
BELOW, ADD
----------------------------------------------------------------------
               //curator
               if ($this->topic['curator_id'])
                 {
                   $list = unserialize(stripslashes($this->topic['curator_id']));

                  if ($this->ipsclass->member['id']==$list['id']) return $button;
                 }
               //curator
----------------------------------------------------------------------
FIND
----------------------------------------------------------------------
       /*-------------------------------------------------------------------------*/
       // Render the edit button
       /*-------------------------------------------------------------------------*/

       function edit_button($post_id, $poster, $post_date)
       {
               if ($this->ipsclass->member['id'] == "" or $this->ipsclass->member['id'] == 0)
               {
                       return "";
               }

               $button = $this->ipsclass->compiled_templates['skin_topic']->button_edit( $this->forum['id'],$this->topic['tid'],$post_id );

               if ($this->ipsclass->member['g_is_supmod']) return $button;

               if ($this->moderator['edit_post']) return $button;
----------------------------------------------------------------------
BELOW, ADD
----------------------------------------------------------------------
               //curator
               if ($this->topic['curator_id'])
                 {
                   $list = unserialize(stripslashes($this->topic['curator_id']));
                  if ($this->ipsclass->member['id']==$list['id']) return $button;
                 }
               //curator
######################################################################
./sources/classes/post/class_post_edit.php
======================================================================
FIND
----------------------------------------------------------------------
               //-----------------------------------------
               // Load the old post
               //-----------------------------------------

	$this->ipsclass->DB->simple_construct( array( 'select' => '*', 'from' => 'posts', 'where' => "pid=".intval($this->ipsclass->input['p']) ) );
               $this->ipsclass->DB->simple_exec();
----------------------------------------------------------------------
REPLACE WITH
----------------------------------------------------------------------
               //-----------------------------------------
               // Load the old post
               //-----------------------------------------

        //curator
        $this->ipsclass->DB->simple_construct(array( 'select' => 'p.*, t.curator_id', 'from' => 'posts p LEFT JOIN '.SQL_PREFIX.'topics t ON (t.tid=p.topic_id)', 'where' => "pid=".intval($this->ipsclass->input['p'])  ) );
        //curator
               $this->ipsclass->DB->simple_exec();
----------------------------------------------------------------------
FIND
----------------------------------------------------------------------
               //-----------------------------------------
               // Lets do some tests to make sure that we are
               // allowed to edit this topic
               //-----------------------------------------

               $can_edit = 0;

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

               if ($this->moderator['edit_post'])
               {
                       $can_edit = 1;
               }
----------------------------------------------------------------------
BELOW, ADD
----------------------------------------------------------------------
               //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/moderate.php
======================================================================
FIND
----------------------------------------------------------------------
               //-----------------------------------------
               // Edit member
               //-----------------------------------------
               case 'editmember':
                       $this->edit_member();
                       break;
----------------------------------------------------------------------
BELOW, ADD
----------------------------------------------------------------------
               //curator
               case 'topiccurator':
                       $this->topic_curator();
                       break;
               //curator
----------------------------------------------------------------------
FIND
----------------------------------------------------------------------
   function auto_run()
   {
----------------------------------------------------------------------
BELOW, ADD
----------------------------------------------------------------------
       //curator
       $post_array      = array( '04', '02', '20', '22', 'resync', 'prune_start', 'prune_finish', 'prune_move', 'editmember', 'topiccurator' );
       //curator
----------------------------------------------------------------------
FIND
----------------------------------------------------------------------
       /*-------------------------------------------------------------------------*/
       // Delete post
       /*-------------------------------------------------------------------------*/

       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']}" ) );    
----------------------------------------------------------------------
REPLACE WITH
----------------------------------------------------------------------
       /*-------------------------------------------------------------------------*/
       // Delete post
       /*-------------------------------------------------------------------------*/

       function delete_post()
       {
               // Get this post id.

               $this->ipsclass->input['p'] = intval($this->ipsclass->input['p']);
               //curator
               $this->ipsclass->DB->simple_construct( array( 'select' => 'p.pid, p.author_id, p.post_date, p.new_topic, t.curator_id', 'from' => 'posts p LEFT JOIN '.SQL_PREFIX.'topics t ON (t.tid=p.topic_id)', 'where' => "p.topic_id={$this->topic['tid']} and p.pid={$this->ipsclass->input['p']}" ) );
               //curator
----------------------------------------------------------------------
FIND
----------------------------------------------------------------------
               else if ($this->moderator['delete_post'] == 1)
               {
                       $passed = 1;
               }
               else if ( ($this->ipsclass->member['g_delete_own_posts'] == 1) and ( $this->ipsclass->member['id'] == $post['author_id'] ) )
               {
                       $passed = 1;
               }
----------------------------------------------------------------------
BELOW, ADD
----------------------------------------------------------------------
               //curator
               else if ($post['curator_id'])
               {
                       $list = unserialize(stripslashes($post['curator_id']));
                       if ($this->ipsclass->member['id']==$list['id']) $passed = 1;
               }
               //curator
       }
----------------------------------------------------------------------
FIND
----------------------------------------------------------------------
       // If we have any HTML to print, do so...

       $this->ipsclass->print->add_output( $this->output );
       $this->ipsclass->print->do_output( array( 'TITLE' => $this->page_title, 'JS' => 0, NAV => $this->nav ) );
       }
----------------------------------------------------------------------
BELOW, ADD
----------------------------------------------------------------------
       //curator
       function topic_curator()
       {
               global $DB, $std, $forums, $ibforums, $print;
               //-----------------------------------------
               // Check Permissions
               //-----------------------------------------

               if ($this->ipsclass->member['g_is_supmod'])
                 {
                   $pass = 1;
                 }
                 else if ($this->ipsclass->member['is_mod'] == 1)
                 {
                   $pass = 1;
                 }
               else
                 {
                   $pass = 0;
                 }
               if ($pass == 0)
                 {
                   $this->moderate_error();
                   return;
                 }

       //-----------------------------------------------
       // 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, members_display_name',
                                               'from'   => 'members',
                                          'where'  => "LOWER(members_display_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['members_display_name']}</b>";
                       }
                       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['members_display_name'], $update );
               $this->ipsclass->print->pop_up_window( "", $this->output );
       }
       //curator
######################################################################
./sources/action_public/forums.php
======================================================================
FIND
----------------------------------------------------------------------
               if ($topic['pinned'] == 1)
               {
                       $topic['prefix'] = $this->ipsclass->vars['pre_pinned'];

                       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;
                       }
----------------------------------------------------------------------
BELOW, ADD
----------------------------------------------------------------------
//curator by kazus
                       $list = unserialize(stripslashes($topic['curator_id']));
                       if ($list['id'])
                       {
                               $curator='Куратор темы: <a href="./index.php?showuser='.$list['id'].'">'.$list['members_display_name']."</a>";
                       }
		return $p_start . $this->ipsclass->compiled_templates['skin_forum']->render_forum_row( $topic, $class1, $class2, $classposts, 1 ,$curator);
//curator by kazus
----------------------------------------------------------------------
FIND
----------------------------------------------------------------------
                       if ($this->pinned_print == 1)
                       {
                               //-----------------------------------------
                               // Nope, so..
                               //-----------------------------------------

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

                               $this->pinned_print = 0;
                       }
----------------------------------------------------------------------
BELOW, ADD
----------------------------------------------------------------------
//curator by kazus
                       $list = unserialize(stripslashes($topic['curator_id']));
                       if ($list['id'])
                       {
                               $curator='Куратор темы: <a href="./index.php?showuser='.$list['id'].'">'.$list['members_display_name']."</a>";
                       }
                       return $p_end . $this->ipsclass->compiled_templates['skin_forum']->render_forum_row( $topic, $class1, $class2, $classposts, 1 ,$curator);
//curator by kazus 
######################################################################
./sources/lib/func_topic_linear.php
======================================================================
FIND
----------------------------------------------------------------------
                       //-----------------------------------------
                       // Print post row
                       //-----------------------------------------
                       $this->output .= $this->ipsclass->compiled_templates['skin_topic']->RenderRow( $row, $poster);
----------------------------------------------------------------------
REPLACE
----------------------------------------------------------------------
//curator by kazus
                       $list = unserialize(stripslashes($this->topic['curator_id']));
                       if (( $list['id'] == $poster['id']) && ($list['id']!= 0))
                       {
                               $curator="<h4>Куратор темы</h4>";
                       }
                       else
                       {
                               $curator="";
                       }
                       $this->output .= $this->ipsclass->compiled_templates['skin_topic']->RenderRow( $row, $poster , $curator);
//curator by kazus
######################################################################
Перейдем к шаблонам. Добавляем кнопку "Управление Куратором"
######################################################################
######################################################################
ACP Home / Skin Manager Home / Edit Template HTML / Topic View/ TableFooter
======================================================================
FIND
----------------------------------------------------------------------
<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();">
----------------------------------------------------------------------
ABOVE, ADD
----------------------------------------------------------------------
<form method="POST" name="modformCurator" action="java script:PopUp ('{ipb.script_url}act=mod&CODE=topiccurator&t={$data[topic]['tid']}&f={$data['FORUM']['id']}&auth_key={$auth_key}',  'topiccurator', 450,200)"> <input type="submit" value="Управление Куратором" class="button" /></form>
######################################################################
Создаем новый шаблон 'topic_curator_splash'
ACP Home / Skin Manager Home / Edit Template HTML / skin_mod/ topic_curator_splash
======================================================================
Входные данные
New Template Bit Incoming Data Variables
$forum="", $topic="", $auth_key="", $list_user="", $update=""
======================================================================
</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'>Добавить куратора для  {$topic['title']}</div>
<div class='pformstrip'>{$update}</div>
<div class='tablepad'>Впишите точное имя пользователя или воспользуйтесь поиском.<br>
Пустое поле удаляет куратора.</div>
<form action='{ipb.script_url}' method='POST' name='REPLIER' >
<input type='hidden' name='s' value='{ipb.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'>

<div class='pformstrip'>{ipb.lang['excl_acc_title2']}</div>

<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='{ipb.lang['find_user_names']}' />
</td></tr></table>
<div class='formsubtitle' align='center'><input type='submit' value='{ipb.lang['cp_prune_sub1']}' class='button' /></div>
</form>
<form method="POST" name="modformCurator" action="java script:history.go(-1);"> <input type="submit" value="Вернуться Назад" class="button" /></form>
</div>
######################################################################
ACP Home / Skin Manager Home / Edit Template HTML / skin_forum/ render_forum_row
======================================================================
Добавляем новые входные данные
Add new incoming Data Variables
,$curator=""
======================================================================
FIND
----------------------------------------------------------------------
<div class="desc"><span onclick='return span_desc_to_input("{$data['tid']}");' id='tid-desc-{$data['tid']}'>{$data['description']}</span></div>
----------------------------------------------------------------------
BELOW, ADD
----------------------------------------------------------------------
<i>{$curator}</i>
######################################################################
ACP Home / Skin Manager Home / Edit Template HTML / skin_topic/ RenderRow
======================================================================
Добавляем новые входные данные
Add new incoming Data Variables
,$curator=""
======================================================================
FIND
----------------------------------------------------------------------
       		{$author['avatar']}<br /><br />
----------------------------------------------------------------------
BELOW, ADD
----------------------------------------------------------------------
       		{$curator}
######################################################################

отличия от модификации жезла в следующем:

1. Исправлена ошибка прав, при которой назначить куратора мог только супер-модератор

2. Добавлено отображение имени куратора под описанием топика

3. Добавлена подпись под аватаром куратора в курируемой им теме

4. Небольшие косметические изменения

 

p.s. это мое первое программирование на php.. претензии не принимаются ;)

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

Не работает :D При нажатии на кнопку "Управление куратором" вылазит ошибка "Некорректный запрос. Вернитесь назад и попробуйте снова"
Ссылка на комментарий
Поделиться на других сайтах

тыыкс гляну, но после праздников

 

я тут на вскидку посмотрел, в месте где добавляется кнопка, видимо сам форум разъединяет слово javascript, надо просто удалить там пробел

вот в этом куске кода

######################################################################

ACP Home / Skin Manager Home / Edit Template HTML / Topic View/ TableFooter

======================================================================

FIND

----------------------------------------------------------------------

<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();">

----------------------------------------------------------------------

ABOVE, ADD

----------------------------------------------------------------------

<form method="POST" name="modformCurator" action="java script:PopUp ('{ipb.script_url}act=mod&CODE=topiccurator&t={$data['tid']}&f={$data['FORUM']['id']}&auth_key={$auth_key}', 'topiccurator', 450,200)"> <input type="submit" value="Управление Куратором" class="button" /></form>

 

 

мде.. опять пробел вставил :D

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

тыыкс гляну, но после праздников

 

я тут на вскидку посмотрел, в месте где добавляется кнопка, видимо сам форум разъединяет слово javascript, надо просто удалить там пробел

вот в этом куске кода

######################################################################

ACP Home / Skin Manager Home / Edit Template HTML / Topic View/ TableFooter

======================================================================

FIND

----------------------------------------------------------------------

<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();">

----------------------------------------------------------------------

ABOVE, ADD

----------------------------------------------------------------------

<form method="POST" name="modformCurator" action="java script:PopUp ('{ipb.script_url}act=mod&CODE=topiccurator&t={$data['tid']}&f={$data['FORUM']['id']}&auth_key={$auth_key}', 'topiccurator', 450,200)"> <input type="submit" value="Управление Куратором" class="button" /></form>

 

 

мде.. опять пробел вставил :D

 

 

не понял ваш пост. объясните плиз..

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

На этом форуме посты обрабатываются таким образом, что строка "javasсript" преобразуется в "java script".

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

в некоторых местах необходимо убрать этот лишний пробел.

 

P.S. Только не спрашиваете как у меня это получилось)

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

Так у кого-нибудь получилось установить этот мод?

У меня при нажатии на кнопку управления кураторами выходит "Некорректный запрос. Вернитесь назад и попробуйте снова"

К тому же в коде есть ошибочка. В этой его части

 //curator
			else if ($post['curator_id'])
			{
					$list = unserialize(stripslashes($post['curator_id']));
					if ($this->ipsclass->member['id']==$list['id']) $passed = 1;
			}
			//curator
	}

Последняя скобка лишняя, как мне показалось

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

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

IPB WARNING [2] in_array() [function.in-array]: Wrong datatype for second argument (Line: 91 of /sources/action_public/moderate.php)

 

 

Вот такая вот проблемка, в области добавления куратора ссверху... +куратор не доавляется в той строчке запись //-----------------------------------------

// Compile the language file

//-----------------------------------------

 

$this->ipsclass->load_language('lang_mod');

$this->ipsclass->load_template('skin_mod');

 

if ( ! in_array( $this->ipsclass->input['CODE'], $not_forum_array ) );

{

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

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

ссылка на мод для версии 2.2.х

 

_http://www.ibr portal.net/board/index.php?showtopic=513&view=findpost&p=8001

 

Написано в таком варианте потому что прямые ссылки на ибрпортал парсятся. К администрации, странно, зачем вам это? Ладно, это ваше дело.

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

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

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

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

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

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

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

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

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

Зарузка...

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

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

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