Menambah group menu baru dan custom menu
- Administrator
- Group menu, Edit menu
- 1674 Kali Dilihat
- 2 Komentar
Untuk menambah group menu baru silahkan login ke dashboard admin. Klik tab "Menu Manager", pada list judul group menu disisi kanan terdapat icon plus "+". Silahkan klik dan isi Judul menunya, lalu save. Anda tinggal isikan menu yang anda inginkan.
Sekarang anda tinggal custom pada frontend. Silahkan buka header.php pada themes yang sedang anda kelola/buat. Pada bagian yang anda inginkan menu tersebut muncul dan tampil tambahkan kode dibawah ini untuk memanggil group menu tersebut:
<?php
echo $this->menu()->getFrontMenu('id-group-menu-baru', ' ', ' ', ' ');
?>
Jika anda melakukan dengan benar dan sesuai dengan source themes yang sedang anda buat, maka seharusnya menu anda akan tampil disana.
Menambahkan class href="" pada menu:
Untuk menambahkan class pada menu, silahkan "perhatikan" kode berikut:
<?php
echo $this->menu()->getFrontMenu(WEB_LANG, 'class="nav navbar-nav"', '', 'class="dropdown-menu"', 'class="dropdown-toggle hvr-bounce-to-bottom" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"');
?>
Lalu ganti file : po-includes/core/vendor/dynamicmenu/front_menu.php dengan file "front_menu2.php" yang isinya sbb:
<?php
/**
*
* - PopojiCMS Core Vendor
*
* - File : front_menu.php
* - Version : 1.0
* - Author : Gawibowo edited by Jenuar Dalapang
* - License : MIT License
*
*
* Ini adalah library untuk mengenerate nested lists.
* This is library for generating nested lists.
*
* Contoh untuk penggunaan class ini
* Example for uses this class
*
*
* $instance = new FrontMenu;
* $menu = $instance->menu(1, 'class="nav" id="side-menu"', '', 'class="nav nav-second-level"');
* echo $menu;
*
*/
class FrontMenu
{
protected $podb;
/**
* Constructor. Initialize database connection
*/
public function __construct()
{
$this->pdo = new PDO("mysql:host=".DATABASE_HOST.";dbname=".DATABASE_NAME."", DATABASE_USER, DATABASE_PASS);
$this->podb = new FluentPDO($this->pdo);
}
/**
* Get menu from database, and generate html nested list
*
* @param int $group_id
* @param string $attr, $attrs, $attrss
* @return string
*/
public function menu($group_id, $attr = '', $attrs = '', $attrss = '', $attrsss = '')
{
global $_;
$selectlang = (isset($_COOKIE['lang']) ? $_COOKIE['lang'] : 'id');
include_once DIR_CON."/lang/main/".$selectlang.".php";
include_once "tree.php";
$tree = new Tree;
$base_root = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] && !in_array(strtolower($_SERVER['HTTPS']),array('off','no'))) ? 'https' : 'http').'://'.$_SERVER['HTTP_HOST'].$_SERVER["PHP_SELF"];
$base_url = preg_replace("//(index.php$)/", "", $base_root);
$menu = $this->podb->from('menu')
->where('group_id', $group_id)
->where('active', 'Y')
->orderBy(array('parent_id ASC', 'position ASC'))
->fetchAll();
foreach ($menu as $row) {
if (!preg_match("~^(?:f|ht)tps?://~i", $row['url'])) {
$menu_url = $base_url.'/'.$row['url'];
} else {
$menu_url = $row['url'];
}
if ($row['parent_id'] == 0) {
if ($row['class'] != '') {
$label = '<a href="' . $menu_url . '" '.($row['target'] != 'none' ? 'target="' . $row['target'] . '"' : '').'>';
} else {
$label = '<a href="' . $menu_url . '" '.($row['target'] != 'none' ? 'target="' . $row['target'] . '"' : '').'>';
}
} else {
if ($row['class'] != '') {
$label = '<a ' . $attrsss . ' href="' . $menu_url . '" '.($row['target'] != 'none' ? 'target="' . $row['target'] . '"' : '').'>';
} else {
$label = '<a ' . $attrsss . ' href="' . $menu_url . '" '.($row['target'] != 'none' ? 'target="' . $row['target'] . '"' : '').'>';
}
}
$label .= $row['title'];
$label .= '</a>';
$li_attr = '';
$tree->add_row($row['id'], $row['parent_id'], $li_attr, $label);
}
$menu = $tree->generate_list($attr, $attrs, $attrss);
return $menu;
}
}
Mohon maaf karena kode tidak langsung saya tampilkan disini. Saya sudah mencobanya, namun hasilnya sebagian kode tidak muncul. Jadi lebih baik saya gunakan pihak ke-3 untuk mengupload kode diatas.
widya