* zin: add menu.

This commit is contained in:
dingyongliang
2023-02-16 17:52:13 +08:00
parent 309c79ca77
commit fe6dbdd0f4
2 changed files with 35 additions and 0 deletions
+1
View File
@@ -28,3 +28,4 @@ function actionItem() {return createWg('actionitem', func_get_args());}
function nav() {return createWg('nav', func_get_args());}
function label() {return createWg('label', func_get_args());}
function dtable() {return createWg('dtable', func_get_args());}
function menu() {return createWg('menu', func_get_args());}
+34
View File
@@ -0,0 +1,34 @@
<?php
namespace zin;
require_once dirname(__DIR__) . DS . 'actionitem' . DS . 'v1.php';
class menu extends wg
{
static $defineProps = 'items?:array';
public function onBuildItem($item)
{
if(!($item instanceof item)) $item = item($item);
return actionItem
(
set('name', 'menu'),
inherit($item)
);
}
/**
* @return builder
*/
protected function build()
{
$items = $this->prop('items');
return h::menu
(
setClass('menu'),
set($this->props->skip(array_keys(static::getDefinedProps()))),
is_array($items) ? array_map(array($this, 'onBuildItem'), $this->prop('items')) : NULL,
$this->children(),
);
}
}