/** * Output the URL of the avatar to crop. * * @since 1.1.0 */ function bp_avatar_to_crop() { echo bp_get_avatar_to_crop(); }
function tv_upload_file() { global $bp, $wpdb; if (!isset($bp->signup->step)) { $bp->signup = new stdClass(); } if (!isset($bp->avatar_admin)) { $bp->avatar_admin = new stdClass(); } $bp->signup->step = 'completed-confirmation'; $next_user_id = get_last_id_auto_increment($wpdb->prefix . 'users'); $bp->signup->avatar_dir = wp_hash($next_user_id); $bp->displayed_user->id = $next_user_id; //$bp->avatar_admin->image->url = $_FILES['file']['name']; $avatar = tv_bp_core_avatar_handle_upload($_FILES, 'xprofile_avatar_upload_dir'); if ($avatar) { $bp->avatar_admin->step = 'crop-image'; ob_start(); //tv_add_jquery_cropper(); // Bail if no image was uploaded $image = apply_filters('bp_inline_cropper_image', getimagesize(bp_core_avatar_upload_path() . buddypress()->avatar_admin->image->dir)); if (empty($image)) { // $full_height = bp_core_avatar_full_height(); } $full_width = bp_core_avatar_full_width(); // Calculate Aspect Ratio if (!empty($full_height) && $full_width != $full_height) { $aspect_ratio = $full_width / $full_height; } else { $aspect_ratio = 1; } // Default cropper coordinates $crop_left = round($image[0] / 4); $crop_top = round($image[1] / 4); $crop_right = $image[0] - $crop_left; $crop_bottom = $image[1] - $crop_top; $html = '<li class="image-wrap thumbnail" style="width: 100%">'; //$html .= '<h5>'. _e( 'Crop Your New Avatar', 'buddypress' ).'</h5>'; $html = '<img src="' . bp_get_avatar_to_crop() . '" id="avatar-to-crop" class="avatar" alt="Image to crop" />'; $html .= ' <div id="avatar-crop-pane">'; $html .= ' <img src="' . bp_get_avatar_to_crop() . '" id="avatar-crop-preview" class="avatar" alt="Crop Preview" />'; $html .= ' </div>'; $html .= ' <input type="button" name="avatar_crop_submit" id="avatar_crop_submit" value="Crop image" />'; $html .= ' <img class="waiting" src="' . esc_url(admin_url('images/wpspin_light.gif')) . '" alt="" style="display:none" />'; $html .= '<input type="hidden" name="image_src" id="image_src" value="' . bp_get_avatar_to_crop_src() . '" />'; $html .= '<input type="hidden" name="id_user" id="id_user" value="' . $next_user_id . '" />'; $html .= '<input type="hidden" id="x" name="x" />'; $html .= '<input type="hidden" id="y" name="y" />'; $html .= '<input type="hidden" id="w" name="w" />'; $html .= '<input type="hidden" id="h" name="h" />'; $html .= '<script type="text/javascript">'; $html .= ' jQuery("#avatar-to-crop").Jcrop({ onChange: showPreview, onSelect: showPreview, onSelect: updateCoords, keySupport:false, aspectRatio: ' . $aspect_ratio . ', setSelect: [' . $crop_left . ', ' . $crop_top . ', ' . $crop_right . ', ' . $crop_bottom . ' ] }); updateCoords({x:' . $crop_left . ', y: ' . $crop_top . ', w: ' . $crop_right . ', h: ' . $crop_bottom . '}); function updateCoords(c) { jQuery("#x").val(c.x); jQuery("#y").val(c.y); jQuery("#w").val(c.w); jQuery("#h").val(c.h); } function showPreview(coords) { if ( parseInt(coords.w) > 0 ) { var fw = 150; var fh = 150; var rx = fw / coords.w; var ry = fh / coords.h; jQuery( "#avatar-crop-preview" ).css({ width: Math.round(rx * ' . $image[0] . ') + "px", height: Math.round(ry * ' . $image[1] . ') + "px", marginLeft: "-" + Math.round(rx * coords.x) + "px", marginTop: "-" + Math.round(ry * coords.y) + "px" }); } } '; $html .= '</script>'; $html .= ' <style type="text/css"> .jcrop-holder { float: left; margin: 0 20px 20px 0; text-align: left; } #avatar-crop-pane { width: 150px; height: 150px; overflow: hidden; } #avatar-crop-submit { margin: 20px 0; } .jcrop-holder img, #avatar-crop-pane img, #avatar-upload-form img, #create-group-form img, #group-settings-form img { border: none !important; max-width: none !important; } </style> '; echo $html; } else { echo 'Error upload'; } exit; }