[ SYSTEM ]: Linux wordpress 6.1.0-44-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.164-1 (2026-03-09) x86_64
[ SERVER ]: Apache/2.4.66 (Debian) | PHP: 8.2.30
[ USER ]: www-data | IP: 172.19.30.54
GEFORCE FILE MANAGER
/
var
/
www
/
html
/
wordpress
/
wp-content
/
plugins
/
elementor
/
modules
/
atomic-widgets
/
parsers
/
UPLOAD:
NAME
SIZE
QUICK PERMS
ACTIONS
📄 props-parser.php
2,081 B
SET
[ EDIT ]
|
[ DEL ]
📄 style-parser.php
6,862 B
SET
[ EDIT ]
|
[ DEL ]
DELETE SELECTED
[ CLOSE ]
EDIT: props-parser.php
<?php namespace Elementor\Modules\AtomicWidgets\Parsers; use Elementor\Modules\AtomicWidgets\PropTypes\Contracts\Prop_Type; use Elementor\Core\Utils\Api\Parse_Result; if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } class Props_Parser { private array $schema; public function __construct( array $schema ) { $this->schema = $schema; } public static function make( array $schema ): self { return new static( $schema ); } /** * @param array $props * The key of each item represents the prop name (should match the schema), * and the value is the prop value to validate */ public function validate( array $props ): Parse_Result { $result = Parse_Result::make(); $validated = []; foreach ( $this->schema as $key => $prop_type ) { if ( ! ( $prop_type instanceof Prop_Type ) ) { continue; } $value = $props[ $key ] ?? null; $is_valid = $prop_type->validate( $value ?? $prop_type->get_default() ); if ( ! $is_valid ) { $result->errors()->add( $key, 'invalid_value' ); continue; } if ( ! is_null( $value ) ) { $validated[ $key ] = $value; } } return $result->wrap( $validated ); } /** * @param array $props * The key of each item represents the prop name (should match the schema), * and the value is the prop value to sanitize */ public function sanitize( array $props ): Parse_Result { $sanitized = []; foreach ( $this->schema as $key => $prop_type ) { if ( ! isset( $props[ $key ] ) ) { continue; } $sanitized[ $key ] = $prop_type->sanitize( $props[ $key ] ); } return Parse_Result::make()->wrap( $sanitized ); } /** * @param array $props * The key of each item represents the prop name (should match the schema), * and the value is the prop value to parse */ public function parse( array $props ): Parse_Result { $validate_result = $this->validate( $props ); $sanitize_result = $this->sanitize( $validate_result->unwrap() ); $sanitize_result->errors()->merge( $validate_result->errors() ); return $sanitize_result; } }