* zin: add menu.
This commit is contained in:
@@ -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());}
|
||||
|
||||
@@ -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(),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user