FEATURE #1427: add homepage functionality.
Displaying homepage now depends on module handler
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user