* Refactor dynamic block.

This commit is contained in:
liumengyi
2023-07-19 14:52:52 +08:00
parent 5056722eb1
commit 5a5d45c020
2 changed files with 42 additions and 48 deletions
+6
View File
@@ -0,0 +1,6 @@
.dynamic-block {background-color: var(--color-slate-50);}
.dynamic-block .panel-body {padding-top: 0px;}
.dynamic-block .dynamic > li.trophy .dynamic-text {box-shadow: var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow); --tw-shadow: var(--shadow); --tw-shadow-colored: var(--shadow); margin: 1px;}
.dynamic-block .dynamic > li.trophy .dynamic-text img {position: relative; top: 14px; left: 11px;}
.dynamic-block .dynamic > li:before {background-color: var(--color-slate-50);}
.dynamic-block .dynamic > li.trophy:before {background-color: var(--color-slate-50);}
+36 -48
View File
@@ -10,60 +10,48 @@ declare(strict_types=1);
*/
namespace zin;
?>
<?php if(empty($actions)): ?>
<div class='empty-tip'><?php echo $lang->block->emptyTip;?></div>
<?php else:?>
<style>
.dynamic-block .timeline > li .timeline-text {max-width: 600px; display: block; white-space: nowrap; overflow: hidden; text-overflow: clip; max-height: 20px;}
.dynamic-block .panel-body {padding-top: 0;}
.dynamic-block .timeline-text {margin-left: -18px;}
.dynamic-block .label-action {padding: 0 6px;}
.dynamic-block .label-action + a {padding-left: 6px;}
.timeline > li:before, .timeline > li > a:after, .timeline > li > div:after {position: absolute; left: -20px; display: block; width: 15px; height: 15px; content: ' '; border-radius: 50%;}
.timeline > li > a:after, .timeline > li > div:after {position: absolute; content: ' '; top: 11px; left: -17px; display: block; z-index: 3; width: 9px; height: 9px; background-color: #2e7fff; border-radius: 50%; opacity: 0;}
.timeline > li.active > a:after, .timeline > li.active > div:after {opacity: 1;}
.timeline > li.active:before {top: 8px; left: -30px; width: 15px; z-index: 3; height: 15px; background-color: #FFF; border: none;}
.timeline > li.collected > div:after {background-color: #FFAF65;}
.timeline > li.releaseddoc > div:after {background-color: #66A2FF;}
.timeline > li > div:after {left: -27px;}
.timeline > li > div > .timeline-tag, .timeline > li > div > .timeline-text > .label-action {color: #838A9D;}
.timeline-tag-left {padding-left: 115px;}
.timeline > li {position: relative; list-style: none;}
.timeline > li:before {position: absolute; content: ' '; border-radius: 50%; display: block; top: 12px; left: -26px; z-index: 3; width: 7px; height: 7px; background-color: #c4c4c4; border: none; border: 1px solid #c4c4c4;}
.timeline > li > a, .timeline > li > div {display: block; padding: 5px; line-height: 20px;}
.timeline > li + li:after {position: absolute; top: -12px; bottom: 20px; left: -23px; z-index: 1; display: block; content: ' '; border-left: 1px solid #eee;}
.timeline-tag { position: absolute; top: 5px; left: -115px; font-size: 12px; }
$content = array();
if(empty($actions))
{
$content[] = div
(
setClass('flex items-center justify-center h-64'),
span
(
setClass('text-gray'),
$lang->action->noDynamic
),
);
}
else
{
$content[] = div
(
setClass('flex-auto actions-box'),
dynamic
(
set::dynamics($actions),
set::users($users),
)
);
}
</style>
<ul class="timeline timeline-tag-left no-margin">
<?php
$i = 0;
foreach($actions as $action)
{
$user = zget($users, $action->actor);
if($action->action == 'login' or $action->action == 'logout') $action->objectName = $action->objectLabel = '';
$class = $action->major ? 'active' : '';
if(in_array($action->action, array('releaseddoc', 'collected'))) $class .= " {$action->action}";
echo "<li class='$class'><div>";
if($action->objectLink) printf($lang->block->dynamicInfo, $action->date, $user, $action->actionLabel, $action->objectLabel, $action->objectLink, $action->objectName, $action->objectName);
if(!$action->objectLink) printf($lang->block->noLinkDynamic, $action->date, $action->objectName, $user, $action->actionLabel, $action->objectLabel, ' ' . $action->objectName);
echo "</div></li>";
$i++;
}
?>
</ul>
<?php endif;?>
<?php
panel
(
set('class', 'dynamic-block ' . ($longBlock ? 'block-long' : 'block-sm')),
setClass('dynamic-block'),
set::title($block->title),
div
to::headingActions
(
rawContent()
)
a
(
set('class', 'text-gray'),
set('href', createLink('project', 'browse', 'program=0&browseType=' . $block->params->type)),
$lang->more,
icon('caret-right')
)
),
$content,
);
render();