HEX
Server: Apache
System: Linux webd006.cluster128.gra.hosting.ovh.net 6.18.42-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Wed Aug 5 15:59:48 CEST 2026 x86_64
User: zwafgyp (177615)
PHP: 7.4.33
Disabled: _dyuweyrj4,_dyuweyrj4r,dl
Upload Files
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;
	}
}