From b7dc108a2ed56d1302d54319ab19e4ecede5af59 Mon Sep 17 00:00:00 2001 From: Hao Sun Date: Wed, 29 Mar 2023 10:35:15 +0800 Subject: [PATCH] + zin: support to render content as fragment --- zin/core/render.func.php | 11 +++-------- zin/func.php | 1 + zin/wg/fragment/v1.php | 21 +++++++++++++++++++++ 3 files changed, 25 insertions(+), 8 deletions(-) create mode 100644 zin/wg/fragment/v1.php diff --git a/zin/core/render.func.php b/zin/core/render.func.php index ebb96a391b..a3b3454f34 100644 --- a/zin/core/render.func.php +++ b/zin/core/render.func.php @@ -13,7 +13,7 @@ namespace zin; require_once 'zin.class.php'; -function render($wgName = '\\zin\\page') +function render($wgName = 'page') { $args = array(); foreach(zin::$globalRenderList as $item) @@ -22,14 +22,9 @@ function render($wgName = '\\zin\\page') $args[] = $item; } - if(is_string($wgName)) - { - if(strpos($wgName, '\\zin\\') !== false) $wgName = str_replace('\\zin\\', '', $wgName); - if(isset(zin::$globalRenderMap[$wgName])) $wgName = zin::$globalRenderMap[$wgName]; - } + if(is_string($wgName) && isset(zin::$globalRenderMap[$wgName])) $wgName = zin::$globalRenderMap[$wgName]; - $className = "\\zin\\$wgName"; - $wg = class_exists($className) ? (new $className($args)) : $className($args); + $wg = createWg($wgName, $args); if(!$wg->displayed) $wg->display(); } diff --git a/zin/func.php b/zin/func.php index 8a97bb2902..90c8eb5a75 100644 --- a/zin/func.php +++ b/zin/func.php @@ -20,6 +20,7 @@ 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 fragment() {return createWg('fragment', 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());} diff --git a/zin/wg/fragment/v1.php b/zin/wg/fragment/v1.php new file mode 100644 index 0000000000..c3da4b1f07 --- /dev/null +++ b/zin/wg/fragment/v1.php @@ -0,0 +1,21 @@ +getCssList(); + $js = $context->getJsList(); + $imports = $context->getImportList(); + + return array + ( + empty($css) ? NULL : h::css($css), + empty($imports) ? NULL : h::import($imports), + $this->children(), + empty($js) ? NULL : h::js($js) + ); + } +}