first commit
This commit is contained in:
73
var/Widget/Notice.php
Executable file
73
var/Widget/Notice.php
Executable file
@@ -0,0 +1,73 @@
|
||||
<?php
|
||||
|
||||
namespace Widget;
|
||||
|
||||
use Typecho\Cookie;
|
||||
use Typecho\Widget;
|
||||
|
||||
if (!defined('__TYPECHO_ROOT_DIR__')) {
|
||||
exit;
|
||||
}
|
||||
|
||||
/**
|
||||
* 提示框组件
|
||||
*
|
||||
* @package Widget
|
||||
*/
|
||||
class Notice extends Widget
|
||||
{
|
||||
/**
|
||||
* 提示高亮
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public string $highlight;
|
||||
|
||||
/**
|
||||
* 高亮相关元素
|
||||
*
|
||||
* @param string $theId 需要高亮元素的id
|
||||
*/
|
||||
public function highlight(string $theId)
|
||||
{
|
||||
$this->highlight = $theId;
|
||||
Cookie::set(
|
||||
'__typecho_notice_highlight',
|
||||
$theId
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取高亮的id
|
||||
*
|
||||
* @return integer
|
||||
*/
|
||||
public function getHighlightId(): int
|
||||
{
|
||||
return preg_match("/[0-9]+/", $this->highlight, $matches) ? $matches[0] : 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设定堆栈每一行的值
|
||||
*
|
||||
* @param string|array $value 值对应的键值
|
||||
* @param string|null $type 提示类型
|
||||
* @param string $typeFix 兼容老插件
|
||||
*/
|
||||
public function set($value, ?string $type = 'notice', string $typeFix = 'notice')
|
||||
{
|
||||
$notice = is_array($value) ? array_values($value) : [$value];
|
||||
if (empty($type) && $typeFix) {
|
||||
$type = $typeFix;
|
||||
}
|
||||
|
||||
Cookie::set(
|
||||
'__typecho_notice',
|
||||
json_encode($notice)
|
||||
);
|
||||
Cookie::set(
|
||||
'__typecho_notice_type',
|
||||
$type
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user