FEATURE: add template into page rendering

This commit is contained in:
Michal Kváček
2016-09-20 15:25:18 +02:00
parent 5662dc7cf7
commit d9feb92612
5 changed files with 24 additions and 0 deletions
@@ -1,6 +1,7 @@
<?php
namespace App\Handlers\Contracts;
use App\Models\Content;
use App\Models\Module;
interface TemplateHandler extends BaseModuleHandler
@@ -8,4 +9,6 @@ interface TemplateHandler extends BaseModuleHandler
public static function uninstall(Module $template);
public static function getPublicTemplatePaths();
public static function beforeRender(Content $content);
}
@@ -5,6 +5,8 @@ namespace App\Http\Controllers\Visitor;
use App\Http\Controllers\Controller;
use App\Http\Requests;
use App\Models\Content;
use App\Models\Module;
use App\Models\Template;
use Illuminate\Support\Facades\Auth;
class ContentPage extends Controller
@@ -53,6 +55,11 @@ class ContentPage extends Controller
// get handler
$handler = new $page->module_handler;
$template = Module::where('is_template', true)->where('enabled', true)->first();
// do something template-specific
$page = call_user_func([$template->handler, 'beforeRender'], $page);
// render page
return $handler->render($page, '');
}
@@ -2,6 +2,7 @@
namespace Templates\Base\OnePage\Handlers;
use App\Handlers\Contracts\TemplateHandler;
use App\Models\Content;
use App\Models\Module;
use App\Models\User;
@@ -31,4 +32,9 @@ abstract class OnePage implements TemplateHandler
public static function uninstall(Module $template)
{
}
public static function beforeRender(Content $content)
{
return $content;
}
}
+8
View File
@@ -1,6 +1,7 @@
<?php
namespace Templates\Jednostrankovka;
use App\Models\Content;
use Templates\Base\OnePage\Handlers\OnePage;
class Handler extends OnePage
@@ -18,4 +19,11 @@ class Handler extends OnePage
]
];
}
public static function beforeRender(Content $content)
{
$content->content = str_replace('a', 'AAAA', $content->content);
return $content;
}
}