Support » Theme: Spacious » spacious_hex2rgb( $hexstr)

  • Hi from germany,

    I’d kindly like to ask you, if you could probably add a wrapper around this function, so that I could overwrite it in a child theme:

    if(! function_exists('spacious_hex2rgb')):
    function spacious_hex2rgb( $hexstr) {
        ...
    }
    endif;

    I like the Spacious Theme a lot, so I use it for projects frequently. But every now and then I run into trouble with your function, so I normally overwrite it with this more complex one:

    function spacious_hex2rgb($color, $opacity = 0.85) {
    
        $default = 'rgb(0,0,0)';
    
        //Return default if no color provided
        if(empty($color)){
              return $default;
        }
    
        //Sanitize $color if "#" is provided
        if ($color[0] == '#' ) {
            $color = substr( $color, 1 );
        }
    
        //Check if color has 6 or 3 characters and get values
        if (strlen($color) == 6) {
                $hex = array( $color[0] . $color[1], $color[2] . $color[3], $color[4] . $color[5] );
        } elseif ( strlen( $color ) == 3 ) {
                $hex = array( $color[0] . $color[0], $color[1] . $color[1], $color[2] . $color[2] );
        } else {
                return $default;
        }
    
        //Convert hexadec to rgb
        $rgb =  array_map('hexdec', $hex);
    
        //Check if opacity is set(rgba or rgb)
        if($opacity){
            if(abs($opacity) > 1){
                $opacity = 1.0;
            }
            $output = 'rgba('.implode(",",$rgb).','.$opacity.')';
        } else {
            $output = 'rgb('.implode(",",$rgb).')';
        }
    
        //Return rgb(a) color string
        return $output;
    }

    With every theme update I have to fix that again, which is a bit annoying 😉

    Thanks for your effort and for considering my suggestion.

Viewing 2 replies - 1 through 2 (of 2 total)
  • Hello @sixtyseven
    Thank you for pointing this out. We’ll make this function child theme compatible within the theme update as soon as possible.
    Let us know for any other query
    Regards

    You could probably think about replacing the slightly outdated function with my provided code completely 😉 Thanks for considering my suggestion.

Viewing 2 replies - 1 through 2 (of 2 total)
  • You must be logged in to reply to this topic.