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

Редактирование Title в модераторской панеле


SAT

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

Мод: Редактирование Title в модераторской панеле

Категория: Моды

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

Описание:

Данная модификация добавляет строку редактирования Статуса в панель модератора.

 

//======================

обновлено до версии 2.0

 

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

Скачать

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

С 1.3 работает?

 

неа...

 

точней не проверял, у меня 1.3 нет, на второй версии сто пудов работает а на других не знаю, если найдешь эти строки в 1.3 и если есть таблица ibf_member_extra то возможно запахает :D[1114010161:1114197049]Юзал на 1.2 версии мод при помощи него можно было поставить любой группе права на изменение статуса независимо от количесва постов которые юзер набрал.

 

//***************************

//Делаем запрос SQL

//***************************

 

ALTER TABLE `ibf_groups` ADD `g_title_on_off` TINYINT(1)  DEFAULT '0';

 

 

 

//***************************

//sources/usercp.php

//***************************

 

Находим:

 

	if ( ($ibforums->vars['post_titlechange']) and ($ibforums->member['posts'] > $ibforums->vars['post_titlechange']) )

 

заменить на:

 

	if ((($ibforums->vars['post_titlechange']) and ($ibforums->member['posts'] > $ibforums->vars['post_titlechange'])) 
     or ( $ibforums->member['g_title_on_off'] ))

 

или у тех у кого мод репутации от d1pro:

 

	if ( ( ($ibforums->vars['post_titlechange']) and ($ibforums->member['posts'] > $ibforums->vars['post_titlechange']) )
                   or ( ( $ibforums->vars['reputation_on'] ) and  ( $ibforums->vars['rep_titlechange'] ) and ($this->member['rep']  >= $ibforums->vars['rep_titlechange'] )) 
     or ( $ibforums->member['g_title_on_off'] ))

 

 

 

 

//******************************

//sources/lib/usercp_functions.php

//******************************

 

Находим:

 

  if ( (isset($ibforums->input['member_title'])) and ( isset($ibforums->vars['post_titlechange']) ) and ( $ibforums->member['posts'] >= $ibforums->vars['post_titlechange']) )

 

Заменяем на:

 

  if (( (isset($ibforums->input['member_title'])) and ( isset($ibforums->vars['post_titlechange']) ) and ( $ibforums->member['posts'] >= $ibforums->vars['post_titlechange']) ) 
       or ( $ibforums->member['g_title_on_off']))

 

для тех у кого мод репутации от d1pro:

 

  if ( (isset($ibforums->input['member_title'])) and ( ( isset($ibforums->vars['post_titlechange']) ) and ( $ibforums->member['posts'] >= $ibforums->vars['post_titlechange']) )
                     or ( ( isset($ibforums->vars['rep_titlechange'] ) ) and ($this->member['rep']  >= $ibforums->vars['rep_titlechange'] )) 
       or ( $ibforums->member['g_title_on_off']) )

 

 

//*****************************

//sources/admin/ad_groups.php

//*****************************

 

Находим:

 

 

'g_attach_per_post'    => $ibforums->input['g_attach_per_post'],

 

 

Вставляем после:

 

 

'g_title_on_off'       => $ibforums->input['g_title_on_off'],

 

Находим:

 

  $ibforums->html .= $ibforums->adskin->add_td_row( array( "<b>Can use search?</b>" ,
             $ibforums->adskin->form_yes_no("g_use_search", $group['g_use_search'] )
             )      );

 

Вставляем после:

 

 

 

  $ibforums->html .= $ibforums->adskin->add_td_row( array( "<b>This group can change their title?$guest_legend</b><br />" ,
             $ibforums->adskin->form_yes_no("g_title_on_off", $group['g_title_on_off'] )
         )  );

 

 

Спасибо за коды мода Репутации от d1pro, очень помогли при поиске строк, где надо дописывать.

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

