FIX: render menu link to index when page is set as homepage
This commit is contained in:
@@ -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>";
|
||||
|
||||
Reference in New Issue
Block a user