public function __construct($post_id = -1) { // maybe bugs with this $post_id = $post_id != -1 ? $post_id : ($post_id = url_to_postid(wp_get_referer())); $this->buddypress_id = get_post_meta($post_id, 'buddypress_id', true); $forum_id = bbp_get_group_forum_ids($this->buddypress_id); $forum_id = !empty($forum_id) ? $forum_id[0] : null; $this->forumId = $forum_id; $this->translation = $this->_getTranslationList(); }
/** * Define, if need, and return forum id (by $_REQUEST['postId']) * * @return int - id of current forum */ private function defineForumId() { if ($this->forumId != -1) { return $this->forumId; } $buddypress_id = get_post_meta($_REQUEST['postId'], 'buddypress_id', true); $forumList = bbp_get_group_forum_ids($buddypress_id); $forumId = !empty($forumList) ? $forumList[0] : null; $this->forumId = $forumId; return $forumId; }
public static function EnrolledCourse($student_id, $course_id, $status) { global $wpdb; $group_id = get_post_meta($course_id, 'buddypress_id', true); // Get BuddyPress $bp = buddypress(); $group = $wpdb->get_row($wpdb->prepare("SELECT g.* FROM {$bp->groups->table_name} g WHERE g.id = %d", $group_id)); groups_invite_user(array('user_id' => $student_id, 'group_id' => $group_id, 'inviter_id' => $group->creator_id, 'date_modified' => bp_core_current_time(), 'is_confirmed' => 1)); $forums = bbp_get_group_forum_ids($group_id); bbp_add_user_forum_subscription(bbp_get_current_user_id(), $forums[0]); }
public static function addUserFromCourseToGroup($courseId, $groupId) { global $wpdb; if (get_current_user_id() != 30) { return; } $bp = buddypress(); $group = $wpdb->get_row($wpdb->prepare("SELECT g.* FROM {$bp->groups->table_name} g WHERE g.id = %d", $groupId)); $userIdList = $wpdb->get_results($wpdb->prepare("SELECT user_id FROM `wp_namaste_student_courses` WHERE course_id=%d", $courseId)); foreach ($userIdList as $userId) { groups_invite_user(array('user_id' => $userId->user_id, 'group_id' => $groupId, 'inviter_id' => $group->creator_id, 'date_modified' => bp_core_current_time(), 'is_confirmed' => 1)); $forums = bbp_get_group_forum_ids($groupId); bbp_add_user_forum_subscription($userId, $forums[0]); } }
public function topic_parent() { $forum_ids = bbp_get_group_forum_ids(bp_get_current_group_id()); ?> <p> <label for="bbp_forum_id"><?php esc_html_e('Forum:', 'bbpress'); ?> </label><br /> <?php bbp_dropdown(array('include' => $forum_ids, 'selected' => bbp_get_form_topic_forum())); ?> </p> <?php }
function og_groups_update_num_posts_and_rank_options($args = array()) { // wp-content/plugins/buddypress/bp-groups/bp-groups-forums.php //error_log("og group post count here ".print_r($args,true)); //echo "og here"; $group_id = 0; $og_my_postcount = 0; //error_log("og group post count here"); $group = groups_get_current_group(); //Taken from wp-content/plugins/bbpress/includes/extend/buddypress/groups.php // Not posting from a BuddyPress group? stop now! if (!empty($group)) { $group_id = $group->id; //bp_get_current_group_id(); //$bp->groups->current_group->id; error_log("og group post count id " . $group_id); } else { return $args; } //Taken from wp-content/plugins/bbpress/includes/extend/buddypress/groups.php $my_forum_ids = bbp_get_group_forum_ids($my_group_id); $forum_id = null; // Get the first forum ID if (!empty($my_forum_ids)) { $forum_id = (int) is_array($my_forum_ids) ? $my_forum_ids[0] : $my_forum_ids; $og_my_postcount = bbp_show_lead_topic() ? bbp_get_forum_reply_count($forum_id) : bbp_get_forum_post_count($forum_id); } // Update the group's post count //error_log("og group post count ".$og_my_postcount); groups_update_groupmeta($group_id, 'og_num_posts', $og_my_postcount); // Taken from p-content/plugins/buddypress/bp-groups/bp-groups-forums.php // Update the group's rank, based on its previous rank $og_rank_arg = 'og_rank'; // Get the previous rank $og_prev_grp_rank = groups_get_groupmeta($group_id, $og_rank_arg); //error_log("og group post rank ".empty($og_prev_grp_rank)); // If the rank doesn't exist yet, make it 0 if (empty($og_prev_grp_rank == null)) { $og_prev_grp_rank = 0; } // Update the rank as follows: rank = .7*prev rank + .3*current unix time // groups_update_groupmeta .5*og_rank+.5*lastactivitytimeinunix groups_update_groupmeta($group_id, $og_rank_arg, 0.7 * $og_prev_grp_rank + 0.3 * microtime(true)); return $args; }
/** * Remove a group from aall forums * * @param type $group_id * @since bbPress (r3653) */ function bbp_remove_group_id_from_all_forums($group_id = 0) { // Use current group if none is set if (empty($group_id)) { $group_id = bp_get_current_group_id(); } // Get current group IDs $forum_ids = bbp_get_group_forum_ids($group_id); // Loop through forums and remove this group from each one foreach ((array) $forum_ids as $forum_id) { bbp_remove_group_id_from_forum($group_id, $forum_id); } }
function bp_group_organizer_import_group($group, $args = array()) { if (empty($group['name'])) { return false; } if (isset($group['path'])) { if (bpgo_is_hierarchy_available()) { // Try to place the group in the requested spot, but if the spot doesn't exist (e.g. because of slug conflicts) // then place it as far down the tree as possible $parent_path = $group['path']; do { $parent_path = dirname($parent_path); $parent_id = BP_Groups_Hierarchy::get_id_from_slug($parent_path); } while ($parent_path != '.' && $parent_id == 0); $group['parent_id'] = $parent_id ? $parent_id : 0; } $group['slug'] = basename($group['path']); unset($group['path']); } $group['slug'] = groups_check_slug($group['slug']); $group_id = groups_create_group($group); if (!$group_id) { return false; } groups_update_groupmeta($group_id, 'total_member_count', 1); if (bpgo_is_hierarchy_available()) { $obj_group = new BP_Groups_Hierarchy($group_id); $obj_group->parent_id = (int) $group['parent_id']; $obj_group->save(); } // Create the forum if enable_forum is checked if ($group['enable_forum']) { // Ensure group forums are activated, and group does not already have a forum if (bp_is_active('forums')) { // Check for BuddyPress group forums if (!groups_get_groupmeta($group_id, 'forum_id')) { groups_new_group_forum($group_id, $group['name'], $group['description']); } } else { if (function_exists('bbp_is_group_forums_active') && bbp_is_group_forums_active()) { // Check for bbPress group forums if (count(bbp_get_group_forum_ids($group_id)) == 0) { // Create the group forum - implementation from BBP_Forums_Group_Extension:create_screen_save // Set the default forum status switch ($group['status']) { case 'hidden': $status = bbp_get_hidden_status_id(); break; case 'private': $status = bbp_get_private_status_id(); break; case 'public': default: $status = bbp_get_public_status_id(); break; } // Create the initial forum $forum_id = bbp_insert_forum(array('post_parent' => bbp_get_group_forums_root_id(), 'post_title' => $group['name'], 'post_content' => $group['description'], 'post_status' => $status)); bbp_add_forum_id_to_group($group_id, $forum_id); bbp_add_group_id_to_forum($forum_id, $group_id); } } } } do_action('bp_group_organizer_import_group', $group_id); return $group_id; }
function bp_group_organizer_admin_page() { global $wpdb; // Permissions Check if (!current_user_can('manage_options')) { wp_die(__('Cheatin’ uh?')); } // Load all the nav menu interface functions require_once 'includes/group-meta-boxes.php'; require_once 'includes/group-organizer-template.php'; require_once 'includes/group-organizer.php'; // Container for any messages displayed to the user $messages = array(); // Container that stores the name of the active menu $nav_menu_selected_title = ''; // Allowed actions: add, update, delete $action = isset($_REQUEST['action']) ? $_REQUEST['action'] : 'edit'; $errored = false; switch ($action) { case 'add-group': check_admin_referer('add-group', 'group-settings-column-nonce'); $group['name'] = stripslashes($_POST['group_name']); $group['description'] = stripslashes($_POST['group_desc']); $group['slug'] = groups_check_slug($_POST['group_slug']); $group['status'] = $_POST['group_status']; $group['enable_forum'] = isset($_POST['group_forum']) ? true : false; $group['date_created'] = date('Y-m-d H:i:s'); if ($group['slug'] != $_POST['group_slug']) { $messages[] = '<div class="updated warning"><p>' . sprintf(__('The group slug you specified was unavailable or invalid. This group was created with the slug: <code>%s</code>.', 'bp-group-organizer'), $group['slug']) . '</p></div>'; } if (empty($group['name'])) { $messages[] = '<div class="error"><p>' . __('Group could not be created because one or more required fields were not filled in', 'bp-group-organizer') . '</p></div>'; $errored = true; } if (!$errored) { $group_id = groups_create_group($group); if (!$group_id) { $wpdb->show_errors(); $wpdb->print_error(); $messages[] = '<div class="error"><p>' . __('Group was not successfully created.', 'bp-group-organizer') . '</p></div>'; } else { $messages[] = '<div class="updated"><p>' . __('Group was created successfully.', 'bp-group-organizer') . '</p></div>'; } } if (!empty($group_id)) { groups_update_groupmeta($group_id, 'total_member_count', 1); if (bpgo_is_hierarchy_available()) { $obj_group = new BP_Groups_Hierarchy($group_id); $obj_group->parent_id = (int) $_POST['group_parent']; $obj_group->save(); } // Create the forum if enable_forum is checked if ($group['enable_forum']) { // Ensure group forums are activated, and group does not already have a forum if (bp_is_active('forums')) { // Check for BuddyPress group forums if (!groups_get_groupmeta($group_id, 'forum_id')) { groups_new_group_forum($group_id, $group['name'], $group['description']); } } else { if (function_exists('bbp_is_group_forums_active') && bbp_is_group_forums_active()) { // Check for bbPress group forums if (count(bbp_get_group_forum_ids($group_id)) == 0) { // Create the group forum - implementation from BBP_Forums_Group_Extension:create_screen_save // Set the default forum status switch ($group['status']) { case 'hidden': $status = bbp_get_hidden_status_id(); break; case 'private': $status = bbp_get_private_status_id(); break; case 'public': default: $status = bbp_get_public_status_id(); break; } // Create the initial forum $forum_id = bbp_insert_forum(array('post_parent' => bbp_get_group_forums_root_id(), 'post_title' => $group['name'], 'post_content' => $group['description'], 'post_status' => $status)); bbp_add_forum_id_to_group($group_id, $forum_id); bbp_add_group_id_to_forum($forum_id, $group_id); } } } } do_action('bp_group_organizer_save_new_group_options', $group_id); } break; case 'delete-group': $group_id = (int) $_REQUEST['group_id']; check_admin_referer('delete-group_' . $group_id); break; case 'update': check_admin_referer('update-groups', 'update-groups-nonce'); $groups_order = $_POST['group']; $parent_ids = $_POST['menu-item-parent-id']; $db_ids = $_POST['menu-item-db-id']; foreach ($groups_order as $id => $group) { $group_reference = new BP_Groups_Group($id); if (defined('BP_GROUP_HIERARCHY_IS_INSTALLED') && method_exists('BP_Groups_Hierarchy', 'get_tree')) { // if group hierarchy is installed and available, check for tree changes $group_hierarchy = new BP_Groups_Hierarchy($id); if ($parent_ids[$id] !== null && $group_hierarchy->parent_id != $parent_ids[$id]) { $group_hierarchy->parent_id = $parent_ids[$id]; $group_hierarchy->save(); } else { if ($group_hierarchy->parent_id != $group['parent_id']) { $group_hierarchy->parent_id = $group['parent_id']; $group_hierarchy->save(); } } unset($group_hierarchy); } // check for group attribute changes $attrs_changed = array(); if ($group['name'] != $group_reference->name) { $group_reference->name = stripslashes($group['name']); $attrs_changed[] = 'name'; } if ($group['slug'] != $group_reference->slug) { $slug = groups_check_slug($group['slug']); if ($slug == $group['slug']) { $group_reference->slug = $group['slug']; $attrs_changed[] = 'slug'; } } if ($group['description'] != $group_reference->description) { $group_reference->description = stripslashes($group['description']); $attrs_changed[] = 'description'; } if ($group['status'] != $group_reference->status && groups_is_valid_status($group['status'])) { $group_reference->status = $group['status']; $attrs_changed[] = 'status'; } if (!isset($group['forum_enabled']) || $group['forum_enabled'] != $group_reference->enable_forum) { $group_reference->enable_forum = isset($group['forum_enabled']) ? true : false; $attrs_changed[] = 'enable_forum'; } if (count($attrs_changed) > 0) { $group_reference->save(); } // finally, let plugins run any other changes do_action('group_details_updated', $group_reference->id); do_action('bp_group_organizer_save_group_options', $group, $group_reference); } break; case 'import': if (!isset($_FILES['import_groups'])) { // No files was uploaded } if (!is_uploaded_file($_FILES['import_groups']['tmp_name'])) { // Not an uploaded file $errors = array(UPLOAD_ERR_OK => sprintf(__('File uploaded successfully, but there is a problem. (%d)', 'bp-group-organizer'), UPLOAD_ERR_OK), UPLOAD_ERR_INI_SIZE => sprintf(__('File exceeded PHP\'s maximum upload size. (%d)', 'bp-group-organizer'), UPLOAD_ERR_INI_SIZE), UPLOAD_ERR_FORM_SIZE => sprintf(__('File exceeded the form\'s maximum upload size. (%d)', 'bp-group-organizer'), UPLOAD_ERR_FORM_SIZE), UPLOAD_ERR_PARTIAL => sprintf(__('File was only partially uploaded. (%d)', 'bp-group-organizer'), UPLOAD_ERR_PARTIAL), UPLOAD_ERR_NO_FILE => sprintf(__('No uploaded file was found. (%d)', 'bp-group-organizer'), UPLOAD_ERR_NO_FILE), 6 => sprintf(__('No temporary folder could be found for the uploaded file. (%d)', 'bp-group-organizer'), 6), 7 => sprintf(__('Could not write uploaded file to disk. (%d)', 'bp-group-organizer'), 7), 8 => sprintf(__('Upload was stopped by a PHP extension. (%d)', 'bp-group-organizer'), 8)); $messages[] = '<div class="error"><p>' . sprintf(__('', 'bp-group-organizer'), $errors[$_FILES['import_groups']['error']]) . '</p></div>'; break; } require_once dirname(__FILE__) . '/includes/group-organizer-import.php'; if ($result = bp_group_organizer_import_csv_file($_FILES['import_groups']['tmp_name'], $_POST['import'])) { $messages[] = '<div class="updated"><p>' . implode('<br />', $result) . '</p></div>'; } else { $messages[] = '<div class="error"><p>' . 'ERROR - IMPORT FAILED COMPLETELY' . '</p></div>'; } break; } // Ensure the user will be able to scroll horizontally // by adding a class for the max menu depth. global $_wp_nav_menu_max_depth; $_wp_nav_menu_max_depth = 0; if (isset($_REQUEST['screen']) && $_REQUEST['screen'] == 'import') { $action = 'import'; } else { $action = 'organize'; } if ($action == 'import') { $edit_markup = bp_group_organizer_import_export_page(); } else { $edit_markup = bp_get_groups_to_edit(); } ?> <div class="wrap"> <h2><?php esc_html_e('Group Organizer'); ?> </h2> <?php foreach ($messages as $message) { echo $message . "\n"; } ?> <div <?php if ($action == 'organize') { echo 'id="nav-menus-frame"'; } ?> > <div id="menu-settings-column" class="metabox-holder nav-menus-php"> <form id="group-organizer-meta" action="" class="group-organizer-meta" method="post" enctype="multipart/form-data"> <input type="hidden" name="action" value="add-group" /> <?php wp_nonce_field('add-group', 'group-settings-column-nonce'); ?> <?php if ($action == 'organize') { do_meta_boxes('group-organizer', 'side', null); } ?> </form> </div><!-- /#menu-settings-column --> <div id="menu-management-liquid"> <div id="menu-management" class="nav-menus-php"> <div class="nav-tabs-wrapper"> <div class="nav-tabs"> <a href="<?php echo esc_url(remove_query_arg(array('screen'))); ?> " class="nav-tab <?php if ($action == 'organize') { echo 'nav-tab-active'; } ?> "> <?php printf('<abbr title="%s">%s</abbr>', esc_html__('Drag and drop your groups', 'bp-group-hierarchy'), __('Organize', 'bp-group-organizer')); ?> </a> <a href="<?php echo esc_url(add_query_arg(array('screen' => 'import'))); ?> " class="nav-tab <?php if ($action == 'import') { echo 'nav-tab-active'; } ?> "> <?php printf('<abbr title="%s">%s</abbr>', esc_html__('Import or export groups in bulk', 'bp-group-organizer'), __('Import / Export', 'bp-group-organizer')); ?> </a> </div> </div> <div class="menu-edit"> <?php if ($action == 'organize') { ?> <form id="update-nav-menu" action="" method="post" enctype="multipart/form-data"> <?php } ?> <div id="nav-menu-header"> <div id="submitpost" class="submitbox"> <div class="major-publishing-actions"> <label class="menu-name-label howto open-label" for="menu-name"> <span><?php _e('Group Organizer', 'bp-group-organizer'); ?> </span> </label> <div class="publishing-action"> <?php if ($action == 'organize') { submit_button(__('Save Groups', 'bp-group-organizer'), 'button-primary menu-save', 'save_menu', false, array('id' => 'save_menu_header')); } ?> </div><!-- END .publishing-action --> </div><!-- END .major-publishing-actions --> </div><!-- END #submitpost .submitbox --> <?php wp_nonce_field('closedpostboxes', 'closedpostboxesnonce', false); wp_nonce_field('meta-box-order', 'meta-box-order-nonce', false); wp_nonce_field('update-groups', 'update-groups-nonce'); ?> <input type="hidden" name="action" value="update" /> </div><!-- END #nav-menu-header --> <div id="post-body"> <div id="post-body-content"> <?php if (isset($edit_markup)) { if (!is_wp_error($edit_markup)) { echo $edit_markup; } } else { echo '<div class="post-body-plain">'; echo '<p>' . __('You don\'t yet have any groups.', 'bp-group-organizer') . '</p>'; echo '</div>'; } ?> </div><!-- /#post-body-content --> </div><!-- /#post-body --> <div id="nav-menu-footer"> <div class="major-publishing-actions"> <div class="publishing-action"> <?php if ($action == 'organize') { submit_button(__('Save Groups', 'bp-group-organizer'), 'button-primary menu-save', 'save_menu', false, array('id' => 'save_menu_header')); } ?> </div> </div> </div><!-- /#nav-menu-footer --> <?php if ($action == 'organize') { ?> </form><!-- /#update-nav-menu --> <?php } ?> </div><!-- /.menu-edit --> </div><!-- /#menu-management --> </div><!-- /#menu-management-liquid --> </div><!-- /#nav-menus-frame --> </div><!-- /.wrap--> <?php }
?> <?php php_e('Календарь для данного курса отсутсвует', 'qode'); ?> <?php } ?> <?php } elseif (is_user_logged_in() && $tab == 'forum' && !get_post_meta($post->ID, 'disable_forum', true)) { ?> <?php $course_id = $post->ID; $forum_id = ''; $buddypress_id = get_post_meta($course_id, 'buddypress_id', true); if (!empty($buddypress_id)) { $forum_id = bbp_get_group_forum_ids($buddypress_id); } if (!empty($forum_id)) { $forum_id = $forum_id[0]; } if (NamasteLMSStudentModel::is_enrolled(get_current_user_id(), $course_id) && !empty($forum_id)) { //echo do_shortcode('[bbp-single-forum id="'.$forum_id.'"]'); ?> <div class="two_columns_33_66 forum-tab clearfix"> <?php if (!empty($forum_instruction_post_id)) { echo "<div class='full_width' style='text-align: right; margin-bottom: 15px; text-decoration: underline;'><a target='_blank' href='" . get_permalink($forum_instruction_post_id) . "'>" . get_post($forum_instruction_post_id)->post_title . "</a>"; } else { include_once 'single-namaste_course_old_user_list.php'; } if (empty($hypercomments_forum_id)) {
do_action('bp_directory_groups_actions'); ?> <div class="meta"> <?php bp_group_type(); ?> / <?php bp_group_member_count(); ?> </div> <div class="meta" id="mytopicpostcount"> <?php $my_group_id = bp_get_group_id(); $my_forum_ids = bbp_get_group_forum_ids($my_group_id); //echo "og grp: ".$my_group_id." og frm: ".print_r(my_forum_ids,true); // Taken from wp-content/plugins/bbpress/includes/extend/buddypress/groups.php //$forum_ids = bbp_get_group_forum_ids( $group_id ); $forum_id = null; // Get the first forum ID if (!empty($my_forum_ids)) { $forum_id = (int) is_array($my_forum_ids) ? $my_forum_ids[0] : $my_forum_ids; bbp_forum_topic_count($forum_id); echo " "; _e('Topics', 'bbpress'); echo " / "; bbp_show_lead_topic() ? bbp_forum_reply_count($forum_id) : bbp_forum_post_count($forum_id); echo " "; bbp_show_lead_topic() ? _e('Replies', 'bbpress') : _e('Posts', 'bbpress'); } else {