Advertisement
Guest User

Untitled

a guest
Jun 14th, 2013
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.50 KB | None | 0 0
  1. function public_news_image_validation( $valid_obj ) {
  2. if ( empty( $_FILES ) ) return $valid_obj;
  3. $form_id = $valid_obj['form']['id'];
  4. $formFields = &$valid_obj['form']['fields'];
  5. $page_number = GFFormDisplay::get_source_page( $form_id );
  6. foreach ( $formFields as &$field ) {
  7. if ( $page_number > 0 && $field["pageNumber"] != $page_number ) continue; //paged form scenario - only validate fields that are on current page
  8. if ( in_array(
  9. ( $field_type = RGFormsModel::get_input_type($field) ),
  10. array( 'fileupload', 'post_image' )
  11. )
  12. ) {
  13.  
  14. $field_id = $field['id'];
  15. $input_name = 'input_' . $field_id;
  16.  
  17. if ( $field['failed_validation'] ) return $valid_obj;
  18. $file_info = RGFormsModel::get_temp_filename( $form_id, $input_name );
  19. $temp_filepath = RGFormsModel::get_upload_path($form_id) . "/tmp/" . $file_info["temp_filename"];
  20.  
  21. if ( file_exists( $temp_filepath ) ) {
  22. $bytes = filesize( $temp_filepath );
  23. $dims = @getimagesize( $temp_filepath );
  24. }
  25. elseif ( isset( $_FILES[$input_name] ) && !empty( $_FILES[$input_name] ) ) {
  26. $bytes = $_FILES[$input_name]['size'];
  27. $randname=mt_rand() . $_FILES[$input_name]['name'];
  28. $_FILES[$input_name]['name']=$randname;
  29. $dims = @getimagesize( $_FILES[$input_name]['tmp_name'] );
  30. }
  31. else return $valid_obj;
  32. $max_size = 1024*4000; // 4000kb
  33. if ( $bytes > $max_size ) {
  34.  
  35. unset( RGFormsModel::$uploaded_files[$form_id][$input_name] );
  36. unset( $_FILES[$input_name] );
  37. $field['failed_validation'] = true;
  38. $field['validation_message'] = sprintf( __( 'File upload size (%s) exceeded', 'gravityforms' ), $max_size/1024 . 'kb' );
  39. $valid_obj['is_valid'] = false;
  40. return $valid_obj;
  41. }
  42. if ( ! empty( $dims ) && is_array( $dims ) ) {
  43. list( $up_width, $up_height ) = $dims;
  44. if ( min( $up_width, $up_height ) < 300 ) { //smallest image size should be at least 300px
  45.  
  46. unset( RGFormsModel::$uploaded_files[$form_id][$input_name] );
  47. unset( $_FILES[$input_name] );
  48. $field['failed_validation'] = true;
  49. $field['validation_message'] = sprintf( __( 'Image should be at least %s', 'gravityforms' ), '300x300 (px)' );
  50. $valid_obj['is_valid'] = false;
  51. //return $valid_obj;
  52. }
  53. }
  54. }
  55. }
  56. return $valid_obj;
  57. }
  58.  
  59. add_action( 'gform_validation', 'public_news_image_validation' );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement