Uname: Linux webm005.cluster107.gra.hosting.ovh.net 5.15.167-ovh-vps-grsec-zfs-classid #1 SMP Tue Sep 17 08:14:20 UTC 2024 x86_64
User: 6036 (villadal)
Group: 100 (users)
Disabled functions: NONE
Safe mode: On[ PHPinfo ]
//home/villadal/www///wp-includes2/style-engine///      ( Reset | Go to )
File Name: class-wp-style-engine-css-declarations.php
Edit
<?php
/**
 * WP_Style_Engine_CSS_Declarations
 *
 * Holds, sanitizes and prints CSS rules declarations
 *
 * @package WordPress
 * @subpackage StyleEngine
 * @since 6.1.0
 */

/**
 * Class WP_Style_Engine_CSS_Declarations.
 *
 * Holds, sanitizes, processes and prints CSS declarations for the style engine.
 *
 * @since 6.1.0
 */
#[AllowDynamicProperties]
class WP_Style_Engine_CSS_Declarations {

    
/**
     * An array of CSS declarations (property => value pairs).
     *
     * @since 6.1.0
     *
     * @var array
     */
    
protected $declarations = array();

    
/**
     * Constructor for this object.
     *
     * If a `$declarations` array is passed, it will be used to populate
     * the initial $declarations prop of the object by calling add_declarations().
     *
     * @since 6.1.0
     *
     * @param string[] $declarations An associative array of CSS definitions, e.g., array( "$property" => "$value", "$property" => "$value" ).
     */
    
public function __construct$declarations = array() ) {
        
$this->add_declarations$declarations );
    }

    
/**
     * Adds a single declaration.
     *
     * @since 6.1.0
     *
     * @param string $property The CSS property.
     * @param string $value    The CSS value.
     *
     * @return WP_Style_Engine_CSS_Declarations Returns the object to allow chaining methods.
     */
    
public function add_declaration$property$value ) {
        
// Sanitizes the property.
        
$property $this->sanitize_property$property );
        
// Bails early if the property is empty.
        
if ( empty( $property ) ) {
            return 
$this;
        }

        
// Trims the value. If empty, bail early.
        
$value trim$value );
        if ( 
'' === $value ) {
            return 
$this;
        }

        
// Adds the declaration property/value pair.
        
$this->declarations$property ] = $value;

        return 
$this;
    }

    
/**
     * Removes a single declaration.
     *
     * @since 6.1.0
     *
     * @param string $property The CSS property.
     *
     * @return WP_Style_Engine_CSS_Declarations Returns the object to allow chaining methods.
     */
    
public function remove_declaration$property ) {
        unset( 
$this->declarations$property ] );
        return 
$this;
    }

    
/**
     * Adds multiple declarations.
     *
     * @since 6.1.0
     *
     * @param array $declarations An array of declarations.
     *
     * @return WP_Style_Engine_CSS_Declarations Returns the object to allow chaining methods.
     */
    
public function add_declarations$declarations ) {
        foreach ( 
$declarations as $property => $value ) {
            
$this->add_declaration$property$value );
        }
        return 
$this;
    }

    
/**
     * Removes multiple declarations.
     *
     * @since 6.1.0
     *
     * @param array $properties An array of properties.
     *
     * @return WP_Style_Engine_CSS_Declarations Returns the object to allow chaining methods.
     */
    
public function remove_declarations$properties = array() ) {
        foreach ( 
$properties as $property ) {
            
$this->remove_declaration$property );
        }
        return 
$this;
    }

    
/**
     * Gets the declarations array.
     *
     * @since 6.1.0
     *
     * @return array
     */
    
public function get_declarations() {
        return 
$this->declarations;
    }

    
/**
     * Filters a CSS property + value pair.
     *
     * @since 6.1.0
     *
     * @param string $property The CSS property.
     * @param string $value    The value to be filtered.
     * @param string $spacer   The spacer between the colon and the value. Defaults to an empty string.
     *
     * @return string The filtered declaration or an empty string.
     */
    
protected static function filter_declaration$property$value$spacer '' ) {
        
$filtered_value wp_strip_all_tags$valuetrue );
        if ( 
'' !== $filtered_value ) {
            return 
safecss_filter_attr"{$property}:{$spacer}{$filtered_value});
        }
        return 
'';
    }

    
/**
     * Filters and compiles the CSS declarations.
     *
     * @since 6.1.0
     *
     * @param bool   $should_prettify Whether to add spacing, new lines and indents.
     * @param number $indent_count    The number of tab indents to apply to the rule. Applies if `prettify` is `true`.
     *
     * @return string The CSS declarations.
     */
    
public function get_declarations_string$should_prettify false$indent_count ) {
        
$declarations_array  $this->get_declarations();
        
$declarations_output '';
        
$indent              $should_prettify str_repeat"\t"$indent_count ) : '';
        
$suffix              $should_prettify ' ' '';
        
$suffix              $should_prettify && $indent_count "\n" $suffix;
        
$spacer              $should_prettify ' ' '';

        foreach ( 
$declarations_array as $property => $value ) {
            
$filtered_declaration = static::filter_declaration$property$value$spacer );
            if ( 
$filtered_declaration ) {
                
$declarations_output .= "{$indent}{$filtered_declaration};$suffix";
            }
        }
        return 
rtrim$declarations_output );
    }

    
/**
     * Sanitizes property names.
     *
     * @since 6.1.0
     *
     * @param string $property The CSS property.
     *
     * @return string The sanitized property name.
     */
    
protected function sanitize_property$property ) {
        return 
sanitize_key$property );
    }
}

All system for education purposes only. For more tools: Telegram @jackleet

Mr.X Private Shell

Logo
-
New File | New Folder
Command
SQL