function wpmudev_chat_form_section_logs($form_section = 'page') { global $wpmudev_chat, $wp_roles; //echo "log_display_role=[". $wpmudev_chat->get_option('log_display_role', $form_section) ."]<br />"; ?> <fieldset> <legend><?php _e("Logs", $wpmudev_chat->translation_domain); ?> </legend> <table border="0" cellpadding="4" cellspacing="0"> <tr> <td class="chat-label-column"> <label for="chat_log_creation"><?php _e("Log Creation", $wpmudev_chat->translation_domain); ?> </label> </td> <td class="chat-value-column"> <select id="chat_log_creation" name="chat[log_creation]"> <option value="enabled" <?php print $wpmudev_chat->get_option('log_creation', $form_section) == 'enabled' ? 'selected="selected"' : ''; ?> ><?php _e("Enabled", $wpmudev_chat->translation_domain); ?> </option> <option value="disabled" <?php print $wpmudev_chat->get_option('log_creation', $form_section) == 'disabled' ? 'selected="selected"' : ''; ?> ><?php _e("Disabled", $wpmudev_chat->translation_domain); ?> </option> </select> </td> <td class="chat-help-column"><?php echo wpmudev_chat_get_help_item('log_creation', 'tip'); ?> </td> </tr> <?php if ($form_section != "widget" && $form_section != 'dashboard') { ?> <tr> <td class="chat-label-column"> <label for="chat_log_display"><?php _e("Log Display", $wpmudev_chat->translation_domain); ?> </label> </td> <td class="chat-value-column"> <select id="chat_log_display" name="chat[log_display]"> <option value="disabled" <?php print $wpmudev_chat->get_option('log_display', $form_section) == 'disabled' ? 'selected="selected"' : ''; ?> ><?php _e("Disabled", $wpmudev_chat->translation_domain); ?> </option> <optgroup label="<?php _e('Link to listing page.', $wpmudev_chat->translation_domain); ?> "> <option value="enabled-list-above" <?php print $wpmudev_chat->get_option('log_display', $form_section) == 'enabled-list-above' ? 'selected="selected"' : ''; ?> ><?php _e("Enabled - Listing above chat", $wpmudev_chat->translation_domain); ?> </option> <option value="enabled-list-below" <?php print $wpmudev_chat->get_option('log_display', $form_section) == 'enabled-list-below' ? 'selected="selected"' : ''; ?> ><?php _e("Enabled - Listing below chat", $wpmudev_chat->translation_domain); ?> </option> </optgroup> <optgroup label="<?php _e('Links shown on chat page', $wpmudev_chat->translation_domain); ?> "> <option value="enabled-link-above" <?php print $wpmudev_chat->get_option('log_display', $form_section) == 'enabled-link-above' ? 'selected="selected"' : ''; ?> ><?php _e("Enabled - Link above chat", $wpmudev_chat->translation_domain); ?> </option> <option value="enabled-link-below" <?php print $wpmudev_chat->get_option('log_display', $form_section) == 'enabled-link-below' ? 'selected="selected"' : ''; ?> ><?php _e("Enabled - Link below chat", $wpmudev_chat->translation_domain); ?> </option> </optgroup> <?php /* ?> <option value="enabled-settings-menu" <?php print ($wpmudev_chat->get_option('log_display', $form_section) == 'enabled-settings-menu') ? 'selected="selected"':''; ?>><?php _e("Enabled - Settings menu", $wpmudev_chat->translation_domain); ?></option> <?php */ ?> </select> </td> <td class="chat-help-column"><?php echo wpmudev_chat_get_help_item('log_display', 'tip'); ?> </td> </tr> <tr> <td class="chat-label-column"> <label for="chat_log_display_label"><?php _e("Log Display Label", $wpmudev_chat->translation_domain); ?> </label> </td> <td class="chat-value-column"> <input type="text" id="chat_log_display_label" name="chat[log_display_label]" value="<?php print $wpmudev_chat->get_option('log_display_label', $form_section); ?> "/> </td> <td class="chat-help-column"><?php echo wpmudev_chat_get_help_item('log_display_label', 'tip'); ?> </td> </tr> <tr> <td class="chat-label-column"> <label for="chat_log_display_limit"><?php _e("Number of Archive Entries to Show in Listing", $wpmudev_chat->translation_domain); ?> </label> </td> <td class="chat-value-column"> <input type="text" id="chat_log_display_limit" name="chat[log_display_limit]" value="<?php print $wpmudev_chat->get_option('log_display_limit', $form_section); ?> "/> </td> <td class="chat-help-column"><?php echo wpmudev_chat_get_help_item('log_display_limit', 'tip'); ?> </td> </tr> <tr> <td class="chat-label-column"> <label for="chat_log_display_hide_session"><?php _e("When Viewing Archive Details. Show/Hide Main Chat?", $wpmudev_chat->translation_domain); ?> </label> </td> <td class="chat-value-column"> <select id="chat_log_display_hide_session" name="chat[log_display_hide_session]"> <option value="show" <?php print $wpmudev_chat->get_option('log_display_hide_session', $form_section) == 'show' ? 'selected="selected"' : ''; ?> ><?php _e("Show", $wpmudev_chat->translation_domain); ?> </option> <option value="hide" <?php print $wpmudev_chat->get_option('log_display_hide_session', $form_section) == 'hide' ? 'selected="selected"' : ''; ?> ><?php _e("Hide", $wpmudev_chat->translation_domain); ?> </option> </select> </td> <td class="chat-help-column"><?php echo wpmudev_chat_get_help_item('log_display_hide_session', 'tip'); ?> </td> </tr> <?php $log_display_levels = array(); if ($form_section == "bp-group") { $log_display_levels['group_members'] = __("Group Members", $wpmudev_chat->translation_domain); $log_display_levels['group_mods'] = __("Group Mods and Admins", $wpmudev_chat->translation_domain); $log_display_levels['group_admins'] = __("Group Admins Only", $wpmudev_chat->translation_domain); //echo "log_display_levels<pre>"; print_r($log_display_levels); echo "</pre>"; //echo "selected_role_level [". $wpmudev_chat->get_option('log_display_role_level', $form_section) ."]<br />"; if (count($log_display_levels)) { ?> <tr> <td class="chat-label-column"> <label for="chat_log_display_role_level"><?php _e("Limit Display by Group Member Level", $wpmudev_chat->translation_domain); ?> </label></td> <td class="chat-value-column"> <select id="chat_log_display_role_level" name="chat[log_display_role_level]"> <?php foreach ($log_display_levels as $role_level_key => $role_level_display) { $selected = ''; if ($role_level_key == $wpmudev_chat->get_option('log_display_role_level', $form_section)) { $selected = ' selected="selected" '; } ?> <option <?php echo $selected; ?> value="<?php echo $role_level_key; ?> "><?php echo $role_level_display; ?> </option><?php } ?> </select> </td> <td class="chat-help-column"><?php echo wpmudev_chat_get_help_item('log_display_bp_level', 'tip'); ?> </td> </tr> <?php } } else { if (count($wp_roles)) { foreach ($wp_roles->roles as $role_slug => $role) { $role_level = wpmudev_chat_get_user_role_highest_level($role['capabilities']); if (!isset($log_display_levels['level_' . $role_level])) { $log_display_levels['level_' . $role_level] = "Level " . $role_level . ": " . $role['name']; } else { $log_display_levels['level_' . $role_level] .= ", " . $role['name']; } } } ksort($log_display_levels, SORT_NUMERIC); krsort($log_display_levels, SORT_NUMERIC); //echo "log_display_levels<pre>"; print_r($log_display_levels); echo "</pre>"; //echo "selected_role_level [". $wpmudev_chat->get_option('log_display_role_level', $form_section) ."]<br />"; if (count($log_display_levels)) { ?> <tr> <td class="chat-label-column"> <label for="chat_log_display_role_level"><?php _e("Limit Display by User Role Level", $wpmudev_chat->translation_domain); ?> </label></td> <td class="chat-value-column"> <select id="chat_log_display_role_level" name="chat[log_display_role_level]"> <optgroup label="<?php _e('WordPress User Role Levels', $wpmudev_chat->translation_domain); ?> "> <?php foreach ($log_display_levels as $role_level_key => $role_level_display) { $selected = ''; if ($role_level_key == $wpmudev_chat->get_option('log_display_role_level', $form_section)) { $selected = ' selected="selected" '; } ?> <option <?php echo $selected; ?> value="<?php echo $role_level_key; ?> "><?php echo $role_level_display; ?> </option><?php } ?> </optgroup> <option value="public" <?php print $wpmudev_chat->get_option('log_display_role_level', $form_section) == 'public' ? 'selected="selected"' : ''; ?> ><?php _e("Public, Facebook, Twitter, Google+", $wpmudev_chat->translation_domain); ?> </option> </select> </td> <td class="chat-help-column"><?php echo wpmudev_chat_get_help_item('log_display_role_level', 'tip'); ?> </td> </tr> <?php } } } ?> </table> </fieldset> <?php }
/** * Displays the chat logs archive listing below the chat box. * * @global none * * @param $chat_session - This is out master settings instance. * * @return $content - The output of the archives table. Will be echoed at some other point. */ function chat_logs_container($chat_session) { global $bp; $content = ''; $return_link = ''; if ($chat_session['session_type'] != "page" && $chat_session['session_type'] != "bp-group") { return $content; } if ($this->using_popup_out_template == true) { return $content; } if (!isset($chat_session['log_display_role_level'])) { $chat_session['log_display_role_level'] = "public"; } // if the log_display_role is NOT public then we need to check the current user' srole to see if they are allowed if ($chat_session['log_display_role_level'] != 'public' && !is_super_admin()) { global $current_user; if (isset($bp->groups->current_group->id) && intval($bp->groups->current_group->id)) { if ($chat_session['log_display_role_level'] == 'group_admins') { if (!groups_is_user_admin(bp_loggedin_user_id(), $bp->groups->current_group->id)) { return $content; } } else { if ($chat_session['log_display_role_level'] == 'group_mods') { if (!groups_is_user_mod(bp_loggedin_user_id(), $bp->groups->current_group->id)) { return $content; } } else { if ($chat_session['log_display_role_level'] == 'group_members') { if (!isset($bp->groups->current_group->user_has_access) || $bp->groups->current_group->user_has_access != 1) { return $content; } } else { return $content; } } } } else { $current_user_role_level = wpmudev_chat_get_user_role_highest_level($current_user->allcaps); if (!$current_user_role_level) { $current_user_role_level = 0; } $log_user_role_level = intval(str_replace('level_', '', $chat_session['log_display_role_level'])); if (!$log_user_role_level) { $log_user_role_level = 0; } // If the current user level is less than our limit return the empty content. if ($log_user_role_level > $current_user_role_level || $log_user_role_level == 0) { return $content; } } } $date_content = ''; $chat_session_dates = $this->get_archives($chat_session); if ($chat_session_dates && is_array($chat_session_dates)) { krsort($chat_session_dates); foreach ($chat_session_dates as $chat_session_date) { $query_args = array('chat-log-id' => $chat_session_date->id); $archive_href = esc_url(add_query_arg($query_args)); $date_str = date_i18n(get_option('date_format') . ' ' . get_option('time_format'), strtotime($chat_session_date->start) + get_option('gmt_offset') * 3600, false) . ' - ' . date_i18n(get_option('date_format') . ' ' . get_option('time_format'), strtotime($chat_session_date->end) + get_option('gmt_offset') * 3600, false); if (isset($_GET['chat-log-id']) && $_GET['chat-log-id'] == $chat_session_date->id) { $date_content .= '<li>' . $date_str . ' <a href="' . esc_url(remove_query_arg('chat-log-id')) . '">' . __('close', $this->translation_domain) . "</a>"; if (isset($_GET['chat-log-id']) && $_GET['chat-log-id'] == $chat_session_date->id) { $chat_session_log = $chat_session; $chat_session_log['session_type'] = "log"; $chat_session['since'] = strtotime($chat_session_date->start); $chat_session['end'] = strtotime($chat_session_date->end); $chat_session['log_limit'] = 0; $chat_session['orderby'] = 'ASC'; $chat_session['archived'] = array('yes'); $chat_log_rows = $this->chat_session_get_messages($chat_session); if ($chat_log_rows && is_array($chat_log_rows) && count($chat_log_rows)) { $chat_rows_content = ''; foreach ($chat_log_rows as $row) { $chat_rows_content .= $this->chat_session_build_row($row, $chat_session_log); } if (strlen($chat_rows_content)) { $date_content .= '<div id="wpmudev-chat-box-archive" class="wpmudev-chat-box"><div class="wpmudev-chat-module-messages-list" >' . $chat_rows_content . '</div></div>'; } } } } else { $date_content .= '<li><a class="chat-log-link" style="text-decoration: none;" href="' . $archive_href . '">' . $date_str . '</a>'; } $date_content .= '</li>'; } } if (empty($date_content)) { $date_content = "<p>" . __('No Chat logs found for this session', $this->translation_domain) . '</p>'; } else { $date_content = "<ul>" . $date_content . "</ul>"; } if ($chat_session['log_display'] == "enabled-list-above" || $chat_session['log_display'] == "enabled-list-below") { //if (isset($_GET['chat-log-id'])) // $return_link = ' <a href="'. remove_query_arg(array('chat-log-id')) .'">'. __('Return to Chat', $this->translation_domain) .'</a>'; //else // $return_link = ''; //$content .= '<div id="wpmudev-chat-logs-wrap-'. $chat_session['id'].'" class="wpmudev-chat-logs-wrap"><p><strong>' . // $chat_session['log_display_label'] . '</strong>'. $return_link .'</p>' . $date_content . '</div>'; $content .= '<div id="wpmudev-chat-logs-wrap-' . $chat_session['id'] . '" class="wpmudev-chat-logs-wrap"><p><strong>' . $chat_session['log_display_label'] . '</strong></p>' . $date_content . '</div>'; //$content .= $this->chat_session_box_styles($chat_session, 'archive'); } else { if ($chat_session['log_display'] == "enabled-link-above" || $chat_session['log_display'] == "enabled-link-below") { if (isset($_GET['chat-show-logs'])) { $return_link = '<a href="' . esc_url(remove_query_arg(array('chat-log-id', 'chat-show-logs'))) . '">' . __('Return to Chat', $this->translation_domain) . '</a>'; $content .= '<div id="wpmudev-chat-logs-wrap-' . $chat_session['id'] . '" class="wpmudev-chat-logs-wrap"><p>' . $return_link . '</p>' . $date_content . '</div>'; } else { $chat_link = ' <a href="' . esc_url(add_query_arg('chat-show-logs', '')) . '">' . $chat_session['log_display_label'] . '</a>'; $content .= '<div id="wpmudev-chat-logs-wrap-' . $chat_session['id'] . '" class="wpmudev-chat-logs-wrap"><p>' . $chat_link . '</p></div>'; } } } return $content; }