Plugin Directory

Changeset 785512


Ignore:
Timestamp:
10/09/2013 07:31:44 PM (12 years ago)
Author:
entr
Message:

fixed conflict in previous commit

Location:
gravity-forms-upload-rules/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • gravity-forms-upload-rules/trunk/gforms-uploadrules.php

    r785508 r785512  
    217217
    218218GFUploadRules::actions();
    219 =======
    220 <?php
    221 
    222 class GFUploadRules {
    223 
    224   protected static $version = '1.0';
    225 
    226     public function localize() {
    227        
    228         $locale = apply_filters( 'plugin_locale', get_locale(), 'gforms_uprules' );
    229         load_textdomain( 'gforms_uprules', WP_LANG_DIR . "/gforms_uprules/gforms_uprules-$locale.mo" );
    230         load_plugin_textdomain( 'gforms_uprules', null, basename( plugin_dir_path( __FILE__ ) ) . 'lang' );
    231     }
    232    
    233     public function register_scripts() {
    234         wp_register_script('gform_uprules_plugin_form_editor', plugins_url('/js/form_editor.js', __FILE__), array('jquery'), self::$version, true );
    235     }
    236    
    237     public function editor_js() {
    238 
    239         if ( ! in_array( 'gform_uprules_plugin_form_editor', wp_print_scripts(array('gform_uprules_plugin_form_editor')) ) ) :
    240     ?>
    241     <script type="text/javascript" id="gform_uprules_plugin_form_editor">
    242     <?php include plugin_dir_path( __FILE__ ) . 'js/form_editor.js'; ?>
    243     </script>
    244     <?php
    245     endif;
    246     }
    247  
    248   public function dimension_field_label_minwidth() {
    249    
    250     $locale = apply_filters( 'plugin_locale', get_locale(), 'gforms_uprules' );
    251     $label_minwidth_by_locale = apply_filters( 'gforms_uprules_dimension_field_label_minwidth', array( 'en_US' => 50 ) );
    252    
    253     if ( isset( $label_minwidth_by_locale[ $locale ] ) )
    254       return $label_minwidth_by_locale[ $locale ];
    255    
    256     //in case somebody has messed things up
    257     return 50;
    258   }
    259    
    260     public function field_settings( $position ) {
    261         if ( 200 != $position )
    262             return;
    263      
    264     $label_minwidth = self::dimension_field_label_minwidth();
    265         ?>
    266         <li class="uprules_filesize_setting field_setting">
    267             <label for="field_uprules_filesize">
    268                 <?php _e("Filesize Limit", "gforms_uprules"); ?>
    269         <?php gform_tooltip("form_field_uprules_filesize"); ?>
    270             </label>
    271             <input type="text" id="field_uprules_filesize" style="text-align: right;" onkeyup="SetFieldProperty('uprules_filesize_limit', this.value);" size="10" />
    272             <select id="field_uprules_filesize_dim" onchange="SetFieldProperty('uprules_filesize_dim', jQuery(this).val() );"><option value="kb">KB</option><option value="mb">MB</option></select>
    273         </li>
    274     <li class="uprules_dimensions_setting field_setting">
    275       <label>
    276         <?php _e("Image dimensions", "gforms_uprules"); ?>
    277      
    278         <select id="field_uprules_dims_ruletype" onchange="SetFieldProperty('uprules_dims_ruletype', jQuery(this).val() );">
    279           <option value="" style="text-align: center"><?php _e("&ndash; Select &ndash;", "gforms_uprules"); ?></option>
    280           <option value="exact"><?php _e("Exact", "gforms_uprules"); ?></option>
    281           <option value="conditional"><?php _e("Conditional", "gforms_uprules"); ?></option>
    282         </select>
    283        
    284         <?php gform_tooltip("form_field_uprules_dimensions"); ?>
    285        
    286       </label>
    287      
    288       <div class="uprules_dims_fields_exact" style="display: none;">
    289         <div>
    290           <label for="uprules_dims_exact_width" class="inline" style="min-width: <?php echo esc_attr( $label_minwidth ); ?>px; margin-right: 10px;">
    291             <?php _e("Width", "gforms_uprules"); ?>
    292           </label>
    293           <input type="text" id="field_uprules_dims_exact_width" style="text-align: center;" onkeyup="SetFieldProperty('uprules_dims_exact_width', this.value);" size="6" />
    294         </div>
    295         <div>
    296           <label for="uprules_dims_exact_height" class="inline" style="min-width: <?php echo esc_attr( $label_minwidth ); ?>px; margin-right: 10px;">
    297             <?php _e("Height", "gforms_uprules"); ?>
    298           </label>
    299           <input type="text" id="field_uprules_dims_exact_height" style="text-align: center;" onkeyup="SetFieldProperty('uprules_dims_exact_height', this.value);" size="6" />
    300         </div>
    301       </div> <!--//-- .uprules_dims_fields_exact -->
    302      
    303       <div class="uprules_dims_fields_conditional" style="display: none;">
    304         <div class="uprules_dims_fields_conditional_min">
    305           <label for="uprules_dims_minwidth" class="inline" style="min-width: <?php echo esc_attr( $label_minwidth ); ?>px; margin-right: 10px;">
    306             <?php _e("Min", "gforms_uprules"); ?>
    307           </label>
    308           <input type="text" id="field_uprules_dims_minwidth" style="text-align: center;" onkeyup="SetFieldProperty('uprules_dims_minwidth', this.value);" size="6" placeholder="<?php esc_attr_e("Width", "gforms_uprules"); ?>" />
    309           &times;
    310           <input type="text" id="field_uprules_dims_minheight" style="text-align: center;" onkeyup="SetFieldProperty('uprules_dims_minheight', this.value);" size="6" placeholder="<?php esc_attr_e("Height", "gforms_uprules"); ?>" />
    311         </div>
    312         <div class="uprules_dims_fields_conditional_max">
    313           <label for="uprules_dims_maxwidth" class="inline" style="min-width: <?php echo esc_attr( $label_minwidth ); ?>px; margin-right: 10px;">
    314             <?php _e("Max", "gforms_uprules"); ?>
    315           </label>
    316           <input type="text" id="field_uprules_dims_maxwidth" style="text-align: center;" onkeyup="SetFieldProperty('uprules_dims_maxwidth', this.value);" size="6" placeholder="<?php esc_attr_e("Width", "gforms_uprules"); ?>" />
    317           &times;
    318           <input type="text" id="field_uprules_dims_maxheight" style="text-align: center;" onkeyup="SetFieldProperty('uprules_dims_maxheight', this.value);" size="6" placeholder="<?php esc_attr_e("Height", "gforms_uprules"); ?>" />
    319         </div>
    320       </div> <!--//-- .uprules_dims_fields_conditional -->
    321      
    322     </li>
    323         <?php
    324     }
    325  
    326   public function field_validation( $valid, $value, $form, $field ) {
    327     if ( ! empty( $_FILES ) && $valid['is_valid'] && in_array( RGFormsModel::get_input_type($field), array( 'fileupload', 'post_image' ) ) ) {
    328      
    329       $form_id = $form['id'];
    330       $input_name = 'input_' . $field['id'];
    331       $fileinfo = RGFormsModel::get_temp_filename( $form_id, $input_name );
    332       $temp_filepath = RGFormsModel::get_upload_path($form_id) . "/tmp/" . $fileinfo["temp_filename"];
    333      
    334       if ( isset( $_FILES[$input_name] ) && !empty( $_FILES[$input_name] ) )  {
    335         $bytes = $_FILES[$input_name]['size'];
    336         $dims = @getimagesize( $_FILES[$input_name]['tmp_name'] );
    337       }
    338       elseif ( file_exists( $temp_filepath ) ) {
    339         $bytes = filesize( $temp_filepath );
    340         $dims = @getimagesize( $temp_filepath );
    341       }
    342       else return $valid;
    343      
    344            
    345       //validate filesize
    346             if ( isset( $field['uprules_filesize_limit'] ) ) {
    347                 $multipliers = array(
    348                     'kb' => 1024,
    349                     'mb' => 1024 * 1024
    350                 );
    351                 $max_filesize_user = intval( $field['uprules_filesize_limit'] );
    352                 $bytes_multiplier = $multipliers[$field['uprules_filesize_dim']];
    353                 $max_filesize_bytes = $max_filesize_user * $bytes_multiplier;
    354             }
    355                
    356       if ( isset( $bytes ) && $max_filesize_user > 0 && $max_filesize_bytes < $bytes ) {
    357         $valid['is_valid'] = false;
    358         $valid['message'] = sprintf( __( 'Max file upload size (%s) exceeded.', 'gravityforms' ), size_format( $max_filesize_bytes, 2 ) );         
    359       }
    360       //validate image dimensions
    361       if ( $valid['is_valid'] && is_array( $dims ) && isset( $field['uprules_dims_ruletype'] ) && in_array( $field['uprules_dims_ruletype'], array( 'exact', 'conditional' ) ) ) {
    362         list( $up_width, $up_height ) = $dims;
    363         $valid = self::validate_image_dimensions( $field, $up_width, $up_height );
    364       }
    365      
    366       if ( ! $valid['is_valid'] )
    367         unset( RGFormsModel::$uploaded_files[$form_id][$input_name], $_FILES[$input_name] );
    368      
    369     }
    370     return $valid;
    371   }
    372  
    373   public function is_valid_dim( $val ) {
    374     return (bool)( trim($val) == absint( $val ) && $val > 0 );
    375   }
    376  
    377   public function validate_image_dimensions( $field, $width, $height ) {
    378    
    379     $valid = array( 'is_valid' => true, 'message' => '' );
    380     switch ( $field['uprules_dims_ruletype'] ) {
    381       case 'exact':
    382         if (
    383           isset( $field['uprules_dims_exact_width'] ) && self::is_valid_dim( $field['uprules_dims_exact_width'] ) && trim( $field['uprules_dims_exact_width'] ) != $width
    384           || isset( $field['uprules_dims_exact_height'] ) && self::is_valid_dim( $field['uprules_dims_exact_height'] ) && trim( $field['uprules_dims_exact_height'] ) != $height
    385         )
    386           $valid['is_valid'] = false;
    387           $valid['message'] = sprintf( __("Only images with dimensions %d&times;%d allowed.", "gforms_uprules"), $field['uprules_dims_exact_width'], $field['uprules_dims_exact_height'] );
    388         break;
    389       case 'conditional':
    390         $errors = "";
    391        
    392         if ( isset( $field['uprules_dims_minwidth'] ) && self::is_valid_dim( $field['uprules_dims_minwidth'] ) && trim( $field['uprules_dims_minwidth'] ) > $width ) {
    393           $valid['is_valid'] = false;
    394           $errors .= '<br/>' . sprintf( __("Min width: <b>%dpx</b>", "gforms_uprules"), $field['uprules_dims_minwidth'] );
    395         }
    396         if ( isset( $field['uprules_dims_minheight'] ) && self::is_valid_dim( $field['uprules_dims_minheight'] ) && trim( $field['uprules_dims_minheight'] ) > $height ) {
    397           $valid['is_valid'] = false;
    398           $errors .= '<br/>' . sprintf( __("Min height: <b>%dpx</b>", "gforms_uprules"), $field['uprules_dims_minheight'] );
    399         }
    400         if ( isset( $field['uprules_dims_maxwidth'] ) && self::is_valid_dim( $field['uprules_dims_maxwidth'] ) && trim( $field['uprules_dims_maxwidth'] ) < $width ) {
    401           $valid['is_valid'] = false;
    402           $errors .= '<br/>' . sprintf( __("Max width: <b>%dpx</b>", "gforms_uprules"), $field['uprules_dims_maxwidth'] );
    403         }
    404         if ( isset( $field['uprules_dims_maxheight'] ) && self::is_valid_dim( $field['uprules_dims_maxheight'] ) && trim( $field['uprules_dims_maxheight'] ) < $height ) {
    405           $valid['is_valid'] = false;
    406           $errors .= '<br/>' . sprintf( __("Max height: <b>%dpx</b>", "gforms_uprules"), $field['uprules_dims_maxheight'] );
    407         }
    408        
    409         if ( ! $valid['is_valid'] && ! empty( $errors ) )
    410           $valid['message'] = __("Image dimension didn't meet following size conditions:", "gforms_uprules") . $errors;
    411          
    412         break;
    413     }
    414     return $valid;
    415   }
    416  
    417   public function tooltips( $gf_tooltips ) {
    418     $gf_uprules_tooltips = array(
    419       'form_field_uprules_filesize' => "<h6>" . __("Filesize Limit", "gforms_uprules") . "</h6>" . __("Enter filesize limit for uploaded file. Exceeding uploads will be rejected with an error.", "gforms_uprules"),
    420       'form_field_uprules_dimensions' => "<h6>" . __("Image dimensions", "gforms_uprules") . "</h6>" . __("Set validation conditions for uploaded image. Choose between <i>Exact</i> or <i>Conditional</i> validation methods. Empty fields will be not checked against. All values are in <b>pixels</b>. Non-matching images will be rejected with an error.", "gforms_uprules")
    421     );
    422    
    423     return array_merge( $gf_uprules_tooltips, $gf_tooltips );
    424   }
    425    
    426     public function actions() {
    427     add_filter( 'gform_field_validation', array( __CLASS__, 'field_validation' ), 10, 4 );
    428         add_action( 'gform_field_advanced_settings', array( __CLASS__, 'field_settings' ), 5 );
    429         add_action( 'gform_editor_js', array( __CLASS__, 'editor_js' ), 20 );
    430         add_filter( 'gform_tooltips', array( __CLASS__, 'tooltips' ) );
    431         add_action( 'admin_init',  array( __CLASS__, 'register_scripts' ) );
    432         add_action( 'init', array( __CLASS__, 'localize' ) );
    433     }
    434    
    435 }
    436 
    437 GFUploadRules::actions();
    438 
  • gravity-forms-upload-rules/trunk/readme.txt

    r785508 r785512  
    11
    2 === Gravity Forms Upload Rules ===
    3 Contributors: entr
    4 Donate link: http://zzlatev.com/gravity-forms-upload-limits/#donate
    5 Tags: gravity-forms upload-rules upload
    6 Requires at least: 3.0
    7 Tested up to: 3.6
    8 Stable tag: 1.0
    9 License: GPLv2 or later
    10 License URI: http://www.gnu.org/licenses/gpl-2.0.html
    11 
    12 Adds extra upload rules to file/image Gravity Froms upload fields. You will be able to limit upload file size and dimensions of uploaded images.
    13 
    14 == Description ==
    15 
    16 Gravity Forms is probably the most popular and mature plugin for building and managing custom forms in WordPress.
    17 
    18 = Upload Rules =
    19 This plugin attempts to fill gaps in Gravity Forms upload fields. It enables you to set file size and image size dimensions limitations to your upload fields - both file upload and image upload.
    20 
    21 == Installation ==
    22 
    23 1. Upload the `gravity-forms-upload-rules` folder to the `/wp-content/plugins/` directory
    24 2. Make sure you have Gravity Forms plugin installed and activated.
    25 3. Activate the Gravity Forms Upload Rules plugin through the 'Plugins' menu in WordPress.
    26 3. You should be able to use the new field settings under Advanced tab of your upload fields in Gravity Forms - Form Edit screens.
    27 
    28 == Frequently asked questions ==
    29 
    30 Not yet.
    31 
    32 == Screenshots ==
    33 
    34 1. Plugin settings in Post Image fields under Advanced tab. Filesize limit and Conditional image dimensions.
    35 2. Plugin settings in Post Image fields under Advanced tab. Filesize limit and Exact image dimensions.
    36 
    37 == Changelog ==
    38 
    39 = 1.0 =
    40 
    41 * Possible fix for those who don't get upload rules fields in their admin form editor
    42 
    43 = 0.91 =
    44 
    45 * Fixed JS issue causing "Uncaught TypeError" error
    46 
    47 = 0.9 =
    48 * Initial release
    49 
    50 == Upgrade notice =========
    512=== Gravity Forms Upload Rules ===
    523Contributors: entr
Note: See TracChangeset for help on using the changeset viewer.