2014-12-15 22:38:07 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
class UM_Rewrite {
|
|
|
|
|
|
|
|
|
|
function __construct() {
|
|
|
|
|
|
|
|
|
|
add_filter('query_vars', array(&$this, 'query_vars'), 10, 1 );
|
|
|
|
|
|
|
|
|
|
add_action('init', array(&$this, 'rewrite_rules') );
|
|
|
|
|
|
|
|
|
|
add_action('template_redirect', array(&$this, 'locate_user_profile'), 9999 );
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/***
|
|
|
|
|
*** @modify global query vars
|
|
|
|
|
***/
|
|
|
|
|
function query_vars($public_query_vars) {
|
|
|
|
|
$public_query_vars[] = 'um_user';
|
|
|
|
|
$public_query_vars[] = 'um_tab';
|
2015-01-24 23:39:43 +02:00
|
|
|
$public_query_vars[] = 'profiletab';
|
|
|
|
|
$public_query_vars[] = 'subnav';
|
2014-12-15 22:38:07 +02:00
|
|
|
$public_query_vars[] = 'members_page';
|
|
|
|
|
return $public_query_vars;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/***
|
|
|
|
|
*** @setup rewrite rules
|
|
|
|
|
***/
|
|
|
|
|
function rewrite_rules(){
|
|
|
|
|
|
|
|
|
|
global $ultimatemember;
|
|
|
|
|
|
|
|
|
|
if ( isset( $ultimatemember->permalinks->core['user'] ) ) {
|
|
|
|
|
|
|
|
|
|
$user_page_id = $ultimatemember->permalinks->core['user'];
|
|
|
|
|
$account_page_id = $ultimatemember->permalinks->core['account'];
|
|
|
|
|
|
2015-02-01 01:30:04 +02:00
|
|
|
$user = get_post($user_page_id);
|
|
|
|
|
$user_slug = $user->post_name;
|
|
|
|
|
|
|
|
|
|
$account = get_post($account_page_id);
|
|
|
|
|
$account_slug = $account->post_name;
|
|
|
|
|
|
2014-12-15 22:38:07 +02:00
|
|
|
add_rewrite_rule(
|
2015-02-01 01:30:04 +02:00
|
|
|
'^'.$user_slug.'/([^/]*)$',
|
2014-12-15 22:38:07 +02:00
|
|
|
'index.php?page_id='.$user_page_id.'&um_user=$matches[1]',
|
|
|
|
|
'top'
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
add_rewrite_rule(
|
2015-02-01 01:30:04 +02:00
|
|
|
'^'.$account_slug.'/([^/]*)$',
|
2014-12-15 22:38:07 +02:00
|
|
|
'index.php?page_id='.$account_page_id.'&um_tab=$matches[1]',
|
|
|
|
|
'top'
|
|
|
|
|
);
|
|
|
|
|
|
2014-12-21 18:20:55 +02:00
|
|
|
flush_rewrite_rules();
|
|
|
|
|
|
2014-12-15 22:38:07 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/***
|
|
|
|
|
*** @locate/display a profile
|
|
|
|
|
***/
|
|
|
|
|
function locate_user_profile() {
|
|
|
|
|
global $post, $ultimatemember;
|
|
|
|
|
|
2014-12-22 01:45:24 +02:00
|
|
|
if ( um_queried_user() && um_is_core_page('user') ) {
|
2014-12-15 22:38:07 +02:00
|
|
|
|
|
|
|
|
if ( um_get_option('permalink_base') == 'user_login' ) {
|
2015-01-25 19:59:18 +02:00
|
|
|
|
2014-12-15 22:38:07 +02:00
|
|
|
$user_id = username_exists( um_queried_user() );
|
2015-01-25 19:59:18 +02:00
|
|
|
|
|
|
|
|
// Try nice name
|
|
|
|
|
if ( !$user_id ) {
|
|
|
|
|
$the_user = get_user_by( 'slug', um_queried_user() );
|
|
|
|
|
if ( isset( $the_user->ID ) ){
|
|
|
|
|
$user_id = $the_user->ID;
|
|
|
|
|
}
|
2014-12-15 22:38:07 +02:00
|
|
|
}
|
2015-01-25 19:59:18 +02:00
|
|
|
|
2014-12-15 22:38:07 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if ( um_get_option('permalink_base') == 'user_id' ) {
|
|
|
|
|
$user_id = $ultimatemember->user->user_exists_by_id( um_queried_user() );
|
2015-01-25 19:59:18 +02:00
|
|
|
|
2014-12-15 22:38:07 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if ( um_get_option('permalink_base') == 'name' ) {
|
|
|
|
|
$user_id = $ultimatemember->user->user_exists_by_name( um_queried_user() );
|
2015-01-25 19:59:18 +02:00
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/** USER EXISTS SET USER AND CONTINUE **/
|
|
|
|
|
|
|
|
|
|
if ( $user_id ) {
|
|
|
|
|
|
|
|
|
|
um_set_requested_user( $user_id );
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
|
|
exit( wp_redirect( um_get_core_page('user') ) );
|
|
|
|
|
|
2014-12-15 22:38:07 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|