mirror of
https://github.com/10h30/ultimatemember.git
synced 2026-07-13 03:36:28 +09:00
Merge pull request #125 from jonfalcon/master
Image path and sortby 'random' option
This commit is contained in:
@@ -6,55 +6,55 @@
|
||||
//print "'$k' => '" . $v[0] . "',<br />";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$show_these_users = get_post_meta( get_the_ID(), '_um_show_these_users', true );
|
||||
if ( $show_these_users ) {
|
||||
$show_these_users = implode("\n", str_replace("\r", "", $show_these_users));
|
||||
}
|
||||
|
||||
|
||||
?>
|
||||
|
||||
<div class="um-admin-metabox">
|
||||
|
||||
<div class="">
|
||||
|
||||
|
||||
<input type="hidden" name="_um_mode" id="_um_mode" value="directory" />
|
||||
|
||||
|
||||
<p>
|
||||
<label class="um-admin-half"><?php _e('User Roles to Display','ultimatemember'); ?> <?php $this->tooltip('If you do not want to show all members, select only user roles to appear in this directory'); ?></label>
|
||||
<span class="um-admin-half">
|
||||
|
||||
|
||||
<select multiple="multiple" name="_um_roles[]" id="_um_roles" class="umaf-selectjs" style="width: 300px">
|
||||
<?php foreach($ultimatemember->query->get_roles() as $key => $value) { ?>
|
||||
<option value="<?php echo $key; ?>" <?php selected($key, $ultimatemember->query->get_meta_value('_um_roles', $key ) ); ?>><?php echo $value; ?></option>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
</select>
|
||||
|
||||
|
||||
</span>
|
||||
</p><div class="um-admin-clear"></div>
|
||||
|
||||
|
||||
<p>
|
||||
<label class="um-admin-half"><?php _e('Only show members who have uploaded a profile photo','ultimatemember'); ?><?php $this->tooltip('If \'Use Gravatars\' as profile photo is enabled, this option is ignored'); ?></label>
|
||||
<span class="um-admin-half">
|
||||
|
||||
|
||||
<?php $this->ui_on_off('_um_has_profile_photo'); ?>
|
||||
|
||||
|
||||
</span>
|
||||
</p><div class="um-admin-clear"></div>
|
||||
|
||||
<p>
|
||||
<label class="um-admin-half"><?php _e('Only show members who have uploaded a cover photo','ultimatemember'); ?></label>
|
||||
<span class="um-admin-half">
|
||||
|
||||
|
||||
<?php $this->ui_on_off('_um_has_cover_photo'); ?>
|
||||
|
||||
|
||||
</span>
|
||||
</p><div class="um-admin-clear"></div>
|
||||
|
||||
|
||||
<p>
|
||||
<label class="um-admin-half"><?php _e('Sort users by','ultimatemember'); ?> <?php $this->tooltip('Sort users by a specific parameter in the directory'); ?></label>
|
||||
<span class="um-admin-half">
|
||||
|
||||
|
||||
<select name="_um_sortby" id="_um_sortby" class="umaf-selectjs um-adm-conditional" style="width: 300px" data-cond1='other' data-cond1-show='custom-field'>
|
||||
<option value="user_registered_desc" <?php selected('user_registered_desc', $ultimatemember->query->get_meta_value('_um_sortby') ); ?>><?php _e('New users first','ultimatemember'); ?></option>
|
||||
<option value="user_registered_asc" <?php selected('user_registered_asc', $ultimatemember->query->get_meta_value('_um_sortby') ); ?>><?php _e('Old users first','ultimatemember'); ?></option>
|
||||
@@ -62,35 +62,36 @@
|
||||
<option value="display_name" <?php selected('display_name', $ultimatemember->query->get_meta_value('_um_sortby') ); ?>><?php _e('Display Name','ultimatemember'); ?></option>
|
||||
<option value="first_name" <?php selected('first_name', $ultimatemember->query->get_meta_value('_um_sortby') ); ?>><?php _e('First Name','ultimatemember'); ?></option>
|
||||
<option value="last_name" <?php selected('last_name', $ultimatemember->query->get_meta_value('_um_sortby') ); ?>><?php _e('Last Name','ultimatemember'); ?></option>
|
||||
<option value="random" <?php selected('random', $ultimatemember->query->get_meta_value('_um_sortby') ); ?>><?php _e('Random','ultimatemember'); ?></option>
|
||||
<option value="other" <?php selected('other', $ultimatemember->query->get_meta_value('_um_sortby') ); ?>><?php _e('Other (custom field)','ultimatemember'); ?></option>
|
||||
<?php do_action('um_admin_directory_sort_users_select', '_um_sortby'); ?>
|
||||
</select>
|
||||
|
||||
|
||||
</span>
|
||||
</p><div class="um-admin-clear"></div>
|
||||
|
||||
|
||||
<p class="custom-field">
|
||||
<label class="um-admin-half"><?php _e('Meta key','ultimatemember'); ?> <?php $this->tooltip('To sort by a custom field, enter the meta key of field here'); ?></label>
|
||||
<span class="um-admin-half">
|
||||
|
||||
|
||||
<input type="text" name="_um_sortby_custom" id="_um_sortby_custom" value="<?php echo $ultimatemember->query->get_meta_value('_um_sortby_custom', null, 'na' ); ?>" />
|
||||
|
||||
|
||||
</span>
|
||||
</p><div class="um-admin-clear"></div>
|
||||
|
||||
|
||||
<p>
|
||||
<label class="um-admin-half"><?php _e('Only show specific users (Enter one username per line)','ultimatemember'); ?></label>
|
||||
<span class="um-admin-half">
|
||||
|
||||
|
||||
<textarea name="_um_show_these_users" id="_um_show_these_users"><?php echo $show_these_users; ?></textarea>
|
||||
|
||||
|
||||
</span>
|
||||
</p><div class="um-admin-clear"></div>
|
||||
|
||||
|
||||
<?php do_action('um_admin_extend_directory_options_general', $this); ?>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="um-admin-clear"></div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
+58
-55
@@ -5,14 +5,14 @@
|
||||
***/
|
||||
add_filter('um_edit_label_all_fields', 'um_edit_label_all_fields', 10, 2);
|
||||
function um_edit_label_all_fields( $label, $data ) {
|
||||
|
||||
|
||||
$asterisk = um_get_option('form_asterisk');
|
||||
if ( $asterisk && isset( $data['required'] ) && $data['required'] == 1 )
|
||||
$label = $label . '<span class="um-req" title="'.__('Required','ultimatemember').'">*</span>';
|
||||
|
||||
|
||||
return $label;
|
||||
}
|
||||
|
||||
|
||||
/***
|
||||
*** @change birth date label in view
|
||||
***/
|
||||
@@ -21,24 +21,24 @@
|
||||
$label = __('Age','ultimatemember');
|
||||
return $label;
|
||||
}
|
||||
|
||||
|
||||
/***
|
||||
*** @outputs a soundcloud track
|
||||
***/
|
||||
add_filter('um_profile_field_filter_hook__soundcloud_track', 'um_profile_field_filter_hook__soundcloud_track', 99, 2);
|
||||
function um_profile_field_filter_hook__soundcloud_track( $value, $data ) {
|
||||
|
||||
|
||||
if ( !is_numeric( $value ) ) {
|
||||
return __('Invalid soundcloud track ID','ultimatemember');
|
||||
}
|
||||
|
||||
|
||||
$value = '<div class="um-soundcloud">
|
||||
<iframe width="100%" height="166" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/' . $value . '&color=ff6600&auto_play=false&show_artwork=true"></iframe>
|
||||
</div>';
|
||||
|
||||
|
||||
return $value;
|
||||
}
|
||||
|
||||
|
||||
/***
|
||||
*** @outputs a youtube video
|
||||
***/
|
||||
@@ -50,7 +50,7 @@
|
||||
</div>';
|
||||
return $value;
|
||||
}
|
||||
|
||||
|
||||
/***
|
||||
*** @outputs a vimeo video
|
||||
***/
|
||||
@@ -62,7 +62,7 @@
|
||||
</div>';
|
||||
return $value;
|
||||
}
|
||||
|
||||
|
||||
/***
|
||||
*** @outputs a google map
|
||||
***/
|
||||
@@ -73,7 +73,7 @@
|
||||
</div>';
|
||||
return $value;
|
||||
}
|
||||
|
||||
|
||||
/***
|
||||
*** @user's registration date
|
||||
***/
|
||||
@@ -83,7 +83,7 @@
|
||||
$value = sprintf(__('Joined %s','ultimatemember'), date_i18n('F d, Y', $value) );
|
||||
return $value;
|
||||
}
|
||||
|
||||
|
||||
/***
|
||||
*** @last login date
|
||||
***/
|
||||
@@ -92,7 +92,7 @@
|
||||
$value = sprintf( __('Last login: %s','ultimatemember'), um_user_last_login( um_user('ID') ) );
|
||||
return $value;
|
||||
}
|
||||
|
||||
|
||||
/***
|
||||
*** @urls in description
|
||||
***/
|
||||
@@ -100,17 +100,17 @@
|
||||
add_filter('um_profile_field_filter_hook__textarea', 'um_profile_field_filter_hook__description', 99, 2);
|
||||
function um_profile_field_filter_hook__description( $value, $data ) {
|
||||
global $ultimatemember;
|
||||
|
||||
|
||||
if ( isset( $data ) && isset( $data['html'] ) && $data['html'] == 1 )
|
||||
return $value;
|
||||
|
||||
|
||||
$value = preg_replace('$(https?://[a-z0-9_./?=&#-]+)(?![^<>]*>)$i', ' <a href="$1" target="_blank">$1</a> ', $value." ");
|
||||
$value = preg_replace('$(www\.[a-z0-9_./?=&#-]+)(?![^<>]*>)$i', '<a target="_blank" href="http://$1">$1</a> ', $value." ");
|
||||
$value = wpautop($value);
|
||||
|
||||
return $value;
|
||||
}
|
||||
|
||||
|
||||
/***
|
||||
*** @time
|
||||
***/
|
||||
@@ -123,7 +123,7 @@
|
||||
$value = str_replace('pm', 'p.m.', $value );
|
||||
return $value;
|
||||
}
|
||||
|
||||
|
||||
/***
|
||||
*** @date
|
||||
***/
|
||||
@@ -136,17 +136,17 @@
|
||||
} else {
|
||||
$value = $ultimatemember->datetime->format( $value, $data['format'] );
|
||||
}
|
||||
|
||||
|
||||
return $value;
|
||||
}
|
||||
|
||||
|
||||
/***
|
||||
*** @file
|
||||
***/
|
||||
add_filter('um_profile_field_filter_hook__file', 'um_profile_field_filter_hook__file', 99, 2);
|
||||
function um_profile_field_filter_hook__file( $value, $data ) {
|
||||
global $ultimatemember;
|
||||
|
||||
|
||||
$uri = um_user_uploads_uri() . $value;
|
||||
$extension = pathinfo( $uri, PATHINFO_EXTENSION);
|
||||
|
||||
@@ -162,28 +162,31 @@
|
||||
</div>
|
||||
</div>';
|
||||
}
|
||||
|
||||
|
||||
return $value;
|
||||
}
|
||||
|
||||
|
||||
/***
|
||||
*** @image
|
||||
***/
|
||||
add_filter('um_profile_field_filter_hook__image', 'um_profile_field_filter_hook__image', 99, 2);
|
||||
function um_profile_field_filter_hook__image( $value, $data ) {
|
||||
|
||||
$uri = um_user_uploads_uri() . $value;
|
||||
$title = ( isset( $data['title'] ) ) ? $data['title'] : __('Untitled photo');
|
||||
|
||||
if ( file_exists( um_user_uploads_dir() . $value ) ) {
|
||||
|
||||
// if value is an image tag
|
||||
if( preg_match( '/\<img.*src=\"([^"]+).*/', $value, $matches ) ) {
|
||||
$uri = $matches[1];
|
||||
$value = '<div class="um-photo"><a href="#" class="um-photo-modal" data-src="'.$uri.'"><img src="'. $uri .'" alt="'.$title.'" title="'.$title.'" class="" /></a></div>';
|
||||
} else if ( file_exists( um_user_uploads_dir() . $value ) ) {
|
||||
$value = '<div class="um-photo"><a href="#" class="um-photo-modal" data-src="'.$uri.'"><img src="'. $uri .'" alt="'.$title.'" title="'.$title.'" class="" /></a></div>';
|
||||
} else {
|
||||
$value = '';
|
||||
}
|
||||
|
||||
|
||||
return $value;
|
||||
}
|
||||
|
||||
|
||||
/***
|
||||
*** @global
|
||||
***/
|
||||
@@ -197,8 +200,8 @@
|
||||
$url_rel = ( isset( $data['url_rel'] ) ) ? 'rel="nofollow"' : '';
|
||||
if( !strstr( $value, 'http' )
|
||||
&& !strstr( $value, '://' )
|
||||
&& !strstr( $value, 'www.' )
|
||||
&& !strstr( $value, '.com' )
|
||||
&& !strstr( $value, 'www.' )
|
||||
&& !strstr( $value, '.com' )
|
||||
&& !strstr( $value, '.net' )
|
||||
&& !strstr( $value, '.org' )
|
||||
) {
|
||||
@@ -209,58 +212,58 @@
|
||||
if ( $data['validate'] == 'linkedin_url' ) $value = 'https://linkedin.com/' . $value;
|
||||
if ( $data['validate'] == 'skype' ) $value = $value;
|
||||
if ( $data['validate'] == 'googleplus_url' ) $value = 'https://plus.google.com/' . $value;
|
||||
if ( $data['validate'] == 'instagram_url' ) $value = 'https://instagram.com/' . $value;
|
||||
if ( $data['validate'] == 'instagram_url' ) $value = 'https://instagram.com/' . $value;
|
||||
}
|
||||
|
||||
|
||||
if ( isset( $data['validate'] ) && $data['validate'] == 'skype' ) {
|
||||
|
||||
|
||||
$value = $value;
|
||||
|
||||
|
||||
} else {
|
||||
|
||||
|
||||
if ( strpos($value, 'http://') !== 0 ) {
|
||||
$value = 'http://' . $value;
|
||||
}
|
||||
$data['url_target'] = ( isset( $data['url_target'] ) ) ? $data['url_target'] : '_blank';
|
||||
$value = '<a href="'. $value .'" title="'.$alt.'" target="'.$data['url_target'].'" ' . $url_rel . '>'.$alt.'</a>';
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
if ( !is_array( $value ) ) {
|
||||
if ( is_email( $value ) )
|
||||
$value = '<a href="mailto:'. $value.'" title="'.$value.'">'.$value.'</a>';
|
||||
} else {
|
||||
$value = implode(', ', $value);
|
||||
}
|
||||
|
||||
|
||||
$value = str_replace('https://https://','https://',$value);
|
||||
$value = str_replace('http://https://','https://',$value);
|
||||
$value = $ultimatemember->shortcodes->emotize( $value );
|
||||
return $value;
|
||||
|
||||
}
|
||||
|
||||
|
||||
/***
|
||||
*** @get form fields
|
||||
***/
|
||||
add_filter('um_get_form_fields', 'um_get_form_fields', 99);
|
||||
function um_get_form_fields( $array ) {
|
||||
|
||||
|
||||
global $ultimatemember;
|
||||
|
||||
|
||||
$form_id = (isset ( $ultimatemember->fields->set_id ) ) ? $ultimatemember->fields->set_id : null;
|
||||
$mode = (isset( $ultimatemember->fields->set_mode ) ) ? $ultimatemember->fields->set_mode : null;
|
||||
|
||||
|
||||
if ( $form_id && $mode ) {
|
||||
$array = $ultimatemember->query->get_attr('custom_fields', $form_id );
|
||||
} else {
|
||||
$array = '';
|
||||
}
|
||||
|
||||
|
||||
return $array;
|
||||
|
||||
|
||||
}
|
||||
|
||||
/***
|
||||
@@ -269,14 +272,14 @@
|
||||
add_filter('um_get_custom_field_array', 'um_get_custom_field_array',99,2);
|
||||
|
||||
function um_get_custom_field_array( $array, $fields ){
|
||||
|
||||
|
||||
if( isset( $array['conditions'] ) ){
|
||||
$found = 0;
|
||||
for( $a = 0; $a < count( $array['conditions'] ); $a++ ){
|
||||
if( isset( $array['conditional_value'] ) || isset( $array['conditional_value'.$a] ) ){
|
||||
|
||||
|
||||
if( isset( $array['conditions'] ) && ! empty( $array['conditions'] ) ){
|
||||
|
||||
|
||||
$arr_conditions = array();
|
||||
|
||||
foreach ($array['conditions'] as $key => $value) {
|
||||
@@ -312,8 +315,8 @@
|
||||
*/
|
||||
add_filter('um_profile_field_filter_hook__','um_force_utf8_fields',1,10);
|
||||
function um_force_utf8_fields( $value ){
|
||||
|
||||
if( ! um_get_option('um_force_utf8_strings') )
|
||||
|
||||
if( ! um_get_option('um_force_utf8_strings') )
|
||||
return $value;
|
||||
|
||||
$value = um_force_utf8_string( $value );
|
||||
@@ -333,18 +336,18 @@
|
||||
function um_is_selected_filter_value( $value ){
|
||||
global $ultimatemember;
|
||||
|
||||
if( ! um_get_option('um_force_utf8_strings') )
|
||||
if( ! um_get_option('um_force_utf8_strings') )
|
||||
return $value;
|
||||
|
||||
$value = um_force_utf8_string( $value );
|
||||
|
||||
|
||||
return $value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Filter select dropdown to use UTF-8 encoding
|
||||
* @param array $options
|
||||
* @param array $data
|
||||
* @param array $options
|
||||
* @param array $data
|
||||
* @return $options
|
||||
* @uses hook filter: um_select_dropdown_dynamic_options
|
||||
*/
|
||||
@@ -352,12 +355,12 @@
|
||||
function um_select_dropdown_dynamic_options_to_utf8( $options, $data ){
|
||||
global $ultimatemember;
|
||||
|
||||
if( ! um_get_option('um_force_utf8_strings') )
|
||||
if( ! um_get_option('um_force_utf8_strings') )
|
||||
return $options;
|
||||
|
||||
foreach ( $options as $key => $value ) {
|
||||
$options[ $key ] = um_force_utf8_string( $value );
|
||||
|
||||
|
||||
}
|
||||
|
||||
return $options;
|
||||
|
||||
@@ -235,6 +235,17 @@
|
||||
return $query_args;
|
||||
}
|
||||
|
||||
/***
|
||||
*** @sorting random
|
||||
***/
|
||||
add_filter('pre_user_query', function($query) {
|
||||
if($query->query_vars["orderby"] == 'random') {
|
||||
$query->query_orderby = 'ORDER by RAND()';
|
||||
}
|
||||
|
||||
return $query;
|
||||
});
|
||||
|
||||
/***
|
||||
*** @hook in the member results array
|
||||
***/
|
||||
|
||||
Reference in New Issue
Block a user