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

[2.1.x]eXTended Reputation System


Raynor

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

IPB Предупреждение [2] load_language(/home/sarankz/public_html/forum/cache/lang_cache/ru/lang_reputation.php): failed to open stream: No such file or directory (Строка: 1710 файла /sources/ipsclass.php)

ои блин разобрался с етим новый год еще наверное у мя

 

теперь такои вопрос стоит скин cobalt видно - и + но не видно какои у тя реитинг нету цифры

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

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

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

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

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

Можно обратить скин (отменяются все изменения в нем) и ребилд кэша сделать (создает заново кэш).

У тебя один скин установлен?

Пока да. Стандартный. Попробую заново внести изменения в скин :D

 

В просмотре профиля репутация появилась (+- и циферка), а в темах и в шапке форума (возле пользователей и поиска) - нет. В чем теперь может быть загвоздка? Я же все заново переделал и переребилдил. Мод классный, а воспользоваться им не могу ;)

Вроде и в файлах скина (кеше) изменения присутствуют...

 

 

ПРОБЛЕМУ РЕШИЛ РУЧНЫМ РЕДАКТИРОВАНИЕМ В ФАЙЛАХ КЕША СКИНА. ОГРОМНОЕ СПАСИБО ЗА МОД

че именно редактировал я тоже отредактировал но не кажет мне в темах репутацию токо - и +

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

все сделал сам. встало нормально. автору - писать доки внимательней!

В каком месте внимательней? :D

 

Файл Fresh Install.txt читать так:

 

*************************

* Редактирование языков *

*************************

 

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

// cache/lang_cache/*/lang_topic.php

// cache/lang_cache/*/lang_profile.php

// !РЕДАКТИРОВАТЬ ОБА ФАЙЛА!

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

 

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

======

НАХОДИМ

-------

