Skip to content

Commit

Permalink
#48 and #49, followers and following page
Browse files Browse the repository at this point in the history
  • Loading branch information
rahularyan committed Aug 14, 2014
1 parent ec8c775 commit faf772e
Show file tree
Hide file tree
Showing 10 changed files with 174 additions and 63 deletions.
40 changes: 40 additions & 0 deletions includes/anspress-email.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
<?php
/**
* AnsPress.
*
* @package AnsPress
* @author Rahul Aryan <admin@rahularyan.com>
* @license GPL-2.0+
* @link http://rahularyan.com
* @copyright 2014 Rahul Aryan
*/

class AP_Email
{
/**
* Instance of this class.
*/
protected static $instance = null;
/**
* Return an instance of this class.
* @return object A single instance of this class.
*/
public static function get_instance()
{

// If the single instance hasn't been set, set it now.
if (null == self::$instance) {
self::$instance = new self;
}

return self::$instance;
}
/**
* Initialize the plugin by setting localization and loading public scripts
* and styles.
*/
public function __construct()
{

}
}
22 changes: 22 additions & 0 deletions includes/anspress-functions.php
Original file line number Diff line number Diff line change
Expand Up @@ -609,3 +609,25 @@ function ap_short_num($num, $precision = 2) {
function sanitize_comma_delimited($str){
return implode(",", array_map("intval", explode(",", $str)));
}

function ap_pagi($base, $total_pages, $paged, $end_size = 1, $mid_size = 5){
$pagi_a = paginate_links( array(
'base' => $base, // the base URL, including query arg
'format' => 'page/%#%', // this defines the query parameter that will be used, in this case "p"
'prev_text' => __('&laquo; Previous', 'ap'), // text for previous page
'next_text' => __('Next &raquo;', 'ap'), // text for next page
'total' => $total_pages, // the total number of pages we have
'current' => $paged, // the current page
'end_size' => 1,
'mid_size' => 5,
'type' => 'array'
));
if($pagi_a){
echo '<ul class="ap-pagination clearfix">';
echo '<li><span class="page-count">'. sprintf(__('Page %d of %d', 'ap'), $paged, $total_pages) .'</span></li>';
foreach($pagi_a as $pagi){
echo '<li>'. $pagi .'</li>';
}
echo '</ul>';
}
}
4 changes: 2 additions & 2 deletions includes/anspress-main.php
Original file line number Diff line number Diff line change
Expand Up @@ -233,13 +233,13 @@ public function rewrites() {
$slug. "page/?([0-9]{1,})/?$" => "index.php?page_id=".$base_page_id."&paged=".$wp_rewrite->preg_index(1),


$slug. "([^/]+)/page/?([0-9]{1,})/?$" => "index.php?page_id=".$base_page_id."&ap_page=".$wp_rewrite->preg_index(1)."&paged=".$wp_rewrite->preg_index(2),
$slug. "([^/]+)/page/?([0-9]{1,})/?$" => "index.php?page_id=".$base_page_id."&ap_page=".$wp_rewrite->preg_index(1)."&paged=".$wp_rewrite->preg_index(2),

$slug. "([^/]+)/([^/]+)/([^/]+)/page/?([0-9]{1,})/?$" => "index.php?page_id=".$base_page_id."&ap_page=".$wp_rewrite->preg_index(1)."&user=". $wp_rewrite->preg_index(2)."&user_page=". $wp_rewrite->preg_index(3)."&paged=".$wp_rewrite->preg_index(4),

$slug. "([^/]+)/([^/]+)/([^/]+)/?" => "index.php?page_id=".$base_page_id."&ap_page=".$wp_rewrite->preg_index(1)."&user=". $wp_rewrite->preg_index(2)."&user_page=". $wp_rewrite->preg_index(3),

$slug. "([^/]+)/([^/]+)/?" => "index.php?page_id=".$base_page_id."&ap_page=".$wp_rewrite->preg_index(1)."&user=".$wp_rewrite->preg_index(2),
$slug. "([^/]+)/([^/]+)/?" => "index.php?page_id=".$base_page_id."&ap_page=".$wp_rewrite->preg_index(1)."&user=".$wp_rewrite->preg_index(2),

$slug. "([^/]+)/?" => "index.php?page_id=".$base_page_id."&ap_page=".$wp_rewrite->preg_index(1),

Expand Down
1 change: 0 additions & 1 deletion includes/anspress-shortcodes.php
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,6 @@ public function ap_base_page_sc( $atts, $content="" ) {
global $current_user_meta;

$count_args = array(
'role' => 'Subscriber',
'fields' => 'all_with_meta',
'number' => 999999
);
Expand Down
85 changes: 67 additions & 18 deletions includes/anspress-user.php
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ public static function get_instance()
*/
private function __construct() {
add_filter( 'pre_user_query', array($this, 'follower_query') );
//add_filter( 'pre_user_query', array($this, 'following_query') );
add_filter( 'pre_user_query', array($this, 'following_query') );
add_action('wp_ajax_ap_cover_upload', array($this, 'cover_upload'));
add_action( 'after_setup_theme', array($this, 'cover_size') );
add_action( 'ap_edit_profile_fields', array($this, 'user_fields'), 10, 2 );
Expand All @@ -49,13 +49,24 @@ public function follower_query ($query) {
if(isset($query->query_vars['ap_followers_query'])){
global $wpdb;

$query->query_from = $query->query_from." JOIN ".$wpdb->prefix."ap_meta M ON $wpdb->users.ID = M.apmeta_userid";
$query->query_from = $query->query_from." LEFT JOIN ".$wpdb->prefix."ap_meta M ON $wpdb->users.ID = M.apmeta_userid";
$userid = $query->query_vars['userid'];
$query->query_where = $query->query_where." AND M.apmeta_type = 'follow' AND M.apmeta_actionid = $userid";
}
return $query;
}

public function following_query ($query) {
if(isset($query->query_vars['ap_following_query'])){
global $wpdb;

$query->query_from = $query->query_from." LEFT JOIN ".$wpdb->prefix."ap_meta M ON $wpdb->users.ID = M.apmeta_actionid";
$userid = $query->query_vars['userid'];
$query->query_where = $query->query_where." AND M.apmeta_type = 'follow' AND M.apmeta_userid = $userid";
}
return $query;
}

public function cover_upload(){
if(ap_user_can_upload_cover() && wp_verify_nonce( $_POST['nonce'], 'upload_cover' )){
require_once(ABSPATH . "wp-admin" . '/includes/image.php');
Expand Down Expand Up @@ -409,8 +420,57 @@ function ap_user_template(){
$user_meta = (object) array_map( function( $a ){ return $a[0]; }, get_user_meta($userid));

if(is_ap_followers()){
$followers_query = ap_followers_query();
$total_followers = ap_get_current_user_meta('followers');

// how many users to show per page
$users_per_page = 1;

// grab the current page number and set to 1 if no page number is set
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;

// calculate the total number of pages.
$total_pages = 1;
$offset = $users_per_page * ($paged - 1);
$total_pages = ceil($total_followers / $users_per_page);

$args = array(
'ap_followers_query' => true,
'number' => 10,
'userid' => ap_get_user_page_user()
);

// The Query
$followers_query = new WP_User_Query( $args );

$followers = $followers_query->results;
$base = ap_user_link(ap_get_user_page_user(), 'followers') . '/%_%';
}elseif(ap_current_user_page_is('following')){

$total_following = ap_get_current_user_meta('following');

// how many users to show per page
$users_per_page = 4;

// grab the current page number and set to 1 if no page number is set
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;

// calculate the total number of pages.
$total_pages = 1;
$offset = $users_per_page * ($paged - 1);
$total_pages = ceil($total_following / $users_per_page);

$args = array(
'ap_following_query' => true,
'number' => $users_per_page,
'userid' => ap_get_user_page_user(),
'offset' => $offset
);

// The Query
$following_query = new WP_User_Query( $args );
$following = $following_query->results;
$base = ap_user_link(ap_get_user_page_user(), 'following') . '/%_%';

}elseif(ap_current_user_page_is('questions')){
$order = get_query_var('sort');
$label = sanitize_text_field(get_query_var('label'));
Expand Down Expand Up @@ -557,7 +617,10 @@ function ap_user_template(){
global $current_user_meta;
include ap_get_theme_location(ap_get_current_user_page_template());

// Restore original Post Data
if(ap_current_user_page_is('following') || ap_current_user_page_is('followers'))
ap_pagi($base, $total_pages, $paged);

// Restore original Post Data
if(ap_current_user_page_is('questions') || ap_current_user_page_is('answers') || ap_current_user_page_is('favorites'))
wp_reset_postdata();
}
Expand All @@ -577,20 +640,6 @@ function ap_get_current_user_meta($meta){
return false;
}

function ap_followers_query(){
$args = array(
'ap_followers_query' => true,
'number' => 10,
'userid' => ap_get_user_page_user()
);

// The Query
$followers = new WP_User_Query( $args );

return $followers;

}

function ap_cover_upload_form(){
if(ap_user_can_upload_cover() && ap_get_user_page_user() == get_current_user_id()){
?>
Expand Down
20 changes: 20 additions & 0 deletions theme/default/content-user.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<div class="ap-user-card" data-id="<?php echo $f->ID; ?>">
<div class="ap-user-inner clearfix">
<div class="ap-cover" <?php ap_user_cover_style($f->ID); ?>><span class="ap-cover-layer"></span></div>
<div class="ap-user-summary clearfix">
<?php ap_follow_btn_html($f->ID); ?>
<a class="ap-user-avatar" href="<?php echo ap_user_link($f->ID); ?>">
<?php echo get_avatar( $f->ID, 40 ); ?>
</a>
<div class="no-overflow">
<a class="user-name" href="<?php echo ap_user_link($f->ID); ?>"><?php echo $data->display_name; ?></a>
<?php echo ap_get_rank_title($f->ID); ?>
</div>
</div>
<ul class="ap-point-ff ap-inline-list clearfix">
<li><a href="<?php echo ap_user_link($f->ID, 'followers'); ?>"><b data-view="ap-followers"><?php echo ap_get_current_user_meta('followers') ?></b><span><?php _e('Followers', 'ap') ?></span></a></li>
<li><a href="<?php echo ap_user_link($f->ID, 'following'); ?>"><b data-view="ap-following"><?php echo ap_get_current_user_meta('following') ?></b><span><?php _e('Following', 'ap') ?></span></a></li>
<li><a href="<?php echo ap_user_link($f->ID, 'points'); ?>"><b data-view="ap-points"><?php echo ap_get_points($f->ID, true); ?></b><span><?php _e('Points', 'ap') ?></span></a></li>
</ul>
</div>
</div>
20 changes: 5 additions & 15 deletions theme/default/user-followers.php
Original file line number Diff line number Diff line change
@@ -1,25 +1,15 @@
<div id="ap-followers" class="ap-users-lists clearfix">

<?php

if ( ! empty( $followers ) ) {
foreach ( $followers as $f ) {
$data = $f->data;
?>
<div class="ap-user">
<div class="ap-user-inner clearfix">
<div class="ap-cover"></div>
<div class="ap-user-summary">
<a class="ap-user-avatar" href="<?php echo ap_user_link($f->ID); ?>">
<?php echo get_avatar( $f->ID, 50 ); ?>
</a>
<a class="user-name" href="<?php echo ap_user_link($f->ID); ?>"><?php echo $data->display_name; ?></a>
<?php echo ap_get_rank_title($f->ID); ?>
</div>
</div>
</div>
<?php
$current_user_meta = array_map( function( $a ){ return $a[0]; }, get_user_meta($f->ID));
include(ap_get_theme_location('content-user.php'));
}
} else {
echo 'No followers yet.';
_e('No users found.', 'ap');
}
?>
</div>
16 changes: 15 additions & 1 deletion theme/default/user-following.php
Original file line number Diff line number Diff line change
@@ -1 +1,15 @@
User following
<div id="ap-following" class="ap-users-lists clearfix">
<?php

if ( ! empty( $following ) ) {
foreach ( $following as $f ) {
$data = $f->data;
$current_user_meta = array_map( function( $a ){ return $a[0]; }, get_user_meta($f->ID));
include(ap_get_theme_location('content-user.php'));
}

} else {
_e('No users found.', 'ap');
}
?>
</div>
5 changes: 2 additions & 3 deletions theme/default/user.php
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
<?php //var_dump(ap_get_user_page_user()); ?>
<div id="ap-profile" class="clearfix" data-id="<?php echo $userid; ?>">
<div class="ap-profile-cover clearfix">
<div data-view="cover" class="ap-cover-bg" <?php ap_user_cover_style($userid); ?>><?php ap_cover_upload_form(); ?></div>
Expand All @@ -14,8 +13,8 @@
</div>
<div class="ap-cover-bottom">
<ul class="ap-user-ffp ap-inline-list clearfix">
<li><a href="<?php echo ap_user_link($userid, 'following'); ?>"><b data-view="ap-followers"><?php echo ap_get_current_user_meta('followers') ?></b><span><?php _e('Followers', 'ap') ?></span></a></li>
<li><a href="<?php echo ap_user_link($userid, 'followers'); ?>"><b data-view="ap-following"><?php echo ap_get_current_user_meta('following') ?></b><span><?php _e('Following', 'ap') ?></span></a></li>
<li><a href="<?php echo ap_user_link($userid, 'followers'); ?>"><b data-view="ap-followers"><?php echo ap_get_current_user_meta('followers') ?></b><span><?php _e('Followers', 'ap') ?></span></a></li>
<li><a href="<?php echo ap_user_link($userid, 'following'); ?>"><b data-view="ap-following"><?php echo ap_get_current_user_meta('following') ?></b><span><?php _e('Following', 'ap') ?></span></a></li>
<li><a href="<?php echo ap_user_link($userid, 'points'); ?>"><b data-view="ap-points"><?php echo ap_get_points($userid, true); ?></b><span><?php _e('Points', 'ap') ?></span></a></li>
</ul>
</div>
Expand Down
24 changes: 1 addition & 23 deletions theme/default/users.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,29 +6,7 @@
foreach ( $users->results as $f ) {
$data = $f->data;
$current_user_meta = array_map( function( $a ){ return $a[0]; }, get_user_meta($f->ID));
ap_get_user_cover($f->ID);
?>
<div class="ap-user-card" data-id="<?php echo $f->ID; ?>">
<div class="ap-user-inner clearfix">
<div class="ap-cover" <?php ap_user_cover_style($f->ID); ?>><span class="ap-cover-layer"></span></div>
<div class="ap-user-summary clearfix">
<?php ap_follow_btn_html($f->ID); ?>
<a class="ap-user-avatar" href="<?php echo ap_user_link($f->ID); ?>">
<?php echo get_avatar( $f->ID, 40 ); ?>
</a>
<div class="no-overflow">
<a class="user-name" href="<?php echo ap_user_link($f->ID); ?>"><?php echo $data->display_name; ?></a>
<?php echo ap_get_rank_title($f->ID); ?>
</div>
</div>
<ul class="ap-point-ff ap-inline-list clearfix">
<li><a href="<?php echo ap_user_link($f->ID, 'followers'); ?>"><b data-view="ap-followers"><?php echo ap_get_current_user_meta('followers') ?></b><span><?php _e('Followers', 'ap') ?></span></a></li>
<li><a href="<?php echo ap_user_link($f->ID, 'following'); ?>"><b data-view="ap-following"><?php echo ap_get_current_user_meta('following') ?></b><span><?php _e('Following', 'ap') ?></span></a></li>
<li><a href="<?php echo ap_user_link($f->ID, 'points'); ?>"><b data-view="ap-points"><?php echo ap_get_points($f->ID, true); ?></b><span><?php _e('Points', 'ap') ?></span></a></li>
</ul>
</div>
</div>
<?php
include(ap_get_theme_location('content-user.php'));
}


Expand Down

0 comments on commit faf772e

Please sign in to comment.