* @link https://TheTempusProject.com/libraries/Houdini * @license https://opensource.org/licenses/MIT [MIT LICENSE] */ namespace TheTempusProject\Houdini\Classes; use TheTempusProject\Houdini\Classes\Template; class Issues { private static $hasIssues = false; private static $success = []; private static $notice = []; private static $error = []; private static $info = []; /** * Returns the prepared message html. * * @return {string} */ public static function add( $type, $messages, $parse = true ) { if ( ! is_array( $messages ) ) { $messages = [ $messages => '' ]; } foreach ( $messages as $parent => $child ) { $out = self::filters( $parent ); if ( !empty( $child ) ) { $out .= ''; } if ( $parse ) { $out = Template::parse( $out ); } self::$type( $out ); } } private static function filters( $data ) { $data = preg_replace( '#\{#', '{', $data ); $data = preg_replace( '#\}#', '}', $data ); $data = preg_replace( '#\$#', '$', $data ); return $data; } /** * Adds a success message to the issues list. * * @param {string} [$message] */ private static function success( $message ) { self::$hasIssues = true; self::$success[] = $message; } /** * Adds a warning message to the issues list. * * @param {string} [$message] */ private static function notice( $message ) { self::$hasIssues = true; self::$notice[] = $message; } /** * Adds an info message to the issues list. * * @param {string} [$message] */ private static function info( $message ) { self::$hasIssues = true; self::$info[] = $message; } /** * Adds an error message to the issues list. * * @param {string} [$message] */ private static function error( $message ) { self::$hasIssues = true; self::$error[] = $message; } /** * This is the function that tells the application if we have * have any messages to display or not. * * @return {bool} */ public static function hasIssues() { return self::$hasIssues; } /** * Returns the success message array. * * @return {string} */ public static function getSuccessMessages() { return self::$success; } /** * Returns the warning message array. * * @return {string} */ public static function getNoticeMessages() { return self::$notice; } /** * Returns the error message array. * * @return {string} */ public static function getErrorMessages() { return self::$error; } /** * Returns the info message array. * * @return {string} */ public static function getInfoMessages() { return self::$info; } }