FIX: render menu link to index when page is set as homepage

This commit is contained in:
Michal Kváček
2016-10-03 01:36:52 +02:00
parent 49577a7e1a
commit 88a2463d13
+6 -9
View File
@@ -5,10 +5,10 @@ use App\Models\Content;
use App\Models\Widget;
use App\Models\WidgetType;
use App\Widgets\Contracts\WidgetRenderer;
use App\Widgets\Menu\Menu as WidgetMenu;
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\Request;
use Illuminate\Support\Facades\Route;
use Mcamara\LaravelLocalization\Facades\LaravelLocalization;
class Menu implements WidgetRenderer
{
@@ -24,11 +24,10 @@ class Menu implements WidgetRenderer
public static function render($settings)
{
$links = (array)$settings->links;
$pageIds = array_keys($links);
// get pages
$pages = \App\Widgets\Menu\Menu::selectContentPages($pageIds);
$pages = WidgetMenu::selectContentPages($pageIds);
// sort links using "order"
uasort($links, function ($a, $b) {
@@ -46,18 +45,16 @@ class Menu implements WidgetRenderer
if (!isset($pages[$pageId])) {
continue;
}
$page = $pages[$pageId];
$active = false;
if (($page->is_homepage && $route == 'page.index') || ($route == 'page.content' && isset($parameters['url']) && $parameters['url'] == $page->url)) {
$active = true;
}
$page = $pages[$pageId];
$active = ($page->is_homepage && $route == 'page.index') || ($route == 'page.content' && isset($parameters['url']) && $parameters['url'] == $page->url);
$route = $page->is_homepage ? route('page.index') : route('page.content', ['url' => $page->url]);
$code .= '<li';
if ($active) {
$code .= ' class="is-active active"';
}
$code .= '><a href="' . route('page.content', ['url' => $page->url]) . '">' . e($page->title) . '</a></li>';
$code .= '><a href="' . $route . '">' . e($page->title) . '</a></li>';
}
$code .= "</ul>";