$lang = array (

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

ДОБАВЛЯЕМ ПОСЛЕ:

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

//Simple Reputation System

'reputation' => "Репутация: ",

'plus' => "<img src='style_images/1/r_add.gif' border='0' />",

'minus' => "<img src='style_images/1/r_minus.gif' border='0' />",

'plus_disabled' => "<img src='style_images/<#IMG_DIR#>/r_add1.gif' border='0' />",

'minus_disabled' => "<img src='style_images/<#IMG_DIR#>/r_minus1.gif' border='0' />",

'rep_inc' => "Поднять репутацию",

'rep_dec' => "Опустить репутацию",

'view_rep' => "Просмотреть репутацию",

'change_rep' => "Изменение репутации",

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

Нужны только прямые руки. И кстате вставлять картинки нужно в ту папке стиля которую вы используете.

Это понятное дело....

Но вот вы можете мне сказать как сделать так, чтобы в профиле могли тоже ставить репутацию?!

Или хотябы что за это отвечает?!

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

Вроде как и так можно :D

То есть у вас в темах всё нормально отображается, а в профиле нет?

 

Если да, то что то напутали с файлом sources/action_public/profile.php или с sources/action_admin/member.php. Вобщем со всеми файлами связанными с профилем.

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

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

установил мод,

всё вроде на первый взгляд работает, репутация добавляется, всё отображается.

 

только единственный косяк.

 

попадаю на пустую страницу при нажатии на "Личные данные" и "личные сообщения"

 

в чём может быть проблема???

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

включаю в настройках безопасный режим стилей - всё работает.

 

а при отключенном - нет.

 

где копать?

 

 

попробовал сделать бекап измёнённых файлов эта ошибка возникает на следующем этапе:

 

что то тут не правильно, помогите исправить

 

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

// skin_ucp (Личные данные пользователя) / settings_end

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

 

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

======

НАХОДИМ

-------

<if="ipb.vars['posting_allow_rte'] == 1">

<tr>

<td>{ipb.lang['type_of_editor']}<div class='desc'>{ipb.lang['rte_text']}</div></td>

<td>{$data['editor']}</td>

</tr>

</if>

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

ДОБАВЛЯЕМ ПОСЛЕ:

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

<tr>

<td class="formsubtitle" colspan="2">{ipb.lang['rep_settings']}</td>

</tr>

<tr>

<td>{ipb.lang['rep_notify']}</td>

<td align='left'>{$data[REP_NOTIFY]}</td>

</tr>

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

======

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

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

<?php

if ( ! defined( 'IN_IPB' ) )
{
print "<h1>Некорректный адрес</h1>Вы не имеете доступа к этому файлу напрямую. Если вы недавно обновляли форум, вы должны обновить все соответствующие файлы.";
exit();
}

class repwhen
{
# Global
var $ipsclass;

var $mid = "";
var $st = 0;

var $output   = "";

function auto_run()
{
if (($this->ipsclass->member['mgroup'] == 4) OR ($this->ipsclass->member['mgroup'] == 7))
{
			$this->ipsclass->load_language('lang_reputation');
			$this->st = intval($this->ipsclass->input['st']);
			$this->daymin = intval($this->ipsclass->input['daymin']);
			$this->monthmin = intval($this->ipsclass->input['monthmin']);
			$this->yearmin = intval($this->ipsclass->input['yearmin']);
			$this->daymax = intval($this->ipsclass->input['daymax']);
			$this->monthmax = intval($this->ipsclass->input['monthmax']);
			$this->yearmax = intval($this->ipsclass->input['yearmax']);
			$this->mid = intval($this->ipsclass->input['mid']);

$this->min = mktime(0,0,0,$this->monthmin,$this->daymin,$this->yearmin);
$this->max = mktime(23,59,59,$this->monthmax,$this->daymax,$this->yearmax);

$this->view_rep_when();
}
}
	function get_member_by_id($id)
	{
			$this->ipsclass->DB->simple_construct( array( 'select' => '*',
														  'from'   => 'members',
														  'where'  => "id=".$id
														)
												 );
			$this->ipsclass->DB->simple_exec();
			if ($this->ipsclass->DB->get_num_rows())
			{						$row = $this->ipsclass->DB->fetch_row();
			}

			return $row;
	}

	function check_moderate()
	{
			if (	($this->ipsclass->member['mgroup'] == $this->ipsclass->vars['admin_group'])
					|| $this->ipsclass->member['g_access_cp']
					|| ($this->ipsclass->member['g_is_supmod'] && $this->ipsclass->vars['rep_smod']) )
			   return 1;
			return 0;
	}

	function view_rep_when()
	{
			$txt = "";
			$rows = array();

			$pp = $this->ipsclass->vars['rep_pp_rating'] > 0 ? $this->ipsclass->vars['rep_pp_rating'] : 30;

			//Get member info
			$member = $this->get_member_by_id($this->mid);
			if ($this->check_moderate())
			{
					$mod_th = "<th align='center'> </th>";
			}

			$order = 'members_display_name ASC';

			$this->ipsclass->DB->simple_construct( array( 'select'   => 'COUNT(DISTINCT to_user) as count',
														  'from'	 => 'reputation',
									'where' => 'created>='.$this->min.' AND created<='.$this->max,
														)
												 );
			$this->ipsclass->DB->simple_exec();
			$count = $this->ipsclass->DB->fetch_row();
			$count = intval($count['count']);


			$query = array( 'select'   => 'm.*, COUNT(r.rating) as count, SUM(r.rating) as summ, r.created',
							'from'	 => 'reputation r LEFT JOIN '.SQL_PREFIX.'members m ON r.to_user = m.id',
							'where'	=> 'created>='.$this->min.' AND created<='.$this->max.' AND 1 GROUP BY to_user',
							'order'	=> $order,
							'limit'	=> array( $this->st, $pp)
						  );

			$this->ipsclass->DB->simple_construct( $query );

			$this->ipsclass->DB->simple_exec();
			{
					while($row = $this->ipsclass->DB->fetch_row())
					{
							$rows[] = $row;
					}
			}

			//Lets start with output
			$txt .= "<div class='borderwrap'>
					 <div class='maintitle'>Поиск изменений репутации</div>

					 <table class='ipbtable' cellspacing='1'>
					  <tr>
					   <th align='center'>".$this->ipsclass->lang['rep_user']."</th>
					   <th align='center' width='10%'>Изменено</th>
					   <th align='center' width='10%'>".$this->ipsclass->lang['rep_posts']."</th>
					   <th align='center' width='15%'>".$this->ipsclass->lang['rep_value']."</th>
					  </tr>
				   ";

			foreach($rows as $row)
			{
					$pluses = ceil(($row['count']+$row['summ'])/2);
					$txt .= "<tr>
							  <td class='row2' align='left'><b><a href='".$this->ipsclass->base_url."showuser=".$row['id']."'>".$row['members_display_name']."</a></b></td>
							  <td class='row2' align='center'>".date("H:i:s", $row['created'] )."</td>
							  <td class='row2' align='center'>{$row['posts']}</td>
							  <td class='row1' align='center'><b><a href='".$this->ipsclass->base_url."act=rep&type=history&mid=".$row['id']."'>{$row['reputation']}</a> (<font color='green'>+$pluses</font>/<font color='red'>-".abs($row['summ']-$pluses)."</font>)</b></td>
							 </tr>
							";
			}
			$this->ipsclass->load_template('skin_global');

			$links = $this->ipsclass->build_pagelinks(  array( 'TOTAL_POSS'  => $count,
															   'PER_PAGE'	=> $pp,
															   'CUR_ST_VAL'  => $this->st,
															   'L_SINGLE'	 => "",
															   'L_MULTI'	  => $this->ipsclass->lang['pages'],
															   'BASE_URL'	 => $this->ipsclass->base_url."act=repwhen&daymin=".$this->daymin."&monthmin=".$this->monthmin."&yearmin=".$this->yearmin."&daymax=".$this->daymax."&monthmax=".$this->monthmax."&yearmax=".$this->yearmax
																											 )
																							  );


			$txt .= "   <td class='catend' colspan='4'><!-- no content --></td>
					   </table>
<form action='{$this->ipsclass->vars['board_url']}/index.php?act=repwhen' method='post'>
<div class='formsubtitle' align='center'>
<input type='hidden' name='act' value='repwhen'>
ОТ: День
<select name='daymin' class='forminput'>
					<option value='1'>1</option>
					<option value='2'>2</option>
					<option value='3'>3</option>
					<option value='4'>4</option>
					<option value='5'>5</option>
					<option value='6'>6</option>
					<option value='7'>7</option>
					<option value='8'>8</option>
					<option value='9'>9</option>
					<option value='10'>10</option>
					<option value='11'>11</option>
					<option value='12'>12</option>
					<option value='13'>13</option>
					<option value='14'>14</option>
					<option value='15'>15</option>
					<option value='16'>16</option>
					<option value='17'>17</option>
					<option value='18'>18</option>
					<option value='19'>19</option>
					<option value='20'>20</option>
					<option value='21'>21</option>
					<option value='22'>22</option>
					<option value='23'>23</option>
					<option value='24'>24</option>
					<option value='25'>25</option>
					<option value='26'>26</option>
					<option value='27'>27</option>
					<option value='28'>28</option>
					<option value='29'>29</option>
					<option value='30'>30</option>
					<option value='31'>31</option>
</select>
Месяц
<select name='monthmin' class='forminput'>
					<option value='1'>1</option>
					<option value='2'>2</option>
					<option value='3'>3</option>
					<option value='4'>4</option>
					<option value='5'>5</option>
					<option value='6'>6</option>
					<option value='7'>7</option>
					<option value='8'>8</option>
					<option value='9'>9</option>
					<option value='10'>10</option>
					<option value='11'>11</option>
					<option value='12'>12</option>
</select>
Год
<input name='yearmin' type='text' maxlength=4 size=4>
</input>
</div>
<div class='formsubtitle' align='center'>
ДО: День
<select name='daymax' class='forminput'>
					<option value='1'>1</option>
					<option value='2'>2</option>
					<option value='3'>3</option>
					<option value='4'>4</option>
					<option value='5'>5</option>
					<option value='6'>6</option>
					<option value='7'>7</option>
					<option value='8'>8</option>
					<option value='9'>9</option>
					<option value='10'>10</option>
					<option value='11'>11</option>
					<option value='12'>12</option>
					<option value='13'>13</option>
					<option value='14'>14</option>
					<option value='15'>15</option>
					<option value='16'>16</option>
					<option value='17'>17</option>
					<option value='18'>18</option>
					<option value='19'>19</option>
					<option value='20'>20</option>
					<option value='21'>21</option>
					<option value='22'>22</option>
					<option value='23'>23</option>
					<option value='24'>24</option>
					<option value='25'>25</option>
					<option value='26'>26</option>
					<option value='27'>27</option>
					<option value='28'>28</option>
					<option value='29'>29</option>
					<option value='30'>30</option>
					<option value='31'>31</option>
</select>
Месяц
<select name='monthmax' class='forminput'>
					<option value='1'>1</option>
					<option value='2'>2</option>
					<option value='3'>3</option>
					<option value='4'>4</option>
					<option value='5'>5</option>
					<option value='6'>6</option>
					<option value='7'>7</option>
					<option value='8'>8</option>
					<option value='9'>9</option>
					<option value='10'>10</option>
					<option value='11'>11</option>
					<option value='12'>12</option>
</select>
Год
<input name='yearmax' type='text' maxlength=4 size=4>
</input>
<input value='ОК!' class='button' type='submit'>
</div>
</form>
					  </div><br />
					  $links
					";

			$this->output .= $txt;
			$this->ipsclass->print->add_output($this->output);
			$this->ipsclass->print->do_output( array( 'TITLE' => 'Поиск изменений репутации - '.$this->ipsclass->vars['board_name'], 'JS' => 0, 'NAV' => array('Поиск изменений репутации' )) );
	}
}
?>

вызывается в индексе актом repwhen, добавьте сами

важно, что работает только для пользователей групп 4 и 7

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

 

чтобы запретить изменение реппутации админам вообще, надо

1.в reputation php после

if(!$this->mid)
					$this->error_window(10);

добавить

			$this->mgroup = $this->ipsclass->DB->simple_exec_query(array('select' => 'mgroup',
																 'from'   => 'members',
																 'where'  => 'id = '.$this->mid,
																)
														 );

			if($this->mgroup['mgroup'] == 4)
					$this->error_window(13);

после

 $this->ipsclass->lang['error_12']

добавить

,
$this->ipsclass->lang['error_13']

и в lang_reputation.php

'error_13' => 'То что надо'

 

2. Для отображения(а точнее для отмены отображения) -/+

в файлах profile.php и topics.php

вместо

if (($this->ipsclass->member['id'] != $member['id']) && ($this->ipsclass->member['posts'] >= $this->ipsclass->vars['rep_posts']))
		{
			$info['reputation_minus'] = "<a href='java script:rep_change_window_open(\"{$this->ipsclass->base_url}act=rep&type=win_minus&mid={$member['id']}\");' title='{$this->ipsclass->lang['rep_dec']}'>{$this->ipsclass->lang['minus']}</a>";
			$info['reputation_add'] = "<a href='java script:rep_change_window_open(\"{$this->ipsclass->base_url}act=rep&type=win_add&mid={$member['id']}\");' title='{$this->ipsclass->lang['rep_inc']}'>{$this->ipsclass->lang['plus']}</a>";
		}
		else
		{
			$info['reputation_minus'] = "{$this->ipsclass->lang['minus_disabled']}";
			$info['reputation_add'] = "{$this->ipsclass->lang['plus_disabled']}";
		}

сделать

			if ($member['mgroup'] != 4)
		{
		if (($this->ipsclass->member['id'] != $member['id']) && ($this->ipsclass->member['posts'] >= $this->ipsclass->vars['rep_posts']))
		{
			$info['reputation_minus'] = "<a href='java script:rep_change_window_open(\"{$this->ipsclass->base_url}act=rep&type=win_minus&mid={$member['id']}\");' title='{$this->ipsclass->lang['rep_dec']}'>{$this->ipsclass->lang['minus']}</a>";
			$info['reputation_add'] = "<a href='java script:rep_change_window_open(\"{$this->ipsclass->base_url}act=rep&type=win_add&mid={$member['id']}\");' title='{$this->ipsclass->lang['rep_inc']}'>{$this->ipsclass->lang['plus']}</a>";
		}
		else
		{
			$info['reputation_minus'] = "{$this->ipsclass->lang['minus_disabled']}";
			$info['reputation_add'] = "{$this->ipsclass->lang['plus_disabled']}";
		}
		}

пробуем

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

Помогите засада с кодировкой!! Установил в Админке все настройки вида:

Минимальное количество сообщений

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

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

Все поставил, появилась репутация на шапке и в окне юзера. Но при попытке добавить или снять репу - выскакивает маленькое окно в котором форум, а не меню для добавления репы. Тоже самое при нажатии репутации на шапке -> выкидывает просто в форум.

 

дело было в индексе ... как говорится читай внимательнее тему ... :D посибо за предыдущее обсуждение моей проблемки. ;)

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

