Last active
April 13, 2020 05:42
-
-
Save DykiSA/5533606daf5e7478209cad6e01da1bb7 to your computer and use it in GitHub Desktop.
Revisions
-
DykiSA revised this gist
Apr 13, 2020 . 2 changed files with 144 additions and 144 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -10,108 +10,108 @@ */ class Menu { var $links = array(); var $ul_attributes = array(); function __construct($config = array()) { $this->initialize($config); } public static function create($config = array()) { return new static($config); } public function initialize($config = array()) { $this->_clear(); $this->ul_attributes = $config; return $this; } private function _clear() { $this->ul_attributes = array(); $this->links = array(); } public function add($label, $url = null, $icon = null, Menu $submenu = null, $li_class = null) { $link = array(); $link['label'] = $label; if (!is_null($url)) $link['url'] = $url; if (!is_null($icon)) $link['icon'] = $icon; if (!is_null($submenu)) $link['submenu'] = $submenu; if (!is_null($li_class)) { $link['li_class'] = $li_class; } array_push($this->links, $link); return $this; } public function render() { // render ul $output = $this->_generate_tag_open('ul', $this->ul_attributes); foreach ($this->links as $link) { // '<li>' $li_attributes = array(); if (isset($link['li_class'])) { $li_attributes['class'] = $link['li_class']; } $output .= $this->_generate_tag_open('li', $li_attributes); // '<a>' if (isset($link['url']) && !empty($link['url'])) { $a_attributes['href'] = $link['url']; $output .= $this->_generate_tag_open('a', $a_attributes); // '<i>' if (isset($link['icon'])) { $i_attributes['class'] = $link['icon']; $output .= $this->_generate_tag_open('i', $i_attributes) . '</i>'; } } $output .= $link['label']; // <i class="fa fa-angle-left pull-right"></i> if (isset($link['submenu']) && !is_null($link['submenu'])) { $output .= $this->_generate_tag_open('i', array( 'class' => 'fa fa-angle-left pull-right' )) . '</i>'; } // '</a>' if (isset($link['url'])) $output .= '</a>'; if (isset($link['submenu']) && !is_null($link['submenu'])) $output .= $link['submenu']->render(); $output .= '</li>'; } $output .= '</ul>'; return $output; } private function _generate_tag_open($tag, $attributes) { $tag_open = "<$tag"; foreach ($attributes as $attr => $value) { $tag_open .= " $attr=\"$value\""; } $tag_open .= '>'; return $tag_open; } } This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -4,53 +4,53 @@ This class will help you to build a navigation menu and then generate it to html ```php <div class="menu-wrapper"> <?php require_once './Menu.php'; // generate AdminLTE menu $menu = Menu::create(array( 'class' => 'sidebar-menu', 'data-widget' => 'tree' )) // ->add(label, url, icon, submenu, li_class) ->add('Master Data', null, null, null, 'header') ->add('Dashboard', '#', 'fa fa-dashboard', // submenu Menu::create(array( 'class' => 'treeview-menu' )) ->add('Create', '/create', 'fa fa-plus') ->add('List', '/list', 'fa fa-list') , 'treeview') ->add('Jenis Kecerdasan', '/jenis-kecerdasan', 'fa fa-lightbulb-o') ->add('Kuisioner', '/kuisionair', 'fa fa-edit') ->add('Siswa', '/siswa', 'fa fa-users') ->add('Tes Kecerdasan', null, null, null, 'header') ->add('Tes Baru', '/new-test', 'fa fa-plus') ->add('Report', '/report', 'fa fa-file') ->render(); echo $menu; ?> </div> ``` The result for script above: ```html <ul class="sidebar-menu" data-widget="tree"> <li class="header">Master Data</li> <li class="treeview"> <a href="#"><i class="fa fa-dashboard"></i>Dashboard<i class="fa fa-angle-left pull-right"></i></a> <ul class="treeview-menu"> <li><a href="/create"><i class="fa fa-plus"></i>Create</a></li> <li><a href="/list"><i class="fa fa-list"></i>List</a></li> </ul> </li> <li><a href="/jenis-kecerdasan"><i class="fa fa-lightbulb-o"></i>Jenis Kecerdasan</a></li> <li><a href="/kuisionair"><i class="fa fa-edit"></i>Kuisioner</a></li> <li><a href="/siswa"><i class="fa fa-users"></i>Siswa</a></li> <li class="header">Tes Kecerdasan</li> <li><a href="/new-test"><i class="fa fa-plus"></i>Tes Baru</a></li> <li><a href="/report"><i class="fa fa-file"></i>Report</a></li> </ul> ``` -
DykiSA revised this gist
Apr 13, 2020 . No changes.There are no files selected for viewing
-
DykiSA revised this gist
Apr 13, 2020 . No changes.There are no files selected for viewing
-
DykiSA revised this gist
Nov 21, 2018 . 1 changed file with 3 additions and 2 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -26,9 +26,10 @@ This class will help you to build a navigation menu and then generate it to html ->add('Siswa', '/siswa', 'fa fa-users') ->add('Tes Kecerdasan', null, null, null, 'header') ->add('Tes Baru', '/new-test', 'fa fa-plus') ->add('Report', '/report', 'fa fa-file') ->render(); echo $menu; ?> </div> ``` -
DykiSA revised this gist
Nov 21, 2018 . 1 changed file with 14 additions and 14 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -18,15 +18,15 @@ This class will help you to build a navigation menu and then generate it to html Menu::create(array( 'class' => 'treeview-menu' )) ->add('Create', '/create', 'fa fa-plus') ->add('List', '/list', 'fa fa-list') , 'treeview') ->add('Jenis Kecerdasan', '/jenis-kecerdasan', 'fa fa-lightbulb-o') ->add('Kuisioner', '/kuisionair', 'fa fa-edit') ->add('Siswa', '/siswa', 'fa fa-users') ->add('Tes Kecerdasan', null, null, null, 'header') ->add('Tes Baru', '/new-test', 'fa fa-plus') ->add('Report', '/report', 'fa fa-file'); echo $menu->render(); ?> @@ -41,15 +41,15 @@ The result for script above: <li class="treeview"> <a href="#"><i class="fa fa-dashboard"></i>Dashboard<i class="fa fa-angle-left pull-right"></i></a> <ul class="treeview-menu"> <li><a href="/create"><i class="fa fa-plus"></i>Create</a></li> <li><a href="/list"><i class="fa fa-list"></i>List</a></li> </ul> </li> <li><a href="/jenis-kecerdasan"><i class="fa fa-lightbulb-o"></i>Jenis Kecerdasan</a></li> <li><a href="/kuisionair"><i class="fa fa-edit"></i>Kuisioner</a></li> <li><a href="/siswa"><i class="fa fa-users"></i>Siswa</a></li> <li class="header">Tes Kecerdasan</li> <li><a href="/new-test"><i class="fa fa-plus"></i>Tes Baru</a></li> <li><a href="/report"><i class="fa fa-file"></i>Report</a></li> </ul> ``` -
DykiSA revised this gist
Nov 21, 2018 . 1 changed file with 5 additions and 2 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -46,7 +46,10 @@ The result for script above: </ul> </li> <li><a href="http://localhost/acing/tes-kecerdasan/jenis-kecerdasan"><i class="fa fa-lightbulb-o"></i>Jenis Kecerdasan</a></li> <li><a href="http://localhost/acing/tes-kecerdasan/kuisionair"><i class="fa fa-edit"></i>Kuisioner</a></li> <li><a href="http://localhost/acing/tes-kecerdasan/siswa"><i class="fa fa-users"></i>Siswa</a></li> <li class="header">Tes Kecerdasan</li> <li><a href="http://localhost/acing/tes-kecerdasan/new-test"><i class="fa fa-plus"></i>Tes Baru</a></li> <li><a href="http://localhost/acing/tes-kecerdasan/report"><i class="fa fa-file"></i>Report</a></li> </ul> ``` -
DykiSA revised this gist
Nov 20, 2018 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -28,7 +28,7 @@ This class will help you to build a navigation menu and then generate it to html ->add('Tes Baru', base_url('new-test'), 'fa fa-plus') ->add('Report', base_url('report'), 'fa fa-file'); echo $menu->render(); ?> </div> ``` -
DykiSA revised this gist
Nov 20, 2018 . 1 changed file with 13 additions and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -36,5 +36,17 @@ This class will help you to build a navigation menu and then generate it to html The result for script above: ```html <ul class="sidebar-menu" data-widget="tree"> <li class="header">Master Data</li> <li class="treeview"> <a href="#"><i class="fa fa-dashboard"></i>Dashboard<i class="fa fa-angle-left pull-right"></i></a> <ul class="treeview-menu"> <li><a href="http://localhost/acing/tes-kecerdasan/create"><i class="fa fa-plus"></i>Create</a></li> <li><a href="http://localhost/acing/tes-kecerdasan/list"><i class="fa fa-list"></i>List</a></li> </ul> </li> <li><a href="http://localhost/acing/tes-kecerdasan/jenis-kecerdasan"><i class="fa fa-lightbulb-o"></i>Jenis Kecerdasan</a></li> <li><a href="http://localhost/acing/tes-kecerdasan/kuisionair"><i class="fa fa-edit"></i>Kuisioner</a></li><li><a href="http://localhost/acing/tes-kecerdasan/siswa"><i class="fa fa-users"></i>Siswa</a></li><li class="header">Tes Kecerdasan</li> <li><a href="http://localhost/acing/tes-kecerdasan/new-test"><i class="fa fa-plus"></i>Tes Baru</a></li><li><a href="http://localhost/acing/tes-kecerdasan/report"><i class="fa fa-file"></i>Report</a></li> </ul> ``` -
DykiSA revised this gist
Nov 20, 2018 . 1 changed file with 2 additions and 0 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -27,6 +27,8 @@ This class will help you to build a navigation menu and then generate it to html ->add('Tes Kecerdasan', null, null, null, 'header') ->add('Tes Baru', base_url('new-test'), 'fa fa-plus') ->add('Report', base_url('report'), 'fa fa-file'); echo $menu; ?> </div> ``` -
DykiSA revised this gist
Nov 20, 2018 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,4 +1,4 @@ This class will help you to build a navigation menu and then generate it to html element ### USAGE -
DykiSA revised this gist
Nov 20, 2018 . No changes.There are no files selected for viewing
-
DykiSA revised this gist
Nov 20, 2018 . No changes.There are no files selected for viewing
-
DykiSA revised this gist
Nov 20, 2018 . No changes.There are no files selected for viewing
-
DykiSA created this gist
Nov 20, 2018 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,117 @@ <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); /** * Menu class helper * * Generate structured html menu from php * * @author Dyki Surahman Abi * @link https://github.com/dykisa */ class Menu { var $links = array(); var $ul_attributes = array(); function __construct($config = array()) { $this->initialize($config); } public static function create($config = array()) { return new static($config); } public function initialize($config = array()) { $this->_clear(); $this->ul_attributes = $config; return $this; } private function _clear() { $this->ul_attributes = array(); $this->links = array(); } public function add($label, $url = null, $icon = null, Menu $submenu = null, $li_class = null) { $link = array(); $link['label'] = $label; if (!is_null($url)) $link['url'] = $url; if (!is_null($icon)) $link['icon'] = $icon; if (!is_null($submenu)) $link['submenu'] = $submenu; if (!is_null($li_class)) { $link['li_class'] = $li_class; } array_push($this->links, $link); return $this; } public function render() { // render ul $output = $this->_generate_tag_open('ul', $this->ul_attributes); foreach ($this->links as $link) { // '<li>' $li_attributes = array(); if (isset($link['li_class'])) { $li_attributes['class'] = $link['li_class']; } $output .= $this->_generate_tag_open('li', $li_attributes); // '<a>' if (isset($link['url']) && !empty($link['url'])) { $a_attributes['href'] = $link['url']; $output .= $this->_generate_tag_open('a', $a_attributes); // '<i>' if (isset($link['icon'])) { $i_attributes['class'] = $link['icon']; $output .= $this->_generate_tag_open('i', $i_attributes) . '</i>'; } } $output .= $link['label']; // <i class="fa fa-angle-left pull-right"></i> if (isset($link['submenu']) && !is_null($link['submenu'])) { $output .= $this->_generate_tag_open('i', array( 'class' => 'fa fa-angle-left pull-right' )) . '</i>'; } // '</a>' if (isset($link['url'])) $output .= '</a>'; if (isset($link['submenu']) && !is_null($link['submenu'])) $output .= $link['submenu']->render(); $output .= '</li>'; } $output .= '</ul>'; return $output; } private function _generate_tag_open($tag, $attributes) { $tag_open = "<$tag"; foreach ($attributes as $attr => $value) { $tag_open .= " $attr=\"$value\""; } $tag_open .= '>'; return $tag_open; } } This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,38 @@ This class will help you to build a navigation menu and then generate it html element ### USAGE ```php <div class="menu-wrapper"> <?php require_once './Menu.php'; // generate AdminLTE menu $menu = Menu::create(array( 'class' => 'sidebar-menu', 'data-widget' => 'tree' )) // ->add(label, url, icon, submenu, li_class) ->add('Master Data', null, null, null, 'header') ->add('Dashboard', '#', 'fa fa-dashboard', // submenu Menu::create(array( 'class' => 'treeview-menu' )) ->add('Create', base_url('create'), 'fa fa-plus') ->add('List', base_url('list'), 'fa fa-list') , 'treeview') ->add('Jenis Kecerdasan', base_url('jenis-kecerdasan'), 'fa fa-lightbulb-o') ->add('Kuisioner', base_url('kuisionair'), 'fa fa-edit') ->add('Siswa', base_url('siswa'), 'fa fa-users') ->add('Tes Kecerdasan', null, null, null, 'header') ->add('Tes Baru', base_url('new-test'), 'fa fa-plus') ->add('Report', base_url('report'), 'fa fa-file'); ?> </div> ``` The result for script above: ```html <ul class="sidebar-menu" data-widget="tree"><li class="header">Master Data</li><li class="treeview"><a href="#"><i class="fa fa-dashboard"></i>Dashboard<i class="fa fa-angle-left pull-right"></i></a><ul class="treeview-menu"><li><a href="http://localhost/acing/tes-kecerdasan/create"><i class="fa fa-plus"></i>Create</a></li><li><a href="http://localhost/acing/tes-kecerdasan/list"><i class="fa fa-list"></i>List</a></li></ul></li><li><a href="http://localhost/acing/tes-kecerdasan/jenis-kecerdasan"><i class="fa fa-lightbulb-o"></i>Jenis Kecerdasan</a></li><li><a href="http://localhost/acing/tes-kecerdasan/kuisionair"><i class="fa fa-edit"></i>Kuisioner</a></li><li><a href="http://localhost/acing/tes-kecerdasan/siswa"><i class="fa fa-users"></i>Siswa</a></li><li class="header">Tes Kecerdasan</li><li><a href="http://localhost/acing/tes-kecerdasan/new-test"><i class="fa fa-plus"></i>Tes Baru</a></li><li><a href="http://localhost/acing/tes-kecerdasan/report"><i class="fa fa-file"></i>Report</a></li></ul> ```