44 lines
961 B
PHP
44 lines
961 B
PHP
<?php
|
|
namespace App\CMS\Helpers;
|
|
|
|
use App\CMS\Handlers\Contracts\AppHandler;
|
|
use App\Models\Content\Content;
|
|
use Webwizo\Shortcodes\Facades\Shortcode;
|
|
|
|
/**
|
|
* Class PageRenderer
|
|
*
|
|
* Simple class for rendering page for visitor
|
|
*
|
|
* @package App\CMS\Helpers
|
|
*/
|
|
class PageRenderer
|
|
{
|
|
/**
|
|
* Render page
|
|
*
|
|
* @param Content $page
|
|
*
|
|
* @return mixed
|
|
*/
|
|
public static function render(Content $page)
|
|
{
|
|
// decode module settings
|
|
$page->module_settings = json_decode($page->module_settings);
|
|
|
|
// do something template-specific
|
|
$parameters = call_user_func_array([CurrentTemplate::handler(), 'beforeRender'], [&$page]);
|
|
|
|
/**
|
|
* @var $handler AppHandler
|
|
*/
|
|
// get handler
|
|
$handler = new $page->module_handler;
|
|
|
|
$page->content = Shortcode::compile($page->content);
|
|
|
|
// render page
|
|
return $handler->render($page, $parameters);
|
|
}
|
|
}
|