Ваш мод конфликтует с [NTD2]Custom Profile Fields ... если выставляешь статус ... проподают в нём все данные, если выставляешь данные ... статус становиться дефолтным ...
Ссылка на комментарий
Поделиться на других сайтах

Ваш мод конфликтует с [NTD2]Custom Profile Fields ... если выставляешь статус ... проподают в нём все данные, если выставляешь данные ... статус становиться дефолтным ...

 

дай ссылку на этот мод... погляжу что там...

просто мод делался для чистого форума, а то что поставлены другие моды дествующие на это же...

 

но я думаю где-то вы строку не доставили :D

 

либо

//title mod
$DB->do_update( 'members', array ('title'   => $ibforums->input['title'],) , 'id='.$mid );
//title mod

 

либо

 

//title mod
$DB->do_insert( 'members', array ('title'   => $ibforums->input['title'],) , 'id='.$mid );
//title mod

 

в файле ./sources/moderate.php

 

проверьте у вас таблица ibf_member_extra скорее не заполняется[1114457679:1114458336]И еще можно поподробней откуда глючит, когда пользователь редактирет сам себе стаус, когда редактируете вы через админку или когда редактируете вы через модерскую панель?

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

Хм ... вроде всё верно ... сам мод ведь нормально работает, он просто другому работать не даёт, или на оборот ... вот ссылочка на мод - http://mods.invisionize.com/db/index.php/f/4175

Я вечером ещё сам посмотрю ... просто времени не хватает ...

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

Хм ... вроде всё верно ... сам мод ведь нормально работает, он просто другому работать не даёт, или на оборот ... вот ссылочка на мод - http://mods.invisionize.com/db/index.php/f/4175

Я вечером ещё сам посмотрю ... просто времени не хватает ...

 

 

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

 

пожалуста скажите, где это просхидит?? в админке в модкрской панеле или в юзерской панеле??

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

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

в moderate.php

 

 

удали изменения моего мода из этого файла(будьте внимательны не все изменения):

 

 

//----------
//Удаляем
//----------


//title mod
$DB->do_update( 'members', array ('title'   => $ibforums->input['title'],) , 'id='.$mid );
//title mod

//-----------
// удаляем
//-----------


//title mod
$DB->do_insert( 'members', array ('title'   => $ibforums->input['title'],) , 'id='.$mid );
//title mod

 

 

замени строки мода [NTD2]Custom Profile Fields v2.0:

 

 

 	 // Custom Profile Fields by ntd1712
	 $mtemp = array(  'gender'      => $ibforums->input['gender'],
     'mymood'      => $ibforums->input['mymood'],
     'starsign'    => $ibforums->input['starsign'],
     'chbirthsign' => $ibforums->input['chbirthsign'],
     'country'     => $ibforums->input['country'],
                                                                               
         );
     
	 if ( $mem = $DB->simple_exec_query( array( 'select' => 'id', 'from' => 'members', 'where' => 'id='.$mid ) ) )
	 {
   $DB->do_update( 'members', $mtemp, 'id='.$mid );
	 }
	 else
	 {
   $mtemp['id'] = $mid;
   $DB->do_insert( 'members', $mtemp );
	 }

 

 

на:

 

 	 // Custom Profile Fields by ntd1712
	 $mtemp = array(  'gender'      => $ibforums->input['gender'],
     'mymood'      => $ibforums->input['mymood'],
     'starsign'    => $ibforums->input['starsign'],
     'chbirthsign' => $ibforums->input['chbirthsign'],
     'country'     => $ibforums->input['country'],
                                                                                  //title mod
                                                                                  'title'   => $ibforums->input['title'],

         );
     
	 if ( $mem = $DB->simple_exec_query( array( 'select' => 'id', 'from' => 'members', 'where' => 'id='.$mid ) ) )
	 {
   $DB->do_update( 'members', $mtemp, 'id='.$mid );
	 }
	 else
	 {
   $mtemp['id'] = $mid;
   $DB->do_insert( 'members', $mtemp );
	 }

 

 

