Jump to content

Слетают дополнительные группы в ibEconomy


Trotor
 Share

Recommended Posts

Есть такая опция для форумного приложения ibEconomy - покупка другой группы за виртуальную форумную валюту. В моём случае это второстепенные группы.

Так вот, всё нормально работает, но есть один баг. Если пользователь состоит уже в какой то второстепенной группе (или группах), то при активации этой опции, все эти группы второстепенные слетают.

Как это поправить? Пробовал править файл который отвечает за это, ничего не помогает. Вот этот файл:change_member_group.php

Помогите пожалуйста исправить этот баг.

Edited by Haktar
Link to comment
Share on other sites

$newSecondaryGrps = ( $member['mgroup_others'] ) ? $member['mgroup_others'].$newGroup.',' : ','.$newGroup.',';

Заменить на 

$newSecondaryGrps = IPSText::cleanPermString($member['mgroup_others'] . ',' . $newGroup);

 

  • Upvote 1
Link to comment
Share on other sites

Ещё вопрос. А как можно сделать дополнительные группы временные? Что бы скажем через месяц к примеру, автоматом такая группа снималась.

Link to comment
Share on other sites

  • 1 year later...

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

Есть хук, который даёт баллы за комментарии в профиле, как этот хук изменить что бы выдавалась за публикации в Календаре?

ibEconomyPointsPerProfCom.xml

Edited by Trotor
Link to comment
Share on other sites

7 часов назад, siv1987 сказал:

Отсюда никак, нужно захукать место при добавлении публикации в календаре если такой hookPoint существует.

Не понял. Нужно внести новую инфу в какой то файл приложения?

Link to comment
Share on other sites

В этом хуке нужно создать новый хук (да да) - в режиме разработчика войти в его настройках и добавить новый хук для вашего экшена. Правкой файла то что вы хотите не сделать. 

Информация по созданию хуков в IPB 3.x https://ipbskins.ru/forums/topic/10049-hook-pomogite-s-api/

 

Link to comment
Share on other sites

3 часа назад, siv1987 сказал:

В этом хуке нужно создать новый хук (да да) - в режиме разработчика войти в его настройках и добавить новый хук для вашего экшена. Правкой файла то что вы хотите не сделать. 

Для меня это впервой.

Вы это имеете в виду?

2021-03-24_021635.thumb.jpg.62f7bde74fb97b66fec9fc6f6664f4b6.jpg 

3 часа назад, siv1987 сказал:

Информация по созданию хуков в IPB 3.x https://ipbskins.ru/forums/topic/10049-hook-pomogite-s-api/

Почитал. И ещё больше запутался.

Link to comment
Share on other sites

24.03.2021 в 02:16, Trotor сказал:

Почитал. И ещё больше запутался.

Пробовал, ничего у меня не получилось.

Link to comment
Share on other sites

  • 1 year later...
Posted (edited)
27.01.2020 в 03:36, Trotor сказал:

Так вот, всё нормально работает, но есть один баг. Если пользователь состоит уже в какой то второстепенной группе (или группах), то при активации этой опции, все эти группы второстепенные слетают.

А можно ещё и этот файл поправить? Что бы перемещало не в основную группу, а в второстепенную?

promote_to_vip.php

Edited by Trotor
Link to comment
Share on other sites

04.10.2022 в 00:33, Trotor сказал:

А можно ещё и этот файл поправить? Что бы перемещало не в основную группу, а в второстепенную?

Заменил в файле строку:
$permanente = array( 'mgroup_others' => $vipGroup, 'sospromote_vip' => 1, 'sospromote_vip_g_origem' => $user['member_group_id'], 'sospromote_vip_eterno' => $permanent, 'sospromote_vip_dias' => $numDays );

На:
$permanente = array( 'member_group_id' => $vipGroup, 'sospromote_vip' => 1, 'sospromote_vip_g_origem' => $user['member_group_id'], 'sospromote_vip_eterno' => $permanent, 'sospromote_vip_dias' => $numDays );

Работает. Однако при истечении срока, пользователь вообще остаётся без какой либо группы. Что я не правильно сделал?

Link to comment
Share on other sites

Собственно разобрался со всем, однако есть один маленький нюанс - при истечении срока, нужно что бы дополнительная группа удалялась с списков у форумчанина. Как мне это реализовать?

Скрытый текст

    public function doUseItem($user, $numDays, $vipGroup, $permanent)
    {    
        $this->_sospromoteDoAddMember($user, $numDays, $vipGroup, $permanent);

            $secondaryGroups = explode(",", $user['mgroup_others']);

            if ( !in_array( $vipGroup, $secondaryGroups ) )
            {
                $secondaryGroups[] = $vipGroup;
                $vipGroup = implode(",", $secondaryGroups).",";
                $vipGroup = strpos($vipGroup, ",") === 0 ? $vipGroup : ",".$vipGroup;
                
                IPSMember::save( $user['member_id'], array( 'members' => array( 'mgroup_others' => $vipGroup ) ) );
            }
    }

 

Edited by Trotor
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...