Merge pull request #125 from jonfalcon/master

Image path and sortby 'random' option
This commit is contained in:
Champ Camba
2016-04-02 17:01:15 +08:00
3 changed files with 96 additions and 81 deletions
+27 -26
View File
@@ -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
View File
@@ -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 . '&amp;color=ff6600&amp;auto_play=false&amp;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;
+11
View File
@@ -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
***/