* @link https://TheTempusProject.com/Core * @license https://opensource.org/licenses/MIT [MIT LICENSE] */ namespace TheTempusProject\Houdini\Classes; use TheTempusProject\Canary\Bin\Canary as Debug; use TheTempusProject\Canary\Classes\CustomException; use TheTempusProject\Hermes\Functions\Route as Routes; use TheTempusProject\Houdini\Classes\Components; use TheTempusProject\Houdini\Classes\Forms; use TheTempusProject\Houdini\Classes\Filters; use TheTempusProject\Houdini\Classes\Issues; class Template { private static $follow = true; private static $index = true; private static $headers = []; private static $additionalLocations = []; private static $templateLocation = null; protected static $content = null; /** * The constructor automatically sets a few $values and variables * the template will need. */ public function __construct() { Debug::group( 'Template Constructor', 1 ); Components::set( 'SITENAME', 'Houdini Site' ); Components::set( 'ROOT_URL', Routes::getRoot() ); Components::set( 'ROOT_ADDRESS', Routes::getAddress() ); Components::set( 'TITLE', '' ); Components::set( 'PAGE_DESCRIPTION', '' ); Components::set( 'BASE', Routes::getAddress() ); Debug::gend(); } private static function loadIssues() { Filters::add( 'issues', '#{ISSUES}(.*?){/ISSUES}#is', ( Issues::hasIssues() ? '$1' : '' ), true ); $notices = implode( '
', Issues::getNoticeMessages() ); if ( !empty( $notices ) ) { $notices = ''; } Components::set( 'NOTICE', $notices ); $successes = implode( '
', Issues::getSuccessMessages() ); if ( !empty( $successes ) ) { $successes = ''; } Components::set( 'SUCCESS', $successes ); $errors = implode( '
', Issues::getErrorMessages() ); if ( !empty( $errors ) ) { $errors = ''; } Components::set( 'ERROR', $errors ); $infos = implode( '
', Issues::getInfoMessages() ); if ( !empty( $infos ) ) { $infos = ''; } Components::set( 'INFO', $infos ); } public static function addTemplateLocation( $location ) { self::$additionalLocations[] = $location; return; } public static function getLocation() { return self::$templateLocation; } /** * This function sets the '