protected function getConfig($config = null)
    {
        // Create a new configuration object
        $configObject = HTMLPurifier_Config::createDefault();

        // Allow configuration to be modified
        if (! $this->config->get('purifier.finalize')) {
            $configObject->autoFinalize = false;
        }

        // Set default config
        $defaultConfig = [];
        $defaultConfig['Core.Encoding'] = $this->config->get('purifier.encoding');
        $defaultConfig['Cache.SerializerPath'] = $this->config->get('purifier.cachePath');
        $defaultConfig['Cache.SerializerPermissions'] = $this->config->get('purifier.cacheFileMode', 0755);

        if (! $config) {
            $config = $this->config->get('purifier.settings.default');
        } elseif (is_string($config)) {
            $config = $this->config->get('purifier.settings.' . $config);
        }

        if (! is_array($config)) {
            $config = [];
        }

        // Merge configurations
        $config = $defaultConfig + $config;

        // Load to Purifier config
        $configObject->loadArray($config);

        // Load custom definition if set
        if ($definitionConfig = $this->config->get('purifier.settings.custom_definition')) {
            $this->addCustomDefinition($definitionConfig, $configObject);
        }

        // Load custom elements if set
        if ($elements = $this->config->get('purifier.settings.custom_elements')) {
            if ($def = $configObject->maybeGetRawHTMLDefinition()) {
                $this->addCustomElements($elements, $def);
            }
        }

        // Load custom attributes if set
        if ($attributes = $this->config->get('purifier.settings.custom_attributes')) {
            if ($def = $configObject->maybeGetRawHTMLDefinition()) {
                $this->addCustomAttributes($attributes, $def);
            }
        }

        return $configObject;
    }
protected function getConfig($config = null)
    {
        
        $configObject = HTMLPurifier_Config::createDefault();

        
        if (! $this->config->get('purifier.finalize')) {
            $configObject->autoFinalize = false;
        }

        
        $defaultConfig = [];
        $defaultConfig['Core.Encoding'] = $this->config->get('purifier.encoding');
        $defaultConfig['Cache.SerializerPath'] = $this->config->get('purifier.cachePath');
        $defaultConfig['Cache.SerializerPermissions'] = $this->config->get('purifier.cacheFileMode', 0755);

        if (! $config) {
            $config = $this->config->get('purifier.settings.default');
        } elseif (is_string($config)) {
            $config = $this->config->get('purifier.settings.' . $config);
        }

        if (! is_array($config)) {
            $config = [];
        }

        
        $config = $defaultConfig + $config;

        
        $configObject->loadArray($config);

        
        if ($definitionConfig = $this->config->get('purifier.settings.custom_definition')) {
            $this->addCustomDefinition($definitionConfig, $configObject);
        }

        
        if ($elements = $this->config->get('purifier.settings.custom_elements')) {
            if ($def = $configObject->maybeGetRawHTMLDefinition()) {
                $this->addCustomElements($elements, $def);
            }
        }

        
        if ($attributes = $this->config->get('purifier.settings.custom_attributes')) {
            if ($def = $configObject->maybeGetRawHTMLDefinition()) {
                $this->addCustomAttributes($attributes, $def);
            }
        }

        return $configObject;
    }
protected function getConfig ( $ config = null ) { // Create a new configuration object $ configObject = HTMLPurifier_Config :: createDefault ( ) ; // Allow configuration to be modified if ( ! $ this -> config -> get ( 'purifier.finalize' ) ) { $ configObject -> autoFinalize = false ; } // Set default config $ defaultConfig = [ ] ; $ defaultConfig [ 'Core.Encoding' ] = $ this -> config -> get ( 'purifier.encoding' ) ; $ defaultConfig [ 'Cache.SerializerPath' ] = $ this -> config -> get ( 'purifier.cachePath' ) ; $ defaultConfig [ 'Cache.SerializerPermissions' ] = $ this -> config -> get ( 'purifier.cacheFileMode' , 0755 ) ; if ( ! $ config ) { $ config = $ this -> config -> get ( 'purifier.settings.default' ) ; } elseif ( is_string ( $ config ) ) { $ config = $ this -> config -> get ( 'purifier.settings.' . $ config ) ; } if ( ! is_array ( $ config ) ) { $ config = [ ] ; } // Merge configurations $ config = $ defaultConfig + $ config ; // Load to Purifier config $ configObject -> loadArray ( $ config ) ; // Load custom definition if set if ( $ definitionConfig = $ this -> config -> get ( 'purifier.settings.custom_definition' ) ) { $ this -> addCustomDefinition ( $ definitionConfig , $ configObject ) ; } // Load custom elements if set if ( $ elements = $ this -> config -> get ( 'purifier.settings.custom_elements' ) ) { if ( $ def = $ configObject -> maybeGetRawHTMLDefinition ( ) ) { $ this -> addCustomElements ( $ elements , $ def ) ; } } // Load custom attributes if set if ( $ attributes = $ this -> config -> get ( 'purifier.settings.custom_attributes' ) ) { if ( $ def = $ configObject -> maybeGetRawHTMLDefinition ( ) ) { $ this -> addCustomAttributes ( $ attributes , $ def ) ; } } return $ configObject ; }
@param null $config

@return mixed|null
@param null $config