File: /home/z/w/a/zwafgyp/coolswim/wp-content/mu-plugins/ionos-help-center/inc/class-helper.php
<?php
namespace Ionos\Help_Center;
// Do not allow direct access!
if ( ! \defined( 'ABSPATH' ) ) {
die();
}
class Helper {
const CONFIG_FILE = 'ionos-help-center.ini';
const ARTICLE_FILE = 'ionos-help-center-articles.ini';
/**
* Get CSS URL from plugin
*
* @param string $file
*
* @return string
*/
public static function get_css_url( $file = '' ) {
return plugins_url( 'css/' . $file, __DIR__ );
}
/**
* Get JavaScript URL from plugin
*
* @param string $file
*
* @return string
*/
public static function get_js_url( $file = '' ) {
return plugins_url( 'js/' . $file, __DIR__ );
}
/**
* Get configuration file(s) URL
*
* @param string $file
*
* @return string
*/
public static function get_config_url( $file = '' ) {
return plugins_url( 'config/' . $file, __DIR__ );
}
/**
* Get configuration file(s) path
*
* @param string $file
*
* @return string
*/
public static function get_config_path( $file = '' ) {
return plugin_dir_path( __DIR__ ) . 'config/' . $file;
}
/**
* Get parsed content of INI configuration file
*
* @param string $ini_path
*
* @return array | boolean | null
*/
public static function parse_ini_file( $ini_path ) {
if ( is_file( $ini_path ) && is_readable( $ini_path ) ) {
return parse_ini_file( $ini_path, true );
}
return null;
}
/**
* Get parameters from CONFIG_FILE file
*
* @param $section
*
* @return string | array | null
*/
public static function get_all_config_parameters( $section ) {
$parsed_config_ini = self::parse_ini_file( self::get_config_path( self::CONFIG_FILE ) );
return ( isset( $parsed_config_ini[ $section ] ) ? $parsed_config_ini[ $section ] : null );
}
/**
* Get single parameter from CONFIG_FILE file
*
* @param string $parameter
* @param string $section
* @param boolean $prefer_setting_options
*
* @return string | array | null
*/
public static function get_config_parameter( $parameter, $section = 'main', $prefer_setting_options = true ) {
if ( is_null( $parameter ) || is_null( $section ) ) {
return null;
}
if ( $prefer_setting_options ) {
$option_value = get_option( 'ionos_help_center_' . $parameter );
if ( $option_value ) {
return $option_value;
}
}
$all_config_parameters = self::get_all_config_parameters( $section );
return ( is_array( $all_config_parameters ) && isset( $all_config_parameters[ $parameter ] ) ? $all_config_parameters[ $parameter ] : null );
}
/**
* Get parameters from ARTICLE_FILE
*
* @param $section
*
* @return string | array | null
*/
public static function get_all_article_parameters( $section ) {
$parsed_article_ini = self::parse_ini_file( self::get_config_path( self::ARTICLE_FILE ) );
return ( is_array( $parsed_article_ini ) && isset( $parsed_article_ini[ $section ] ) ? $parsed_article_ini[ $section ] : null );
}
/**
* Parse the diverse properties
*
* @param string $article_string
*
* @return array
*/
public static function parse_article_properties( $article_string ) {
$article_params = explode( '&', $article_string );
$params = array();
foreach ( $article_params as $param_value ) {
list( $key, $value ) = explode( '=', $param_value );
if ( 'behavior' === $key ) {
$params[ $key ] = $value === 'overlay' ? 'oao-pi-open-in-overlay' : 'oao-pi-open-in-flyin';
} else {
$params[ $key ] = $value;
}
}
return $params;
}
}