* Add section comment for block.

This commit is contained in:
孔令茂
2023-05-06 17:30:45 +08:00
parent f4b40f4bc2
commit 3d48d86665
4 changed files with 28 additions and 21 deletions
+8 -4
View File
@@ -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));
+6 -6
View File
@@ -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
*/
+2 -2
View File
@@ -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
+12 -9
View File
@@ -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);