вроде все должно работать

 

PS: имения нужно сделать только тем у кого стоит мод [NTD2]Custom Profile Fields v2.0

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

Хм ... что-то не получается ... может вы мне вышлите весь это файл уже отредактированный? А то у меня модов много стоит ... если не сложно пришлите мне этот файл на ffmystic@mail.ru ...
Ссылка на комментарий
Поделиться на других сайтах

Шильный мод!

 

Протестить надо сначал хорошо прежде чем релизить!

 

Нет времени дебагить.

 

Ставить не советую

 

 

все отлично работает если не другие моды не стоят которые обращаются к таблице members на чистом все работает отлично на трех форумах проверил

 

не знаю чего не получается у тебя :D

 

Хм ... что-то не получается ... может вы мне вышлите весь это файл уже отредактированный? А то у меня модов много стоит ... если не сложно пришлите мне этот файл на ffmystic@mail.ru ...

 

у меня не стоит мода [NTD2]Custom Profile Fields v2.0 у меня чистый тока.

какие моды еще в этом файле стоят которые добавляют функцию в модерскую панель?

пришли мне свой лучше файл support@game-play.ru

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

Mystic, лечение простое...

исправление рук написавших [NTD2]Custom Profile Fields v2.0

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

он сам тебе в базу отсылает нулевые данные...

 

если удалить из файла moderate.php все что касается [NTD2]Custom Profile Fields v2.0

и оставить мои изменения, то все будет работать. ;)

 

Нет времени дебагить.

 

думаю вы не запускали инсталятор :D

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

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

Я вот что-то не могу понять, зачем нужно вот это:

 

 mysql_query("ALTER TABLE ".$prefix."member_extra ADD title varchar(64) default NULL;")

 

, если в таблице members уже есть поле title ?

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

Anna

ваааабще не нужно :D

 

руки не доходят переписать, все это пишеться в 10 строк а не столько сколько в ридми написано, если желание есть ставить то глядите как написан мод для версии 2.1.х... там все правитьно ;)

на выходных вторую версию этого мода выпущу.

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

  • 1 год спустя...

Версия для 2.1.7 :D

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

/*--------------------------------------------------\
|	Edit title in moderate CP v.2.1.x
|  ============================================
|  >Мод добавляет строку редактирования статуса 
|   в модераторскую панель
|  ============================================
// © SAT | 2005 
// http://www.game-play.ru
// © Pimen | 2006 (Адаптировал под 2.1.x)
// http://www.sgh.ru, http://www.bp-tech.org
\--------------------------------------------------*/

//-------------------------------
// Файлы для редактирования
//-------------------------------
// sources/sql/mysql_queries.php
// sources/action_public/moderate.php
// cache/lang_cache/*/lang_mod.php
//-------------------------------

//------------------------------
// sources/sql/mysql_queries.php
//------------------------------

//===================================
// найти в функции profile_get_all
//===================================

return "SELECT m.*, me.*,

//========================
// вставить после
//========================

m.title, 

//------------------------------
// sources/action_public/moderate.php
//------------------------------

//==================
// найти
//==================

		$editable['msnname']	= $member['msnname'];
		$editable['yahoo']	  = $member['yahoo'];

//====================
// добавить после
//====================

		$editable['title']	  = $member['title'];

//=====================
// найти
//=====================

		//-----------------------------------------
		// Write it to the DB.
		//-----------------------------------------

		if ( $mem = $this->ipsclass->DB->simple_exec_query( array( 'select' => 'id', 'from' => 'member_extra', 'where' => 'id='.$mid ) ) )
		{
			$this->ipsclass->DB->do_update( 'member_extra', $bet, 'id='.$mid );
		}
		else
		{
			$bet['id'] = $mid;
			$this->ipsclass->DB->do_insert( 'member_extra', $bet );
		}

