Wolf Messing Опубликовано 28 Февраля 2007 Жалоба Поделиться Опубликовано 28 Февраля 2007 Имеется форум на движке версии 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' => 'Деньги', При установке мода магазина случайно дропнута таблица, которая создаваеться этим запросом:ALTER TABLE `ibf_members` ADD `points` INT( 10 ) DEFAULT '100' NOT NULL;Таблица восстановлена заново. Перед установкой мода был сделан бэкап БД. Теперь надо к имеющимся сейчас значениям в этом поле в БД форума приплюсовать те, что были в БД на момент её бэкапа. Ссылка на комментарий Поделиться на других сайтах Прочее
SpeeN Опубликовано 28 Февраля 2007 Жалоба Поделиться Опубликовано 28 Февраля 2007 ну а прочитать мануал по мускулю ведь можно). На форуме много тем, где можно найти ответ (поиск). Из бекапа вырываются запросы и вгоняются в phpmyadmin Ссылка на комментарий Поделиться на других сайтах Прочее
Master Опубликовано 28 Февраля 2007 Жалоба Поделиться Опубликовано 28 Февраля 2007 Лучше сначала восстановить табоицу со всеми данными, а после этого добавить поле. Ссылка на комментарий Поделиться на других сайтах Прочее
Wolf Messing Опубликовано 28 Февраля 2007 Автор Жалоба Поделиться Опубликовано 28 Февраля 2007 Такое поле уже есть в существующей таблице. Задача сложить это поле для каждого юзера со значением поля из бэкапа БД. Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения