Skip to content

Instantly share code, notes, and snippets.

@denihida1216
Last active July 29, 2021 04:51
Show Gist options
  • Save denihida1216/da990a3ff437dcf5324820e559bad085 to your computer and use it in GitHub Desktop.
Save denihida1216/da990a3ff437dcf5324820e559bad085 to your computer and use it in GitHub Desktop.
PHP Modular Menu Sidebar Codeigniter & Laravel
<?php
//Controller
$model = new MUserMenuModel();
$menu = $model->getMenu($model);
$data = $model->fetchMenu($menu);
//Model
public function getMenu($model)
{
$menu = $model->where('parent_id', 0)->findAll();
$i = 0;
foreach ($menu as $row) {
$menu[$i]['sub'] = $this->getSubMenu($model, $row['id']);
$i++;
}
return $menu;
}
public function getSubMenu($model, $id)
{
$menu = $model->where('parent_id', $id)->findAll();
$i = 0;
foreach ($menu as $row) {
$menu[$i]['sub'] = $this->getSubMenu($row['id']);
$i++;
}
return $menu;
}
public function fetchMenu($data)
{
$menu1 = "";
foreach ($data as $menu) {
if (!empty($menu['sub'])) {
$menu1 .= '<li class="nav-item">
<a href="' . ($menu["url"]) . '" class="nav-link" title="'.$menu['description'].'">
<i class="'.$menu['icon'].'"></i>
<p>' . $menu['title'] . '
<i class="right fas fa-angle-left"></i>
</p>
</a>';
$menu1 .= '<ul class="nav nav-treeview">';
$menu1 .= $this->fetchSubMenu($menu['sub']);
$menu1 .= '</ul>';
$menu1 .= '</li>';
}else{
$menu1 .= '<li class="nav-item">
<a href="' . ($menu["url"]) . '" class="nav-link" title="'.$menu['description'].'">
<i class="'.$menu['icon'].'"></i>
<p>' . $menu['title'] . '</p>
</a>
</li>';
}
}
return $menu1;
}
public function fetchSubMenu($sub_menu)
{
$sub = "";
foreach ($sub_menu as $menu) {
if (!empty($menu['sub'])) {
$sub .= '<li class="nav-item">
<a href="' . ($menu["url"]) . '" class="nav-link" title="'.$menu['description'].'">
<i class="'.$menu['icon'].'"></i>
<p>' . $menu['title'] . '
<i class="right fas fa-angle-left"></i>
</p>
</a>';
$sub .= '<ul class="nav nav-treeview">';
$sub .= $this->fetchSubMenu($menu['sub']);
$sub .= "</ul>";
$sub .= '</li>';
}else{
$sub .= '<li class="nav-item">
<a href="' . ($menu["url"]) . '" class="nav-link" title="'.$menu['description'].'">
<i class="'.$menu['icon'].'"></i>
<p>' . $menu['title'] . '</p>
</a>
</li>';
}
}
return $sub;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment