Date Field Complete

This commit is contained in:
ultimatemember
2014-12-31 20:04:10 +02:00
parent 59431d3703
commit 1f2e7b54dd
12 changed files with 151 additions and 19 deletions
+1
View File
@@ -27,6 +27,7 @@
$save = '';
$save[ $_metakey ]['roles'] = '';
$save[ $_metakey ]['disabled_weekdays'] = '';
$save[ $_metakey ]['icon'] = '';
foreach( $array['post'] as $key => $val){
+13
View File
@@ -0,0 +1,13 @@
<?php
/***
*** @Un-install UM completely
***/
add_action('um_admin_do_action__uninstall_ultimatemember', 'um_admin_do_action__uninstall_ultimatemember');
function um_admin_do_action__uninstall_ultimatemember( $action ){
global $ultimatemember;
if ( !is_admin() || !current_user_can('manage_options') ) die();
$ultimatemember->uninstall->remove_um();
}
+6 -1
View File
@@ -826,7 +826,12 @@ class UM_Admin_Metabox {
?>
<p><label for="_format">Date User-Friendly Format <?php $this->tooltip('The display format of the date which is visible to user.'); ?></label>
<input type="text" name="_format" id="_format" value="<?php echo ( $this->edit_mode_value ) ? $this->edit_mode_value : 'd mmmm, yyyy'; ?>" placeholder="e.g. d mmmm, yyyy" />
<select name="_format" id="_format" class="umaf-selectjs" style="width: 100%">
<option value="j M Y" <?php selected( 'j M Y', $this->edit_mode_value ); ?>><?php echo $ultimatemember->datetime->get_time('j M Y'); ?></option>
<option value="M j Y" <?php selected( 'M j Y', $this->edit_mode_value ); ?>><?php echo $ultimatemember->datetime->get_time('M j Y'); ?></option>
<option value="j F Y" <?php selected( 'j F Y', $this->edit_mode_value ); ?>><?php echo $ultimatemember->datetime->get_time('j F Y'); ?></option>
<option value="F j Y" <?php selected( 'F j Y', $this->edit_mode_value ); ?>><?php echo $ultimatemember->datetime->get_time('F j Y'); ?></option>
</select>
</p>
<?php } else { ?>
+6 -4
View File
@@ -39,6 +39,7 @@ class UM_Admin_API {
require_once um_path . 'admin/core/um-admin-actions-modal.php';
require_once um_path . 'admin/core/um-admin-actions-fields.php';
require_once um_path . 'admin/core/um-admin-actions-ajax.php';
require_once um_path . 'admin/core/um-admin-actions.php';
require_once um_path . 'admin/core/um-admin-filters-fields.php';
@@ -56,11 +57,12 @@ class UM_Admin_API {
if ( is_admin() &&
current_user_can('manage_options') &&
isset($_REQUEST['um_action']) &&
$_REQUEST['um_action'] == 'uninstall_ultimatemember'
)
isset($_REQUEST['um_adm_action']) &&
$_REQUEST['um_adm_action'] != ''
)
{
$ultimatemember->uninstall->remove_um();
do_action("um_admin_do_action__", $_REQUEST['um_adm_action'] );
do_action("um_admin_do_action__{$_REQUEST['um_adm_action']}", $_REQUEST['um_adm_action'] );
}
}
+27 -6
View File
@@ -80,12 +80,33 @@ jQuery(document).ready(function() {
});
/* datepicker */
jQuery('.um-datepicker').pickadate({
min: [1900,1,1],
max: true,
selectYears: 100,
formatSubmit: 'yyyy/mm/dd',
hiddenSuffix: '__true'
jQuery('.um-datepicker').each(function(){
elem = jQuery(this);
if ( elem.attr('data-years_x') == 'past' ) {var max = true;}
if ( elem.attr('data-years_x') == 'equal' ) {var max = false;}
if ( elem.attr('data-years_x') == 'future' ) {var min = true;var max = '';}
if ( elem.attr('data-disabled_weekdays') != '' ) {
var disable = JSON.parse( elem.attr('data-disabled_weekdays') );
} else {
var disable = false;
}
if ( elem.attr('data-range') == 'date_range' ) {
var min = new Date( elem.attr('data-date_min') );
var max = new Date( elem.attr('data-date_max') );
}
elem.pickadate({
selectYears: elem.attr('data-years'),
min: min,
max: max,
disable: disable,
format: elem.attr('data-format'),
formatSubmit: 'yyyy/mm/dd',
hiddenName: true,
});
});
/* timepicker */
+1 -1
View File
@@ -548,7 +548,7 @@ class UM_Builtin {
'pretty_format' => 1,
'years' => 115,
'years_x' => 'past',
'icon' => 'um-icon-calendar-7'
'icon' => 'um-icon-calendar-2'
),
'gender' => array(
+16
View File
@@ -13,6 +13,22 @@ class UM_DateTime {
return current_time( $format );
}
/***
*** @Get age
***/
function get_age($then) {
$then_ts = strtotime($then);
$then_year = date('Y', $then_ts);
$age = date('Y') - $then_year;
if(strtotime('+' . $age . ' years', $then_ts) > time()) $age--;
if ( $age == 1 )
return sprintf(__('%s year old','ultimatemember'), $age );
if ( $age > 1 )
return sprintf(__('%s years old','ultimatemember'), $age );
if ( $age == 0 )
return __('Less than 1 year old','ultimatemember');
}
/***
*** @Reformat dates
***/
+44 -2
View File
@@ -245,7 +245,13 @@ class UM_Fields {
if ( isset($data['icon']) && $data['icon'] != '' && isset( $this->field_icons ) && ( $this->field_icons == 'label' || $this->viewing == true ) ) {
$output .= '<div class="um-field-label-icon"><i class="'.$data['icon'].'"></i></div>';
}
if ( $this->viewing == true ) {
$label = apply_filters("um_view_label_{$key}", $label );
} else {
$label = apply_filters("um_edit_label_{$key}", $label );
}
$output .= '<label for="'.$key.$ultimatemember->form->form_suffix.'">'.$label.'</label>';
if ( isset( $data['help'] ) && !empty( $data['help'] ) && $this->viewing == false ) {
@@ -545,6 +551,42 @@ class UM_Fields {
$array['input'] = 'text';
if ( !isset( $array['format'] ) ) $array['format'] = 'j M Y';
switch( $array['format'] ) {
case 'j M Y':
$js_format = 'd mmm yyyy';
break;
case 'j F Y':
$js_format = 'd mmmm yyyy';
break;
case 'M j Y':
$js_format = 'mmm d yyyy';
break;
case 'F j Y':
$js_format = 'mmmm d yyyy';
break;
}
$array['js_format'] = $js_format;
if ( !isset( $array['range'] ) ) $array['range'] = 'years';
if ( !isset( $array['years'] ) ) $array['years'] = 100;
if ( !isset( $array['years_x'] ) ) $array['years_x'] = 'past';
if ( !isset( $array['disabled_weekdays'] ) ) $array['disabled_weekdays'] = '';
if ( !empty( $array['disabled_weekdays'] ) ) {
$array['disabled_weekdays'] = '[' . implode(',',$array['disabled_weekdays']) . ']';
}
if ( $array['range'] == 'date_range' ) {
$array['date_min'] = str_replace('/',',',$array['range_start']);
$array['date_max'] = str_replace('/',',',$array['range_end']);
}
if ( !isset( $array['date_min'] ) ) $array['date_min'] = '';
if ( !isset( $array['date_max'] ) ) $array['date_max'] = '';
if (!isset($array['autocomplete'])) $array['autocomplete'] = 'on';
break;
@@ -908,7 +950,7 @@ class UM_Fields {
}
$output .= '<input class="'.$this->get_class($key, $data).'" type="'.$input.'" name="'.$key.$ultimatemember->form->form_suffix.'" id="'.$key.$ultimatemember->form->form_suffix.'" value="'. $this->field_value( $key, $default, $data ) .'" placeholder="'.$placeholder.'" data-validate="'.$validate.'" data-key="'.$key.'" autocomplete="'.$autocomplete.'" />
$output .= '<input class="'.$this->get_class($key, $data).'" type="'.$input.'" name="'.$key.$ultimatemember->form->form_suffix.'" id="'.$key.$ultimatemember->form->form_suffix.'" value="'. $this->field_value( $key, $default, $data ) .'" placeholder="'.$placeholder.'" data-validate="'.$validate.'" data-key="'.$key.'" autocomplete="'.$autocomplete.'" data-range="'.$range.'" data-years="'.$years.'" data-years_x="'.$years_x.'" data-disabled_weekdays="'.$disabled_weekdays.'" data-date_min="'.$date_min.'" data-date_max="'.$date_max.'" data-format="'.$js_format.'" data-value="'. $this->field_value( $key, $default, $data ) .'" />
</div>';
+26 -1
View File
@@ -1,5 +1,30 @@
<?php
/***
*** @Dates
***/
add_filter('um_view_label_birth_date', 'um_view_label_birth_date');
function um_view_label_birth_date( $label ) {
$label = __('Age','ultimatemember');
return $label;
}
/***
*** @Dates
***/
add_filter('um_profile_field_filter_hook__date', 'um_profile_field_filter_hook__date', 99, 2);
function um_profile_field_filter_hook__date( $value, $data ) {
global $ultimatemember;
if ( $data['pretty_format'] == 1 ) {
$value = $ultimatemember->datetime->get_age( $value );
} else {
$value = $ultimatemember->datetime->format( $value, $data['format'] );
}
return $value;
}
/***
*** @Images
***/
@@ -45,7 +70,7 @@
}
/***
*** @some required changes before value is shown
*** @Global
***/
add_filter('um_profile_field_filter_hook__', 'um_profile_field_filter_hook__', 99, 2);
function um_profile_field_filter_hook__( $value, $data ) {
+8 -1
View File
@@ -492,18 +492,25 @@
function um_get_avatar_uri( $image, $attrs ) {
global $ultimatemember;
$uri = false;
$find = false;
if ( file_exists( $ultimatemember->files->upload_basedir . um_user('ID') . '/profile_photo-' . $attrs. '.jpg' ) ) {
$uri = um_user_uploads_uri() . 'profile_photo-'.$attrs.'.jpg?' . time();
} else {
$sizes = um_get_option('photo_thumb_sizes');
$find = um_closest_num( $sizes, $attrs );
if ( is_array( $sizes ) ) $find = um_closest_num( $sizes, $attrs );
if ( file_exists( $ultimatemember->files->upload_basedir . um_user('ID') . '/profile_photo-' . $find. '.jpg' ) ) {
$uri = um_user_uploads_uri() . 'profile_photo-'.$find.'.jpg?' . time();
} else if ( file_exists( $ultimatemember->files->upload_basedir . um_user('ID') . '/profile_photo.jpg' ) ) {
$uri = um_user_uploads_uri() . 'profile_photo.jpg?' . time();
}
}
+2 -2
View File
@@ -152,8 +152,8 @@ class UM_Validation {
/***
*** @To validate given date input
***/
function validate_date( $date, $format='YYYY/MM/DD' ) {
if ( strlen( $date ) != strlen($format) ) return false;
function validate_date( $date, $format='YYYY/MM/D' ) {
if ( strlen( $date ) < strlen($format) ) return false;
if ( $date[4] != '/' ) return false;
if ( $date[7] != '/' ) return false;
if ( false === strtotime($date) ) return false;
+1 -1
View File
@@ -55,7 +55,7 @@ Author URI: http://ultimatemember.com/
$links = $more_links + $links;
$links[] = '<a href="'.admin_url().'?um_action=uninstall_ultimatemember" class="delete" title="'.__('Remove this plugin','ultimatemember').'">' . __( 'Uninstall','ultimatemember' ) . '</a>';
$links[] = '<a href="'.admin_url().'?um_adm_action=uninstall_ultimatemember" class="delete" title="'.__('Remove this plugin','ultimatemember').'">' . __( 'Uninstall','ultimatemember' ) . '</a>';
return $links;