/classes/validation-rules/class.filesize.php
PHP | 65 lines | 34 code | 3 blank | 28 comment | 8 complexity | 376203b7183afd1ffaf1625001f5f72d MD5 | raw file
- <?php
- /**
- * Name : MW WP Form Validation Rule FileSize
- * Description: ファイルサイズが指定したサイズ以内
- * Version : 1.1.0
- * Author : Takashi Kitajima
- * Author URI : http://2inc.org
- * Created : July 21, 2014
- * Modified : December 31, 2014
- * License : GPLv2
- * License URI: http://www.gnu.org/licenses/gpl-2.0.html
- */
- class MW_WP_Form_Validation_Rule_FileSize extends MW_WP_Form_Abstract_Validation_Rule {
- /**
- * バリデーションルール名を指定
- * @var string
- */
- protected $name = 'filesize';
- /**
- * バリデーションチェック
- *
- * @param string $key name属性
- * @param array $option
- * @return string エラーメッセージ
- */
- public function rule( $key, array $options = array() ) {
- $data = $this->Data->get_post_value_by_key( MWF_Config::UPLOAD_FILES );
- if ( !is_null( $data ) && is_array( $data ) && array_key_exists( $key, $data ) ) {
- $file = $data[$key];
- if ( !empty( $file['size'] ) ) {
- $defaults = array(
- 'bytes' => '0',
- 'message' => __( 'This file size is too big.', MWF_Config::DOMAIN )
- );
- $options = array_merge( $defaults, $options );
- if ( !( preg_match( '/^[\d]+$/', $options['bytes'] ) && $options['bytes'] >= $file['size'] ) ) {
- return $options['message'];
- }
- }
- }
- }
- /**
- * 設定パネルに追加
- *
- * @param numeric $key バリデーションルールセットの識別番号
- * @param array $value バリデーションルールセットの内容
- */
- public function admin( $key, $value ) {
- $bytes = '';
- if ( is_array( $value[$this->getName()] ) && isset( $value[$this->getName()]['bytes'] ) ) {
- $bytes = $value[$this->getName()]['bytes'];
- }
- ?>
- <table>
- <tr>
- <td><?php esc_html_e( 'Permitted file size', MWF_Config::DOMAIN ); ?></td>
- <td><input type="text" value="<?php echo esc_attr( $bytes ); ?>" name="<?php echo MWF_Config::NAME; ?>[validation][<?php echo $key; ?>][<?php echo esc_attr( $this->getName() ); ?>][bytes]" /> <span class="mwf_note"><?php esc_html_e( 'bytes', MWF_Config::DOMAIN ); ?></span></td>
- </tr>
- </table>
- <?php
- }
- }