<?php
class BP_CubePoint_Template {
var $current_point = -1;
var $point_count;
var $points;
var $point;
var $in_the_loop;
var $pag_page;
var $pag_per_page;
var $pag_links;
var $pag_table_links;
function BP_CubePoint_Template( $args = '' ) {
$this->__construct( $args);
}
function __construct( $args = '' ) {
global $bp;
$defaults = bp_cubepoint_default_query_args();
$r = apply_filters('bp_cubepoint_template_args',wp_parse_args( $args, $defaults ));
extract( $r , EXTR_SKIP);
$this->pag_page = $page;
// WP-MU FIX
// $this->pag_per_page = $per_page;
$cp_bp_per_page_wpmufix = get_option('bp_points_logs_per_page_cp_bp');
$this->pag_per_page = (int)$cp_bp_per_page_wpmufix;
$this->uid = $uid;
/***
* You can use the "type" variable to fetch different things to output.
* For example on the groups template loop, you can fetch groups by "newest", "active", "alphabetical"
* and more. This would be the "type". You can then call different functions to fetch those
* different results.
*/
$total = bp_cubepoint_get_point_count($r);
$this->points = bp_cubepoint_get_points($r);
// Item Requests
if ( !$max || $max >= $total )
$this->total_point_count = $total;
else
$this->total_point_count = $max;
if ( !$max || $max >= count($this->points))
$this->point_count = count($this->points);
else
$this->point_count = $max;
$this->pag_links = paginate_links( array(
'base' => $bp->displayed_user->domain . $bp->cubepoint->slug .'/'. $bp->cubepoint->points_slug .'/%_%',
'format' => '%#%',
'total' => ceil( (int) $this->total_point_count / (int)$cp_bp_per_page_wpmufix ),
'current' => (int) $this->pag_page,
'prev_text' => '←',
'next_text' => '→',
'mid_size' => 1
));
$this->pag_table_links = paginate_links( array(
'base' => $bp->displayed_user->domain . $bp->cubepoint->slug .'/'. $bp->cubepoint->table_slug .'/%_%',
'format' => '%#%',
'total' => ceil( (int) $this->total_point_count / (int)$cp_bp_per_page_wpmufix ),
'current' => (int) $this->pag_page,
'prev_text' => '←',
'next_text' => '→',
'mid_size' => 1
));
if ($this->point_count)
$this->point = $this->points[0];
}
function has_points() {
if ( $this->current_point + 1 < $this->point_count ) {
return true;
} elseif ( $this->current_point + 1 == $this->point_count && $this->point_count > 0) {
do_action('bp_cubepoint_loop_end');
// Do some cleaning up after the loop
$this->rewind_points();
}
$this->in_the_loop = false;
return false;
}
function next_point() {
$this->current_point++;
$this->point = $this->points[$this->current_point];
return $this->point;
}
function rewind_points() {
$this->current_point = -1;
if ( $this->point_count > 0 ) {
$this->point = $this->points[0];
}
}
function the_point() {
global $point, $bp;
$this->in_the_loop = true;
$this->point = $this->next_point();
if ( 0 == $this->current_point ) // loop has just started
do_action('bp_cubepoint_loop_start');
}
}
function bp_cubepoint_query_points( $args = '' ) {
global $points_template;
$points_template = new BP_CubePoint_Template( $args );
return $points_template->has_points();
}
function bp_cubepoint_the_point() {
global $points_template;
return $points_template->the_point();
}
function bp_cubepoint_has_points() {
global $points_template;
return $points_template->has_points();
}
function bp_cubepoint_point_user() {
echo bp_cubepoint_get_point_user();
}
function bp_cubepoint_get_point_user() {
global $bp,$points_template;
$user = get_userdata($points_template->point->uid);
$source_tmp = get_userdata($points_template->point->uid);
$source = '<a href="'.PLUGIN_DIR.'cp_about.php?u='.$source_tmp->ID.'&width=500&height=200" title="'.$source_tmp->user_login.'" class="thickbox">'.$source_tmp->user_login.'</a>';
return apply_filters( 'bp_cubepoint_get_point_user', $source );
}
function bp_cubepoint_point_source() {
echo bp_cubepoint_get_point_source();
}
function bp_cubepoint_get_point_source() {
global $points_template;
return apply_filters( 'bp_cubepoint_get_point_source', $points_template->point->source );
}
function bp_cubepoint_point_type() {
echo bp_cubepoint_get_point_type();
}
function bp_cubepoint_get_point_type() {
global $bp,$points_template;
switch ($points_template->point->type) {
case "comment":
$source = get_comment_link(bp_cubepoint_get_point_source());
if(bp_cubepoint_get_point_points()>0){
$type=__('Comment Posted','cp');
$source= '<a href="'.$source.'" />Comment #' . $result->source . '</a>';
} else {
$type=__('Comment Removed','cp');
$source= 'Comment #' . bp_cubepoint_get_point_source();
}
break;
case "post":
$source = get_post(bp_cubepoint_get_point_source());
if($source->ID!=''){
$source= '<a href="' . $source->guid . '" title="'.$source->post_title.'">Post #'.$source->ID.'</a>' ;
}
else {$source= 'Post #'.bp_cubepoint_get_point_source();}
$type=__('Published Post','cp');
break;
case "reg":
$source = '';
$type=__('Registration','cp');
break;
case "login":
$source = '';
$type=__('"Daily" Login','cp');
break;
case "admin":
$type=__('Administrative','cp');
$source_tmp = get_userdata(bp_cubepoint_get_point_source());
$source = '<a href="'.PLUGIN_DIR.'cp_about.php?u='.$source_tmp->ID.'&width=500&height=200" title="'.$source_tmp->user_login.'" class="thickbox">'.$source_tmp->user_login.'</a>';
break;
case "reset":
$type=__('Reset','cp');
$source_tmp = get_userdata(bp_cubepoint_get_point_source());
$source = '<a href="'.PLUGIN_DIR.'cp_about.php?u='.$source_tmp->ID.'&width=500&height=200" title="'.$source_tmp->user_login.'" class="thickbox">'.$source_tmp->user_login.'</a>';
break;
case "donate":
if(bp_cubepoint_get_point_points()>0){
$type=__('Donation from','cp');
$source_tmp = bp_cubepoint_get_point_source();
$source_tmp = get_userdata($source_tmp);
$source = '<a href="'.PLUGIN_DIR.'cp_about.php?u='.$source_tmp->ID.'&width=500&height=200" title="'.$source_tmp->user_login.'" class="thickbox">'.$source_tmp->user_login.'</a>';
} else {
$type=__('Donation to','cp');
$source_tmp = bp_cubepoint_get_point_source();
$source_tmp = get_userdata($source_tmp);
$source = '<a href="'.PLUGIN_DIR.'cp_about.php?u='.$source_tmp->ID.'&width=500&height=200" title="'.$source_tmp->user_login.'" class="thickbox">'.$source_tmp->user_login.'</a>';
}
break;
default:
$type=$points_template->point->type;
$source = '';
break;
}
// return apply_filters( 'bp_cubepoint_get_point_type', $points_template->point->type );
return apply_filters( 'bp_cubepoint_get_point_type', $type . ' ' . $source );
}
function bp_cubepoint_point_points() {
echo bp_cubepoint_get_point_points();
}
function bp_cubepoint_get_point_points() {
global $points_template;
return apply_filters( 'bp_cubepoint_get_point_points', $points_template->point->points );
}
function bp_cubepoint_point_timestamp() {
echo bp_cubepoint_get_point_timestamp();
}
function bp_cubepoint_get_point_timestamp() {
global $points_template;
return apply_filters( 'bp_cubepoint_get_point_timestamp', cp_relativeTime($points_template->point->timestamp) );
}
function bp_cubepoint_point_id() {
echo bp_cubepoint_get_point_id();
}
function bp_cubepoint_get_point_id() {
global $points_template;
return apply_filters( 'bp_cubepoint_get_point_id', $points_template->point->id );
}
function bp_cubepoint_total_point_count() {
echo bp_cubepoint_get_total_point_count();
}
function bp_cubepoint_get_total_point_count() {
global $points_template;
return apply_filters( 'bp_cubepoint_get_total_point_count', $points_template->total_point_count );
}
function bp_cubepoint_point_pagination($always_show = false) {
echo bp_cubepoint_get_point_pagination($always_show);
}
function bp_cubepoint_get_point_pagination($always_show = false) {
global $points_template;
if ($always_show || $points_template->total_point_count > $points_template->pag_per_page)
return apply_filters( 'bp_cubepoint_get_point_pagination', $points_template->pag_links );
}
function bp_cubepoint_point_table_pagination($always_show = false) {
echo bp_cubepoint_get_point_table_pagination($always_show);
}
function bp_cubepoint_get_point_table_pagination($always_show = false) {
global $points_template;
if ($always_show || $points_template->total_point_count > $points_template->pag_per_page)
return apply_filters( 'bp_cubepoint_get_point_table_pagination', $points_template->pag_table_links );
}
?>