//==================
// заменить на
//==================

		//-----------------------------------------
		// Write it to the DB.
		//-----------------------------------------

		if ( $mem = $this->ipsclass->DB->simple_exec_query( array( 'select' => 'id', 'from' => 'member_extra', 'where' => 'id='.$mid ) ) )
		{
			$this->ipsclass->DB->do_update( 'member_extra', $bet, 'id='.$mid );
			$this->ipsclass->DB->do_update( 'members', array('title'	 => $this->ipsclass->input['title'],), 'id='.$mid );
		}
		else
		{
		$bet['id'] = $mid;
		$this->ipsclass->DB->do_update( 'members', array('title'	 => $this->ipsclass->input['title'],), 'id='.$mid );
		$this->ipsclass->DB->do_insert( 'member_extra', $bet );
		}

//-------------------------
// языки
//-------------------------
// cache/lang_cache/*/lang_mod.php
//-------------------------

//===============
// найти
//===============

$lang = array (

//====================
// добавить после
//====================

'cp_em_edit_title'  => "Статус",
'cp_em_title_head'  => "Редактирование статуса",



//------------------------------------------------------
// делаем изменения в скинах
// ============================
// Внимание!!! если у вас несколько скинов 
// сделайте изменения для каждого


// ============================
// ACP -> Управление стилями -> **** -> Изменить HTML фрагменты -> Moderator Function ->edit_user_form 
//------------------------------------------------------

//===================
// найти
//===================

			</td>
		</tr>
	</table>
	<div class="formsubtitle" align="center"><input type="submit" value="{ipb.lang['cp_em_submit']}" /></div>
</div>
</form>


//======================
// добавить перед!
//======================

				<fieldset>
				<legend><b>{ipb.lang['cp_em_title_head']}</b></legend>
					<table cellspacing="0">
						<tr>
							<td class="row1" width="40%">{ipb.lang['cp_em_edit_title']}</td>
							<td class="row1" width="60%"><input type="text" size="35" name="title" value="{$profile['title']}" /></td>
						</tr>
					</table>
				</fieldset>

//==================
// все :)
/===================

*************************************************
* Если хотите, чтобы опция была доступна только администраторам, то в шаблон нужно добавлять:
*************************************************
//==================
<if="ipb.member['mgroup']==ipb.vars['admin_group']">
				<fieldset>
				<legend><b>{ipb.lang['cp_em_title_head']}</b></legend>
					<table cellspacing="0">
						<tr>
							<td class="row1" width="40%">{ipb.lang['cp_em_edit_title']}</td>
							<td class="row1" width="60%"><input type="text" size="35" name="title" value="{$profile['title']}" /></td>
						</tr>
					</table>
				</fieldset>
</if>
//==================

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

Всё равно не работает, но есть некоторые отличия

1) исходный код в:

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

// Write it to the DB.

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

несколько другой,

2) какая-то абракодабра в файле cache/lang_cache/*/lang_mod.php

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

2) какая-то абракодабра в файле cache/lang_cache/*/lang_mod.php

пример кода

'mod_from'	 => "От:",
'mod_from_id'  => "От темы с ID:",
'cp_batch_done' => "пока обработано %s тем. осталось %s ...",
'cp_optional'   => 'Все эти настройки опциональны',
'cp_prune_days2' => "Нет ответов более, чем <em>n</em> дней",
'cp_prune_action2' => "Удалить или переместить в",
'cp_per_go'		=> "Выполнять действия по <em>n</em> тем за цикл",

Только сейчас заметил что тут всё нормально, однако когда смотришь сам код, то там действительно абракодабра...

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

Deny F

1) ты хоть старую версию мода удалил, прежде чем мою ставить? Что, что? Нет!!! Дык вот откуда у тебя другое

2) Все нормально с этим файлом, не мути воду

3) Путь Поправил

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

Убери блоки с кодом из своих сообщений, не путай пользователей

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

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

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

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