New
PeoplePress is here. Community building for WordPress, reimagined. Fast, modern, and built for the communities you've always wanted to run.
See it live

BuddyDev

Search

Integrate Wise Cha Pro in BuddyPress/bp-notifications

Tagged: 

  • Participant
    Level: Initiated
    Posts: 5
    marcin on #24116

    You are the best specialist buddypress and other plugins.
    Thanks.
    I want to ask two questions:
    I have two possibilities in the plugin:
    1) E-mail Notifications: Notify the administrator when a message is posted in the chat. E-mail notifications: Configure notifications sent to admin;
    2) Notifications signaling new users, new users, absent users or mentioned users. It can be found in the browser.
    Question one:
    What to do, that the letters were sent not to the administrator, but to the recipient of the message?
    Second question:
    How to integrate the function: Notifications signaling new users, new users, absent users or referred users. It can be found in the browser, with a function
    BuddyPress/bp-notifications?
    Please download the free plugin wise-chat-pro link:
    http://discuse.com/music-video-collection/
    or from the website: discuse.com

  • Keymaster
    (BuddyDev Team)
    Posts: 25509
    Brajesh Singh on #24130

    Hi marcin ,
    Welcome to BuddyDev.

    I am sorry, I haven’t used wisepro chat, so I am not familiar with what they offer out of the box. I can still assist but I need to know a few things:-

    1. I believe, They should have this option out of the box. Have you asked them about it? If they do not support it, I will assist you(will check the code feasibility).

    2. Please clarify what you want to achieve here. I am sorry but I could not understand it. Please help me understand it better.

    Thank you
    Brajesh

  • Participant
    Level: Initiated
    Posts: 5
    marcin on #24137

    Hi Brajesh Singh,

    I have a theme BuddyBoss. It is integrated into the plugin Buddypress/bp-notifications.
    Chat is not integrated in Buddypress/bp-notifications.
    How to integrate chat in buddypress/bp-notifications?

    Chat Features:
    BuddyPress integration: Integrate Wise Chat Pro into BuddyPress groups, friends.

    Subject and Chat added on site: Discuse.com

    Thanks

  • Participant
    Level: Initiated
    Posts: 5
    marcin on #24138

    I can send you a plugin:
    wise-chat-pro.
    Please let me know your email.

  • Participant
    Level: Initiated
    Posts: 5
    marcin on #24140

    I asked them about it.
    They are not familiar with buddypress.
    Only you can help.

    I publish copies from files:
    File: wise-chat-pro/src/integrations/WiseChatBuddyPressGroupExtension.php
    /**
    * Wise Chat BuddyPress group.
    *
    * @author Kainex <[email protected]>
    */
    class WiseChatBuddyPressGroupExtension extends BP_Group_Extension {
    const DEFAULT_NAV_ITEM_POSITION = 40;
    const DEFAULT_NAV_ITEM_NAME = ‘Chat’;

    /**
    * @var WiseChatOptions
    */
    private $options;

    public function __construct() {
    $this->options = WiseChatOptions::getInstance();

    $args = array(
    ‘slug’ => ‘chat’,
    ‘name’ => $this->localize(‘message_bp_manage_tab_name’, ‘Chat’),
    ‘nav_item_name’ => self::DEFAULT_NAV_ITEM_NAME,
    ‘nav_item_position’ => self::DEFAULT_NAV_ITEM_POSITION,
    );

    $id = groups_get_groupmeta($this->get_group_id(), ‘bp_wisechat_id’);
    $isEnabled = groups_get_groupmeta($this->get_group_id(), ‘bp_wisechat_enabled’) == true;
    $navItemPosition = intval(groups_get_groupmeta($this->get_group_id(), ‘bp_wisechat_nav_item_position’));
    $navItemName = groups_get_groupmeta($this->get_group_id(), ‘bp_wisechat_nav_item_name’);
    if (!$isEnabled) {
    $args[‘show_tab’] = ‘noone’;
    }
    if ($navItemPosition > 0) {
    $args[‘nav_item_position’] = $navItemPosition;
    }
    if (strlen($navItemName) > 0) {
    $args[‘nav_item_name’] = $navItemName;
    }
    if (strlen($id) === 0) {
    $id = ‘bp-chat-‘.$this->get_group_id().’-‘.substr(md5($this->get_group_id().time()), 0, 6);
    groups_update_groupmeta($this->get_group_id(), ‘bp_wisechat_id’, $id);
    }

    parent::init($args);
    }

    public function display($groupId = null) {
    $groupId = bp_get_group_id();
    $isEnabled = groups_get_groupmeta($groupId, ‘bp_wisechat_enabled’) == true;
    $id = groups_get_groupmeta($this->get_group_id(), ‘bp_wisechat_id’);
    $attributes = groups_get_groupmeta($groupId, ‘bp_wisechat_attributes’);
    $parsedAttributes = strlen($attributes) > 0 ? shortcode_parse_atts($attributes) : array();

    if ($isEnabled) {
    if (function_exists(‘wise_chat’)) {
    $parsedAttributes[‘channel’] = $id;

    $wiseChat = WiseChatContainer::get(‘WiseChat’);
    echo $wiseChat->getRenderedShortcode($parsedAttributes);
    $wiseChat->registerResources();
    }
    }
    }

    public function settings_screen($groupId = null ) {
    $isEnabled = groups_get_groupmeta($groupId, ‘bp_wisechat_enabled’);
    $navItemPosition = intval(groups_get_groupmeta($groupId, ‘bp_wisechat_nav_item_position’));
    $navItemName = groups_get_groupmeta($groupId, ‘bp_wisechat_nav_item_name’);
    $isPermissionModDeleteMessagesGranted = groups_get_groupmeta($groupId, ‘bp_wisechat_permissions_mod_delete_messages’);
    $isPermissionModBanUsersGranted = groups_get_groupmeta($groupId, ‘bp_wisechat_permissions_mod_ban_users’);
    $isPermissionAdminDeleteMessagesGranted = groups_get_groupmeta($groupId, ‘bp_wisechat_permissions_admin_delete_messages’);
    $isPermissionAdminBanUsersGranted = groups_get_groupmeta($groupId, ‘bp_wisechat_permissions_admin_ban_users’);
    $attributes = groups_get_groupmeta($groupId, ‘bp_wisechat_attributes’);
    if ($navItemPosition == 0) {
    $navItemPosition = self::DEFAULT_NAV_ITEM_POSITION;
    }
    if (strlen($navItemName) === 0) {
    $navItemName = self::DEFAULT_NAV_ITEM_NAME;
    }
    ?>
    <label for=”bp_wisechat_enabled”><?php echo $this->localize(‘message_bp_manage_enable_chat’, ‘Enable Chat’); ?></label>
    <input type=”checkbox” value=”1″ tabindex=”0″ id=”bp_wisechat_enabled” name=”bp_wisechat_enabled” <?php echo $isEnabled ? ‘checked’: ”; ?> />
    <br />
    <label for=”bp_wisechat_nav_item_position”><?php echo $this->localize(‘message_bp_manage_tab_position’, ‘Tab Position’); ?></label>
    <input name=”bp_wisechat_nav_item_position” id=”bp_wisechat_nav_item_position” value=”<?php echo $navItemPosition; ?>” aria-required=”true” type=”number” style=”width: 80px;” />
    <br />
    <label for=”bp_wisechat_nav_item_name”><?php echo $this->localize(‘message_bp_manage_tab_label’, ‘Tab Label’); ?></label>
    <input name=”bp_wisechat_nav_item_name” id=”bp_wisechat_nav_item_name” value=”<?php echo $navItemName; ?>” aria-required=”true” type=”text” />
    <br />
    <label for=”bp_wisechat_nav_item_name”><?php echo $this->localize(‘message_bp_manage_permissions’, ‘Permissions’); ?></label>
    <p>
    <label for=”bp_wisechat_permissions_mod_delete_messages”>
    <input type=”checkbox” value=”1″ tabindex=”0″ id=”bp_wisechat_permissions_mod_delete_messages” name=”bp_wisechat_permissions_mod_delete_messages” <?php echo $isPermissionModDeleteMessagesGranted ? ‘checked’: ”; ?> />
    <?php echo $this->localize(‘message_bp_manage_permissions_mods_delete’, ‘Allow mods to delete messages’); ?>
    </label>
    <label for=”bp_wisechat_permissions_mod_ban_users”>
    <input type=”checkbox” value=”1″ tabindex=”0″ id=”bp_wisechat_permissions_mod_ban_users” name=”bp_wisechat_permissions_mod_ban_users” <?php echo $isPermissionModBanUsersGranted ? ‘checked’: ”; ?> />
    <?php echo $this->localize(‘message_bp_manage_permissions_mods_ban’, ‘Allow mods to ban users’); ?>
    </label>

    <label for=”bp_wisechat_permissions_admin_delete_messages”>
    <input type=”checkbox” value=”1″ tabindex=”0″ id=”bp_wisechat_permissions_admin_delete_messages” name=”bp_wisechat_permissions_admin_delete_messages” <?php echo $isPermissionAdminDeleteMessagesGranted ? ‘checked’: ”; ?> />
    <?php echo $this->localize(‘message_bp_manage_permissions_admins_delete’, ‘Allow admins to delete messages’); ?>
    </label>
    <label for=”bp_wisechat_permissions_admin_ban_users”>
    <input type=”checkbox” value=”1″ tabindex=”0″ id=”bp_wisechat_permissions_admin_ban_users” name=”bp_wisechat_permissions_admin_ban_users” <?php echo $isPermissionAdminBanUsersGranted ? ‘checked’: ”; ?> />
    <?php echo $this->localize(‘message_bp_manage_permissions_admins_ban’, ‘Allow admins to ban users’); ?>
    </label>
    <small>
    <?php echo $this->localize(‘message_bp_manage_notice’, ‘Notice:’); ?>
    <?php echo $this->localize(‘message_bp_manage_notice_text’, ‘These permissions will work only with enabled admin actions in Wise Chat Pro settings’); ?>
    </small>
    </p>
    <label for=”bp_wisechat_attributes”><?php echo $this->localize(‘message_bp_manage_shortcode’, ‘Wise Chat Pro detailed parameters (shortcode syntax required)’); ?></label>
    <textarea name=”bp_wisechat_attributes” id=”bp_wisechat_attributes” aria-required=”true”><?php echo $attributes; ?></textarea>
    <small><?php echo $this->localize(‘message_bp_manage_shortcode_example’, ‘Example:’); ?> window_title=”The Chat” show_users=”1″</small>
    <br />
    <br />
    <p style=”float: right;”>

    options->getBaseDir() ?>/gfx/misc/powered-by-wise-chat-pro.png” alt=”Wise Chat Pro plugin for WordPress” />

    </p>
    <br style=”clear: both;” />
    <?php
    }

    public function settings_screen_save($groupId = null) {
    $this->saveBooleanGroupMeta($groupId, ‘bp_wisechat_enabled’, false);
    $this->saveIntegerGroupMeta($groupId, ‘bp_wisechat_nav_item_position’, self::DEFAULT_NAV_ITEM_POSITION);
    $this->saveStringGroupMeta($groupId, ‘bp_wisechat_nav_item_name’, self::DEFAULT_NAV_ITEM_NAME);
    $this->saveBooleanGroupMeta($groupId, ‘bp_wisechat_permissions_mod_delete_messages’, false);
    $this->saveBooleanGroupMeta($groupId, ‘bp_wisechat_permissions_mod_ban_users’, false);
    $this->saveBooleanGroupMeta($groupId, ‘bp_wisechat_permissions_admin_delete_messages’, false);
    $this->saveBooleanGroupMeta($groupId, ‘bp_wisechat_permissions_admin_ban_users’, false);
    $this->saveLongStringGroupMeta($groupId, ‘bp_wisechat_attributes’, ”);
    }

    private function localize($key, $default) {
    return $this->options->getEncodedOption($key, $default);
    }

    private function saveBooleanGroupMeta($groupId, $postKey, $default) {
    groups_update_groupmeta($groupId, $postKey, array_key_exists($postKey, $_POST) && $_POST[$postKey] == ‘1’ ? true : $default);
    }

    private function saveIntegerGroupMeta($groupId, $postKey, $default) {
    groups_update_groupmeta(
    $groupId, $postKey,
    array_key_exists($postKey, $_POST) && intval($_POST[$postKey]) > 0
    ? intval($_POST[$postKey])
    : $default
    );
    }

    private function saveStringGroupMeta($groupId, $postKey, $default) {
    groups_update_groupmeta(
    $groupId, $postKey,
    array_key_exists($postKey, $_POST) && strlen($_POST[$postKey]) > 0
    ? htmlentities($_POST[$postKey], ENT_QUOTES, ‘UTF-8’)
    : $default
    );
    }

    private function saveLongStringGroupMeta($groupId, $postKey, $default) {
    groups_update_groupmeta(
    $groupId, $postKey,
    array_key_exists($postKey, $_POST) && strlen($_POST[$postKey]) > 0
    ? htmlentities($_POST[$postKey], ENT_NOQUOTES, ‘UTF-8’)
    : $default
    );
    }

    }
    _______________________________________________________________________________
    File: wise-chat-pro/ wise-chat-core.php
    function wise_chat_bp_init() {
    $options = WiseChatOptions::getInstance();
    if ($options->isOptionEnabled(‘enable_buddypress’, false) && (bp_is_active( ‘groups’ ) || class_exists(‘BP_Group_Extension’, false))) {
    WiseChatContainer::load(‘integrations/buddypress/WiseChatBuddyPressGroupExtension’);
    bp_register_group_extension(‘WiseChatBuddyPressGroupExtension’);
    }
    }
    add_action(‘bp_include’, ‘wise_chat_bp_init’);

  • Keymaster
    (BuddyDev Team)
    Posts: 25509
    Brajesh Singh on #24148

    Hi,
    I have received the plugin from your initial link.
    Please allow me 1-2 days to take a look at it and assist you.

    Thank you
    Brajesh

  • Participant
    Level: Initiated
    Posts: 5
    marcin on #24245

    Hi Brajesh Singh,

    Addition:
    wise-chat-pro/src/WiseChat.php
    /**
    * @return string
    */
    private function getCheckSum() {
    $checkSumData = is_array($this->shortCodeOptions) ? $this->shortCodeOptions : array();
    $checkSumData[‘_sid’] = session_id();
    $checkSumData[‘_sn’] = session_name();
    $checkSumData[‘ts’] = time();
    if ($this->options->isOptionEnabled(‘enable_buddypress’, false) && function_exists(“bp_is_group”) && bp_is_group()) {
    $checkSumData[‘_bpg’] = bp_get_group_id();
    }

    return base64_encode(WiseChatCrypt::encrypt(serialize($checkSumData)));
    }

  • Participant
    Level: Initiated
    Posts: 5
    marcin on #24246

    Addition:
    wise-chat-pro/src/services/ChatUserService.php
    /**
    * Checks if the first given user can communicate with the second user.
    *
    * @param WiseChatUser $user
    * @param WiseChatUser $associatedUser
    * @return bool
    */
    public function isUsersConnectionAvailable($user, $associatedUser) {
    if (!$this->options->isOptionEnabled(‘enable_buddypress’, false)) {
    return true;
    }
    if (!$this->options->isOptionEnabled(‘users_list_bp_users_only’, false)) {
    return true;
    }

    if ($user === null || $associatedUser === null) {
    return false;
    }

    if (!($user->getWordPressId() > 0) || !($associatedUser->getWordPressId() > 0)) {
    return false;
    }

    if ($user->getWordPressId() == $associatedUser->getWordPressId()) {
    return true;
    }

    if (function_exists(‘friends_check_friendship’)) {
    return friends_check_friendship($user->getWordPressId(), $associatedUser->getWordPressId());
    }

    return false;
    }

You must be logged in to reply to this topic.

This topic is: not resolved