Changeset 3650 for trunk/bp-xprofile/bp-xprofile-templatetags.php
- Timestamp:
- 01/04/2011 12:33:48 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/bp-xprofile/bp-xprofile-templatetags.php
r3560 r3650 129 129 $field = $this->next_field(); 130 130 131 if ( !empty( $field->data->value ) ) { 131 $value = !empty( $field->data ) && !empty( $field->data->value ) ? maybe_unserialize( $field->data->value ) : false; 132 133 if ( !empty( $value ) ) { 132 134 $this->field_has_data = true; 133 } 134 else { 135 } else { 135 136 $this->field_has_data = false; 136 137 } … … 188 189 $css_classes[] = sanitize_title( esc_attr( $class ) ); 189 190 190 / * Set a class with the field ID */191 // Set a class with the field ID 191 192 $css_classes[] = 'field_' . $profile_template->field->id; 192 193 193 / * Set a class with the field name (sanitized) */194 // Set a class with the field name (sanitized) 194 195 $css_classes[] = 'field_' . sanitize_title( $profile_template->field->name ); 195 196 … … 360 361 } 361 362 363 /** 364 * bp_the_profile_field_options() 365 * 366 * Displays field options HTML for field types of 'selectbox', 'multiselectbox', 367 * 'radio', 'checkbox', and 'datebox'. 368 * 369 * @package BuddyPress Xprofile 370 * @since 1.1 371 * 372 * @uses bp_get_the_profile_field_options() 373 * 374 * @param array $args Specify type for datebox. Allowed 'day', 'month', 'year'. 375 */ 362 376 function bp_the_profile_field_options( $args = '' ) { 363 377 echo bp_get_the_profile_field_options( $args ); 364 378 } 379 /** 380 * bp_get_the_profile_field_options() 381 * 382 * Retrieves field options HTML for field types of 'selectbox', 'multiselectbox', 383 * 'radio', 'checkbox', and 'datebox'. 384 * 385 * @package BuddyPress Xprofile 386 * @since 1.1 387 * 388 * @uses BP_XProfile_Field::get_children() 389 * @uses BP_XProfile_ProfileData::get_value_byid() 390 * 391 * @param array $args Specify type for datebox. Allowed 'day', 'month', 'year'. 392 */ 365 393 function bp_get_the_profile_field_options( $args = '' ) { 366 394 global $field; … … 378 406 $options = $field->get_children(); 379 407 408 // Setup some defaults 409 $html = ''; 410 $selected = ''; 411 380 412 switch ( $field->type ) { 381 413 … … 385 417 386 418 for ( $k = 0; $k < count($options); $k++ ) { 387 $o ption_values = maybe_unserialize( BP_XProfile_ProfileData::get_value_byid( $options[$k]->parent_id ) );388 $option_values = (array) $option_values;389 390 / * Check for updated posted values, but errors preventing them from being saved first time */391 foreach( (array)$option_values as $i => $option_value ) {419 $original_option_values = maybe_unserialize( BP_XProfile_ProfileData::get_value_byid( $options[$k]->parent_id ) ); 420 $option_values = (array) $original_option_values; 421 422 // Check for updated posted values, but errors preventing them from being saved first time 423 foreach( $option_values as $i => $option_value ) { 392 424 if ( isset( $_POST['field_' . $field->id] ) && $_POST['field_' . $field->id] != $option_value ) { 393 425 if ( !empty( $_POST['field_' . $field->id] ) ) … … 396 428 } 397 429 398 if ( in_array( $options[$k]->name, (array)$option_values ) || $options[$k]->is_default_option ) { 430 $selected = ''; 431 432 // First, check to see whether the user-entered value 433 // matches 434 if ( in_array( $options[$k]->name, (array) $option_values ) ) 399 435 $selected = ' selected="selected"'; 400 } else { 401 $selected = ''; 402 } 403 404 $html .= apply_filters( 'bp_get_the_profile_field_options_select', '<option' . $selected . ' value="' . stripslashes( esc_attr( $options[$k]->name ) ) . '">' . stripslashes( esc_attr( $options[$k]->name ) ) . '</option>', $options[$k] ); 436 437 // Then, if the user has not provided a value, check for 438 // defaults 439 if ( !is_array( $original_option_values ) && empty( $option_values ) & $options[$k]->is_default_option ) 440 $selected = ' selected="selected"'; 441 442 $html .= apply_filters( 'bp_get_the_profile_field_options_select', '<option' . $selected . ' value="' . esc_attr( stripslashes( $options[$k]->name ) ) . '">' . esc_attr( stripslashes( $options[$k]->name ) ) . '</option>', $options[$k] ); 405 443 } 406 444 break; 407 445 408 446 case 'radio': 409 $html = '<div id="field_' . $field->id . '">';447 $html .= '<div id="field_' . $field->id . '">'; 410 448 411 449 for ( $k = 0; $k < count($options); $k++ ) { 412 450 $option_value = BP_XProfile_ProfileData::get_value_byid($options[$k]->parent_id); 413 451 414 / * Check for updated posted values, but errors preventing them from being saved first time */452 // Check for updated posted values, but errors preventing them from being saved first time 415 453 if ( isset( $_POST['field_' . $field->id] ) && $option_value != $_POST['field_' . $field->id] ) { 416 454 if ( !empty( $_POST['field_' . $field->id] ) ) 417 455 $option_value = $_POST['field_' . $field->id]; 418 456 } 419 420 if ( $option_value == $options[$k]->name || $value == $options[$k]->name || ( empty( $option_value ) && $options[$k]->is_default_option ) ) { 457 458 $selected = ''; 459 if ( $option_value == $options[$k]->name || !empty( $value ) && $value == $options[$k]->name || ( empty( $option_value ) && $options[$k]->is_default_option ) ) 421 460 $selected = ' checked="checked"'; 422 } else { 423 $selected = ''; 424 } 425 426 $html .= apply_filters( 'bp_get_the_profile_field_options_radio', '<label><input' . $selected . ' type="radio" name="field_' . $field->id . '" id="option_' . $options[$k]->id . '" value="' . stripslashes( esc_attr( $options[$k]->name ) ) . '"> ' . stripslashes( esc_attr( $options[$k]->name ) ) . '</label>', $options[$k] ); 461 462 $html .= apply_filters( 'bp_get_the_profile_field_options_radio', '<label><input' . $selected . ' type="radio" name="field_' . $field->id . '" id="option_' . $options[$k]->id . '" value="' . esc_attr( stripslashes( $options[$k]->name ) ) . '"> ' . esc_attr( stripslashes( $options[$k]->name ) ) . '</label>', $options[$k] ); 427 463 } 428 464 … … 433 469 $option_values = BP_XProfile_ProfileData::get_value_byid($options[0]->parent_id); 434 470 435 / * Check for updated posted values, but errors preventing them from being saved first time */471 // Check for updated posted values, but errors preventing them from being saved first time 436 472 if ( isset( $_POST['field_' . $field->id] ) && $option_values != maybe_serialize( $_POST['field_' . $field->id] ) ) { 437 473 if ( !empty( $_POST['field_' . $field->id] ) ) … … 440 476 441 477 $option_values = maybe_unserialize($option_values); 442 443 $html = ''; 478 444 479 for ( $k = 0; $k < count($options); $k++ ) { 445 480 $selected = ''; 481 482 // First, check to see whether the user's saved values 483 // match the option 446 484 for ( $j = 0; $j < count($option_values); $j++ ) { 447 if ( $option_values[$j] == $options[$k]->name || @in_array( $options[$k]->name, $value ) || $options[$k]->is_default_option) {485 if ( $option_values[$j] == $options[$k]->name || @in_array( $options[$k]->name, $value ) ) { 448 486 $selected = ' checked="checked"'; 449 487 break; 450 488 } 451 489 } 452 453 $html .= apply_filters( 'bp_get_the_profile_field_options_checkbox', '<label><input' . $selected . ' type="checkbox" name="field_' . $field->id . '[]" id="field_' . $options[$k]->id . '_' . $k . '" value="' . stripslashes( esc_attr( $options[$k]->name ) ) . '"> ' . stripslashes( esc_attr( $options[$k]->name ) ) . '</label>', $options[$k] ); 454 $selected = ''; 490 491 // If the user has not yet supplied a value for this field, 492 // check to see whether there is a default value available 493 if ( !is_array( $option_values ) && empty( $option_values ) && !$selected && $options[$k]->is_default_option) { 494 $selected = ' checked="checked"'; 495 } 496 497 $html .= apply_filters( 'bp_get_the_profile_field_options_checkbox', '<label><input' . $selected . ' type="checkbox" name="field_' . $field->id . '[]" id="field_' . $options[$k]->id . '_' . $k . '" value="' . esc_attr( stripslashes( $options[$k]->name ) ) . '"> ' . esc_attr( stripslashes( $options[$k]->name ) ) . '</label>', $options[$k] ); 455 498 } 456 499 break; 457 500 458 501 case 'datebox': 459 460 if ( !empty( $field->data->value ) ) { 461 $day = date("j", $field->data->value); 462 $month = date("F", $field->data->value); 463 $year = date("Y", $field->data->value); 464 $default_select = ' selected="selected"'; 465 } 466 467 /* Check for updated posted values, but errors preventing them from being saved first time */ 502 $date = BP_XProfile_ProfileData::get_value_byid( $field->id ); 503 504 // Set day, month, year defaults 505 $day = ''; 506 $month = ''; 507 $year = ''; 508 509 if ( !empty( $date ) ) { 510 $day = date( 'j', $date ); 511 $month = date( 'F', $date ); 512 $year = date( 'Y', $date ); 513 } 514 515 // Check for updated posted values, but errors preventing them from being saved first time 468 516 if ( !empty( $_POST['field_' . $field->id . '_day'] ) ) { 469 517 if ( $day != $_POST['field_' . $field->id . '_day'] ) … … 483 531 switch ( $type ) { 484 532 case 'day': 485 $html .= '<option value=""' . esc_attr( $default_select) . '>--</option>';533 $html .= '<option value=""' . selected( $day, '', false ) . '>--</option>'; 486 534 487 535 for ( $i = 1; $i < 32; $i++ ) { 488 if ( $day == $i ) { 489 $selected = ' selected = "selected"'; 490 } else { 491 $selected = ''; 492 } 493 $html .= '<option value="' . $i .'"' . $selected . '>' . $i . '</option>'; 536 $html .= '<option value="' . $i .'"' . selected( $day, $i, false ) . '>' . $i . '</option>'; 494 537 } 495 538 break; … … 504 547 ); 505 548 506 $html .= '<option value=""' . esc_attr( $default_select) . '>------</option>';549 $html .= '<option value=""' . selected( $month, '', false ) . '>------</option>'; 507 550 508 551 for ( $i = 0; $i < 12; $i++ ) { 509 if ( $month == $eng_months[$i] ) { 510 $selected = ' selected = "selected"'; 511 } else { 512 $selected = ''; 513 } 514 515 $html .= '<option value="' . $eng_months[$i] . '"' . $selected . '>' . $months[$i] . '</option>'; 552 $html .= '<option value="' . $eng_months[$i] . '"' . selected( $month, $eng_months[$i], false ) . '>' . $months[$i] . '</option>'; 516 553 } 517 554 break; 518 555 519 556 case 'year': 520 $html .= '<option value=""' . esc_attr( $default_select ) . '>----</option>'; 521 522 for ( $i = date( 'Y', time() ); $i > 1899; $i-- ) { 523 if ( $year == $i ) { 524 $selected = ' selected = "selected"'; 525 } else { 526 $selected = ''; 527 } 528 529 $html .= '<option value="' . $i .'"' . $selected . '>' . $i . '</option>'; 557 $html .= '<option value=""' . selected( $year, '', false ) . '>----</option>'; 558 559 for ( $i = date( 'Y' ); $i > 1899; $i-- ) { 560 $html .= '<option value="' . $i .'"' . selected( $year, $i, false ) . '>' . $i . '</option>'; 530 561 } 531 562 break; 532 563 } 533 564 534 apply_filters( 'bp_get_the_profile_field_datebox', $html, $day, $month, $year, $default_select);565 $html = apply_filters( 'bp_get_the_profile_field_datebox', $html, $type, $day, $month, $year ); 535 566 536 567 break;
Note: See TracChangeset
for help on using the changeset viewer.