diff --git a/lib/zin/func.php b/lib/zin/func.php index ebf987879d..36f0340ce3 100644 --- a/lib/zin/func.php +++ b/lib/zin/func.php @@ -754,6 +754,20 @@ function navbar(): navbar return createWg('navbar', func_get_args()); } +/** + * Dropmenu widget. + * + * ?string url // 异步获取下拉菜单选项数据的 URL。 + * ?string text // 选择按钮上显示的文本。 + * ?string objectID // 当前选中项的 ID。 + * ?bool|int cache // 是否启用缓存。 + * ?array data // 手动指定数据。 + */ +function dropmenu(): navbar +{ + return createWg('dropmenu', func_get_args()); +} + /** * Main widget. * diff --git a/lib/zin/wg/dropmenu/v1.php b/lib/zin/wg/dropmenu/v1.php new file mode 100644 index 0000000000..5df2a6109b --- /dev/null +++ b/lib/zin/wg/dropmenu/v1.php @@ -0,0 +1,53 @@ + + * @package zin + * @link http://www.zentao.net + */ + +namespace zin; + +/** + * 1.5 级导航(dropmenu)部件类。 + * The dropmenu widget class. + * + * @author Hao Sun + */ +class dropmenu extends wg +{ + /** + * Define the properties. + * + * @var array + * @access protected + */ + protected static $defineProps = array + ( + 'url?: string', // 异步获取下拉菜单选项数据的 URL。 + 'text?: string', // 选择按钮上显示的文本。 + 'objectID?: string', // 当前选中项的 ID。 + 'cache?: bool|int=true', // 是否启用缓存。 + 'data?: array', // 手动指定数据。 + ); + + /** + * Override the build method. + * + * @access protected + * @return wg + */ + protected function build(): wg + { + list($url, $text, $objectID, $cache) = $this->prop(array('url', 'text', 'objectID', 'cache')); + return zui::dropmenu + ( + set(array('fetcher' => $url, 'text' => $text, 'value' => $objectID, 'cache' => $cache)), + set($this->getRestProps()) + ); + } +} diff --git a/lib/zin/wg/mainnavbar/v1.php b/lib/zin/wg/mainnavbar/v1.php index 689b0f8044..5b6fa06061 100644 --- a/lib/zin/wg/mainnavbar/v1.php +++ b/lib/zin/wg/mainnavbar/v1.php @@ -80,7 +80,7 @@ class mainNavbar extends nav * Override the build method. * * @access protected - * @return array + * @return wg */ protected function build(): wg {