* Finish zentaodynamic block.

This commit is contained in:
wangyuting
2023-07-05 16:48:10 +08:00
parent c3e5464665
commit ac23f5ba85
8 changed files with 126 additions and 22 deletions
+3 -1
View File
@@ -64,13 +64,15 @@ $config->admin->plugins[194]->viewLink = 'https://www.zentao.net/extension-viewE
$config->admin->apiRoot = 'https://www.zentao.net';
$config->admin->cdnRoot = 'https://cdn.easycorp.cn/web';
$config->admin->classURL = 'https://www.zentao.net/publicclass.html';
$config->admin->dynamicURL = 'https://www.zentao.net/download.html';
$config->admin->dynamicURL = 'https://www.zentao.net/dynamic.html';
$config->admin->downloadURL = 'https://www.zentao.net/download.html';
$config->admin->extensionURL = 'https://www.zentao.net/extension-browse.html';
$config->admin->patchURL = 'https://www.zentao.net/extension-browse-byModule-1218.html';
$config->admin->apiSite = 'https://api.zentao.net/';
$config->admin->extAPIURL = $config->admin->apiSite . 'extension-apiGetExtensions-';
$config->admin->patchAPIURL = $config->admin->apiSite . 'extension-apiGetExtensions-bymodule-MTIxOA==-0-100-1.json';
$config->admin->downloadAPIURL = $config->admin->apiSite . 'download.json';
$config->admin->dynamicAPIURL = $config->admin->apiSite . 'dynamic-activities.json';
$config->admin->videoAPIURL = $config->admin->apiSite . 'publicclass.json';
$config->admin->liteMenuList = array('system', 'company', 'feature', 'message', 'extension', 'dev');
+1 -1
View File
@@ -114,7 +114,7 @@
<div class="border-gray mb-16 radius-4">
<div class="h-40 pl-16 flex align-center justify-between">
<div class="panel-title"><?php echo $lang->admin->updateDynamics?></div>
<?php echo html::a($config->admin->dynamicURL, "{$lang->more} <i class='icon icon-caret-right pb-3'></i>", '_blank', 'class="more text-muted flex align-center"');?>
<?php echo html::a($config->admin->downloadURL, "{$lang->more} <i class='icon icon-caret-right pb-3'></i>", '_blank', 'class="more text-muted flex align-center"');?>
</div>
<?php foreach($zentaoData->dynamics as $dynamic):?>
<div class="dynamic-block">
+5 -4
View File
@@ -327,7 +327,8 @@ $config->block->size['qa']['testtask'] = array('2' => '6', '1' => '6');
$config->block->size['qa']['bug'] = array('2' => '6', '1' => '6');
$config->block->size['qa']['case'] = array('2' => '6', '1' => '6');
$config->block->size['welcome']['welcome'] = array('2' => '3');
$config->block->size['guide']['guide'] = array('2' => '6');
$config->block->size['assigntome']['assigntome'] = array('2' => '6');
$config->block->size['dynamic']['dynamic'] = array('1' => '8');
$config->block->size['welcome']['welcome'] = array('2' => '3');
$config->block->size['guide']['guide'] = array('2' => '6');
$config->block->size['assigntome']['assigntome'] = array('2' => '6');
$config->block->size['dynamic']['dynamic'] = array('1' => '8');
$config->block->size['zentaoDynamic']['zentaoDynamic'] = array('1' => '3');
+9
View File
@@ -37,6 +37,7 @@ $lang->block->lblNum = '条数';
$lang->block->lblHtml = 'HTML内容';
$lang->block->html = 'HTML';
$lang->block->dynamic = '最新动态';
$lang->block->zentaoDynamic = '禅道动态';
$lang->block->assignToMe = '待处理';
$lang->block->wait = '未开始';
$lang->block->doing = '进行中';
@@ -587,6 +588,13 @@ $lang->block->productlist->activatedStory = '激活需求';
$lang->block->productlist->storyCompleteRate = '需求完成率';
$lang->block->productlist->activatedBug = '激活Bug';
$lang->block->zentaodynamic = new stdclass();
$lang->block->zentaodynamic->zentaosalon = '禅道中国行';
$lang->block->zentaodynamic->publicclass = '禅道公开课';
$lang->block->zentaodynamic->release = '最新发布';
$lang->block->zentaodynamic->registration = '立即报名';
$lang->block->zentaodynamic->reservation = '立即预约';
$lang->block->moduleList['product'] = $lang->productCommon;
$lang->block->moduleList['project'] = $lang->projectCommon;
$lang->block->moduleList['execution'] = $lang->execution->common;
@@ -597,4 +605,5 @@ $lang->block->moduleList['teamDynamic'] = $lang->zentaoPMS . $lang->dynamic;
$lang->block->moduleList['teamAchievement'] = $lang->block->teamAchievement;
$lang->block->moduleList['assigntome'] = $lang->block->assignToMe;
$lang->block->moduleList['dynamic'] = $lang->block->dynamic;
$lang->block->moduleList['zentaoDynamic'] = $lang->block->zentaoDynamic;
$lang->block->moduleList['html'] = $lang->block->html;
@@ -364,14 +364,7 @@ panel
on::click('.nav-prev,.nav-next', 'switchNav'),
set('class', 'productstatistic-block ' . ($longBlock ? 'block-long' : 'block-sm')),
set('headingClass', 'border-b'),
to::heading
(
div
(
set('class', 'panel-title'),
span($block->title),
)
),
set::title($block->title),
to::headingActions
(
a
+1 -8
View File
@@ -28,14 +28,7 @@ panel
(
set('class', 'project-block list-block ' . ($longBlock ? 'block-long' : 'block-sm')),
set('headingClass', 'border-b'),
to::heading
(
div
(
set('class', 'panel-title'),
span($block->title),
)
),
set::title($block->title),
to::headingActions
(
a
@@ -0,0 +1,64 @@
<?php
declare(strict_types=1);
/**
* The zenatoDynamic block view file of block module of ZenTaoPMS.
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.zentao.net)
* @license ZPL(https://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
* @author Yuting Wang <wangyuting@easycorp.ltd>
* @package block
* @link https://www.zentao.net
*/
namespace zin;
$app->loadModuleConfig('admin');
$dynamicCards = array();
foreach($dynamics as $key => $dynamic)
{
if($key >= 2) break;
$dynamicCards[] = a
(
set('href', $dynamic->link),
set('target', '_blank'),
div
(
set('class', 'shadow-sm p-3 ' . ($key > 0 ? 'mt-4' : '')),
div
(
label(set('class', $key > 0 ? 'special' : 'secondary'), $dynamic->title),
label(set('class', 'text-black font-bold ml-1 ' . ($key > 0 ? 'special-pale' : 'secondary-pale')), $dynamic->label),
$dynamic->linklabel ? span
(
set('style', array('float' => 'right')),
$dynamic->linklabel,
icon('arrow-right')
) : null
),
div
(
set('class', 'ellipsis text-black mt-4'),
$dynamic->content
)
)
);
}
panel
(
set::class('zentaoDynamic-block'),
set::bodyClass('p-0 px-4'),
set::title($block->title),
to::headingActions
(
a
(
set('class', 'text-gray'),
set('href', $config->admin->dynamicURL),
set('target', '__blank'),
$lang->more,
icon('caret-right')
)
),
div($dynamicCards)
);
render();
+42
View File
@@ -309,6 +309,48 @@ class blockZen extends block
$this->view->users = $this->loadModel('user')->getPairs('nodeleted|noletter|all');
}
/**
* Latest dynamic by zentao official.
*
* @access protected
* @return void
*/
protected function printZentaoDynamicBlock(): void
{
$this->app->loadModuleConfig('admin');
$dynamics = array();
$result = json_decode(preg_replace('/[[:cntrl:]]/mu', '', common::http($this->config->admin->dynamicAPIURL)));
if(!empty($result->data))
{
$data = $result->data;
if(!empty($data->zentaosalon))
{
$data->zentaosalon->title = $this->lang->block->zentaodynamic->zentaosalon;
$data->zentaosalon->label = formatTime($data->zentaosalon->time, DT_DATE4) . ' ' . $data->zentaosalon->name;
$data->zentaosalon->linklabel = $this->lang->block->zentaodynamic->registration;
$dynamics[] = $data->zentaosalon;
}
if(!empty($data->publicclass))
{
$data->publicclass->title = $this->lang->block->zentaodynamic->publicclass;
$data->publicclass->label = formatTime($data->publicclass->time, DT_DATE4) . $this->lang->datepicker->dayNames[date('w', strtotime($data->publicclass->time))] . ' ' . formatTime($data->publicclass->time, 'H:i');
$data->publicclass->linklabel = $this->lang->block->zentaodynamic->reservation;
$dynamics[] = $data->publicclass;
}
if(!empty($data->release))
{
foreach($data->release as $release)
{
$release->title = $this->lang->block->zentaodynamic->release;
$release->label = formatTime($data->publicclass->time, DT_DATE4) . $this->lang->datepicker->dayNames[date('w', strtotime($data->publicclass->time))];
$dynamics[] = $release;
}
}
}
$this->view->dynamics = $dynamics;
}
/**
* Welcome block.
*