FEATURE #1427: add homepage functionality.

Displaying homepage now depends on module handler
This commit is contained in:
Michal Kváček
2016-02-17 13:24:16 +01:00
parent 6d0e6e26f6
commit 37a698b631
15 changed files with 329 additions and 38 deletions
+9 -7
View File
@@ -2,10 +2,11 @@
namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
use App\Helpers\Template;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Routing\Controller as BaseController;
class Controller extends BaseController
{
@@ -16,15 +17,16 @@ class Controller extends BaseController
*
* This method will be used for switching among templates.
*
* @todo add template support
*
* @param null $view
* @param $template
* @param array $data
* @param array $mergeData
*
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
*/
protected function view($view = null, $data = [], $mergeData = []) {
public static function VisitorsView($template, $data = [], $mergeData = [])
{
$view = Template::name($template);
return view($view, $data, $mergeData);
}
}
+20 -4
View File
@@ -9,11 +9,28 @@ use Illuminate\Support\Facades\Auth;
class ContentPage extends Controller
{
/**
* @var Content
*/
protected $content;
/**
* @param Content $content
*/
function __construct(Content $content)
{
$this->content = $content;
}
public function getPage($url)
{
$page = Content::where('url', $url)
->where('status', '!=', Content::STATUS_DELETED)
->first();
$page = $this->content->getByURL($url);
// no page available
if (!$page) {
abort(404);
}
return $this->renderPage($page);
}
@@ -38,6 +55,5 @@ class ContentPage extends Controller
// render page
return $handler->render($page, '');
// return call_user_func([$handler, 'render'], $page);
}
}
+7 -7
View File
@@ -3,24 +3,24 @@
namespace App\Http\Controllers\Visitor;
use App\Http\Requests;
use App\Models\Content;
use Symfony\Component\Process\Exception\InvalidArgumentException;
class Homepage extends ContentPage
{
public function getIndex()
{
// try to find some homepage
$page = Content::where('is_homepage', 1)
->where('status', '!=', Content::STATUS_DELETED)
->first();
$page = $this->content->getHomepage();
// test if we have any homepage
if (!$page) {
throw new InvalidArgumentException('Cannot load home page!');
return view('errors.homepageNotAvailable');
}
// render page
return $this->renderPage($page);
try {
return $this->renderPage($page);
} catch (\Exception $e) {
return view('errors.homepageNotAvailable');
}
}
}