create new display class, fixed and added same new feature
This commit is contained in:
@@ -85,7 +85,6 @@ button.tbl-rowbtn.normal {/* */
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
.icon-tooltip { color: var(--bs-warning); }
|
||||
|
||||
/** navibar menu **/
|
||||
|
||||
|
||||
+8
-8
@@ -801,9 +801,9 @@ Request.JSONF = function(options){
|
||||
var _cssb = (valb[1]=='') ? ' normal' : ' btn-'+valb[1];
|
||||
if (ini.config.txtbutton === true) {
|
||||
_tbtn1 += '<button class="btn tbl-rowbtn d-none d-lg-inline-block '+_link+_cssb+' me-2'+(val[0].button.length>1?' mb-2':'')+'" type="button">'+aTombol[valb[0]][0]+'</button>';
|
||||
_tbtn2 += '<a class="table-icon d-lg-none '+_link+_cssa+'" tabindex="-1" title="'+aTombol[valb[0]][0]+'"><i class="icon bi-'+valb[0]+'"></i></a>';
|
||||
_tbtn2 += '<a class="table-icon d-lg-none '+_link+_cssa+'" tabindex="-1" title="'+aTombol[valb[0]][0]+'"><i class="bi-'+valb[0]+'"></i></a>';
|
||||
} else {
|
||||
_tbtn2 += '<a class="table-icon '+_link+_cssa+'" title="'+aTombol[valb[0]][0]+'"><i class="icon bi-'+valb[0]+'"></i></a>';
|
||||
_tbtn2 += '<a class="table-icon '+_link+_cssa+'" title="'+aTombol[valb[0]][0]+'"><i class="bi-'+valb[0]+'"></i></a>';
|
||||
}
|
||||
})
|
||||
}
|
||||
@@ -859,9 +859,9 @@ Request.JSONF = function(options){
|
||||
var _cssb = (valb[1]=='') ? ' normal' : ' btn-'+valb[1];
|
||||
if (ini.config.txtbutton === true) {
|
||||
_tbtn1 += '<button class="btn tbl-rowbtn d-none d-lg-inline-block '+_link+_cssb+' me-2'+(optval.button.length>1?' mb-2':'')+'" type="button">'+aTombol[valb[0]][0]+'</button>';
|
||||
_tbtn2 += '<a class="table-icon d-lg-none '+_link+_cssa+'" tabindex="-1" title="'+aTombol[valb[0]][0]+'"><i class="icon bi-'+valb[0]+'"></i></a>';
|
||||
_tbtn2 += '<a class="table-icon d-lg-none '+_link+_cssa+'" tabindex="-1" title="'+aTombol[valb[0]][0]+'"><i class="bi-'+valb[0]+'"></i></a>';
|
||||
} else {
|
||||
_tbtn2 += '<a class="table-icon '+_link+_cssa+'" title="'+aTombol[valb[0]][0]+'"><i class="icon bi-'+valb[0]+'"></i></a>';
|
||||
_tbtn2 += '<a class="table-icon '+_link+_cssa+'" title="'+aTombol[valb[0]][0]+'"><i class="bi-'+valb[0]+'"></i></a>';
|
||||
}
|
||||
})
|
||||
}
|
||||
@@ -1113,10 +1113,10 @@ if (jQuery.fn.dataTable) {
|
||||
"sSortDescending": ": aktifkan urutan kolom kebawah"
|
||||
},
|
||||
"oPaginate": {
|
||||
"sFirst": "<i class=\"bi bi-skip-backward\"></i>",
|
||||
"sPrevious": "<i class=\"bi bi-rewind\"></i>",
|
||||
"sNext": "<i class=\"bi bi-fast-forward\"></i>",
|
||||
"sLast": "<i class=\"bi bi-skip-forward\"></i>"
|
||||
"sFirst": "<i class=\"bi-skip-backward\"></i>",
|
||||
"sPrevious": "<i class=\"bi-rewind\"></i>",
|
||||
"sNext": "<i class=\"bi-fast-forward\"></i>",
|
||||
"sLast": "<i class=\"bi-skip-forward\"></i>"
|
||||
},
|
||||
"sEmptyTable": "Tidak ada data yang tersedia pada tabel ini",
|
||||
"sProcessing": "",
|
||||
|
||||
+1
-1
@@ -68,7 +68,7 @@ var cPRINTER = function(url, options){
|
||||
'<div class="modal fade" id="winAPPPrint" tabindex="-1" role="dialog" data-bs-keyboard="false" data-bs-show="false" data-bs-backdrop="static" aria-labelledby="winAPPPrintLabel" aria-hidden="true">'+
|
||||
'<div class="modal-dialog modal-dialog-centered modal-dialog-scrollable modal-fs" role="document">'+
|
||||
'<div class="modal-content">'+
|
||||
'<div class="modal-header"><h5 class="modal-title" id="winAPPPrintLabel">Preview Laporan</h5><div class="ms-auto"><button class="btn me-2" id="tombCetak" type="button" aria-label="Cetak"><i class="bi bi-printer me-2"></i><span aria-hidden="true">Cetak</span></button><button class="btn" type="button" data-bs-dismiss="modal" aria-label="Tutup"><i class="bi bi-x-lg me-2"></i><span aria-hidden="true">Tutup</span></button></div></div>'+
|
||||
'<div class="modal-header"><h5 class="modal-title" id="winAPPPrintLabel">Preview Laporan</h5><div class="ms-auto"><button class="btn me-2" id="tombCetak" type="button" aria-label="Cetak"><i class="bi-printer me-2"></i><span aria-hidden="true">Cetak</span></button><button class="btn" type="button" data-bs-dismiss="modal" aria-label="Tutup"><i class="bi-x-lg me-2"></i><span aria-hidden="true">Tutup</span></button></div></div>'+
|
||||
'<div class="modal-body print-body" id="divPrintP">'+txt+'</div>'+
|
||||
'</div></div></div>';
|
||||
if ($('#winAPPPrint')) $('#winAPPPrint').modal('dispose').remove();
|
||||
|
||||
@@ -46,7 +46,7 @@ var cSIMULATOR = function(url, options){
|
||||
'<div class="modal fade" id="winAPPSim" tabindex="-1" role="dialog" data-bs-keyboard="false" data-bs-show="false" data-bs-backdrop="static" aria-labelledby="winAPPSimLabel" aria-hidden="true">'+
|
||||
'<div class="modal-dialog modal-dialog-centered modal-dialog-scrollable modal-fs" role="document">'+
|
||||
'<div class="modal-content">'+
|
||||
'<div class="modal-header"><h5 class="modal-title" id="winAPPSimLabel">Code Simulator</h5><div class="ms-auto"><button class="btn me-2" id="tombSalin" type="button" aria-label="Salin Semua"><i class="bi bi-copy me-2"></i><span aria-hidden="true">Salin Semua</span></button><button class="btn" type="button" data-bs-dismiss="modal" aria-label="Tutup"><i class="bi bi-x-lg me-2"></i><span aria-hidden="true">Tutup</span></button></div></div>'+
|
||||
'<div class="modal-header"><h5 class="modal-title" id="winAPPSimLabel">Code Simulator</h5><div class="ms-auto"><button class="btn me-2" id="tombSalin" type="button" aria-label="Salin Semua"><i class="bi-copy me-2"></i><span aria-hidden="true">Salin Semua</span></button><button class="btn" type="button" data-bs-dismiss="modal" aria-label="Tutup"><i class="bi-x-lg me-2"></i><span aria-hidden="true">Tutup</span></button></div></div>'+
|
||||
'<div class="modal-body">'+_divd+'</div>'+
|
||||
'</div></div></div>';
|
||||
if ($('#winAPPSim')) $('#winAPPSim').modal('dispose').remove();
|
||||
|
||||
+2
-2
@@ -131,7 +131,7 @@ final class App {
|
||||
foreach ($this->auser['MENU_MODUL'] as $modul) {
|
||||
$href = $href1.$modul['APP_PATH'].$href2;
|
||||
$href .= '/?auth='.$_SESSION['APP_TOKEN'];
|
||||
$t_modul .= '<a class="dropdown-item slink" href="'.$href.'"><i class="icon me-2 '.$modul['Icon'].'"></i> '.$modul['Judul'].'</a>';
|
||||
$t_modul .= '<a class="dropdown-item slink" href="'.$href.'"><i class="'.$modul['Icon'].' me-2"></i> '.$modul['Judul'].'</a>';
|
||||
}
|
||||
}
|
||||
// menu extra
|
||||
@@ -139,7 +139,7 @@ final class App {
|
||||
if (count($amodul_ext) > 0) {
|
||||
$t_modul .= '<div class="dropdown-divider"></div>';
|
||||
foreach ($amodul_ext as $modul) {
|
||||
$t_modul .= '<a class="dropdown-item slink" id="'.$modul['Id'].'"><i class="icon me-2 '.$modul['Icon'].'"></i> '.$modul['Judul'].'</a>';
|
||||
$t_modul .= '<a class="dropdown-item slink" id="'.$modul['Id'].'"><i class="'.$modul['Icon'].' me-2"></i> '.$modul['Judul'].'</a>';
|
||||
}
|
||||
}
|
||||
$buffer = str_replace("[_MENU_MODUL_]", $t_modul, $buffer);
|
||||
|
||||
+13
-9
@@ -6,9 +6,9 @@
|
||||
Desc. : v3 - Class cache aplikasi
|
||||
Created By : Siau Pheng (siaupheng@3fonia.com).
|
||||
Created Date : March 16th, 2008.
|
||||
Last Modified : August 3rd, 2023.
|
||||
Last Modified : January 1st, 2026.
|
||||
|
||||
(c) 2008 - 2023, 3FONIA Software; WWW.3FONIA.COM.
|
||||
(c) 2008 - 2026, 3FONIA Software; WWW.3FONIA.COM.
|
||||
|
||||
*******************************************************************/
|
||||
|
||||
@@ -26,7 +26,7 @@ final class Cache {
|
||||
private $__jsdir = "";
|
||||
private $__jsapp = "";
|
||||
private $__realpath = "";
|
||||
private $__ini = array();
|
||||
private $__ini = [];
|
||||
protected $__db = null;
|
||||
|
||||
public function __construct($db = null){
|
||||
@@ -41,14 +41,17 @@ final class Cache {
|
||||
$this->__jsapp = $rootdir . 'apps/js/';
|
||||
$this->__realpath = $rootdir;
|
||||
if (!file_exists($this->__cachedir . "cache.ini")) {
|
||||
$this->__ini = array('css'=>array('login_stamp'=>"0",'login_file'=>"",'index_stamp'=>"0",'index_file'=>""), 'js'=>array('login_stamp'=>"0",'login_file'=>"",'index_stamp'=>"0",'index_file'=>""));
|
||||
$this->__ini = [
|
||||
'css' => ['login_stamp'=>"0",'login_file'=>"",'index_stamp'=>"0",'index_file'=>"",'display_stamp'=>"0",'display_file'=>""],
|
||||
'js' => ['login_stamp'=>"0",'login_file'=>"",'index_stamp'=>"0",'index_file'=>"",'display_stamp'=>"0",'display_file'=>""]
|
||||
];
|
||||
$this->save_ini();
|
||||
}
|
||||
$this->__ini = parse_ini_file($this->__cachedir . "cache.ini", true);
|
||||
}
|
||||
|
||||
private function gen_file($type="css", $mode="index") {
|
||||
$afile = array();
|
||||
$afile = [];
|
||||
if ($type == "css") {
|
||||
$_afile = array_unique($GLOBALS['A_CSS']);
|
||||
foreach ($_afile as $__key => $val) {
|
||||
@@ -123,8 +126,8 @@ final class Cache {
|
||||
return $lastmod;
|
||||
}
|
||||
|
||||
private function create_cache($type="css", $mode="index", $afile=array(), $lastmod=0) {
|
||||
$contents = '';
|
||||
private function create_cache($type="css", $mode="index", $afile=[], $lastmod=0) {
|
||||
$contents = ''; $smini = null;
|
||||
$bpublic = ($_SERVER['SERVER_ADDR'] == "127.0.0.1") ? false : true;
|
||||
if ($bpublic == true) {
|
||||
if ($type=="css") {
|
||||
@@ -163,8 +166,9 @@ final class Cache {
|
||||
file_put_contents($this->__cachedir . "cache.ini", $content);
|
||||
}
|
||||
|
||||
public function Main($type="css") {
|
||||
$mode = (($_SESSION['__WEB_USER']['UserID'] ?? 0) > 0) ? "index" : "login";
|
||||
public function Main($type="css", $mode="") {
|
||||
if ($mode == "") $mode = "login";
|
||||
if (($_SESSION['__WEB_USER']['UserID'] ?? 0) > 0) $mode = "index";
|
||||
$afile = $this->gen_file($type, $mode);
|
||||
$lastmod = $this->check_file($afile);
|
||||
if ($lastmod <> intval($this->__ini[$type][$mode.'_stamp']) || !file_exists($this->__cachedir . $this->__ini[$type][$mode.'_file'])) {
|
||||
|
||||
@@ -0,0 +1,82 @@
|
||||
<?php
|
||||
|
||||
/*******************************************************************
|
||||
|
||||
Module : /App.php
|
||||
Desc. : v3 - HTML5 Page Generator (jQuery & Bootstrap)
|
||||
Created By : Siau Pheng (siaupheng@3fonia.com).
|
||||
Created Date : January 10th, 2008.
|
||||
Last Modified : January 1st, 2026.
|
||||
|
||||
(c) 2008 - 2026, 3FONIA Software; WWW.3FONIA.COM.
|
||||
|
||||
*******************************************************************/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace siaupheng\fonia3;
|
||||
|
||||
final class Display {
|
||||
public $version = "1.0.0";
|
||||
private $apps = [];
|
||||
private $cache = null;
|
||||
protected $__db = null;
|
||||
|
||||
public function __construct($db = null){
|
||||
if (is_resource($db)) { $this->__db = $db; }
|
||||
else { $this->__db = new \siaupheng\fonia3\DB\MySQL(); }
|
||||
|
||||
$this->apps = $_SESSION['__WEB_APP'];
|
||||
if (($this->apps['TEMPLATE'] ?? "") == "") $this->apps['TEMPLATE'] = "display.php";
|
||||
|
||||
$this->cache = new \siaupheng\fonia3\Data\Cache($this->__db);
|
||||
}
|
||||
|
||||
public function TampilDisplay() {
|
||||
// loading template file
|
||||
$buffer = "";
|
||||
if (file_exists($this->apps['REAL_PATH']."assets/templates/".$this->apps['TEMPLATE'])) {
|
||||
$buffer = file_get_contents($this->apps['REAL_PATH']."assets/templates/".$this->apps['TEMPLATE']);
|
||||
$compos = 0;
|
||||
if (strpos(strtoupper($buffer), "<!DOCTYPE") !== false) {
|
||||
$compos = strpos(strtoupper($buffer), "<!DOCTYPE");
|
||||
}
|
||||
$buffer = substr($buffer, $compos);
|
||||
}
|
||||
|
||||
// penambahan file css + js + app-js
|
||||
$headers = '<link rel="stylesheet" type="text/css" href="'.$this->cache->Main("css", "display").'">'."\n";
|
||||
$headers .= '<script type="text/javascript" src="'.$this->cache->Main("js", "display").'"></script>'."\n";
|
||||
|
||||
$_secret = $this->apps['APP_DISPLAY'] .";". $this->apps['APP_SID'] .";". $_SERVER['HTTP_HOST'] .";". $this->apps['WEB_PATH'] .";". "http://".$_SERVER['HTTP_HOST'].$this->apps['WEB_PATH'] .";". isMobile() .";". ($this->apps['AUTH_LEVEL']?$this->apps['AUTH_LEVEL']:0) .";". $this->version;
|
||||
$_suser = "nobody;999;999;9";
|
||||
$headers .= '<script type="text/javascript" language="javascript">'."\n";
|
||||
$headers .= 'FoniaJS.setConfig("'.base64_encode($_secret).'", "'.base64_encode($_suser).'");';
|
||||
$headers .= '</script>'."\n";
|
||||
|
||||
// informasi tahun aplikasi dan pembuatan menu
|
||||
if (strpos($buffer, '_CREATOR_YEAR_')===false) {
|
||||
$this->apps['REG_YEAR'] = ($this->apps['REG_YEAR']!=date('Y')) ? $this->apps['REG_YEAR']." - ".date('Y') : $this->apps['REG_YEAR'];
|
||||
} else {
|
||||
$this->apps['CREATOR_YEAR'] = ($this->apps['CREATOR_YEAR']!=date('Y')) ? $this->apps['CREATOR_YEAR']." - ".date('Y') : $this->apps['CREATOR_YEAR'];
|
||||
}
|
||||
|
||||
// perubahan variabel dari data konfigurasi
|
||||
$asrc = ["[_CREATOR_NAME_]", "[_CREATOR_WEBSITE_]", "[_CREATOR_YEAR_]", "[_APP_NAME_VER_]", "[_APP_NAMES_VER_]", "[_APP_NAME_]", "[_APP_NAMES_]", "[_APP_NAMES_UP_]", "[_APP_VER_]", "[_APP_UPDATED_]", "[_REG_NAME_]", "[_REG_NAME_UP_]", "[_REG_ADDRESS_]", "[_REG_CITY_]", "[_REG_CITY_UP_]", "[_REG_PHONE_]", "[_REG_FAX_]", "[_REG_EMAIL_]", "[_REG_POSTCODE_]", "[_REG_WEBSITE_]", "[_REG_YEAR_]", "[_WEB_PATH_]"];
|
||||
$adst = [$this->apps['CREATOR_NAME'], $this->apps['CREATOR_WEBSITE'], $this->apps['CREATOR_YEAR'], $this->apps['APP_NAME']." v".$this->apps['APP_VER'], $this->apps['APP_NAMES']." v".$this->apps['APP_VER'], $this->apps['APP_NAME'], $this->apps['APP_NAMES'], strtoupper($this->apps['APP_NAMES']??""), $this->apps['APP_VER'], $this->apps['APP_UPDATED'], $this->apps['REG_NAME'], strtoupper($this->apps['REG_NAME']??""), $this->apps['REG_ADDRESS'], $this->apps['REG_CITY'], strtoupper($this->apps['REG_CITY']??""), $this->apps['REG_PHONE'], $this->apps['REG_FAX'], $this->apps['REG_EMAIL'], $this->apps['REG_POSTCODE'], $this->apps['REG_WEBSITE'], $this->apps['REG_YEAR'], $this->apps['WEB_PATH']];
|
||||
$buffer = str_replace($asrc, $adst, $buffer);
|
||||
|
||||
// penyisipan header
|
||||
$headpos = 0;
|
||||
if (strpos(strtolower($buffer), "</head>") !== false) {
|
||||
$headpos = strpos(strtolower($buffer), "</head>");
|
||||
}
|
||||
$split_1_buffer = substr($buffer, 0, $headpos);
|
||||
$split_2_buffer = substr($buffer, $headpos);
|
||||
$buffer = $split_1_buffer.$headers.$split_2_buffer;
|
||||
|
||||
echo $buffer;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -135,7 +135,7 @@ if (!function_exists('abjad')) {
|
||||
if (!function_exists('checkbox')) {
|
||||
function checkbox($nilai = 0) {
|
||||
$thasil = ((is_string($nilai) && ($nilai=="N" || $nilai=="0")) or (is_numeric($nilai) && $nilai==0) or (is_bool($nilai) && $nilai==false)) ? "circle text-secondary" : "check-circle text-info";
|
||||
return '<i class="fs-6 bi bi-'.$thasil.'"></i>';
|
||||
return '<i class="fs-6 bi-'.$thasil.'"></i>';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+3
-5
@@ -38,7 +38,7 @@ final class Auth {
|
||||
}
|
||||
|
||||
public function user_data($user) {
|
||||
$adata = array();
|
||||
$adata = [];
|
||||
$this->__db->Query("SELECT *,DECODE(Menu,'".$this->__id_reg."') Menu2 FROM app_operator WHERE Username='".$this->__db->SafeSQL($user)."'");
|
||||
if ($this->__db->Next()) {
|
||||
$adata = $this->__db->AllRow();
|
||||
@@ -50,14 +50,14 @@ final class Auth {
|
||||
$_SESSION['APP_TOKEN'] = $_token;
|
||||
$this->__db->Query("INSERT INTO app_token SET Token='".$_token."',UserID='".$adata['UserID']."',IP='".$_SERVER['REMOTE_ADDR']."'");
|
||||
}
|
||||
if (intval($adata['Grup_MenuID']) > 0) $adata['Menu_Grup'] = $this->user_allmenu($adata['Grup_MenuID']);
|
||||
$adata['UNIX'] = time();
|
||||
$adata['LOCALE'] = $_SESSION['__WEB_APP']['DEF_LOCALE'];
|
||||
return $adata;
|
||||
}
|
||||
|
||||
public function gen_module_menu() {
|
||||
$amodul = array();
|
||||
$aallow = array();
|
||||
$amodul = []; $aallow = [];
|
||||
if ($_SESSION['__WEB_APP']['APP_MODULE']) {
|
||||
$this->__db->Query("SELECT * FROM app_menu_grup WHERE Grup_MenuID='".$_SESSION['__WEB_USER']['Grup_MenuID']."' LIMIT 1");
|
||||
if ($this->__db->Next()) $aallow = ($this->__db->Row("Modul_Akses")=="") ? array() : explode(",", $this->__db->Row("Modul_Akses"));
|
||||
@@ -94,8 +94,6 @@ final class Auth {
|
||||
if (count($a_hasil) > 0) {
|
||||
$this->__db->Query("UPDATE app_operator SET Last_IP='".$a_hasil['Last_IP']."',Last_Date='".$a_hasil['Last_Date']."' WHERE UserID='".user_id()."'");
|
||||
}
|
||||
//$tgl_lalu = tgl_sql2str(tgl_operasi(tgl_dmy(), 0, -3));
|
||||
//$this->__db->Query("DELETE FROM app_logs WHERE UserID='".user_id()."' AND Last_Date<'".$tgl_lalu."'");
|
||||
$this->__db->Query("INSERT IGNORE INTO app_logs SELECT UserID,Token,IP,DateStamp FROM app_token WHERE Token='".$_SESSION['APP_TOKEN']."'");
|
||||
}
|
||||
|
||||
|
||||
+4
-4
@@ -150,12 +150,12 @@ final class Form {
|
||||
}
|
||||
|
||||
public function switch($tlabel="", $tfield, $tvalue=null, $benable=true, $breq=false, $aarr=array(), $thelp="", $tchange=null) {
|
||||
$_key = array_keys($aarr); $_val = array_values($aarr);
|
||||
$_val = array_values($aarr);
|
||||
$_enab = ($benable==true) ? "" : ' disabled=true';
|
||||
$_req = ($breq==true) ? " required=true" : "";
|
||||
$_change = ($tchange==null) ? ' onchange="this.value=(this.checked)?\''.$_key[0].'\':\''.$_key[1].'\';"' : ' onchange="this.value=(this.checked)?\''.$_key[0].'\':\''.$_key[1].'\';'.$tchange.'"';
|
||||
$_change = ($tchange==null) ? ' onchange="this.value=(this.checked)?\''.$_val[0].'\':\''.$_val[1].'\';"' : ' onchange="this.value=(this.checked)?\''.$_val[0].'\':\''.$_val[1].'\';'.$tchange.'"';
|
||||
$tout = '<div class="form-check form-switch"><input class="form-check-input me-0" id="'.$tfield.'" name="'.$tfield.'" type="checkbox" role="switch" value="'.$tvalue.'"'.$_enab.$_change.$_req;
|
||||
$tout .= ($_key[0] == $tvalue) ? ' checked="checked"' : '';
|
||||
$tout .= ($_val[0] == $tvalue) ? ' checked="checked"' : '';
|
||||
$tout .= '></div>';
|
||||
$this->__aform[$tfield] = array('label'=>$tlabel, 'help'=>$thelp, 'form'=>$tout);
|
||||
return $tout;
|
||||
@@ -226,7 +226,7 @@ final class Form {
|
||||
if ($tvalue<>null) $tvalue = tgl_sql2str($tvalue);
|
||||
$tout = '<div class="input-group">';
|
||||
$tout .= $this->textbox($tlabel, $tfield, $tvalue, $benable, $breq, "pickdate", "dd-mm-yyyy", 12, $thelp, $tkeyup, $tblur);
|
||||
$tout .= '<span class="input-group-text"><i class="bi bi-calendar4"></i></span></div>';
|
||||
$tout .= '<span class="input-group-text"><i class="bi-calendar4"></i></span></div>';
|
||||
$this->__aform[$tfield] = array('label'=>$tlabel, 'help'=>$thelp, 'form'=>$tout);
|
||||
return $tout;
|
||||
}
|
||||
|
||||
+1
-1
@@ -60,7 +60,7 @@ final class Menu {
|
||||
}
|
||||
$ticon = ($amodul[$i]['Icon']) ? '<i class="me-2 '.$amodul[$i]['Icon'].'"></i>' : "";
|
||||
if (($amodul[$i]['Level']>=0) && (isset($amodul[$i+1]) && ($amodul[$i+1]['Level']>$amodul[$i]['Level']))) {
|
||||
$thasil .= '<li class="nav-item has-submenu"><a class="nav-link" title="'.$amodul[$i]['Judul'].'">'.$ticon.$amodul[$i]['Menu'].'<i class="icon bi-caret-down float-end"></i></a><ul class="submenu collapse">';
|
||||
$thasil .= '<li class="nav-item has-submenu"><a class="nav-link" title="'.$amodul[$i]['Judul'].'">'.$ticon.$amodul[$i]['Menu'].'<i class="bi-caret-down float-end"></i></a><ul class="submenu collapse">';
|
||||
} else if (trim($amodul[$i]['Menu'])=="-") {
|
||||
$thasil .= '<li class="nav-divider"></li>';
|
||||
} else {
|
||||
|
||||
+3
-1
@@ -16,6 +16,8 @@ declare(strict_types=1);
|
||||
|
||||
namespace siaupheng\fonia3\Web;
|
||||
|
||||
use Pdo\Mysql;
|
||||
|
||||
final class Table {
|
||||
private $__ttable = "";
|
||||
private $__tfield = "";
|
||||
@@ -67,7 +69,7 @@ final class Table {
|
||||
public function set_query_footer($tquery = "") {
|
||||
$this->__tquery_footer = $tquery;
|
||||
}
|
||||
|
||||
|
||||
public function set_css($tcss = "") {
|
||||
$this->__tcss = $tcss;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user