*/ class LSformRule_imagesize extends LSformRule { // CLI parameters autocompleters protected static $cli_params_autocompleters = array( 'minWidth' => array('LScli', 'autocomplete_int'), 'maxWitdh' => array('LScli', 'autocomplete_int'), 'minHeight' => array('LScli', 'autocomplete_int'), 'maxHeight' => array('LScli', 'autocomplete_int'), ); /** * Validate form element value * * @param mixed $value The value to validate * @param array $options Validation options: * - Max width: $options['params']['maxWidth'] * - Min width: $options['params']['minWidth'] * - Max height: $options['params']['maxHeight'] * - Min height: $options['params']['minHeight'] * @param LSformElement &$formElement The related LSformElement object * * @return boolean True if value is valid, False otherwise */ public static function validate($value, $options, &$formElement) { $file = LSsession :: getTmpFile($value); list($width, $height, $type, $attr) = getimagesize($file); self :: log_debug("validate(): image size is $width x $height, type=$type, attr='$attr'"); $maxWidth = LSconfig :: get('params.maxWidth', null, 'int', $options); if ($maxWidth && $width > $maxWidth) { self :: log_debug("validate(): max width error ($width > $maxWidth)"); return false; } $minWidth = LSconfig :: get('params.minWidth', null, 'int', $options); if ($minWidth && $width < $minWidth) { self :: log_debug("validate(): min width error ($width < $minWidth)"); return false; } $maxHeight = LSconfig :: get('params.maxHeight', null, 'int', $options); if ($maxHeight && $height > $maxHeight) { self :: log_debug("validate(): max height error ($height > $maxHeight)"); return false; } $minHeight = LSconfig :: get('params.minHeight', null, 'int', $options); if ($minHeight && $height < $minHeight) { self :: log_debug("validate(): min height error ($height < $minHeight)"); return false; } return true; } }