From 3d48d866656bcfd2c26fe78a9637121089d13e7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=94=E4=BB=A4=E8=8C=82?= Date: Sat, 6 May 2023 17:30:40 +0800 Subject: [PATCH] * Add section comment for block. --- module/block/control.php | 12 ++++++++---- module/block/model.php | 12 ++++++------ module/block/tao.php | 4 ++-- module/block/zen.php | 21 ++++++++++++--------- 4 files changed, 28 insertions(+), 21 deletions(-) diff --git a/module/block/control.php b/module/block/control.php index f8a3d8cdc3..4d8d9c0644 100755 --- a/module/block/control.php +++ b/module/block/control.php @@ -228,16 +228,20 @@ class block extends control */ public function dashboard(string $dashboard, string $projectID = '0') { - $projectID = (int)$projectID; + $projectID = (int)$projectID; // 强制转换为 int 类型,防止调用 model、tao 方法时报错 + + /* 获取传入应用对应的区块列表 以及 获取当前应用下区块启用状态 */ $blocks = $this->block->getMyDashboard($dashboard); $isInitiated = $this->block->fetchBlockInitStatus($dashboard); - /* Init block when vist index first. */ - if(empty($blocks) and !$isInitiated and !defined('TUTORIAL') and $this->block->initBlock($dashboard)) + /* 判断用户是否为首次登录 ,判断条件 当前用户没有该 app 下的区块数据 且 没有设置过该 app 下的区块启用状态 且不是演示模式 */ + if(empty($blocks) and !$isInitiated and !defined('TUTORIAL')) { - return print(js::reload()); + $this->block->initBlock($dashboard); // 初始化该 app 下区块数据 + $blocks = $this->block->getMyDashboard($dashboard); // 获取初始化后的区块列表 } + /* */ $blocks = $this->blockZen->processBlockForRender($blocks, $projectID); if($this->app->getViewType() == 'json') return print(json_encode($blocks)); diff --git a/module/block/model.php b/module/block/model.php index f776c11294..32764c870f 100644 --- a/module/block/model.php +++ b/module/block/model.php @@ -298,7 +298,7 @@ class blockModel extends model /** * Reset dashboard blocks. * - * @param string $dashboard + * @param string $dashboard * @access public * @return bool */ @@ -323,7 +323,7 @@ class blockModel extends model /** * Hidden a block. * - * @param int $blockID + * @param int $blockID * @access public * @return bool */ @@ -341,7 +341,7 @@ class blockModel extends model /** * Delete a block. * - * @param int $blockID + * @param int $blockID * @access public * @return bool */ @@ -358,9 +358,9 @@ class blockModel extends model /** * Set block order. - * - * @param int $blockID - * @param int $order + * + * @param int $blockID + * @param int $order * @access public * @return bool */ diff --git a/module/block/tao.php b/module/block/tao.php index bbc9191f0a..716d91b0f9 100644 --- a/module/block/tao.php +++ b/module/block/tao.php @@ -3,10 +3,10 @@ declare(strict_types=1); class blockTao extends blockModel { /** - * Get block list of current user. * 获取当前用户的区块列表. + * Get block list of current user. * - * @param string $module + * @param string $dashboard * @param int $hidden 0|1 * @access protected * @return int[]|false diff --git a/module/block/zen.php b/module/block/zen.php index 447873f998..2703d35e2d 100644 --- a/module/block/zen.php +++ b/module/block/zen.php @@ -153,47 +153,50 @@ class blockZen extends block */ protected function processBlockForRender(array $blocks, int $projectID): array { + /* 根据用户的权限,和当前系统开启的权限 处理区块列表 */ $acls = $this->app->user->rights['acls']; foreach($blocks as $key => $block) { + /* 将没有开启功能区块过虑 */ if($block->code == 'waterfallrisk' and !helper::hasFeature("waterfall_risk")) continue; if($block->code == 'waterfallissue' and !helper::hasFeature("waterfall_issue")) continue; if($block->code == 'scrumrisk' and !helper::hasFeature("scrum_risk")) continue; if($block->code == 'scrumissue' and !helper::hasFeature("scrum_issue")) continue; - if(!empty($block->source) and $block->source != 'todo' and !empty($acls['views']) and !isset($acls['views'][$block->source])) + /* 将没有视图权限的区块过滤 */ + if(!empty($block->module) and $block->module != 'todo' and !empty($acls['views']) and !isset($acls['views'][$block->module])) { unset($blocks[$key]); continue; } + /* 处理 params 信息中 count 的值,当没有 count 字段时 ,将 num 字段赋值给 count */ $block->params = json_decode($block->params); if(isset($block->params->num) and !isset($block->params->count)) $block->params->count = $block->params->num; - $this->getBlockMoreLink($block, $projectID); + /* 补全加载链接 */ + $this->computeMoreLink($block, $projectID); } - return $blocks; } /** - * 获取区块的更多链接。 + * 补全区块的加载链接。 * Get the more link of the block. * * @param object $block * @param int $projectID * @return void */ - private function getBlockMoreLink(object $block, int $projectID): void + private function computeMoreLink(object $block, int $projectID): void { - $code = $block->code; - $source = empty($block->source) ? 'common' : $block->source; + $module = empty($block->module) ? 'common' : $block->module; $block->blockLink = $this->createLink('block', 'printBlock', "id=$block->id&module=$block->module"); $block->moreLink = ''; - if(isset($this->config->block->modules[$source]->moreLinkList->{$code})) + if(isset($this->config->block->modules[$module]->moreLinkList->{$block->code})) { - list($moduleName, $method, $vars) = explode('|', sprintf($this->config->block->modules[$source]->moreLinkList->{$code}, isset($block->params->type) ? $block->params->type : '')); + list($moduleName, $method, $vars) = explode('|', sprintf($this->config->block->modules[$module]->moreLinkList->{$block->code}, isset($block->params->type) ? $block->params->type : '')); /* The list assigned to me jumps to the work page when click more button. */ $block->moreLink = $this->createLink($moduleName, $method, $vars);