103 lines
3.4 KiB
PHP
Executable File
103 lines
3.4 KiB
PHP
Executable File
<?php
|
|
|
|
namespace app\widget;
|
|
|
|
use app\model\Category;
|
|
use app\model\ConfigSetting;
|
|
use think\facade\Config as CConfig;
|
|
use think\facade\View;
|
|
|
|
class Menu
|
|
{
|
|
public function index_bak($categoryId = 0,$menutwo = false)
|
|
{
|
|
$configExtraBase = ConfigSetting::getConfigContentsByName('extraBase');
|
|
|
|
$menus = Category::getListForFrontMenu();
|
|
$allCategories = Category::getList(false);
|
|
foreach ($menus as &$menu) {
|
|
$menu['children_ids'] = [];
|
|
$menusGroup = [];
|
|
if (isset($menu['children'])) {
|
|
$menu['children_ids'] = array_column($menu['children'], 'id');
|
|
foreach ($menu['children'] as $child) {
|
|
$menusGroup[$child['group_name']][] = $child;
|
|
}
|
|
}
|
|
|
|
$menu['menus_group'] = $menusGroup;
|
|
$menu['all_subordinate_ids'] = $this->getAllSubordinateIds($allCategories, $menu['id']);
|
|
$menu['isActive'] = 0;
|
|
if ($categoryId == $menu['id'] || in_array($categoryId, $menu['all_subordinate_ids'])) {
|
|
$menu['isActive'] = 1;
|
|
}
|
|
}
|
|
|
|
var_dump($menutwo);
|
|
$data = [
|
|
'categoryId' => $categoryId,
|
|
'menus' => $menus,
|
|
'extraBase' => $configExtraBase,
|
|
'menutwo' => $menutwo?'headertwo':""
|
|
];
|
|
return View::assign($data)->fetch('public/menu');
|
|
}
|
|
|
|
public function index($categoryId = 0,$menutwo = false)
|
|
{
|
|
// $menus = Category::getListForFrontMenu();
|
|
// $allCategories = Category::getList(false);
|
|
// foreach ($menus as &$menu) {
|
|
// $menu['children_ids'] = [];
|
|
// $menusGroup = [];
|
|
// if (isset($menu['children'])) {
|
|
// $menu['children_ids'] = array_column($menu['children'], 'id');
|
|
// foreach ($menu['children'] as $child) {
|
|
// $menusGroup[$child['group_name']][] = $child;
|
|
// }
|
|
// }
|
|
//
|
|
// $menu['menus_group'] = $menusGroup;
|
|
// $menu['all_subordinate_ids'] = $this->getAllSubordinateIds($allCategories, $menu['id']);
|
|
// $menu['isActive'] = 0;
|
|
// if ($categoryId == $menu['id'] || in_array($categoryId, $menu['all_subordinate_ids'])) {
|
|
// $menu['isActive'] = 1;
|
|
// }
|
|
// }
|
|
//
|
|
// $data = [
|
|
// 'categoryId' => $categoryId,
|
|
// 'menus' => $menus,
|
|
// ];
|
|
$data = [
|
|
'menutwo' => $menutwo?'headertwo':""
|
|
];
|
|
return View::assign($data)->fetch('public/menu');
|
|
}
|
|
|
|
// 所有下级栏目ID
|
|
private function getAllSubordinateIds($items, $curId = 0)
|
|
{
|
|
$list = [];
|
|
foreach ($items as $k => $item) {
|
|
if ($item['parent_id'] == $curId) {
|
|
$list[] = $item['id'];
|
|
unset($items[$k]);
|
|
$childrenIds = $this->getAllSubordinateIds($items, $item['id']);
|
|
if ($childrenIds) {
|
|
$list = array_merge($list, $childrenIds);
|
|
}
|
|
}
|
|
}
|
|
return $list;
|
|
}
|
|
|
|
public function simple()
|
|
{
|
|
$data = [
|
|
'extraBase' => ConfigSetting::getConfigContentsByName('extraBase')
|
|
];
|
|
return View::assign($data)->fetch('public/menu_simple');
|
|
}
|
|
}
|