+--------------------------------------------------------------------------
| Simple Reputation System 0.1
| ========================================
| by Daniil Khoroshko
| Tested on IPB 2.1.2 Final
| Time: Tue, 17 Jun 2006
| Demo: [url="http://www.reggae-vibes.ru"]http://www.reggae-vibes.ru[/url]
+---------------------------------------------------------------------------
|
| Reputation System for IPB 2.1
|
+---------------------------------------------------------------------------
Изменяемые файлы:
index.php
/sources/action_public/topics.php
/cache/lang_cache/*/lang_topic.php
**************************************************************************
Выполнить SQL-запрос в БД С форумом
**************************************************************************
ALTER TABLE `ibf_members` ADD `reputation` INT NOT NULL;
CREATE TABLE `ibf_reputation` (
`id` int(11) NOT NULL auto_increment,
`from_user` int(11) NOT NULL default '0',
`to_user` int(11) NOT NULL default '0',
`forum` int(11) NOT NULL default '0',
`topic` int(11) NOT NULL default '0',
`post` int(11) NOT NULL default '0',
`created` int(11) NOT NULL default '0',
`message` text NOT NULL,
`rating` int(11) NOT NULL default '0',
PRIMARY KEY (`id`)
);
**************************************************************************
Скопировать папки из данного архива в директорию с форумом (корень форума)
**************************************************************************
**************************************************************************
Открыть файл /sources/action_public/topics.php
**************************************************************************
----Найти:----
var $last_read_tid = "";
----Вставить ПОСЛЕ----
var $c_pid = 0;
----Найти:----
$poster = $this->parse_member( $row );
----Вставить ПЕРЕД:----
$this->c_pid = $row['pid'];
----Удалить:----
$this->cached_members[ $row['author_id'] ] = $poster;
----Найти:----
return $member;
----Вставить ПЕРЕД----
if($this->ipsclass->input['act'] == 'st' OR $this->ipsclass->input['act'] == 'rep')
{
$member['reputation_allow'] = true;
$this->ipsclass->DB->simple_construct( array( 'select' => 'id, reputation',
'from' => 'members',
'where' => "id=".$member['id']
)
);
$this->ipsclass->DB->simple_exec();
if ($this->ipsclass->DB->get_num_rows())
{
$row = $this->ipsclass->DB->fetch_row();
$member['reputation'] = $row['reputation'];
}
$member['reputation_text'] = $this->ipsclass->lang['reputation'];
if($this->ipsclass->member['id'] != $member['id'])
{
$member['reputation_minus'] = "<a href='java script:rep_change_window_open(\"{$this->ipsclass->base_url}act=rep&type=win_minus&mid={$member['id']}&p={$this->c_pid}\");' title='{$this->ipsclass->lang['rep_dec']}'>{$this->ipsclass->lang['minus']}</a>";
$member['reputation_add'] = "<a href='java script:rep_change_window_open(\"{$this->ipsclass->base_url}act=rep&type=win_add&mid={$member['id']}&p={$this->c_pid}\");' title='{$this->ipsclass->lang['rep_inc']}'>{$this->ipsclass->lang['plus']}</a>";
}
else
{
$member['reputation_minus'] = "{$this->ipsclass->lang['minus_disabled']}";
$member['reputation_add'] = "{$this->ipsclass->lang['plus_disabled']}";
}
$member['reputation_scores'] = "<a href='{$this->ipsclass->base_url}act=rep&type=history&mid={$member['id']}' title='{$this->ipsclass->lang['view_rep']}'>{$member['reputation']}</a>";
}
**************************************************************************
Открыть файл /index.php
**************************************************************************
----Найти:----
'component' => array( 'component' , 'component' , array() ),
----Вставить ПОСЛЕ----
'rep' => array( 'reputation' , 'reputation' , array() ),
**************************************************************************
Зайти в Admin CP
**************************************************************************
Далее зайти в LOOK & FEEL, выбрать изменяемый шаблон - нажать Edit Template HTML
Далее Topic View -> RenderRow
----Найти----
{$author['warn_text']} {$author['warn_minus']}{$author['warn_img']}{$author['warn_add']}
----Добавить ПОСЛЕ----
<if="author['reputation_allow'] == "true"">
<script type="text/javascript" src='jscripts/reputation.js'></script>
<br/> <br/>{$author['reputation_text']}{$author['reputation_minus']} <b>{$author['reputation_scores']}</b> {$author['reputation_add']}
</if>
**************************************************************************
Изменить файлы языков
**************************************************************************
Проделать для всех установленных языков:
Скопировать файл из архива
lang_reputation.php
во все папки существующие в
/cache/lang_cache/
(пример: /cache/lang_cache/ru/)
-----------Открыть файл cache/lang_cache/*/lang_topic.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' => "Изменение репутации",Да, кстати, а запрос как должен выполняться?
Просто вставлятьв окно запроса эту грамоту?:
ALTER TABLE `ibf_members` ADD `reputation` INT NOT NULL; CREATE TABLE `ibf_reputation` ( `id` int(11) NOT NULL auto_increment, `from_user` int(11) NOT NULL default '0', `to_user` int(11) NOT NULL default '0', `forum` int(11) NOT NULL default '0', `topic` int(11) NOT NULL default '0', `post` int(11) NOT NULL default '0', `created` int(11) NOT NULL default '0', `message` text NOT NULL, `rating` int(11) NOT NULL default '0', PRIMARY KEY (`id`) );
Или как-то надо разделять? Помогите, а то народ на форуме меня убьёт(((
У меня больше возникает вопросов по началу, а заменить файлы любой сможет...







Отправлено 17 Март 2007 - 11:48



