Имеется форум на движке версии 2.1.7. Установлен вот такой мод денег:
Xtreme Points System for IPB 2.1
Шаг 1: Админ Панель > Выполнить SQL запрос
ALTER TABLE `ibf_forums` ADD `points_post` INT( 10 ) DEFAULT '20' NOT NULL;
ALTER TABLE `ibf_forums` ADD `points_reply` INT( 10 ) DEFAULT '20' NOT NULL;
ALTER TABLE `ibf_members` ADD `points` INT( 10 ) DEFAULT '100' NOT NULL;
Здесь можно изменить:
'100' - начальное число денег. Рекомендую 0.00$
'20' - деньги, которые зачисляются за открытие новой темы. Рекомендую 0.02$
'10' - деньги, которые зачисляются за каждое новое сообщение. Рекомендую 0.01$
Шаг 2: Администрация
Открываем - ./skin_acp/IPB2_Standard/acp_skin_html/cp_skin_forums.php
--- Ищем ---
<tr>
<td width='40%' class='tablerow1'><strong>Выберите родительский форум или категорию</strong></td>
<td width='60%' class='tablerow2'>{$form['parent_id']}</td>
</tr>
--- Добавить после ---
<tr>
<td width='40%' class='tablerow1'><strong>Новая почтовая награда</strong></td>
<td width='60%' class='tablerow2'>{$form['points_post']}</td>
</tr>
<tr>
<td width='40%' class='tablerow1'><strong>Награда ответа</strong></td>
<td width='60%' class='tablerow2'>{$form['points_reply']}</td>
</tr>
<<< СОХРАНЯЕМ >>>
Открываем - ./sources/action_admin/forums.php
--- Ищем ---
//-----------------------------------------
// NEW
//-----------------------------------------
else
{
$forum = array(
'sub_can_post' => $subcanpost,
'name' => $f_name,
'parent_id' => $parentid,
--- После добавляем ---
'points_post' => '20',
'points_reply' => '20',
--- Ищем ---
# Main settings
$form['name'] = $this->ipsclass->adskin->form_input( 'name' , $this->ipsclass->parse_clean_value( $_POST['name'] ) ? $this->ipsclass->parse_clean_value( $_POST['name'] ) : $forum['name'] );
$form['description'] = $this->ipsclass->adskin->form_textarea("description" , $this->ipsclass->my_br2nl( $_POST['description'] ? $_POST['description'] : $forum['description'] ) );
$form['parent_id'] = $this->ipsclass->adskin->form_dropdown("parent_id" , $forumlist, $_POST['parent_id'] ? $_POST['parent_id'] : $forum['parent_id'] );
--- Добавляем после ---
$form['points_post'] = $this->ipsclass->adskin->form_input('points_post' , $_POST['points_post'] ? $_POST['points_post'] : $forum['points_post'] );
$form['points_reply'] = $this->ipsclass->adskin->form_input('points_reply' , $_POST['points_reply'] ? $_POST['points_reply'] : $forum['points_reply'] );
--- Ищем ---
'parent_id' => intval($this->ipsclass->input['parent_id']),
--- Добавляем после ---
'points_post' => intval($this->ipsclass->input['points_post']),
'points_reply' => intval($this->ipsclass->input['points_reply']),
<<< СОХРАНЯЕМ >>>
Открываем ./sources/action_admin/member.php
--- Ищем ---
$this->ipsclass->html .= $this->ipsclass->adskin->add_td_row( array( "<b>Количество сообщений</b>" ,
$this->ipsclass->adskin->form_input("posts", $mem['posts'])
) );
--- Добавляем после ---
$this->ipsclass->html .= $this->ipsclass->adskin->add_td_row( array( "<b>Деньги</b>" ,
$this->ipsclass->adskin->form_input("points", $mem['points'])
) );
--- Ищем ---
'posts' => $this->ipsclass->input['posts'],
---Добавляем после ---
'points' => $this->ipsclass->input['points'],
<<< СОХРАНЯЕМ >>>
Шаг 3: Главная часть
Открываем ./sources/action_public/profile.php
--- Ищем ---
//-----------------------------------------
// Get custom profile information
//-----------------------------------------
require_once( ROOT_PATH.'sources/classes/class_custom_fields.php' );
$fields = new custom_fields( $this->ipsclass->DB );
$fields->member_id = $this->ipsclass->member['id'];
$fields->mem_data_id = $member['id'];
$fields->cache_data = $this->ipsclass->cache['profilefields'];
$fields->admin = intval($this->ipsclass->member['g_access_cp']);
$fields->supmod = intval($this->ipsclass->member['g_is_supmod']);
$fields->init_data();
$fields->parse_to_view();
--- Добавляем после ---
$custom_out .= $this->ipsclass->compiled_templates['skin_profile']->custom_field($this->ipsclass->lang['points'] , $this->ipsclass->do_number_format($member['points']) );
<<< СОХРАНЯЕМ >>>
Открываем ./sources/action_public/topics.php
--- Ищем ---
//-----------------------------------------
// Profile fields stuff
//-----------------------------------------
if ( $this->ipsclass->vars['custom_profile_topic'] == 1 )
{
--- Добавляем после ---
$member['custom_fields'] .= "\n".$this->ipsclass->lang['points'].': '.$this->ipsclass->do_number_format($member['points']).'<br />';
<<< СОХРАНЯЕМ >>>
Открываем ./sources/classes/post/class_post.php
--- Ищем ---
/*-------------------------------------------------------------------------*/
// Increment user's post
// ------------------
// if +1 post, +1 member's cumulative
/*-------------------------------------------------------------------------*/
function pf_increment_user_post_count()
--- Добавляем перед ---
/*-------------------------------------------------------------------------*/
// Increase/Decrease Points
/*-------------------------------------------------------------------------*/
function pf_update_user_points($points_type)
{
$pcount = "";
if ($this->ipsclass->member['id'])
{
$pcount = "points=points+".$this->forum[$points_type];
$this->ipsclass->DB->simple_construct( array( 'update' => 'members',
'set' => $pcount,
'where' => 'id='.$this->ipsclass->member['id']
) );
$this->ipsclass->DB->simple_exec();
}
}
<<< СОХРАНЯЕМ >>>
Открываем ./sources/classes/post/class_post_new.php
--- Ищем ---
//-----------------------------------------
// If we are a member, lets update thier last post
// date and increment their post count.
//-----------------------------------------
$this->pf_increment_user_post_count();
--- Добавляем перед ---
//-----------------------------------------
// If we are a member, update points
//-----------------------------------------
$this->pf_update_user_points('points_post');
<<< СОХРАНЯЕМ >>>
Открываем ./sources/classes/post/class_post_reply.php
--- Ищем ---
//-----------------------------------------
// If we are a member, lets update thier last post
// date and increment their post count.
//-----------------------------------------
if ( ! $this->is_merging_posts )
{
$this->pf_increment_user_post_count();
}
--- Добавляем перед ---
//-----------------------------------------
// If we are a member, update points
//-----------------------------------------
if ( ! $this->is_merging_posts )
{
$this->pf_update_user_points('points_reply');
}
<<< СОХРАНЯЕМ >>>
Открываем ./sources/sql/mysql_queries.php
--- Ищем ---
function topics_get_posts( $a )
{
# topics.php
return "SELECT p.*,
--- Добавляем после p.*, ---
m.points,
--- Ищем ---
function topics_get_posts_with_join( $a )
{
# topics.php
return "SELECT p.*,
--- Добавляем Добавляем после p.*, ---
m.points,
<<< СОХРАНЯЕМ >>>
Открываем ./cache/lang_cache/ru/lang_global.php
--- Ищем ---
$lang = array (
--- Добавляем после ---
'points' => 'Деньги',
Нужно пользователям с определёнными id(около 30-50 человек) прплюсовать через БД к имеющимся деньгам ещё определённую сумму(одну и ту же). Подскажите, как можно это сделать через запрос к БД.
Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.
Вопрос
Wolf Messing
Имеется форум на движке версии 2.1.7. Установлен вот такой мод денег:
Нужно пользователям с определёнными id(около 30-50 человек) прплюсовать через БД к имеющимся деньгам ещё определённую сумму(одну и ту же). Подскажите, как можно это сделать через запрос к БД.
Ссылка на комментарий
Поделиться на других сайтах
2 ответа на этот вопрос
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.