U menya vopros... budet li avtor peredelivat' dannii mod dlya etki 2.2? Esli da to kuruto :D esli net zhal'''''...

А зачем тебе этот мод то для 2.2 ?

Вот я поставил настоящий мод репутации для 2.2 )

Мне понравилось )

Лучше в 100 раз чем этот )

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

Установил этот мод репутации. После полной установки мода и правки всех файлов/шаблонов + перестройки кэша у меня при попытке зайти в тему вылетает ошибка:

 

mySQL query error: SELECT p.*,

m.id,m.name,m.mgroup,m.email,m.joined,m.posts, m.last_visit, m.last_activity,m.login_anonymous,m.title,m.hide_email, m.warn_level, m.warn_lastwarn,

me.msnname,me.aim_name,me.icq_number,me.signature, me.website,me.yahoo,me.location, me.avatar_location, me.avatar_type, me.avatar_size, m.members_display_name, m.reputation

pc.*

FROM ibf_posts p

LEFT JOIN ibf_members m ON (p.author_id=m.id)

LEFT JOIN ibf_member_extra me ON (me.id=m.id)

LEFT JOIN ibf_pfields_content pc ON (pc.member_id=p.author_id)

WHERE p.pid IN(1) ORDER BY pid asc

 

SQL error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.*

FROM ibf_posts p

LEFT JOIN ibf_members m ON (p.author_id=m.id)

' at line 4

SQL error code:

Date: 12.1.2007, 21:42

 

Подозреваю, что наврал при попытке правки по следующему фрагменту инструкции:

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

НАХОДИМ 2 РАЗА (topics_get_posts, topics_get_posts_with_join):

Не потеряйте запятую после 'm.members_display_name', где она есть!!

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

me.msnname,me.aim_name,me.icq_number,me.signature, me.website,me.yahoo,me.location, me.avatar_location, me.avatar_type, me.avatar_size, m.members_display_name

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

ДОБАВЛЯЕМ ПОСЛЕ:

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

, m.reputation

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

Что значит "не упустите запятую" ? Двойную запятую оставить, что ли?!

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


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

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

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