From 307bdc752456a231b015efd11e7a1053e4b3a202 Mon Sep 17 00:00:00 2001 From: Hao Sun Date: Thu, 16 Feb 2023 13:16:28 +0800 Subject: [PATCH] + zin: add nav --- zin/func.php | 23 +++++++-------- zin/wg/nav/v1.php | 34 ++++++++++++++++++++++ zin/wg/zuinav/v1.php | 67 -------------------------------------------- 3 files changed, 46 insertions(+), 78 deletions(-) create mode 100755 zin/wg/nav/v1.php delete mode 100755 zin/wg/zuinav/v1.php diff --git a/zin/func.php b/zin/func.php index bc82e04a52..c0db048e78 100644 --- a/zin/func.php +++ b/zin/func.php @@ -13,15 +13,16 @@ namespace zin; require_once __DIR__ . DS . 'core' . DS . 'h.func.php'; -function icon() {return createWg('icon', func_get_args());} -function btn() {return createWg('btn', func_get_args());} -function pagebase() {return createWg('pagebase', func_get_args());} -function page() {return createWg('page', func_get_args());} -function btngroup() {return createWg('btngroup', func_get_args());} -function checkbox() {return createWg('checkbox', func_get_args());} -function pagemain() {return createWg('pagemain', func_get_args());} -function row() {return createWg('row', func_get_args());} -function column() {return createWg('column', func_get_args());} -function center() {return createWg('center', func_get_args());} -function cell() {return createWg('cell', func_get_args());} +function icon() {return createWg('icon', func_get_args());} +function btn() {return createWg('btn', func_get_args());} +function pagebase() {return createWg('pagebase', func_get_args());} +function page() {return createWg('page', func_get_args());} +function btngroup() {return createWg('btngroup', func_get_args());} +function checkbox() {return createWg('checkbox', func_get_args());} +function pagemain() {return createWg('pagemain', func_get_args());} +function row() {return createWg('row', func_get_args());} +function column() {return createWg('column', func_get_args());} +function center() {return createWg('center', func_get_args());} +function cell() {return createWg('cell', func_get_args());} function actionItem() {return createWg('actionitem', func_get_args());} +function nav() {return createWg('nav', func_get_args());} diff --git a/zin/wg/nav/v1.php b/zin/wg/nav/v1.php new file mode 100755 index 0000000000..e802b713cf --- /dev/null +++ b/zin/wg/nav/v1.php @@ -0,0 +1,34 @@ +prop('items'); + return h::nav + ( + setClass('nav'), + set($this->props->skip(array_keys(static::getDefinedProps()))), + is_array($items) ? array_map(array($this, 'onBuildItem'), $this->prop('items')) : NULL, + $this->children(), + ); + } +} diff --git a/zin/wg/zuinav/v1.php b/zin/wg/zuinav/v1.php deleted file mode 100755 index 87096a9ec3..0000000000 --- a/zin/wg/zuinav/v1.php +++ /dev/null @@ -1,67 +0,0 @@ - 'nav'); - - static $customProps = 'className,items,hasIcons,onRenderItem,afterRender'; - - public $cssList = array(':root{--nav-active-color: white;}'); - - protected function buildItem($item) - { - if (isset($item['type']) && $item['type'] === 'divider') return h5::li()->addClass('nav-divider'); - - $a = h5::a(); - if (isset($item['active']) && $item['active'] === true) $a->addClass('active'); - - $url = isset($item['url']) ? $item['url'] : NULL; - if (!empty($url)) $a->prop('href', "$url"); - - $icon = isset($item['icon']) ? $item['icon'] : NULL; - if (!empty($icon)) - { - $i = h5::i()->addClass("icon icon-$icon"); - $a->append($i); - } - - $span = h5::span($item['text'])->addClass('text'); - $a->append($span); - - $li = h5::li()->addClass('nav-item'); - $li->append($a); - - return $li; - } - - /** - * @return builder - */ - protected function build($isPrint = false, $parent = NULL) - { - $builder = parent::build($isPrint, $parent); - - $jsRender = $this->prop('js-render'); - if ($jsRender) - { - $id = $this->prop('id'); - $this->props->remove('id'); - $builder->jsVar('options', $this->props->data); - $builder->js(<< { - const nav = new zui.Nav('#$id', options); - }); - END); - } - return $builder; - } -}