Мод "Спасибо" by AVol Invision Power Board v2.3.1
http://ifolder.ru/4813025 - с исправлениями от Sannis
+---------------------------------------------------------------------
| Invision Power Board v2.3.1
| =================================================================
| [url="http://www.invisionpower.com"]http://www.invisionpower.com[/url]
| [url="http://www.ibresource.ru"]http://www.ibresource.ru[/url]
| =================================================================
+---------------------------------------------------------------------
|
| > Мод "Спасибо"
| > by AVol
| > (http://www.ibresource.ru/forums/index.php?showuser=41059)
| > Базируется на моде "Thanks" by Unlovelt
|
| > Version: 2.0.4
| > Date: 12.08.2006
| > Last Update: 03.09.2006
|
+---------------------------------------------------------------------
|
| > Изменения в 2.0.4:
| > - При проверке прав теперь учитываются права форума-прародителя.
| > - Права проверяются как на просмотр, так и на чтение.
| > - Добавленна поддержка тега скрытого текста от Vic'er.
| > - Добавлен просмотр благодарностей в списке пользователей с возможностью сортировки по ней.
| > - Добавленна возможность просмотра количества благодарностей в профиле (спасибо -=mayday=-).
| > - Добавленные отдельные языковые строки для просмотра темы, профиля и списка пользователей.
|
| > Изменения в 2.0.2:
| > - Добавленна проверка прав на просмотр сообщений из темы.
| > - Добавлен отдельный языковой файл.
|
| > Изменения в 2.0.0:
| > - Просмотр истории благодарностей.
| > - Функции правки благорарностей.
| > - Функция пересчета благодарностей.
| > - Дополнительные настройки в админцентре.
|
| > Изменения в 1.1.0:
| > - Добавленны настройки в Админцентре.
| > - Возможность включения/отключения мода.
| > - Возможность ограничения по форумам.
| > - возможность ограничения по группам.
|
| > Изменения в 1.0.3:
| > - Исправленн редирект обратно на пост, за который сказанно "спасибо".
| > - Исправленна ссылка на профиль сказавшего "спасибо".
|
| > Изменения в 1.0.2:
| > - Исправленна ошибка, в результате которой в списке сказавших
| > "спасибо" отображался еще и автор поста.
| > - Гости тоже могут видеть список сказавших "спасибо".
| > - Небольшое "косметическое" изменение в thanks.php.
|
+---------------------------------------------------------------------
|
| > Мод добавляет возможность зарегистрированным пользователям
| > сказать "спасибо" за ЛЮБОЙ пост другого пользователя.
| > Т.к. мод основан на моде от Unlovelt и использует тот же
| > принцип хранения в базе, он является полностью совместимым
| > с его базой.
|
+---------------------------------------------------------------------
|
| > Автор не несет никакой ответственности за любые действия,
| > произошедшие по вине этого модуля
| > Вы используете его на свой страх и риск
|
+---------------------------------------------------------------------
######################################################################
Загрузка дополнительных файлов на сервер:
======================================================================
Загружаем файл thanks.php в sources/action_public/
======================================================================
Загружаем thanks.gif в каталог с вашим стилем (style_images/*/)
======================================================================
Загружаем файл lang_thanks.php во все папки существующие в cache/lang_cache/
(например: /cache/lang_cache/ru/)
======================================================================
######################################################################
Импорт настроек:
======================================================================
ACP -> TOOLS & SETTINGS -> View All General Settings -> Import an XML settings file
Админцентр -> НАСТРОЙКИ -> Все основные настройки -> Импорт системных настроек (XML)
======================================================================
Загружаем XML с настройками (ipb_settings_thanks.xml).
======================================================================
######################################################################
Выполнение SQL-запросов ("ibf_" заменить на свой префикс!):
======================================================================
Для таблицы members:
----------------------------------------------------------------------
ALTER TABLE `ibf_members` ADD (thanks_point int( 11 ) NOT NULL default '0');
----------------------------------------------------------------------
Для таблицы posts:
----------------------------------------------------------------------
ALTER TABLE `ibf_posts` add (post_thanks text );
======================================================================
######################################################################
./index.php
======================================================================
Найти:
----------------------------------------------------------------------
"reg" => array( "register" , 'register' , array() ),
----------------------------------------------------------------------
Добавить Ниже:
----------------------------------------------------------------------
/*/ -- Thanks (by AVol) - Begin -- /*/
"thanks" => array( "thanks" , 'thanks' , array() ),
/*/ -- Thanks (by AVol) - End -- /*/
======================================================================
######################################################################
./sources/action_public/topics.php
======================================================================
Найти:
----------------------------------------------------------------------
$row['edit_button'] = $this->edit_button($row['pid'], $poster, $row['post_date']);
----------------------------------------------------------------------
Добавить Выше:
----------------------------------------------------------------------
/*/ -- Thanks (by AVol) - Begin -- /*/
if ($this->ipsclass->vars['thanks_mod_enable'])
{
$member_thanks = explode(',',$row['post_thanks']);
if ( ( in_array($this->topic['forum_id'], explode(',',$this->ipsclass->vars['thanks_forums'])) or (!$this->ipsclass->vars['thanks_forum_lim']) )
and ( in_array($this->ipsclass->member['mgroup'], explode(',',$this->ipsclass->vars['thanks_from_groups'])) or (!$this->ipsclass->vars['thanks_from_grp_lim']) )
and ( in_array($poster['mgroup'], explode(',',$this->ipsclass->vars['thanks_to_groups'])) or (!$this->ipsclass->vars['thanks_to_grp_lim']) )
and ($this->ipsclass->member['id']) )
{
if ( (!in_array($this->ipsclass->member['id'],$member_thanks)) and ($this->ipsclass->member['id'] != $row['author_id']) )
{
$row['thanks_button'] = $this->ipsclass->compiled_templates['skin_topic']->button_thanks($row['pid'] );
}
}
if ( ( in_array($this->ipsclass->member['mgroup'], explode(',',$this->ipsclass->vars['thanks_view_groups'])) or (!$this->ipsclass->vars['thanks_view_grp_lim']) )
and ( (count($member_thanks) > 0) && ($member_thanks[0] != "") ) )
{
$in_thanks = (count($member_thanks)==2) ? $row['post_thanks'] : implode(',',$member_thanks);
$this->ipsclass->DB->simple_construct( array( 'select' => '`id`, `members_display_name`', 'from' => 'members', 'where' => '`id` IN (' . $in_thanks . ')', 'order' => '`members_display_name` ASC') );
$this->ipsclass->DB->simple_exec();
while($who_thanks = $this->ipsclass->DB->fetch_row())
{
$show_thanks .= "<a href='{$this->ipsclass->base_url}showuser={$who_thanks['id']}' target='_blank'>" . $who_thanks['members_display_name'] . "</a>" . ', ';
}
$row['who_thanks'] = "<br /><br /><div class=\"thin\"><I>{$this->ipsclass->lang['thx_thanks_told']}:</I><div class=\"signature\">" . $show_thanks . "</div></div>";
}
}
/*/ -- Thanks (by AVol) - End -- /*/
======================================================================
######################################################################
./sources/ipclass.php
======================================================================
Найти:
----------------------------------------------------------------------
$member['message_icon'] = $this->compiled_templates[ $skin_file ]->member_icon_msg( $member['id'] );
----------------------------------------------------------------------
Добавить Ниже:
----------------------------------------------------------------------
/*/ -- Thanks (by AVol) - Begin -- /*/
if ($this->vars['thanks_mod_enable'])
{
if ($this->vars['thanks_history_enable'])
{
$member['thanks_point'] = "{$this->lang['thx_thanks_told']}: <a href='{$this->base_url}act=thanks&type=history&mid={$member['id']}' target='_blank'>" .
$member['thanks_point'] . " {$this->lang['thx_thanks_told_suf']}</a><br />";
}
else
{
$member['thanks_point'] = "{$this->lang['thx_thanks_told']}: " . $member['thanks_point'] . " {$this->lang['thx_thanks_told_suf']}<br />";
}
}
else
{
$member['thanks_point'] = "";
}
/*/ -- Thanks (by AVol) - End -- /*/
======================================================================
######################################################################
./sources/action_public/profile.php
======================================================================
Найти:
----------------------------------------------------------------------
$info['msn_name'] = $member['msnname'] ? $member['msnname'] : $this->ipsclass->lang['no_info'];
----------------------------------------------------------------------
Добавить Ниже:
----------------------------------------------------------------------
$info['thanks_point'] = $member['thanks_point'];
======================================================================
Найти:
----------------------------------------------------------------------
$info['posts'] = $this->ipsclass->do_number_format($info['posts']);
----------------------------------------------------------------------
Добавить Ниже:
----------------------------------------------------------------------
/*/ -- Thanks (by AVol) - Begin -- /*/
if ($this->ipsclass->vars['thanks_mod_enable'])
{
if ($this->ipsclass->vars['thanks_history_enable'])
{
$info['thanks_point'] = "{$this->ipsclass->lang['thx_thanks_told']}: <a href='{$this->ipsclass->base_url}act=thanks&type=history&mid={$member['id']}' target='_blank'>" .
$member['thanks_point'] . " {$this->ipsclass->lang['thx_thanks_told_suf']}</a><br />";
}
else
{
$info['thanks_point'] = "{$this->ipsclass->lang['thx_thanks_told']}: " . $member['thanks_point'] . " {$this->ipsclass->lang['thx_thanks_told_suf']}<br />";
}
}
else
{
$info['thanks_point'] = "";
}
/*/ -- Thanks (by AVol) - End -- /*/
======================================================================
######################################################################
./sources/action_public/memberlist.php
======================================================================
Найти:
----------------------------------------------------------------------
$the_sort_key = array( 'members_display_name' => 'sort_by_name',
'posts' => 'sort_by_posts',
'joined' => 'sort_by_joined',
----------------------------------------------------------------------
Добавить Ниже:
----------------------------------------------------------------------
/*/ -- Thanks (by AVol) - Begin -- /*/
'thanks_point' => 'thx_thanks_told_count',
/*/ -- Thanks (by AVol) - End -- /*/
======================================================================
######################################################################
./sources/classes/class_session.php
======================================================================
Найти:
----------------------------------------------------------------------
$this->ipsclass->DB->build_query( array( 'select' => "id, name, mgroup, member_login_key, email, restrict_post, view_sigs, view_avs, view_pop, view_img, auto_track,
mod_posts, language, skin, new_msg, show_popup, msg_total, time_offset, posts, joined, last_post, subs_pkg_chosen,
ignored_users, login_anonymous, last_visit, last_activity, dst_in_use, view_prefs, org_perm_id, mgroup_others, temp_ban, sub_end,
has_blog, members_markers, members_editor_choice, members_auto_dst, members_display_name, members_created_remote,
members_cache, members_disable_pm
----------------------------------------------------------------------
Добавить После:
----------------------------------------------------------------------
,thanks_point
======================================================================
######################################################################
./sources/sql/mysql_queries.php
======================================================================
Найти:
----------------------------------------------------------------------
function topics_get_posts_with_join( $a )
{
# topics.php
return "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,
pc.*
----------------------------------------------------------------------
Добавить После:
----------------------------------------------------------------------
,m.thanks_point
======================================================================
######################################################################
Редактирование языков
./cache/lang_cache/*/lang_topic.php
./cache/lang_cache/*/lang_profile.php
======================================================================
Найти:
----------------------------------------------------------------------
$lang = array (
----------------------------------------------------------------------
Добавить Ниже:
----------------------------------------------------------------------
/*/ -- Thanks (by AVol) - Begin -- /*/
'thx_thanks_told' => "Спасибо сказали",
'thx_thanks_told_suf' => "раз(а)",
/*/ -- Thanks (by AVol) - End -- /*/
======================================================================
######################################################################
./cache/lang_cache/*/lang_mlist.php
======================================================================
Найти:
----------------------------------------------------------------------
$lang = array (
----------------------------------------------------------------------
Добавить Ниже:
----------------------------------------------------------------------
/*/ -- Thanks (by AVol) - Begin -- /*/
'thx_thanks_told_count' => "Кол-во благодарностей",
/*/ -- Thanks (by AVol) - End -- /*/
======================================================================
######################################################################
Правка шаблонов. Выполнять следует для всех установленных скинов!
Admin CP -> LOOK & FEEL -> * -> Edit Template HTML
Админцентр -> ВНЕШНИЙ ВИД -> * -> Изменить HTML фрагменты
======================================================================
skin_topic (Просмотр темы/Topic View) -> RenderRow
----------------------------------------------------------------------
Найти:
----------------------------------------------------------------------
{$author['member_number']}<br />
----------------------------------------------------------------------
Добавить Ниже:
----------------------------------------------------------------------
{$author['thanks_point']}
----------------------------------------------------------------------
Найти:
----------------------------------------------------------------------
{$post['signature']}
----------------------------------------------------------------------
Добавить Ниже:
----------------------------------------------------------------------
{$post['who_thanks']}
----------------------------------------------------------------------
Найти:
----------------------------------------------------------------------
{$post['report_link']}
----------------------------------------------------------------------
Добавить После:
----------------------------------------------------------------------
{$post['thanks_button']}
----------------------------------------------------------------------
======================================================================
skin_profile (Просмотр профиля/Profile View) -> show_profile
----------------------------------------------------------------------
Найти:
----------------------------------------------------------------------
<!--{WARN_LEVEL}-->
----------------------------------------------------------------------
Добавить Ниже:
----------------------------------------------------------------------
<br/ >{$info['thanks_point']}
----------------------------------------------------------------------
======================================================================
skin_mlist (Список пользователей/Member List) -> mlist_page_end
----------------------------------------------------------------------
Найти:
----------------------------------------------------------------------
colspan="7"
----------------------------------------------------------------------
Заменить на:
----------------------------------------------------------------------
colspan="8"
----------------------------------------------------------------------
======================================================================
skin_mlist (Список пользователей/Member List) -> mlist_page_header
----------------------------------------------------------------------
Найти:
----------------------------------------------------------------------
<th align="center" width="10%">{ipb.lang['member_posts']}</th>
----------------------------------------------------------------------
Добавить Ниже:
----------------------------------------------------------------------
<th align="center" width="10%">{ipb.lang['thx_thanks_told_count']}</th>
----------------------------------------------------------------------
======================================================================
skin_mlist (Список пользователей/Member List) -> mlist_show_row
----------------------------------------------------------------------
Найти:
----------------------------------------------------------------------
<td class="row2" align="center" width="10%">{$member['posts']}</td>
----------------------------------------------------------------------
Добавить Ниже:
----------------------------------------------------------------------
<td class="row2" align="center" width="10%">{$member['thanks_point']}</td>
----------------------------------------------------------------------
======================================================================
Добавить шаблон/Add Template Bit
----------------------------------------------------------------------
Название фрагмента шаблона / New Template Bit Name :
----------------------------------------------------------------------
button_thanks
----------------------------------------------------------------------
Входящие переменные / New Template Bit Incoming Data Variables :
----------------------------------------------------------------------
$post
----------------------------------------------------------------------
Группа для фрагмента / New Template Bit Group :
----------------------------------------------------------------------
skin_topic
----------------------------------------------------------------------
Тело шаблона :
----------------------------------------------------------------------
<a href="index.php?act=thanks&type=add&f={$this->ipsclass->input[f]}&t={$this->ipsclass->input[t]}&pid={$post}" title="Thanks"><img src='style_images/<#IMG_DIR#>/thanks.gif' border='0' alt='Thanks' /></a>
----------------------------------------------------------------------
17 комментариев
Рекомендуемые комментарии