Файловый менеджер - Редактировать - /home/tuudkjt/globeasy/wp-includes/ID3/swv.tar
Назад
swv.php 0000777 00000010224 15251404450 0006102 0 ustar 00 <?php /** * Schema-Woven Validation API */ require_once WPCF7_PLUGIN_DIR . '/includes/swv/schema-holder.php'; require_once WPCF7_PLUGIN_DIR . '/includes/swv/script-loader.php'; require_once WPCF7_PLUGIN_DIR . '/includes/swv/php/abstract-rules.php'; /** * Returns an associative array of SWV rules. */ function wpcf7_swv_available_rules() { $rules = array( 'required' => 'Contactable\SWV\RequiredRule', 'requiredfile' => 'Contactable\SWV\RequiredFileRule', 'email' => 'Contactable\SWV\EmailRule', 'url' => 'Contactable\SWV\URLRule', 'tel' => 'Contactable\SWV\TelRule', 'number' => 'Contactable\SWV\NumberRule', 'date' => 'Contactable\SWV\DateRule', 'time' => 'Contactable\SWV\TimeRule', 'file' => 'Contactable\SWV\FileRule', 'enum' => 'Contactable\SWV\EnumRule', 'dayofweek' => 'Contactable\SWV\DayofweekRule', 'minitems' => 'Contactable\SWV\MinItemsRule', 'maxitems' => 'Contactable\SWV\MaxItemsRule', 'minlength' => 'Contactable\SWV\MinLengthRule', 'maxlength' => 'Contactable\SWV\MaxLengthRule', 'minnumber' => 'Contactable\SWV\MinNumberRule', 'maxnumber' => 'Contactable\SWV\MaxNumberRule', 'mindate' => 'Contactable\SWV\MinDateRule', 'maxdate' => 'Contactable\SWV\MaxDateRule', 'minfilesize' => 'Contactable\SWV\MinFileSizeRule', 'maxfilesize' => 'Contactable\SWV\MaxFileSizeRule', 'stepnumber' => 'Contactable\SWV\StepNumberRule', 'all' => 'Contactable\SWV\AllRule', 'any' => 'Contactable\SWV\AnyRule', ); return apply_filters( 'wpcf7_swv_available_rules', $rules ); } add_action( 'wpcf7_init', 'wpcf7_swv_load_rules', 10, 0 ); /** * Loads SWV fules. */ function wpcf7_swv_load_rules() { $rules = wpcf7_swv_available_rules(); foreach ( array_keys( $rules ) as $rule ) { $file = sprintf( '%s.php', $rule ); $path = path_join( WPCF7_PLUGIN_DIR . '/includes/swv/php/rules', $file ); if ( file_exists( $path ) ) { include_once $path; } } } /** * Creates an SWV rule object. * * @param string $rule_name Rule name. * @param string|array $properties Optional. Rule properties. * @return \Contactable\SWV\Rule|null The rule object, or null if it failed. */ function wpcf7_swv_create_rule( $rule_name, $properties = '' ) { $rules = wpcf7_swv_available_rules(); if ( isset( $rules[$rule_name] ) ) { return new $rules[$rule_name]( $properties ); } } /** * Returns an associative array of JSON Schema for Contact Form 7 SWV. */ function wpcf7_swv_get_meta_schema() { return array( '$schema' => 'https://json-schema.org/draft/2020-12/schema', 'title' => 'Contact Form 7 SWV', 'description' => 'Contact Form 7 SWV meta-schema', 'type' => 'object', 'properties' => array( 'version' => array( 'type' => 'string', ), 'locale' => array( 'type' => 'string', ), 'rules' => array( 'type' => 'array', 'items' => array( 'type' => 'object', 'properties' => array( 'rule' => array( 'type' => 'string', 'enum' => array_keys( wpcf7_swv_available_rules() ), ), 'field' => array( 'type' => 'string', 'pattern' => '^[A-Za-z][-A-Za-z0-9_:]*$', ), 'error' => array( 'type' => 'string', ), 'accept' => array( 'type' => 'array', 'items' => array( 'type' => 'string', ), ), 'base' => array( 'type' => 'string', ), 'interval' => array( 'type' => 'number', 'minimum' => 0, ), 'threshold' => array( 'type' => 'string', ), ), 'required' => array( 'rule' ), ), ), ), ); } /** * The schema class as a composite rule. */ class WPCF7_SWV_Schema extends \Contactable\SWV\CompositeRule { /** * The human-readable version of the schema. */ const version = 'Contact Form 7 SWV Schema 2024-10'; /** * Constructor. */ public function __construct( $properties = '' ) { $this->properties = wp_parse_args( $properties, array( 'version' => self::version, ) ); } /** * Validates with this schema. * * @param array $context Context. */ public function validate( $context ) { foreach ( $this->rules() as $rule ) { if ( $rule->matches( $context ) ) { yield $rule->validate( $context ); } } } } js/index.asset.php 0000777 00000000121 15251404450 0010117 0 ustar 00 <?php return array( 'dependencies' => array(), 'version' => WPCF7_VERSION, ); js/index.js 0000777 00000030340 15251404450 0006634 0 ustar 00 (()=>{"use strict";var t={d:(e,i)=>{for(var s in i)t.o(i,s)&&!t.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:i[s]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function i(t){if(this.formData={},this.tree={},!(t instanceof FormData))return this;this.formData=t;const e=()=>{const t=new Map;return t.largestIndex=0,t.set=function(e,i){""===e?e=t.largestIndex++:/^[0-9]+$/.test(e)&&(e=parseInt(e),t.largestIndex<=e&&(t.largestIndex=e+1)),Map.prototype.set.call(t,e,i)},t};this.tree=e();const i=/^(?<name>[a-z][-a-z0-9_:]*)(?<array>(?:\[(?:[a-z][-a-z0-9_:]*|[0-9]*)\])*)/i;for(const[t,s]of this.formData){const o=t.match(i);if(o)if(""===o.groups.array)this.tree.set(o.groups.name,s);else{const t=[...o.groups.array.matchAll(/\[([a-z][-a-z0-9_:]*|[0-9]*)\]/gi)].map((([t,e])=>e));t.unshift(o.groups.name);const i=t.pop();t.reduce(((t,i)=>{if(/^[0-9]+$/.test(i)&&(i=parseInt(i)),t.get(i)instanceof Map)return t.get(i);const s=e();return t.set(i,s),s}),this.tree).set(i,s)}}}t.r(e),t.d(e,{all:()=>D,any:()=>M,date:()=>m,dayofweek:()=>u,email:()=>r,enum:()=>h,file:()=>d,maxdate:()=>z,maxfilesize:()=>j,maxitems:()=>v,maxlength:()=>x,maxnumber:()=>y,mindate:()=>A,minfilesize:()=>$,minitems:()=>w,minlength:()=>g,minnumber:()=>b,number:()=>c,required:()=>n,requiredfile:()=>a,stepnumber:()=>I,tel:()=>l,time:()=>f,url:()=>p}),i.prototype.entries=function(){return this.tree.entries()},i.prototype.get=function(t){return this.tree.get(t)},i.prototype.getAll=function(t){if(!this.has(t))return[];const e=t=>{const i=[];if(t instanceof Map)for(const[s,o]of t)i.push(...e(o));else""!==t&&i.push(t);return i};return e(this.get(t))},i.prototype.has=function(t){return this.tree.has(t)},i.prototype.keys=function(){return this.tree.keys()},i.prototype.values=function(){return this.tree.values()};const s=i;function o({rule:t,field:e,error:i,...s}){this.rule=t,this.field=e,this.error=i,this.properties=s}const n=function(t){if(0===t.getAll(this.field).map((t=>t.trim())).filter((t=>""!==t)).length)throw new o(this)},a=function(t){if(0===t.getAll(this.field).length)throw new o(this)},r=function(t){if(!t.getAll(this.field).map((t=>t.trim())).filter((t=>""!==t)).every((t=>{if(t.length<6)return!1;if(-1===t.indexOf("@",1))return!1;if(t.indexOf("@")!==t.lastIndexOf("@"))return!1;const[e,i]=t.split("@",2);if(!/^[a-zA-Z0-9!#$%&\'*+\/=?^_`{|}~\.-]+$/.test(e))return!1;if(/\.{2,}/.test(i))return!1;if(/(?:^[ \t\n\r\0\x0B.]|[ \t\n\r\0\x0B.]$)/.test(i))return!1;const s=i.split(".");if(s.length<2)return!1;for(const t of s){if(/(?:^[ \t\n\r\0\x0B-]|[ \t\n\r\0\x0B-]$)/.test(t))return!1;if(!/^[a-z0-9-]+$/i.test(t))return!1}return!0})))throw new o(this)},p=function(t){const e=t.getAll(this.field).map((t=>t.trim())).filter((t=>""!==t));if(!e.every((t=>{try{return(t=>-1!==["http","https","ftp","ftps","mailto","news","irc","irc6","ircs","gopher","nntp","feed","telnet","mms","rtsp","sms","svn","tel","fax","xmpp","webcal","urn"].indexOf(t))(new URL(t).protocol.replace(/:$/,""))}catch{return!1}})))throw new o(this)},l=function(t){if(!t.getAll(this.field).map((t=>t.trim())).filter((t=>""!==t)).every((t=>(((t=(t=t.replace(/[#*].*$/,"")).replaceAll(/[()/.*#\s-]+/g,"")).startsWith("+")||t.startsWith("00"))&&(t=`+${t.replace(/^[+0]+/,"")}`),!!/^[+]?[0-9]+$/.test(t)&&5<t.length&&t.length<16))))throw new o(this)},c=function(t){if(!t.getAll(this.field).map((t=>t.trim())).filter((t=>""!==t)).every((t=>!!/^[-]?[0-9]+(?:[eE][+-]?[0-9]+)?$/.test(t)||!!/^[-]?(?:[0-9]+)?[.][0-9]+(?:[eE][+-]?[0-9]+)?$/.test(t))))throw new o(this)},m=function(t){if(!t.getAll(this.field).map((t=>t.trim())).filter((t=>""!==t)).every((t=>{if(!/^[0-9]{4,}-[0-9]{2}-[0-9]{2}$/.test(t))return!1;const e=new Date(t);return!Number.isNaN(e.valueOf())})))throw new o(this)},f=function(t){if(!t.getAll(this.field).map((t=>t.trim())).filter((t=>""!==t)).every((t=>{const e=t.match(/^([0-9]{2})\:([0-9]{2})(?:\:([0-9]{2}))?$/);if(!e)return!1;const i=parseInt(e[1]),s=parseInt(e[2]),o=e[3]?parseInt(e[3]):0;return 0<=i&&i<=23&&0<=s&&s<=59&&0<=o&&o<=59})))throw new o(this)},d=function(t){if(!t.getAll(this.field).every((t=>t instanceof File&&this.accept?.some((e=>/^\.[a-z0-9]+$/i.test(e)?t.name.toLowerCase().endsWith(e.toLowerCase()):(t=>{const e=[],i=t.match(/^(?<toplevel>[a-z]+)\/(?<sub>[*]|[a-z0-9.+-]+)$/i);if(i){const t=i.groups.toplevel.toLowerCase(),s=i.groups.sub.toLowerCase();for(const[o,n]of(()=>{const t=new Map;return t.set("jpg|jpeg|jpe","image/jpeg"),t.set("gif","image/gif"),t.set("png","image/png"),t.set("bmp","image/bmp"),t.set("tiff|tif","image/tiff"),t.set("webp","image/webp"),t.set("ico","image/x-icon"),t.set("heic","image/heic"),t.set("asf|asx","video/x-ms-asf"),t.set("wmv","video/x-ms-wmv"),t.set("wmx","video/x-ms-wmx"),t.set("wm","video/x-ms-wm"),t.set("avi","video/avi"),t.set("divx","video/divx"),t.set("flv","video/x-flv"),t.set("mov|qt","video/quicktime"),t.set("mpeg|mpg|mpe","video/mpeg"),t.set("mp4|m4v","video/mp4"),t.set("ogv","video/ogg"),t.set("webm","video/webm"),t.set("mkv","video/x-matroska"),t.set("3gp|3gpp","video/3gpp"),t.set("3g2|3gp2","video/3gpp2"),t.set("txt|asc|c|cc|h|srt","text/plain"),t.set("csv","text/csv"),t.set("tsv","text/tab-separated-values"),t.set("ics","text/calendar"),t.set("rtx","text/richtext"),t.set("css","text/css"),t.set("htm|html","text/html"),t.set("vtt","text/vtt"),t.set("dfxp","application/ttaf+xml"),t.set("mp3|m4a|m4b","audio/mpeg"),t.set("aac","audio/aac"),t.set("ra|ram","audio/x-realaudio"),t.set("wav","audio/wav"),t.set("ogg|oga","audio/ogg"),t.set("flac","audio/flac"),t.set("mid|midi","audio/midi"),t.set("wma","audio/x-ms-wma"),t.set("wax","audio/x-ms-wax"),t.set("mka","audio/x-matroska"),t.set("rtf","application/rtf"),t.set("js","application/javascript"),t.set("pdf","application/pdf"),t.set("swf","application/x-shockwave-flash"),t.set("class","application/java"),t.set("tar","application/x-tar"),t.set("zip","application/zip"),t.set("gz|gzip","application/x-gzip"),t.set("rar","application/rar"),t.set("7z","application/x-7z-compressed"),t.set("exe","application/x-msdownload"),t.set("psd","application/octet-stream"),t.set("xcf","application/octet-stream"),t.set("doc","application/msword"),t.set("pot|pps|ppt","application/vnd.ms-powerpoint"),t.set("wri","application/vnd.ms-write"),t.set("xla|xls|xlt|xlw","application/vnd.ms-excel"),t.set("mdb","application/vnd.ms-access"),t.set("mpp","application/vnd.ms-project"),t.set("docx","application/vnd.openxmlformats-officedocument.wordprocessingml.document"),t.set("docm","application/vnd.ms-word.document.macroEnabled.12"),t.set("dotx","application/vnd.openxmlformats-officedocument.wordprocessingml.template"),t.set("dotm","application/vnd.ms-word.template.macroEnabled.12"),t.set("xlsx","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"),t.set("xlsm","application/vnd.ms-excel.sheet.macroEnabled.12"),t.set("xlsb","application/vnd.ms-excel.sheet.binary.macroEnabled.12"),t.set("xltx","application/vnd.openxmlformats-officedocument.spreadsheetml.template"),t.set("xltm","application/vnd.ms-excel.template.macroEnabled.12"),t.set("xlam","application/vnd.ms-excel.addin.macroEnabled.12"),t.set("pptx","application/vnd.openxmlformats-officedocument.presentationml.presentation"),t.set("pptm","application/vnd.ms-powerpoint.presentation.macroEnabled.12"),t.set("ppsx","application/vnd.openxmlformats-officedocument.presentationml.slideshow"),t.set("ppsm","application/vnd.ms-powerpoint.slideshow.macroEnabled.12"),t.set("potx","application/vnd.openxmlformats-officedocument.presentationml.template"),t.set("potm","application/vnd.ms-powerpoint.template.macroEnabled.12"),t.set("ppam","application/vnd.ms-powerpoint.addin.macroEnabled.12"),t.set("sldx","application/vnd.openxmlformats-officedocument.presentationml.slide"),t.set("sldm","application/vnd.ms-powerpoint.slide.macroEnabled.12"),t.set("onetoc|onetoc2|onetmp|onepkg","application/onenote"),t.set("oxps","application/oxps"),t.set("xps","application/vnd.ms-xpsdocument"),t.set("odt","application/vnd.oasis.opendocument.text"),t.set("odp","application/vnd.oasis.opendocument.presentation"),t.set("ods","application/vnd.oasis.opendocument.spreadsheet"),t.set("odg","application/vnd.oasis.opendocument.graphics"),t.set("odc","application/vnd.oasis.opendocument.chart"),t.set("odb","application/vnd.oasis.opendocument.database"),t.set("odf","application/vnd.oasis.opendocument.formula"),t.set("wp|wpd","application/wordperfect"),t.set("key","application/vnd.apple.keynote"),t.set("numbers","application/vnd.apple.numbers"),t.set("pages","application/vnd.apple.pages"),t})())("*"===s&&n.startsWith(t+"/")||n===i[0])&&e.push(...o.split("|"))}return e})(e).some((e=>(e="."+e.trim(),t.name.toLowerCase().endsWith(e.toLowerCase())))))))))throw new o(this)},h=function(t){if(!t.getAll(this.field).map((t=>t.trim())).filter((t=>""!==t)).every((t=>this.accept?.some((e=>t===String(e))))))throw new o(this)},u=function(t){if(!t.getAll(this.field).map((t=>t.trim())).filter((t=>""!==t)).every((t=>{const e=0===(i=new Date(t).getDay())?7:i;var i;return this.accept?.some((t=>e===parseInt(t)))})))throw new o(this)},w=function(t){if(t.getAll(this.field).map((t=>t.trim())).filter((t=>""!==t)).length<parseInt(this.threshold))throw new o(this)},v=function(t){const e=t.getAll(this.field).map((t=>t.trim())).filter((t=>""!==t));if(parseInt(this.threshold)<e.length)throw new o(this)},g=function(t){const e=t.getAll(this.field).map((t=>t.trim())).filter((t=>""!==t));let i=0;if(e.forEach((t=>{"string"==typeof t&&(i+=t.length)})),0!==i&&i<parseInt(this.threshold))throw new o(this)},x=function(t){const e=t.getAll(this.field).map((t=>t.trim())).filter((t=>""!==t));let i=0;if(e.forEach((t=>{"string"==typeof t&&(i+=t.length)})),parseInt(this.threshold)<i)throw new o(this)},b=function(t){if(!t.getAll(this.field).map((t=>t.trim())).filter((t=>""!==t)).every((t=>!(parseFloat(t)<parseFloat(this.threshold)))))throw new o(this)},y=function(t){if(!t.getAll(this.field).map((t=>t.trim())).filter((t=>""!==t)).every((t=>!(parseFloat(this.threshold)<parseFloat(t)))))throw new o(this)},A=function(t){if(!t.getAll(this.field).map((t=>t.trim())).filter((t=>""!==t)).every((t=>!(/^[0-9]{4,}-[0-9]{2}-[0-9]{2}$/.test(t)&&/^[0-9]{4,}-[0-9]{2}-[0-9]{2}$/.test(this.threshold)&&t<this.threshold))))throw new o(this)},z=function(t){if(!t.getAll(this.field).map((t=>t.trim())).filter((t=>""!==t)).every((t=>!(/^[0-9]{4,}-[0-9]{2}-[0-9]{2}$/.test(t)&&/^[0-9]{4,}-[0-9]{2}-[0-9]{2}$/.test(this.threshold)&&this.threshold<t))))throw new o(this)},$=function(t){const e=t.getAll(this.field);let i=0;if(e.forEach((t=>{t instanceof File&&(i+=t.size)})),i<parseInt(this.threshold))throw new o(this)},j=function(t){const e=t.getAll(this.field);let i=0;if(e.forEach((t=>{t instanceof File&&(i+=t.size)})),parseInt(this.threshold)<i)throw new o(this)},I=function(t){const e=t.getAll(this.field).map((t=>t.trim())).filter((t=>""!==t)),i=parseFloat(this.base),s=parseFloat(this.interval);if(!(0<s))return!0;if(!e.every((t=>{const e=(parseFloat(t)-i)%s;return"0.000000"===Math.abs(e).toFixed(6)||"0.000000"===Math.abs(e-s).toFixed(6)})))throw new o(this)},O=({ruleObj:t,options:i})=>{const{rule:s,...o}=t;return"function"==typeof e[s]&&("function"!=typeof e[s].matches||e[s].matches(o,i))},E=({ruleObj:t,formDataTree:i,options:s})=>{const{rule:o}=t;e[o].call(t,i,s)},k=[],F=t=>[...k].reduce(((t,e)=>i=>e(i,t)),t),D=function(t,e={}){const i=(this.rules??[]).filter((t=>O({ruleObj:t,options:e}))),s=F(E);if(!i.every((i=>{try{s({ruleObj:i,formDataTree:t,options:e})}catch(t){if(!(t instanceof o))throw t;if(void 0!==t.error)throw t;return!1}return!0})))throw new o(this)},M=function(t,e={}){const i=(this.rules??[]).filter((t=>O({ruleObj:t,options:e}))),s=F(E);if(!i.some((i=>{try{s({ruleObj:i,formDataTree:t,options:e})}catch(t){if(!(t instanceof o))throw t;return!1}return!0})))throw new o(this)};var L;window.swv={validators:e,validate:(t,e,i={})=>{const n=(t.rules??[]).filter((t=>O({ruleObj:t,options:i})));if(!n.length)return new Map;const a=F(E),r=new s(e),p=n.reduce(((t,e)=>{try{a({ruleObj:e,formDataTree:r,options:i})}catch(e){if(!(e instanceof o))throw e;if(void 0!==e.field&&!t.has(e.field)&&void 0!==e.error)return t.set(e.field,e)}return t}),new Map);for(const t of r.keys())p.has(t)||p.set(t,{validInputs:r.getAll(t)});return p},use:t=>{k.push(t)},...null!==(L=window.swv)&&void 0!==L?L:{}}})(); php/rules/email.php 0000777 00000001157 15251404450 0010300 0 ustar 00 <?php namespace Contactable\SWV; class EmailRule extends Rule { const rule_name = 'email'; public function matches( $context ) { if ( false === parent::matches( $context ) ) { return false; } if ( empty( $context['text'] ) ) { return false; } return true; } public function validate( $context ) { $input = $this->get_default_input(); $input = wpcf7_array_flatten( $input ); $input = wpcf7_strip_whitespaces( $input ); $input = wpcf7_exclude_blank( $input ); foreach ( $input as $i ) { if ( ! wpcf7_is_email( $i ) ) { return $this->create_error(); } } return true; } } php/rules/file.php 0000777 00000002376 15251404450 0010134 0 ustar 00 <?php namespace Contactable\SWV; class FileRule extends Rule { const rule_name = 'file'; public function matches( $context ) { if ( false === parent::matches( $context ) ) { return false; } if ( empty( $context['file'] ) ) { return false; } return true; } public function validate( $context ) { $input = $this->get_default_upload()->name ?? ''; $input = wpcf7_array_flatten( $input ); $input = wpcf7_exclude_blank( $input ); $acceptable_filetypes = array(); foreach ( (array) $this->get_property( 'accept' ) as $accept ) { if ( preg_match( '/^\.[a-z0-9]+$/i', $accept ) ) { $acceptable_filetypes[] = strtolower( $accept ); } else { foreach ( wpcf7_convert_mime_to_ext( $accept ) as $ext ) { $acceptable_filetypes[] = sprintf( '.%s', strtolower( trim( $ext, ' .' ) ) ); } } } $acceptable_filetypes = array_unique( $acceptable_filetypes ); foreach ( $input as $i ) { $last_period_pos = strrpos( $i, '.' ); if ( false === $last_period_pos ) { // no period return $this->create_error(); } $suffix = strtolower( substr( $i, $last_period_pos ) ); if ( ! in_array( $suffix, $acceptable_filetypes, true ) ) { return $this->create_error(); } } return true; } } php/rules/maxfilesize.php 0000777 00000001244 15251404450 0011526 0 ustar 00 <?php namespace Contactable\SWV; class MaxFileSizeRule extends Rule { const rule_name = 'maxfilesize'; public function matches( $context ) { if ( false === parent::matches( $context ) ) { return false; } if ( empty( $context['file'] ) ) { return false; } return true; } public function validate( $context ) { $input = $this->get_default_upload()->size ?? ''; $input = wpcf7_array_flatten( $input ); $input = wpcf7_exclude_blank( $input ); if ( empty( $input ) ) { return true; } $threshold = $this->get_property( 'threshold' ); if ( $threshold < array_sum( $input ) ) { return $this->create_error(); } return true; } } php/rules/any.php 0000777 00000000767 15251404450 0010006 0 ustar 00 <?php namespace Contactable\SWV; class AnyRule extends CompositeRule { const rule_name = 'any'; public function matches( $context ) { if ( false === parent::matches( $context ) ) { return false; } return true; } public function validate( $context ) { foreach ( $this->rules() as $rule ) { if ( $rule->matches( $context ) ) { $result = $rule->validate( $context ); if ( ! is_wp_error( $result ) ) { return true; } } } return $this->create_error(); } } php/rules/maxlength.php 0000777 00000001442 15251404450 0011175 0 ustar 00 <?php namespace Contactable\SWV; class MaxLengthRule extends Rule { const rule_name = 'maxlength'; public function matches( $context ) { if ( false === parent::matches( $context ) ) { return false; } if ( empty( $context['text'] ) ) { return false; } return true; } public function validate( $context ) { $input = $this->get_default_input(); $input = wpcf7_array_flatten( $input ); $input = wpcf7_strip_whitespaces( $input ); $input = wpcf7_exclude_blank( $input ); if ( empty( $input ) ) { return true; } $total = 0; foreach ( $input as $i ) { $total += wpcf7_count_code_units( $i ); } $threshold = (int) $this->get_property( 'threshold' ); if ( $total <= $threshold ) { return true; } else { return $this->create_error(); } } } php/rules/minlength.php 0000777 00000001442 15251404450 0011173 0 ustar 00 <?php namespace Contactable\SWV; class MinLengthRule extends Rule { const rule_name = 'minlength'; public function matches( $context ) { if ( false === parent::matches( $context ) ) { return false; } if ( empty( $context['text'] ) ) { return false; } return true; } public function validate( $context ) { $input = $this->get_default_input(); $input = wpcf7_array_flatten( $input ); $input = wpcf7_strip_whitespaces( $input ); $input = wpcf7_exclude_blank( $input ); if ( empty( $input ) ) { return true; } $total = 0; foreach ( $input as $i ) { $total += wpcf7_count_code_units( $i ); } $threshold = (int) $this->get_property( 'threshold' ); if ( $threshold <= $total ) { return true; } else { return $this->create_error(); } } } php/rules/mindate.php 0000777 00000001366 15251404450 0010634 0 ustar 00 <?php namespace Contactable\SWV; class MinDateRule extends Rule { const rule_name = 'mindate'; public function matches( $context ) { if ( false === parent::matches( $context ) ) { return false; } if ( empty( $context['text'] ) ) { return false; } return true; } public function validate( $context ) { $input = $this->get_default_input(); $input = wpcf7_array_flatten( $input ); $input = wpcf7_strip_whitespaces( $input ); $input = wpcf7_exclude_blank( $input ); $threshold = $this->get_property( 'threshold' ); if ( ! wpcf7_is_date( $threshold ) ) { return true; } foreach ( $input as $i ) { if ( wpcf7_is_date( $i ) and $i < $threshold ) { return $this->create_error(); } } return true; } } php/rules/url.php 0000777 00000001151 15251404450 0010005 0 ustar 00 <?php namespace Contactable\SWV; class URLRule extends Rule { const rule_name = 'url'; public function matches( $context ) { if ( false === parent::matches( $context ) ) { return false; } if ( empty( $context['text'] ) ) { return false; } return true; } public function validate( $context ) { $input = $this->get_default_input(); $input = wpcf7_array_flatten( $input ); $input = wpcf7_strip_whitespaces( $input ); $input = wpcf7_exclude_blank( $input ); foreach ( $input as $i ) { if ( ! wpcf7_is_url( $i ) ) { return $this->create_error(); } } return true; } } php/rules/enum.php 0000777 00000002132 15251404450 0010147 0 ustar 00 <?php namespace Contactable\SWV; class EnumRule extends Rule { const rule_name = 'enum'; public function matches( $context ) { if ( false === parent::matches( $context ) ) { return false; } if ( empty( $context['text'] ) ) { return false; } return true; } public function validate( $context ) { $input = $this->get_default_input(); $input = wpcf7_array_flatten( $input ); $input = wpcf7_strip_whitespaces( $input ); $input = wpcf7_exclude_blank( $input ); $acceptable_values = (array) $this->get_property( 'accept' ); $acceptable_values = array_map( static function ( $val ) { $val = strval( $val ); $val = wpcf7_normalize_newline( $val ); return $val; }, $acceptable_values ); $acceptable_values = array_unique( $acceptable_values ); $acceptable_values = array_filter( $acceptable_values, static function ( $val ) { return '' !== $val; } ); foreach ( $input as $i ) { $i = wpcf7_normalize_newline( $i ); if ( ! in_array( $i, $acceptable_values, true ) ) { return $this->create_error(); } } return true; } } php/rules/dayofweek.php 0000777 00000002026 15251404450 0011163 0 ustar 00 <?php namespace Contactable\SWV; class DayofweekRule extends Rule { const rule_name = 'dayofweek'; public function matches( $context ) { if ( false === parent::matches( $context ) ) { return false; } if ( empty( $context['text'] ) ) { return false; } return true; } public function validate( $context ) { $input = $this->get_default_input(); $input = wpcf7_array_flatten( $input ); $input = wpcf7_strip_whitespaces( $input ); $input = wpcf7_exclude_blank( $input ); $acceptable_values = (array) $this->get_property( 'accept' ); $acceptable_values = array_map( 'intval', $acceptable_values ); $acceptable_values = array_filter( $acceptable_values ); $acceptable_values = array_unique( $acceptable_values ); foreach ( $input as $i ) { if ( wpcf7_is_date( $i ) ) { $datetime = date_create_immutable( $i, wp_timezone() ); $dow = (int) $datetime->format( 'N' ); if ( ! in_array( $dow, $acceptable_values, true ) ) { return $this->create_error(); } } } return true; } } php/rules/requiredfile.php 0000777 00000001065 15251404450 0011667 0 ustar 00 <?php namespace Contactable\SWV; class RequiredFileRule extends Rule { const rule_name = 'requiredfile'; public function matches( $context ) { if ( false === parent::matches( $context ) ) { return false; } if ( empty( $context['file'] ) ) { return false; } return true; } public function validate( $context ) { $input = $this->get_default_upload()->tmp_name ?? ''; $input = wpcf7_array_flatten( $input ); $input = wpcf7_exclude_blank( $input ); if ( empty( $input ) ) { return $this->create_error(); } return true; } } php/rules/tel.php 0000777 00000001151 15251404450 0007767 0 ustar 00 <?php namespace Contactable\SWV; class TelRule extends Rule { const rule_name = 'tel'; public function matches( $context ) { if ( false === parent::matches( $context ) ) { return false; } if ( empty( $context['text'] ) ) { return false; } return true; } public function validate( $context ) { $input = $this->get_default_input(); $input = wpcf7_array_flatten( $input ); $input = wpcf7_strip_whitespaces( $input ); $input = wpcf7_exclude_blank( $input ); foreach ( $input as $i ) { if ( ! wpcf7_is_tel( $i ) ) { return $this->create_error(); } } return true; } } php/rules/maxitems.php 0000777 00000001321 15251404450 0011031 0 ustar 00 <?php namespace Contactable\SWV; class MaxItemsRule extends Rule { const rule_name = 'maxitems'; public function matches( $context ) { if ( false === parent::matches( $context ) ) { return false; } if ( empty( $context['text'] ) ) { return false; } return true; } public function validate( $context ) { $input = $this->get_default_input(); $input = wpcf7_array_flatten( $input ); $input = wpcf7_strip_whitespaces( $input ); $input = wpcf7_exclude_blank( $input ); $threshold = $this->get_property( 'threshold' ); if ( ! wpcf7_is_number( $threshold ) ) { return true; } if ( (int) $threshold < count( $input ) ) { return $this->create_error(); } return true; } } php/rules/maxnumber.php 0000777 00000001416 15251404450 0011205 0 ustar 00 <?php namespace Contactable\SWV; class MaxNumberRule extends Rule { const rule_name = 'maxnumber'; public function matches( $context ) { if ( false === parent::matches( $context ) ) { return false; } if ( empty( $context['text'] ) ) { return false; } return true; } public function validate( $context ) { $input = $this->get_default_input(); $input = wpcf7_array_flatten( $input ); $input = wpcf7_strip_whitespaces( $input ); $input = wpcf7_exclude_blank( $input ); $threshold = $this->get_property( 'threshold' ); if ( ! wpcf7_is_number( $threshold ) ) { return true; } foreach ( $input as $i ) { if ( wpcf7_is_number( $i ) and (float) $threshold < (float) $i ) { return $this->create_error(); } } return true; } } php/rules/maxdate.php 0000777 00000001366 15251404450 0010636 0 ustar 00 <?php namespace Contactable\SWV; class MaxDateRule extends Rule { const rule_name = 'maxdate'; public function matches( $context ) { if ( false === parent::matches( $context ) ) { return false; } if ( empty( $context['text'] ) ) { return false; } return true; } public function validate( $context ) { $input = $this->get_default_input(); $input = wpcf7_array_flatten( $input ); $input = wpcf7_strip_whitespaces( $input ); $input = wpcf7_exclude_blank( $input ); $threshold = $this->get_property( 'threshold' ); if ( ! wpcf7_is_date( $threshold ) ) { return true; } foreach ( $input as $i ) { if ( wpcf7_is_date( $i ) and $threshold < $i ) { return $this->create_error(); } } return true; } } php/rules/minnumber.php 0000777 00000001416 15251404450 0011203 0 ustar 00 <?php namespace Contactable\SWV; class MinNumberRule extends Rule { const rule_name = 'minnumber'; public function matches( $context ) { if ( false === parent::matches( $context ) ) { return false; } if ( empty( $context['text'] ) ) { return false; } return true; } public function validate( $context ) { $input = $this->get_default_input(); $input = wpcf7_array_flatten( $input ); $input = wpcf7_strip_whitespaces( $input ); $input = wpcf7_exclude_blank( $input ); $threshold = $this->get_property( 'threshold' ); if ( ! wpcf7_is_number( $threshold ) ) { return true; } foreach ( $input as $i ) { if ( wpcf7_is_number( $i ) and (float) $i < (float) $threshold ) { return $this->create_error(); } } return true; } } php/rules/stepnumber.php 0000777 00000001671 15251404450 0011376 0 ustar 00 <?php namespace Contactable\SWV; class StepNumberRule extends Rule { const rule_name = 'stepnumber'; public function matches( $context ) { if ( false === parent::matches( $context ) ) { return false; } if ( empty( $context['text'] ) ) { return false; } return true; } public function validate( $context ) { $input = $this->get_default_input(); $input = wpcf7_array_flatten( $input ); $input = wpcf7_strip_whitespaces( $input ); $input = wpcf7_exclude_blank( $input ); $base = floatval( $this->get_property( 'base' ) ); $interval = floatval( $this->get_property( 'interval' ) ); if ( ! ( 0 < $interval ) ) { return true; } foreach ( $input as $i ) { $remainder = fmod( floatval( $i ) - $base, $interval ); if ( 0.0 === round( abs( $remainder ), 6 ) or 0.0 === round( abs( $remainder - $interval ), 6 ) ) { continue; } return $this->create_error(); } return true; } } php/rules/minfilesize.php 0000777 00000001244 15251404450 0011524 0 ustar 00 <?php namespace Contactable\SWV; class MinFileSizeRule extends Rule { const rule_name = 'minfilesize'; public function matches( $context ) { if ( false === parent::matches( $context ) ) { return false; } if ( empty( $context['file'] ) ) { return false; } return true; } public function validate( $context ) { $input = $this->get_default_upload()->size ?? ''; $input = wpcf7_array_flatten( $input ); $input = wpcf7_exclude_blank( $input ); if ( empty( $input ) ) { return true; } $threshold = $this->get_property( 'threshold' ); if ( array_sum( $input ) < $threshold ) { return $this->create_error(); } return true; } } php/rules/date.php 0000777 00000001154 15251404450 0010123 0 ustar 00 <?php namespace Contactable\SWV; class DateRule extends Rule { const rule_name = 'date'; public function matches( $context ) { if ( false === parent::matches( $context ) ) { return false; } if ( empty( $context['text'] ) ) { return false; } return true; } public function validate( $context ) { $input = $this->get_default_input(); $input = wpcf7_array_flatten( $input ); $input = wpcf7_strip_whitespaces( $input ); $input = wpcf7_exclude_blank( $input ); foreach ( $input as $i ) { if ( ! wpcf7_is_date( $i ) ) { return $this->create_error(); } } return true; } } php/rules/time.php 0000777 00000001154 15251404450 0010144 0 ustar 00 <?php namespace Contactable\SWV; class TimeRule extends Rule { const rule_name = 'time'; public function matches( $context ) { if ( false === parent::matches( $context ) ) { return false; } if ( empty( $context['text'] ) ) { return false; } return true; } public function validate( $context ) { $input = $this->get_default_input(); $input = wpcf7_array_flatten( $input ); $input = wpcf7_strip_whitespaces( $input ); $input = wpcf7_exclude_blank( $input ); foreach ( $input as $i ) { if ( ! wpcf7_is_time( $i ) ) { return $this->create_error(); } } return true; } } php/rules/minitems.php 0000777 00000001321 15251404450 0011027 0 ustar 00 <?php namespace Contactable\SWV; class MinItemsRule extends Rule { const rule_name = 'minitems'; public function matches( $context ) { if ( false === parent::matches( $context ) ) { return false; } if ( empty( $context['text'] ) ) { return false; } return true; } public function validate( $context ) { $input = $this->get_default_input(); $input = wpcf7_array_flatten( $input ); $input = wpcf7_strip_whitespaces( $input ); $input = wpcf7_exclude_blank( $input ); $threshold = $this->get_property( 'threshold' ); if ( ! wpcf7_is_number( $threshold ) ) { return true; } if ( count( $input ) < (int) $threshold ) { return $this->create_error(); } return true; } } php/rules/all.php 0000777 00000001114 15251404450 0007752 0 ustar 00 <?php namespace Contactable\SWV; class AllRule extends CompositeRule { const rule_name = 'all'; public function matches( $context ) { if ( false === parent::matches( $context ) ) { return false; } return true; } public function validate( $context ) { foreach ( $this->rules() as $rule ) { if ( $rule->matches( $context ) ) { $result = $rule->validate( $context ); if ( is_wp_error( $result ) ) { if ( $result->get_error_message() ) { return $result; } else { return $this->create_error(); } } } } return true; } } php/rules/required.php 0000777 00000001112 15251404450 0011020 0 ustar 00 <?php namespace Contactable\SWV; class RequiredRule extends Rule { const rule_name = 'required'; public function matches( $context ) { if ( false === parent::matches( $context ) ) { return false; } if ( empty( $context['text'] ) ) { return false; } return true; } public function validate( $context ) { $input = $this->get_default_input(); $input = wpcf7_array_flatten( $input ); $input = wpcf7_strip_whitespaces( $input ); $input = wpcf7_exclude_blank( $input ); if ( empty( $input ) ) { return $this->create_error(); } return true; } } php/rules/number.php 0000777 00000001162 15251404450 0010475 0 ustar 00 <?php namespace Contactable\SWV; class NumberRule extends Rule { const rule_name = 'number'; public function matches( $context ) { if ( false === parent::matches( $context ) ) { return false; } if ( empty( $context['text'] ) ) { return false; } return true; } public function validate( $context ) { $input = $this->get_default_input(); $input = wpcf7_array_flatten( $input ); $input = wpcf7_strip_whitespaces( $input ); $input = wpcf7_exclude_blank( $input ); foreach ( $input as $i ) { if ( ! wpcf7_is_number( $i ) ) { return $this->create_error(); } } return true; } } php/abstract-rules.php 0000777 00000007110 15251404450 0011005 0 ustar 00 <?php namespace Contactable\SWV; use WP_Error; /** * The base class of SWV rules. */ abstract class Rule { protected $properties = array(); public function __construct( $properties = '' ) { $this->properties = wp_parse_args( $properties, array() ); } /** * Returns true if this rule matches the given context. * * @param array $context Context. */ public function matches( $context ) { $field = $this->get_property( 'field' ); if ( ! empty( $context['field'] ) ) { if ( $field and ! in_array( $field, (array) $context['field'], true ) ) { return false; } } return true; } /** * Validates with this rule's logic. * * @param array $context Context. */ public function validate( $context ) { return true; } /** * Converts the properties to an array. * * @return array Array of properties. */ public function to_array() { $properties = (array) $this->properties; if ( defined( 'static::rule_name' ) and static::rule_name ) { $properties = array( 'rule' => static::rule_name ) + $properties; } return $properties; } /** * Returns the property value specified by the given property name. * * @param string $name Property name. * @return mixed Property value. */ public function get_property( $name ) { if ( isset( $this->properties[$name] ) ) { return $this->properties[$name]; } } /** * Returns the default user input value from $_POST. * * @return mixed Default user input value. */ public function get_default_input() { $field = $this->get_property( 'field' ); if ( isset( $_POST[$field] ) ) { return wp_unslash( $_POST[$field] ); } return ''; } /** * Returns the default user upload file from $_FILES. * * @return object Default user upload file. */ public function get_default_upload() { $field = $this->get_property( 'field' ); if ( isset( $_FILES[$field] ) ) { return (object) wp_unslash( $_FILES[$field] ); } return (object) array(); } /** * Creates an error object. Returns false if the error property is omitted. */ protected function create_error() { $error_code = defined( 'static::rule_name' ) ? sprintf( 'swv_%s', static::rule_name ) : 'swv'; return new WP_Error( $error_code, (string) $this->get_property( 'error' ), $this ); } } /** * The base class of SWV composite rules. */ abstract class CompositeRule extends Rule { protected $rules = array(); /** * Adds a sub-rule to this composite rule. * * @param Rule $rule Sub-rule to be added. */ public function add_rule( $rule ) { if ( $rule instanceof Rule ) { $this->rules[] = $rule; } } /** * Returns an iterator of sub-rules. */ public function rules() { foreach ( $this->rules as $rule ) { yield $rule; } } /** * Returns true if this rule matches the given context. * * @param array $context Context. */ public function matches( $context ) { return true; } /** * Validates with this rule's logic. * * @param array $context Context. */ public function validate( $context ) { foreach ( $this->rules() as $rule ) { if ( $rule->matches( $context ) ) { $result = $rule->validate( $context ); if ( is_wp_error( $result ) ) { return $result; } } } return true; } /** * Converts the properties to an array. * * @return array Array of properties. */ public function to_array() { $rules_arrays = array_map( static function ( $rule ) { return $rule->to_array(); }, $this->rules ); return array_merge( parent::to_array(), array( 'rules' => $rules_arrays, ) ); } } script-loader.php 0000777 00000001021 15251404450 0010026 0 ustar 00 <?php add_action( 'wp_enqueue_scripts', static function () { $assets = array(); $asset_file = wpcf7_plugin_path( 'includes/swv/js/index.asset.php' ); if ( file_exists( $asset_file ) ) { $assets = include $asset_file; } $assets = wp_parse_args( $assets, array( 'dependencies' => array(), 'version' => WPCF7_VERSION, ) ); wp_register_script( 'swv', wpcf7_plugin_url( 'includes/swv/js/index.js' ), $assets['dependencies'], $assets['version'], array( 'in_footer' => true ) ); }, 10, 0 ); schema-holder.php 0000777 00000001726 15251404450 0010005 0 ustar 00 <?php trait WPCF7_SWV_SchemaHolder { protected $schema; /** * Retrieves SWV schema for this holder object (contact form). * * @return WPCF7_SWV_Schema The schema object. */ public function get_schema() { if ( isset( $this->schema ) ) { return $this->schema; } $schema = new WPCF7_SWV_Schema( array( 'locale' => isset( $this->locale ) ? $this->locale : '', ) ); do_action( 'wpcf7_swv_create_schema', $schema, $this ); return $this->schema = $schema; } /** * Validates form inputs based on the schema and given context. */ public function validate_schema( $context, WPCF7_Validation $validity ) { $schema = $this->get_schema(); foreach ( $schema->validate( $context ) as $result ) { if ( is_wp_error( $result ) ) { $rule = $result->get_error_data(); $field = $rule->get_property( 'field' ); if ( isset( $field ) and $validity->is_valid( $field ) ) { $validity->invalidate( $field, $result ); } } } } }
| ver. 1.6 |
Github
|
.
| PHP 8.1.34 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка