12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- <?php
- namespace Widget;
- use Typecho\Cookie;
- use Typecho\Widget;
- if (!defined('__TYPECHO_ROOT_DIR__')) {
- exit;
- }
- /**
- * 提示框组件
- *
- * @package Widget
- */
- class Notice extends Widget
- {
- /**
- * 提示高亮
- *
- * @var string
- */
- public $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
- );
- }
- }
|