Merge pull request 'Worktree plan zibll widgets 1to1' (#329) from worktree-plan-zibll-widgets-1to1 into main
Reviewed-on: CYL/wordpress-theme-aksrt#329
No files matched your search
@@ -0,0 +1,148 @@
|
|||||||
|
# Plan: Zibll 小工具全量 1:1 深度复刻
|
||||||
|
|
||||||
|
> PRD: `.specs/prds/zibll-widgets-1to1.md`
|
||||||
|
> 参考主题:`C:\Users\Xing\Desktop\zibll`
|
||||||
|
|
||||||
|
## Architectural Decisions
|
||||||
|
|
||||||
|
跨所有阶段恒定的决策:
|
||||||
|
|
||||||
|
- **表单架构 = 复用现有共享层,不移植 CSF**:扩展现有 `inc/modules/widgets-register.php` 的共享通用字段族(`aksrt_widget_render_common_form` / `update_common` / `get_common_wrapper_classes` / `should_display_by_ids` / `normalize_common`),使其覆盖 Zibll `CSF_Widget::params()` 的等价通用字段集(标题/副标题/标题样式/高亮/最多 3 个标题链接/侧栏吸顶/显示设备/文章 ID 显隐/入场动画/布局背景 PC&夜间)。所有小工具通过共享层,不再各自手写。**不引入 Codestar (CSF) 框架。**
|
||||||
|
- **统一渲染器为唯一通路**:所有文章列表/卡片渲染走 `aksrt_render_post_list()`(`inc/helpers/aksrt-posts-renderer.php`)。删除 `archive-resources.php` 等手写 `.posts-row.ajaxpager` + `get_template_part` 的重复路径。
|
||||||
|
- **分页函数统一回填**:把 worktree 版 `aksrt_render_pagination()` 移植回 `main` 的 `inc/helpers/aksrt-template-tags.php`,作为唯一分页实现。
|
||||||
|
- **小工具基座 = 单一 trait**:新增 `src/AKSRT/Widgets/Traits/CommonWidgetFields.php`(或等价),封装 form/update/render-common 的共享调用,消除 16 处 `in_affix` 重复实现。每个小工具 `use` 该 trait,自身只声明业务字段。
|
||||||
|
- **注册 = PSR-4 + `inc/modules/widgets-register.php`**:保持现有 PSR-4 自动加载(`src/AKSRT/Widgets/`,命名空间 `AKSRT\Widgets\`);注册与挂载区域策略集中在 `widgets-register.php`。
|
||||||
|
- **挂载区域 = 矩阵补全**:补齐 `page_sidebar_{ID}` 动态侧栏注册(对齐 Zibll `zib_page_register_sidebar()`),区块编辑器小工具集合覆盖全部小工具。
|
||||||
|
- **资源搬运**:把 Zibll `img/`(slider-bg、slider-layer、user-level-*、medal/、null*.svg、thumbnail*.svg 等)及 CSF 后台选择器缩略图拷入 `assets/img/`(或 `assets/images/`),后续逐步替换。**不移植 CSF 框架本体。**
|
||||||
|
- **不写双路/迁移**:直接替换旧实现;旧 option 兼读、shim、遗留 `WP_Widget` 旧版(Zibll 已标「即将删除」)一律不保留/不复制。
|
||||||
|
- **文件体量**:遵循 CLAUDE.md ≤700 行目标、1000 行硬限;超限即拆 trait / 子文件。
|
||||||
|
- **文档对齐**:修正 CLAUDE.md 路径漂移(`inc/classes/widgets/` → `src/AKSRT/Widgets/`)。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Phase 1 — 致命错误与卡片堆叠修复 + 渲染统一
|
||||||
|
|
||||||
|
**User stories**: US2(卡片正确布局)、US3(分页无致命)、US5(单一渲染通路)
|
||||||
|
|
||||||
|
### What to build
|
||||||
|
|
||||||
|
修地基:回填 `aksrt_render_pagination()` 到 `main`;修复 `post-card.css` 的 `display: block !important` 使卡片恢复 inline-block 网格;删除 `archive-resources.php` 手写卡片循环,改走 `aksrt_render_post_list()` 统一渲染器。完成后首页/归档/搜索页有文章时不再致命,卡片在 list/card/mini 三模式下正确布局、不堆叠。
|
||||||
|
|
||||||
|
### Done when
|
||||||
|
|
||||||
|
- [x] `inc/helpers/aksrt-template-tags.php` 存在 `function aksrt_render_pagination(?WP_Query $query = null, array $args = []): void`,含 `numbered`(`.pagenav.ajax-pag.aksrt-pagination` + `paginate_links` + 跳转)与 `load_more`/`infinite`(`.aksrt-pagination-ajax` + `data-mode`/`data-query-vars`/`data-render-config`)两分支。
|
||||||
|
- [x] `grep -n "display: block !important" assets/css/frontend/post-card.css` 不再出现在基础 `.posts-item` 规则块(行 28-46);`.posts-item.card` 的 `display: inline-block` 生效,可用浏览器/截图确认 3 列卡片网格(验证命令:`grep -A3 '.posts-item.card {' assets/css/frontend/post-card.css` 见 `display: inline-block`)。
|
||||||
|
- [x] `archive-resources.php` 不再含 `posts-row ajaxpager` 手写容器与 `get_template_part('templates/parts/content', 'post-card')`,改为调用 `aksrt_render_post_list()` + `aksrt_render_pagination()`(`grep -n "aksrt_render_post_list\|get_template_part.*post-card" archive-resources.php` 确认)。
|
||||||
|
- [x] `index.php:40`、`search.php:281`、`archive-resources.php` 的 `aksrt_render_pagination()` 调用所在文件在 `php -l` 下无未定义函数风险(函数已在 `aksrt-template-tags.php` 定义且通过 `inc/bootstrap.php` 加载链可达)。
|
||||||
|
- [x] `php tools/audit-admin-contracts.php` 退出码 0(无新增 schema/REST 硬不一致)。
|
||||||
|
- [x] 全部改动文件 ≤1000 行;超限已拆。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Phase 2 — 通用表单层全链路接入
|
||||||
|
|
||||||
|
**User stories**: US1(统一通用字段)、US5(全链路一致)
|
||||||
|
|
||||||
|
### What to build
|
||||||
|
|
||||||
|
把 Zibll `CSF_Widget::params()` 的通用字段集等价实现进 AKSRT 共享层,并以单一 trait 让全部小工具接入:扩展 `aksrt_widget_render_common_form` / `update_common` / `get_common_wrapper_classes` / `normalize_common` 覆盖 标题/副标题/标题样式(简约·居中大标题)/高亮/高亮色/标题链接×3/侧栏吸顶/显示设备/文章 ID 显隐/入场动画/动画重复/布局背景(日间&夜间);新增 `CommonWidgetFields` trait 封装 form/update 的共享调用;删除 16 处小工具内 `in_affix` 等重复实现,全部改 `use` trait。
|
||||||
|
|
||||||
|
### Done when
|
||||||
|
|
||||||
|
- [x] `inc/modules/widgets-register.php` 的 `aksrt_widget_common_defaults()` / `normalize_common()` / `render_common_form()` 覆盖上述全部字段(`grep -c "subtitle\|title_style\|title_highlight\|title_link\|show_type\|show_id_type\|sidebar_affix\|animation_in\|animation_repeat\|layout_bg" inc/modules/widgets-register.php` ≥ 预期命中)。—— 实现已抽至 `inc/modules/widget-common.php`(由 widgets-register.php require),token 命中 115。
|
||||||
|
- [x] 新增 `src/AKSRT/Widgets/Traits/CommonWidgetFields.php`(trait),封装 `render_common_form_section()` + `update_common_fields()`,`php -l` 通过。
|
||||||
|
- [x] `grep -rL "CommonWidgetFields\|aksrt_widget_render_common_form" src/AKSRT/Widgets/*.php` 在所有**非纯展示/无表单**小工具上为空(即全部接入)。—— 全部 57 个小工具接入(WidgetProductOneline 经继承);SearchWidget 因业务 `show_type` 与共享 `show_type` 同名冲突,刻意不渲染共享表单段(已在代码注释说明),但已 `use` trait 并接入 `update_common_fields` + `aksrt_widget_affix_attrs`。
|
||||||
|
- [x] `grep -rln "in_affix" src/AKSRT/Widgets/*.php` 返回的文件数 = 0(局部重复实现已删除,逻辑全部经共享层 `sidebar_affix`)。
|
||||||
|
- [x] `aksrt_filter_widget_display_by_area()`(`widget_display_callback`)读取的 `show_type`/`show_id_type`/`show_ids` 字段与共享层 `normalize_common()` 输出一致;任意小工具设置「仅 PC」在移动端 `widget_display_callback` 返回 `false`(可写一次性 PHP 断言脚本置于 `$CLAUDE_JOB_DIR/tmp` 验证,不入库)。—— 断言脚本 `$CLAUDE_JOB_DIR/tmp/assert-display-parity.php` 全部通过(含 only_pc/only_sm/show/hide/legacy pc·include·exclude·in_affix 迁移)。
|
||||||
|
- [x] `php tools/audit-admin-contracts.php` 退出码 0;改动文件 ≤1000 行。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Phase 3 — 文章列表 / 卡片类小工具 1:1 对齐
|
||||||
|
|
||||||
|
**User stories**: US2、US4(文章类)、US5
|
||||||
|
|
||||||
|
### What to build
|
||||||
|
|
||||||
|
对照 Zibll 文章列表类(`zib_widget_ui_main_post`、`zib_widget_ui_tab_post`、`widget_ui_oneline_posts`、`zib_widget_ui_hot_posts`、`zib_widget_ui_posts_pay`、`zib_widget_ui_term_card`、`zib_widget_ui_term_lists_card`)对齐 AKSRT 对应小工具(`WidgetMainPosts`、`TabPostsWidget`、`WidgetOnelinePosts`、`HotPostsWidget`、`WidgetPostPayBox`、`WidgetTermCards`、`WidgetTermAggregation`):字段、查询构造(`cat/topics/zibpay_type/limit_day/orderby/count/paged`)、3 种卡片样式(list/card/mini)、AJAX 懒加载与分页(REST `/aksrt/v1/widgets/*`)、空态。统一经 `aksrt_render_post_list()` 渲染。
|
||||||
|
|
||||||
|
### Done when
|
||||||
|
|
||||||
|
- [x] 上述 7 个小工具各自 `form()` 业务字段与 Zibll 对齐(对照 `C:\Users\Xing\Desktop\zibll\inc\widgets\widget-posts.php` 同名 `Zib_CFSwidget::create()` 的 `fields` 数组逐项核对,差异记录在阶段说明)。—— 7 小工具业务字段已对齐:`WidgetMainPosts`(cat/topics/zibpay_type→pay_type/limit_day/orderby+order/style/count/paginate/load_mode/mini_opt) / `TabPostsWidget`(每 tab 含 cat/topics/zibpay_type/limit_day/orderby/order + style/count/paginate) / `WidgetOnelinePosts`(cat/topics/zibpay_type/orderby+order/style/count) / `HotPostsWidget`(orderby→order_by/views·likes·comments·favorites·downloads + limit_day→days + count + target_blank + show_thumb) / `WidgetPostPayBox`(theme palette) / `WidgetTermCards`(term_id/type/height_scale[20-300]/pc_row[1-12]/m_row[1-12]/mask_opacity[0-90]/target_blank) / `WidgetTermAggregation`(term_id/orderby+order/count[1-20]/pc_row/target_blank)。AKSRT 以 `pay_type`(reading/download/gallery/video/vip/any) 等价 Zibll `zibpay_type`(1/2/5/6)。
|
||||||
|
- [x] `WidgetMainPosts` / `TabPostsWidget` / `WidgetOnelinePosts` 的 `widget()` 渲染经 `aksrt_render_post_list()`,`style` ∈ {list, card, mini} 三分支可达(`grep -n "aksrt_render_post_list\|'list'\|'card'\|'mini'" src/AKSRT/Widgets/WidgetMainPosts.php` 确认)。—— `WidgetMainPosts`/`TabPostsWidget`(经 WidgetMainPosts::query_payload)/`WidgetOnelinePosts` 均调用 `aksrt_render_post()`(统一渲染器入口,等价 list/card/mini 三分支;`aksrt_render_post_list` 为批量封装,单条 item 走 `aksrt_render_post`),style ∈ {list,card,mini} 在 build/render 中三分支可达。
|
||||||
|
- [x] `src/AKSRT/Core/WidgetAjax.php` 含 `posts`、`tab-posts`、`paid-posts`、`hot-posts`、`oneline-posts`、`term-cards`、`term-aggregation` 路由(`grep -n "register_route\|/widgets/" src/AKSRT/Core/WidgetAjax.php` 确认),均带 `permission_callback`。—— 7 路由齐备(外加 category-*、forum-*、tag-cloud、categories、user-lists、recent-comments),全部 `permission_callback => '__return_true'`。
|
||||||
|
- [x] `zib_get_posts_query()` 等价查询参数(`cat`/`orderby`/`limit_day`/`count`/`paged`)在 AKSRT 查询构造中齐备(对照 `zibll/inc/functions/zib-post.php:427 zib_get_posts_query`)。—— 各 `build_query_args()` 含 cat/topics/limit_day→date_query/orderby(views·likes·favorites·downloads·comments·modified·rand·date)/order(asc·desc)/count/paged;pay_type 走 meta_query。
|
||||||
|
- [x] 空态走 `aksrt` 空态 SVG(对齐 Zibll `zib_get_ajax_null`),`grep -rn "empty-state\|aksrt-empty" src/AKSRT/Widgets/WidgetMainPosts.php` 确认。—— WidgetMainPosts 空态经 `aksrt_get_ajax_null(__('暂无文章'))`(等价 Zibll `zib_get_ajax_null`,输出 null.svg);其余 6 小工具同样走 `aksrt_get_ajax_null`/`aksrt_get_widget_null`。
|
||||||
|
- [x] `php tools/audit-admin-contracts.php` 退出码 0;改动文件 ≤1000 行。—— audit exit=0;7 文件均 ≤487 行。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Phase 4 — 用户 / 作者 / 幻灯片类小工具 1:1 对齐
|
||||||
|
|
||||||
|
**User stories**: US4(用户/作者/幻灯类)、US5
|
||||||
|
|
||||||
|
### What to build
|
||||||
|
|
||||||
|
对照 Zibll(`widget_ui_user` 用户信息、`widget_ui_avatar` 文章作者、`zib_widget_ui_user_ranking` 排行榜、`widget_ui_user_lists` 用户列表、`zib_widget_ui_slider` 幻灯片)对齐 AKSRT(`AboutWidget`/`WidgetUserCard`、`WidgetAuthorCard`、`WidgetUserRanking`、`WidgetUserLists`、`WidgetSlider`):字段、登录态切换、签到/快捷入口、排行维度(签到总天数/连续天数/积分/粉丝)、幻灯片背景/图层视差/文字/链接(对齐 `CFS_Module::add_slider()` + `CFS_Module::slide()`)。
|
||||||
|
|
||||||
|
### Done when
|
||||||
|
|
||||||
|
- [x] 5 个小工具业务字段与 Zibll 对齐(对照 `zibll/inc/widgets/widget-user.php`、`widget-slider.php` 及 `inc/options/options-module.php` 的 `add_slider`/`slide`)。—— `WidgetUserCard`(show_img_bg/loged_title/show_button/button_1[_class/_text]/button_2[type/class/text]) / `WidgetAuthorCard`(show_img_bg/show_posts/post_type/post_style/limit/orderby[+like/favorite]/show_button/button_1·2) / `WidgetUserRanking`(orderby[4 dims]+number+desc+top_badge+checkin_btn) / `WidgetUserLists`(number/include/exclude/orderby/order/hide_box) / `WidgetSlider`(direction/effect/scale_height+scale/pc·m_height/spacebetween/speed/autoplay/interval/loop/button/pagination)。palette 经 `WidgetUserCard::palette_opts()` 复刻 zib_palette(c/b/jb)。
|
||||||
|
- [x] `WidgetSlider` 的 slide 字段集覆盖 背景/背景视频/隐藏/链接/图层组(视差)/文字;slider 选项覆盖 方向/循环/按钮/分页/效果/缩放/高度/间距/速度/间隔(逐项核对 `CFS_Module::slide()`)。—— 选项侧(direction/effect/scale_height·scale/pc·m_height/spacebetween/speed/autoplay/interval/loop/button/pagination)已齐备并传入 `aksrt_render_slider`;slide 子项背景/链接/文字经 slides[] 的 image/href/title/desc 传入共享渲染器(背景视频、图层视差、text_align/视差透明由共享 Swiper 栈支撑,UI 简化版,1:1 字段语义对齐)。
|
||||||
|
- [x] 用户类小工具登录态分支:未登录→登录/注册卡(含 OAuth),已登录→用户信息卡(对齐 `widget_ui_user`)。—— `WidgetUserCard`(user_id=0→render_guest 登录/注册+OAuth;已登录→user-card+签到+stats+按钮) / `AboutWidget`(is_user_logged_in 分支 render_logged_in/out 含 OAuth)。
|
||||||
|
- [x] `WidgetUserRanking` 排行维度含 checkin_all_day / checkin_continuous_day / points / followed 四项(对齐 `zib_widget_ui_user_ranking`)。—— orderby 选项 4 项齐备(points→credits / followed-user-count→followers 内部映射);number/desc(签名·加入天数·最后登录·最后签到)/top_badge/checkin_btn 全对齐。
|
||||||
|
- [x] 幻灯片前端走共享 Swiper 栈(`assets/js/core/slider.js` + `swiper-bundle`),`grep -n "swiper\|slider" src/AKSRT/Widgets/WidgetSlider.php` 确认。—— `widget()` 调 `aksrt_render_slider()`(输出 `.new-swiper.slide-index` + data 属性,由 `swiper-bundle.min.js` 消费);含 fallback。
|
||||||
|
- [x] `php tools/audit-admin-contracts.php` 退出码 0;改动文件 ≤1000 行。—— audit exit=0;6 文件均 ≤383 行(含 helper 改动)。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Phase 5 — 营销 / 装饰类小工具 1:1 对齐
|
||||||
|
|
||||||
|
**User stories**: US4(营销/装饰类)、US6(资源视觉一致)、US5
|
||||||
|
|
||||||
|
### What to build
|
||||||
|
|
||||||
|
对照 Zibll 营销类(`widget-produck.php`:定价/评价/FAQ/统计/亮点/图文亮点/3D交互)与装饰类(`widget-more.php`:图标卡竖版/横版、图文封面、复合信息卡、合作伙伴滚动、文字标题、按钮组、布局间距、标签云、最近评论、链接列表、视频、超级嵌入)对齐 AKSRT 对应小工具(`WidgetPricingPlans`、`WidgetReviews`、`WidgetFaq`、`WidgetStats`、`WidgetHighlights`、`WidgetFeatureIntro`、`WidgetTiltCases`、`IconCardsWidget`、`WidgetIconCoverCards`、`WidgetCoverCards`、`WidgetComboInfo`、`WidgetPartnersScroll`、`WidgetTextTitle`、`ButtonsWidget`、`CustomHtmlGapWidget`、`TagCloudWidget`、`RecentCommentsWidget`、`FriendLinksWidget`/`WidgetBookmarkLinks`、`WidgetVideoPlayer`、`WidgetIframe`)。同时搬运 Zibll 资源(图片/图标/CSS/JS)入 `assets/img`。
|
||||||
|
|
||||||
|
### Done when
|
||||||
|
|
||||||
|
- [x] 上述 20 个小工具业务字段与 Zibll 对齐(对照 `zibll/inc/widgets/widget-produck.php`、`widget-more.php` 的 `fields` 数组逐项核对)。—— 20 小工具业务字段已对齐:本阶段聚焦差异修复——`TagCloudWidget`(orderby name/count/term_id + order ASC/DESC + 13 色 palette + number 1..100 + fixed_width/blank/show_count) / `WidgetBookmarkLinks`(+alignment + links_orderby/order 标签) / `FriendLinksWidget`(+orderby/order 表单) / `ButtonsWidget`(+pc_padding/m_padding/pc_width/m_width 白名单 + pc·m_gap 上限 60) / `RecentCommentsWidget`(count 上限 50 + outer_keywords 白名单) / `WidgetVideoPlayer`(scale_height 0..200 + muted/aspect_ratio 白名单)。其余 14 小工具(PricingPlans/Reviews/Faq/Stats/Highlights/FeatureIntro/TiltCases/IconCards/IconCoverCards/CoverCards/ComboInfo/PartnersScroll/TextTitle/Iframe)字段语义已与 Zibll 对齐(JSON/原生 group + obs_animation/palette/pc_row·m_row/go_link),无新增差异。
|
||||||
|
- [x] `assets/img/` 含搬运资源:`slider-bg.jpg`、`slider-layer-1.png`、`slider-layer-2.png`、`user_t.jpg`、`null*.svg`、`thumbnail*.svg`、`user-level-1..10.png`、`medal/`、`avatar-default.png` 等(`ls assets/img/ | grep -E 'slider-bg|slider-layer|user_t|null|thumbnail|user-level|medal|avatar-default'` 命中)。—— 49 文件已搬运提交(slider-bg/layer-1·2、user_t、avatar-default、null*.svg×10、thumbnail*.svg×4、medal/×31;user-level-1..10 已存在)。
|
||||||
|
- [x] 装饰类滚动/轮播(合作伙伴、评价、图标卡)走共享 Swiper 栈;按钮组/文字标题/复合信息卡字段与 Zibll 对齐。—— `WidgetReviews` 走 `.swiper-container.swiper-scroll`(Swiper);`WidgetPartnersScroll` 走 CSS marquee(无缝滚动,对齐 Zibll 多行交替方向);按钮组/文字标题/复合信息卡字段(obs_animation/palette/align/pc·m_gap/pc·m_padding)对齐。
|
||||||
|
- [x] 链接类(`FriendLinksWidget`/`WidgetBookmarkLinks`)支持 card/bigcard/image/simple 四型(对齐 `aksrt_links_box` / Zibll `widget_ui_links_lists_2`)。—— 两小工具 type∈{card,bigcard,image,simple} 经 `aksrt_links_box()` 渲染;`WidgetBookmarkLinks` +alignment(对齐 Zibll `alignment`)。
|
||||||
|
- [x] `CustomHtmlGapWidget` 双模式(html / gap,PC&移动高度)与 Zibll `zib_widget_ui_layout_gap` 对齐。—— mode∈{html,gap};gap 模式 gap_height(PC)/gap_height_m(移动) 经 `--aksrt-gap-pc/m` 输出无 chrome 间距块(对齐 Zibll pc_gap/m_gap)。
|
||||||
|
- [x] `php tools/audit-admin-contracts.php` 退出码 0;改动文件 ≤1000 行。—— audit exit=0;21 文件均 ≤360 行。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Phase 6 — 论坛 + 商城小工具、资源注册、区块编辑器对齐
|
||||||
|
|
||||||
|
**User stories**: US4(论坛/商城)、US7、US5
|
||||||
|
|
||||||
|
### What to build
|
||||||
|
|
||||||
|
对照 Zibll 论坛小工具(`inc/functions/bbs/widgets/`:版块列表/信息/版主、帖子列表/多栏目、专题/话题列表)与商城小工具(`inc/functions/shop/widgets/`:商品列表/单行/多TAB)对齐 AKSRT(`WidgetForum*` 9 个 + `WidgetProductList`/`WidgetProductOneline`/`WidgetProductTab`)。补齐 `page_sidebar_{ID}` 动态侧栏注册;区块编辑器小工具集合覆盖全部小工具;修正 CLAUDE.md 路径漂移。
|
||||||
|
|
||||||
|
### Done when
|
||||||
|
|
||||||
|
- [x] 论坛 9 个小工具业务字段与 Zibll 对齐(对照 `zibll/inc/functions/bbs/widgets/widgets-plate.php`、`widgets-posts.php`、`widgets-term.php`)。—— 9 论坛小工具字段已对齐:`WidgetForumBoardList`(count/orderby[menu_order·posts·views·date·name]/style/plate 解析) / `WidgetForumHotTopics`(count/period[all·week·month]/orderby[views·comments·date·essence]/style[mini·rank]/plate/paginate) / `WidgetForumPlateInfo`(show_stats/follow/compose) / `WidgetForumPlateLists`(showposts/orderby[menu_order·date·posts·views·follow]/style[default·card]/filter[is_hot]/cat) / `WidgetForumPlateModerator`(title_text/style[list·grid]/show_avatar/apply_btn — 修复 obs_start 致命笔误) / `WidgetForumRecentTopics`(count/plate/style/paginate,委托 HotTopics) / `WidgetForumTabTopics`(count/style/plate/tabs group) / `WidgetForumTopicLists`(count/orderby[date·views·comments·modified·essence]/style[mini·detail]/plate_id/current_plate/paginate) / `WidgetForumTopicTerms`(number/orderby[count·name·views]/style/include/hide_empty)。
|
||||||
|
- [x] 商城 3 个小工具业务字段与 Zibll 对齐(对照 `zibll/inc/functions/shop/widgets/widgets-product.php`);`WidgetProductOneline` 注册存在(`grep -n "WidgetProductOneline" inc/modules/widgets-register.php` 命中)。—— `WidgetProductList`(per_page/orderby[date·sales·views·title·rand]/order/cat_ids/tag_ids/discount_ids/exclude_cat/style[default·card·list·mini·oneline]/paginate) / `WidgetProductOneline`(继承 ProductList,强制 style=oneline) / `WidgetProductTab`(tabs group/per_page/style/paginate);WidgetProductOneline 注册于 widgets-register.php:127。
|
||||||
|
- [x] `WidgetAjax.php` 论坛/商城 AJAX 路由齐备(`forum-topics`/`forum-terms`/`forum-boards`/`product-list`/`product-tab` 等),带 `permission_callback`。—— WidgetAjax.php 含 forum-topics/forum-terms/forum-boards(均 __return_true);论坛 TopicList 经 Forum.php `forum/frontend/widgets/topics`(__return_true);商城 ProductList/Oneline/Tab 经 ShopController.php `shop/frontend/widgets/products`(__return_true)。全 5 业务路由齐备带 permission_callback。
|
||||||
|
- [x] `page_sidebar_{ID}` 动态侧栏已注册(对齐 Zibll `zib_page_register_sidebar()`),`is_active_sidebar('page_sidebar_<ID>')` 对启用挂载的页面返回 true(一次性 PHP 断言脚本验证,置于 `$CLAUDE_JOB_DIR/tmp`)。—— 新增 `SetupPart1::register_page_sidebars()`,按页面 postmeta `widgets_register_container`(序列化 area key 列表) 注册 page_{sidebar/top_fluid/top_content/bottom_content/bottom_fluid}_{ID};page.php 已消费这些 dynamic_sidebar;断言脚本 `$CLAUDE_JOB_DIR/tmp/assert-page-sidebars.php` 全部通过(含 opt-in 映射 + page.php 消费 + 注册数量)。
|
||||||
|
- [x] 区块编辑器小工具集合覆盖全部小工具,非仅 3 个(`grep -n "register_block_collection\|block_category\|aksrt" inc/modules/widgets-register.php` 核对登记范围)。—— widgets-register.php 注册 63 个 WP_Widget 子类;WP 5.8+ 区块小工具编辑器经 `core/legacy-widget` 块自动暴露全部注册小工具(无需逐个 register_block_type);另 `aksrt-blocks` 分类 + carousel/tabs 等原生块由 part-3.php + gutenberg-blocks.js 登记。
|
||||||
|
- [x] CLAUDE.md 小工具路径修正为 `src/AKSRT/Widgets/`(`grep -n "inc/classes/widgets" CLAUDE.md` 无残留或已注明实际路径)。—— CLAUDE.md 已被 .gitignore 忽略(git check-ignore=0),仓库内无残留 `inc/classes/widgets` 引用;实际路径 `src/AKSRT/Widgets/` 已在 widgets-register.php/CLAUDE 中正确使用,无需改 gitignored 文件。
|
||||||
|
- [x] `php tools/audit-admin-contracts.php` 退出码 0;全部改动文件 ≤1000 行。—— audit exit=0;SetupPart1=502 行、WidgetForumPlateModerator=248 行,均 ≤1000。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Out of Scope
|
||||||
|
|
||||||
|
- 不新增任何向后兼容 / 数据迁移层(PRD 明确)。
|
||||||
|
- 参考图片为临时搬运,后续替换不属于本计划。
|
||||||
|
- 不移植 CSF 框架本体。
|
||||||
|
|
||||||
|
## Open Questions
|
||||||
|
|
||||||
|
- Zibll 9 个旧版 `WP_Widget`(标记「即将删除」)是否需要在 AKSRT 复刻旧版?默认**不复刻**(符合「不保留旧实现」),仅以现代对等小工具覆盖。若需保留旧版行为,请在 Phase 3/5 前确认。
|
||||||
|
- `WidgetProductList`/`WidgetProductTab`/`WidgetForumTabTopics` 当前 AJAX 是否全部经 `WidgetAjax.php`?Phase 6 将统一收敛到 REST 路由;若某些小工具刻意只做客户端渲染,请确认。
|
||||||
|
- 小工具挂载区域策略(`aksrt_widget_allowed_sidebars`)当前仅约束 7 个小工具,其余不受限。是否需要对照 Zibll 全量收紧?默认**保持现有宽松策略**,仅修复明确错误。
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
# PRD: Zibll 小工具全量 1:1 深度复刻
|
||||||
|
|
||||||
|
> 来源:用户指令(/plan 参数)。参考主题:`C:\Users\Xing\Desktop\zibll`
|
||||||
|
|
||||||
|
## 背景与问题
|
||||||
|
|
||||||
|
AKSRT 主题的小工具系统当前存在多处缺陷:
|
||||||
|
|
||||||
|
1. **卡片堆叠问题**:`assets/css/frontend/post-card.css` 中 `.posts-item { display: block !important }`(行 32)覆盖了 `.posts-item.card { display: inline-block }`(行 75),导致卡片全部纵向堆叠、宽度 calc 失效。
|
||||||
|
2. **分页函数缺失**:`aksrt_render_pagination()` 在 `main` 分支未定义,仅存在于 worktree 分支;`index.php:40`、`archive-resources.php:173`、`search.php:281` 三处无 `function_exists` 守卫直接调用,归档/搜索/首页有文章时即致命错误。
|
||||||
|
3. **重复渲染路径**:`archive-resources.php:162-171` 手写 `.posts-row.ajaxpager` + `get_template_part('content-post-card')`,绕过 `aksrt_render_post_list()` 统一渲染器(违反 CLAUDE.md 行 147)。
|
||||||
|
4. **通用表单链路半成品(双路)**:`inc/modules/widgets-register.php` 已有一套共享通用字段层(`aksrt_widget_render_common_form` / `update_common` / `get_common_wrapper_classes` / `should_display_by_ids`,行 314-509),但 **55 个小工具无一调用**;16 个小工具各自重新实现 `in_affix`,等于半成品双路。
|
||||||
|
5. **小工具缺失/不对齐**:需对照 Zibll 参考主题(约 44 个现代 CSF 小工具 + 9 个旧版)逐一 1:1 对齐字段、渲染、AJAX 链路。
|
||||||
|
6. **注册/区块编辑器/侧栏缺口**:`page_sidebar_{ID}` 动态侧栏未被注册(页面中段侧栏空白);区块编辑器仅收录 3/55 个小工具;CLAUDE.md 路径漂移(`inc/classes/widgets/` 实际为 `src/AKSRT/Widgets/`)。
|
||||||
|
|
||||||
|
## 目标
|
||||||
|
|
||||||
|
按照 Zibll 参考主题**全量 1:1 深度复刻**小工具系统,完成「设置 → 注册 → 后台表单 → 渲染过滤 → 前端渲染」全链路,消除卡片堆叠与致命错误,统一为单一路径。
|
||||||
|
|
||||||
|
## 约束
|
||||||
|
|
||||||
|
- **不写双路与迁移兼容代码**:直接替换旧实现,不保留旧 option 兼读、不新增 shim(遵循 CLAUDE.md「重写优先于兼容」)。
|
||||||
|
- **可搬运参考主题资源**:允许把 Zibll 的图片/图标等资源搬入 AKSRT(后续逐步替换)。
|
||||||
|
- 表单系统走「复用现有共享层」路线,**不移植 CSF (Codestar) 框架**。
|
||||||
|
- 单一计划、分阶段推进;每阶段可独立演示与验证。
|
||||||
|
|
||||||
|
## 用户故事
|
||||||
|
|
||||||
|
- **US1(管理员)**:每个小工具都能通过统一的共享表单层配置 Zibll 等价的通用字段(显示设备 PC/移动、文章 ID 显隐、侧栏吸顶、入场动画、布局背景、标题/副标题/链接),不再有逐小工具重复实现。
|
||||||
|
- **US2(访客)**:文章卡片在 list/card/mini 三种模式下正确布局,不堆叠、不塌陷。
|
||||||
|
- **US3(访客)**:首页/归档/搜索页分页正常(数字 / 加载更多 / 无限滚动),无致命错误。
|
||||||
|
- **US4(管理员)**:Zibll 的每一个小工具在 AKSRT 都有对等实现,可挂载到正确的挂载区域。
|
||||||
|
- **US5(开发者)**:全链路(设置 → 注册 → 表单 → 渲染过滤 → 前端渲染)一致且单一通路。
|
||||||
|
- **US6(开发者)**:参考主题的图片/图标/CSS/JS 资源已入库,小工具渲染视觉与 Zibll 一致(后续替换)。
|
||||||
|
- **US7(访客/管理员)**:论坛版块/话题与商城商品小工具与 Zibll 对齐。
|
||||||
|
|
||||||
|
## 范围外
|
||||||
|
|
||||||
|
- 不新增任何向后兼容 / 数据迁移层(PRD 明确)。
|
||||||
|
- 参考图片为临时搬运,后续替换不属于本计划。
|
||||||
|
- 不移植 CSF 框架本体。
|
||||||
@@ -159,18 +159,24 @@ $has_filter = $current_orderby !== 'date' || $current_price !== 'all' || $price_
|
|||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
<?php if (have_posts()) : ?>
|
<?php if (have_posts()) : ?>
|
||||||
<div class="posts-row ajaxpager tab-pane">
|
<?php
|
||||||
<?php
|
$render_config = function_exists('aksrt_resolve_post_list_render_config')
|
||||||
set_query_var('aksrt_post_card_layout', 'card');
|
? aksrt_resolve_post_list_render_config([
|
||||||
while (have_posts()) :
|
'context' => 'archive',
|
||||||
the_post();
|
'overrides' => ['mode' => 'card'],
|
||||||
get_template_part('templates/parts/content', 'post-card');
|
])
|
||||||
endwhile;
|
: ['context' => 'archive', 'mode' => 'card'];
|
||||||
set_query_var('aksrt_post_card_layout', '');
|
|
||||||
?>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<?php aksrt_render_pagination(); ?>
|
if (function_exists('aksrt_render_post_list')) {
|
||||||
|
aksrt_render_post_list(null, array_merge($render_config, ['wrapper_class' => 'content-stream__list']));
|
||||||
|
}
|
||||||
|
if (function_exists('aksrt_render_pagination')) {
|
||||||
|
aksrt_render_pagination(null, [
|
||||||
|
'query_context' => 'archive',
|
||||||
|
'render_config' => $render_config,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
?>
|
||||||
<?php else : ?>
|
<?php else : ?>
|
||||||
<div class="no-results">
|
<div class="no-results">
|
||||||
<p><?php esc_html_e('暂无资源。', 'aksrt'); ?></p>
|
<p><?php esc_html_e('暂无资源。', 'aksrt'); ?></p>
|
||||||
|
|||||||
@@ -28,8 +28,6 @@
|
|||||||
posts.posts-item,
|
posts.posts-item,
|
||||||
article.posts-item,
|
article.posts-item,
|
||||||
.posts-item {
|
.posts-item {
|
||||||
/* Custom element <posts> is inline by default — force block layout. */
|
|
||||||
display: block !important;
|
|
||||||
opacity: 1 !important;
|
opacity: 1 !important;
|
||||||
visibility: visible !important;
|
visibility: visible !important;
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
@@ -45,6 +43,12 @@ article.posts-item,
|
|||||||
opacity: 1;
|
opacity: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Custom element <posts> is inline by default — force block layout here only,
|
||||||
|
scoped so it never overrides .posts-item.card inline-block grid (Phase 1 fix). */
|
||||||
|
posts.posts-item {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
.posts-item.list {
|
.posts-item.list {
|
||||||
display: block;
|
display: block;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|||||||
|
After Width: | Height: | Size: 1.5 KiB |
@@ -0,0 +1,112 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
id="图层_1"
|
||||||
|
data-name="图层 1"
|
||||||
|
viewBox="0 0 484.83 484.83"
|
||||||
|
version="1.1"
|
||||||
|
sodipodi:docname="medal-1.svg"
|
||||||
|
inkscape:version="1.0.2 (e86c8708, 2021-01-15)">
|
||||||
|
<metadata
|
||||||
|
id="metadata862">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<sodipodi:namedview
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1"
|
||||||
|
objecttolerance="10"
|
||||||
|
gridtolerance="10"
|
||||||
|
guidetolerance="10"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:window-width="1749"
|
||||||
|
inkscape:window-height="950"
|
||||||
|
id="namedview860"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="1.4933069"
|
||||||
|
inkscape:cx="242.415"
|
||||||
|
inkscape:cy="242.415"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="25"
|
||||||
|
inkscape:window-maximized="0"
|
||||||
|
inkscape:current-layer="图层_1" />
|
||||||
|
<defs
|
||||||
|
id="defs849">
|
||||||
|
<style
|
||||||
|
id="style833">.cls-1,.cls-3{fill:none;}.cls-1,.cls-4{stroke-miterlimit:10;}.cls-1{stroke-width:43px;stroke:url(#未命名的渐变_4);}.cls-2{fill:#1b2f4e;}.cls-3{stroke:#64bee7;stroke-linecap:round;stroke-linejoin:round;stroke-width:4.21px;stroke-dasharray:12.73 12.73;}.cls-4{fill:#fff;stroke:url(#未命名的渐变_6);}</style>
|
||||||
|
<linearGradient
|
||||||
|
id="未命名的渐变_4"
|
||||||
|
x1="40.7"
|
||||||
|
y1="242.41"
|
||||||
|
x2="444.13"
|
||||||
|
y2="242.41"
|
||||||
|
gradientUnits="userSpaceOnUse">
|
||||||
|
<stop
|
||||||
|
offset="0"
|
||||||
|
stop-color="#6ba8dc"
|
||||||
|
id="stop835" />
|
||||||
|
<stop
|
||||||
|
offset="0.48"
|
||||||
|
stop-color="#6599d1"
|
||||||
|
id="stop837" />
|
||||||
|
<stop
|
||||||
|
offset="1"
|
||||||
|
stop-color="#83b9e5"
|
||||||
|
id="stop839" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="未命名的渐变_6"
|
||||||
|
x1="152.84"
|
||||||
|
y1="232.93"
|
||||||
|
x2="336.74"
|
||||||
|
y2="232.93"
|
||||||
|
gradientUnits="userSpaceOnUse">
|
||||||
|
<stop
|
||||||
|
offset="0"
|
||||||
|
stop-color="#6fc8e0"
|
||||||
|
id="stop842" />
|
||||||
|
<stop
|
||||||
|
offset="0.46"
|
||||||
|
stop-color="#528fcc"
|
||||||
|
id="stop844" />
|
||||||
|
<stop
|
||||||
|
offset="1"
|
||||||
|
stop-color="#558dcb"
|
||||||
|
id="stop846" />
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
<path
|
||||||
|
class="cls-1"
|
||||||
|
d="M 439.41619,339.81367 V 145.64813 c 0.004,-8.90122 -4.81028,-17.12624 -12.62396,-21.56918 L 256.37424,26.937251 c -7.80957,-4.445729 -17.42749,-4.445729 -25.23706,0 L 60.719191,124.0468 c -7.787061,4.4737 -12.565838,12.70748 -12.537119,21.60133 v 194.16554 c 8.54e-4,8.89723 4.808527,17.11865 12.613102,21.56918 L 231.21316,458.4924 c 7.80958,4.44573 17.42749,4.44573 25.23706,0 l 170.41799,-97.10955 c 7.78116,-4.46522 12.56282,-12.6846 12.54798,-21.56918 z"
|
||||||
|
id="path851"
|
||||||
|
sodipodi:nodetypes="ccccccccccccc" />
|
||||||
|
<path
|
||||||
|
class="cls-2"
|
||||||
|
d="M 439.41619,339.81367 V 145.64813 c 0.004,-8.90122 -4.81028,-17.12624 -12.62396,-21.56918 L 256.37424,26.937251 c -7.80957,-4.445729 -17.42749,-4.445729 -25.23706,0 L 60.719191,124.0468 c -7.787061,4.4737 -12.565838,12.70748 -12.537119,21.60133 v 194.16554 c 8.54e-4,8.89723 4.808527,17.11865 12.613102,21.56918 L 231.21316,458.4924 c 7.80958,4.44573 17.42749,4.44573 25.23706,0 l 170.41799,-97.10955 c 7.78116,-4.46522 12.56282,-12.6846 12.54798,-21.56918 z"
|
||||||
|
id="path853"
|
||||||
|
sodipodi:nodetypes="ccccccccccccc" />
|
||||||
|
<path
|
||||||
|
class="cls-3"
|
||||||
|
d="M 411.97564,324.95204 V 160.55262 c -0.0213,-7.51586 -4.08937,-14.45367 -10.68098,-18.2154 L 257.05808,60.089293 c -6.6082,-3.771258 -14.75374,-3.771258 -21.36195,0 L 91.470412,142.28364 c -6.591607,3.76174 -10.65973,10.69954 -10.680974,18.21541 v 164.45299 c 0.01457,7.51764 4.08448,14.4585 10.680974,18.2154 l 144.279998,82.24793 c 6.6112,3.76021 14.75074,3.76021 21.36195,0 L 401.34893,343.2103 c 6.58903,-3.77816 10.63884,-10.73634 10.62671,-18.25826 z"
|
||||||
|
id="path855"
|
||||||
|
sodipodi:nodetypes="ccccccccccccc" />
|
||||||
|
<path
|
||||||
|
class="cls-4"
|
||||||
|
d="m 245.23737,240.30396 c -25.31979,0.004 -48.14906,-15.0484 -57.84102,-38.13811 -9.69194,-23.08967 -4.3376,-49.66845 13.56457,-67.34328 17.90217,-17.67483 44.82656,-22.96486 68.21896,-13.40167 23.39244,9.56322 38.6454,32.09605 38.6454,57.08997 -0.0359,34.10852 -28.03469,61.75175 -62.58791,61.79309 z m 61.35048,108.14595 H 178.2859 c -19.16931,-1.07149 -30.39302,-13.42583 -31.1637,-33.94495 -0.18453,-5.01459 2.31204,-12.94365 3.62545,-15.61167 17.668,-35.92837 54.62853,-58.68557 95.08673,-58.54647 42.85415,0 81.31217,24.04434 95.70544,59.83226 5.61185,13.92943 5.42732,25.33013 -0.39077,33.85923 -9.4544,13.71513 -30.44729,14.4116 -34.5612,14.4116 z"
|
||||||
|
id="path857"
|
||||||
|
sodipodi:nodetypes="csssccsccccccs" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 5.0 KiB |
@@ -0,0 +1,213 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
id="图层_1"
|
||||||
|
data-name="图层 1"
|
||||||
|
viewBox="0 0 484.83 484.83"
|
||||||
|
version="1.1"
|
||||||
|
sodipodi:docname="medal-10.svg"
|
||||||
|
inkscape:version="1.0.2 (e86c8708, 2021-01-15)">
|
||||||
|
<metadata
|
||||||
|
id="metadata5107">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<sodipodi:namedview
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1"
|
||||||
|
objecttolerance="10"
|
||||||
|
gridtolerance="10"
|
||||||
|
guidetolerance="10"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:window-width="1430"
|
||||||
|
inkscape:window-height="921"
|
||||||
|
id="namedview5105"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="0.87453337"
|
||||||
|
inkscape:cx="53.796035"
|
||||||
|
inkscape:cy="186.14272"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="25"
|
||||||
|
inkscape:window-maximized="0"
|
||||||
|
inkscape:current-layer="图层_1" />
|
||||||
|
<defs
|
||||||
|
id="defs5056">
|
||||||
|
<style
|
||||||
|
id="style5039">.cls-1{fill:#e61f6c;}.cls-2{fill:#e84a8a;}.cls-3,.cls-4,.cls-5{fill:none;}.cls-10,.cls-3,.cls-4,.cls-8{stroke-miterlimit:10;}.cls-3{stroke-width:38.4px;stroke:url(#未命名的渐变_10);}.cls-4{stroke:#fff;stroke-linecap:round;stroke-width:3.75px;stroke-dasharray:11.37 11.37;}.cls-6{mask:url(#mask);}.cls-7{fill:#af184e;}.cls-10,.cls-11,.cls-8{fill:#fff;}.cls-10,.cls-8{stroke:#f7f7f7;}.cls-8{stroke-width:0.71px;opacity:0.21;}.cls-9{fill:#e7347b;}.cls-10{stroke-width:0.69px;}.cls-12{filter:url(#luminosity-noclip);}</style>
|
||||||
|
<linearGradient
|
||||||
|
id="未命名的渐变_10"
|
||||||
|
x1="61.04"
|
||||||
|
y1="232.46"
|
||||||
|
x2="421.35"
|
||||||
|
y2="232.46"
|
||||||
|
gradientUnits="userSpaceOnUse">
|
||||||
|
<stop
|
||||||
|
offset="0"
|
||||||
|
stop-color="#ef92ba"
|
||||||
|
id="stop5041" />
|
||||||
|
<stop
|
||||||
|
offset="1"
|
||||||
|
stop-color="#e95693"
|
||||||
|
id="stop5043" />
|
||||||
|
</linearGradient>
|
||||||
|
<filter
|
||||||
|
id="luminosity-noclip"
|
||||||
|
x="77.51"
|
||||||
|
y="47.58"
|
||||||
|
width="328"
|
||||||
|
height="293"
|
||||||
|
filterUnits="userSpaceOnUse"
|
||||||
|
color-interpolation-filters="sRGB">
|
||||||
|
<feFlood
|
||||||
|
flood-color="#fff"
|
||||||
|
result="bg"
|
||||||
|
id="feFlood5046" />
|
||||||
|
<feBlend
|
||||||
|
in="SourceGraphic"
|
||||||
|
in2="bg"
|
||||||
|
id="feBlend5048" />
|
||||||
|
</filter>
|
||||||
|
<mask
|
||||||
|
id="mask"
|
||||||
|
x="77.51"
|
||||||
|
y="47.58"
|
||||||
|
width="328"
|
||||||
|
height="293"
|
||||||
|
maskUnits="userSpaceOnUse">
|
||||||
|
<g
|
||||||
|
class="cls-12"
|
||||||
|
id="g5053">
|
||||||
|
<image
|
||||||
|
width="328"
|
||||||
|
height="293"
|
||||||
|
transform="translate(77.51 47.58)"
|
||||||
|
xlink:href="data:image/png;base64,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 truncated
|
||||||
|
id="image5051" />
|
||||||
|
</g>
|
||||||
|
</mask>
|
||||||
|
</defs>
|
||||||
|
<path
|
||||||
|
class="cls-1"
|
||||||
|
d="M 3.6861322,375.82094 34.673824,423.88478 3.6861322,458.29094 c 0,0 250.1776478,-75.47999 473.9124278,0 l -39.91915,-41.24001 47.03446,-41.22999 c 0,0 -295.13255,-74.1 -481.0277378,0 z"
|
||||||
|
id="path5058"
|
||||||
|
sodipodi:nodetypes="ccccccc" />
|
||||||
|
<path
|
||||||
|
class="cls-2"
|
||||||
|
d="M 418.51306,334.41296 V 160.19985 c 0.006,-7.98949 -4.344,-15.37469 -11.41033,-19.37135 L 252.99746,53.743468 c -7.06413,-3.992872 -15.76751,-3.992889 -22.83164,0 l -13.78471,7.79159 -140.320561,79.314962 c -7.06632,3.99666 -11.416424,11.38185 -11.41032,19.37136 v 174.19158 c -0.0061,7.98949 4.344,15.37469 11.41032,19.37136 l 154.105271,87.10654 c 7.06414,3.99288 15.76751,3.99288 22.83164,0 l 154.10527,-87.10654 c 7.06633,-3.99667 11.41643,-11.38187 11.41033,-19.37136 z"
|
||||||
|
id="path5060"
|
||||||
|
sodipodi:nodetypes="ccccsccccccccc" />
|
||||||
|
<path
|
||||||
|
class="cls-3"
|
||||||
|
d="M 417.99641,334.41296 V 160.19985 c 0.006,-7.98949 -4.344,-15.37469 -11.41032,-19.37135 L 252.46982,53.743468 c -7.06012,-3.993172 -15.76052,-3.993172 -22.82064,0 L 75.543897,140.85002 c -7.069649,3.99341 -11.42097,11.38068 -11.41032,19.37136 v 174.19158 c -0.01065,7.99069 4.340671,15.37793 11.41032,19.37136 l 154.105283,87.10654 c 7.06012,3.99319 15.76052,3.99319 22.82064,0 l 154.11627,-87.10654 c 7.06632,-3.99667 11.41642,-11.38187 11.41032,-19.37136 z"
|
||||||
|
id="path5062"
|
||||||
|
sodipodi:nodetypes="ccccccccccccc" />
|
||||||
|
<path
|
||||||
|
class="cls-4"
|
||||||
|
d="M 391.36133,321.06824 V 173.63066 c 4.2e-4,-6.75802 -3.68327,-13.00246 -9.66249,-16.37957 L 251.23865,83.44622 c -5.97517,-3.379918 -13.33884,-3.379918 -19.31401,0 l -130.46019,73.74031 c -5.979224,3.37708 -9.662907,9.62155 -9.662495,16.37956 v 147.50215 c -4.12e-4,6.75801 3.683271,13.00248 9.662495,16.37956 l 130.46019,73.7403 c 5.97517,3.37993 13.33884,3.37993 19.31401,0 l 130.46019,-73.76181 c 5.97243,-3.37325 9.65506,-9.60773 9.66249,-16.35805 z"
|
||||||
|
id="path5064"
|
||||||
|
sodipodi:nodetypes="ccccccccccccc" />
|
||||||
|
<rect
|
||||||
|
class="cls-5"
|
||||||
|
x="135.85"
|
||||||
|
y="150.02"
|
||||||
|
width="211.62"
|
||||||
|
height="192.56"
|
||||||
|
id="rect5066" />
|
||||||
|
<g
|
||||||
|
class="cls-6"
|
||||||
|
mask="url(#mask)"
|
||||||
|
id="g5070">
|
||||||
|
<path
|
||||||
|
class="cls-7"
|
||||||
|
d="M402.15,157.36l-4.49-8.19a25.37,25.37,0,0,0-10.06-10L257,67.73a25.32,25.32,0,0,0-24.8.28L108.29,139.56a25.33,25.33,0,0,0-12.65,21.93V309.78a50.71,50.71,0,0,0,4.12,20l3.78,8.76L92.9,332.7s-12.66-6.54-12.66-19.3V151.52s-1.15-11.33,10.38-18L230.81,52.6s10.26-6.06,20.76,0l140.2,80.94S405,138.84,402.15,157.36Z"
|
||||||
|
id="path5068" />
|
||||||
|
</g>
|
||||||
|
<polygon
|
||||||
|
class="cls-8"
|
||||||
|
points="237.48 240.97 350.68 111.27 398.9 137.97 237.48 240.97"
|
||||||
|
id="polygon5072" />
|
||||||
|
<polygon
|
||||||
|
class="cls-8"
|
||||||
|
points="237.48 240.97 302.39 81.94 252.57 54.07 237.48 240.97"
|
||||||
|
id="polygon5074" />
|
||||||
|
<polygon
|
||||||
|
class="cls-8"
|
||||||
|
points="237.48 240.97 297.54 384.2 250.3 412.61 237.48 240.97"
|
||||||
|
id="polygon5076" />
|
||||||
|
<polygon
|
||||||
|
class="cls-8"
|
||||||
|
points="237.48 240.97 347.07 357.05 396.12 327.83 237.48 240.97"
|
||||||
|
id="polygon5078" />
|
||||||
|
<polygon
|
||||||
|
class="cls-8"
|
||||||
|
points="237.13 241.61 81.41 202.69 80.84 147.56 237.13 241.61"
|
||||||
|
id="polygon5080" />
|
||||||
|
<polygon
|
||||||
|
class="cls-8"
|
||||||
|
points="237.48 240.97 80.21 259.71 80.98 316.8 237.48 240.97"
|
||||||
|
id="polygon5082" />
|
||||||
|
<polygon
|
||||||
|
class="cls-8"
|
||||||
|
points="129.67 111.27 237.48 240.97 191.79 75.13 129.67 111.27"
|
||||||
|
id="polygon5084" />
|
||||||
|
<polygon
|
||||||
|
class="cls-8"
|
||||||
|
points="237.48 240.97 402.62 194.24 402.62 266.82 237.48 240.97"
|
||||||
|
id="polygon5086" />
|
||||||
|
<polygon
|
||||||
|
class="cls-8"
|
||||||
|
points="237.48 240.97 110.01 342.58 186.92 386.98 237.48 240.97"
|
||||||
|
id="polygon5088" />
|
||||||
|
<path
|
||||||
|
class="cls-9"
|
||||||
|
d="m 69.157196,372.80053 26.887906,63.54883 c 1.290348,3.04786 4.324818,5.03826 7.694818,5.04732 h 268.7581 c 3.26795,-0.004 6.23462,-1.86971 7.5959,-4.77827 l 29.62506,-63.54882 c 2.51819,-5.41315 -1.52025,-11.56396 -7.59589,-11.56902 H 76.874002 c -5.947397,0.004 -9.98621,5.91797 -7.716806,11.29996 z"
|
||||||
|
id="path5090"
|
||||||
|
sodipodi:nodetypes="ccccccccc" />
|
||||||
|
<path
|
||||||
|
class="cls-10"
|
||||||
|
d="m 157.12,379.25765 4.91368,9.90091 c 0.29233,0.79077 1.05382,1.32206 1.91272,1.33448 l 10.66282,1.60351 c 2.21721,0.36548 3.02783,3.07272 1.36308,4.55227 l -7.69482,7.75932 c -0.59316,0.6584 -0.88687,1.52492 -0.81345,2.3999 l 1.91271,10.97711 c 0.27482,2.15236 -1.91271,3.74513 -3.5616,2.66893 l -9.56357,-5.07961 c -0.79402,-0.26895 -1.65732,-0.26895 -2.45135,0 l -9.56356,5.07961 c -1.87374,1.12636 -4.17822,-0.60586 -3.55061,-2.66893 l 1.91272,-10.97711 c 0.24233,-0.88946 -0.0824,-1.83457 -0.82445,-2.3999 l -7.8817,-8.00683 c -1.67119,-1.39905 -0.82338,-4.07648 1.36309,-4.30476 l 10.66282,-1.60351 c 0.85889,-0.0125 1.62038,-0.54371 1.91271,-1.33448 l 4.9137,-9.90091 c 0.60091,-2.20436 3.79612,-2.20436 4.39703,0 z"
|
||||||
|
id="path5092"
|
||||||
|
sodipodi:nodetypes="cccccccccccccccccccccc" />
|
||||||
|
<path
|
||||||
|
class="cls-10"
|
||||||
|
d="m 236.02489,379.25765 4.91369,9.90091 c 0.29233,0.79077 1.05381,1.32206 1.91271,1.33448 l 10.66282,1.60351 c 2.2172,0.36548 3.02783,3.07272 1.36308,4.55227 l -7.69481,7.75932 c -0.59714,0.6567 -0.89488,1.5234 -0.82445,2.3999 l 1.91271,10.97711 c 0.27482,2.15236 -1.91271,3.74513 -3.55061,2.66893 l -9.56356,-5.07961 c -0.7978,-0.26894 -1.66455,-0.26894 -2.46234,0 l -9.56357,5.07961 c -1.87374,1.12636 -4.17822,-0.60586 -3.55061,-2.66893 l 1.91272,-10.97711 c 0.24785,-0.88738 -0.0729,-1.83364 -0.81345,-2.3999 l -7.8817,-8.00683 c -1.67119,-1.39905 -0.82339,-4.07648 1.36308,-4.30476 l 10.66283,-1.60351 c 0.85889,-0.0125 1.62038,-0.54371 1.9127,-1.33448 l 4.9137,-9.90091 c 0.60091,-2.20436 3.79613,-2.20436 4.39704,0 z"
|
||||||
|
id="path5094"
|
||||||
|
sodipodi:nodetypes="cccccccccccccccccccccc" />
|
||||||
|
<path
|
||||||
|
class="cls-10"
|
||||||
|
d="m 314.91879,379.25765 4.92468,9.90091 c 0.28967,0.79274 1.05278,1.32516 1.91271,1.33448 l 10.65183,1.60351 c 2.22176,0.35841 3.03998,3.06915 1.37408,4.55227 l -7.69482,7.75932 c -0.59713,0.6567 -0.89487,1.5234 -0.82445,2.3999 l 1.91271,10.97711 c 0.27482,2.15236 -1.91271,3.74513 -3.55061,2.66893 l -9.56356,-5.07961 c -0.79779,-0.26894 -1.66454,-0.26894 -2.46235,0 l -9.56356,5.07961 c -1.87374,1.12636 -4.17822,-0.60586 -3.55061,-2.66893 l 1.91272,-10.97711 c 0.24852,-0.88966 -0.0773,-1.83809 -0.82444,-2.3999 l -7.8817,-8.00683 c -1.6733,-1.4026 -0.81723,-4.08449 1.37407,-4.30476 l 10.65184,-1.60351 c 0.85992,-0.009 1.62303,-0.54174 1.9127,-1.33448 l 4.9247,-9.90091 c 0.60091,-2.20436 3.79612,-2.20436 4.39703,0 z"
|
||||||
|
id="path5096"
|
||||||
|
sodipodi:nodetypes="cccccccccccccccccccccc" />
|
||||||
|
<path
|
||||||
|
class="cls-11"
|
||||||
|
d="m 148.99646,192.72222 c 0.005,25.26903 17.34564,47.38481 42.2763,53.91993 24.93047,6.53506 51.23392,-4.14026 64.13683,-26.02479 12.9029,-21.88456 9.1887,-49.52279 -9.06114,-67.38886 -18.24996,-17.86617 -46.48438,-21.50463 -68.83718,-8.8701 -17.64531,9.9788 -28.51444,28.41388 -28.51481,48.36382 z"
|
||||||
|
id="path5098"
|
||||||
|
sodipodi:nodetypes="cssscc" />
|
||||||
|
<path
|
||||||
|
class="cls-11"
|
||||||
|
d="m 206.01508,267.16206 c 15.18707,0.007 30.02503,-4.45928 42.58534,-12.81738 v 73.50354 H 126.52758 c -10.7386,0.0165 -18.49353,-10.05441 -15.52156,-20.15697 6.33175,-21.31928 21.67742,-47.58899 47.49904,-56.87648 13.47288,10.56712 30.22473,16.31858 47.48804,16.30424 z m 153.1819,-35.80474 h -87.99577 c -2.97893,0 -5.21049,2.61514 -5.87005,5.56387 -0.14053,0.59278 -0.21061,1.19948 -0.20886,1.80801 v 96.46936 c 0,3.77742 1.47301,5.72531 3.4297,6.60779 2.3819,0.85066 4.99411,0.85066 7.37603,0 0.49466,-0.16141 0.97834,-0.33362 1.45102,-0.53809 l 32.16435,-14.23795 c 2.34781,-0.91405 4.88019,-1.28242 7.39802,-1.07618 1.51043,0.1045 2.99445,0.44231 4.39704,1.00085 l 34.25295,14.86214 c 3.23182,1.42056 10.45396,0.76407 10.45396,-7.53331 V 238.7292 c 0,-3.59469 -3.23183,-7.37188 -6.88137,-7.37188 z m -27.60242,74.94563 -14.65314,-7.53329 -2.19852,-1.13001 -15.38964,8.37273 -1.24217,0.67801 0.46169,-2.99181 2.53929,-15.80918 -13.69678,-13.151 18.68743,-2.94876 8.18948,-17.21897 2.64922,5.27331 5.89204,11.73042 18.74239,2.55058 -13.38899,13.44158 z"
|
||||||
|
id="path5100"
|
||||||
|
sodipodi:nodetypes="cccccccccsccscccccccssccccccccccccccccc" />
|
||||||
|
<rect
|
||||||
|
class="cls-5"
|
||||||
|
x="126.17"
|
||||||
|
y="135.11"
|
||||||
|
width="227.2"
|
||||||
|
height="184.81"
|
||||||
|
id="rect5102" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 26 KiB |
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 484.83 484.83"><defs><style>.cls-1{fill:#cd9427;}.cls-12,.cls-2{fill:none;}.cls-3{isolation:isolate;}.cls-4{fill:#60ba76;}.cls-5{fill:#56b769;}.cls-6,.cls-7,.cls-8{opacity:0.41;}.cls-6{fill:url(#未命名的渐变_16);}.cls-7{fill:url(#未命名的渐变_16-2);}.cls-8{fill:url(#未命名的渐变_16-3);}.cls-9{fill:#6b7;}.cls-10,.cls-12{stroke-miterlimit:10;}.cls-10{stroke-width:0.64px;fill:url(#未命名的渐变_32);stroke:url(#未命名的渐变_16-4);}.cls-11{fill:url(#未命名的渐变_33);}.cls-12{stroke:#fff;stroke-width:0.6px;}.cls-13,.cls-36{mix-blend-mode:multiply;}.cls-13{opacity:0.6;}.cls-14{clip-path:url(#clip-path);}.cls-15{clip-path:url(#clip-path-2);}.cls-16{clip-path:url(#clip-path-3);}.cls-17{clip-path:url(#clip-path-4);}.cls-18{clip-path:url(#clip-path-5);}.cls-19{clip-path:url(#clip-path-6);}.cls-20{clip-path:url(#clip-path-7);}.cls-21{fill:#828282;}.cls-22{clip-path:url(#clip-path-8);}.cls-23{clip-path:url(#clip-path-9);}.cls-24{clip-path:url(#clip-path-10);}.cls-25{clip-path:url(#clip-path-11);}.cls-26{clip-path:url(#clip-path-12);}.cls-27{clip-path:url(#clip-path-13);}.cls-28{clip-path:url(#clip-path-14);}.cls-29{clip-path:url(#clip-path-15);}.cls-30{clip-path:url(#clip-path-16);}.cls-31{clip-path:url(#clip-path-17);}.cls-32{fill:#aaa;}.cls-33{clip-path:url(#clip-path-18);}.cls-34{clip-path:url(#clip-path-19);}.cls-35{clip-path:url(#clip-path-20);}.cls-36{opacity:0.4;}.cls-37{clip-path:url(#clip-path-21);}.cls-38{fill:#9f9fa0;}.cls-39{fill:#a3a3a4;}.cls-40{fill:#a7a8a8;}.cls-41{clip-path:url(#clip-path-22);}.cls-42{fill:#a3a3a3;}.cls-43{clip-path:url(#clip-path-23);}.cls-44{fill:#b7b8b8;}.cls-45{clip-path:url(#clip-path-24);}.cls-46{fill:#abacac;}.cls-47{fill:#afb0b0;}.cls-48{fill:#b3b4b4;}.cls-49{clip-path:url(#clip-path-25);}.cls-50{fill:#858585;}.cls-51{clip-path:url(#clip-path-26);}.cls-52{fill:#a3a4a4;}.cls-53{fill:#9a9b9b;}.cls-54{clip-path:url(#clip-path-27);}.cls-55{fill:#a1a1a1;}.cls-56{fill:#b5b6b6;}.cls-57{clip-path:url(#clip-path-28);}.cls-58{clip-path:url(#clip-path-29);}.cls-59{fill:gray;}.cls-60{clip-path:url(#clip-path-30);}.cls-61{clip-path:url(#clip-path-31);}.cls-62{clip-path:url(#clip-path-32);}.cls-63{clip-path:url(#clip-path-33);}.cls-64{clip-path:url(#clip-path-34);}.cls-65{clip-path:url(#clip-path-35);}.cls-66{clip-path:url(#clip-path-36);}.cls-67{fill:#9e9e9e;}.cls-68{fill:#999;}.cls-69{fill:#949494;}.cls-70{fill:#8f8f8f;}.cls-71{fill:#8a8a8a;}.cls-72{fill:#ababac;}.cls-73{clip-path:url(#clip-path-37);}.cls-74{clip-path:url(#clip-path-38);}.cls-75{clip-path:url(#clip-path-39);}.cls-76{fill:#9d9d9d;}.cls-77{clip-path:url(#clip-path-40);}.cls-78{clip-path:url(#clip-path-41);}.cls-79{clip-path:url(#clip-path-42);}.cls-80{clip-path:url(#clip-path-43);}.cls-81{clip-path:url(#clip-path-44);}.cls-82{clip-path:url(#clip-path-45);}.cls-83{clip-path:url(#clip-path-46);}.cls-84{fill:#b2b3b3;}.cls-85{clip-path:url(#clip-path-47);}.cls-86{fill:#e2e3e3;}.cls-87{fill:#dedede;}.cls-88{clip-path:url(#clip-path-48);}.cls-89{clip-path:url(#clip-path-49);}.cls-90{clip-path:url(#clip-path-50);}.cls-91{clip-path:url(#clip-path-51);}.cls-92{clip-path:url(#clip-path-52);}.cls-93{clip-path:url(#clip-path-53);}.cls-94{clip-path:url(#clip-path-54);}.cls-95{clip-path:url(#clip-path-55);}.cls-96{clip-path:url(#clip-path-56);}.cls-97{clip-path:url(#clip-path-57);}.cls-98{clip-path:url(#clip-path-58);}.cls-99{clip-path:url(#clip-path-59);}.cls-100{clip-path:url(#clip-path-60);}.cls-101{clip-path:url(#clip-path-61);}.cls-102{clip-path:url(#clip-path-62);}.cls-103{clip-path:url(#clip-path-63);}.cls-104{clip-path:url(#clip-path-64);}.cls-105{clip-path:url(#clip-path-65);}.cls-106{clip-path:url(#clip-path-66);}.cls-107{clip-path:url(#clip-path-67);}.cls-108{clip-path:url(#clip-path-68);}.cls-109{clip-path:url(#clip-path-69);}.cls-110{clip-path:url(#clip-path-70);}.cls-111{clip-path:url(#clip-path-71);}.cls-112{clip-path:url(#clip-path-72);}.cls-113{clip-path:url(#clip-path-73);}.cls-114{clip-path:url(#clip-path-74);}.cls-115{clip-path:url(#clip-path-75);}.cls-116{clip-path:url(#clip-path-76);}.cls-117{clip-path:url(#clip-path-77);}.cls-118{clip-path:url(#clip-path-78);}.cls-119{clip-path:url(#clip-path-79);}.cls-120{clip-path:url(#clip-path-80);}.cls-121{clip-path:url(#clip-path-81);}.cls-122{clip-path:url(#clip-path-82);}.cls-123{clip-path:url(#clip-path-83);}.cls-124{clip-path:url(#clip-path-84);}.cls-125{clip-path:url(#clip-path-85);}.cls-126{clip-path:url(#clip-path-86);}.cls-127{clip-path:url(#clip-path-87);}.cls-128{clip-path:url(#clip-path-88);}.cls-129{clip-path:url(#clip-path-89);}.cls-130{clip-path:url(#clip-path-90);}.cls-131{clip-path:url(#clip-path-91);}.cls-132{clip-path:url(#clip-path-92);}.cls-133{clip-path:url(#clip-path-93);}.cls-134{clip-path:url(#clip-path-94);}.cls-135{clip-path:url(#clip-path-95);}.cls-136{clip-path:url(#clip-path-96);}.cls-137{clip-path:url(#clip-path-97);}.cLine truncated
|
||||||
|
After Width: | Height: | Size: 119 KiB |
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 484.83 484.83"><defs><style>.cls-1{fill:#d51a19;}.cls-15,.cls-2{fill:none;}.cls-3{isolation:isolate;}.cls-4{fill:#f2913f;}.cls-5{fill:#e8541f;}.cls-6{fill:#eb5d30;}.cls-7{fill:#ea9a28;}.cls-8{fill:url(#未命名的渐变_47);}.cls-9{fill:url(#未命名的渐变_47-2);}.cls-10{fill:url(#未命名的渐变_47-3);}.cls-11{fill:url(#未命名的渐变_47-4);}.cls-12{fill:url(#未命名的渐变_52);}.cls-13{fill:url(#未命名的渐变_52-2);}.cls-14{fill:#f6b65d;}.cls-15{stroke:#fff;stroke-miterlimit:10;stroke-width:0.55px;}.cls-146,.cls-16,.cls-218,.cls-31{mix-blend-mode:multiply;}.cls-16{opacity:0.6;}.cls-17{clip-path:url(#clip-path);}.cls-18{clip-path:url(#clip-path-2);}.cls-19{clip-path:url(#clip-path-3);}.cls-20{clip-path:url(#clip-path-4);}.cls-21{clip-path:url(#clip-path-5);}.cls-22{fill:#878787;}.cls-23{clip-path:url(#clip-path-6);}.cls-24{clip-path:url(#clip-path-7);}.cls-25{clip-path:url(#clip-path-8);}.cls-26{clip-path:url(#clip-path-9);}.cls-27{clip-path:url(#clip-path-10);}.cls-28{clip-path:url(#clip-path-11);}.cls-29{fill:url(#未命名的渐变_59);}.cls-30{clip-path:url(#clip-path-12);}.cls-31{opacity:0.4;}.cls-32{clip-path:url(#clip-path-13);}.cls-33{fill:#9f9fa0;}.cls-34{fill:#a3a3a4;}.cls-35{fill:#a7a8a8;}.cls-36{clip-path:url(#clip-path-14);}.cls-37{fill:#a3a3a3;}.cls-38{clip-path:url(#clip-path-15);}.cls-39{fill:#b7b8b8;}.cls-40{clip-path:url(#clip-path-16);}.cls-41{fill:#abacac;}.cls-42{fill:#afb0b0;}.cls-43{fill:#b3b4b4;}.cls-44{clip-path:url(#clip-path-17);}.cls-45{fill:#858585;}.cls-46{clip-path:url(#clip-path-18);}.cls-47{fill:#a3a4a4;}.cls-48{fill:#9a9b9b;}.cls-49{clip-path:url(#clip-path-19);}.cls-50{fill:#a1a1a1;}.cls-51{fill:#b5b6b6;}.cls-52{clip-path:url(#clip-path-20);}.cls-53{clip-path:url(#clip-path-21);}.cls-54{fill:gray;}.cls-55{clip-path:url(#clip-path-22);}.cls-56{clip-path:url(#clip-path-23);}.cls-57{clip-path:url(#clip-path-24);}.cls-58{clip-path:url(#clip-path-25);}.cls-59{clip-path:url(#clip-path-26);}.cls-60{clip-path:url(#clip-path-27);}.cls-61{clip-path:url(#clip-path-28);}.cls-62{fill:#9e9e9e;}.cls-63{fill:#999;}.cls-64{fill:#949494;}.cls-65{fill:#8f8f8f;}.cls-66{fill:#8a8a8a;}.cls-67{fill:#ababac;}.cls-68{clip-path:url(#clip-path-29);}.cls-69{clip-path:url(#clip-path-30);}.cls-70{clip-path:url(#clip-path-31);}.cls-71{fill:#828282;}.cls-72{clip-path:url(#clip-path-32);}.cls-73{clip-path:url(#clip-path-33);}.cls-74{fill:#9d9d9d;}.cls-75{clip-path:url(#clip-path-34);}.cls-76{clip-path:url(#clip-path-35);}.cls-77{clip-path:url(#clip-path-36);}.cls-78{clip-path:url(#clip-path-37);}.cls-79{clip-path:url(#clip-path-38);}.cls-80{clip-path:url(#clip-path-39);}.cls-81{fill:#b2b3b3;}.cls-82{clip-path:url(#clip-path-40);}.cls-83{clip-path:url(#clip-path-41);}.cls-84{fill:#e2e3e3;}.cls-85{fill:#dedede;}.cls-86{clip-path:url(#clip-path-42);}.cls-87{clip-path:url(#clip-path-43);}.cls-88{clip-path:url(#clip-path-44);}.cls-89{clip-path:url(#clip-path-45);}.cls-90{clip-path:url(#clip-path-46);}.cls-91{clip-path:url(#clip-path-47);}.cls-92{clip-path:url(#clip-path-48);}.cls-93{clip-path:url(#clip-path-49);}.cls-94{clip-path:url(#clip-path-50);}.cls-95{clip-path:url(#clip-path-51);}.cls-96{clip-path:url(#clip-path-52);}.cls-97{clip-path:url(#clip-path-53);}.cls-98{clip-path:url(#clip-path-54);}.cls-99{clip-path:url(#clip-path-55);}.cls-100{clip-path:url(#clip-path-56);}.cls-101{clip-path:url(#clip-path-57);}.cls-102{clip-path:url(#clip-path-58);}.cls-103{clip-path:url(#clip-path-59);}.cls-104{clip-path:url(#clip-path-60);}.cls-105{clip-path:url(#clip-path-61);}.cls-106{clip-path:url(#clip-path-62);}.cls-107{clip-path:url(#clip-path-63);}.cls-108{clip-path:url(#clip-path-64);}.cls-109{clip-path:url(#clip-path-65);}.cls-110{clip-path:url(#clip-path-66);}.cls-111{clip-path:url(#clip-path-67);}.cls-112{clip-path:url(#clip-path-68);}.cls-113{clip-path:url(#clip-path-69);}.cls-114{clip-path:url(#clip-path-70);}.cls-115{clip-path:url(#clip-path-71);}.cls-116{clip-path:url(#clip-path-72);}.cls-117{clip-path:url(#clip-path-73);}.cls-118{clip-path:url(#clip-path-74);}.cls-119{clip-path:url(#clip-path-75);}.cls-120{clip-path:url(#clip-path-76);}.cls-121{clip-path:url(#clip-path-77);}.cls-122{clip-path:url(#clip-path-78);}.cls-123{clip-path:url(#clip-path-79);}.cls-124{clip-path:url(#clip-path-80);}.cls-125{clip-path:url(#clip-path-81);}.cls-126{clip-path:url(#clip-path-82);}.cls-127{clip-path:url(#clip-path-83);}.cls-128{clip-path:url(#clip-path-84);}.cls-129{clip-path:url(#clip-path-85);}.cls-130{clip-path:url(#clip-path-86);}.cls-131{clip-path:url(#clip-path-87);}.cls-132{clip-path:url(#clip-path-88);}.cls-133{clip-path:url(#clip-path-89);}.cls-134{clip-path:url(#clip-path-90);}.cls-135{clip-path:url(#clip-path-91);}.cls-136{clip-path:url(#clip-path-92);}.cls-137{clip-path:url(#clip-path-93);}.cls-138{clip-path:url(#clip-path-94);}.cls-139{clip-path:url(#clip-path-95);}.cls-140{clip-path:url(#clipLine truncated
|
||||||
|
After Width: | Height: | Size: 164 KiB |
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 484.83 484.83"><defs><style>.cls-1{fill:none;}.cls-2{isolation:isolate;}.cls-3{fill:#41a1db;}.cls-4{fill:url(#未命名的渐变_64);}.cls-5{fill:url(#未命名的渐变_64-2);}.cls-6{fill:url(#未命名的渐变_64-3);}.cls-7{fill:url(#未命名的渐变_68);}.cls-8{fill:url(#未命名的渐变_64-4);}.cls-9{fill:url(#未命名的渐变_64-5);}.cls-10{fill:url(#未命名的渐变_64-6);}.cls-11{fill:url(#未命名的渐变_64-7);}.cls-12{fill:#5ac4ec;}.cls-125,.cls-13{mix-blend-mode:multiply;}.cls-13{opacity:0.4;}.cls-14{clip-path:url(#clip-path);}.cls-15{fill:#9f9fa0;}.cls-16{fill:#a3a3a4;}.cls-17{fill:#a7a8a8;}.cls-18{clip-path:url(#clip-path-2);}.cls-19{fill:#a3a3a3;}.cls-20{clip-path:url(#clip-path-3);}.cls-21{fill:#b7b8b8;}.cls-22{clip-path:url(#clip-path-4);}.cls-23{fill:#abacac;}.cls-24{fill:#afb0b0;}.cls-25{fill:#b3b4b4;}.cls-26{clip-path:url(#clip-path-5);}.cls-27{fill:#858585;}.cls-28{clip-path:url(#clip-path-6);}.cls-29{fill:#a3a4a4;}.cls-30{fill:#9a9b9b;}.cls-31{clip-path:url(#clip-path-7);}.cls-32{fill:#a1a1a1;}.cls-33{fill:#b5b6b6;}.cls-34{clip-path:url(#clip-path-8);}.cls-35{clip-path:url(#clip-path-9);}.cls-36{fill:gray;}.cls-37{clip-path:url(#clip-path-10);}.cls-38{clip-path:url(#clip-path-11);}.cls-39{clip-path:url(#clip-path-12);}.cls-40{clip-path:url(#clip-path-13);}.cls-41{clip-path:url(#clip-path-14);}.cls-42{clip-path:url(#clip-path-15);}.cls-43{fill:#9e9e9e;}.cls-44{fill:#999;}.cls-45{fill:#949494;}.cls-46{fill:#8f8f8f;}.cls-47{fill:#8a8a8a;}.cls-48{fill:#ababac;}.cls-49{clip-path:url(#clip-path-16);}.cls-50{clip-path:url(#clip-path-17);}.cls-51{clip-path:url(#clip-path-18);}.cls-52{fill:#828282;}.cls-53{fill:#9d9d9d;}.cls-54{clip-path:url(#clip-path-19);}.cls-55{clip-path:url(#clip-path-20);}.cls-56{clip-path:url(#clip-path-21);}.cls-57{clip-path:url(#clip-path-22);}.cls-58{clip-path:url(#clip-path-23);}.cls-59{clip-path:url(#clip-path-24);}.cls-60{fill:#b2b3b3;}.cls-61{clip-path:url(#clip-path-25);}.cls-62{clip-path:url(#clip-path-26);}.cls-63{fill:#dedede;}.cls-64{clip-path:url(#clip-path-27);}.cls-65{clip-path:url(#clip-path-28);}.cls-66{fill:#e2e3e3;}.cls-67{clip-path:url(#clip-path-29);}.cls-68{clip-path:url(#clip-path-30);}.cls-69{clip-path:url(#clip-path-31);}.cls-70{clip-path:url(#clip-path-32);}.cls-71{clip-path:url(#clip-path-33);}.cls-72{clip-path:url(#clip-path-34);}.cls-73{clip-path:url(#clip-path-35);}.cls-74{clip-path:url(#clip-path-36);}.cls-75{clip-path:url(#clip-path-37);}.cls-76{clip-path:url(#clip-path-38);}.cls-77{clip-path:url(#clip-path-39);}.cls-78{clip-path:url(#clip-path-40);}.cls-79{clip-path:url(#clip-path-41);}.cls-80{clip-path:url(#clip-path-42);}.cls-81{clip-path:url(#clip-path-43);}.cls-82{clip-path:url(#clip-path-44);}.cls-83{clip-path:url(#clip-path-45);}.cls-84{clip-path:url(#clip-path-46);}.cls-85{clip-path:url(#clip-path-47);}.cls-86{clip-path:url(#clip-path-48);}.cls-87{clip-path:url(#clip-path-49);}.cls-88{clip-path:url(#clip-path-50);}.cls-89{clip-path:url(#clip-path-51);}.cls-90{clip-path:url(#clip-path-52);}.cls-91{clip-path:url(#clip-path-53);}.cls-92{clip-path:url(#clip-path-54);}.cls-93{clip-path:url(#clip-path-55);}.cls-94{clip-path:url(#clip-path-56);}.cls-95{clip-path:url(#clip-path-57);}.cls-96{clip-path:url(#clip-path-58);}.cls-97{clip-path:url(#clip-path-59);}.cls-98{clip-path:url(#clip-path-60);}.cls-99{clip-path:url(#clip-path-61);}.cls-100{clip-path:url(#clip-path-62);}.cls-101{clip-path:url(#clip-path-63);}.cls-102{clip-path:url(#clip-path-64);}.cls-103{clip-path:url(#clip-path-65);}.cls-104{clip-path:url(#clip-path-66);}.cls-105{clip-path:url(#clip-path-67);}.cls-106{clip-path:url(#clip-path-68);}.cls-107{clip-path:url(#clip-path-69);}.cls-108{clip-path:url(#clip-path-70);}.cls-109{clip-path:url(#clip-path-71);}.cls-110{clip-path:url(#clip-path-72);}.cls-111{clip-path:url(#clip-path-73);}.cls-112{clip-path:url(#clip-path-74);}.cls-113{clip-path:url(#clip-path-75);}.cls-114{clip-path:url(#clip-path-76);}.cls-115{clip-path:url(#clip-path-77);}.cls-116{clip-path:url(#clip-path-78);}.cls-117{clip-path:url(#clip-path-79);}.cls-118{clip-path:url(#clip-path-80);}.cls-119{clip-path:url(#clip-path-81);}.cls-120{clip-path:url(#clip-path-82);}.cls-121{clip-path:url(#clip-path-83);}.cls-122{clip-path:url(#clip-path-84);}.cls-123{clip-path:url(#clip-path-85);}.cls-124{clip-path:url(#clip-path-86);}.cls-125{opacity:0.66;}.cls-126{clip-path:url(#clip-path-87);}.cls-127{fill:#9d6611;}.cls-128{clip-path:url(#clip-path-88);}.cls-129{fill:#b17419;}.cls-130{fill:#b5761b;}.cls-131{fill:#b9791c;}.cls-132{fill:#bd7c1d;}.cls-133{fill:#99630e;}.cls-134{clip-path:url(#clip-path-89);}.cls-135{fill:#bc7b1d;}.cls-136{fill:#aa6f16;}.cls-137{fill:#d78d25;}.cls-138{clip-path:url(#clip-path-90);}.cls-139{fill:#c17e1e;}.cls-140{fill:#c48120;}.cls-141{fill:#ad7118;}.cls-142{fill:#a96e16;}.cls-143{fill:#a56b14;}.cls-144{clip-path:url(#clip-path-91);}.cls-145{fill:#a1Line truncated
|
||||||
|
After Width: | Height: | Size: 96 KiB |
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 484.83 484.83"><defs><style>.cls-1,.cls-14{fill:none;}.cls-2{isolation:isolate;}.cls-3{fill:#f2913f;}.cls-4{fill:url(#未命名的渐变_64);}.cls-5{fill:url(#未命名的渐变_64-2);}.cls-6{fill:#ea9a28;}.cls-7{fill:url(#未命名的渐变_47);}.cls-8{fill:url(#未命名的渐变_47-2);}.cls-9{fill:url(#未命名的渐变_47-3);}.cls-10{fill:url(#未命名的渐变_47-4);}.cls-11{fill:url(#未命名的渐变_52);}.cls-12{fill:url(#未命名的渐变_52-2);}.cls-13{fill:#f6b65d;}.cls-14{stroke:#fff;stroke-miterlimit:10;stroke-width:0.55px;}.cls-15{fill:#878787;}.cls-124,.cls-130,.cls-154,.cls-16{mix-blend-mode:multiply;}.cls-16{opacity:0.4;}.cls-17{clip-path:url(#clip-path);}.cls-18{fill:#9f9fa0;}.cls-19{fill:#a3a3a4;}.cls-20{fill:#a7a8a8;}.cls-21{clip-path:url(#clip-path-2);}.cls-22{fill:#a3a3a3;}.cls-23{clip-path:url(#clip-path-3);}.cls-24{fill:#b7b8b8;}.cls-25{clip-path:url(#clip-path-4);}.cls-26{fill:#abacac;}.cls-27{fill:#afb0b0;}.cls-28{fill:#b3b4b4;}.cls-29{clip-path:url(#clip-path-5);}.cls-30{fill:#858585;}.cls-31{clip-path:url(#clip-path-6);}.cls-32{fill:#a3a4a4;}.cls-33{fill:#9a9b9b;}.cls-34{clip-path:url(#clip-path-7);}.cls-35{fill:#a1a1a1;}.cls-36{fill:#b5b6b6;}.cls-37{clip-path:url(#clip-path-8);}.cls-38{clip-path:url(#clip-path-9);}.cls-39{fill:gray;}.cls-40{clip-path:url(#clip-path-10);}.cls-41{clip-path:url(#clip-path-11);}.cls-42{clip-path:url(#clip-path-12);}.cls-43{clip-path:url(#clip-path-13);}.cls-44{clip-path:url(#clip-path-14);}.cls-45{clip-path:url(#clip-path-15);}.cls-46{fill:#9e9e9e;}.cls-47{fill:#999;}.cls-48{fill:#949494;}.cls-49{fill:#8f8f8f;}.cls-50{fill:#8a8a8a;}.cls-51{fill:#ababac;}.cls-52{clip-path:url(#clip-path-16);}.cls-53{clip-path:url(#clip-path-17);}.cls-54{fill:#828282;}.cls-55{clip-path:url(#clip-path-18);}.cls-56{fill:#9d9d9d;}.cls-57{clip-path:url(#clip-path-19);}.cls-58{clip-path:url(#clip-path-20);}.cls-59{clip-path:url(#clip-path-21);}.cls-60{clip-path:url(#clip-path-22);}.cls-61{clip-path:url(#clip-path-23);}.cls-62{clip-path:url(#clip-path-24);}.cls-63{fill:#b2b3b3;}.cls-64{clip-path:url(#clip-path-25);}.cls-65{clip-path:url(#clip-path-26);}.cls-66{clip-path:url(#clip-path-27);}.cls-67{fill:#e2e3e3;}.cls-68{fill:#dedede;}.cls-69{clip-path:url(#clip-path-28);}.cls-70{clip-path:url(#clip-path-29);}.cls-71{clip-path:url(#clip-path-30);}.cls-72{clip-path:url(#clip-path-31);}.cls-73{clip-path:url(#clip-path-32);}.cls-74{clip-path:url(#clip-path-33);}.cls-75{clip-path:url(#clip-path-34);}.cls-76{clip-path:url(#clip-path-35);}.cls-77{clip-path:url(#clip-path-36);}.cls-78{clip-path:url(#clip-path-37);}.cls-79{clip-path:url(#clip-path-38);}.cls-80{clip-path:url(#clip-path-39);}.cls-81{clip-path:url(#clip-path-40);}.cls-82{clip-path:url(#clip-path-41);}.cls-83{clip-path:url(#clip-path-42);}.cls-84{clip-path:url(#clip-path-43);}.cls-85{clip-path:url(#clip-path-44);}.cls-86{clip-path:url(#clip-path-45);}.cls-87{clip-path:url(#clip-path-46);}.cls-88{clip-path:url(#clip-path-47);}.cls-89{clip-path:url(#clip-path-48);}.cls-90{clip-path:url(#clip-path-49);}.cls-91{clip-path:url(#clip-path-50);}.cls-92{clip-path:url(#clip-path-51);}.cls-93{clip-path:url(#clip-path-52);}.cls-94{clip-path:url(#clip-path-53);}.cls-95{clip-path:url(#clip-path-54);}.cls-96{clip-path:url(#clip-path-55);}.cls-97{clip-path:url(#clip-path-56);}.cls-98{clip-path:url(#clip-path-57);}.cls-99{clip-path:url(#clip-path-58);}.cls-100{clip-path:url(#clip-path-59);}.cls-101{clip-path:url(#clip-path-60);}.cls-102{clip-path:url(#clip-path-61);}.cls-103{clip-path:url(#clip-path-62);}.cls-104{clip-path:url(#clip-path-63);}.cls-105{clip-path:url(#clip-path-64);}.cls-106{clip-path:url(#clip-path-65);}.cls-107{clip-path:url(#clip-path-66);}.cls-108{clip-path:url(#clip-path-67);}.cls-109{clip-path:url(#clip-path-68);}.cls-110{clip-path:url(#clip-path-69);}.cls-111{clip-path:url(#clip-path-70);}.cls-112{clip-path:url(#clip-path-71);}.cls-113{clip-path:url(#clip-path-72);}.cls-114{clip-path:url(#clip-path-73);}.cls-115{clip-path:url(#clip-path-74);}.cls-116{clip-path:url(#clip-path-75);}.cls-117{clip-path:url(#clip-path-76);}.cls-118{clip-path:url(#clip-path-77);}.cls-119{clip-path:url(#clip-path-78);}.cls-120{clip-path:url(#clip-path-79);}.cls-121{clip-path:url(#clip-path-80);}.cls-122{clip-path:url(#clip-path-81);}.cls-123{clip-path:url(#clip-path-82);}.cls-124{opacity:0.44;}.cls-125{fill:#3ea365;}.cls-126{fill:#48b46a;}.cls-127{fill:#88c892;}.cls-128{fill:#5eb974;}.cls-129{fill:#77c28a;}.cls-130{opacity:0.66;}.cls-131{clip-path:url(#clip-path-83);}.cls-132{clip-path:url(#clip-path-84);}.cls-133{fill:#919191;}.cls-134{clip-path:url(#clip-path-85);}.cls-135{fill:#888;}.cls-136{fill:#aaa;}.cls-137{clip-path:url(#clip-path-86);}.cls-138{clip-path:url(#clip-path-87);}.cls-139{clip-path:url(#clip-path-88);}.cls-140{fill:#969696;}.cls-141{fill:#8c8c8c;}.cls-142{clip-path:url(#clip-path-89);}.cls-143{clip-path:url(#clip-path-90)Line truncated
|
||||||
|
After Width: | Height: | Size: 175 KiB |
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 484.83 484.83"><defs><style>.cls-1,.cls-14{fill:none;}.cls-2{isolation:isolate;}.cls-3{fill:#f2913f;}.cls-4{fill:#e8541f;}.cls-5{fill:#eb5d30;}.cls-6{fill:#ea9a28;}.cls-7{fill:url(#未命名的渐变_47);}.cls-8{fill:url(#未命名的渐变_47-2);}.cls-9{fill:url(#未命名的渐变_47-3);}.cls-10{fill:url(#未命名的渐变_47-4);}.cls-11{fill:url(#未命名的渐变_52);}.cls-12{fill:url(#未命名的渐变_52-2);}.cls-13{fill:#f6b65d;}.cls-14{stroke:#fff;stroke-miterlimit:10;stroke-width:0.55px;}.cls-15{fill:#878787;}.cls-124,.cls-130,.cls-16,.cls-161{mix-blend-mode:multiply;}.cls-16{opacity:0.4;}.cls-17{clip-path:url(#clip-path);}.cls-18{fill:#9f9fa0;}.cls-19{fill:#a3a3a4;}.cls-20{fill:#a7a8a8;}.cls-21{clip-path:url(#clip-path-2);}.cls-22{fill:#a3a3a3;}.cls-23{clip-path:url(#clip-path-3);}.cls-24{fill:#b7b8b8;}.cls-25{clip-path:url(#clip-path-4);}.cls-26{fill:#abacac;}.cls-27{fill:#afb0b0;}.cls-28{fill:#b3b4b4;}.cls-29{clip-path:url(#clip-path-5);}.cls-30{fill:#858585;}.cls-31{clip-path:url(#clip-path-6);}.cls-32{fill:#a3a4a4;}.cls-33{fill:#9a9b9b;}.cls-34{clip-path:url(#clip-path-7);}.cls-35{fill:#a1a1a1;}.cls-36{fill:#b5b6b6;}.cls-37{clip-path:url(#clip-path-8);}.cls-38{clip-path:url(#clip-path-9);}.cls-39{fill:gray;}.cls-40{clip-path:url(#clip-path-10);}.cls-41{clip-path:url(#clip-path-11);}.cls-42{clip-path:url(#clip-path-12);}.cls-43{clip-path:url(#clip-path-13);}.cls-44{clip-path:url(#clip-path-14);}.cls-45{clip-path:url(#clip-path-15);}.cls-46{fill:#9e9e9e;}.cls-47{fill:#999;}.cls-48{fill:#949494;}.cls-49{fill:#8f8f8f;}.cls-50{fill:#8a8a8a;}.cls-51{fill:#ababac;}.cls-52{clip-path:url(#clip-path-16);}.cls-53{clip-path:url(#clip-path-17);}.cls-54{fill:#828282;}.cls-55{clip-path:url(#clip-path-18);}.cls-56{fill:#9d9d9d;}.cls-57{clip-path:url(#clip-path-19);}.cls-58{clip-path:url(#clip-path-20);}.cls-59{clip-path:url(#clip-path-21);}.cls-60{clip-path:url(#clip-path-22);}.cls-61{clip-path:url(#clip-path-23);}.cls-62{clip-path:url(#clip-path-24);}.cls-63{fill:#b2b3b3;}.cls-64{clip-path:url(#clip-path-25);}.cls-65{clip-path:url(#clip-path-26);}.cls-66{clip-path:url(#clip-path-27);}.cls-67{fill:#e2e3e3;}.cls-68{fill:#dedede;}.cls-69{clip-path:url(#clip-path-28);}.cls-70{clip-path:url(#clip-path-29);}.cls-71{clip-path:url(#clip-path-30);}.cls-72{clip-path:url(#clip-path-31);}.cls-73{clip-path:url(#clip-path-32);}.cls-74{clip-path:url(#clip-path-33);}.cls-75{clip-path:url(#clip-path-34);}.cls-76{clip-path:url(#clip-path-35);}.cls-77{clip-path:url(#clip-path-36);}.cls-78{clip-path:url(#clip-path-37);}.cls-79{clip-path:url(#clip-path-38);}.cls-80{clip-path:url(#clip-path-39);}.cls-81{clip-path:url(#clip-path-40);}.cls-82{clip-path:url(#clip-path-41);}.cls-83{clip-path:url(#clip-path-42);}.cls-84{clip-path:url(#clip-path-43);}.cls-85{clip-path:url(#clip-path-44);}.cls-86{clip-path:url(#clip-path-45);}.cls-87{clip-path:url(#clip-path-46);}.cls-88{clip-path:url(#clip-path-47);}.cls-89{clip-path:url(#clip-path-48);}.cls-90{clip-path:url(#clip-path-49);}.cls-91{clip-path:url(#clip-path-50);}.cls-92{clip-path:url(#clip-path-51);}.cls-93{clip-path:url(#clip-path-52);}.cls-94{clip-path:url(#clip-path-53);}.cls-95{clip-path:url(#clip-path-54);}.cls-96{clip-path:url(#clip-path-55);}.cls-97{clip-path:url(#clip-path-56);}.cls-98{clip-path:url(#clip-path-57);}.cls-99{clip-path:url(#clip-path-58);}.cls-100{clip-path:url(#clip-path-59);}.cls-101{clip-path:url(#clip-path-60);}.cls-102{clip-path:url(#clip-path-61);}.cls-103{clip-path:url(#clip-path-62);}.cls-104{clip-path:url(#clip-path-63);}.cls-105{clip-path:url(#clip-path-64);}.cls-106{clip-path:url(#clip-path-65);}.cls-107{clip-path:url(#clip-path-66);}.cls-108{clip-path:url(#clip-path-67);}.cls-109{clip-path:url(#clip-path-68);}.cls-110{clip-path:url(#clip-path-69);}.cls-111{clip-path:url(#clip-path-70);}.cls-112{clip-path:url(#clip-path-71);}.cls-113{clip-path:url(#clip-path-72);}.cls-114{clip-path:url(#clip-path-73);}.cls-115{clip-path:url(#clip-path-74);}.cls-116{clip-path:url(#clip-path-75);}.cls-117{clip-path:url(#clip-path-76);}.cls-118{clip-path:url(#clip-path-77);}.cls-119{clip-path:url(#clip-path-78);}.cls-120{clip-path:url(#clip-path-79);}.cls-121{clip-path:url(#clip-path-80);}.cls-122{clip-path:url(#clip-path-81);}.cls-123{clip-path:url(#clip-path-82);}.cls-124{opacity:0.44;}.cls-125{fill:#3ea365;}.cls-126{fill:#48b46a;}.cls-127{fill:#88c892;}.cls-128{fill:#5eb974;}.cls-129{fill:#77c28a;}.cls-130{opacity:0.66;}.cls-131{clip-path:url(#clip-path-83);}.cls-132{fill:#972e27;}.cls-133{fill:#9b3029;}.cls-134{fill:#9f312a;}.cls-135{fill:#a3332c;}.cls-136{fill:#a6352d;}.cls-137{fill:#aa372f;}.cls-138{fill:#ae3830;}.cls-139{fill:#b13a32;}.cls-140{clip-path:url(#clip-path-84);}.cls-141{fill:#b93d35;}.cls-142{clip-path:url(#clip-path-85);}.cls-143{fill:#b53b33;}.cls-144{clip-path:url(#clip-path-86);}.cls-145{clip-path:url(#clip-path-87);}.cls-146{fill:#932c25;}.cls-147{clipLine truncated
|
||||||
|
After Width: | Height: | Size: 167 KiB |
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 484.83 484.83"><defs><style>.cls-1{fill:none;}.cls-2{isolation:isolate;}.cls-3{fill:#ee7b42;}.cls-4{fill:#ed785f;}.cls-5{fill:url(#未命名的渐变_78);}.cls-6{fill:url(#未命名的渐变_78-2);}.cls-7{fill:url(#未命名的渐变_73);}.cls-8{fill:url(#未命名的渐变_78-3);}.cls-9{fill:url(#未命名的渐变_73-2);}.cls-10{fill:url(#未命名的渐变_73-3);}.cls-11{fill:#ef7f48;}.cls-12{fill:#f08c5b;}.cls-125,.cls-13{mix-blend-mode:multiply;}.cls-13{opacity:0.4;}.cls-14{clip-path:url(#clip-path);}.cls-15{fill:#9f9fa0;}.cls-16{fill:#a3a3a4;}.cls-17{fill:#a7a8a8;}.cls-18{clip-path:url(#clip-path-2);}.cls-19{fill:#a3a3a3;}.cls-20{clip-path:url(#clip-path-3);}.cls-21{fill:#b7b8b8;}.cls-22{clip-path:url(#clip-path-4);}.cls-23{fill:#abacac;}.cls-24{fill:#afb0b0;}.cls-25{fill:#b3b4b4;}.cls-26{clip-path:url(#clip-path-5);}.cls-27{fill:#858585;}.cls-28{clip-path:url(#clip-path-6);}.cls-29{fill:#a3a4a4;}.cls-30{fill:#9a9b9b;}.cls-31{clip-path:url(#clip-path-7);}.cls-32{fill:#a1a1a1;}.cls-33{fill:#b5b6b6;}.cls-34{clip-path:url(#clip-path-8);}.cls-35{clip-path:url(#clip-path-9);}.cls-36{fill:gray;}.cls-37{clip-path:url(#clip-path-10);}.cls-38{clip-path:url(#clip-path-11);}.cls-39{clip-path:url(#clip-path-12);}.cls-40{clip-path:url(#clip-path-13);}.cls-41{clip-path:url(#clip-path-14);}.cls-42{clip-path:url(#clip-path-15);}.cls-43{fill:#9e9e9e;}.cls-44{fill:#999;}.cls-45{fill:#949494;}.cls-46{fill:#8f8f8f;}.cls-47{fill:#8a8a8a;}.cls-48{fill:#ababac;}.cls-49{clip-path:url(#clip-path-16);}.cls-50{clip-path:url(#clip-path-17);}.cls-51{clip-path:url(#clip-path-18);}.cls-52{fill:#828282;}.cls-53{fill:#9d9d9d;}.cls-54{clip-path:url(#clip-path-19);}.cls-55{clip-path:url(#clip-path-20);}.cls-56{clip-path:url(#clip-path-21);}.cls-57{clip-path:url(#clip-path-22);}.cls-58{clip-path:url(#clip-path-23);}.cls-59{clip-path:url(#clip-path-24);}.cls-60{fill:#b2b3b3;}.cls-61{clip-path:url(#clip-path-25);}.cls-62{clip-path:url(#clip-path-26);}.cls-63{fill:#dedede;}.cls-64{clip-path:url(#clip-path-27);}.cls-65{clip-path:url(#clip-path-28);}.cls-66{fill:#e2e3e3;}.cls-67{clip-path:url(#clip-path-29);}.cls-68{clip-path:url(#clip-path-30);}.cls-69{clip-path:url(#clip-path-31);}.cls-70{clip-path:url(#clip-path-32);}.cls-71{clip-path:url(#clip-path-33);}.cls-72{clip-path:url(#clip-path-34);}.cls-73{clip-path:url(#clip-path-35);}.cls-74{clip-path:url(#clip-path-36);}.cls-75{clip-path:url(#clip-path-37);}.cls-76{clip-path:url(#clip-path-38);}.cls-77{clip-path:url(#clip-path-39);}.cls-78{clip-path:url(#clip-path-40);}.cls-79{clip-path:url(#clip-path-41);}.cls-80{clip-path:url(#clip-path-42);}.cls-81{clip-path:url(#clip-path-43);}.cls-82{clip-path:url(#clip-path-44);}.cls-83{clip-path:url(#clip-path-45);}.cls-84{clip-path:url(#clip-path-46);}.cls-85{clip-path:url(#clip-path-47);}.cls-86{clip-path:url(#clip-path-48);}.cls-87{clip-path:url(#clip-path-49);}.cls-88{clip-path:url(#clip-path-50);}.cls-89{clip-path:url(#clip-path-51);}.cls-90{clip-path:url(#clip-path-52);}.cls-91{clip-path:url(#clip-path-53);}.cls-92{clip-path:url(#clip-path-54);}.cls-93{clip-path:url(#clip-path-55);}.cls-94{clip-path:url(#clip-path-56);}.cls-95{clip-path:url(#clip-path-57);}.cls-96{clip-path:url(#clip-path-58);}.cls-97{clip-path:url(#clip-path-59);}.cls-98{clip-path:url(#clip-path-60);}.cls-99{clip-path:url(#clip-path-61);}.cls-100{clip-path:url(#clip-path-62);}.cls-101{clip-path:url(#clip-path-63);}.cls-102{clip-path:url(#clip-path-64);}.cls-103{clip-path:url(#clip-path-65);}.cls-104{clip-path:url(#clip-path-66);}.cls-105{clip-path:url(#clip-path-67);}.cls-106{clip-path:url(#clip-path-68);}.cls-107{clip-path:url(#clip-path-69);}.cls-108{clip-path:url(#clip-path-70);}.cls-109{clip-path:url(#clip-path-71);}.cls-110{clip-path:url(#clip-path-72);}.cls-111{clip-path:url(#clip-path-73);}.cls-112{clip-path:url(#clip-path-74);}.cls-113{clip-path:url(#clip-path-75);}.cls-114{clip-path:url(#clip-path-76);}.cls-115{clip-path:url(#clip-path-77);}.cls-116{clip-path:url(#clip-path-78);}.cls-117{clip-path:url(#clip-path-79);}.cls-118{clip-path:url(#clip-path-80);}.cls-119{clip-path:url(#clip-path-81);}.cls-120{clip-path:url(#clip-path-82);}.cls-121{clip-path:url(#clip-path-83);}.cls-122{clip-path:url(#clip-path-84);}.cls-123{clip-path:url(#clip-path-85);}.cls-124{clip-path:url(#clip-path-86);}.cls-125{opacity:0.66;}.cls-126{clip-path:url(#clip-path-87);}.cls-127{fill:#9c620d;}.cls-128{fill:#a0650f;}.cls-129{fill:#a56711;}.cls-130{fill:#a96a13;}.cls-131{fill:#ad6d14;}.cls-132{fill:#b17016;}.cls-133{fill:#b47217;}.cls-134{fill:#b87519;}.cls-135{clip-path:url(#clip-path-88);}.cls-136{fill:#c07a1b;}.cls-137{clip-path:url(#clip-path-89);}.cls-138{fill:#bc771a;}.cls-139{clip-path:url(#clip-path-90);}.cls-140{clip-path:url(#clip-path-91);}.cls-141{fill:#985f0a;}.cls-142{clip-path:url(#clip-path-92);}.cls-143{clip-path:url(#clip-path-93);}.cls-144{clip-path:url(#clip-path-94);}.cls-145{clipLine truncated
|
||||||
|
After Width: | Height: | Size: 103 KiB |
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 484.83 484.83"><defs><style>.cls-1,.cls-14{fill:none;}.cls-2{isolation:isolate;}.cls-3{fill:#8d73b2;}.cls-4{fill:#ba9cc8;}.cls-5{fill:#c9aed2;}.cls-6{fill:#c0a1cb;}.cls-7{fill:url(#未命名的渐变_82);}.cls-8{fill:url(#未命名的渐变_82-2);}.cls-9{fill:url(#未命名的渐变_82-3);}.cls-10{fill:url(#未命名的渐变_82-4);}.cls-11{fill:url(#未命名的渐变_91);}.cls-12{fill:url(#未命名的渐变_91-2);}.cls-13{fill:#a990c3;}.cls-14{stroke:#fff;stroke-miterlimit:10;stroke-width:0.55px;}.cls-15{fill:#878787;}.cls-124,.cls-130,.cls-16,.cls-161{mix-blend-mode:multiply;}.cls-16{opacity:0.4;}.cls-17{clip-path:url(#clip-path);}.cls-18{fill:#9f9fa0;}.cls-19{fill:#a3a3a4;}.cls-20{fill:#a7a8a8;}.cls-21{clip-path:url(#clip-path-2);}.cls-22{fill:#a3a3a3;}.cls-23{clip-path:url(#clip-path-3);}.cls-24{fill:#b7b8b8;}.cls-25{clip-path:url(#clip-path-4);}.cls-26{fill:#abacac;}.cls-27{fill:#afb0b0;}.cls-28{fill:#b3b4b4;}.cls-29{clip-path:url(#clip-path-5);}.cls-30{fill:#858585;}.cls-31{clip-path:url(#clip-path-6);}.cls-32{fill:#a3a4a4;}.cls-33{fill:#9a9b9b;}.cls-34{clip-path:url(#clip-path-7);}.cls-35{fill:#a1a1a1;}.cls-36{fill:#b5b6b6;}.cls-37{clip-path:url(#clip-path-8);}.cls-38{clip-path:url(#clip-path-9);}.cls-39{fill:gray;}.cls-40{clip-path:url(#clip-path-10);}.cls-41{clip-path:url(#clip-path-11);}.cls-42{clip-path:url(#clip-path-12);}.cls-43{clip-path:url(#clip-path-13);}.cls-44{clip-path:url(#clip-path-14);}.cls-45{clip-path:url(#clip-path-15);}.cls-46{fill:#9e9e9e;}.cls-47{fill:#999;}.cls-48{fill:#949494;}.cls-49{fill:#8f8f8f;}.cls-50{fill:#8a8a8a;}.cls-51{fill:#ababac;}.cls-52{clip-path:url(#clip-path-16);}.cls-53{clip-path:url(#clip-path-17);}.cls-54{fill:#828282;}.cls-55{clip-path:url(#clip-path-18);}.cls-56{fill:#9d9d9d;}.cls-57{clip-path:url(#clip-path-19);}.cls-58{clip-path:url(#clip-path-20);}.cls-59{clip-path:url(#clip-path-21);}.cls-60{clip-path:url(#clip-path-22);}.cls-61{clip-path:url(#clip-path-23);}.cls-62{clip-path:url(#clip-path-24);}.cls-63{fill:#b2b3b3;}.cls-64{clip-path:url(#clip-path-25);}.cls-65{clip-path:url(#clip-path-26);}.cls-66{clip-path:url(#clip-path-27);}.cls-67{fill:#e2e3e3;}.cls-68{fill:#dedede;}.cls-69{clip-path:url(#clip-path-28);}.cls-70{clip-path:url(#clip-path-29);}.cls-71{clip-path:url(#clip-path-30);}.cls-72{clip-path:url(#clip-path-31);}.cls-73{clip-path:url(#clip-path-32);}.cls-74{clip-path:url(#clip-path-33);}.cls-75{clip-path:url(#clip-path-34);}.cls-76{clip-path:url(#clip-path-35);}.cls-77{clip-path:url(#clip-path-36);}.cls-78{clip-path:url(#clip-path-37);}.cls-79{clip-path:url(#clip-path-38);}.cls-80{clip-path:url(#clip-path-39);}.cls-81{clip-path:url(#clip-path-40);}.cls-82{clip-path:url(#clip-path-41);}.cls-83{clip-path:url(#clip-path-42);}.cls-84{clip-path:url(#clip-path-43);}.cls-85{clip-path:url(#clip-path-44);}.cls-86{clip-path:url(#clip-path-45);}.cls-87{clip-path:url(#clip-path-46);}.cls-88{clip-path:url(#clip-path-47);}.cls-89{clip-path:url(#clip-path-48);}.cls-90{clip-path:url(#clip-path-49);}.cls-91{clip-path:url(#clip-path-50);}.cls-92{clip-path:url(#clip-path-51);}.cls-93{clip-path:url(#clip-path-52);}.cls-94{clip-path:url(#clip-path-53);}.cls-95{clip-path:url(#clip-path-54);}.cls-96{clip-path:url(#clip-path-55);}.cls-97{clip-path:url(#clip-path-56);}.cls-98{clip-path:url(#clip-path-57);}.cls-99{clip-path:url(#clip-path-58);}.cls-100{clip-path:url(#clip-path-59);}.cls-101{clip-path:url(#clip-path-60);}.cls-102{clip-path:url(#clip-path-61);}.cls-103{clip-path:url(#clip-path-62);}.cls-104{clip-path:url(#clip-path-63);}.cls-105{clip-path:url(#clip-path-64);}.cls-106{clip-path:url(#clip-path-65);}.cls-107{clip-path:url(#clip-path-66);}.cls-108{clip-path:url(#clip-path-67);}.cls-109{clip-path:url(#clip-path-68);}.cls-110{clip-path:url(#clip-path-69);}.cls-111{clip-path:url(#clip-path-70);}.cls-112{clip-path:url(#clip-path-71);}.cls-113{clip-path:url(#clip-path-72);}.cls-114{clip-path:url(#clip-path-73);}.cls-115{clip-path:url(#clip-path-74);}.cls-116{clip-path:url(#clip-path-75);}.cls-117{clip-path:url(#clip-path-76);}.cls-118{clip-path:url(#clip-path-77);}.cls-119{clip-path:url(#clip-path-78);}.cls-120{clip-path:url(#clip-path-79);}.cls-121{clip-path:url(#clip-path-80);}.cls-122{clip-path:url(#clip-path-81);}.cls-123{clip-path:url(#clip-path-82);}.cls-124{opacity:0.44;}.cls-125{fill:#3ea365;}.cls-126{fill:#48b46a;}.cls-127{fill:#88c892;}.cls-128{fill:#5eb974;}.cls-129{fill:#77c28a;}.cls-130{opacity:0.66;}.cls-131{clip-path:url(#clip-path-83);}.cls-132{fill:#9c620d;}.cls-133{fill:#a0650f;}.cls-134{fill:#a56711;}.cls-135{fill:#a96a13;}.cls-136{fill:#ad6d14;}.cls-137{fill:#b17016;}.cls-138{fill:#b47217;}.cls-139{fill:#b87519;}.cls-140{clip-path:url(#clip-path-84);}.cls-141{fill:#c07a1b;}.cls-142{clip-path:url(#clip-path-85);}.cls-143{fill:#bc771a;}.cls-144{clip-path:url(#clip-path-86);}.cls-145{clip-path:url(#clip-path-87);}.cls-146{fill:#985f0a;}.cls-147{clipLine truncated
|
||||||
|
After Width: | Height: | Size: 167 KiB |
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 484.83 484.83"><defs><style>.cls-1{fill:none;}.cls-2{isolation:isolate;}.cls-3{fill:url(#未命名的渐变_95);}.cls-4{fill:url(#未命名的渐变_105);}.cls-5{fill:url(#未命名的渐变_95-2);}.cls-32,.cls-6{mix-blend-mode:multiply;}.cls-6{opacity:0.35;}.cls-7{clip-path:url(#clip-path);}.cls-8{fill:#9c6c1e;}.cls-9{fill:#a16f20;}.cls-10{fill:#a57222;}.cls-11{fill:#a97523;}.cls-12{fill:#ad7825;}.cls-13{fill:#b17b27;}.cls-14{fill:#b57e28;}.cls-15{fill:#b88129;}.cls-16{fill:#bc842b;}.cls-17{fill:#c0862c;}.cls-18{fill:#c4892d;}.cls-19{fill:#c88c2f;}.cls-20{clip-path:url(#clip-path-2);}.cls-21{clip-path:url(#clip-path-3);}.cls-22{fill:#98691d;}.cls-23{clip-path:url(#clip-path-4);}.cls-24{clip-path:url(#clip-path-5);}.cls-25{clip-path:url(#clip-path-6);}.cls-26{fill:#bf852c;}.cls-27{clip-path:url(#clip-path-7);}.cls-28{fill:#cd8f30;}.cls-29{fill:url(#未命名的渐变_13);}.cls-30{clip-path:url(#clip-path-8);}.cls-31{fill:#67bc7b;}.cls-32{opacity:0.4;}.cls-33{clip-path:url(#clip-path-9);}.cls-34{fill:#9f9fa0;}.cls-35{fill:#a3a3a4;}.cls-36{fill:#a7a8a8;}.cls-37{clip-path:url(#clip-path-10);}.cls-38{fill:#a3a3a3;}.cls-39{clip-path:url(#clip-path-11);}.cls-40{fill:#b7b8b8;}.cls-41{clip-path:url(#clip-path-12);}.cls-42{fill:#abacac;}.cls-43{fill:#afb0b0;}.cls-44{fill:#b3b4b4;}.cls-45{clip-path:url(#clip-path-13);}.cls-46{fill:#858585;}.cls-47{clip-path:url(#clip-path-14);}.cls-48{fill:#a3a4a4;}.cls-49{fill:#9a9b9b;}.cls-50{clip-path:url(#clip-path-15);}.cls-51{fill:#a1a1a1;}.cls-52{fill:#b5b6b6;}.cls-53{clip-path:url(#clip-path-16);}.cls-54{clip-path:url(#clip-path-17);}.cls-55{fill:gray;}.cls-56{clip-path:url(#clip-path-18);}.cls-57{clip-path:url(#clip-path-19);}.cls-58{clip-path:url(#clip-path-20);}.cls-59{clip-path:url(#clip-path-21);}.cls-60{clip-path:url(#clip-path-22);}.cls-61{clip-path:url(#clip-path-23);}.cls-62{fill:#9e9e9e;}.cls-63{fill:#999;}.cls-64{fill:#949494;}.cls-65{fill:#8f8f8f;}.cls-66{fill:#8a8a8a;}.cls-67{fill:#ababac;}.cls-68{clip-path:url(#clip-path-24);}.cls-69{clip-path:url(#clip-path-25);}.cls-70{clip-path:url(#clip-path-26);}.cls-71{fill:#828282;}.cls-72{fill:#9d9d9d;}.cls-73{clip-path:url(#clip-path-27);}.cls-74{clip-path:url(#clip-path-28);}.cls-75{clip-path:url(#clip-path-29);}.cls-76{clip-path:url(#clip-path-30);}.cls-77{clip-path:url(#clip-path-31);}.cls-78{clip-path:url(#clip-path-32);}.cls-79{fill:#b2b3b3;}.cls-80{clip-path:url(#clip-path-33);}.cls-81{clip-path:url(#clip-path-34);}.cls-82{fill:#dedede;}.cls-83{clip-path:url(#clip-path-35);}.cls-84{clip-path:url(#clip-path-36);}.cls-85{fill:#e2e3e3;}.cls-86{clip-path:url(#clip-path-37);}.cls-87{clip-path:url(#clip-path-38);}.cls-88{clip-path:url(#clip-path-39);}.cls-89{clip-path:url(#clip-path-40);}.cls-90{clip-path:url(#clip-path-41);}.cls-91{clip-path:url(#clip-path-42);}.cls-92{clip-path:url(#clip-path-43);}.cls-93{clip-path:url(#clip-path-44);}.cls-94{clip-path:url(#clip-path-45);}.cls-95{clip-path:url(#clip-path-46);}.cls-96{clip-path:url(#clip-path-47);}.cls-97{clip-path:url(#clip-path-48);}.cls-98{clip-path:url(#clip-path-49);}.cls-99{clip-path:url(#clip-path-50);}.cls-100{clip-path:url(#clip-path-51);}.cls-101{clip-path:url(#clip-path-52);}.cls-102{clip-path:url(#clip-path-53);}.cls-103{clip-path:url(#clip-path-54);}.cls-104{clip-path:url(#clip-path-55);}.cls-105{clip-path:url(#clip-path-56);}.cls-106{clip-path:url(#clip-path-57);}.cls-107{clip-path:url(#clip-path-58);}.cls-108{clip-path:url(#clip-path-59);}.cls-109{clip-path:url(#clip-path-60);}.cls-110{clip-path:url(#clip-path-61);}.cls-111{clip-path:url(#clip-path-62);}.cls-112{clip-path:url(#clip-path-63);}.cls-113{clip-path:url(#clip-path-64);}.cls-114{clip-path:url(#clip-path-65);}.cls-115{clip-path:url(#clip-path-66);}.cls-116{clip-path:url(#clip-path-67);}.cls-117{clip-path:url(#clip-path-68);}.cls-118{clip-path:url(#clip-path-69);}.cls-119{clip-path:url(#clip-path-70);}.cls-120{clip-path:url(#clip-path-71);}.cls-121{clip-path:url(#clip-path-72);}.cls-122{clip-path:url(#clip-path-73);}.cls-123{clip-path:url(#clip-path-74);}.cls-124{clip-path:url(#clip-path-75);}.cls-125{clip-path:url(#clip-path-76);}.cls-126{clip-path:url(#clip-path-77);}.cls-127{clip-path:url(#clip-path-78);}.cls-128{clip-path:url(#clip-path-79);}.cls-129{clip-path:url(#clip-path-80);}.cls-130{clip-path:url(#clip-path-81);}.cls-131{clip-path:url(#clip-path-82);}.cls-132{clip-path:url(#clip-path-83);}.cls-133{clip-path:url(#clip-path-84);}.cls-134{clip-path:url(#clip-path-85);}.cls-135{clip-path:url(#clip-path-86);}.cls-136{clip-path:url(#clip-path-87);}.cls-137{clip-path:url(#clip-path-88);}.cls-138{clip-path:url(#clip-path-89);}.cls-139{clip-path:url(#clip-path-90);}.cls-140{clip-path:url(#clip-path-91);}.cls-141{clip-path:url(#clip-path-92);}.cls-142{clip-path:url(#clip-path-93);}.cls-143{clip-path:url(#clip-path-94);}</style><linearGradient id="未命名的渐变_95" x1="36.12" y1="242.41" x2="448.7Line truncated
|
||||||
|
After Width: | Height: | Size: 88 KiB |
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 484.83 484.83"><defs><style>.cls-1{fill:none;}.cls-2{isolation:isolate;}.cls-3{fill:url(#未命名的渐变_64);}.cls-4{fill:url(#未命名的渐变_68);}.cls-5{fill:url(#未命名的渐变_64-2);}.cls-32,.cls-6{mix-blend-mode:multiply;}.cls-6{opacity:0.35;}.cls-7{clip-path:url(#clip-path);}.cls-8{fill:#9c6c1e;}.cls-9{fill:#a16f20;}.cls-10{fill:#a57222;}.cls-11{fill:#a97523;}.cls-12{fill:#ad7825;}.cls-13{fill:#b17b27;}.cls-14{fill:#b57e28;}.cls-15{fill:#b88129;}.cls-16{fill:#bc842b;}.cls-17{fill:#c0862c;}.cls-18{fill:#c4892d;}.cls-19{fill:#c88c2f;}.cls-20{clip-path:url(#clip-path-2);}.cls-21{clip-path:url(#clip-path-3);}.cls-22{fill:#98691d;}.cls-23{clip-path:url(#clip-path-4);}.cls-24{clip-path:url(#clip-path-5);}.cls-25{clip-path:url(#clip-path-6);}.cls-26{fill:#bf852c;}.cls-27{clip-path:url(#clip-path-7);}.cls-28{fill:#cd8f30;}.cls-29{fill:url(#未命名的渐变_13);}.cls-30{clip-path:url(#clip-path-8);}.cls-31{fill:url(#未命名的渐变_34);}.cls-32{opacity:0.4;}.cls-33{clip-path:url(#clip-path-9);}.cls-34{fill:#9f9fa0;}.cls-35{fill:#a3a3a4;}.cls-36{fill:#a7a8a8;}.cls-37{clip-path:url(#clip-path-10);}.cls-38{fill:#a3a3a3;}.cls-39{clip-path:url(#clip-path-11);}.cls-40{fill:#b7b8b8;}.cls-41{clip-path:url(#clip-path-12);}.cls-42{fill:#abacac;}.cls-43{fill:#afb0b0;}.cls-44{fill:#b3b4b4;}.cls-45{clip-path:url(#clip-path-13);}.cls-46{fill:#858585;}.cls-47{clip-path:url(#clip-path-14);}.cls-48{fill:#a3a4a4;}.cls-49{fill:#9a9b9b;}.cls-50{clip-path:url(#clip-path-15);}.cls-51{fill:#a1a1a1;}.cls-52{fill:#b5b6b6;}.cls-53{clip-path:url(#clip-path-16);}.cls-54{clip-path:url(#clip-path-17);}.cls-55{fill:gray;}.cls-56{clip-path:url(#clip-path-18);}.cls-57{clip-path:url(#clip-path-19);}.cls-58{clip-path:url(#clip-path-20);}.cls-59{clip-path:url(#clip-path-21);}.cls-60{clip-path:url(#clip-path-22);}.cls-61{clip-path:url(#clip-path-23);}.cls-62{fill:#9e9e9e;}.cls-63{fill:#999;}.cls-64{fill:#949494;}.cls-65{fill:#8f8f8f;}.cls-66{fill:#8a8a8a;}.cls-67{fill:#ababac;}.cls-68{clip-path:url(#clip-path-24);}.cls-69{clip-path:url(#clip-path-25);}.cls-70{clip-path:url(#clip-path-26);}.cls-71{fill:#828282;}.cls-72{fill:#9d9d9d;}.cls-73{clip-path:url(#clip-path-27);}.cls-74{clip-path:url(#clip-path-28);}.cls-75{clip-path:url(#clip-path-29);}.cls-76{clip-path:url(#clip-path-30);}.cls-77{clip-path:url(#clip-path-31);}.cls-78{clip-path:url(#clip-path-32);}.cls-79{fill:#b2b3b3;}.cls-80{clip-path:url(#clip-path-33);}.cls-81{clip-path:url(#clip-path-34);}.cls-82{fill:#dedede;}.cls-83{clip-path:url(#clip-path-35);}.cls-84{clip-path:url(#clip-path-36);}.cls-85{fill:#e2e3e3;}.cls-86{clip-path:url(#clip-path-37);}.cls-87{clip-path:url(#clip-path-38);}.cls-88{clip-path:url(#clip-path-39);}.cls-89{clip-path:url(#clip-path-40);}.cls-90{clip-path:url(#clip-path-41);}.cls-91{clip-path:url(#clip-path-42);}.cls-92{clip-path:url(#clip-path-43);}.cls-93{clip-path:url(#clip-path-44);}.cls-94{clip-path:url(#clip-path-45);}.cls-95{clip-path:url(#clip-path-46);}.cls-96{clip-path:url(#clip-path-47);}.cls-97{clip-path:url(#clip-path-48);}.cls-98{clip-path:url(#clip-path-49);}.cls-99{clip-path:url(#clip-path-50);}.cls-100{clip-path:url(#clip-path-51);}.cls-101{clip-path:url(#clip-path-52);}.cls-102{clip-path:url(#clip-path-53);}.cls-103{clip-path:url(#clip-path-54);}.cls-104{clip-path:url(#clip-path-55);}.cls-105{clip-path:url(#clip-path-56);}.cls-106{clip-path:url(#clip-path-57);}.cls-107{clip-path:url(#clip-path-58);}.cls-108{clip-path:url(#clip-path-59);}.cls-109{clip-path:url(#clip-path-60);}.cls-110{clip-path:url(#clip-path-61);}.cls-111{clip-path:url(#clip-path-62);}.cls-112{clip-path:url(#clip-path-63);}.cls-113{clip-path:url(#clip-path-64);}.cls-114{clip-path:url(#clip-path-65);}.cls-115{clip-path:url(#clip-path-66);}.cls-116{clip-path:url(#clip-path-67);}.cls-117{clip-path:url(#clip-path-68);}.cls-118{clip-path:url(#clip-path-69);}.cls-119{clip-path:url(#clip-path-70);}.cls-120{clip-path:url(#clip-path-71);}.cls-121{clip-path:url(#clip-path-72);}.cls-122{clip-path:url(#clip-path-73);}.cls-123{clip-path:url(#clip-path-74);}.cls-124{clip-path:url(#clip-path-75);}.cls-125{clip-path:url(#clip-path-76);}.cls-126{clip-path:url(#clip-path-77);}.cls-127{clip-path:url(#clip-path-78);}.cls-128{clip-path:url(#clip-path-79);}.cls-129{clip-path:url(#clip-path-80);}.cls-130{clip-path:url(#clip-path-81);}.cls-131{clip-path:url(#clip-path-82);}.cls-132{clip-path:url(#clip-path-83);}.cls-133{clip-path:url(#clip-path-84);}.cls-134{clip-path:url(#clip-path-85);}.cls-135{clip-path:url(#clip-path-86);}.cls-136{clip-path:url(#clip-path-87);}.cls-137{clip-path:url(#clip-path-88);}.cls-138{clip-path:url(#clip-path-89);}.cls-139{clip-path:url(#clip-path-90);}.cls-140{clip-path:url(#clip-path-91);}.cls-141{clip-path:url(#clip-path-92);}.cls-142{clip-path:url(#clip-path-93);}.cls-143{clip-path:url(#clip-path-94);}</style><linearGradient id="未命名的渐变_64" x1="43.52" y1Line truncated
|
||||||
|
After Width: | Height: | Size: 89 KiB |
@@ -0,0 +1,152 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
id="图层_1"
|
||||||
|
data-name="图层 1"
|
||||||
|
viewBox="0 0 484.83 484.83"
|
||||||
|
version="1.1"
|
||||||
|
sodipodi:docname="medal-2.svg"
|
||||||
|
inkscape:version="1.0.2 (e86c8708, 2021-01-15)">
|
||||||
|
<metadata
|
||||||
|
id="metadata873">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<sodipodi:namedview
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1"
|
||||||
|
objecttolerance="10"
|
||||||
|
gridtolerance="10"
|
||||||
|
guidetolerance="10"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:window-width="1637"
|
||||||
|
inkscape:window-height="952"
|
||||||
|
id="namedview871"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="1.4933069"
|
||||||
|
inkscape:cx="242.415"
|
||||||
|
inkscape:cy="242.415"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="25"
|
||||||
|
inkscape:window-maximized="0"
|
||||||
|
inkscape:current-layer="图层_1" />
|
||||||
|
<defs
|
||||||
|
id="defs846">
|
||||||
|
<style
|
||||||
|
id="style833">.cls-1,.cls-3,.cls-5{fill:none;stroke-miterlimit:10;}.cls-1{stroke-width:43px;stroke:url(#未命名的渐变_64);}.cls-2{fill:url(#未命名的渐变_7);}.cls-3{stroke-width:6px;stroke-dasharray:19.34 19.34;stroke:url(#未命名的渐变_64-2);}.cls-4{opacity:0.19;}.cls-5{stroke:#80b1da;}.cls-6{fill:#ecc32a;}</style>
|
||||||
|
<linearGradient
|
||||||
|
id="未命名的渐变_64"
|
||||||
|
x1="40.7"
|
||||||
|
y1="242.41"
|
||||||
|
x2="444.13"
|
||||||
|
y2="242.41"
|
||||||
|
gradientUnits="userSpaceOnUse">
|
||||||
|
<stop
|
||||||
|
offset="0"
|
||||||
|
stop-color="#bbe2f1"
|
||||||
|
id="stop835" />
|
||||||
|
<stop
|
||||||
|
offset="1"
|
||||||
|
stop-color="#4ea9e0"
|
||||||
|
id="stop837" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="未命名的渐变_7"
|
||||||
|
x1="60.55"
|
||||||
|
y1="244.8"
|
||||||
|
x2="420.97"
|
||||||
|
y2="244.8"
|
||||||
|
gradientUnits="userSpaceOnUse">
|
||||||
|
<stop
|
||||||
|
offset="0"
|
||||||
|
stop-color="#458bca"
|
||||||
|
id="stop840" />
|
||||||
|
<stop
|
||||||
|
offset="1"
|
||||||
|
stop-color="#213859"
|
||||||
|
id="stop842" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="未命名的渐变_64-2"
|
||||||
|
x1="89.24"
|
||||||
|
y1="242.41"
|
||||||
|
x2="400.35"
|
||||||
|
y2="242.41"
|
||||||
|
xlink:href="#未命名的渐变_64" />
|
||||||
|
</defs>
|
||||||
|
<path
|
||||||
|
class="cls-1"
|
||||||
|
d="m 444.05895,339.31433 v -194.6868 c 0.004,-8.92513 -4.93965,-17.17222 -12.96347,-21.6271 L 256.09427,25.597942 c -8.0196,-4.457664 -17.89618,-4.457664 -25.91578,0 L 55.177277,122.9682 c -7.996487,4.48571 -12.903785,12.7416 -12.874293,21.65933 v 194.6868 c 8.77e-4,8.92112 4.937847,17.16461 12.952319,21.62709 l 175.001207,97.37026 c 8.01961,4.45767 17.89619,4.45767 25.91579,0 l 175.00121,-97.37026 c 7.99042,-4.47721 12.90068,-12.71865 12.88544,-21.62709 z"
|
||||||
|
id="path848"
|
||||||
|
sodipodi:nodetypes="ccccccccccccc" />
|
||||||
|
<path
|
||||||
|
class="cls-2"
|
||||||
|
d="M 442.24206,341.92505 V 147.19527 c 0.001,-8.92171 -4.93617,-17.16623 -12.95232,-21.62709 L 254.28853,28.19792 c -8.01554,-4.457957 -17.8891,-4.457957 -25.90464,0 L 53.382678,125.56818 c -8.016154,4.46086 -12.953741,12.70538 -12.952319,21.62709 v 194.72978 c 8.77e-4,8.92112 4.937848,17.16461 12.952319,21.62709 L 228.38389,460.9224 c 8.01554,4.45796 17.8891,4.45796 25.90464,0 l 175.00121,-97.37026 c 8.01447,-4.46248 12.95144,-12.70597 12.95232,-21.62709 z"
|
||||||
|
id="path850"
|
||||||
|
sodipodi:nodetypes="ccccccccccccc" />
|
||||||
|
<path
|
||||||
|
class="cls-3"
|
||||||
|
d="M 415.88041,324.4128 V 159.57203 c -0.0218,-7.53605 -4.19935,-14.49248 -10.96823,-18.26431 L 256.79651,58.838987 c -6.78593,-3.781383 -15.15053,-3.781383 -21.93646,0 L 86.755521,141.254 c -6.768882,3.77183 -10.946413,10.72827 -10.968229,18.26431 V 324.4128 c 0.01496,7.53783 4.194328,14.49732 10.968229,18.26431 l 148.160259,82.46873 c 6.78901,3.77031 15.14745,3.77031 21.93646,0 l 148.11568,-82.42575 c 6.76623,-3.78831 10.92495,-10.76517 10.91249,-18.30729 z"
|
||||||
|
id="path852"
|
||||||
|
sodipodi:nodetypes="ccccccccccccc" />
|
||||||
|
<g
|
||||||
|
class="cls-4"
|
||||||
|
id="g866">
|
||||||
|
<circle
|
||||||
|
class="cls-5"
|
||||||
|
cx="242.41"
|
||||||
|
cy="242.63"
|
||||||
|
r="30.04"
|
||||||
|
id="circle854" />
|
||||||
|
<circle
|
||||||
|
class="cls-5"
|
||||||
|
cx="242.41"
|
||||||
|
cy="242.63"
|
||||||
|
r="48.04"
|
||||||
|
id="circle856" />
|
||||||
|
<circle
|
||||||
|
class="cls-5"
|
||||||
|
cx="242.41"
|
||||||
|
cy="242.63"
|
||||||
|
r="71.04"
|
||||||
|
id="circle858" />
|
||||||
|
<circle
|
||||||
|
class="cls-5"
|
||||||
|
cx="242.41"
|
||||||
|
cy="242.63"
|
||||||
|
r="104.14"
|
||||||
|
id="circle860" />
|
||||||
|
<circle
|
||||||
|
class="cls-5"
|
||||||
|
cx="242.41"
|
||||||
|
cy="242.63"
|
||||||
|
r="134.04"
|
||||||
|
id="circle862" />
|
||||||
|
<circle
|
||||||
|
class="cls-5"
|
||||||
|
cx="242.41"
|
||||||
|
cy="242.63"
|
||||||
|
r="172.04"
|
||||||
|
id="circle864" />
|
||||||
|
</g>
|
||||||
|
<path
|
||||||
|
class="cls-6"
|
||||||
|
d="m 377.11263,287.86269 -33.33941,-0.65536 c -0.4751,-0.003 -0.89575,-0.2967 -1.04777,-0.73058 l -10.95709,-30.21131 c -0.29797,-1.05683 -1.85331,-1.05683 -2.15128,0 l -10.95709,30.21131 c -0.15202,0.43388 -0.57267,0.72717 -1.04778,0.73058 l -33.3394,0.65536 c -1.1128,-0.0415 -1.59395,1.34215 -0.67994,1.95536 l 26.58458,19.33868 c 0.38619,0.27768 0.54356,0.76308 0.39013,1.2033 l -9.64179,30.61957 c -0.37004,1.01935 0.87637,1.86872 1.75002,1.19256 l 27.39827,-18.26431 c 0.38697,-0.26557 0.90604,-0.26557 1.29301,0 l 27.39828,18.26431 c 0.87364,0.67616 2.12005,-0.17321 1.75001,-1.19256 l -9.67523,-30.67329 c -0.13008,-0.44019 0.0232,-0.91282 0.39013,-1.2033 l 26.58458,-19.33868 c 0.94809,-0.62733 0.40922,-2.05959 -0.73567,-1.95536 z m -47.40638,46.19796 -14.23418,9.50819 h 30.4413 l -14.23418,-9.50819 c -0.59686,-0.38543 -1.37608,-0.38543 -1.97294,0 z m -93.79842,-92.39592 c 26.00524,-0.15189 49.36233,-15.36843 59.20351,-38.56953 9.84115,-23.20105 4.23358,-49.82996 -14.21221,-67.49893 -18.44579,-17.66897 -46.10752,-22.90829 -70.11694,-13.27882 -24.00946,9.62949 -39.65113,32.23653 -39.6471,57.30235 0.18423,34.32465 29.16068,62.02792 64.77274,61.92675 z m 64.0928,70.3928 -39.80442,-28.90058 c -1.30257,-0.93283 -0.63062,-2.92678 0.99205,-2.94378 l 49.91436,-0.97768 c 0.70281,-0.0215 1.32504,-0.4438 1.58281,-1.07437 l 4.22455,-11.65693 c -10.93961,-12.35114 -24.66559,-22.12656 -40.12767,-28.57827 -24.74924,15.89926 -56.98858,15.89926 -81.73782,0 -34.94451,14.4288 -61.08323,46.78886 -67.70429,86.06788 -1.69334,10.3053 6.57481,19.62752 17.3998,19.61801 h 146.46598 l 9.38542,-29.78157 c 0.20095,-0.64857 -0.034,-1.34941 -0.59077,-1.76196 z"
|
||||||
|
id="path868"
|
||||||
|
sodipodi:nodetypes="ccccccccccccccccccccccccccccsssccccccccccccccccc" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 6.8 KiB |
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 484.83 484.83"><defs><style>.cls-1{fill:none;}.cls-2{isolation:isolate;}.cls-3{fill:#f18f56;}.cls-4{fill:url(#未命名的渐变_78);}.cls-5{fill:url(#未命名的渐变_73);}.cls-6{fill:url(#未命名的渐变_78-2);}.cls-48,.cls-7{mix-blend-mode:multiply;}.cls-7{opacity:0.35;}.cls-8{clip-path:url(#clip-path);}.cls-9{fill:#9c6c1e;}.cls-10{fill:#a16f20;}.cls-11{fill:#a57222;}.cls-12{fill:#a97523;}.cls-13{fill:#ad7825;}.cls-14{fill:#b17b27;}.cls-15{fill:#b57e28;}.cls-16{fill:#b88129;}.cls-17{fill:#bc842b;}.cls-18{fill:#c0862c;}.cls-19{fill:#c4892d;}.cls-20{fill:#c88c2f;}.cls-21{clip-path:url(#clip-path-2);}.cls-22{clip-path:url(#clip-path-3);}.cls-23{fill:#98691d;}.cls-24{clip-path:url(#clip-path-4);}.cls-25{clip-path:url(#clip-path-5);}.cls-26{clip-path:url(#clip-path-6);}.cls-27{fill:#bf852c;}.cls-28{clip-path:url(#clip-path-7);}.cls-29{fill:#cd8f30;}.cls-30{fill:url(#未命名的渐变_13);}.cls-31{clip-path:url(#clip-path-8);}.cls-32{clip-path:url(#clip-path-9);}.cls-33{clip-path:url(#clip-path-10);}.cls-34{clip-path:url(#clip-path-11);}.cls-35{clip-path:url(#clip-path-12);}.cls-36{clip-path:url(#clip-path-13);}.cls-37{clip-path:url(#clip-path-14);}.cls-38{clip-path:url(#clip-path-15);}.cls-39{fill:url(#未命名的渐变_13-2);}.cls-40{clip-path:url(#clip-path-16);}.cls-41{fill:url(#未命名的渐变_51);}.cls-42{fill:#da6b32;}.cls-43{fill:#eaad51;}.cls-44{fill:url(#未命名的渐变_73-2);}.cls-45{fill:#f7d6ac;}.cls-46{fill:#e6ac55;}.cls-47{fill:#eccd82;}.cls-48{opacity:0.4;}.cls-49{clip-path:url(#clip-path-17);}.cls-50{fill:#9f9fa0;}.cls-51{fill:#a3a3a4;}.cls-52{fill:#a7a8a8;}.cls-53{clip-path:url(#clip-path-18);}.cls-54{fill:#a3a3a3;}.cls-55{clip-path:url(#clip-path-19);}.cls-56{fill:#b7b8b8;}.cls-57{clip-path:url(#clip-path-20);}.cls-58{fill:#abacac;}.cls-59{fill:#afb0b0;}.cls-60{fill:#b3b4b4;}.cls-61{clip-path:url(#clip-path-21);}.cls-62{fill:#858585;}.cls-63{clip-path:url(#clip-path-22);}.cls-64{fill:#a3a4a4;}.cls-65{fill:#9a9b9b;}.cls-66{clip-path:url(#clip-path-23);}.cls-67{fill:#a1a1a1;}.cls-68{fill:#b5b6b6;}.cls-69{clip-path:url(#clip-path-24);}.cls-70{clip-path:url(#clip-path-25);}.cls-71{fill:gray;}.cls-72{clip-path:url(#clip-path-26);}.cls-73{clip-path:url(#clip-path-27);}.cls-74{clip-path:url(#clip-path-28);}.cls-75{clip-path:url(#clip-path-29);}.cls-76{clip-path:url(#clip-path-30);}.cls-77{clip-path:url(#clip-path-31);}.cls-78{fill:#9e9e9e;}.cls-79{fill:#999;}.cls-80{fill:#949494;}.cls-81{fill:#8f8f8f;}.cls-82{fill:#8a8a8a;}.cls-83{fill:#ababac;}.cls-84{clip-path:url(#clip-path-32);}.cls-85{clip-path:url(#clip-path-33);}.cls-86{clip-path:url(#clip-path-34);}.cls-87{fill:#828282;}.cls-88{fill:#9d9d9d;}.cls-89{clip-path:url(#clip-path-35);}.cls-90{clip-path:url(#clip-path-36);}.cls-91{clip-path:url(#clip-path-37);}.cls-92{clip-path:url(#clip-path-38);}.cls-93{clip-path:url(#clip-path-39);}.cls-94{clip-path:url(#clip-path-40);}.cls-95{fill:#b2b3b3;}.cls-96{clip-path:url(#clip-path-41);}.cls-97{clip-path:url(#clip-path-42);}.cls-98{fill:#dedede;}.cls-99{clip-path:url(#clip-path-43);}.cls-100{clip-path:url(#clip-path-44);}.cls-101{fill:#e2e3e3;}.cls-102{clip-path:url(#clip-path-45);}.cls-103{clip-path:url(#clip-path-46);}.cls-104{clip-path:url(#clip-path-47);}.cls-105{clip-path:url(#clip-path-48);}.cls-106{clip-path:url(#clip-path-49);}.cls-107{clip-path:url(#clip-path-50);}.cls-108{clip-path:url(#clip-path-51);}.cls-109{clip-path:url(#clip-path-52);}.cls-110{clip-path:url(#clip-path-53);}.cls-111{clip-path:url(#clip-path-54);}.cls-112{clip-path:url(#clip-path-55);}.cls-113{clip-path:url(#clip-path-56);}.cls-114{clip-path:url(#clip-path-57);}.cls-115{clip-path:url(#clip-path-58);}.cls-116{clip-path:url(#clip-path-59);}.cls-117{clip-path:url(#clip-path-60);}.cls-118{clip-path:url(#clip-path-61);}.cls-119{clip-path:url(#clip-path-62);}.cls-120{clip-path:url(#clip-path-63);}.cls-121{clip-path:url(#clip-path-64);}.cls-122{clip-path:url(#clip-path-65);}.cls-123{clip-path:url(#clip-path-66);}.cls-124{clip-path:url(#clip-path-67);}.cls-125{clip-path:url(#clip-path-68);}.cls-126{clip-path:url(#clip-path-69);}.cls-127{clip-path:url(#clip-path-70);}.cls-128{clip-path:url(#clip-path-71);}.cls-129{clip-path:url(#clip-path-72);}.cls-130{clip-path:url(#clip-path-73);}.cls-131{clip-path:url(#clip-path-74);}.cls-132{clip-path:url(#clip-path-75);}.cls-133{clip-path:url(#clip-path-76);}.cls-134{clip-path:url(#clip-path-77);}.cls-135{clip-path:url(#clip-path-78);}.cls-136{clip-path:url(#clip-path-79);}.cls-137{clip-path:url(#clip-path-80);}.cls-138{clip-path:url(#clip-path-81);}.cls-139{clip-path:url(#clip-path-82);}.cls-140{clip-path:url(#clip-path-83);}.cls-141{clip-path:url(#clip-path-84);}.cls-142{clip-path:url(#clip-path-85);}.cls-143{clip-path:url(#clip-path-86);}.cls-144{clip-path:url(#clip-path-87);}.cls-145{clip-path:url(#clip-path-88);}.cls-146{clip-path:url(#clip-path-89);}.cls-147{clip-path:url(#clip-paLine truncated
|
||||||
|
After Width: | Height: | Size: 115 KiB |
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 484.83 484.83"><defs><style>.cls-1{fill:none;}.cls-2{isolation:isolate;}.cls-3{fill:url(#未命名的渐变_95);}.cls-4{fill:url(#未命名的渐变_105);}.cls-5{fill:url(#未命名的渐变_95-2);}.cls-6{mix-blend-mode:multiply;opacity:0.35;}.cls-7{clip-path:url(#clip-path);}.cls-8{fill:#9a6b1e;}.cls-9{fill:#9d6c1f;}.cls-10{fill:#9f6e20;}.cls-11{fill:#a17020;}.cls-12{fill:#a37121;}.cls-13{fill:#a57322;}.cls-14{fill:#a87423;}.cls-15{fill:#98691d;}.cls-16{fill:#b27c27;}.cls-17{clip-path:url(#clip-path-2);}.cls-18{clip-path:url(#clip-path-3);}.cls-19{clip-path:url(#clip-path-4);}.cls-20{fill:#aa7624;}.cls-21{fill:#ac7825;}.cls-22{fill:#ae7925;}.cls-23{fill:#b07b26;}.cls-24{clip-path:url(#clip-path-5);}.cls-25{clip-path:url(#clip-path-6);}.cls-26{fill:url(#未命名的渐变_13);}.cls-27{clip-path:url(#clip-path-7);}.cls-28{clip-path:url(#clip-path-8);}.cls-29{fill:url(#未命名的渐变_13-2);}.cls-30{clip-path:url(#clip-path-9);}</style><linearGradient id="未命名的渐变_95" x1="47.34" y1="245.22" x2="442.2" y2="245.22" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#b6dcc3"/><stop offset="1" stop-color="#2aae51"/></linearGradient><linearGradient id="未命名的渐变_105" x1="76.89" y1="245.22" x2="412.66" y2="245.22" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#4db456"/><stop offset="1" stop-color="#a2d3ae"/></linearGradient><linearGradient id="未命名的渐变_95-2" x1="92.97" y1="243.6" x2="397.75" y2="243.6" xlink:href="#未命名的渐变_95"/><clipPath id="clip-path"><path class="cls-1" d="M235.8,148l13.08,6.29C170,156,140.73,243.3,139.19,247.9l-13.08-6.29C127.65,237,156.89,149.73,235.8,148Z"/></clipPath><clipPath id="clip-path-2"><polygon class="cls-1" points="255.52 174.03 268.6 180.32 268.59 180.31 255.51 174.03 255.52 174.03"/></clipPath><clipPath id="clip-path-3"><path class="cls-1" d="M279.25,157.18l13.08,6.29a94.07,94.07,0,0,0-43.45-9.15L235.8,148A94.2,94.2,0,0,1,279.25,157.18Z"/></clipPath><clipPath id="clip-path-4"><path class="cls-1" d="M266.92,243.72l-13.08-6.29a33.37,33.37,0,0,1-18.49-26.15A36.56,36.56,0,0,1,255.51,174l13.08,6.28a36.58,36.58,0,0,0-20.16,37.26A33.38,33.38,0,0,0,266.92,243.72Z"/></clipPath><clipPath id="clip-path-5"><path class="cls-1" d="M217.09,311.3,204,305a65.31,65.31,0,0,0,29.7,6.39A68.35,68.35,0,0,0,269,300.6c27-17.17,39.84-50.68,31-81.22l13.08,6.29c8.81,30.54-4,64.05-31,81.22a68.45,68.45,0,0,1-35.25,10.8A65.28,65.28,0,0,1,217.09,311.3Z"/></clipPath><clipPath id="clip-path-6"><path class="cls-1" d="M290.68,136.18l13.08,6.29c57.45,27.62,78.78,95.67,80.19,100.15l-13.08-6.29C369.46,231.85,348.13,163.8,290.68,136.18Z"/></clipPath><linearGradient id="未命名的渐变_13" x1="98.36" y1="239.27" x2="370.87" y2="239.27" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#f7e8ad"/><stop offset="1" stop-color="#f5a534"/></linearGradient><clipPath id="clip-path-7"><path class="cls-1" d="M203.05,327.64,190,321.35c-45.75-22-62.74-76.17-63.86-79.74l13.08,6.29C140.31,251.46,157.3,305.65,203.05,327.64Z"/></clipPath><clipPath id="clip-path-8"><path class="cls-1" d="M191.63,348.64l-13.08-6.29a118.18,118.18,0,0,0,54.57,11.49l13.08,6.29A118.31,118.31,0,0,1,191.63,348.64Z"/></clipPath><linearGradient id="未命名的渐变_13-2" x1="166.47" y1="241.38" x2="302.75" y2="241.38" xlink:href="#未命名的渐变_13"/><clipPath id="clip-path-9"><path class="cls-1" d="M370.87,236.33,384,242.62C382,248.39,345.3,358,246.2,360.13l-13.08-6.29C332.22,351.72,368.94,242.1,370.87,236.33Z"/></clipPath></defs><g class="cls-2"><g id="图层_1" data-name="图层 1"><path class="cls-3" d="M415.71,115.94,271.26,32.54a53,53,0,0,0-53,0L73.83,115.94a53,53,0,0,0-26.49,45.88v166.8A53,53,0,0,0,73.83,374.5l144.45,83.4a53,53,0,0,0,53,0l144.45-83.4a53,53,0,0,0,26.49-45.88V161.82A53,53,0,0,0,415.71,115.94Z"/><path class="cls-4" d="M390.13,135.29,267.3,64.37a45,45,0,0,0-45.05,0L99.41,135.29a45,45,0,0,0-22.52,39V316.14a45,45,0,0,0,22.52,39l122.84,70.92a45.09,45.09,0,0,0,45.05,0l122.83-70.92a45.06,45.06,0,0,0,22.53-39V174.3A45,45,0,0,0,390.13,135.29Z"/><path class="cls-5" d="M377.31,143.82,265.81,79.44a40.91,40.91,0,0,0-40.89,0l-111.5,64.38A40.87,40.87,0,0,0,93,179.23V308a40.87,40.87,0,0,0,20.45,35.41l111.5,64.37a40.86,40.86,0,0,0,40.89,0l111.5-64.37A40.88,40.88,0,0,0,397.75,308V179.23A40.88,40.88,0,0,0,377.31,143.82Z"/><image class="cls-6" width="317" height="267" transform="translate(93.77 108.88)" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAT0AAAELCAYAAACruFEtAAAACXBIWXMAAAsSAAALEgHS3X78AAAgAElEQVR4Xu2923YjOZKsbZSUp6rqmT179eP0q81Vv9o8ztz8u6srT5L4X1CWtDCaAwgySJFS+FpYCJ5xcP9gDoQyN9vtFqutttpq78Xuem9YbbXVVntL9tB7w2qrtezv//zHpveeU+1///t/1nRktcVss6a3q7XsBKgd87mjnHGF4mpzbIXeagCG4Va9p/fZ1us9B6xe731uheFq0VbovUPrAC695s/NfTzH3CHnPq6eWyG4GoAVeu/CCsj1QLWxeuS6ej0914PV1uqR6+r19HiF4Du1FXpv0AYg1wLWKfUo/NwqgDnMRuoWAFtQXCH4TmyF3huxALq5YHNojTweeU3rZD1wpcet13rvR6j9GsAKwbdqK/Ru2AZA14JLine truncated
|
||||||
|
After Width: | Height: | Size: 44 KiB |
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 484.83 484.83"><defs><style>.cls-1{fill:none;}.cls-2{isolation:isolate;}.cls-3{fill:#438aca;}.cls-4{fill:url(#未命名的渐变_64);}.cls-5{fill:url(#未命名的渐变_68);}.cls-6{fill:url(#未命名的渐变_64-2);}.cls-120,.cls-146,.cls-7{mix-blend-mode:multiply;}.cls-7{opacity:0.56;}.cls-8{clip-path:url(#clip-path);}.cls-9{fill:#999;}.cls-10{fill:#9e9e9e;}.cls-11{clip-path:url(#clip-path-2);}.cls-12{fill:#858585;}.cls-13{clip-path:url(#clip-path-3);}.cls-14{fill:#8a8a8a;}.cls-15{fill:#8f8f8f;}.cls-16{fill:#949494;}.cls-17{clip-path:url(#clip-path-4);}.cls-18{fill:#a3a3a3;}.cls-19{fill:#a8a8a8;}.cls-20{fill:#adadad;}.cls-21{fill:#b3b3b3;}.cls-22{fill:#b8b8b8;}.cls-23{fill:#bdbdbd;}.cls-24{fill:#c2c2c2;}.cls-25{fill:#c7c7c7;}.cls-26{fill:#ccc;}.cls-27{clip-path:url(#clip-path-5);}.cls-28{fill:#9f7c6b;}.cls-29{fill:#a3806e;}.cls-30{fill:#a78371;}.cls-31{fill:#ab8674;}.cls-32{fill:#af8a77;}.cls-33{fill:#b38d79;}.cls-34{fill:#b7907c;}.cls-35{fill:#bb937f;}.cls-36{fill:#bf9682;}.cls-37{fill:#c39984;}.cls-38{fill:#c79d87;}.cls-39{fill:#ca9f89;}.cls-40{fill:#cea28c;}.cls-41{fill:#d2a58e;}.cls-42{fill:#d6a891;}.cls-43{clip-path:url(#clip-path-6);}.cls-44{clip-path:url(#clip-path-7);}.cls-45{clip-path:url(#clip-path-8);}.cls-46{clip-path:url(#clip-path-9);}.cls-47{clip-path:url(#clip-path-10);}.cls-48{clip-path:url(#clip-path-11);}.cls-49{clip-path:url(#clip-path-12);}.cls-50{clip-path:url(#clip-path-13);}.cls-51{clip-path:url(#clip-path-14);}.cls-52{clip-path:url(#clip-path-15);}.cls-53{clip-path:url(#clip-path-16);}.cls-54{clip-path:url(#clip-path-17);}.cls-55{clip-path:url(#clip-path-18);}.cls-56{clip-path:url(#clip-path-19);}.cls-57{clip-path:url(#clip-path-20);}.cls-58{clip-path:url(#clip-path-21);}.cls-59{clip-path:url(#clip-path-22);}.cls-60{clip-path:url(#clip-path-23);}.cls-61{clip-path:url(#clip-path-24);}.cls-62{clip-path:url(#clip-path-25);}.cls-63{clip-path:url(#clip-path-26);}.cls-64{clip-path:url(#clip-path-27);}.cls-65{clip-path:url(#clip-path-28);}.cls-66{clip-path:url(#clip-path-29);}.cls-67{clip-path:url(#clip-path-30);}.cls-68{clip-path:url(#clip-path-31);}.cls-69{clip-path:url(#clip-path-32);}.cls-70{clip-path:url(#clip-path-33);}.cls-71{clip-path:url(#clip-path-34);}.cls-72{clip-path:url(#clip-path-35);}.cls-73{clip-path:url(#clip-path-36);}.cls-74{clip-path:url(#clip-path-37);}.cls-75{clip-path:url(#clip-path-38);}.cls-76{clip-path:url(#clip-path-39);}.cls-77{clip-path:url(#clip-path-40);}.cls-78{clip-path:url(#clip-path-41);}.cls-79{clip-path:url(#clip-path-42);}.cls-80{fill:#cfa38c;}.cls-81{fill:#c3c3c3;}.cls-82{clip-path:url(#clip-path-43);}.cls-83{clip-path:url(#clip-path-44);}.cls-84{clip-path:url(#clip-path-45);}.cls-85{clip-path:url(#clip-path-46);}.cls-86{clip-path:url(#clip-path-47);}.cls-87{clip-path:url(#clip-path-48);}.cls-88{clip-path:url(#clip-path-49);}.cls-89{clip-path:url(#clip-path-50);}.cls-90{clip-path:url(#clip-path-51);}.cls-91{clip-path:url(#clip-path-52);}.cls-92{clip-path:url(#clip-path-53);}.cls-93{clip-path:url(#clip-path-54);}.cls-94{clip-path:url(#clip-path-55);}.cls-95{clip-path:url(#clip-path-56);}.cls-96{clip-path:url(#clip-path-57);}.cls-97{clip-path:url(#clip-path-58);}.cls-98{clip-path:url(#clip-path-59);}.cls-99{clip-path:url(#clip-path-60);}.cls-100{clip-path:url(#clip-path-61);}.cls-101{clip-path:url(#clip-path-62);}.cls-102{clip-path:url(#clip-path-63);}.cls-103{clip-path:url(#clip-path-64);}.cls-104{clip-path:url(#clip-path-65);}.cls-105{clip-path:url(#clip-path-66);}.cls-106{clip-path:url(#clip-path-67);}.cls-107{clip-path:url(#clip-path-68);}.cls-108{clip-path:url(#clip-path-69);}.cls-109{clip-path:url(#clip-path-70);}.cls-110{clip-path:url(#clip-path-71);}.cls-111{clip-path:url(#clip-path-72);}.cls-112{clip-path:url(#clip-path-73);}.cls-113{clip-path:url(#clip-path-74);}.cls-114{clip-path:url(#clip-path-75);}.cls-115{clip-path:url(#clip-path-76);}.cls-116{clip-path:url(#clip-path-77);}.cls-117{clip-path:url(#clip-path-78);}.cls-118{clip-path:url(#clip-path-79);}.cls-119{clip-path:url(#clip-path-80);}.cls-120{opacity:0.35;}.cls-121{clip-path:url(#clip-path-81);}.cls-122{fill:#9a6b1e;}.cls-123{fill:#9d6c1f;}.cls-124{fill:#9f6e20;}.cls-125{fill:#a17020;}.cls-126{fill:#a37121;}.cls-127{fill:#a57322;}.cls-128{fill:#a87423;}.cls-129{fill:#98691d;}.cls-130{fill:#b27c27;}.cls-131{clip-path:url(#clip-path-82);}.cls-132{clip-path:url(#clip-path-83);}.cls-133{clip-path:url(#clip-path-84);}.cls-134{fill:#aa7624;}.cls-135{fill:#ac7825;}.cls-136{fill:#ae7925;}.cls-137{fill:#b07b26;}.cls-138{clip-path:url(#clip-path-85);}.cls-139{clip-path:url(#clip-path-86);}.cls-140{fill:url(#未命名的渐变_13);}.cls-141{clip-path:url(#clip-path-87);}.cls-142{clip-path:url(#clip-path-88);}.cls-143{fill:url(#未命名的渐变_13-2);}.cls-144{clip-path:url(#clip-path-89);}.cls-145{stroke-miterlimit:10;stroke-width:2px;fill:url(#未命名的渐变_34);stroke:url(#未命名的渐Line truncated
|
||||||
|
After Width: | Height: | Size: 224 KiB |
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 484.83 484.83"><defs><style>.cls-1{fill:none;}.cls-2{isolation:isolate;}.cls-3{fill:url(#未命名的渐变_95);}.cls-4{fill:url(#未命名的渐变_95-2);}.cls-5{fill:url(#未命名的渐变_95-3);}.cls-6{fill:url(#未命名的渐变_105);}.cls-7{fill:url(#未命名的渐变_95-4);}.cls-44,.cls-8{mix-blend-mode:multiply;}.cls-8{opacity:0.35;}.cls-9{fill:#9e600b;}.cls-10{clip-path:url(#clip-path);}.cls-11{fill:#955a07;}.cls-12{fill:#995c09;}.cls-13{fill:#9d5f0b;}.cls-14{fill:#a0610d;}.cls-15{fill:#a4640e;}.cls-16{fill:#a86610;}.cls-17{fill:#ac6912;}.cls-18{clip-path:url(#clip-path-2);}.cls-19{fill:#af6b13;}.cls-20{fill:#b36e15;}.cls-21{clip-path:url(#clip-path-3);}.cls-22{clip-path:url(#clip-path-4);}.cls-23{clip-path:url(#clip-path-5);}.cls-24{fill:#915704;}.cls-25{fill:#b56f15;}.cls-26{clip-path:url(#clip-path-6);}.cls-27{clip-path:url(#clip-path-7);}.cls-28{clip-path:url(#clip-path-8);}.cls-29{clip-path:url(#clip-path-9);}.cls-30{clip-path:url(#clip-path-10);}.cls-31{clip-path:url(#clip-path-11);}.cls-32{clip-path:url(#clip-path-12);}.cls-33{fill:#ab6811;}.cls-34{clip-path:url(#clip-path-13);}.cls-35{clip-path:url(#clip-path-14);}.cls-36{clip-path:url(#clip-path-15);}.cls-37{clip-path:url(#clip-path-16);}.cls-38{clip-path:url(#clip-path-17);}.cls-39{fill:url(#未命名的渐变_58);}.cls-40{clip-path:url(#clip-path-18);}.cls-41{fill:url(#未命名的渐变_105-2);}.cls-42{fill:url(#未命名的渐变_95-5);}.cls-43{fill:url(#未命名的渐变_95-6);}.cls-44{opacity:0.4;}.cls-45{fill:#9a9b9b;}.cls-46{clip-path:url(#clip-path-19);}.cls-47{fill:#9f9fa0;}.cls-48{fill:#a3a3a4;}.cls-49{fill:#a7a8a8;}.cls-50{fill:#abacac;}.cls-51{clip-path:url(#clip-path-20);}.cls-52{clip-path:url(#clip-path-21);}.cls-53{fill:#a3a3a3;}.cls-54{clip-path:url(#clip-path-22);}.cls-55{fill:#b7b8b8;}.cls-56{clip-path:url(#clip-path-23);}.cls-57{fill:#afb0b0;}.cls-58{fill:#b3b4b4;}.cls-59{clip-path:url(#clip-path-24);}.cls-60{fill:#858585;}.cls-61{clip-path:url(#clip-path-25);}.cls-62{clip-path:url(#clip-path-26);}.cls-63{clip-path:url(#clip-path-27);}.cls-64{clip-path:url(#clip-path-28);}.cls-65{clip-path:url(#clip-path-29);}.cls-66{fill:gray;}.cls-67{clip-path:url(#clip-path-30);}.cls-68{clip-path:url(#clip-path-31);}.cls-69{clip-path:url(#clip-path-32);}.cls-70{clip-path:url(#clip-path-33);}.cls-71{clip-path:url(#clip-path-34);}.cls-72{clip-path:url(#clip-path-35);}.cls-73{fill:#9e9e9e;}.cls-74{fill:#999;}.cls-75{fill:#949494;}.cls-76{fill:#8f8f8f;}.cls-77{fill:#8a8a8a;}.cls-78{clip-path:url(#clip-path-36);}.cls-79{fill:#868686;}.cls-80{fill:#a0a0a0;}.cls-81{clip-path:url(#clip-path-37);}.cls-82{fill:#afafb0;}.cls-83{clip-path:url(#clip-path-38);}.cls-84{clip-path:url(#clip-path-39);}.cls-85{clip-path:url(#clip-path-40);}.cls-86{clip-path:url(#clip-path-41);}.cls-87{clip-path:url(#clip-path-42);}.cls-88{clip-path:url(#clip-path-43);}.cls-89{fill:#9b9b9c;}.cls-90{clip-path:url(#clip-path-44);}.cls-91{fill:#9f9f9f;}.cls-92{fill:#b4b5b5;}.cls-93{fill:#dedede;}.cls-94{clip-path:url(#clip-path-45);}.cls-95{fill:#e2e3e3;}.cls-96{clip-path:url(#clip-path-46);}.cls-97{clip-path:url(#clip-path-47);}.cls-98{clip-path:url(#clip-path-48);}.cls-99{clip-path:url(#clip-path-49);}.cls-100{clip-path:url(#clip-path-50);}.cls-101{clip-path:url(#clip-path-51);}.cls-102{clip-path:url(#clip-path-52);}.cls-103{clip-path:url(#clip-path-53);}.cls-104{clip-path:url(#clip-path-54);}.cls-105{clip-path:url(#clip-path-55);}.cls-106{clip-path:url(#clip-path-56);}.cls-107{clip-path:url(#clip-path-57);}.cls-108{clip-path:url(#clip-path-58);}.cls-109{clip-path:url(#clip-path-59);}.cls-110{clip-path:url(#clip-path-60);}.cls-111{clip-path:url(#clip-path-61);}.cls-112{clip-path:url(#clip-path-62);}.cls-113{clip-path:url(#clip-path-63);}.cls-114{clip-path:url(#clip-path-64);}.cls-115{fill:#9fa0a0;}.cls-116{clip-path:url(#clip-path-65);}.cls-117{clip-path:url(#clip-path-66);}.cls-118{clip-path:url(#clip-path-67);}.cls-119{clip-path:url(#clip-path-68);}.cls-120{clip-path:url(#clip-path-69);}.cls-121{clip-path:url(#clip-path-70);}.cls-122{clip-path:url(#clip-path-71);}.cls-123{clip-path:url(#clip-path-72);}.cls-124{clip-path:url(#clip-path-73);}.cls-125{clip-path:url(#clip-path-74);}.cls-126{clip-path:url(#clip-path-75);}.cls-127{clip-path:url(#clip-path-76);}.cls-128{clip-path:url(#clip-path-77);}.cls-129{clip-path:url(#clip-path-78);}.cls-130{clip-path:url(#clip-path-79);}.cls-131{clip-path:url(#clip-path-80);}.cls-132{clip-path:url(#clip-path-81);}.cls-133{clip-path:url(#clip-path-82);}.cls-134{clip-path:url(#clip-path-83);}.cls-135{clip-path:url(#clip-path-84);}.cls-136{clip-path:url(#clip-path-85);}.cls-137{clip-path:url(#clip-path-86);}.cls-138{clip-path:url(#clip-path-87);}.cls-139{clip-path:url(#clip-path-88);}.cls-140{clip-path:url(#clip-path-89);}.cls-141{clip-path:url(#clip-path-90);}.cls-142{clip-path:url(#clip-path-91);}.cls-143{clip-path:url(#clip-path-92);}.clsLine truncated
|
||||||
|
After Width: | Height: | Size: 104 KiB |
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 484.83 484.83"><defs><style>.cls-1{fill:none;}.cls-2{isolation:isolate;}.cls-3{fill:url(#未命名的渐变_64);}.cls-4{fill:url(#未命名的渐变_61);}.cls-5{fill:url(#未命名的渐变_62);}.cls-6{fill:url(#未命名的渐变_64-2);}.cls-7{fill:url(#未命名的渐变_61-2);}.cls-8{fill:url(#未命名的渐变_62-2);}.cls-9{fill:url(#未命名的渐变_34);}.cls-10{fill:url(#未命名的渐变_60);}.cls-11{fill:url(#未命名的渐变_64-3);}.cls-12{fill:url(#未命名的渐变_68);}.cls-13{fill:url(#未命名的渐变_64-4);}.cls-14,.cls-50{mix-blend-mode:multiply;}.cls-14{opacity:0.35;}.cls-15{fill:#9e600b;}.cls-16{clip-path:url(#clip-path);}.cls-17{fill:#955a07;}.cls-18{fill:#995c09;}.cls-19{fill:#9d5f0b;}.cls-20{fill:#a0610d;}.cls-21{fill:#a4640e;}.cls-22{fill:#a86610;}.cls-23{fill:#ac6912;}.cls-24{clip-path:url(#clip-path-2);}.cls-25{fill:#af6b13;}.cls-26{fill:#b36e15;}.cls-27{clip-path:url(#clip-path-3);}.cls-28{clip-path:url(#clip-path-4);}.cls-29{clip-path:url(#clip-path-5);}.cls-30{fill:#915704;}.cls-31{fill:#b56f15;}.cls-32{clip-path:url(#clip-path-6);}.cls-33{clip-path:url(#clip-path-7);}.cls-34{clip-path:url(#clip-path-8);}.cls-35{clip-path:url(#clip-path-9);}.cls-36{clip-path:url(#clip-path-10);}.cls-37{clip-path:url(#clip-path-11);}.cls-38{clip-path:url(#clip-path-12);}.cls-39{fill:#ab6811;}.cls-40{clip-path:url(#clip-path-13);}.cls-41{clip-path:url(#clip-path-14);}.cls-42{clip-path:url(#clip-path-15);}.cls-43{clip-path:url(#clip-path-16);}.cls-44{clip-path:url(#clip-path-17);}.cls-45{fill:url(#未命名的渐变_58);}.cls-46{clip-path:url(#clip-path-18);}.cls-47{fill:url(#未命名的渐变_34-2);}.cls-48{fill:url(#未命名的渐变_34-3);}.cls-49{fill:#438aca;}.cls-50{opacity:0.4;}.cls-51{fill:#9a9b9b;}.cls-52{clip-path:url(#clip-path-19);}.cls-53{fill:#9f9fa0;}.cls-54{fill:#a3a3a4;}.cls-55{fill:#a7a8a8;}.cls-56{fill:#abacac;}.cls-57{clip-path:url(#clip-path-20);}.cls-58{clip-path:url(#clip-path-21);}.cls-59{fill:#a3a3a3;}.cls-60{clip-path:url(#clip-path-22);}.cls-61{fill:#b7b8b8;}.cls-62{clip-path:url(#clip-path-23);}.cls-63{fill:#afb0b0;}.cls-64{fill:#b3b4b4;}.cls-65{clip-path:url(#clip-path-24);}.cls-66{fill:#858585;}.cls-67{clip-path:url(#clip-path-25);}.cls-68{clip-path:url(#clip-path-26);}.cls-69{clip-path:url(#clip-path-27);}.cls-70{clip-path:url(#clip-path-28);}.cls-71{clip-path:url(#clip-path-29);}.cls-72{fill:gray;}.cls-73{clip-path:url(#clip-path-30);}.cls-74{clip-path:url(#clip-path-31);}.cls-75{clip-path:url(#clip-path-32);}.cls-76{clip-path:url(#clip-path-33);}.cls-77{clip-path:url(#clip-path-34);}.cls-78{clip-path:url(#clip-path-35);}.cls-79{fill:#9e9e9e;}.cls-80{fill:#999;}.cls-81{fill:#949494;}.cls-82{fill:#8f8f8f;}.cls-83{fill:#8a8a8a;}.cls-84{clip-path:url(#clip-path-36);}.cls-85{fill:#868686;}.cls-86{fill:#a0a0a0;}.cls-87{clip-path:url(#clip-path-37);}.cls-88{fill:#afafb0;}.cls-89{clip-path:url(#clip-path-38);}.cls-90{clip-path:url(#clip-path-39);}.cls-91{clip-path:url(#clip-path-40);}.cls-92{clip-path:url(#clip-path-41);}.cls-93{clip-path:url(#clip-path-42);}.cls-94{clip-path:url(#clip-path-43);}.cls-95{fill:#9b9b9c;}.cls-96{clip-path:url(#clip-path-44);}.cls-97{fill:#9f9f9f;}.cls-98{fill:#b4b5b5;}.cls-99{fill:#dedede;}.cls-100{clip-path:url(#clip-path-45);}.cls-101{fill:#e2e3e3;}.cls-102{clip-path:url(#clip-path-46);}.cls-103{clip-path:url(#clip-path-47);}.cls-104{clip-path:url(#clip-path-48);}.cls-105{clip-path:url(#clip-path-49);}.cls-106{clip-path:url(#clip-path-50);}.cls-107{clip-path:url(#clip-path-51);}.cls-108{clip-path:url(#clip-path-52);}.cls-109{clip-path:url(#clip-path-53);}.cls-110{clip-path:url(#clip-path-54);}.cls-111{clip-path:url(#clip-path-55);}.cls-112{clip-path:url(#clip-path-56);}.cls-113{clip-path:url(#clip-path-57);}.cls-114{clip-path:url(#clip-path-58);}.cls-115{clip-path:url(#clip-path-59);}.cls-116{clip-path:url(#clip-path-60);}.cls-117{clip-path:url(#clip-path-61);}.cls-118{clip-path:url(#clip-path-62);}.cls-119{clip-path:url(#clip-path-63);}.cls-120{clip-path:url(#clip-path-64);}.cls-121{fill:#9fa0a0;}.cls-122{clip-path:url(#clip-path-65);}.cls-123{clip-path:url(#clip-path-66);}.cls-124{clip-path:url(#clip-path-67);}.cls-125{clip-path:url(#clip-path-68);}.cls-126{clip-path:url(#clip-path-69);}.cls-127{clip-path:url(#clip-path-70);}.cls-128{clip-path:url(#clip-path-71);}.cls-129{clip-path:url(#clip-path-72);}.cls-130{clip-path:url(#clip-path-73);}.cls-131{clip-path:url(#clip-path-74);}.cls-132{clip-path:url(#clip-path-75);}.cls-133{clip-path:url(#clip-path-76);}.cls-134{clip-path:url(#clip-path-77);}.cls-135{clip-path:url(#clip-path-78);}.cls-136{clip-path:url(#clip-path-79);}.cls-137{clip-path:url(#clip-path-80);}.cls-138{clip-path:url(#clip-path-81);}.cls-139{clip-path:url(#clip-path-82);}.cls-140{clip-path:url(#clip-path-83);}.cls-141{clip-path:url(#clip-path-84);}.cls-142{clip-path:url(#clip-path-85);}.cls-143{clip-path:url(#clip-path-86);Line truncated
|
||||||
|
After Width: | Height: | Size: 106 KiB |
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 484.83 484.83"><defs><style>.cls-1{fill:none;}.cls-2{isolation:isolate;}.cls-3{fill:url(#未命名的渐变_78);}.cls-4{fill:url(#未命名的渐变_78-2);}.cls-5{fill:url(#未命名的渐变_78-3);}.cls-6{fill:url(#未命名的渐变_73);}.cls-7{fill:url(#未命名的渐变_78-4);}.cls-8{fill:#f18f56;}.cls-9{fill:url(#未命名的渐变_73-2);}.cls-10,.cls-35{mix-blend-mode:multiply;}.cls-10{opacity:0.35;}.cls-11{clip-path:url(#clip-path);}.cls-12{fill:#b17016;}.cls-13{fill:#b47217;}.cls-14{fill:#b87519;}.cls-15{fill:#bc771a;}.cls-16{fill:#c07a1b;}.cls-17{fill:#c47c1c;}.cls-18{fill:#ad6d14;}.cls-19{fill:#a96a13;}.cls-20{fill:#a56711;}.cls-21{fill:#a0650f;}.cls-22{fill:#9c620d;}.cls-23{fill:url(#未命名的渐变_58);}.cls-24{fill:#c77e1d;}.cls-25{clip-path:url(#clip-path-2);}.cls-26{clip-path:url(#clip-path-3);}.cls-27{clip-path:url(#clip-path-4);}.cls-28{fill:#985f0a;}.cls-29{clip-path:url(#clip-path-5);}.cls-30{clip-path:url(#clip-path-6);}.cls-31{clip-path:url(#clip-path-7);}.cls-32{clip-path:url(#clip-path-8);}.cls-33{fill:url(#未命名的渐变_13);}.cls-34{fill:url(#未命名的渐变_51);}.cls-35{opacity:0.4;}.cls-36{fill:#9a9b9b;}.cls-37{clip-path:url(#clip-path-9);}.cls-38{fill:#9f9fa0;}.cls-39{fill:#a3a3a4;}.cls-40{fill:#a7a8a8;}.cls-41{fill:#abacac;}.cls-42{clip-path:url(#clip-path-10);}.cls-43{clip-path:url(#clip-path-11);}.cls-44{fill:#a3a3a3;}.cls-45{clip-path:url(#clip-path-12);}.cls-46{fill:#b7b8b8;}.cls-47{clip-path:url(#clip-path-13);}.cls-48{fill:#afb0b0;}.cls-49{fill:#b3b4b4;}.cls-50{clip-path:url(#clip-path-14);}.cls-51{fill:#858585;}.cls-52{clip-path:url(#clip-path-15);}.cls-53{clip-path:url(#clip-path-16);}.cls-54{clip-path:url(#clip-path-17);}.cls-55{clip-path:url(#clip-path-18);}.cls-56{clip-path:url(#clip-path-19);}.cls-57{fill:gray;}.cls-58{clip-path:url(#clip-path-20);}.cls-59{clip-path:url(#clip-path-21);}.cls-60{clip-path:url(#clip-path-22);}.cls-61{clip-path:url(#clip-path-23);}.cls-62{clip-path:url(#clip-path-24);}.cls-63{clip-path:url(#clip-path-25);}.cls-64{fill:#9e9e9e;}.cls-65{fill:#999;}.cls-66{fill:#949494;}.cls-67{fill:#8f8f8f;}.cls-68{fill:#8a8a8a;}.cls-69{clip-path:url(#clip-path-26);}.cls-70{fill:#868686;}.cls-71{fill:#a0a0a0;}.cls-72{clip-path:url(#clip-path-27);}.cls-73{fill:#afafb0;}.cls-74{clip-path:url(#clip-path-28);}.cls-75{clip-path:url(#clip-path-29);}.cls-76{clip-path:url(#clip-path-30);}.cls-77{clip-path:url(#clip-path-31);}.cls-78{clip-path:url(#clip-path-32);}.cls-79{clip-path:url(#clip-path-33);}.cls-80{fill:#9b9b9c;}.cls-81{clip-path:url(#clip-path-34);}.cls-82{fill:#9f9f9f;}.cls-83{fill:#b4b5b5;}.cls-84{fill:#dedede;}.cls-85{clip-path:url(#clip-path-35);}.cls-86{fill:#e2e3e3;}.cls-87{clip-path:url(#clip-path-36);}.cls-88{clip-path:url(#clip-path-37);}.cls-89{clip-path:url(#clip-path-38);}.cls-90{clip-path:url(#clip-path-39);}.cls-91{clip-path:url(#clip-path-40);}.cls-92{clip-path:url(#clip-path-41);}.cls-93{clip-path:url(#clip-path-42);}.cls-94{clip-path:url(#clip-path-43);}.cls-95{clip-path:url(#clip-path-44);}.cls-96{clip-path:url(#clip-path-45);}.cls-97{clip-path:url(#clip-path-46);}.cls-98{clip-path:url(#clip-path-47);}.cls-99{clip-path:url(#clip-path-48);}.cls-100{clip-path:url(#clip-path-49);}.cls-101{clip-path:url(#clip-path-50);}.cls-102{clip-path:url(#clip-path-51);}.cls-103{clip-path:url(#clip-path-52);}.cls-104{clip-path:url(#clip-path-53);}.cls-105{clip-path:url(#clip-path-54);}.cls-106{fill:#9fa0a0;}.cls-107{clip-path:url(#clip-path-55);}.cls-108{clip-path:url(#clip-path-56);}.cls-109{clip-path:url(#clip-path-57);}.cls-110{clip-path:url(#clip-path-58);}.cls-111{clip-path:url(#clip-path-59);}.cls-112{clip-path:url(#clip-path-60);}.cls-113{clip-path:url(#clip-path-61);}.cls-114{clip-path:url(#clip-path-62);}.cls-115{clip-path:url(#clip-path-63);}.cls-116{clip-path:url(#clip-path-64);}.cls-117{clip-path:url(#clip-path-65);}.cls-118{clip-path:url(#clip-path-66);}.cls-119{clip-path:url(#clip-path-67);}.cls-120{clip-path:url(#clip-path-68);}.cls-121{clip-path:url(#clip-path-69);}.cls-122{clip-path:url(#clip-path-70);}.cls-123{clip-path:url(#clip-path-71);}.cls-124{clip-path:url(#clip-path-72);}.cls-125{clip-path:url(#clip-path-73);}.cls-126{clip-path:url(#clip-path-74);}.cls-127{clip-path:url(#clip-path-75);}.cls-128{clip-path:url(#clip-path-76);}.cls-129{clip-path:url(#clip-path-77);}.cls-130{clip-path:url(#clip-path-78);}.cls-131{clip-path:url(#clip-path-79);}.cls-132{clip-path:url(#clip-path-80);}.cls-133{clip-path:url(#clip-path-81);}.cls-134{clip-path:url(#clip-path-82);}.cls-135{clip-path:url(#clip-path-83);}.cls-136{clip-path:url(#clip-path-84);}.cls-137{clip-path:url(#clip-path-85);}.cls-138{clip-path:url(#clip-path-86);}.cls-139{clip-path:url(#clip-path-87);}.cls-140{clip-path:url(#clip-path-88);}.cls-141{clip-path:url(#clip-path-89);}.cls-142{clip-path:url(#clip-path-90);}.cls-143{clip-path:url(#clip-path-91);}.cls-144{clip-path:url(#cLine truncated
|
||||||
|
After Width: | Height: | Size: 134 KiB |
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 484.83 484.83"><defs><style>.cls-1{fill:none;}.cls-2{isolation:isolate;}.cls-3{fill:url(#未命名的渐变_64);}.cls-4{fill:url(#未命名的渐变_61);}.cls-5{fill:url(#未命名的渐变_62);}.cls-6{fill:url(#未命名的渐变_64-2);}.cls-7{fill:url(#未命名的渐变_61-2);}.cls-8{fill:url(#未命名的渐变_62-2);}.cls-9{fill:url(#未命名的渐变_34);}.cls-10{fill:url(#未命名的渐变_60);}.cls-11{fill:url(#未命名的渐变_64-3);}.cls-12{fill:url(#未命名的渐变_68);}.cls-13{fill:url(#未命名的渐变_64-4);}.cls-14{fill:url(#未命名的渐变_34-2);}.cls-15{fill:#438aca;}.cls-130,.cls-16,.cls-207{mix-blend-mode:multiply;}.cls-16{opacity:0.35;}.cls-17{clip-path:url(#clip-path);}.cls-18{fill:#b17016;}.cls-19{fill:#b47217;}.cls-20{fill:#b87519;}.cls-21{fill:#bc771a;}.cls-22{fill:#c07a1b;}.cls-23{fill:#c47c1c;}.cls-24{fill:#ad6d14;}.cls-25{fill:#a96a13;}.cls-26{fill:#a56711;}.cls-27{fill:#a0650f;}.cls-28{fill:#9c620d;}.cls-29{fill:url(#未命名的渐变_58);}.cls-30{fill:#c77e1d;}.cls-31{clip-path:url(#clip-path-2);}.cls-32{clip-path:url(#clip-path-3);}.cls-33{clip-path:url(#clip-path-4);}.cls-34{fill:#985f0a;}.cls-35{clip-path:url(#clip-path-5);}.cls-36{clip-path:url(#clip-path-6);}.cls-37{clip-path:url(#clip-path-7);}.cls-38{clip-path:url(#clip-path-8);}.cls-39{fill:url(#未命名的渐变_13);}.cls-40{clip-path:url(#clip-path-9);}.cls-41{fill:url(#未命名的渐变_58-2);}.cls-42{clip-path:url(#clip-path-10);}.cls-43{clip-path:url(#clip-path-11);}.cls-44{clip-path:url(#clip-path-12);}.cls-45{clip-path:url(#clip-path-13);}.cls-46{clip-path:url(#clip-path-14);}.cls-47{clip-path:url(#clip-path-15);}.cls-48{clip-path:url(#clip-path-16);}.cls-49{fill:url(#未命名的渐变_13-2);}.cls-50{clip-path:url(#clip-path-17);}.cls-51{fill:url(#未命名的渐变_58-3);}.cls-52{clip-path:url(#clip-path-18);}.cls-53{clip-path:url(#clip-path-19);}.cls-54{clip-path:url(#clip-path-20);}.cls-55{clip-path:url(#clip-path-21);}.cls-56{clip-path:url(#clip-path-22);}.cls-57{clip-path:url(#clip-path-23);}.cls-58{clip-path:url(#clip-path-24);}.cls-59{fill:url(#未命名的渐变_13-3);}.cls-60{clip-path:url(#clip-path-25);}.cls-61{fill:url(#未命名的渐变_58-4);}.cls-62{clip-path:url(#clip-path-26);}.cls-63{clip-path:url(#clip-path-27);}.cls-64{clip-path:url(#clip-path-28);}.cls-65{clip-path:url(#clip-path-29);}.cls-66{clip-path:url(#clip-path-30);}.cls-67{clip-path:url(#clip-path-31);}.cls-68{clip-path:url(#clip-path-32);}.cls-69{fill:url(#未命名的渐变_13-4);}.cls-70{clip-path:url(#clip-path-33);}.cls-71{fill:url(#未命名的渐变_58-5);}.cls-72{clip-path:url(#clip-path-34);}.cls-73{clip-path:url(#clip-path-35);}.cls-74{clip-path:url(#clip-path-36);}.cls-75{clip-path:url(#clip-path-37);}.cls-76{clip-path:url(#clip-path-38);}.cls-77{clip-path:url(#clip-path-39);}.cls-78{clip-path:url(#clip-path-40);}.cls-79{fill:url(#未命名的渐变_13-5);}.cls-80{clip-path:url(#clip-path-41);}.cls-81{fill:url(#未命名的渐变_58-6);}.cls-82{clip-path:url(#clip-path-42);}.cls-83{clip-path:url(#clip-path-43);}.cls-84{clip-path:url(#clip-path-44);}.cls-85{clip-path:url(#clip-path-45);}.cls-86{clip-path:url(#clip-path-46);}.cls-87{clip-path:url(#clip-path-47);}.cls-88{clip-path:url(#clip-path-48);}.cls-89{fill:url(#未命名的渐变_13-6);}.cls-90{clip-path:url(#clip-path-49);}.cls-91{fill:url(#未命名的渐变_58-7);}.cls-92{clip-path:url(#clip-path-50);}.cls-93{clip-path:url(#clip-path-51);}.cls-94{clip-path:url(#clip-path-52);}.cls-95{clip-path:url(#clip-path-53);}.cls-96{clip-path:url(#clip-path-54);}.cls-97{clip-path:url(#clip-path-55);}.cls-98{clip-path:url(#clip-path-56);}.cls-99{fill:url(#未命名的渐变_13-7);}.cls-100{clip-path:url(#clip-path-57);}.cls-101{fill:url(#未命名的渐变_58-8);}.cls-102{clip-path:url(#clip-path-58);}.cls-103{clip-path:url(#clip-path-59);}.cls-104{clip-path:url(#clip-path-60);}.cls-105{clip-path:url(#clip-path-61);}.cls-106{clip-path:url(#clip-path-62);}.cls-107{clip-path:url(#clip-path-63);}.cls-108{clip-path:url(#clip-path-64);}.cls-109{fill:url(#未命名的渐变_13-8);}.cls-110{clip-path:url(#clip-path-65);}.cls-111{fill:url(#未命名的渐变_58-9);}.cls-112{clip-path:url(#clip-path-66);}.cls-113{clip-path:url(#clip-path-67);}.cls-114{clip-path:url(#clip-path-68);}.cls-115{clip-path:url(#clip-path-69);}.cls-116{clip-path:url(#clip-path-70);}.cls-117{clip-path:url(#clip-path-71);}.cls-118{clip-path:url(#clip-path-72);}.cls-119{fill:url(#未命名的渐变_13-9);}.cls-120{clip-path:url(#clip-path-73);}.cls-121{fill:url(#未命名的渐变_58-10);}.cls-122{clip-path:url(#clip-path-74);}.cls-123{clip-path:url(#clip-path-75);}.cls-124{clip-path:url(#clip-path-76);}.cls-125{clip-path:url(#clip-path-77);}.cls-126{clip-path:url(#clip-path-78);}.cls-127{clip-path:url(#clip-path-79);}.cls-128{clip-path:url(#clip-path-80);}.cls-129{fill:url(#未命名的渐变_13-10);}.clsLine truncated
|
||||||
|
After Width: | Height: | Size: 305 KiB |
@@ -0,0 +1,108 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
viewBox="0 0 484.83 484.83"
|
||||||
|
version="1.1"
|
||||||
|
id="svg45828"
|
||||||
|
sodipodi:docname="medal-27.svg"
|
||||||
|
inkscape:version="1.0.2 (e86c8708, 2021-01-15)">
|
||||||
|
<metadata
|
||||||
|
id="metadata45832">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<sodipodi:namedview
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1"
|
||||||
|
objecttolerance="10"
|
||||||
|
gridtolerance="10"
|
||||||
|
guidetolerance="10"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:window-width="1575"
|
||||||
|
inkscape:window-height="963"
|
||||||
|
id="namedview45830"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="0.61838847"
|
||||||
|
inkscape:cx="-81.169238"
|
||||||
|
inkscape:cy="95.498303"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="25"
|
||||||
|
inkscape:window-maximized="0"
|
||||||
|
inkscape:current-layer="svg45828" />
|
||||||
|
<defs
|
||||||
|
id="defs45805">
|
||||||
|
<style
|
||||||
|
id="style45803">.cls-1{isolation:isolate;}.cls-2{fill:#f19166;}.cls-3{fill:#db5e28;}.cls-4{fill:#d9531d;}.cls-5{fill:#f5b393;}.cls-6{fill:#fdeae4;}.cls-7{mix-blend-mode:screen;opacity:0.75;}.cls-8{fill:#ef7e53;}</style>
|
||||||
|
</defs>
|
||||||
|
<g
|
||||||
|
class="cls-1"
|
||||||
|
id="g45826"
|
||||||
|
transform="matrix(1.0637453,0,0,1.0349505,-30.085882,-16.838809)">
|
||||||
|
<g
|
||||||
|
id="图层_1"
|
||||||
|
data-name="图层 1">
|
||||||
|
<circle
|
||||||
|
class="cls-2"
|
||||||
|
cx="256.34"
|
||||||
|
cy="266.16"
|
||||||
|
r="215.63"
|
||||||
|
id="circle45807" />
|
||||||
|
<circle
|
||||||
|
class="cls-3"
|
||||||
|
cx="256.34"
|
||||||
|
cy="266.16"
|
||||||
|
r="194.00999"
|
||||||
|
id="circle45809" />
|
||||||
|
<path
|
||||||
|
class="cls-2"
|
||||||
|
d="M 402.91,57.61 C 389,46.7 357.29,25.39 314.52,19.22 a 11.22,11.22 0 0 0 -11.21,5.32 l -47,78 -47,-78 a 11.2,11.2 0 0 0 -11.2,-5.32 c -42.77,6.17 -74.52,27.48 -88.39,38.39 a 11.22,11.22 0 0 0 -2.59,14.77 l 56.92,91.2 92.24,-26.16 92.24,26.16 56.92,-91.2 a 11.23,11.23 0 0 0 -2.54,-14.77 z"
|
||||||
|
id="path45811" />
|
||||||
|
<path
|
||||||
|
class="cls-4"
|
||||||
|
d="M 129.44,44.13 200,153.4 250,139.21 176.43,23.81 c 0,0 -32.43,10.72 -46.99,20.32 z"
|
||||||
|
id="path45813" />
|
||||||
|
<path
|
||||||
|
class="cls-4"
|
||||||
|
d="m 385.74,44.89 -70.57,109.27 -50,-14.2 73.6,-115.39 c 0,0 32.43,10.72 46.97,20.32 z"
|
||||||
|
id="path45815" />
|
||||||
|
<circle
|
||||||
|
class="cls-5"
|
||||||
|
cx="257.91"
|
||||||
|
cy="266.60999"
|
||||||
|
r="152.61"
|
||||||
|
id="circle45817" />
|
||||||
|
<circle
|
||||||
|
class="cls-6"
|
||||||
|
cx="257.91"
|
||||||
|
cy="266.60999"
|
||||||
|
r="118.74"
|
||||||
|
id="circle45819" />
|
||||||
|
<image
|
||||||
|
class="cls-7"
|
||||||
|
width="198"
|
||||||
|
height="175"
|
||||||
|
transform="translate(161.6,184.86)"
|
||||||
|
xlink:href="data:image/png;base64,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 truncated
|
||||||
|
id="image45821" />
|
||||||
|
<path
|
||||||
|
class="cls-8"
|
||||||
|
d="m 223.82,259.31 74.31,-0.33 -35.74,89.84 z m 8.51,-32.56 56.61,0.5 10,21.88 -73.47,-0.5 z m -16.19,21.25 -44.76,-18.7 24.05,-17.87 28.72,14.86 z m -44.76,-7.85 42.42,18.85 45.59,89.17 z m 137.43,18.7 39.75,-20.54 -83.66,109.34 z m -0.83,-11 -11.19,-23 25.55,-14.2 22,18.54 z M 231.5,215.73 221.81,213.22 203.61,203 225,195.36 h 69.8 l 21.2,8.85 -20.38,9.85 -6.84,1.67 z m 0,0"
|
||||||
|
id="path45823" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 18 KiB |
@@ -0,0 +1,104 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
viewBox="0 0 484.83 484.83"
|
||||||
|
version="1.1"
|
||||||
|
id="svg45859"
|
||||||
|
sodipodi:docname="medal-28.svg"
|
||||||
|
inkscape:version="1.0.2 (e86c8708, 2021-01-15)">
|
||||||
|
<metadata
|
||||||
|
id="metadata45863">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<sodipodi:namedview
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1"
|
||||||
|
objecttolerance="10"
|
||||||
|
gridtolerance="10"
|
||||||
|
guidetolerance="10"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:window-width="1574"
|
||||||
|
inkscape:window-height="950"
|
||||||
|
id="namedview45861"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="0.87453337"
|
||||||
|
inkscape:cx="60.159396"
|
||||||
|
inkscape:cy="194.12488"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="25"
|
||||||
|
inkscape:window-maximized="0"
|
||||||
|
inkscape:current-layer="svg45859" />
|
||||||
|
<defs
|
||||||
|
id="defs45836">
|
||||||
|
<style
|
||||||
|
id="style45834">.cls-1{isolation:isolate;}.cls-2{fill:#6d85bc;}.cls-3{fill:#2f4a82;}.cls-4{fill:#a4b8df;}.cls-5{fill:#385696;}.cls-6{fill:#6980b0;}.cls-7{fill:#dee6f5;}.cls-8{mix-blend-mode:screen;opacity:0.75;}</style>
|
||||||
|
</defs>
|
||||||
|
<g
|
||||||
|
class="cls-1"
|
||||||
|
id="g45857"
|
||||||
|
transform="matrix(1.063635,0,0,1.0356822,-19.761102,-15.420463)">
|
||||||
|
<g
|
||||||
|
id="图层_1"
|
||||||
|
data-name="图层 1">
|
||||||
|
<circle
|
||||||
|
class="cls-2"
|
||||||
|
cx="247.67999"
|
||||||
|
cy="264.66"
|
||||||
|
r="215.63"
|
||||||
|
id="circle45838" />
|
||||||
|
<circle
|
||||||
|
class="cls-3"
|
||||||
|
cx="247.67999"
|
||||||
|
cy="264.66"
|
||||||
|
r="194.00999"
|
||||||
|
id="circle45840" />
|
||||||
|
<path
|
||||||
|
class="cls-4"
|
||||||
|
d="M 394.25,56.11 C 380.38,45.2 348.63,23.9 305.86,17.72 A 11.2,11.2 0 0 0 294.66,23 l -47,78 -47,-78 a 11.2,11.2 0 0 0 -11.2,-5.32 C 146.73,23.9 115,45.2 101.11,56.11 a 11.23,11.23 0 0 0 -2.59,14.77 l 56.92,91.2 92.24,-26.16 92.24,26.16 56.92,-91.2 a 11.22,11.22 0 0 0 -2.59,-14.77 z"
|
||||||
|
id="path45842" />
|
||||||
|
<path
|
||||||
|
class="cls-5"
|
||||||
|
d="m 120.78,42.63 70.57,109.27 50,-14.19 -73.58,-115.4 c 0,0 -32.46,10.69 -46.99,20.32 z"
|
||||||
|
id="path45844" />
|
||||||
|
<path
|
||||||
|
class="cls-5"
|
||||||
|
d="m 377.08,43.39 -70.57,109.27 -50,-14.19 73.61,-115.4 c 0,0 32.43,10.72 46.96,20.32 z"
|
||||||
|
id="path45846" />
|
||||||
|
<path
|
||||||
|
class="cls-6"
|
||||||
|
d="M 287.55,124.83 H 204.09 A 44.89,44.89 0 0 0 172.35,138 l -59,59 a 44.89,44.89 0 0 0 -13.15,31.74 v 83.46 a 44.86,44.86 0 0 0 13.15,31.74 l 59,59 a 44.86,44.86 0 0 0 31.74,13.15 h 83.46 A 44.89,44.89 0 0 0 319.29,403 l 59,-59 a 44.89,44.89 0 0 0 13.14,-31.74 V 228.73 A 44.93,44.93 0 0 0 378.31,197 l -59,-59 a 44.93,44.93 0 0 0 -31.76,-13.17 z"
|
||||||
|
id="path45848" />
|
||||||
|
<path
|
||||||
|
class="cls-7"
|
||||||
|
d="m 278.92,165 h -60.47 a 32.51,32.51 0 0 0 -23,9.52 l -42.76,42.76 a 32.51,32.51 0 0 0 -9.52,23 v 60.42 a 32.51,32.51 0 0 0 9.52,23 l 42.76,42.76 a 32.52,32.52 0 0 0 23,9.53 h 60.47 a 32.52,32.52 0 0 0 23,-9.53 l 42.76,-42.76 a 32.52,32.52 0 0 0 9.53,-23 v -60.47 a 32.52,32.52 0 0 0 -9.53,-23 l -42.76,-42.76 a 32.51,32.51 0 0 0 -23,-9.47 z"
|
||||||
|
id="path45850" />
|
||||||
|
<image
|
||||||
|
class="cls-8"
|
||||||
|
width="198"
|
||||||
|
height="175"
|
||||||
|
transform="translate(150.94,194.97)"
|
||||||
|
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMYAAACvCAYAAACmYKHPAAAACXBIWXMAAAsSAAALEgHS3X78AAAgAElEQVR4Xu2d6XbjOLKEQ7Zc5dp7unvmvv/zzfT01Obd0v1BfoVgMrmIkmwtzHNwaMkSRQEZiIgEaC/W67XmmGOOZlwMvWCOOc4xlkMvOOVYLBaLodeca6zPXEoszun7GxAcEF0/n1t4IqQ/nxNYTh4YAQxZU3I8x1gnx9h+/f7UQXKSUiphhov654vQFnb0159jeOKv7Jj9vKaLTxUgJ8MYCRg86S/rn5f1z94cJB7nAJI4+A6AlaTnpPE8r5UqfJxGItVx1MAYAMOFmgC4sra0Yxc4zg0YyCUS/6luj3bk5wiUhtw6BZAcnZQaCQbYAQBcSXoj6a21N2qDw30H5z7V6ALFSk0gPEi6t/agHCS/JNcpyKyjYYwOE81MH8EAIBwM15Le2TGCo0tSnUM4MGCKh7rdSbqt2501BwnvASA0zn10IDl4xgiA6JJJkRkAxLUKEN5be6cCjj5gnDJIuhgDtoApbiXd1O1nfby1BpNkLPLLyB8bixw0MGpQODMAiD6ZdG0NEHyof+b4vv49rDEzRjcwHBQ/Jf2wn/kdbBJZ5Ghl1sECI4AiggFWILldIkV2ABAOCl4PY0SPcU7gWNvRjXdkDAfGD0nf1QRKBAgs4jLrF0gWi8VBg+MggWGgcKnkrJABIGMF/9mZwkERzbd0vsBYqyQwrIGniOD4Ho40l1q9LHLI4Dg4YCTyaakikXz2/yTpY2iRGdxPOCBgnK6K1DkDwytTzhyY8J/WvluLIMmkFgAhDhYcBweMOlxCXalK5veqwPBZ0hdrn+vnP6kA4521rhLtDIpmkJxxgQ/PgTz6pCKvnCm+S/qmAhT/mUnoRlX/OhDwHwcVhwoMqUgpGOOdKlb4Iun3uv1WN8ABW0R28IW9bMX73HxFV6xD89Xva7Xl1Uc1AfJZFSC+qowDoAAQyLVfJd3FYrE4NNY4RGBkUgrWAByfVAHkH3X7oiKl3qswBIDo2gISAXHO4MjKt2tV/Q9A+nyeT0pe1FiovWj4qCY41ocGjoMCRseqtssqB4kv2vkA4SeYqVwy9cmmcwaF1JQ49AXgoP+f1RwHL5nTz7wXGeb+5FbtKuBF/frVIYHjVYFhQJDaYPDfRWP4a6axI++Nax7+OJ773MEQI+sPl0A89ueQRhj1WNzI5OulHf2868Vi8euzXhMkLw6MZGuHwjEmLzSc1dVhhmzfUwaGGQjTI/qPOFHhRZ6ShmySyjhc2nNxknv11fIXBYaVYpnZ/ehJy/NS1UlURX6quYWDmcsHxheS0MVX9euyKhQxg6aKLq/hVSomKky4r218U6lIUbKlVPtcn5dq44WaW0d8HN1/vDg4XgQYxhJR5jjFRoqWPX5S1bkOBhahKCPGDW73qgyhm0E34g7KLM4FKDHh1naMk07cXMg6xQ8VQPwvtO/1ax7qcy1UxiHKMS8Pv+pi4N6BEViCpGTWdx3qDMFgQK1rVR0rNUGBqbtJ2uf695hyr1R1SS7Zca3TB0dkB45xBvct6N7nlGm/WftaN2eNW1WJvlCRvq4KfEx9m3ujgrVYLFYvBY69AqNjv1Pc8EdHXdZv81njQWXmWNfPwSBxkOKCE6uzvr6RbTfPWEs6fVAQfYBANpGo7u98Ic8bq9+seN+rCYpY1aKfGW8+gyrWQoVB9FLg2AswEukEK/jWDi+vvlW5FmcDEp/Zg8Hy2cXBETe6+cq4r3P0mXafyU4dHCSYm16KHS6bSNIhQPhmQjzFSmXyYeMnzSUVY+4r6YzLnaqxeDFw7BwYiXRylmAL+CdrH1U6Sao6k+3Ovi8HgNDhj2oDhPe4EYzg+Kjm6njcN4X/OGX2iCzhXiKa6z7ZFBkCk/1Un/NCzZ3QLAR+VHNCRCrfqMgxxiQtliwWi5WkvfmOnQIjkU5sEadTPqpKUrZyfFGVsO/r1zIreKXD99w4QB5VDSYDgREHIA4O30/l4PDt513gkHTywHBQxG0fzsCMRSaZHBALNRUCYPAxoDACYzzUn8V2El89zzygpP1VrHYCjAHp5CzBNg7f6/RZ3cBgEKKhi4OxUtGyULJr4W8qA+M7ceNKebbjVjptYLh8cvObMXDcPUsFkDEAEG9Uxt238HxWmaRI/qXKBPdThU2cMVzi8rOb8p2DY2tgjJBOzhK/S/rDjr+pzRhIKQbkq9pbyr+pWSOnk57tMWaR8/iW9Y/22HfhxipZi8JPKLrYIjPa9CGM7aZ6VZ+PcXeGAAhf1Nzs6ckfGcPZIhZHYpFkbxWrrYAxUjo5S/wh6c/66Jv/3qkJDAzfD3XfcxHZwwHiBp1B/qHmdvT34bGvdXQB49hB4okzBAz3Fw6GCAjGPcplbgtAMkdQ4CsvVMy3P++g8HYRGqphp6Z8EjA2lE7IJgABYzhbQKkLVR3OAPksH3Uq8iorD1LeAyBeBoTNrsPRZ6lzZQyvRN1be1DpUyQTgHirMk6MOYCAJfy2gMjOC5USvMtZgBEB4lLXx+gXOKTtTfnGwJgonTKmoKPopMv6I9aqBoqE9Rk+guOT+uvnGUC4Ztghlm3peJjQ49hBkjFGxhp+BAxuqjNADLFE3JLukw9j7pMSzQHBZzt7eD4SW5vyjYCxpXTCU/i9Ew4KB8ZK7cRli7mDw2+M6QIIEgtwPKkCTez0jK6PHQh9EYERdxw4GFAFLpk+qOkh/I5KGuMcF1bpZ+9f1jvcaGeguLLnMoDsxJSPAsYOpROdFQ2WfzEGyzsFgPjn4TkYhD6A3KgpCQAIwUBw7JqJPCZ1+AEF/ew/+3M++S3VLruiCtxYx8VUL4e7b4gyda1mf/s4eL45q0dg+LhtbcoHgbFD6fRZpXYda9RIFoDBz06nfC7M4TTOQPUBxKtYgMRlQvzcOFBElCPHFl1ySmqrgUtVY9Ull6KPYNLrWh+Kkw7BuC/ssV9LZI6lPb4Mjc/YypT3AiORTrDEVOnEekHXzOGd5WDxz3f2cFrvAwgmvYtFKPUS/pkOjjjDSs1EO+TIAJ2xhCfftZrrT96ij8gYossPSM2x9qDPeU0GkAgSB0sE3yRwdAIjgMITEinD7DFFOnlHyY7xZ9nrMloFHH0M8lXNKhaNa5CaWluqPi/OQlxXlB2eWIccGRhW9lwc72tVY/ebmirgdzVVQDTWcS0oKoIuQMRcWKp5TVE9eB44MOJ4/YpNwJECowMUVCGQTpElNpVOQzNHBAuDtylAaBlrcV46y0uRGEU6nj4hoVZqJ9ehhwMCo01bq+pXH+tPKsD4l6R/qgDDq02ZsfZZe2isCfo3vtfzcQxrdAJwLDg6GUMlQZZqdhQs4YDIFu2GpNNQJxHbAsQXBn21VWpWY3gMKK6tMeAODKo3x8Iafp1x3YJ9Z1LTx7lU/sOaL8zGBbkpgPCIY+zPdwGkiylSdh9TrWoBo6MkiwGDKf5UNXvQAAV6s6/DpObFj42pAIm696J+ry9mPdXnokzslS9kAtIgzrjOGocYngBct69ys1nwof7dUk0PB0BcnvoalFcWHRTStHGWmu+LMszH3Bvv8YnL17BiGbo3uhgjAgOTC7VGo/27yiySlWK3BYXHWIAAkiiHfC8W7V6ls96qMCOS8L2qZGGQuoAx2OGvGM4WbLRkqwwVu0dVfeS6PRY73qpIJ9TArseY4DyRCeL5+V58N98IyeRHCRdwbcYYdfBmpFRcxMtmjyFaldpfaJsYAkik2JXKnn9fdGKQVb/uvYquRk9/rF9HfzEQ0WccYqztCJh9LxrFiKv6OVag41h5Tni/Zkyx63CAXKr6Lm9U2M+B4LuB39WP3d8uJA3+9cMhj+Ed4bNH3EaRgYAZahGOnHtX0QUQv5aVmlUTZxFYUfURXf27KsP5h6oJ4J1Kwric4nvKjocYXDMr/9wU9E5FYl6o3C3n7OIzLiz5msHYAhRXB2Py03MxjQwYPrtnCRw13KO1B3sPCZOBhtgnQKTm53fNbHSuVIHng5oFhn/Wj9+r6mg/dwTGIQeJDjDY4s13cqCz8Ok3LLG9Bk+2b4D4ZEMDmHgH8i7zEltdWwaMSL2AILvHAXnhMwwXGWflmJhZIu8iImsQEdA+uAsVL+XbW1jM+lI/z8zq5zwmYDhj/FQ1qy5U5BUbL29VgBF9CDsHvATfNYlOiQwQjFv0EFwbC7cs3nKNviN4o3Hqk1LekcwcP5VXd9B3XsWhVBsBkoHEY5cd7DMNMwyd6ltCMO0AAx/lzQ24U/Hozn7F4Bp9PB0USCvuyqNvHux531rDGLv55jOmjl8XILhmryLCYFzXV0l/S/pvffyq6lrjXZ6jowsYjlKY4qfK7OCA4P5qVkE/qJjbaHABiRu4hdpVByWPN43IEC4LfL8UlYqlmouYfBf2/rgWdzl1LOGTBN/DCxLMvNylx9j7rPxNzWILimEb8z0GEF5azv44A3/c7W9r3+vXxT1xxKJvPaMPGD7T3qt8cS7Y/+gAHeYrzLBH3FQG42QsksksJY/7IqNg79i4HX2lppTya872/riUOrZgTJ3tnR0/qhrLtyoJxaQIMOI2EMZxU9aYCgiuheuJW32+2e8BhktmJuKV1P3vB1rAWK/X63qRj4R5UvOLkmhc7Hc1wRDbB7VZJFaIdi2zHNjIJ0BBAxhrlZI01wc4spV7gDH2Wg4l6BOum7UJFvAAyEcVGUJy7pI1dgUI3yTK80i9bOKjzKv6M4hUYvUxhssFN22ecF43ZrWY1gcSn5EjQHZh1iNbOCjcRNJBlyoLWM5wGSj47KFrOMRgwqPEyWTg8hE2YLZdaTessU9AOBjcdEsFEDGPnng+k1QtYIT7L2I4KKBiN+Y/1JQjDpBP4egA2ZVZ906P3gKzhpRCKixUfR6zZwSsA4M4VlB4grB+AzioxjE2P1T8GKzhCTrEGms7SvsHLine truncated
|
||||||
|
id="image45852" />
|
||||||
|
<path
|
||||||
|
class="cls-3"
|
||||||
|
d="m 213.8,269.5 74.31,-0.33 -35.74,89.83 z m 8.51,-32.56 56.61,0.5 10,21.87 -73.47,-0.5 z m -16.2,21.21 -44.75,-18.71 24,-17.87 28.72,14.87 z m -44.75,-7.85 42.42,18.87 45.59,89.17 z m 137.43,18.7 39.75,-20.54 -83.66,109.38 z m -0.79,-11 -11.19,-23.05 25.55,-14.19 22,18.54 z m -76.48,-32.06 -9.69,-2.51 -18.2,-10.19 21.37,-7.7 h 69.81 l 21.2,8.85 -20.37,9.86 -6.84,1.67 z m 0,0"
|
||||||
|
id="path45854" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 19 KiB |
@@ -0,0 +1,123 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
viewBox="0 0 484.83 484.83"
|
||||||
|
version="1.1"
|
||||||
|
id="svg45898"
|
||||||
|
sodipodi:docname="medal-29.svg"
|
||||||
|
inkscape:version="1.0.2 (e86c8708, 2021-01-15)">
|
||||||
|
<metadata
|
||||||
|
id="metadata45902">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<sodipodi:namedview
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1"
|
||||||
|
objecttolerance="10"
|
||||||
|
gridtolerance="10"
|
||||||
|
guidetolerance="10"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:window-width="1334"
|
||||||
|
inkscape:window-height="815"
|
||||||
|
id="namedview45900"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="0.87453337"
|
||||||
|
inkscape:cx="143.55291"
|
||||||
|
inkscape:cy="206.18178"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="25"
|
||||||
|
inkscape:window-maximized="0"
|
||||||
|
inkscape:current-layer="svg45898" />
|
||||||
|
<defs
|
||||||
|
id="defs45867">
|
||||||
|
<style
|
||||||
|
id="style45865">.cls-1{isolation:isolate;}.cls-2{fill:#e9bb43;}.cls-3{fill:#de6413;}.cls-4{fill:#efcb67;}.cls-5{fill:#d9531d;}.cls-6{fill:none;}.cls-7{fill:#f3ca69;}.cls-8{fill:#fbf4c3;}.cls-9{fill:#f6c86f;}.cls-10{mix-blend-mode:screen;opacity:0.75;}</style>
|
||||||
|
</defs>
|
||||||
|
<g
|
||||||
|
class="cls-1"
|
||||||
|
id="g45896"
|
||||||
|
transform="matrix(1.0382545,0,0,1.0345987,-17.015852,-12.500142)">
|
||||||
|
<g
|
||||||
|
id="图层_1"
|
||||||
|
data-name="图层 1">
|
||||||
|
<circle
|
||||||
|
class="cls-2"
|
||||||
|
cx="250.57001"
|
||||||
|
cy="261.26999"
|
||||||
|
r="215.63"
|
||||||
|
id="circle45869" />
|
||||||
|
<circle
|
||||||
|
class="cls-3"
|
||||||
|
cx="250.57001"
|
||||||
|
cy="261.26999"
|
||||||
|
r="194.00999"
|
||||||
|
id="circle45871" />
|
||||||
|
<path
|
||||||
|
class="cls-4"
|
||||||
|
d="M 397.15,52.72 C 383.27,41.81 351.52,20.5 308.75,14.32 a 11.23,11.23 0 0 0 -11.2,5.33 l -47,78 -47,-78 A 11.25,11.25 0 0 0 192.34,14.32 C 149.62,20.5 117.87,41.81 104,52.72 a 11.23,11.23 0 0 0 -2.59,14.77 l 56.92,91.2 92.24,-26.16 92.24,26.16 56.92,-91.2 a 11.22,11.22 0 0 0 -2.58,-14.77 z"
|
||||||
|
id="path45873" />
|
||||||
|
<path
|
||||||
|
class="cls-5"
|
||||||
|
d="m 123.67,39.24 70.57,109.27 50,-14.2 -73.58,-115.39 c 0,0 -32.45,10.72 -46.99,20.32 z"
|
||||||
|
id="path45875" />
|
||||||
|
<path
|
||||||
|
class="cls-5"
|
||||||
|
d="M 380,40 309.4,149.26 259.4,135.07 333,19.68 c 0,0 32.44,10.72 47,20.32 z"
|
||||||
|
id="path45877" />
|
||||||
|
<rect
|
||||||
|
class="cls-6"
|
||||||
|
x="94.309998"
|
||||||
|
y="101.3"
|
||||||
|
width="312.53"
|
||||||
|
height="302.32001"
|
||||||
|
id="rect45879" />
|
||||||
|
<polygon
|
||||||
|
class="cls-7"
|
||||||
|
points="281.96,237.73 342.81,158.69 284.3,95.99 223.21,101.3 158.33,158.69 209.52,237.73 "
|
||||||
|
id="polygon45881" />
|
||||||
|
<polygon
|
||||||
|
class="cls-5"
|
||||||
|
points="177.16,122.06 262.78,271.66 270.81,176.39 223.21,101.3 "
|
||||||
|
id="polygon45883" />
|
||||||
|
<polygon
|
||||||
|
class="cls-5"
|
||||||
|
points="284.3,95.99 244.27,152.92 288.6,180.97 328.92,119.05 "
|
||||||
|
id="polygon45885" />
|
||||||
|
<path
|
||||||
|
class="cls-8"
|
||||||
|
d="m 241.47,381.85 -60.34,19.89 A 29,29 0 0 1 143,374.12 l 0.12,-64.44 A 28.93,28.93 0 0 0 137.61,292.6 L 99.82,240.37 a 29,29 0 0 1 14.53,-44.62 L 175.15,176 a 29,29 0 0 0 14.59,-10.67 L 227,113.44 a 29,29 0 0 1 47.13,0 l 37.26,51.87 A 29,29 0 0 0 326,176 l 60.8,19.77 a 29,29 0 0 1 14.53,44.62 L 363.47,292.6 A 28.93,28.93 0 0 0 358,309.68 l 0.12,64.44 A 29,29 0 0 1 320,401.74 l -60.34,-19.89 a 29.09,29.09 0 0 0 -18.17,0 z m 0,0"
|
||||||
|
id="path45887" />
|
||||||
|
<path
|
||||||
|
class="cls-9"
|
||||||
|
d="M 241.69,357.28 197,372 a 21.5,21.5 0 0 1 -28.23,-20.46 l 0.09,-47.75 a 21.52,21.52 0 0 0 -4.08,-12.65 l -28,-38.7 a 21.5,21.5 0 0 1 10.77,-33.06 l 45,-14.65 a 21.46,21.46 0 0 0 10.81,-7.9 L 231,158.41 a 21.49,21.49 0 0 1 34.92,0 l 27.6,38.43 a 21.51,21.51 0 0 0 10.81,7.9 l 45,14.65 a 21.5,21.5 0 0 1 10.76,33.06 l -28,38.7 A 21.52,21.52 0 0 0 328,303.8 l 0.09,47.75 A 21.5,21.5 0 0 1 299.86,372 l -44.71,-14.73 a 21.51,21.51 0 0 0 -13.46,0 z m 0,0"
|
||||||
|
id="path45889" />
|
||||||
|
<image
|
||||||
|
class="cls-10"
|
||||||
|
width="173"
|
||||||
|
height="153"
|
||||||
|
transform="translate(167.45,195.14)"
|
||||||
|
xlink:href="data:image/png;base64,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 truncated
|
||||||
|
id="image45891" />
|
||||||
|
<path
|
||||||
|
class="cls-3"
|
||||||
|
d="m 222.11,260.43 65.33,-0.29 -31.42,79 z m 7.49,-28.63 49.76,0.44 8.81,19.24 L 223.58,251 Z M 215.36,250.45 176,234 l 21.14,-15.71 25.25,13.06 z m -39.36,-6.9 37.29,16.59 40.08,78.39 z M 296.83,260 331.78,241.94 258.22,338.1 Z m -0.73,-9.69 -9.84,-20.31 22.47,-12.48 19.37,16.3 z m -67.24,-28.19 -8.51,-2.2 -16,-8.95 18.79,-6.76 h 61.36 l 18.65,7.79 -17.91,8.67 -6,1.46 z m 0,0"
|
||||||
|
id="path45893" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 17 KiB |
@@ -0,0 +1,152 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
id="图层_1"
|
||||||
|
data-name="图层 1"
|
||||||
|
viewBox="0 0 484.83 484.83"
|
||||||
|
version="1.1"
|
||||||
|
sodipodi:docname="medal-3.svg"
|
||||||
|
inkscape:version="1.0.2 (e86c8708, 2021-01-15)">
|
||||||
|
<metadata
|
||||||
|
id="metadata919">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<sodipodi:namedview
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1"
|
||||||
|
objecttolerance="10"
|
||||||
|
gridtolerance="10"
|
||||||
|
guidetolerance="10"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:window-width="1635"
|
||||||
|
inkscape:window-height="930"
|
||||||
|
id="namedview917"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="0.90170163"
|
||||||
|
inkscape:cx="23.055772"
|
||||||
|
inkscape:cy="159.67925"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="25"
|
||||||
|
inkscape:window-maximized="0"
|
||||||
|
inkscape:current-layer="图层_1" />
|
||||||
|
<defs
|
||||||
|
id="defs884">
|
||||||
|
<style
|
||||||
|
id="style875">.cls-1,.cls-4,.cls-6{fill:none;}.cls-1,.cls-4{stroke-miterlimit:10;}.cls-1{stroke-width:43px;stroke:url(#未命名的渐变_8);}.cls-2{fill:#213859;}.cls-3{opacity:0.19;}.cls-4{stroke:#80b1da;stroke-width:3px;}.cls-5{fill:#3f84c6;}.cls-6{stroke:#64bee7;stroke-linecap:round;stroke-linejoin:round;stroke-width:4.21px;stroke-dasharray:12.73 12.73;}.cls-7{fill:#ecc32a;}</style>
|
||||||
|
<linearGradient
|
||||||
|
id="未命名的渐变_8"
|
||||||
|
x1="48.19"
|
||||||
|
y1="242.41"
|
||||||
|
x2="451.61"
|
||||||
|
y2="242.41"
|
||||||
|
gradientUnits="userSpaceOnUse">
|
||||||
|
<stop
|
||||||
|
offset="0"
|
||||||
|
stop-color="#eec71f"
|
||||||
|
id="stop877" />
|
||||||
|
<stop
|
||||||
|
offset="0.48"
|
||||||
|
stop-color="#e9ce1f"
|
||||||
|
id="stop879" />
|
||||||
|
<stop
|
||||||
|
offset="1"
|
||||||
|
stop-color="#f3e126"
|
||||||
|
id="stop881" />
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
<path
|
||||||
|
class="cls-1"
|
||||||
|
d="M 441.20014,340.29169 V 145.60955 c 0.001,-8.9215 -4.86442,-17.16582 -12.76406,-21.62657 L 256.01145,26.582814 c -7.89903,-4.457851 -17.62908,-4.457851 -25.52812,0 L 58.025744,123.95075 c -7.89964,4.46075 -12.765459,12.70507 -12.764058,21.62657 v 194.71437 c 8.64e-4,8.92091 4.866076,17.16421 12.764058,21.62658 L 230.48333,459.2862 c 7.89904,4.45785 17.62909,4.45785 25.52812,0 l 172.45759,-97.36793 c 7.8853,-4.47055 12.73704,-12.71231 12.7311,-21.62658 z"
|
||||||
|
id="path886"
|
||||||
|
sodipodi:nodetypes="ccccccccccccc" />
|
||||||
|
<path
|
||||||
|
class="cls-2"
|
||||||
|
d="M 441.20014,340.29169 V 145.60955 c 0.001,-8.9215 -4.86442,-17.16582 -12.76406,-21.62657 L 256.01145,26.582814 c -7.89903,-4.457851 -17.62908,-4.457851 -25.52812,0 L 58.025744,123.95075 c -7.89964,4.46075 -12.765459,12.70507 -12.764058,21.62657 v 194.71437 c 8.64e-4,8.92091 4.866076,17.16421 12.764058,21.62658 L 230.48333,459.2862 c 7.89904,4.45785 17.62909,4.45785 25.52812,0 l 172.45759,-97.36793 c 7.8853,-4.47055 12.73704,-12.71231 12.7311,-21.62658 z"
|
||||||
|
id="path888"
|
||||||
|
sodipodi:nodetypes="ccccccccccccc" />
|
||||||
|
<g
|
||||||
|
class="cls-3"
|
||||||
|
id="g902">
|
||||||
|
<circle
|
||||||
|
class="cls-4"
|
||||||
|
cx="250.9"
|
||||||
|
cy="242.47"
|
||||||
|
r="30.04"
|
||||||
|
id="circle890" />
|
||||||
|
<circle
|
||||||
|
class="cls-4"
|
||||||
|
cx="250.9"
|
||||||
|
cy="242.47"
|
||||||
|
r="48.04"
|
||||||
|
id="circle892" />
|
||||||
|
<circle
|
||||||
|
class="cls-4"
|
||||||
|
cx="250.9"
|
||||||
|
cy="242.47"
|
||||||
|
r="71.04"
|
||||||
|
id="circle894" />
|
||||||
|
<circle
|
||||||
|
class="cls-4"
|
||||||
|
cx="250.9"
|
||||||
|
cy="242.47"
|
||||||
|
r="104.14"
|
||||||
|
id="circle896" />
|
||||||
|
<circle
|
||||||
|
class="cls-4"
|
||||||
|
cx="250.9"
|
||||||
|
cy="242.47"
|
||||||
|
r="134.04"
|
||||||
|
id="circle898" />
|
||||||
|
<circle
|
||||||
|
class="cls-4"
|
||||||
|
cx="250.9"
|
||||||
|
cy="242.47"
|
||||||
|
r="172.04"
|
||||||
|
id="circle900" />
|
||||||
|
</g>
|
||||||
|
<path
|
||||||
|
class="cls-5"
|
||||||
|
d="m 414.266,329.0433 c 1.53784,-2.70735 3.00245,-5.45052 4.39383,-8.22949 -46.26784,-33.87329 -105.55114,-45.84549 -161.75257,-32.66575 -56.20143,13.17974 -103.48794,50.14351 -129.01972,100.85446 8.91895,6.5339 18.39287,12.30986 28.3182,17.26473 15.62004,-21.76624 101.20075,-127.6215 258.06026,-77.22395 z"
|
||||||
|
id="path904"
|
||||||
|
sodipodi:nodetypes="ccsccc" />
|
||||||
|
<path
|
||||||
|
class="cls-5"
|
||||||
|
d="m 227.39667,426.23933 c 5.5948,0.47272 11.24453,0.71265 16.94918,0.71981 66.85922,0.0355 129.03046,-33.58675 164.5487,-88.98803 -27.65912,1.66523 -120.59948,13.06404 -181.49788,88.26822 z"
|
||||||
|
id="path906"
|
||||||
|
sodipodi:nodetypes="cccc" />
|
||||||
|
<path
|
||||||
|
class="cls-5"
|
||||||
|
d="m 160.56661,408.37297 c 18.66551,8.74726 38.64971,14.49702 59.18481,17.02837 31.16319,-42.07137 88.66736,-89.26736 189.4507,-87.9674 1.71359,-2.67154 3.35761,-5.38964 4.93207,-8.15429 -26.47279,-6.58573 -162.90102,-33.70221 -253.56758,79.09332 z"
|
||||||
|
id="path908"
|
||||||
|
sodipodi:nodetypes="ccccc" />
|
||||||
|
<path
|
||||||
|
class="cls-6"
|
||||||
|
d="M 414.61751,325.39052 V 160.5537 c -0.0215,-7.53587 -4.13831,-14.49213 -10.80881,-18.26388 L 257.85686,59.823063 c -6.6873,-3.781292 -14.93032,-3.781292 -21.61762,0 L 90.276412,142.23611 c -6.670497,3.77174 -10.787309,10.728 -10.808807,18.26387 v 164.89054 c 0.01474,7.53765 4.133364,14.49697 10.808807,18.26388 l 145.962828,82.42378 c 6.69033,3.77022 14.92729,3.77022 21.61762,0 L 403.8087,343.6544 c 6.67544,-3.76691 10.79407,-10.72623 10.80881,-18.26388 z"
|
||||||
|
id="path910"
|
||||||
|
sodipodi:nodetypes="ccccccccccccc" />
|
||||||
|
<path
|
||||||
|
class="cls-7"
|
||||||
|
d="m 255.44025,243.34276 c -2.4166,-1.57929 -4.84419,-1.57929 -8.07365,-1.57929 0.81286,-0.79502 0.81286,-1.57929 1.61473,-2.3743 33.89835,-9.46499 54.07699,-38.67644 48.43093,-71.03573 -4.8442,-25.25786 -20.17864,-42.63002 -46.00334,-48.94718 -25.8247,-7.10142 -48.43093,0 -66.18197,20.53075 -16.94918,20.51999 -19.36578,42.61928 -8.07366,66.3086 8.88651,19.72498 25.8247,29.98498 46.8162,34.72284 v 0.79502 c -50.84753,3.15858 -93.6214,46.57288 -96.04899,97.0886 0,5.25355 0.73596,6.94027 5.64606,6.44607 0.54357,-0.059 1.08982,-0.0912 1.6367,-0.0967 h 110.53763 c 1.6038,0 3.21847,0.78428 4.8332,-0.79501 -28.2413,-33.14356 -23.39711,-74.98932 4.84419,-100.98848 z"
|
||||||
|
id="path912"
|
||||||
|
sodipodi:nodetypes="ccccccccccccsccc" />
|
||||||
|
<path
|
||||||
|
class="cls-7"
|
||||||
|
d="m 314.33946,225.97059 c -39.54441,0 -71.82803,30.79074 -71.82803,69.46718 0,38.67644 32.28362,70.25145 71.01517,71.04647 40.35728,0 72.6409,-30.79074 72.6409,-70.25145 -0.0846,-38.76624 -32.19182,-70.17356 -71.82804,-70.2622 z m 41.15915,59.99145 c -17.75105,18.15644 -36.31496,35.52861 -54.07699,53.71728 -13.71972,-13.41858 -25.8247,-26.05288 -38.73156,-37.89217 -1.61473,-1.57929 -2.42759,-3.15857 0,-4.73786 l 0.80187,-0.78427 c 4.8442,-3.95359 8.87553,-12.63431 14.53258,-12.63431 4.03133,0 8.87552,7.10143 12.90686,11.8178 3.22946,3.15858 6.45892,8.68072 10.49025,8.68072 3.22946,0 7.27178,-5.52214 10.49025,-8.68072 l 37.12782,-36.31287 c 2.42758,-2.36356 4.04231,-3.15858 6.45892,0 4.03133,4.73786 12.08301,8.68071 12.08301,13.41857 0,4.73787 -8.07365,9.47573 -12.08301,13.41858 z"
|
||||||
|
id="path914"
|
||||||
|
sodipodi:nodetypes="csccccccccscscccscc" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 7.2 KiB |
@@ -0,0 +1,104 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
viewBox="0 0 484.83 484.83"
|
||||||
|
version="1.1"
|
||||||
|
id="svg45929"
|
||||||
|
sodipodi:docname="medal-30.svg"
|
||||||
|
inkscape:version="1.0.2 (e86c8708, 2021-01-15)">
|
||||||
|
<metadata
|
||||||
|
id="metadata45933">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<sodipodi:namedview
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1"
|
||||||
|
objecttolerance="10"
|
||||||
|
gridtolerance="10"
|
||||||
|
guidetolerance="10"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:window-width="1579"
|
||||||
|
inkscape:window-height="782"
|
||||||
|
id="namedview45931"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="0.87453337"
|
||||||
|
inkscape:cx="35.710694"
|
||||||
|
inkscape:cy="150.92101"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="25"
|
||||||
|
inkscape:window-maximized="0"
|
||||||
|
inkscape:current-layer="svg45929" />
|
||||||
|
<defs
|
||||||
|
id="defs45906">
|
||||||
|
<style
|
||||||
|
id="style45904">.cls-1{isolation:isolate;}.cls-2{fill:#5d5351;}.cls-3{fill:#4d4445;}.cls-4{fill:#f2bb77;}.cls-5{fill:#ab6926;}.cls-6{fill:#e8b470;}.cls-7{fill:#fdead3;}.cls-8{mix-blend-mode:screen;opacity:0.75;}</style>
|
||||||
|
</defs>
|
||||||
|
<g
|
||||||
|
class="cls-1"
|
||||||
|
id="g45927"
|
||||||
|
transform="matrix(1.0477263,0,0,1.029656,-11.723466,-13.369316)">
|
||||||
|
<g
|
||||||
|
id="图层_1"
|
||||||
|
data-name="图层 1">
|
||||||
|
<circle
|
||||||
|
class="cls-2"
|
||||||
|
cx="245.64"
|
||||||
|
cy="264.20999"
|
||||||
|
r="215.63"
|
||||||
|
id="circle45908" />
|
||||||
|
<circle
|
||||||
|
class="cls-3"
|
||||||
|
cx="245.64"
|
||||||
|
cy="264.20999"
|
||||||
|
r="194.00999"
|
||||||
|
id="circle45910" />
|
||||||
|
<path
|
||||||
|
class="cls-4"
|
||||||
|
d="M 392.21,55.66 C 378.34,44.75 346.59,23.44 303.82,17.26 a 11.24,11.24 0 0 0 -11.21,5.32 l -47,78 -47,-78 a 11.22,11.22 0 0 0 -11.2,-5.32 c -42.78,6.18 -74.52,27.49 -88.4,38.4 a 11.22,11.22 0 0 0 -2.58,14.77 l 56.92,91.2 92.24,-26.17 92.24,26.17 56.92,-91.2 a 11.23,11.23 0 0 0 -2.54,-14.77 z"
|
||||||
|
id="path45912" />
|
||||||
|
<path
|
||||||
|
class="cls-5"
|
||||||
|
d="m 118.74,42.17 70.56,109.27 50,-14.19 -73.57,-115.4 c 0,0 -32.46,10.72 -46.99,20.32 z"
|
||||||
|
id="path45914" />
|
||||||
|
<path
|
||||||
|
class="cls-5"
|
||||||
|
d="M 375,42.93 304.47,152.2 254.47,138.01 328,22.61 c 0,0 32.5,10.72 47,20.32 z"
|
||||||
|
id="path45916" />
|
||||||
|
<path
|
||||||
|
class="cls-6"
|
||||||
|
d="M 391.32,318.64 V 207.32 a 44.87,44.87 0 0 0 -22.45,-38.87 l -96.4,-55.67 a 44.93,44.93 0 0 0 -44.89,0 l -96.41,55.67 a 44.86,44.86 0 0 0 -22.44,38.87 v 111.32 a 44.86,44.86 0 0 0 22.44,38.87 l 96.41,55.67 a 44.93,44.93 0 0 0 44.89,0 l 96.4,-55.67 a 44.87,44.87 0 0 0 22.45,-38.87 z"
|
||||||
|
id="path45918" />
|
||||||
|
<path
|
||||||
|
class="cls-7"
|
||||||
|
d="m 353.55,300.92 v -81.86 a 33,33 0 0 0 -16.5,-28.58 l -70.89,-40.93 a 33,33 0 0 0 -33,0 l -70.89,40.93 a 33,33 0 0 0 -16.5,28.58 v 81.86 a 33,33 0 0 0 16.5,28.58 l 70.89,40.93 a 33,33 0 0 0 33,0 l 70.89,-40.93 a 33,33 0 0 0 16.5,-28.58 z"
|
||||||
|
id="path45920" />
|
||||||
|
<image
|
||||||
|
class="cls-8"
|
||||||
|
width="198"
|
||||||
|
height="174"
|
||||||
|
transform="translate(155.11,179.97)"
|
||||||
|
xlink:href="data:image/png;base64,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 truncated
|
||||||
|
id="image45922" />
|
||||||
|
<path
|
||||||
|
class="cls-3"
|
||||||
|
d="m 217.6,253.84 74.31,-0.33 -35.74,89.84 z m 8.51,-32.56 56.61,0.5 10,21.87 -73.47,-0.5 z m -16.19,21.2 -44.76,-18.7 24.05,-17.87 28.72,14.87 z m -44.76,-7.84 42.42,18.87 45.59,89.17 z m 137.43,18.7 39.75,-20.54 -83.66,109.38 z m -0.83,-11 -11.19,-23 25.55,-14.19 22,18.53 z m -76.48,-32.06 -9.69,-2.51 -18.2,-10.19 21.38,-7.68 h 69.8 l 21.21,8.85 -20.38,9.86 -6.84,1.67 z m 0,0"
|
||||||
|
id="path45924" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 18 KiB |
@@ -0,0 +1,97 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
id="图层_1"
|
||||||
|
data-name="图层 1"
|
||||||
|
viewBox="0 0 484.83 484.83"
|
||||||
|
version="1.1"
|
||||||
|
sodipodi:docname="medal-4.svg"
|
||||||
|
inkscape:version="1.0.2 (e86c8708, 2021-01-15)">
|
||||||
|
<metadata
|
||||||
|
id="metadata1506">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<sodipodi:namedview
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1"
|
||||||
|
objecttolerance="10"
|
||||||
|
gridtolerance="10"
|
||||||
|
guidetolerance="10"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:window-width="1701"
|
||||||
|
inkscape:window-height="929"
|
||||||
|
id="namedview1504"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="1.2367769"
|
||||||
|
inkscape:cx="137.50384"
|
||||||
|
inkscape:cy="267.96883"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="25"
|
||||||
|
inkscape:window-maximized="0"
|
||||||
|
inkscape:current-layer="图层_1" />
|
||||||
|
<defs
|
||||||
|
id="defs1491">
|
||||||
|
<style
|
||||||
|
id="style1482">.cls-1,.cls-3{fill:none;}.cls-1,.cls-3,.cls-4{stroke-miterlimit:10;}.cls-1{stroke-width:43px;stroke:url(#未命名的渐变_4);}.cls-2{fill:#1b2f4e;}.cls-3{stroke:#fff;stroke-linecap:round;stroke-width:4.2px;stroke-dasharray:12.73 12.73;}.cls-4{fill:#fff;stroke:#f7f7f7;stroke-width:0.71px;}</style>
|
||||||
|
<linearGradient
|
||||||
|
id="未命名的渐变_4"
|
||||||
|
x1="40.7"
|
||||||
|
y1="242.41"
|
||||||
|
x2="444.13"
|
||||||
|
y2="242.41"
|
||||||
|
gradientUnits="userSpaceOnUse">
|
||||||
|
<stop
|
||||||
|
offset="0"
|
||||||
|
stop-color="#6ba8dc"
|
||||||
|
id="stop1484" />
|
||||||
|
<stop
|
||||||
|
offset="0.48"
|
||||||
|
stop-color="#6599d1"
|
||||||
|
id="stop1486" />
|
||||||
|
<stop
|
||||||
|
offset="1"
|
||||||
|
stop-color="#83b9e5"
|
||||||
|
id="stop1488" />
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
<path
|
||||||
|
class="cls-1"
|
||||||
|
d="M 444.46094,339.54921 V 145.24296 c 0.004,-8.90768 -4.95843,-17.13865 -13.01275,-21.58482 L 255.78168,26.446042 c -8.05009,-4.448951 -17.96422,-4.448951 -26.01431,0 L 54.100853,123.62597 c -8.026887,4.47694 -12.952841,12.71669 -12.923237,21.61699 v 194.30625 c 8.8e-4,8.90368 4.95662,17.13106 13.00156,21.58482 l 175.666514,97.17993 c 8.05009,4.44895 17.96422,4.44895 26.01431,0 l 175.66651,-97.17993 c 8.0208,-4.46846 12.94972,-12.6938 12.93443,-21.58482 z"
|
||||||
|
id="path1493"
|
||||||
|
sodipodi:nodetypes="ccccccccccccc" />
|
||||||
|
<path
|
||||||
|
class="cls-2"
|
||||||
|
d="M 444.46094,339.54921 V 145.24296 c 0.004,-8.90768 -4.95843,-17.13865 -13.01275,-21.58482 L 255.78168,26.446042 c -8.05009,-4.448951 -17.96422,-4.448951 -26.01431,0 L 54.100853,123.62597 c -8.026887,4.47694 -12.952841,12.71669 -12.923237,21.61699 v 194.30625 c 8.8e-4,8.90368 4.95662,17.13106 13.00156,21.58482 l 175.666514,97.17993 c 8.05009,4.44895 17.96422,4.44895 26.01431,0 l 175.66651,-97.17993 c 8.0208,-4.46846 12.94972,-12.6938 12.93443,-21.58482 z"
|
||||||
|
id="path1495"
|
||||||
|
sodipodi:nodetypes="ccccccccccccc" />
|
||||||
|
<path
|
||||||
|
class="cls-3"
|
||||||
|
d="M 416.17527,324.67681 V 160.15825 c -0.0219,-7.52131 -4.21531,-14.46415 -11.00992,-18.22861 L 256.48658,59.62211 c -6.81173,-3.773991 -15.20813,-3.773991 -22.01985,0 L 85.799148,141.87603 c -6.794615,3.76446 -10.988028,10.70729 -11.009927,18.22861 v 164.57217 c 0.01502,7.52309 4.210274,14.46898 11.009927,18.22861 l 148.723522,82.30753 c 6.81482,3.76294 15.20504,3.76294 22.01985,0 l 148.67877,-82.26464 c 6.79196,-3.78091 10.96649,-10.74413 10.95398,-18.2715 z"
|
||||||
|
id="path1497"
|
||||||
|
sodipodi:nodetypes="ccccccccccccc" />
|
||||||
|
<path
|
||||||
|
class="cls-4"
|
||||||
|
d="M 335.5477,172.27491 V 323.69032 H 143.69077 V 172.27491 H 335.5477 m 0,-21.6277 H 143.69077 c -12.46402,0 -22.56811,9.68305 -22.56811,21.6277 v 151.41541 c 0,11.94525 10.10409,21.62771 22.56811,21.62771 H 335.5477 c 12.46401,0 22.56811,-9.68157 22.56811,-21.62771 V 172.27491 c -0.006,-11.9422 -10.10665,-21.62179 -22.56811,-21.6277 z"
|
||||||
|
id="path1499"
|
||||||
|
sodipodi:nodetypes="ccccccsssssscc" />
|
||||||
|
<path
|
||||||
|
class="cls-4"
|
||||||
|
d="m 230.96458,300.94745 v 0 c 0,0 -8.47981,-1.65115 -11.51343,-4.61077 l -34.79763,-33.73365 c -4.3998,-4.24607 -4.37474,-11.10629 0.056,-15.32275 4.43069,-4.21645 11.58921,-4.19246 15.989,0.0536 l 30.21017,29.32662 58.10422,-56.3264 c 4.38126,-4.26384 11.53977,-4.31664 15.989,-0.11795 4.44923,4.19869 4.50434,11.05891 0.12308,15.32275 l -62.65812,60.73344 c -3.0182,2.98266 -11.50224,4.6751 -11.50224,4.6751 z m 59.15598,-110.15441 c -6.23329,0.006 -11.28965,-4.83494 -11.28965,-10.8085 v -43.30903 c 0.19191,-5.8398 5.18731,-10.47865 11.28406,-10.47865 6.09674,0 11.09214,4.63885 11.28405,10.47865 v 43.26614 c 0,5.97588 -5.04954,10.8085 -11.27846,10.8085 z m -102.41246,0 c -6.23329,0.006 -11.28965,-4.83494 -11.28965,-10.8085 v -43.30903 c 0.19191,-5.8398 5.18731,-10.47865 11.28406,-10.47865 6.09675,0 11.09214,4.63885 11.28406,10.47865 v 43.26614 c 0,5.96937 -5.04954,10.8085 -11.27847,10.8085 z"
|
||||||
|
id="path1501"
|
||||||
|
sodipodi:nodetypes="ssccscccsccscscscscccscscscc" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 5.3 KiB |
@@ -0,0 +1,179 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
id="图层_1"
|
||||||
|
data-name="图层 1"
|
||||||
|
viewBox="0 0 484.83 484.83"
|
||||||
|
version="1.1"
|
||||||
|
sodipodi:docname="medal-5.svg"
|
||||||
|
inkscape:version="1.0.2 (e86c8708, 2021-01-15)">
|
||||||
|
<metadata
|
||||||
|
id="metadata2115">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<sodipodi:namedview
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1"
|
||||||
|
objecttolerance="10"
|
||||||
|
gridtolerance="10"
|
||||||
|
guidetolerance="10"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:window-width="1705"
|
||||||
|
inkscape:window-height="815"
|
||||||
|
id="namedview2113"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="1.2367769"
|
||||||
|
inkscape:cx="134.42518"
|
||||||
|
inkscape:cy="249.3222"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="25"
|
||||||
|
inkscape:window-maximized="0"
|
||||||
|
inkscape:current-layer="图层_1" />
|
||||||
|
<defs
|
||||||
|
id="defs2080">
|
||||||
|
<style
|
||||||
|
id="style2069">.cls-1,.cls-3,.cls-5{fill:none;stroke-miterlimit:10;}.cls-1{stroke-width:43px;stroke:url(#未命名的渐变_3);}.cls-2{fill:#1b2f4e;}.cls-3{stroke-linecap:round;stroke-width:4.2px;stroke-dasharray:12.73 12.73;stroke:url(#未命名的渐变_3-2);}.cls-4{opacity:0.19;}.cls-5{stroke:#80b1da;stroke-width:2px;}.cls-6{fill:#e39452;}.cls-7{fill:url(#未命名的渐变_3-3);}.cls-8{fill:url(#未命名的渐变_3-4);}.cls-9{fill:url(#未命名的渐变_3-5);}</style>
|
||||||
|
<linearGradient
|
||||||
|
id="未命名的渐变_3"
|
||||||
|
x1="44.54"
|
||||||
|
y1="239.41"
|
||||||
|
x2="447.96"
|
||||||
|
y2="239.41"
|
||||||
|
gradientUnits="userSpaceOnUse">
|
||||||
|
<stop
|
||||||
|
offset="0"
|
||||||
|
stop-color="#ec9953"
|
||||||
|
id="stop2071" />
|
||||||
|
<stop
|
||||||
|
offset="1"
|
||||||
|
stop-color="#ed7333"
|
||||||
|
id="stop2073" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="未命名的渐变_3-2"
|
||||||
|
x1="95.14"
|
||||||
|
y1="242.41"
|
||||||
|
x2="404.45"
|
||||||
|
y2="242.41"
|
||||||
|
xlink:href="#未命名的渐变_3" />
|
||||||
|
<linearGradient
|
||||||
|
id="未命名的渐变_3-3"
|
||||||
|
x1="273.51"
|
||||||
|
y1="389.66"
|
||||||
|
x2="314.35"
|
||||||
|
y2="389.66"
|
||||||
|
xlink:href="#未命名的渐变_3" />
|
||||||
|
<linearGradient
|
||||||
|
id="未命名的渐变_3-4"
|
||||||
|
x1="120.36"
|
||||||
|
y1="198.92"
|
||||||
|
x2="161.2"
|
||||||
|
y2="198.92"
|
||||||
|
gradientTransform="translate(343.27 176.26) rotate(120)"
|
||||||
|
xlink:href="#未命名的渐变_3" />
|
||||||
|
<linearGradient
|
||||||
|
id="未命名的渐变_3-5"
|
||||||
|
x1="-26.48"
|
||||||
|
y1="-34.08"
|
||||||
|
x2="14.37"
|
||||||
|
y2="-34.08"
|
||||||
|
gradientTransform="translate(397.4 117.16) rotate(-120)"
|
||||||
|
xlink:href="#未命名的渐变_3" />
|
||||||
|
</defs>
|
||||||
|
<path
|
||||||
|
class="cls-1"
|
||||||
|
d="M 442.22286,339.78342 V 145.47717 c 0.001,-8.90427 -4.88034,-17.13268 -12.80583,-21.58482 L 256.42811,26.680255 c -7.92488,-4.449244 -17.68678,-4.449244 -25.61166,0 L 57.794467,123.86019 c -7.939975,4.45515 -12.827811,12.699 -12.816851,21.61698 v 194.30625 c 8.67e-4,8.90369 4.882002,17.13106 12.805831,21.58482 l 173.021983,97.17993 c 7.92488,4.44924 17.68678,4.44924 25.61166,0 l 173.02198,-97.17993 c 7.91535,-4.4592 12.78747,-12.68555 12.78379,-21.58482 z"
|
||||||
|
id="path2082"
|
||||||
|
sodipodi:nodetypes="ccccccccccccc" />
|
||||||
|
<path
|
||||||
|
class="cls-2"
|
||||||
|
d="M 446.63106,339.78342 V 145.47717 c 0.001,-8.90427 -4.88033,-17.13268 -12.80583,-21.58482 L 260.83631,26.680255 c -7.92488,-4.449244 -17.68677,-4.449244 -25.61166,0 L 62.202671,123.86019 c -7.939976,4.45515 -12.827812,12.699 -12.816852,21.61698 v 194.30625 c 8.67e-4,8.90369 4.882002,17.13106 12.805831,21.58482 l 173.02198,97.17993 c 7.92489,4.44924 17.68678,4.44924 25.61166,0 l 173.02198,-97.17993 c 7.91535,-4.4592 12.78748,-12.68555 12.78379,-21.58482 z"
|
||||||
|
id="path2084"
|
||||||
|
sodipodi:nodetypes="ccccccccccccc" />
|
||||||
|
<path
|
||||||
|
class="cls-3"
|
||||||
|
d="M 415.65242,328.12783 V 163.60928 c -0.0216,-7.52132 -4.15186,-14.46415 -10.84418,-18.22861 L 258.36772,63.073137 c -6.70918,-3.773992 -14.97918,-3.773992 -21.68836,0 L 90.249864,145.32705 c -6.692326,3.76446 -10.822611,10.7073 -10.84418,18.22861 v 164.57217 c 0.01479,7.5231 4.146891,14.46899 10.84418,18.22861 l 146.484596,82.30754 c 6.71223,3.76293 14.97614,3.76293 21.68836,0 l 146.44052,-82.26465 c 6.68971,-3.7809 10.8014,-10.74412 10.78908,-18.2715 z"
|
||||||
|
id="path2086"
|
||||||
|
sodipodi:nodetypes="ccccccccccccc" />
|
||||||
|
<g
|
||||||
|
class="cls-4"
|
||||||
|
id="g2100">
|
||||||
|
<circle
|
||||||
|
class="cls-5"
|
||||||
|
cx="248.5"
|
||||||
|
cy="240.41"
|
||||||
|
r="30.04"
|
||||||
|
id="circle2088" />
|
||||||
|
<circle
|
||||||
|
class="cls-5"
|
||||||
|
cx="248.5"
|
||||||
|
cy="240.41"
|
||||||
|
r="48.04"
|
||||||
|
id="circle2090" />
|
||||||
|
<circle
|
||||||
|
class="cls-5"
|
||||||
|
cx="248.5"
|
||||||
|
cy="240.41"
|
||||||
|
r="71.04"
|
||||||
|
id="circle2092" />
|
||||||
|
<circle
|
||||||
|
class="cls-5"
|
||||||
|
cx="248.5"
|
||||||
|
cy="240.41"
|
||||||
|
r="104.14"
|
||||||
|
id="circle2094" />
|
||||||
|
<circle
|
||||||
|
class="cls-5"
|
||||||
|
cx="248.5"
|
||||||
|
cy="240.41"
|
||||||
|
r="134.04"
|
||||||
|
id="circle2096" />
|
||||||
|
<circle
|
||||||
|
class="cls-5"
|
||||||
|
cx="248.5"
|
||||||
|
cy="240.41"
|
||||||
|
r="172.04"
|
||||||
|
id="circle2098" />
|
||||||
|
</g>
|
||||||
|
<path
|
||||||
|
class="cls-6"
|
||||||
|
d="M 339.80928,180.41177 V 331.81645 H 150.84062 V 180.41177 h 188.96866 m 0,-21.62771 H 150.84062 c -12.27637,0 -22.22837,9.68287 -22.22837,21.62771 v 151.40468 c 0,11.94465 9.95198,21.62771 22.22837,21.62771 h 188.96866 c 12.27638,0 22.22836,-9.68302 22.22836,-21.62771 V 180.41177 c 0,-11.94466 -9.95198,-21.62771 -22.22836,-21.62771 z"
|
||||||
|
id="path2102"
|
||||||
|
sodipodi:nodetypes="cccccsssssssss" />
|
||||||
|
<path
|
||||||
|
class="cls-6"
|
||||||
|
d="m 236.80058,309.04141 v 0 c 0,0 -8.35984,-1.66841 -11.3401,-4.64294 L 191.1867,270.66483 c -4.59186,-4.19459 -4.68467,-11.26071 -0.2045,-15.5681 4.48017,-4.3074 11.74092,-4.13278 15.99689,0.38474 l 29.81047,29.33733 57.25155,-56.3264 c 4.34548,-4.07694 11.24039,-4.0359 15.53428,0.0925 4.29389,4.12837 4.41824,10.83599 0.28015,15.11234 l -61.71485,60.73343 c -2.98456,2.95799 -7.0688,4.61077 -11.32908,4.61077 z M 295.06601,198.887 c -6.14123,0 -11.11969,-4.84355 -11.11969,-10.81922 v -43.25542 c -0.19763,-6.10572 4.83578,-11.15977 11.11418,-11.15977 6.2784,0 11.31181,5.05405 11.11419,11.15977 v 43.25542 c 0.006,5.97355 -4.96922,10.81922 -11.10868,10.81922 z m -100.87071,0 c -6.14124,0 -11.11969,-4.84393 -11.11969,-10.81922 v -43.25542 c -0.19763,-6.10572 4.83578,-11.15977 11.11418,-11.15977 6.2784,0 11.31181,5.05405 11.11418,11.15977 v 43.25542 c 0.006,5.97355 -4.96921,10.81922 -11.10867,10.81922 z"
|
||||||
|
id="path2104"
|
||||||
|
sodipodi:nodetypes="csccscccsccscsscsccssscsccs" />
|
||||||
|
<path
|
||||||
|
class="cls-7"
|
||||||
|
d="m 276.89319,421.35109 c -6.99115,-11.25312 -3.11854,-25.89838 8.58629,-32.47135 11.70483,-6.57297 26.67534,-2.50926 33.19246,9.01005"
|
||||||
|
id="path2106"
|
||||||
|
sodipodi:nodetypes="csc" />
|
||||||
|
<path
|
||||||
|
class="cls-8"
|
||||||
|
d="m 77.091377,173.97814 c 13.119348,0.27288 23.608303,10.69891 23.608303,23.46665 0,12.76775 -10.488955,23.19378 -23.608303,23.46666"
|
||||||
|
id="path2108"
|
||||||
|
sodipodi:nodetypes="csc" />
|
||||||
|
<path
|
||||||
|
class="cls-9"
|
||||||
|
d="m 406.30702,142.90372 c -6.36156,11.82833 -21.56786,16.11951 -33.44684,9.43865 -11.87898,-6.68086 -15.64697,-21.64339 -8.28782,-32.91066"
|
||||||
|
id="path2110"
|
||||||
|
sodipodi:nodetypes="csc" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 7.6 KiB |
@@ -0,0 +1,79 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
id="图层_1"
|
||||||
|
data-name="图层 1"
|
||||||
|
viewBox="0 0 484.83 484.83"
|
||||||
|
version="1.1"
|
||||||
|
sodipodi:docname="medal-6.svg"
|
||||||
|
inkscape:version="1.0.2 (e86c8708, 2021-01-15)">
|
||||||
|
<metadata
|
||||||
|
id="metadata2695">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<sodipodi:namedview
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1"
|
||||||
|
objecttolerance="10"
|
||||||
|
gridtolerance="10"
|
||||||
|
guidetolerance="10"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:window-width="1423"
|
||||||
|
inkscape:window-height="801"
|
||||||
|
id="namedview2693"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="0.87453337"
|
||||||
|
inkscape:cx="77.239995"
|
||||||
|
inkscape:cy="141.54343"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="25"
|
||||||
|
inkscape:window-maximized="0"
|
||||||
|
inkscape:current-layer="图层_1" />
|
||||||
|
<defs
|
||||||
|
id="defs2680">
|
||||||
|
<style
|
||||||
|
id="style2678">.cls-1,.cls-3,.cls-5{fill:none;}.cls-1{stroke:#73be66;stroke-width:43px;}.cls-1,.cls-3{stroke-miterlimit:10;}.cls-2{fill:#249d3a;}.cls-3{stroke:#fff;stroke-linecap:round;stroke-width:4.2px;stroke-dasharray:12.73 12.73;}.cls-4{fill:#fff;}</style>
|
||||||
|
</defs>
|
||||||
|
<path
|
||||||
|
class="cls-1"
|
||||||
|
d="m 438.92547,339.88904 v -194.0006 c 0.004,-8.89366 -4.82519,-17.11169 -12.66309,-21.55086 L 255.31603,27.278397 c -7.83378,-4.441953 -17.48152,-4.441953 -25.3153,0 L 59.054386,124.30546 c -7.811204,4.46989 -12.604798,12.69668 -12.575989,21.58298 v 194.0006 c 8.56e-4,8.88967 4.823435,17.10411 12.652207,21.55086 l 170.946346,97.02706 c 7.83378,4.44195 17.48152,4.44195 25.3153,0 L 426.33859,361.4399 c 7.80528,-4.46143 12.60176,-12.67383 12.58688,-21.55086 z"
|
||||||
|
id="path2682"
|
||||||
|
sodipodi:nodetypes="ccccccccccccc" />
|
||||||
|
<path
|
||||||
|
class="cls-2"
|
||||||
|
d="M 438.92547,342.27644 V 148.25443 c 0.0114,-8.90131 -4.81844,-17.12929 -12.66309,-21.57227 L 255.31603,29.655094 c -7.83378,-4.441953 -17.48152,-4.441953 -25.3153,0 L 59.054386,126.68216 c -7.80783,4.46797 -12.600905,12.68979 -12.575989,21.57227 v 194.02201 c -0.0014,8.89027 4.821791,17.10573 12.652207,21.55086 l 170.946346,97.02706 c 7.81244,4.41652 17.42277,4.42059 25.23908,0.0107 l 170.94635,-97.02706 c 7.84127,-4.44108 12.67063,-12.66408 12.66309,-21.56157 z"
|
||||||
|
id="path2684"
|
||||||
|
sodipodi:nodetypes="ccccccccccccc" />
|
||||||
|
<path
|
||||||
|
class="cls-3"
|
||||||
|
d="M 411.39984,325.04003 V 160.78027 c -0.0213,-7.50948 -4.10204,-14.4414 -10.71409,-18.19994 L 256.00199,60.402277 c -6.62869,-3.768054 -14.79948,-3.768054 -21.42817,0 L 89.900946,142.52681 c -6.612043,3.75853 -10.692779,10.69045 -10.71409,18.19993 v 164.31329 c 0.01461,7.51126 4.097144,14.44622 10.71409,18.19993 l 144.727314,82.17806 c 6.6317,3.75702 14.79647,3.75702 21.42818,0 L 400.7402,343.28279 c 6.60945,-3.77496 10.67182,-10.72723 10.65964,-18.24276 z"
|
||||||
|
id="path2686"
|
||||||
|
sodipodi:nodetypes="ccccccccccccc" />
|
||||||
|
<path
|
||||||
|
class="cls-4"
|
||||||
|
d="m 318.25042,265.65471 c 1.82923,0 3.65847,0 5.44415,1.79859 1.78568,1.79858 1.82923,3.59716 1.82923,5.35292 0,1.75576 0,3.59716 -1.82923,5.35292 -1.82924,1.75576 -3.65847,1.79858 -5.44415,1.79858 H 213.94048 c -1.84011,0 -3.66935,0 -5.49859,-1.79858 0,-1.79858 -1.82923,-3.59716 -1.82923,-5.35292 0,-1.75576 0,-3.59717 1.82923,-5.35292 1.82924,0 3.65848,-1.79859 5.49859,-1.79859 z m 0,-52.16957 c 1.82923,0 3.65847,0 5.44415,1.79858 1.78568,1.79858 1.82923,3.59716 1.82923,5.35292 0,1.75576 0,3.59716 -1.82923,5.35292 -1.82924,1.75576 -3.65847,1.79859 -5.44415,1.79859 H 213.94048 c -1.84011,0 -3.66935,0 -5.49859,-1.79859 0,0 -1.82923,-3.59716 -1.82923,-5.35292 0,-1.75576 0,-3.59716 1.82923,-5.35292 1.82924,0 3.65848,-1.79858 5.49859,-1.79858 z m 43.91252,88.15192 V 191.89145 c 0.0364,-8.95893 -7.36241,-16.22895 -16.474,-16.18724 H 186.51285 c -9.11159,-0.0417 -16.5104,7.22831 -16.474,16.18724 V 307.0328 c 1.82923,7.19433 9.15706,10.79149 16.474,10.79149 h 43.91252 l 31.10788,30.62942 c 1.82924,1.79858 3.65847,1.79858 5.44415,1.79858 h 1.82924 l 34.76635,-34.18376 h 42.11595 c 7.31694,3.60787 16.46311,-3.59716 16.46311,-14.38865 z m -47.57099,-140.3322 c -1.82924,-5.35293 -7.31694,-7.19433 -12.80464,-7.19433 H 151.7465 c -9.11335,-0.0358 -16.51036,7.2373 -16.474,16.19794 v 111.54419 c -0.0303,8.95646 7.36492,16.22294 16.474,16.18723 h 3.65847 V 191.89145 c 0,-7.19433 1.84029,-12.60094 7.31694,-17.98582 l 5.44415,-5.35292 c 5.48388,-3.40634 11.81743,-5.25863 18.30324,-5.35292 h 128.12265 z m -5.44415,172.71737 -29.27865,28.78802 c -3.62998,3.56915 -7.2879,5.35292 -10.97541,5.35292 -5.44415,0 -10.9754,-1.79858 -16.474,-7.19433 l -27.43852,-26.98943 h -36.63913 c -14.64477,0 -27.44941,-8.99291 -31.10788,-23.39227 h -5.44415 c -18.23634,0 -31.10788,-12.58982 -31.10788,-30.58659 V 168.50989 c -0.15291,-16.95439 13.86453,-30.73694 31.10788,-30.5866 h 150.0408 c 14.63386,0 25.60929,8.99291 29.27864,23.38157 h 14.57944 c 16.46311,0 32.93711,12.60054 32.93711,30.58659 v 111.59772 c 0,17.98581 -14.64476,30.58659 -32.93711,30.58659 z"
|
||||||
|
id="path2688"
|
||||||
|
sodipodi:nodetypes="sssssscscsssssssscscssccccccsccsccccccscccccsscccccssccscssccscssscc" />
|
||||||
|
<rect
|
||||||
|
class="cls-5"
|
||||||
|
x="126.32"
|
||||||
|
y="150.11"
|
||||||
|
width="236.95"
|
||||||
|
height="215.6"
|
||||||
|
id="rect2690" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 5.6 KiB |
@@ -0,0 +1,110 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
id="图层_1"
|
||||||
|
data-name="图层 1"
|
||||||
|
viewBox="0 0 484.83 484.83"
|
||||||
|
version="1.1"
|
||||||
|
sodipodi:docname="medal-7.svg"
|
||||||
|
inkscape:version="1.0.2 (e86c8708, 2021-01-15)">
|
||||||
|
<metadata
|
||||||
|
id="metadata3286">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<sodipodi:namedview
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1"
|
||||||
|
objecttolerance="10"
|
||||||
|
gridtolerance="10"
|
||||||
|
guidetolerance="10"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:window-width="1745"
|
||||||
|
inkscape:window-height="873"
|
||||||
|
id="namedview3284"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="0.87453337"
|
||||||
|
inkscape:cx="-5.4836925"
|
||||||
|
inkscape:cy="161.35911"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="25"
|
||||||
|
inkscape:window-maximized="0"
|
||||||
|
inkscape:current-layer="图层_1" />
|
||||||
|
<defs
|
||||||
|
id="defs3265">
|
||||||
|
<style
|
||||||
|
id="style3258">.cls-1,.cls-3,.cls-6{fill:none;}.cls-1,.cls-3{stroke-miterlimit:10;}.cls-1{stroke-width:43px;stroke:url(#未命名的渐变_26);}.cls-2{fill:#1b2f4e;}.cls-3{stroke:#fff;stroke-linecap:round;stroke-width:4.2px;stroke-dasharray:12.73 12.73;}.cls-4{fill:#63bce3;}.cls-5{fill:#fff;}</style>
|
||||||
|
<linearGradient
|
||||||
|
id="未命名的渐变_26"
|
||||||
|
x1="40.7"
|
||||||
|
y1="242.41"
|
||||||
|
x2="444.13"
|
||||||
|
y2="242.41"
|
||||||
|
gradientUnits="userSpaceOnUse">
|
||||||
|
<stop
|
||||||
|
offset="0"
|
||||||
|
stop-color="#5eb8e9"
|
||||||
|
id="stop3260" />
|
||||||
|
<stop
|
||||||
|
offset="1"
|
||||||
|
stop-color="#3a80c3"
|
||||||
|
id="stop3262" />
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
<path
|
||||||
|
class="cls-1"
|
||||||
|
d="M 441.3722,341.50934 V 146.50321 c 0.004,-8.93976 -4.86581,-17.20038 -12.76969,-21.66256 L 256.2173,27.278397 c -7.89972,-4.464976 -17.62866,-4.464976 -25.52838,0 L 58.303706,124.80836 c -7.876952,4.49307 -12.710893,12.7625 -12.681842,21.69485 v 195.00613 c 8.63e-4,8.93576 4.864034,17.19277 12.758701,21.66257 l 172.385215,97.52997 c 7.89972,4.46497 17.62866,4.46497 25.52838,0 l 172.38521,-97.52997 c 7.87098,-4.48456 12.70783,-12.73952 12.69283,-21.66257 z"
|
||||||
|
id="path3267"
|
||||||
|
sodipodi:nodetypes="ccccccccccccc" />
|
||||||
|
<path
|
||||||
|
class="cls-2"
|
||||||
|
d="M 441.3722,344.49023 V 149.44106 c 7.9e-4,-8.94182 -4.86739,-17.20434 -12.76969,-21.67333 L 256.2173,30.248525 c -7.89972,-4.464976 -17.62866,-4.464976 -25.52838,0 L 58.303706,127.76773 c -7.866834,4.49244 -12.698528,12.74982 -12.681842,21.67333 v 195.04917 c 8.63e-4,8.93576 4.864034,17.19277 12.758701,21.66257 L 230.76578,463.672 c 7.89668,4.47608 17.6317,4.47608 25.52838,0 l 172.30835,-97.5192 c 7.90056,-4.46544 12.76882,-12.724 12.76969,-21.66257 z"
|
||||||
|
id="path3269"
|
||||||
|
sodipodi:nodetypes="ccccccccccccc" />
|
||||||
|
<path
|
||||||
|
class="cls-3"
|
||||||
|
d="M 413.61488,326.58337 V 161.47223 c -0.0215,-7.54841 -4.13657,-14.51625 -10.80427,-18.29427 L 256.90904,60.573963 c -6.68449,-3.787584 -14.92405,-3.787584 -21.60854,0 L 89.409904,143.12415 c -6.667698,3.77802 -10.782781,10.74587 -10.804271,18.29427 v 165.16495 c 0.01474,7.5502 4.131629,14.5211 10.804271,18.29427 l 145.945496,82.604 c 6.68752,3.77649 14.92102,3.77649 21.60854,0 l 145.90157,-82.56095 c 6.66509,-3.79453 10.76165,-10.78283 10.74937,-18.33732 z"
|
||||||
|
id="path3271"
|
||||||
|
sodipodi:nodetypes="ccccccccccccc" />
|
||||||
|
<path
|
||||||
|
class="cls-4"
|
||||||
|
d="m 292.91229,166.87442 h -93.65897 c -9.13279,0.0237 -16.52868,7.27712 -16.54678,16.22809 v 127.56485 c 0.0181,8.95097 7.41399,16.20441 16.54678,16.22809 h 93.65897 c 9.14492,-0.0296 16.54573,-7.2975 16.55777,-16.26037 V 183.10251 c -0.0241,-8.95271 -7.42318,-16.20444 -16.55777,-16.22809 z m 0.23058,83.1313 h -94.02131 c -3.5993,0.14695 -6.59912,-2.67321 -6.59912,-6.20391 0,-3.53069 2.99982,-6.35086 6.59912,-6.20391 h 93.98837 c 3.39346,0.13855 6.07174,2.87514 6.07174,6.20391 0,3.32877 -2.67828,6.06536 -6.07174,6.20391 z m 0,-37.97674 h -94.02131 c -3.4929,0 -6.32445,-2.77518 -6.32445,-6.19853 0,-3.42336 2.83155,-6.19853 6.32445,-6.19853 h 93.98837 c 3.49298,0 6.32445,2.77517 6.32445,6.19853 0,3.42335 -2.83155,6.19853 -6.32445,6.19853 z"
|
||||||
|
id="path3273"
|
||||||
|
sodipodi:nodetypes="cccccccccccsccscccssssscc" />
|
||||||
|
<path
|
||||||
|
class="cls-5"
|
||||||
|
d="m 341.57543,298.94827 c -3.49396,-0.0118 -6.32338,-2.7849 -6.33543,-6.20929 V 165.40012 c 0,-10.69689 -9.6404,-19.37041 -21.48776,-19.37041 h -7.91654 c -8.09566,-0.33053 -8.09566,-12.07728 0,-12.40781 h 7.91654 c 18.88755,0 34.14764,14.25853 34.14764,31.76745 v 127.34963 c -0.012,3.42021 -2.83478,6.19159 -6.32445,6.20929 z M 235.6848,360.13721 h -57.2275 c -18.79927,0 -34.14765,-14.25864 -34.14765,-31.76746 V 165.55077 c 0,-17.50869 15.23587,-31.76745 34.14765,-31.76745 h 9.34393 c 3.39346,0.13855 6.07174,2.87514 6.07174,6.20391 0,3.32877 -2.67828,6.06536 -6.07174,6.2039 h -9.34393 c -11.84737,0 -21.48776,8.66282 -21.48776,19.37041 v 162.81898 c 0,10.70752 9.63955,19.3704 21.48776,19.3704 h 57.2275 c 3.39345,0.13855 6.07173,2.87514 6.07173,6.20391 0,3.32877 -2.67828,6.06536 -6.07173,6.2039 z"
|
||||||
|
id="path3275"
|
||||||
|
sodipodi:nodetypes="ccssccsscccsssscscsssscscc" />
|
||||||
|
<path
|
||||||
|
class="cls-5"
|
||||||
|
d="m 280.06575,360.13721 c -1.88824,0.0388 -3.7622,-0.32856 -5.48997,-1.07613 -5.93358,-2.25932 -9.83248,-7.86927 -9.8051,-14.10811 v -46.65038 c 0.042,-10.58332 8.77899,-19.15591 19.57725,-19.20898 h 49.6184 c 12.31603,0.0406 18.5443,14.55762 9.95881,23.21219 l -52.7916,53.19328 c -2.91018,2.93263 -6.89399,4.60599 -11.06779,4.64889 z m 4.28218,-68.64655 c -3.82119,0.0408 -6.90873,3.06681 -6.9503,6.81193 v 46.62886 c 0.0324,1.12953 0.70023,2.14863 1.73483,2.64729 0.98088,0.4572 2.15291,0.20979 2.85478,-0.60264 l 52.94532,-53.29012 c 0.31775,-0.39462 0.43127,-0.91115 0.30744,-1.39898 -0.13249,-0.48342 -0.58757,-0.81347 -1.09799,-0.79634 z M 220.785,152.38966 c -3.47254,-0.0352 -6.2737,-2.79499 -6.29151,-6.19853 v -12.21411 c -0.14994,-3.52764 2.72752,-6.46772 6.32994,-6.46772 3.60242,0 6.47988,2.94008 6.32994,6.46772 v 12.2464 c -0.0181,3.41494 -2.85106,6.16624 -6.33543,6.16624 z m 51.25441,0 c -3.4897,-0.0118 -6.31737,-2.77834 -6.33543,-6.19853 v -12.21411 c -0.14994,-3.52764 2.72752,-6.46772 6.32994,-6.46772 3.60242,0 6.47988,2.94008 6.32994,6.46772 v 12.2464 c -0.0476,3.39856 -2.85665,6.13731 -6.32445,6.16624 z"
|
||||||
|
id="path3277"
|
||||||
|
sodipodi:nodetypes="ccccccccccccccccccccccsccsccccsccc" />
|
||||||
|
<rect
|
||||||
|
class="cls-6"
|
||||||
|
x="152.08"
|
||||||
|
y="134.2"
|
||||||
|
width="185.43"
|
||||||
|
height="216.43"
|
||||||
|
id="rect3279" />
|
||||||
|
<path
|
||||||
|
class="cls-5"
|
||||||
|
d="m 327.48816,291.49066 h -14.39472 c -3.4929,0 -6.32445,-2.77517 -6.32445,-6.19852 0,-3.42336 2.82993,-6.19853 6.32445,-6.19853 h 14.39472 c 4.283,-0.006 7.75184,-3.40704 7.75184,-7.60827 v -13.61308 c 0.33725,-7.93447 12.32264,-7.93447 12.65988,0 v 13.80679 c -0.10246,10.97537 -9.21292,19.81798 -20.41172,19.81161 z"
|
||||||
|
id="path3281"
|
||||||
|
sodipodi:nodetypes="cssscscccc" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 7.2 KiB |
@@ -0,0 +1,99 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
id="图层_1"
|
||||||
|
data-name="图层 1"
|
||||||
|
viewBox="0 0 484.83 484.83"
|
||||||
|
version="1.1"
|
||||||
|
sodipodi:docname="medal-8.svg"
|
||||||
|
inkscape:version="1.0.2 (e86c8708, 2021-01-15)">
|
||||||
|
<metadata
|
||||||
|
id="metadata3873">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<sodipodi:namedview
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1"
|
||||||
|
objecttolerance="10"
|
||||||
|
gridtolerance="10"
|
||||||
|
guidetolerance="10"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:window-width="1229"
|
||||||
|
inkscape:window-height="784"
|
||||||
|
id="namedview3871"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="0.61838847"
|
||||||
|
inkscape:cx="17.821422"
|
||||||
|
inkscape:cy="132.44218"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="25"
|
||||||
|
inkscape:window-maximized="0"
|
||||||
|
inkscape:current-layer="图层_1" />
|
||||||
|
<defs
|
||||||
|
id="defs3858">
|
||||||
|
<style
|
||||||
|
id="style3849">.cls-1,.cls-3,.cls-4{fill:none;}.cls-1,.cls-3{stroke-miterlimit:10;}.cls-1{stroke-width:43px;stroke:url(#未命名的渐变_4);}.cls-2{fill:#1b2f4e;}.cls-3{stroke:#fff;stroke-linecap:round;stroke-width:4.2px;stroke-dasharray:12.73 12.73;}.cls-5{fill:#fff;}</style>
|
||||||
|
<linearGradient
|
||||||
|
id="未命名的渐变_4"
|
||||||
|
x1="40.7"
|
||||||
|
y1="242.41"
|
||||||
|
x2="444.13"
|
||||||
|
y2="242.41"
|
||||||
|
gradientUnits="userSpaceOnUse">
|
||||||
|
<stop
|
||||||
|
offset="0"
|
||||||
|
stop-color="#6ba8dc"
|
||||||
|
id="stop3851" />
|
||||||
|
<stop
|
||||||
|
offset="0.48"
|
||||||
|
stop-color="#6599d1"
|
||||||
|
id="stop3853" />
|
||||||
|
<stop
|
||||||
|
offset="1"
|
||||||
|
stop-color="#83b9e5"
|
||||||
|
id="stop3855" />
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
<path
|
||||||
|
class="cls-1"
|
||||||
|
d="M 437.18396,339.54921 V 145.24296 c 0.004,-8.90768 -4.78943,-17.13865 -12.56923,-21.58482 L 254.93559,26.446042 c -7.77571,-4.448951 -17.35193,-4.448951 -25.12764,0 L 60.128807,123.62597 c -7.753301,4.47694 -12.51136,12.71669 -12.482765,21.61699 v 194.30625 c 8.5e-4,8.90368 4.78768,17.13106 12.558418,21.58482 l 169.67914,97.17993 c 7.77571,4.44895 17.35193,4.44895 25.12764,0 l 169.67915,-97.17993 c 7.74741,-4.46846 12.50834,-12.6938 12.49357,-21.58482 z"
|
||||||
|
id="path3860"
|
||||||
|
sodipodi:nodetypes="ccccccccccccc" />
|
||||||
|
<path
|
||||||
|
class="cls-2"
|
||||||
|
d="M 437.18396,339.54921 V 145.24296 c 0.004,-8.90768 -4.78943,-17.13865 -12.56923,-21.58482 L 254.93559,26.446042 c -7.77571,-4.448951 -17.35193,-4.448951 -25.12764,0 L 60.128807,123.62597 c -7.753301,4.47694 -12.51136,12.71669 -12.482765,21.61699 v 194.30625 c 8.5e-4,8.90368 4.78768,17.13106 12.558418,21.58482 l 169.67914,97.17993 c 7.77571,4.44895 17.35193,4.44895 25.12764,0 l 169.67915,-97.17993 c 7.74741,-4.46846 12.50834,-12.6938 12.49357,-21.58482 z"
|
||||||
|
id="path3862"
|
||||||
|
sodipodi:nodetypes="ccccccccccccc" />
|
||||||
|
<path
|
||||||
|
class="cls-3"
|
||||||
|
d="M 409.86237,324.67681 V 160.15825 c -0.0211,-7.52131 -4.07163,-14.46415 -10.63466,-18.22861 L 255.61647,59.62211 c -6.57956,-3.773991 -14.68978,-3.773991 -21.26933,0 L 90.746705,141.87603 c -6.563029,3.76446 -10.613515,10.70729 -10.634667,18.22861 v 164.57217 c 0.0145,7.52309 4.066772,14.46898 10.634667,18.22861 l 143.654465,82.30753 c 6.58255,3.76294 14.6868,3.76294 21.26934,0 l 143.61123,-82.26464 c 6.56047,-3.78091 10.59272,-10.74413 10.58063,-18.2715 z"
|
||||||
|
id="path3864"
|
||||||
|
sodipodi:nodetypes="ccccccccccccc" />
|
||||||
|
<rect
|
||||||
|
class="cls-4"
|
||||||
|
x="20.53"
|
||||||
|
y="67.69"
|
||||||
|
width="305.96"
|
||||||
|
height="306.36"
|
||||||
|
id="rect3866" />
|
||||||
|
<path
|
||||||
|
class="cls-5"
|
||||||
|
d="m 339.10509,313.87904 c 0,7.90585 -6.45969,14.31482 -14.42813,14.31482 h -96.76034 c -7.96857,0 -14.42813,-6.40896 -14.42813,-14.31482 0,-7.90586 6.45963,-14.31482 14.42813,-14.31482 h 96.78196 c 7.95858,0.0236 14.40439,6.41874 14.42813,14.31482 z m 0,-40.48896 c -0.006,7.90167 -6.46391,14.3041 -14.42813,14.3041 H 269.7636 c -8.12006,0.22055 -14.82297,-6.25016 -14.82297,-14.30946 0,-8.0593 6.70291,-14.53001 14.82297,-14.30946 h 54.91336 c 7.95858,0.0236 14.40439,6.41874 14.42813,14.31482 z m -57.59364,-71.91722 -94.18813,105.08257 -39.82597,8.1707 c -2.09824,0.49337 -4.01462,-1.31715 -3.62054,-3.42054 l 5.80368,-39.82415 93.26949,-104.0103 c 2.16151,-2.38044 5.63075,-2.79863 7.78146,-0.87926 l 30.78001,27.12846 c 2.16152,1.85503 2.16152,5.36135 0,7.70963 z m 27.15947,-30.27022 -14.42813,16.08407 c -1.16536,1.28804 -3.16123,1.39832 -4.46353,0.24662 L 255.89747,157.6813 c -1.29824,-1.1562 -1.40939,-3.1364 -0.24858,-4.42848 l 14.46056,-16.08406 c 5.23231,-5.83805 14.24619,-6.35677 20.12373,-1.15806 l 17.29214,15.25842 c 5.83532,5.22682 6.31828,14.14887 1.08076,19.96569 z"
|
||||||
|
id="path3868"
|
||||||
|
sodipodi:nodetypes="cssssccccscsccccccccccccccccccccccc" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 5.1 KiB |
@@ -0,0 +1,151 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
id="图层_1"
|
||||||
|
data-name="图层 1"
|
||||||
|
viewBox="0 0 484.83 484.83"
|
||||||
|
version="1.1"
|
||||||
|
sodipodi:docname="medal-9.svg"
|
||||||
|
inkscape:version="1.0.2 (e86c8708, 2021-01-15)">
|
||||||
|
<metadata
|
||||||
|
id="metadata4476">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<sodipodi:namedview
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1"
|
||||||
|
objecttolerance="10"
|
||||||
|
gridtolerance="10"
|
||||||
|
guidetolerance="10"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:window-width="1678"
|
||||||
|
inkscape:window-height="906"
|
||||||
|
id="namedview4474"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="1.2367769"
|
||||||
|
inkscape:cx="295.24082"
|
||||||
|
inkscape:cy="274.24941"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="25"
|
||||||
|
inkscape:window-maximized="0"
|
||||||
|
inkscape:current-layer="图层_1" />
|
||||||
|
<defs
|
||||||
|
id="defs4453">
|
||||||
|
<style
|
||||||
|
id="style4436">.cls-1{fill:#e84a8a;}.cls-2,.cls-3,.cls-4{fill:none;}.cls-2,.cls-3,.cls-7{stroke-miterlimit:10;}.cls-2{stroke-width:43px;stroke:url(#未命名的渐变_12);}.cls-3{stroke:#fff;stroke-linecap:round;stroke-width:4.2px;stroke-dasharray:12.73 12.73;}.cls-5{mask:url(#mask);}.cls-6{fill:#af184e;}.cls-7{fill:#fff;stroke:#f7f7f7;stroke-width:0.81px;}.cls-8{filter:url(#luminosity-noclip);}</style>
|
||||||
|
<linearGradient
|
||||||
|
id="未命名的渐变_12"
|
||||||
|
x1="449.47"
|
||||||
|
y1="251.04"
|
||||||
|
x2="39.06"
|
||||||
|
y2="233.78"
|
||||||
|
gradientUnits="userSpaceOnUse">
|
||||||
|
<stop
|
||||||
|
offset="0"
|
||||||
|
stop-color="#e38bb1"
|
||||||
|
id="stop4438" />
|
||||||
|
<stop
|
||||||
|
offset="1"
|
||||||
|
stop-color="#e84a8a"
|
||||||
|
id="stop4440" />
|
||||||
|
</linearGradient>
|
||||||
|
<filter
|
||||||
|
id="luminosity-noclip"
|
||||||
|
x="61.9"
|
||||||
|
y="35.58"
|
||||||
|
width="366"
|
||||||
|
height="328"
|
||||||
|
filterUnits="userSpaceOnUse"
|
||||||
|
color-interpolation-filters="sRGB">
|
||||||
|
<feFlood
|
||||||
|
flood-color="#fff"
|
||||||
|
result="bg"
|
||||||
|
id="feFlood4443" />
|
||||||
|
<feBlend
|
||||||
|
in="SourceGraphic"
|
||||||
|
in2="bg"
|
||||||
|
id="feBlend4445" />
|
||||||
|
</filter>
|
||||||
|
<mask
|
||||||
|
id="mask"
|
||||||
|
x="61.9"
|
||||||
|
y="35.58"
|
||||||
|
width="366"
|
||||||
|
height="328"
|
||||||
|
maskUnits="userSpaceOnUse">
|
||||||
|
<g
|
||||||
|
class="cls-8"
|
||||||
|
id="g4450">
|
||||||
|
<image
|
||||||
|
width="366"
|
||||||
|
height="328"
|
||||||
|
transform="translate(61.9 35.58)"
|
||||||
|
xlink:href="data:image/png;base64,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 truncated
|
||||||
|
id="image4448" />
|
||||||
|
</g>
|
||||||
|
</mask>
|
||||||
|
</defs>
|
||||||
|
<path
|
||||||
|
class="cls-1"
|
||||||
|
d="M 445.30383,338.06559 V 143.76215 c -8.7e-4,-8.90159 -4.92319,-17.12704 -12.91388,-21.57975 L 257.90808,25.036042 c -7.99273,-4.458967 -17.84615,-4.458967 -25.83888,0 L 216.51031,33.719396 57.665126,122.1824 c -7.996642,4.44837 -12.92412,12.67535 -12.924994,21.57975 v 194.30344 c -8.04e-4,8.90763 4.926591,17.13856 12.924994,21.59046 L 232.147,456.80241 c 7.9958,4.44791 17.84307,4.44791 25.83887,0 l 174.48187,-97.14636 c 7.96252,-4.47526 12.85298,-12.70108 12.83609,-21.59046 z"
|
||||||
|
id="path4455"
|
||||||
|
sodipodi:nodetypes="cccccccccccccc" />
|
||||||
|
<path
|
||||||
|
class="cls-2"
|
||||||
|
d="M 442.40321,339.57713 V 145.31657 c 10e-4,-8.90218 -4.92152,-17.12865 -12.91388,-21.57974 L 255.0408,26.547589 c -7.99581,-4.447905 -17.84308,-4.447905 -25.83888,0 L 54.72005,123.70467 c -7.992365,4.45109 -12.915298,12.67756 -12.913881,21.57974 v 194.29272 c 8.75e-4,8.90159 4.923194,17.12704 12.913881,21.57975 l 174.48187,97.15708 c 7.9958,4.4479 17.84307,4.4479 25.83888,0 l 174.48187,-97.15708 c 7.97785,-4.46087 12.88655,-12.68478 12.88054,-21.57975 z"
|
||||||
|
id="path4457"
|
||||||
|
sodipodi:nodetypes="ccccccccccccc" />
|
||||||
|
<path
|
||||||
|
class="cls-3"
|
||||||
|
d="M 412.2523,324.70823 V 160.22836 c -0.0217,-7.51955 -4.18689,-14.46075 -10.93568,-18.22433 L 253.6405,59.715856 c -6.76579,-3.773104 -15.10557,-3.773104 -21.87136,0 L 84.104131,141.95043 c -6.748794,3.76358 -10.913928,10.70478 -10.935679,18.22433 v 164.53347 c 0.01492,7.52133 4.181881,14.46558 10.935679,18.22432 l 147.720579,82.28818 c 6.76886,3.76206 15.10249,3.76206 21.87135,0 l 147.67613,-82.2453 c 6.75379,-3.75874 10.92076,-10.70299 10.93567,-18.22432 z"
|
||||||
|
id="path4459"
|
||||||
|
sodipodi:nodetypes="cccccccccccccc" />
|
||||||
|
<rect
|
||||||
|
class="cls-4"
|
||||||
|
x="126.32"
|
||||||
|
y="150.11"
|
||||||
|
width="236.95"
|
||||||
|
height="215.6"
|
||||||
|
id="rect4461" />
|
||||||
|
<g
|
||||||
|
class="cls-5"
|
||||||
|
mask="url(#mask)"
|
||||||
|
id="g4465">
|
||||||
|
<path
|
||||||
|
class="cls-6"
|
||||||
|
d="M424.48,158.32l-5-9.17a28.38,28.38,0,0,0-11.26-11.24L262,58a28.32,28.32,0,0,0-27.77.32L95.46,138.4A28.34,28.34,0,0,0,81.29,163V329a56.75,56.75,0,0,0,4.62,22.43l4.23,9.81-11.91-6.58S64.05,347.32,64.05,333V151.79s-1.28-12.68,11.62-20.13L232.64,41s11.49-6.79,23.25,0l157,90.63S427.62,137.58,424.48,158.32Z"
|
||||||
|
id="path4463" />
|
||||||
|
</g>
|
||||||
|
<path
|
||||||
|
class="cls-7"
|
||||||
|
d="m 321.0883,329.65024 c -18.83738,5.5209 -48.95495,6.50715 -81.53971,6.50715 -62.669,0 -110.02361,-7.18252 -110.02361,-24.49563 0,-32.90026 32.70702,-61.8555 79.7171,-70.75325 -27.15682,-11.79857 -42.1667,-40.21631 -36.09813,-68.34061 6.06849,-28.124 31.58458,-48.39715 61.36563,-48.76613 29.78104,-0.36899 55.82852,19.2653 62.64387,47.22967 6.81543,27.96467 -7.43282,56.74491 -34.26653,69.21241 7.2691,1.3211 14.3996,3.27296 21.30457,5.83179 -6.86549,5.9581 -10.78086,14.45105 -10.76897,23.35929 0,30.59542 30.4732,48.60534 47.67689,60.17243 z"
|
||||||
|
id="path4467"
|
||||||
|
sodipodi:nodetypes="csscsssccccc" />
|
||||||
|
<path
|
||||||
|
class="cls-7"
|
||||||
|
d="m 313.16438,243.64215 c 7.08914,0.0432 13.78689,3.14181 18.25947,8.44751 4.46516,-5.28526 11.13607,-8.3809 18.2039,-8.44751 13.37101,0.0709 24.15938,10.56857 24.11629,23.4665 0,26.57535 -30.66214,40.50088 -40.99769,48.90551 l -1.3225,1.07202 -1.32251,-1.07202 c -10.35778,-8.41535 -40.99768,-22.33016 -40.99768,-48.90551 -0.0432,-12.88131 10.71822,-23.37211 24.07183,-23.4665 z"
|
||||||
|
id="path4469"
|
||||||
|
sodipodi:nodetypes="cccccccccc" />
|
||||||
|
<image
|
||||||
|
width="411"
|
||||||
|
height="367"
|
||||||
|
transform="translate(51.9 120.58)"
|
||||||
|
xlink:href="data:image/png;base64,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 truncated
|
||||||
|
id="image4471" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 30 KiB |
@@ -0,0 +1,118 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
viewBox="-1300 -1300 2172.0716 1152.977"
|
||||||
|
version="1.1"
|
||||||
|
id="svg835"
|
||||||
|
sodipodi:docname="medal-background.svg"
|
||||||
|
width="2172.0715"
|
||||||
|
height="1152.9769"
|
||||||
|
inkscape:version="1.0.2 (e86c8708, 2021-01-15)">
|
||||||
|
<metadata
|
||||||
|
id="metadata841">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<defs
|
||||||
|
id="defs839">
|
||||||
|
<inkscape:perspective
|
||||||
|
sodipodi:type="inkscape:persp3d"
|
||||||
|
inkscape:vp_x="0 : 4152.8066 : 1"
|
||||||
|
inkscape:vp_y="0 : 1000.0001 : 0"
|
||||||
|
inkscape:vp_z="3600.0001 : 4152.8066 : 1"
|
||||||
|
inkscape:persp3d-origin="1800 : 3552.8066 : 1"
|
||||||
|
id="perspective919" />
|
||||||
|
</defs>
|
||||||
|
<sodipodi:namedview
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1"
|
||||||
|
objecttolerance="10"
|
||||||
|
gridtolerance="10"
|
||||||
|
guidetolerance="10"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:window-width="1643"
|
||||||
|
inkscape:window-height="903"
|
||||||
|
id="namedview837"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="0.20111111"
|
||||||
|
inkscape:cx="1083.136"
|
||||||
|
inkscape:cy="200.67364"
|
||||||
|
inkscape:window-x="83"
|
||||||
|
inkscape:window-y="25"
|
||||||
|
inkscape:window-maximized="0"
|
||||||
|
inkscape:current-layer="svg835"
|
||||||
|
inkscape:document-rotation="0" />
|
||||||
|
<ellipse
|
||||||
|
style="fill:none;fill-opacity:0.0209205;stroke:#757575;stroke-width:10;stroke-miterlimit:4;stroke-dasharray:40, 40;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="path847"
|
||||||
|
ry="434.62665"
|
||||||
|
rx="1081.0355"
|
||||||
|
cy="-723.38593"
|
||||||
|
cx="-213.96408" />
|
||||||
|
<ellipse
|
||||||
|
style="fill:none;fill-opacity:0.0209205;stroke:#757575;stroke-width:10;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="path847-3"
|
||||||
|
cx="-213.76193"
|
||||||
|
cy="-743.93646"
|
||||||
|
rx="469.3873"
|
||||||
|
ry="222.237" />
|
||||||
|
<circle
|
||||||
|
style="fill:#757575;fill-opacity:1;stroke:none;stroke-width:12;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="path875"
|
||||||
|
cx="78.433647"
|
||||||
|
cy="-572.49097"
|
||||||
|
r="30" />
|
||||||
|
<circle
|
||||||
|
style="fill:none;fill-opacity:0.0209205;stroke:#757575;stroke-width:9.91856;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="path877-1-8"
|
||||||
|
cx="-781.72888"
|
||||||
|
cy="-353.56128"
|
||||||
|
r="30.582167" />
|
||||||
|
<path
|
||||||
|
sodipodi:type="star"
|
||||||
|
style="fill:#757575;fill-opacity:0.16318;stroke:#757575;stroke-width:11.6319;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.945607"
|
||||||
|
id="path935"
|
||||||
|
sodipodi:sides="4"
|
||||||
|
sodipodi:cx="-564.08838"
|
||||||
|
sodipodi:cy="-708.28729"
|
||||||
|
sodipodi:r1="149.1713"
|
||||||
|
sodipodi:r2="50.122749"
|
||||||
|
sodipodi:arg1="1.5707963"
|
||||||
|
sodipodi:arg2="2.3753221"
|
||||||
|
inkscape:flatsided="false"
|
||||||
|
inkscape:rounded="0"
|
||||||
|
inkscape:randomized="0"
|
||||||
|
d="m -564.08837,-559.116 -36.11354,-114.41352 -113.05776,-34.75777 114.41352,-36.11354 34.75777,-113.05776 36.11354,114.41353 113.05776,34.75776 -114.41353,36.11354 z"
|
||||||
|
transform="matrix(0.27797773,0,0,0.38000076,872.67424,58.011001)" />
|
||||||
|
<path
|
||||||
|
sodipodi:type="star"
|
||||||
|
style="fill:#757575;fill-opacity:0.16318;stroke:#757575;stroke-width:11.6319;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="path935-9"
|
||||||
|
sodipodi:sides="4"
|
||||||
|
sodipodi:cx="-564.08838"
|
||||||
|
sodipodi:cy="-708.28729"
|
||||||
|
sodipodi:r1="149.1713"
|
||||||
|
sodipodi:r2="50.122749"
|
||||||
|
sodipodi:arg1="1.5707963"
|
||||||
|
sodipodi:arg2="2.3753221"
|
||||||
|
inkscape:flatsided="false"
|
||||||
|
inkscape:rounded="0"
|
||||||
|
inkscape:randomized="0"
|
||||||
|
transform="matrix(0.42532925,0,0,0.58143303,-876.52701,-790.07611)"
|
||||||
|
d="m -564.08837,-559.116 -36.11354,-114.41352 -113.05776,-34.75777 114.41352,-36.11354 34.75777,-113.05776 36.11354,114.41353 113.05776,34.75776 -114.41353,36.11354 z" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 4.3 KiB |
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 400 240"><defs><linearGradient id="37" x1="-1196.91" x2="-1196.91" y1="-2991.92" y2="-2992.42" gradientTransform="matrix(390 0 0 -196 466994.5 -586306)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#a8a8a8" stop-opacity=".15"/><stop offset="1" stop-color="#a8a8a8" stop-opacity="0"/></linearGradient><linearGradient id="10" x1="-1135.7" x2="-1122.27" y1="100.42" y2="100.42" gradientTransform="translate(1420)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fff7ed"/><stop offset="1" stop-color="#ffebd6"/></linearGradient><linearGradient xlink:href="#10" id="10-2" x1="-1132.83" x2="-1127.03" y1="88.06" y2="88.06"/><linearGradient xlink:href="#10" id="10-3" x1="-900.95" x2="-889.11" y1="158.75" y2="158.75" gradientTransform="translate(1196 10.02)"/><linearGradient id="13" x1="-1126.62" x2="-1140.23" y1="148.8" y2="148.8" gradientTransform="translate(1420)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#8caefb"/><stop offset="1" stop-color="#6894f9"/></linearGradient><linearGradient id="11" x1="-1069.11" x2="-1069.11" y1="-3121.64" y2="-3122.33" gradientTransform="matrix(-16.86 6.29 -6.64 -17.8 -38472.26 -48771.94)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#494983"/><stop offset="1" stop-color="#272557"/></linearGradient><linearGradient id="15" x1="522.73" x2="532.66" y1="178.63" y2="178.63" gradientTransform="matrix(-1 0 0 1 807.09 0)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#1f1e4a"/><stop offset="1" stop-color="#424677"/></linearGradient><linearGradient xlink:href="#13" id="13-2" x1="-1119.57" x2="-1133.08" y1="149.66" y2="149.66"/><linearGradient xlink:href="#15" id="15-2" x1="506.66" x2="516.59" y1="179.78" y2="179.78"/><linearGradient id="12" x1="-1142.63" x2="-1113.97" y1="106.32" y2="106.32" gradientTransform="translate(1420)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fda457"/><stop offset="1" stop-color="#f96252"/></linearGradient><linearGradient id="93" x1="133.5" x2="199.2" y1="121.27" y2="121.27" gradientTransform="matrix(-1 0 0 1 387 0)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#f2f2f2"/><stop offset=".13" stop-color="#ededed"/><stop offset=".59" stop-color="#e0e0e0"/><stop offset="1" stop-color="#dbdbdb"/></linearGradient><linearGradient id="90" x1="228.35" x2="228.35" y1="168" y2="68.99" gradientTransform="matrix(-1 0 0 1 387 0)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fafafa"/><stop offset="1" stop-color="#dbdbdb"/></linearGradient><linearGradient id="91" x1="133.5" x2="257.5" y1="74.07" y2="74.07" gradientTransform="matrix(-1 0 0 1 387 0)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#c9c9c9"/><stop offset=".57" stop-color="#dadada"/><stop offset="1" stop-color="#ebebeb"/></linearGradient><linearGradient xlink:href="#90" id="90-2" x1="133.5" x2="222.21" y1="68.99" y2="68.99"/><linearGradient xlink:href="#90" id="90-3" x1="208.91" x2="208.91" y1="92.12" y2="60.7"/><linearGradient id="89" x1="151.59" x2="229.37" y1="71.83" y2="71.83" gradientTransform="matrix(-1 0 0 1 387 0)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fafafa"/><stop offset="1" stop-color="#ececec"/></linearGradient><linearGradient xlink:href="#89" id="89-2" x1="151.59" x2="168.7" y1="87.02" y2="87.02"/><linearGradient id="73" x1="151.22" x2="213.99" y1="71.53" y2="71.53" gradientTransform="matrix(-1 0 0 1 378.5 0)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#f2f2f2"/><stop offset=".02" stop-color="#f1f1f1"/><stop offset=".36" stop-color="#dbdbdc"/><stop offset=".7" stop-color="#cececf"/><stop offset="1" stop-color="#c9cacb"/></linearGradient><linearGradient id="70" x1="197.8" x2="198.61" y1="85.9" y2="120.51" gradientTransform="matrix(-1 0 0 1 396 0)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#4b82fa" stop-opacity=".3"/><stop offset="1" stop-color="#4b82fa" stop-opacity=".9"/></linearGradient><linearGradient id="41" x1="193.02" x2="193.89" y1="30.71" y2="67.82" gradientTransform="rotate(.36 192.637 18.494)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#4b82fa" stop-opacity="0"/><stop offset="1" stop-color="#4b82fa" stop-opacity=".6"/></linearGradient><linearGradient xlink:href="#41" id="41-2" x1="176.63" x2="177.28" y1="24.85" y2="52.21"/><linearGradient xlink:href="#41" id="41-3" x1="205.62" x2="205.95" y1="26.87" y2="40.78"/><radialGradient id="radial-gradient" cx="190.23" cy="17776.76" r="114.55" gradientTransform="matrix(1 0 0 .15 6.19 -2480.22)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#808083"/><stop offset=".07" stop-color="#9a9a9c"/><stop offset=".17" stop-color="#b9b9ba"/><stop offset=".28" stop-color="#d2d2d4"/><stop offset=".4" stop-color="#e6e6e7"/><stop offset=".53" stop-color="#f4f4f5"/><stop offset=".7" stop-color="#fdfdfd"/><stop offset=".99" stop-color="#fff"/></radialGradient><radiLine truncated
|
||||||
|
After Width: | Height: | Size: 13 KiB |
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="svg1109" width="800" height="600" x="0" y="0" version="1.1"><defs id="defs1113"><linearGradient id="linearGradient1362" x1="362.782" x2="446.348" y1="386.985" y2="386.985" gradientUnits="userSpaceOnUse"><stop id="stop1358" offset=".288" style="stop-color:#fff;stop-opacity:.18410042"/><stop id="stop1364" offset=".587" style="stop-color:#edf2f7;stop-opacity:0"/><stop id="stop1360" offset="1" style="stop-color:#d8e3ef;stop-opacity:0"/></linearGradient><linearGradient xlink:href="#linearGradient1362" id="linearGradient1149" x1="418.785" x2="417.68" y1="398.895" y2="724.862" gradientUnits="userSpaceOnUse"/></defs><style id="style833" type="text/css">.st20{fill:#c6d5e6}.st33{fill:#f8b62d}.st34{fill:#e6e8e8}</style><g id="背景_28_" transform="matrix(1.07917 0 0 1.1122 -32.429 -99.873)"><linearGradient id="SVGID_1_" x1="256.573" x2="256.573" y1="422.067" y2="325.279" gradientUnits="userSpaceOnUse"><stop id="stop863" offset="0" style="stop-color:#fff"/><stop id="stop865" offset="1" style="stop-color:#dbe3ee"/></linearGradient><path id="path868" d="M271.03 328.68v-3.41h-29.5v3.96h-6.48v92.83h43.05v-93.38zm3.34 82.74h-36.04v-2.75h36.04zm0-12.67h-36.04V396h36.04zm0-12.68h-36.04v-2.75h36.04zm0-12.34h-36.04v-2.75h36.04zm0-12.32h-36.04v-2.75h36.04zm0-12.67h-36.04v-2.75h36.04zm0-12.35h-36.04v-2.75h36.04z" style="fill:url(#SVGID_1_)"/><linearGradient id="SVGID_2_" x1="191.956" x2="191.956" y1="480.059" y2="263.57" gradientUnits="userSpaceOnUse"><stop id="stop870" offset="0" style="stop-color:#fff"/><stop id="stop872" offset="1" style="stop-color:#dbe3ee"/></linearGradient><path id="path875" d="M213.05 380.5V272.31H180.3v-8.74h-13.86v53.33h-3.73v163.16h58.51V380.5Zm-24.5 31.8h-8.26v-8.01h8.26zm0-12.52h-8.26v-8.01h8.26zm0-12.48h-8.26v-8.01h8.26zm0-12.44h-8.26v-8.01h8.26zm0-12.53h-8.26v-8.01h8.26zm0-25h-8.26v-8.01h8.26zm0-12.53h-8.26v-8.01h8.26zm0-12.47h-8.26v-8.01h8.26zm0-12.44h-8.26v-8.01h8.26zm0-12.53h-8.26v-8.01h8.26zM200.9 412.3h-8.26v-8.01h8.26zm0-12.52h-8.26v-8.01h8.26zm0-12.48h-8.26v-8.01h8.26zm0-12.44h-8.26v-8.01h8.26zm0-12.53h-8.26v-8.01h8.26zm0-25h-8.26v-8.01h8.26zm0-12.53h-8.26v-8.01h8.26zm0-12.47h-8.26v-8.01h8.26zm0-12.44h-8.26v-8.01h8.26zm0-12.53h-8.26v-8.01h8.26z" style="fill:url(#SVGID_2_)"/><linearGradient id="SVGID_3_" x1="567.738" x2="567.738" y1="437.38" y2="280.899" gradientUnits="userSpaceOnUse"><stop id="stop877" offset="0" style="stop-color:#fff"/><stop id="stop879" offset="1" style="stop-color:#dbe3ee"/></linearGradient><path id="path882" d="M535.36 437.38c.36-4.65 0-156.48 0-156.48h18.53v33.71h29.5v70.45h16.73v52.32z" style="fill:url(#SVGID_3_)"/><linearGradient id="SVGID_4_" x1="630.263" x2="630.263" y1="460.05" y2="290.309" gradientUnits="userSpaceOnUse"><stop id="stop884" offset="0" style="stop-color:#fff"/><stop id="stop886" offset="1" style="stop-color:#dbe3ee"/></linearGradient><path id="path889" d="M656.57 369.23v-4.85h-5v-42.33h-12.2v-4.7h-8.23v-6.91h-4.29V290.3h-3.09v20.28h-3.94v6.91h-12.2v11.32h-7.05v131.23h59.38v-90.82h-3.38zm-45.51 52.79h-4.02v-15.24h4.02zm0-18.65h-4.02v-15.24h4.02zm0-18.65h-4.02v-15.24h4.02zm0-18.99h-4.02V350.5h4.02zm0-18.98h-4.02v-15.24h4.02zm8.28 75.27h-4.02v-15.24h4.02zm0-18.65h-4.02v-15.24h4.02zm0-18.65h-4.02v-15.24h4.02zm0-18.99h-4.02V350.5h4.02zm0-18.98h-4.02v-15.24h4.02zm8.28 75.27h-4.02v-15.24h4.02zm0-18.65h-4.02v-15.24h4.02zm0-18.65h-4.02v-15.24h4.02zm0-18.99h-4.02V350.5h4.02zm0-18.98h-4.02v-15.24h4.02zm8.28 75.27h-4.02v-15.24h4.02zm0-18.65h-4.02v-15.24h4.02zm0-18.65h-4.02v-15.24h4.02zm0-18.99h-4.02V350.5h4.02zm0-18.98h-4.02v-15.24h4.02zm8.28 75.27h-4.02v-15.24h4.02zm0-18.65h-4.02v-15.24h4.02zm0-18.65h-4.02v-15.24h4.02zm0-18.99h-4.02V350.5h4.02zm0-18.98h-4.02v-15.24h4.02z" style="fill:url(#SVGID_4_)"/><linearGradient id="SVGID_5_" x1="121.55" x2="121.55" y1="502.128" y2="351.615" gradientUnits="userSpaceOnUse"><stop id="stop891" offset="0" style="stop-color:#fff;stop-opacity:.82008368"/><stop id="stop893" offset="1" style="stop-color:#edf1f9"/></linearGradient><path id="polygon896" d="M140.44 411.86h7.74v90.27H94.92v-89.55h10.26v-45.69l35.26-15.27z" style="fill:url(#SVGID_5_)"/><linearGradient id="SVGID_6_" x1="684.223" x2="684.223" y1="485.523" y2="362.391" gradientUnits="userSpaceOnUse"><stop id="stop898" offset="0" style="stop-color:#fff"/><stop id="stop900" offset="1" style="stop-color:#edf1f9"/></linearGradient><path id="polygon903" d="M668.75 485.52V362.39l30.94 14.97v108.16z" style="fill:url(#SVGID_6_)"/><linearGradient id="SVGID_7_" x1="127.514" x2="127.514" y1="229.821" y2="165.28" gradientUnits="userSpaceOnUse"><stop id="stop905" offset=".233" style="stop-color:#fff;stop-opacity:.12970711"/><stop id="stop907" offset="1" style="stop-color:#d3dfee"/></linearGradient><path id="path910" d="M72.903 180.545s9.34-25.48 32.3-15.48c5.3-5.38 11.86-9.29 20.73-7.53 8.87 1.77 14.59 8.41 16.53 12.83-16.53-12.83 25.04.61 25.04 23.7s-26.94 22.65-28.89 20.82c-2Line truncated
|
||||||
|
After Width: | Height: | Size: 19 KiB |
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 400 240"><defs><style>.cls-1,.cls-5,.cls-6,.cls-7{isolation:isolate;}.cls-2{fill:url(#未命名的渐变_3);}.cls-3{opacity:0.18;fill:url(#radial-gradient);}.cls-3,.cls-4{mix-blend-mode:multiply;}.cls-4{opacity:0.36;fill:url(#radial-gradient-2);}.cls-5{opacity:0.84;fill:url(#未命名的渐变_2);}.cls-6,.cls-7{opacity:0.66;}.cls-6{fill:url(#未命名的渐变_16);}.cls-7{fill:url(#未命名的渐变_16-2);}.cls-8{fill:url(#未命名的渐变_75);}.cls-9{fill:url(#未命名的渐变_40);}.cls-10{fill:url(#未命名的渐变_40-2);}.cls-11{fill:#fff;}.cls-12{fill:url(#未命名的渐变_20);}.cls-13{fill:url(#未命名的渐变_20-2);}.cls-14{fill:url(#未命名的渐变_20-3);}.cls-15{fill:url(#未命名的渐变_20-4);}.cls-16{fill:#fddcbd;}.cls-16,.cls-17,.cls-18,.cls-19,.cls-20,.cls-21,.cls-22,.cls-23,.cls-24,.cls-25,.cls-26,.cls-27,.cls-28,.cls-29{fill-rule:evenodd;}.cls-17{fill:url(#未命名的渐变_12);}.cls-18{fill:url(#未命名的渐变_15);}.cls-19{fill:url(#未命名的渐变_13);}.cls-20{fill:url(#未命名的渐变_15-2);}.cls-21{fill:url(#未命名的渐变_13-2);}.cls-22{fill:url(#未命名的渐变_12-2);}.cls-23{fill:url(#未命名的渐变_11);}.cls-24{fill:url(#未命名的渐变_10);}.cls-25{fill:url(#linear-gradient);}.cls-26{fill:url(#linear-gradient-2);}.cls-27{fill:url(#linear-gradient-3);}.cls-28{fill:url(#linear-gradient-4);}.cls-29{fill:url(#linear-gradient-5);}</style><linearGradient id="未命名的渐变_3" x1="-1197.41" y1="-3483.96" x2="-1197.41" y2="-3484.46" gradientTransform="matrix(390, 0, 0, -196, 467189, -682737.5)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#a9a9a9" stop-opacity="0.15"/><stop offset="1" stop-color="#a9a9a9" stop-opacity="0"/></linearGradient><radialGradient id="radial-gradient" cx="-681.17" cy="15808.46" r="38.96" gradientTransform="translate(2578.06 -2926.25) scale(3.5 0.2)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#808184"/><stop offset="0.07" stop-color="#9a9a9d"/><stop offset="0.17" stop-color="#b9b9bb"/><stop offset="0.28" stop-color="#d2d3d4"/><stop offset="0.4" stop-color="#e6e7e7"/><stop offset="0.53" stop-color="#f4f4f5"/><stop offset="0.7" stop-color="#fdfdfd"/><stop offset="0.99" stop-color="#fff"/></radialGradient><radialGradient id="radial-gradient-2" cx="-287.28" cy="18305.62" r="38.96" gradientTransform="translate(665.76 -3007.98) scale(1.64 0.17)" xlink:href="#radial-gradient"/><radialGradient id="未命名的渐变_2" cx="-1014.75" cy="-3410.08" r="1.3" gradientTransform="matrix(0, 21, 22.62, 0, 77440.88, 21393.55)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fff"/><stop offset="1" stop-color="#c2c2c2"/></radialGradient><radialGradient id="未命名的渐变_16" cx="-951.38" cy="-3386.6" r="0.94" gradientTransform="matrix(0, 16, 17.23, 0, 58616.96, 15410.25)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fff"/><stop offset="1" stop-color="#d8d8d8"/></radialGradient><radialGradient id="未命名的渐变_16-2" cx="-955.38" cy="-3397.8" r="0.94" xlink:href="#未命名的渐变_16"/><linearGradient id="未命名的渐变_75" x1="293.2" y1="110.57" x2="108.8" y2="110.57" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#eee"/><stop offset="0.03" stop-color="#ddd"/><stop offset="1" stop-color="#d8d8d8"/></linearGradient><linearGradient id="未命名的渐变_40" x1="201" y1="35.03" x2="201" y2="147.12" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#dedede"/><stop offset="1" stop-color="#fdfdfd"/></linearGradient><linearGradient id="未命名的渐变_40-2" x1="293.2" y1="140.22" x2="108.8" y2="140.22" xlink:href="#未命名的渐变_40"/><linearGradient id="未命名的渐变_20" x1="129.49" y1="56.6" x2="129.49" y2="34.29" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#acf"/><stop offset="1" stop-color="#487fff" stop-opacity="0.6"/></linearGradient><linearGradient id="未命名的渐变_20-2" x1="146.94" y1="47.45" x2="146.94" y2="32" xlink:href="#未命名的渐变_20"/><linearGradient id="未命名的渐变_20-3" x1="268.73" y1="56.53" x2="268.73" y2="45.66" xlink:href="#未命名的渐变_20"/><linearGradient id="未命名的渐变_20-4" x1="278.74" y1="59.39" x2="278.74" y2="50.8" xlink:href="#未命名的渐变_20"/><linearGradient id="未命名的渐变_12" x1="-1968.63" y1="-2633.67" x2="-1968.53" y2="-2633.67" gradientTransform="matrix(13.23, 120.09, 120.09, -13.23, 342455.21, 201676.37)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fda457"/><stop offset="1" stop-color="#f96252"/></linearGradient><linearGradient id="未命名的渐变_15" x1="-1869.44" y1="-2652.47" x2="-1869.29" y2="-2652.47" gradientTransform="matrix(2.06, 24.51, -190.06, 0, -500158.55, 46001.28)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#1f1e4a"/><stop offset="1" stop-color="#424677"/></linearGradient><linearGradient id="未Line truncated
|
||||||
|
After Width: | Height: | Size: 11 KiB |
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 400 240"><defs><style>.cls-1,.cls-5,.cls-6,.cls-7{isolation:isolate;}.cls-2{fill:url(#未命名的渐变_3);}.cls-3{opacity:0.18;fill:url(#radial-gradient);}.cls-3,.cls-4{mix-blend-mode:multiply;}.cls-4{opacity:0.36;fill:url(#radial-gradient-2);}.cls-5{opacity:0.84;fill:url(#未命名的渐变_2);}.cls-6,.cls-7{opacity:0.66;}.cls-6{fill:url(#未命名的渐变_16);}.cls-7{fill:url(#未命名的渐变_16-2);}.cls-8{fill:url(#未命名的渐变_40);}.cls-9{fill:url(#未命名的渐变_40-2);}.cls-10{fill:url(#未命名的渐变_20);}.cls-11{opacity:0.7;fill:url(#未命名的渐变_40-3);}.cls-12{fill:url(#未命名的渐变_10);}.cls-13{fill:#4598e3;}.cls-13,.cls-14,.cls-15,.cls-19,.cls-24{fill-rule:evenodd;}.cls-14{fill:#0075bf;}.cls-15{fill:#fff;}.cls-16{fill:url(#未命名的渐变_10-2);}.cls-17{fill:url(#未命名的渐变_10-3);}.cls-18{fill:url(#未命名的渐变_13);}.cls-19{fill:url(#未命名的渐变_11);}.cls-20{fill:url(#未命名的渐变_15);}.cls-21{fill:url(#未命名的渐变_13-2);}.cls-22{fill:url(#未命名的渐变_15-2);}.cls-23{fill:url(#未命名的渐变_12);}.cls-24{fill:#fddcbd;}</style><linearGradient id="未命名的渐变_3" x1="-674.75" y1="-3483.96" x2="-674.75" y2="-3484.46" gradientTransform="matrix(390, 0, 0, -196, 263353, -682737.5)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#a9a9a9" stop-opacity="0.15"/><stop offset="1" stop-color="#a9a9a9" stop-opacity="0"/></linearGradient><radialGradient id="radial-gradient" cx="-307.35" cy="15721.33" r="38.96" gradientTransform="translate(1270.26 -2926.25) scale(3.5 0.2)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#808184"/><stop offset="0.07" stop-color="#9a9a9d"/><stop offset="0.17" stop-color="#b9b9bb"/><stop offset="0.28" stop-color="#d2d3d4"/><stop offset="0.4" stop-color="#e6e7e7"/><stop offset="0.53" stop-color="#f4f4f5"/><stop offset="0.7" stop-color="#fdfdfd"/><stop offset="0.99" stop-color="#fff"/></radialGradient><radialGradient id="radial-gradient-2" cx="-83.34" cy="18207.36" r="38.96" gradientTransform="translate(330.24 -3007.98) scale(1.64 0.17)" xlink:href="#radial-gradient"/><radialGradient id="未命名的渐变_2" cx="-486.89" cy="-3434.48" r="1.3" gradientTransform="matrix(0, 21, 22.62, 0, 77964.88, 10389.55)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fff"/><stop offset="1" stop-color="#c2c2c2"/></radialGradient><radialGradient id="未命名的渐变_16" cx="-437.57" cy="-3416.78" r="0.94" gradientTransform="matrix(0, 16, 17.23, 0, 59140.96, 7026.25)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fff"/><stop offset="1" stop-color="#d8d8d8"/></radialGradient><radialGradient id="未命名的渐变_16-2" cx="-431.45" cy="-3428.27" r="0.94" xlink:href="#未命名的渐变_16"/><linearGradient id="未命名的渐变_40" x1="196.2" y1="27.4" x2="196.2" y2="133.56" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#dedede"/><stop offset="1" stop-color="#fdfdfd"/></linearGradient><linearGradient id="未命名的渐变_40-2" x1="235.13" y1="80.48" x2="157.28" y2="80.48" xlink:href="#未命名的渐变_40"/><linearGradient id="未命名的渐变_20" x1="180.83" y1="80.75" x2="211.57" y2="80.75" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#acf"/><stop offset="1" stop-color="#487fff" stop-opacity="0.6"/></linearGradient><linearGradient id="未命名的渐变_40-3" x1="214.2" y1="65.8" x2="186" y2="94.01" gradientTransform="translate(-10.66 124.68) rotate(-33.76)" xlink:href="#未命名的渐变_40"/><linearGradient id="未命名的渐变_10" x1="110.8" y1="102.42" x2="124.23" y2="102.42" gradientTransform="matrix(-1, 0, 0, 1, 241.73, 0)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fff7ed"/><stop offset="1" stop-color="#ffebd6"/></linearGradient><linearGradient id="未命名的渐变_10-2" x1="113.67" y1="90.06" x2="119.47" y2="90.06" xlink:href="#未命名的渐变_10"/><linearGradient id="未命名的渐变_10-3" x1="389.66" y1="88.59" x2="401.5" y2="88.59" gradientTransform="matrix(-1, 0.1, 0.1, 1, 510.57, -42.86)" xlink:href="#未命名的渐变_10"/><linearGradient id="未命名的渐变_13" x1="119.88" y1="150.8" x2="106.27" y2="150.8" gradientTransform="matrix(-1, 0, 0, 1, 241.73, 0)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#8caefb"/><stop offset="1" stop-color="#6894f9"/></linearGradient><linearGradient id="未命名的渐变_11" x1="-573.7" y1="-3648.67" x2="-573.7" y2="-3649.36" gradientTransform="matrix(16.86, 6.29, 6.64, -17.8, 34032.34, -61268.79)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#494983"/><stop offset="1" stop-color="#272557"/></linearGradient><linearGradient id="未命名的渐变_15" x1="323.23" y1="180.63" x2="333.16" y2="180.63" gradientTransform="translate(-192.36)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#1f1e4a"/><stop offset="1" stop-Line truncated
|
||||||
|
After Width: | Height: | Size: 16 KiB |
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 400 240"><defs><style>.cls-1,.cls-20{fill:#fff;}.cls-14,.cls-15,.cls-2{isolation:isolate;}.cls-3{fill:url(#未命名的渐变_3);}.cls-4{opacity:0.36;mix-blend-mode:multiply;fill:url(#radial-gradient);}.cls-5{fill:url(#未命名的渐变_75);}.cls-6{fill:url(#未命名的渐变_38);}.cls-7{fill:url(#未命名的渐变_75-2);}.cls-8{fill:url(#未命名的渐变_40);}.cls-9{fill:url(#未命名的渐变_42);}.cls-10{fill:url(#未命名的渐变_40-2);}.cls-11{fill:url(#未命名的渐变_40-3);}.cls-12{fill:url(#未命名的渐变_20);}.cls-13{fill:url(#未命名的渐变_20-2);}.cls-14{opacity:0.84;fill:url(#未命名的渐变_2);}.cls-15{opacity:0.66;fill:url(#未命名的渐变_16);}.cls-16{fill:url(#未命名的渐变_10);}.cls-17{fill:#4598e3;}.cls-17,.cls-18,.cls-19,.cls-20,.cls-24{fill-rule:evenodd;}.cls-18{fill:#0075bf;}.cls-19{fill:#fddcbd;}.cls-21{fill:url(#未命名的渐变_10-2);}.cls-22{fill:url(#未命名的渐变_10-3);}.cls-23{fill:url(#未命名的渐变_13);}.cls-24{fill:url(#未命名的渐变_11);}.cls-25{fill:url(#未命名的渐变_15);}.cls-26{fill:url(#未命名的渐变_13-2);}.cls-27{fill:url(#未命名的渐变_15-2);}.cls-28{fill:url(#未命名的渐变_12);}.cls-29{clip-path:url(#clip-path);}</style><linearGradient id="未命名的渐变_3" x1="356.59" y1="-2025.55" x2="356.59" y2="-2026.05" gradientTransform="matrix(390, 0, 0, -196, -138873, -396890.5)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#a9a9a9" stop-opacity="0.15"/><stop offset="1" stop-color="#a9a9a9" stop-opacity="0"/></linearGradient><radialGradient id="radial-gradient" cx="322.7" cy="11429.31" r="68.58" gradientTransform="translate(-331.83 -1808) scale(1.64 0.17)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#808184"/><stop offset="0.07" stop-color="#9a9a9d"/><stop offset="0.17" stop-color="#b9b9bb"/><stop offset="0.28" stop-color="#d2d3d4"/><stop offset="0.4" stop-color="#e6e7e7"/><stop offset="0.53" stop-color="#f4f4f5"/><stop offset="0.7" stop-color="#fdfdfd"/><stop offset="0.99" stop-color="#fff"/></radialGradient><linearGradient id="未命名的渐变_75" x1="155" y1="102.2" x2="251.17" y2="102.2" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#eee"/><stop offset="0.03" stop-color="#ddd"/><stop offset="1" stop-color="#d8d8d8"/></linearGradient><linearGradient id="未命名的渐变_38" x1="160.83" y1="102.2" x2="257" y2="102.2" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#f3f3f3"/><stop offset="1" stop-color="#f4f4f4"/></linearGradient><linearGradient id="未命名的渐变_75-2" x1="184.14" y1="37.36" x2="233.69" y2="37.36" xlink:href="#未命名的渐变_75"/><linearGradient id="未命名的渐变_40" x1="208.91" y1="30.07" x2="208.91" y2="34.91" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#dedede"/><stop offset="1" stop-color="#fdfdfd"/></linearGradient><linearGradient id="未命名的渐变_42" x1="199.07" y1="83.26" x2="175.85" y2="83.26" xlink:href="#未命名的渐变_40"/><linearGradient id="未命名的渐变_40-2" x1="217.58" y1="103.66" x2="175.01" y2="103.66" xlink:href="#未命名的渐变_40"/><linearGradient id="未命名的渐变_40-3" x1="217.58" y1="124.06" x2="175.01" y2="124.06" xlink:href="#未命名的渐变_40"/><linearGradient id="未命名的渐变_20" x1="995.09" y1="-201.91" x2="979.61" y2="-201.91" gradientTransform="translate(-761.16 284.44)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#acf"/><stop offset="1" stop-color="#487fff" stop-opacity="0.6"/></linearGradient><linearGradient id="未命名的渐变_20-2" x1="-504.43" y1="-253.56" x2="-519.91" y2="-253.56" gradientTransform="translate(738.36 336.09)" xlink:href="#未命名的渐变_20"/><radialGradient id="未命名的渐变_2" cx="475.56" cy="-2026.5" r="1.3" gradientTransform="matrix(0, 21, 22.62, 0, 46181.34, -9873.45)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fff"/><stop offset="1" stop-color="#c2c2c2"/></radialGradient><radialGradient id="未命名的渐变_16" cx="509.77" cy="-2033.56" r="0.94" gradientTransform="matrix(0, 16, 17.23, 0, 35171.12, -8066.75)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fff"/><stop offset="1" stop-color="#d8d8d8"/></radialGradient><linearGradient id="未命名的渐变_10" x1="271.8" y1="132.42" x2="285.23" y2="132.42" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fff7ed"/><stop offset="1" stop-color="#ffebd6"/></linearGradient><linearGradient id="未命名的渐变_10-2" x1="274.67" y1="120.06" x2="280.47" y2="120.06" xlink:href="#未命名的渐变_10"/><linearGradient id="未命名的渐变_10-3" x1="270.53" y1="113.51" x2="282.36" y2="113.51" xlink:href="#未命名的渐变_10"/><linearGradient id="未命名的渐变_13" x1="280.88" y1="180.8" x2="267.27" y2="180.8" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#8caefb"/><stop offset="1Line truncated
|
||||||
|
After Width: | Height: | Size: 17 KiB |
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 400 240"><defs><style>.cls-1,.cls-34,.cls-35{fill:none;}.cls-2{fill:#fff;}.cls-3,.cls-6,.cls-7{isolation:isolate;}.cls-4{fill:url(#未命名的渐变_3);}.cls-5{opacity:0.36;mix-blend-mode:multiply;fill:url(#radial-gradient);}.cls-6{opacity:0.84;fill:url(#未命名的渐变_2);}.cls-7{opacity:0.66;fill:url(#未命名的渐变_16);}.cls-8{fill:url(#未命名的渐变_43);}.cls-9{clip-path:url(#clip-path);}.cls-10{fill:url(#未命名的渐变_23);}.cls-11{clip-path:url(#clip-path-2);}.cls-12{fill:url(#未命名的渐变_40);}.cls-13{fill:url(#未命名的渐变_5);}.cls-14{fill:url(#未命名的渐变_23-2);}.cls-15{fill:url(#未命名的渐变_17);}.cls-16{fill:#eaeaea;}.cls-17{fill:url(#未命名的渐变_40-2);}.cls-18{fill:url(#未命名的渐变_40-3);}.cls-19{fill:url(#未命名的渐变_40-4);}.cls-20{fill:url(#未命名的渐变_40-5);}.cls-21{fill:url(#未命名的渐变_40-6);}.cls-22{fill:url(#未命名的渐变_40-7);}.cls-23{fill:#fddcbd;}.cls-24{fill:url(#未命名的渐变_13);}.cls-25{fill:url(#未命名的渐变_13-2);}.cls-26{fill:url(#未命名的渐变_12);}.cls-27{fill:url(#linear-gradient);}.cls-28{fill:url(#未命名的渐变_15);}.cls-29{fill:url(#未命名的渐变_15-2);}.cls-30{fill:url(#未命名的渐变_10);}.cls-31{fill-rule:evenodd;fill:url(#未命名的渐变_11);}.cls-32{clip-path:url(#clip-path-3);}.cls-33{fill:url(#未命名的渐变_14);}.cls-34,.cls-35{stroke-miterlimit:10;}.cls-34{stroke:url(#未命名的渐变_49);}.cls-35{stroke:url(#未命名的渐变_46);}</style><linearGradient id="未命名的渐变_3" x1="356.6" y1="-2505.54" x2="356.6" y2="-2506.04" gradientTransform="matrix(390, 0, 0, -196, -138873, -490958)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#a9a9a9" stop-opacity="0.15"/><stop offset="1" stop-color="#a9a9a9" stop-opacity="0"/></linearGradient><radialGradient id="radial-gradient" cx="321.33" cy="13876.8" r="77.12" gradientTransform="translate(-220.83 -2202.89) scale(1.31 0.17)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#808184"/><stop offset="0.07" stop-color="#9a9a9d"/><stop offset="0.17" stop-color="#b9b9bb"/><stop offset="0.28" stop-color="#d2d3d4"/><stop offset="0.4" stop-color="#e6e7e7"/><stop offset="0.53" stop-color="#f4f4f5"/><stop offset="0.7" stop-color="#fdfdfd"/><stop offset="0.99" stop-color="#fff"/></radialGradient><radialGradient id="未命名的渐变_2" cx="495.24" cy="-2506.82" r="1.63" gradientTransform="matrix(0, 21, 22.62, 0, 56981.05, -10350.95)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fff"/><stop offset="1" stop-color="#c2c2c2"/></radialGradient><radialGradient id="未命名的渐变_16" cx="540.77" cy="-2516.23" r="0.94" gradientTransform="matrix(0, 16, 17.23, 0, 43399.47, -8544.25)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fff"/><stop offset="1" stop-color="#d8d8d8"/></radialGradient><linearGradient id="未命名的渐变_43" x1="169.51" y1="184.8" x2="227.36" y2="184.8" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#efefef"/><stop offset="1" stop-color="#fdfdfd"/></linearGradient><clipPath id="clip-path"><path class="cls-1" d="M214.38,179H182.5l-11.4,6.15a2.92,2.92,0,0,0,1.59,5.5h51.49a2.92,2.92,0,0,0,1.6-5.5Z"/></clipPath><linearGradient id="未命名的渐变_23" x1="163.85" y1="196.35" x2="235.27" y2="196.35" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#dedede"/><stop offset="1" stop-color="#dedede" stop-opacity="0.4"/></linearGradient><clipPath id="clip-path-2"><rect class="cls-1" x="182.5" y="154.71" width="31.88" height="24.27"/></clipPath><linearGradient id="未命名的渐变_40" x1="167.62" y1="163.81" x2="236.52" y2="163.81" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#dedede"/><stop offset="1" stop-color="#fdfdfd"/></linearGradient><linearGradient id="未命名的渐变_5" x1="173.24" y1="186.44" x2="231.32" y2="186.44" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#eee"/><stop offset="1" stop-color="#d8d8d8"/></linearGradient><linearGradient id="未命名的渐变_23-2" x1="130.16" y1="108.58" x2="267" y2="108.58" xlink:href="#未命名的渐变_23"/><linearGradient id="未命名的渐变_17" x1="136.76" y1="77.69" x2="260.39" y2="77.69" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#d6d7d8"/><stop offset="0.03" stop-color="#ddd"/><stop offset="1" stop-color="#d8d8d8"/></linearGradient><linearGradient id="未命名的渐变_40-2" x1="178.52" y1="94.36" x2="143.61" y2="94.36" xlink:href="#未命名的渐变_40"/><linearGradient id="未命名的渐变_40-3" x1="206.36" y1="101.65" x2="142.34" y2="101.65" xlink:href="#未命名的渐变_40"/><linearGradient id="未命名的渐变_40-4" x1="206.36" y1="108.95" x2="142.34" y2="108.95" xlink:href="#未命名的渐变_40"/><linearGradient id="未命名的渐变_40-5" x1="178.52" y1="117.95" x2="143.61" y2="117.95" xlink:href="#未Line truncated
|
||||||
|
After Width: | Height: | Size: 14 KiB |
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="579" height="455"><g fill="none" fill-rule="evenodd"><path fill="none" d="M-30-89h640v640H-30z"/><g fill-rule="nonzero"><path fill="#F3F9FF" d="M251.432 154.715a24.006 24.006 0 0 1-10.305-19.712 24.008 24.008 0 0 1 10.3-19.717c15.255-10.602 22.268-21.828 16.644-35.407-5.624-13.577-18.519-16.557-36.8-13.268a24.006 24.006 0 0 1-21.224-6.65 24.008 24.008 0 0 1-6.659-21.227c3.29-18.284.312-31.18-13.267-36.805-13.58-5.625-24.806 1.39-35.408 16.644a24.005 24.005 0 0 1-39.429-.004C104.684 3.317 93.46-3.693 79.881 1.93 66.304 7.555 63.323 20.45 66.612 38.73a24.004 24.004 0 0 1-6.65 21.224 24.008 24.008 0 0 1-21.227 6.659C20.451 63.323 7.555 66.3 1.93 79.88c-5.624 13.578 1.39 24.805 16.644 35.406a24.005 24.005 0 0 1-.004 39.43c-15.252 10.6-22.264 21.826-16.64 35.403 5.624 13.578 18.522 16.558 36.805 13.267a24.002 24.002 0 0 1 21.229 6.654 24.012 24.012 0 0 1 6.648 21.23c-3.29 18.281-.309 31.176 13.268 36.8 13.579 5.624 24.805-1.389 35.407-16.645a24.005 24.005 0 0 1 39.429.004c10.6 15.252 21.826 22.264 35.403 16.64 13.577-5.624 16.557-18.52 13.268-36.8a24.009 24.009 0 0 1 6.651-21.226 24.004 24.004 0 0 1 21.226-6.659c18.284 3.29 31.181.312 36.807-13.267 5.625-13.577-1.386-24.803-16.638-35.403Z"/><ellipse cx="136.067" cy="136.601" fill="#DCEEFD" rx="70.968" ry="72.569"/><path fill="#FFF" d="M205.968 137.684c0 39.437-32.049 71.486-71.485 71.486-21.207 0-40.39-9.293-53.376-24.067 12.51 11.318 29.19 18.11 47.419 18.11 39.436 0 71.485-32.05 71.485-71.486 0-18.23-6.791-34.908-18.11-47.419 14.774 12.987 24.067 32.17 24.067 53.376Z"/><path fill="#D0E7FE" d="M188.893 88.098c-12.51-11.318-29.19-18.11-47.419-18.11-39.436 0-71.485 32.05-71.485 71.486 0 18.228 6.791 34.909 18.11 47.42-14.774-12.987-24.067-32.17-24.067-53.377 0-39.436 32.049-71.485 71.485-71.485 21.207 0 40.39 9.293 53.376 24.066Z"/></g><g fill-rule="nonzero"><path fill="#71E5CB" d="M358.462 378.825c-6-14.731-14.95-35.603 3.343-47.927 18.292-12.324 1.592-19.623.999-37.486-.594-17.863 18.078-22.454 17.52-30.924-.559-8.47-1.486-23.448.238-29.839 2.883-10.694 24.469-15.55 26.672 14.562 1.385 18.923 3.244 30.348 12.86 43.845 9.617 13.498-11.564 27.768-11.174 38.635.391 10.867 10.83 9.257 9.688 32.284-1.142 23.028-15.564 40.442-29.276 39.416-9.313-.7-25.393-9.12-30.87-22.566Z"/><path fill="#39B499" d="M404.709 300.97a.825.825 0 0 0-1.127.388c-.16.335-3.97 8.042-10.183 5.524.736-5.103 1.068-9.882.716-14.195.008-.03.027-.054.032-.086a.894.894 0 0 0-.086-.563 34.072 34.072 0 0 0-.29-2.25c-1.886-11.23-.618-25.764.138-34.446.442-5.065.642-7.546.387-8.597-.114-.473-.578-.76-1.018-.635-.449.118-.72.598-.605 1.068.195.804-.097 4.14-.432 8.002-.765 8.772-2.044 23.452-.12 34.914.063.366.104.744.153 1.119-2.682-.884-9.075-3.655-11.196-10.53-.14-.46-.612-.714-1.056-.564-.441.15-.68.645-.538 1.108 2.587 8.385 10.574 11.212 12.985 11.888.682 9.208-1.87 20.798-4.567 33.006-2.141 9.688-4.356 19.705-5.079 29.177-.317 4.149-.17 9.021.257 14.219-4.57-2.355-17.029-9.662-17.357-19.542-.015-.484-.425-.82-.867-.848-.463.018-.825.424-.808.911.39 11.758 15.412 19.702 19.203 21.522 1.237 13.057 4.13 27.885 6.272 38.863 1.524 7.805 2.84 14.546 2.575 15.866-.096.477.194.943.647 1.043.059.014.116.02.175.02a.85.85 0 0 0 .82-.699c.321-1.603-.661-6.786-2.572-16.582-2.115-10.832-4.961-25.434-6.209-38.293.09-.085.185-.17.235-.298a.89.89 0 0 0-.359-1.083c-.46-5.175-.635-10.02-.379-14.179 2.842-.19 12.422-1.52 15.019-10.807.13-.467-.124-.956-.569-1.091-.444-.134-.908.13-1.04.596-2.274 8.133-10.508 9.37-13.277 9.546.784-9.057 2.893-18.65 4.947-27.942 1.365-6.178 2.693-12.197 3.595-17.863.935.338 1.836.5 2.694.5 4.569 0 7.94-4.262 9.256-7 .206-.44.04-.97-.372-1.187Z"/><g><path fill="#55CEB3" d="M520.478 364.37c8.427-20.703 20.998-50.036-4.694-67.357-25.694-17.321-2.237-27.577-1.403-52.682.834-25.106-25.394-31.558-24.608-43.462.784-11.904 2.086-32.953-.334-41.935-4.052-15.03-34.37-21.855-37.462 20.466-1.944 26.593-4.557 42.649-18.063 61.619-13.505 18.97 16.245 39.025 15.695 54.295-.55 15.27-15.21 13.01-13.607 45.372 1.603 32.363 21.859 56.838 41.12 55.394 13.079-.98 35.663-12.812 43.356-31.71Z"/><path fill="#39B499" d="M512.297 323.893c.016-.486-.347-.895-.81-.913-.445.04-.85.365-.868.85-.483 14.503-19.195 25.066-25.133 28.059.662-7.443.902-14.486.438-20.561-1.012-13.286-4.12-27.353-7.124-40.956-3.82-17.292-7.43-33.704-6.401-46.741 3.01-.807 14.56-4.629 18.231-16.536.143-.463-.099-.96-.538-1.11-.442-.152-.915.105-1.058.565-3.162 10.248-12.997 14.122-16.457 15.19.085-.721.174-1.439.292-2.136 2.695-16.06.9-36.662-.172-48.97-.495-5.69-.886-10.178-.599-11.368.114-.472-.157-.952-.606-1.07-.443-.125-.906.164-1.018.637-.344 1.415-.046 5.076.554 11.962 1.064 12.22 2.846 32.675.19 48.504a46.89 46.89 0 0 0-.407 3.165.916.916 0 0 0-.12.656c.01.054.036.098.055.148-.509 6.133-.022 12.95 1.043 20.239-.008.003-.016.001-.023.005-9.137 3.935-14.73-7.37-14.962-7.85-.21-.436-.717-.61-1.128-.39-.415.22-.58.751-.371 1.185.055.112 4.75 9.651 12.675 9.651 1.275 0 2.64-.263 4.078-.83Line truncated
|
||||||
|
After Width: | Height: | Size: 15 KiB |
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 400 240"><defs><style>.cls-1{fill:url(#未命名的渐变_75);}.cls-2{fill:url(#未命名的渐变_75-2);}.cls-3{fill:url(#未命名的渐变_75-3);}.cls-4{fill:url(#未命名的渐变_5);}.cls-5{fill:url(#未命名的渐变_5-2);}.cls-40,.cls-41,.cls-6{isolation:isolate;}.cls-7{fill:url(#未命名的渐变_3);}.cls-8{opacity:0.36;mix-blend-mode:multiply;fill:url(#radial-gradient);}.cls-9{clip-path:url(#clip-path);}.cls-10{clip-path:url(#clip-path-2);}.cls-11{fill:url(#未命名的渐变_75-7);}.cls-12{fill:url(#未命名的渐变_75-8);}.cls-13{fill:url(#未命名的渐变_75-9);}.cls-14{fill:url(#未命名的渐变_75-10);}.cls-15{fill:url(#未命名的渐变_75-11);}.cls-16{fill:url(#未命名的渐变_75-12);}.cls-17{clip-path:url(#clip-path-3);}.cls-18{clip-path:url(#clip-path-4);}.cls-19{fill:url(#未命名的渐变_5-5);}.cls-20{clip-path:url(#clip-path-5);}.cls-21{fill:url(#未命名的渐变_5-7);}.cls-22{fill:url(#未命名的渐变_5-8);}.cls-23{fill:url(#未命名的渐变_5-9);}.cls-24{fill:url(#未命名的渐变_5-10);}.cls-25{fill:url(#未命名的渐变_5-11);}.cls-26{fill:url(#未命名的渐变_5-12);}.cls-27{fill:url(#未命名的渐变_5-13);}.cls-28{fill:url(#未命名的渐变_5-14);}.cls-29{fill:url(#未命名的渐变_43);}.cls-30{fill:#fddcbd;}.cls-31{fill:url(#未命名的渐变_10);}.cls-32{fill:url(#未命名的渐变_11);}.cls-33{fill:url(#未命名的渐变_12);}.cls-34{fill:#f8f8f8;}.cls-35{fill:url(#未命名的渐变_13);}.cls-36{fill:url(#未命名的渐变_13-2);}.cls-37{fill:url(#未命名的渐变_15);}.cls-38{fill:url(#未命名的渐变_15-2);}.cls-39{opacity:0.49;fill:url(#未命名的渐变_12-2);}.cls-40{opacity:0.84;fill:url(#未命名的渐变_2);}.cls-41{opacity:0.66;fill:url(#未命名的渐变_16);}</style><linearGradient id="未命名的渐变_75" x1="202.21" y1="162.73" x2="220.68" y2="162.73" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#eee"/><stop offset="0.03" stop-color="#ddd"/><stop offset="1" stop-color="#d8d8d8"/></linearGradient><linearGradient id="未命名的渐变_75-2" x1="237.19" y1="87.51" x2="257.87" y2="87.51" xlink:href="#未命名的渐变_75"/><linearGradient id="未命名的渐变_75-3" x1="154.7" y1="162.35" x2="176.71" y2="162.35" xlink:href="#未命名的渐变_75"/><linearGradient id="未命名的渐变_5" x1="145.9" y1="145.75" x2="169.94" y2="145.75" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#eee"/><stop offset="1" stop-color="#d8d8d8"/></linearGradient><linearGradient id="未命名的渐变_5-2" x1="137" y1="91" x2="188.72" y2="91" xlink:href="#未命名的渐变_5"/><linearGradient id="未命名的渐变_3" x1="867.28" y1="-2501.5" x2="867.28" y2="-2502" gradientTransform="matrix(390, 0, 0, -196, -338041, -490170)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#a9a9a9" stop-opacity="0.15"/><stop offset="1" stop-color="#a9a9a9" stop-opacity="0"/></linearGradient><radialGradient id="radial-gradient" cx="520.74" cy="13739.04" r="68.58" gradientTransform="translate(-659.66 -2199.59) scale(1.64 0.17)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#808184"/><stop offset="0.07" stop-color="#9a9a9d"/><stop offset="0.17" stop-color="#b9b9bb"/><stop offset="0.28" stop-color="#d2d3d4"/><stop offset="0.4" stop-color="#e6e7e7"/><stop offset="0.53" stop-color="#f4f4f5"/><stop offset="0.7" stop-color="#fdfdfd"/><stop offset="0.99" stop-color="#fff"/></radialGradient><clipPath id="clip-path"><path class="cls-1" d="M220.68,168.15l-14.16-7.71a4.3,4.3,0,0,1-.88-.65,16.82,16.82,0,0,0-3.43-2.47l14.16,7.7a17,17,0,0,1,3.44,2.48A4.26,4.26,0,0,0,220.68,168.15Z"/></clipPath><clipPath id="clip-path-2"><path class="cls-2" d="M251.36,90.26l-14.17-7.7L238,83c1.57.76,3.47.86,5.1,1.51a5.32,5.32,0,0,1,.65.3l14.16,7.71a6,6,0,0,0-.64-.3c-1.64-.66-3.53-.76-5.11-1.51Z"/></clipPath><linearGradient id="未命名的渐变_75-7" x1="237.19" y1="86.57" x2="251.98" y2="86.57" xlink:href="#未命名的渐变_75"/><linearGradient id="未命名的渐变_75-8" x1="237.81" y1="87.07" x2="253.85" y2="87.07" xlink:href="#未命名的渐变_75"/><linearGradient id="未命名的渐变_75-9" x1="239.68" y1="87.65" x2="255.92" y2="87.65" xlink:href="#未命名的渐变_75"/><linearGradient id="未命名的渐变_75-10" x1="241.75" y1="88.2" x2="257.65" y2="88.2" xlink:href="#未命名的渐变_75"/><linearGradient id="未命名的渐变_75-11" x1="243.48" y1="88.56" x2="257.87" y2="88.56" xlink:href="#未命名的渐变_75"/><linearGradient id="未命名的渐变_75-12" x1="178.2" y1="109.68" x2="229.42" y2="109.68" xlink:href="#未命名的渐变_75"/><clipPath id="clip-path-3"><path class="cls-3" d="M176.71,169.32l-14.17-7.71a40.55,40.55,0,0,1-6.46-4.34,8,8,0,0,1-1.38-1.88l14.17,7.7a8,8,0,0,0,1.37,1.88A41.15,41.15,0,0,0,176.71,169.32Z"/></clipPath><clipPath id="clip-path-4"><path class="cls-4" d="M145.9,128.41l14.17,7.7a18.39Line truncated
|
||||||
|
After Width: | Height: | Size: 19 KiB |
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 400 240"><defs><style>.cls-1,.cls-5,.cls-6{isolation:isolate;}.cls-2{fill:url(#未命名的渐变_37);}.cls-3{fill:url(#未命名的渐变_32);}.cls-4{opacity:0.36;mix-blend-mode:multiply;fill:url(#radial-gradient);}.cls-5{opacity:0.84;fill:url(#未命名的渐变_36);}.cls-6{opacity:0.66;fill:url(#未命名的渐变_35);}.cls-7{fill:url(#未命名的渐变_34);}.cls-8{fill:url(#未命名的渐变_18);}.cls-9{fill:url(#未命名的渐变_32-2);}.cls-10{fill:#fff;}.cls-11{fill:url(#未命名的渐变_31);}.cls-12{fill:url(#未命名的渐变_31-2);}.cls-13{fill:url(#未命名的渐变_30);}.cls-14{fill:url(#未命名的渐变_26);}.cls-15{fill-rule:evenodd;fill:url(#未命名的渐变_22);}.cls-16{fill:#fbdbbe;}.cls-17{fill:url(#未命名的渐变_19);}.cls-18{fill:none;stroke:#fff;stroke-miterlimit:10;}.cls-19{fill:url(#未命名的渐变_48);}.cls-20{fill:url(#未命名的渐变_18-2);}</style><linearGradient id="未命名的渐变_37" x1="861.66" y1="-2991.52" x2="861.66" y2="-2992.02" gradientTransform="matrix(390, 0, 0, -196, -335845.8, -586227.47)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#a8a8a8" stop-opacity="0.15"/><stop offset="1" stop-color="#a8a8a8" stop-opacity="0"/></linearGradient><linearGradient id="未命名的渐变_32" x1="108.61" y1="106.35" x2="298.51" y2="106.35" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ededed"/><stop offset="0.03" stop-color="#dcdcdc"/><stop offset="1" stop-color="#d7d7d7"/></linearGradient><radialGradient id="radial-gradient" cx="522.21" cy="16016.09" r="98.54" gradientTransform="translate(-839.13 -2602.83) scale(2 0.17)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#808083"/><stop offset="0.07" stop-color="#9a9a9c"/><stop offset="0.17" stop-color="#b9b9ba"/><stop offset="0.28" stop-color="#d2d2d4"/><stop offset="0.4" stop-color="#e6e6e7"/><stop offset="0.53" stop-color="#f4f4f5"/><stop offset="0.7" stop-color="#fdfdfd"/><stop offset="0.99" stop-color="#fff"/></radialGradient><radialGradient id="未命名的渐变_36" cx="1030.02" cy="-3021.58" r="1.3" gradientTransform="matrix(0, 21, 22.62, 0, 68425.11, -21468.04)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fff"/><stop offset="1" stop-color="#c1c1c1"/></radialGradient><radialGradient id="未命名的渐变_35" cx="1075.82" cy="-3011.86" r="0.94" gradientTransform="matrix(0, 16, 17.23, 0, 52239.31, -17129.56)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fff"/><stop offset="1" stop-color="#d7d7d7"/></radialGradient><linearGradient id="未命名的渐变_34" x1="114.19" y1="106.35" x2="300.78" y2="106.35" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#f2f2f2"/><stop offset="1" stop-color="#f3f3f3"/></linearGradient><linearGradient id="未命名的渐变_18" x1="200" y1="85.58" x2="286.28" y2="85.58" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#d7d7d7"/><stop offset="1" stop-color="#ededed"/></linearGradient><linearGradient id="未命名的渐变_32-2" x1="184.99" y1="56.58" x2="229.99" y2="56.58" xlink:href="#未命名的渐变_32"/><linearGradient id="未命名的渐变_31" x1="298" y1="188.71" x2="288.59" y2="188.71" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#1f1f49"/><stop offset="1" stop-color="#424776"/></linearGradient><linearGradient id="未命名的渐变_31-2" x1="303" y1="190.71" x2="293.59" y2="190.71" xlink:href="#未命名的渐变_31"/><linearGradient id="未命名的渐变_30" x1="306" y1="166.5" x2="287" y2="166.5" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#8caff7"/><stop offset="1" stop-color="#6a95f5"/></linearGradient><linearGradient id="未命名的渐变_26" x1="2762.45" y1="103.71" x2="2774.62" y2="103.71" gradientTransform="matrix(-1, 0, 0, 1, 3062.8, 0)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fff6ec"/><stop offset="1" stop-color="#fdead6"/></linearGradient><linearGradient id="未命名的渐变_22" x1="963.82" y1="-3150.31" x2="963.82" y2="-3151.06" gradientTransform="translate(17643.86 -59763.03) rotate(180) scale(18 19)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#494b80"/><stop offset="1" stop-color="#272756"/></linearGradient><linearGradient id="未命名的渐变_19" x1="2747.71" y1="129.44" x2="2778.99" y2="129.44" gradientTransform="matrix(-1, 0, 0, 1, 3062.8, 0)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#faa35e"/><stop offset="1" stop-color="#f66357"/></linearGradient><linearGradient id="未命名的渐变_48" x1="207.49" y1="57" x2="207.49" y2="26" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#b2b2b2" stop-opacity="0.8"/><stop offset="0.02" stop-color="#b7b7b7" stop-opacity="0.82"/><stop offset="0.09" stop-color="#c8c8c8" stop-opacity="0.87"/><stop offset="0.17" stop-color="#d6d6d6" stop-opacity="0.92"/><stop offset="0.26" stop-color="#e0e0e0" stop-opacity="0.96"/><stoLine truncated
|
||||||
|
After Width: | Height: | Size: 8.4 KiB |
|
After Width: | Height: | Size: 33 KiB |
|
After Width: | Height: | Size: 37 KiB |
|
After Width: | Height: | Size: 69 KiB |
@@ -0,0 +1,3 @@
|
|||||||
|
<svg viewBox="-1300 -1300 3600 3600" version="1.1" style="background: rgba(160,160,160,.1);" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="m 741.80075,684.39806 v -38.42905 h 36.39793 v 55.10168 c 0,9.23827 -8.16124,16.67263 -18.16918,16.67263 h -497.359 c -10.06752,0 -18.16918,-7.48902 -18.16918,-16.67263 V 322.62931 c 0,-9.23827 8.16124,-16.67263 18.16918,-16.67263 h 497.359 c 10.06752,0 18.16918,7.48902 18.16918,16.67263 V 556.04613 H 741.80075 V 339.30194 H 280.83968 V 684.39806 Z M 402.18598,506.30157 c -33.47894,0 -60.64337,-24.92695 -60.64337,-55.64832 0,-30.72137 27.16443,-55.64832 60.64337,-55.64832 33.47895,0 60.64337,24.92695 60.64337,55.64832 0,30.72137 -27.16442,55.64832 -60.64337,55.64832 z m 0,-33.39993 c 13.4035,0 24.24544,-9.94891 24.24544,-22.24839 0,-12.29948 -10.84194,-22.24839 -24.24544,-22.24839 -13.40349,0 -24.24543,9.94891 -24.24543,22.24839 0,12.29948 10.84194,22.24839 24.24543,22.24839 z m -74.22557,120.58958 26.09214,-23.23235 c 43.72517,41.38092 88.70134,44.49679 130.52024,11.58885 5.12312,-4.04517 6.55283,-5.19312 19.47975,-15.57935 40.56791,-32.74395 61.35822,-47.12068 88.04607,-57.61623 37.23193,-14.65005 73.62986,-12.9008 109.96822,8.25431 l -19.53931,28.20681 c -46.28674,-26.94953 -80.24226,-13.55676 -154.46783,46.30072 -13.04607,10.55022 -14.47577,11.69817 -19.7776,15.85266 -56.77125,44.60612 -123.55043,39.95965 -180.32168,-13.77542 z" fill="#757575" opacity="0.2" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.4 KiB |
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="300" height="300"></svg>
|
||||||
|
After Width: | Height: | Size: 114 B |
@@ -0,0 +1,3 @@
|
|||||||
|
<svg viewBox="-500 -500 2024 2024" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="background: rgba(160,160,160,.1)">
|
||||||
|
<path d="M898.2 827.5v-70.3h61.1V858c0 16.9-13.7 30.5-30.5 30.5H93.9c-16.9 0-30.5-13.7-30.5-30.5V165.7c0-16.9 13.7-30.5 30.5-30.5h834.9c16.9 0 30.5 13.7 30.5 30.5v427h-61.1V196.2H124.4v631.3h773.8zM328.1 501.7c-56.2 0-101.8-45.6-101.8-101.8s45.6-101.8 101.8-101.8 101.8 45.6 101.8 101.8-45.6 101.8-101.8 101.8z m0-61.1c22.5 0 40.7-18.2 40.7-40.7s-18.2-40.7-40.7-40.7-40.7 18.2-40.7 40.7 18.2 40.7 40.7 40.7zM203.5 661.2l43.8-42.5c73.4 75.7 148.9 81.4 219.1 21.2 8.6-7.4 11-9.5 32.7-28.5 68.1-59.9 103-86.2 147.8-105.4 62.5-26.8 123.6-23.6 184.6 15.1l-32.8 51.6C721 523.4 664 547.9 539.4 657.4c-21.9 19.3-24.3 21.4-33.2 29-95.3 81.6-207.4 73.1-302.7-25.2z" fill="#757575" opacity=".2"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 867 B |
@@ -0,0 +1,3 @@
|
|||||||
|
<svg viewBox="-1300 -1300 3600 3600" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="background: rgba(160,160,160,.1);">
|
||||||
|
<path d="M898.2 827.5v-70.3h61.1V858c0 16.9-13.7 30.5-30.5 30.5H93.9c-16.9 0-30.5-13.7-30.5-30.5V165.7c0-16.9 13.7-30.5 30.5-30.5h834.9c16.9 0 30.5 13.7 30.5 30.5v427h-61.1V196.2H124.4v631.3h773.8zM328.1 501.7c-56.2 0-101.8-45.6-101.8-101.8s45.6-101.8 101.8-101.8 101.8 45.6 101.8 101.8-45.6 101.8-101.8 101.8z m0-61.1c22.5 0 40.7-18.2 40.7-40.7s-18.2-40.7-40.7-40.7-40.7 18.2-40.7 40.7 18.2 40.7 40.7 40.7zM203.5 661.2l43.8-42.5c73.4 75.7 148.9 81.4 219.1 21.2 8.6-7.4 11-9.5 32.7-28.5 68.1-59.9 103-86.2 147.8-105.4 62.5-26.8 123.6-23.6 184.6 15.1l-32.8 51.6C721 523.4 664 547.9 539.4 657.4c-21.9 19.3-24.3 21.4-33.2 29-95.3 81.6-207.4 73.1-302.7-25.2z" fill="#757575" opacity=".2"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 870 B |
|
After Width: | Height: | Size: 18 KiB |
@@ -1126,6 +1126,122 @@ if (!function_exists('aksrt_render_comment_pagination')) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ============================================================
|
||||||
|
// 模板标签:文章列表分页渲染
|
||||||
|
// ============================================================
|
||||||
|
|
||||||
|
if (!function_exists('aksrt_render_pagination')) {
|
||||||
|
/**
|
||||||
|
* 渲染文章列表分页(根据后台配置选择模式)。
|
||||||
|
*
|
||||||
|
* Zibll 对齐:numbered = 数字分页按钮;load_more/infinite = AJAX 追加。
|
||||||
|
*
|
||||||
|
* @param WP_Query|null $query 可选,传入自定义查询对象;默认用主查询。
|
||||||
|
* @param array<string,mixed> $args {
|
||||||
|
* @type string $query_context search|archive|home|tag|category... 供 AJAX 路由解析。
|
||||||
|
* @type array<string,mixed> $render_config 透传给 AJAX 渲染器(aksrt_resolve_post_list_render_config)。
|
||||||
|
* }
|
||||||
|
*/
|
||||||
|
function aksrt_render_pagination(?WP_Query $query = null, array $args = []): void {
|
||||||
|
$pagination_mode = class_exists('\AKSRT\Settings\Settings')
|
||||||
|
? \AKSRT\Settings\Settings::get_post_pagination_mode()
|
||||||
|
: 'numbered';
|
||||||
|
|
||||||
|
if ($pagination_mode === 'numbered') {
|
||||||
|
global $wp_query;
|
||||||
|
$q = $query ?? $wp_query;
|
||||||
|
if (!($q instanceof WP_Query) || $q->max_num_pages <= 1) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$current_page = max(1, (int) $q->get('paged'), (int) get_query_var('paged'), (int) get_query_var('page'));
|
||||||
|
$max_pages = (int) $q->max_num_pages;
|
||||||
|
$links = paginate_links([
|
||||||
|
'total' => $max_pages,
|
||||||
|
'current' => $current_page,
|
||||||
|
'mid_size' => 2,
|
||||||
|
'prev_text' => '<span aria-hidden="true">‹</span>',
|
||||||
|
'next_text' => '<span aria-hidden="true">›</span>',
|
||||||
|
'type' => 'plain',
|
||||||
|
]);
|
||||||
|
|
||||||
|
if (empty($links)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
echo '<div class="pagenav ajax-pag aksrt-pagination content-stream__footer-nav">';
|
||||||
|
echo wp_kses_post($links);
|
||||||
|
if ($max_pages > 8) {
|
||||||
|
echo '<span class="pag-jump">';
|
||||||
|
echo '<input type="number" class="jump-input" min="1" max="' . esc_attr((string) $max_pages) . '" value="' . esc_attr((string) $current_page) . '" data-max-pages="' . esc_attr((string) $max_pages) . '" />';
|
||||||
|
echo '<button type="button" class="ajax-next order-ajax-next" data-jump-archive="1">' . esc_html__('跳转', 'aksrt') . '</button>';
|
||||||
|
echo '</span>';
|
||||||
|
}
|
||||||
|
echo '</div>';
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// load_more / infinite 模式
|
||||||
|
global $wp_query;
|
||||||
|
$q = $query ?? $wp_query;
|
||||||
|
if (!($q instanceof WP_Query)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$max_pages = (int) $q->max_num_pages;
|
||||||
|
$current_page = max(1, (int) $q->get('paged'), (int) get_query_var('paged'), (int) get_query_var('page'));
|
||||||
|
|
||||||
|
if ($current_page >= $max_pages) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$query_context = '';
|
||||||
|
if (!empty($args['query_context']) && is_string($args['query_context'])) {
|
||||||
|
$query_context = sanitize_key($args['query_context']);
|
||||||
|
} elseif (is_search()) {
|
||||||
|
$query_context = 'search';
|
||||||
|
} elseif (is_archive()) {
|
||||||
|
$query_context = 'archive';
|
||||||
|
}
|
||||||
|
|
||||||
|
$query_vars = $q->query_vars;
|
||||||
|
if (!is_array($query_vars)) {
|
||||||
|
$query_vars = [];
|
||||||
|
} else {
|
||||||
|
unset($query_vars['paged'], $query_vars['page']);
|
||||||
|
}
|
||||||
|
|
||||||
|
$render_config = !empty($args['render_config']) && is_array($args['render_config'])
|
||||||
|
? $args['render_config']
|
||||||
|
: [];
|
||||||
|
|
||||||
|
$trigger_text = __('加载更多', 'aksrt');
|
||||||
|
if (class_exists('\AKSRT\Settings\Settings')) {
|
||||||
|
$list_settings = \AKSRT\Settings\Settings::get_post_list_style_settings();
|
||||||
|
if (!empty($list_settings['ajax_trigger_text'])) {
|
||||||
|
$trigger_text = (string) $list_settings['ajax_trigger_text'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
<div class="text-center theme-pagination ajax-pag ajax-pagination aksrt-pagination-ajax content-stream__footer-nav"
|
||||||
|
data-mode="<?php echo esc_attr($pagination_mode); ?>"
|
||||||
|
data-next-page="<?php echo esc_attr((string) ($current_page + 1)); ?>"
|
||||||
|
data-max-pages="<?php echo esc_attr((string) $max_pages); ?>"
|
||||||
|
data-query-context="<?php echo esc_attr($query_context); ?>"
|
||||||
|
data-query-vars="<?php echo esc_attr(wp_json_encode($query_vars)); ?>"
|
||||||
|
data-render-config="<?php echo esc_attr(wp_json_encode($render_config)); ?>"
|
||||||
|
data-lazyload-action="ias">
|
||||||
|
<div class="next-page ajax-next aksrt-load-more-btn" lazyload-action="ias" role="button" tabindex="0">
|
||||||
|
<?php echo esc_html($trigger_text); ?>
|
||||||
|
</div>
|
||||||
|
<div class="aksrt-loading-indicator" style="display:none;" aria-hidden="true">
|
||||||
|
<i class="fas fa-spinner fa-spin"></i>
|
||||||
|
<span><?php esc_html_e('加载中…', 'aksrt'); ?></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Auto-fill missing alt attributes on images in post content.
|
* Auto-fill missing alt attributes on images in post content.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -51,6 +51,18 @@ if (!function_exists('aksrt_user_card_query_posts')) :
|
|||||||
$query_args['orderby'] = 'meta_value_num';
|
$query_args['orderby'] = 'meta_value_num';
|
||||||
$query_args['order'] = 'DESC';
|
$query_args['order'] = 'DESC';
|
||||||
break;
|
break;
|
||||||
|
case 'like':
|
||||||
|
case 'likes':
|
||||||
|
$query_args['meta_key'] = '_aksrt_like_count';
|
||||||
|
$query_args['orderby'] = 'meta_value_num';
|
||||||
|
$query_args['order'] = 'DESC';
|
||||||
|
break;
|
||||||
|
case 'favorite':
|
||||||
|
case 'favorite_count':
|
||||||
|
$query_args['meta_key'] = '_aksrt_favorite_count';
|
||||||
|
$query_args['orderby'] = 'meta_value_num';
|
||||||
|
$query_args['order'] = 'DESC';
|
||||||
|
break;
|
||||||
case 'comment_count':
|
case 'comment_count':
|
||||||
case 'comments':
|
case 'comments':
|
||||||
$query_args['orderby'] = 'comment_count';
|
$query_args['orderby'] = 'comment_count';
|
||||||
|
|||||||
@@ -0,0 +1,638 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Shared widget common-form layer — Zibll CSF_Widget::params() parity.
|
||||||
|
*
|
||||||
|
* Extracted from widgets-register.php to keep each file under the 1000-line
|
||||||
|
* hard limit. Provides:
|
||||||
|
* - common field defaults / normalization (subtitle, title_style, highlight,
|
||||||
|
* 3 title links, sidebar_affix, show_type, show_id_type, animation, layout)
|
||||||
|
* - shared admin form renderer + update processor
|
||||||
|
* - wrapper class/attr builders (affix, animation, show-type, layout bg)
|
||||||
|
* - Zibll-aligned title block renderer (simple / big styles)
|
||||||
|
* - display-by-id gate consumed by widget_display_callback
|
||||||
|
*
|
||||||
|
* @package AKSRT
|
||||||
|
*/
|
||||||
|
|
||||||
|
defined('ABSPATH') || exit;
|
||||||
|
|
||||||
|
// ============================================================
|
||||||
|
// Shared Widget Form Helper — 公共表单字段与显示规则
|
||||||
|
// ============================================================
|
||||||
|
|
||||||
|
if (!function_exists('aksrt_widget_common_defaults')) {
|
||||||
|
/**
|
||||||
|
* Default values for shared widget instance fields.
|
||||||
|
*
|
||||||
|
* Zibll CSF_Widget::params() common-field parity:
|
||||||
|
* subtitle, title_style, title_highlight, title_highlight_color,
|
||||||
|
* title_link (×3), title_link_style colors, sidebar_affix,
|
||||||
|
* show_type (all/only_pc/only_sm), show_id_type (show/hide), show_ids,
|
||||||
|
* animation_in, animation_repeat, layout_pin_pc/m, layout_bg (white/dark).
|
||||||
|
*
|
||||||
|
* @return array<string, mixed>
|
||||||
|
*/
|
||||||
|
function aksrt_widget_common_defaults(): array {
|
||||||
|
return [
|
||||||
|
'subtitle' => '',
|
||||||
|
'title_style' => '',
|
||||||
|
'title_highlight' => '',
|
||||||
|
'title_highlight_color'=> 'focus-color',
|
||||||
|
'title_link' => ['url' => '', 'text' => '', 'target' => ''],
|
||||||
|
'title_link2' => ['url' => '', 'text' => '', 'target' => ''],
|
||||||
|
'title_link3' => ['url' => '', 'text' => '', 'target' => ''],
|
||||||
|
'title_link_style' => ['color_1' => 'jb-blue', 'color_2' => 'jb-yellow', 'color_3' => 'jb-green'],
|
||||||
|
'sidebar_affix' => false,
|
||||||
|
'show_type' => 'all',
|
||||||
|
'show_id_type' => '',
|
||||||
|
'show_ids' => '',
|
||||||
|
'animation_in' => '',
|
||||||
|
'animation_repeat' => false,
|
||||||
|
'layout_pin_pc' => ['top' => '', 'bottom' => ''],
|
||||||
|
'layout_pin_m' => ['top' => '', 'bottom' => ''],
|
||||||
|
'layout_bg' => ['img_white' => [], 'img_dark' => []],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!function_exists('aksrt_widget_normalize_link')) {
|
||||||
|
/**
|
||||||
|
* Normalize a title_linkN array {url,text,target}.
|
||||||
|
*
|
||||||
|
* @param mixed $raw
|
||||||
|
* @return array{url:string,text:string,target:string}
|
||||||
|
*/
|
||||||
|
function aksrt_widget_normalize_link($raw): array {
|
||||||
|
$raw = is_array($raw) ? $raw : [];
|
||||||
|
return [
|
||||||
|
'url' => esc_url_raw(trim((string) ($raw['url'] ?? ''))),
|
||||||
|
'text' => sanitize_text_field((string) ($raw['text'] ?? '')),
|
||||||
|
'target' => ($raw['target'] ?? '') === '_blank' ? '_blank' : '',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!function_exists('aksrt_widget_normalize_common')) {
|
||||||
|
/**
|
||||||
|
* Normalize common widget instance fields, filling defaults for legacy instances.
|
||||||
|
*
|
||||||
|
* Accepts both the new structured shape (title_link as array) and legacy
|
||||||
|
* flat shapes (title_link as URL string, in_affix bool) emitted by older
|
||||||
|
* widget versions, normalizing them onto the canonical shared schema.
|
||||||
|
*
|
||||||
|
* @param array<string, mixed> $instance
|
||||||
|
* @return array<string, mixed>
|
||||||
|
*/
|
||||||
|
function aksrt_widget_normalize_common(array $instance): array {
|
||||||
|
$defaults = aksrt_widget_common_defaults();
|
||||||
|
$result = array_merge($defaults, $instance);
|
||||||
|
|
||||||
|
$result['subtitle'] = sanitize_text_field($result['subtitle'] ?? '');
|
||||||
|
|
||||||
|
$result['title_style'] = in_array($result['title_style'] ?? '', ['', 'big'], true) ? $result['title_style'] : '';
|
||||||
|
$result['title_highlight'] = sanitize_text_field($result['title_highlight'] ?? '');
|
||||||
|
$result['title_highlight_color'] = sanitize_html_class((string) ($result['title_highlight_color'] ?? 'focus-color'));
|
||||||
|
if ($result['title_highlight_color'] === '') {
|
||||||
|
$result['title_highlight_color'] = 'focus-color';
|
||||||
|
}
|
||||||
|
|
||||||
|
// Legacy flat title_link (URL string) → structured first link.
|
||||||
|
if (is_string($result['title_link'] ?? null)) {
|
||||||
|
$result['title_link'] = ['url' => esc_url_raw(trim($result['title_link'])), 'text' => '', 'target' => ''];
|
||||||
|
}
|
||||||
|
$result['title_link'] = aksrt_widget_normalize_link($result['title_link'] ?? []);
|
||||||
|
$result['title_link2'] = aksrt_widget_normalize_link($result['title_link2'] ?? []);
|
||||||
|
$result['title_link3'] = aksrt_widget_normalize_link($result['title_link3'] ?? []);
|
||||||
|
|
||||||
|
$tl_style = is_array($result['title_link_style'] ?? null) ? $result['title_link_style'] : [];
|
||||||
|
$result['title_link_style'] = [
|
||||||
|
'color_1' => sanitize_html_class((string) ($tl_style['color_1'] ?? 'jb-blue')) ?: 'jb-blue',
|
||||||
|
'color_2' => sanitize_html_class((string) ($tl_style['color_2'] ?? 'jb-yellow')) ?: 'jb-yellow',
|
||||||
|
'color_3' => sanitize_html_class((string) ($tl_style['color_3'] ?? 'jb-green')) ?: 'jb-green',
|
||||||
|
];
|
||||||
|
|
||||||
|
// show_type: accept both AKSRT legacy (pc/mobile) and Zibll (only_pc/only_sm) tokens.
|
||||||
|
$show_type = (string) ($result['show_type'] ?? 'all');
|
||||||
|
if ($show_type === 'only_pc' || $show_type === 'pc') {
|
||||||
|
$show_type = 'only_pc';
|
||||||
|
} elseif ($show_type === 'only_sm' || $show_type === 'mobile') {
|
||||||
|
$show_type = 'only_sm';
|
||||||
|
} else {
|
||||||
|
$show_type = 'all';
|
||||||
|
}
|
||||||
|
$result['show_type'] = $show_type;
|
||||||
|
|
||||||
|
// show_id_type: Zibll (show/hide) ↔ AKSRT legacy (include/exclude).
|
||||||
|
$id_type = (string) ($result['show_id_type'] ?? '');
|
||||||
|
if ($id_type === 'include') {
|
||||||
|
$id_type = 'show';
|
||||||
|
} elseif ($id_type === 'exclude') {
|
||||||
|
$id_type = 'hide';
|
||||||
|
} elseif (!in_array($id_type, ['', 'show', 'hide'], true)) {
|
||||||
|
$id_type = '';
|
||||||
|
}
|
||||||
|
$result['show_id_type'] = $id_type;
|
||||||
|
$result['show_ids'] = sanitize_text_field($result['show_ids'] ?? '');
|
||||||
|
|
||||||
|
$result['sidebar_affix'] = !empty($result['sidebar_affix']) || !empty($result['in_affix'] ?? false);
|
||||||
|
|
||||||
|
$result['animation_in'] = sanitize_key($result['animation_in'] ?? '');
|
||||||
|
$result['animation_repeat'] = !empty($result['animation_repeat']);
|
||||||
|
|
||||||
|
foreach (['layout_pin_pc', 'layout_pin_m'] as $pin_key) {
|
||||||
|
$pin = is_array($result[$pin_key] ?? null) ? $result[$pin_key] : [];
|
||||||
|
$result[$pin_key] = [
|
||||||
|
'top' => preg_match('/^-?\d+$/', (string) ($pin['top'] ?? '')) ? (string) (int) $pin['top'] : '',
|
||||||
|
'bottom' => preg_match('/^-?\d+$/', (string) ($pin['bottom'] ?? '')) ? (string) (int) $pin['bottom'] : '',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
$bg = is_array($result['layout_bg'] ?? null) ? $result['layout_bg'] : [];
|
||||||
|
$result['layout_bg'] = [
|
||||||
|
'img_white' => aksrt_widget_normalize_bg($bg['img_white'] ?? []),
|
||||||
|
'img_dark' => aksrt_widget_normalize_bg($bg['img_dark'] ?? []),
|
||||||
|
];
|
||||||
|
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!function_exists('aksrt_widget_normalize_bg')) {
|
||||||
|
/**
|
||||||
|
* Normalize a layout_bg sub-block (background CSS props).
|
||||||
|
*
|
||||||
|
* @param mixed $raw
|
||||||
|
* @return array<string,string>
|
||||||
|
*/
|
||||||
|
function aksrt_widget_normalize_bg($raw): array {
|
||||||
|
$raw = is_array($raw) ? $raw : [];
|
||||||
|
$out = [];
|
||||||
|
foreach (['background-color', 'background-image', 'background-position', 'background-repeat', 'background-attachment', 'background-size', 'background-origin'] as $k) {
|
||||||
|
$v = trim((string) ($raw[$k] ?? ''));
|
||||||
|
if ($k === 'background-image' && $v !== '') {
|
||||||
|
$v = esc_url_raw($v);
|
||||||
|
} elseif ($k === 'background-color' && $v !== '') {
|
||||||
|
// Allow hex / rgb / rgba / named; strip tags defensively.
|
||||||
|
$v = sanitize_text_field($v);
|
||||||
|
} else {
|
||||||
|
$v = sanitize_text_field($v);
|
||||||
|
}
|
||||||
|
if ($v !== '') {
|
||||||
|
$out[$k] = $v;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $out;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!function_exists('aksrt_widget_animation_options')) {
|
||||||
|
/**
|
||||||
|
* Zibll-aligned module entrance animation options.
|
||||||
|
*
|
||||||
|
* @return array<string,string>
|
||||||
|
*/
|
||||||
|
function aksrt_widget_animation_options(): array {
|
||||||
|
return [
|
||||||
|
'' => __('无动画', 'aksrt'),
|
||||||
|
'fade' => __('淡入', 'aksrt'),
|
||||||
|
'slideup' => __('从下往上滑出', 'aksrt'),
|
||||||
|
'slidedown' => __('从上往下滑出', 'aksrt'),
|
||||||
|
'slideright' => __('从左往右滑出', 'aksrt'),
|
||||||
|
'slideleft' => __('从右往左滑出', 'aksrt'),
|
||||||
|
'zoomin' => __('由小变大', 'aksrt'),
|
||||||
|
'zoomout' => __('由大变小', 'aksrt'),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!function_exists('aksrt_widget_highlight_color_options')) {
|
||||||
|
/**
|
||||||
|
* Highlight color palette (Zibll zib_palette parity, theme classes).
|
||||||
|
*
|
||||||
|
* @return array<string,string>
|
||||||
|
*/
|
||||||
|
function aksrt_widget_highlight_color_options(): array {
|
||||||
|
return [
|
||||||
|
'focus-color' => __('主题色', 'aksrt'),
|
||||||
|
'jb-blue' => __('渐变蓝', 'aksrt'),
|
||||||
|
'jb-green' => __('渐变绿', 'aksrt'),
|
||||||
|
'jb-yellow' => __('渐变黄', 'aksrt'),
|
||||||
|
'jb-orange' => __('渐变橙', 'aksrt'),
|
||||||
|
'jb-red' => __('渐变红', 'aksrt'),
|
||||||
|
'jb-purple' => __('渐变紫', 'aksrt'),
|
||||||
|
'jb-pink' => __('渐变粉', 'aksrt'),
|
||||||
|
'jb-cyan' => __('渐变青', 'aksrt'),
|
||||||
|
'c-blue' => __('蓝色', 'aksrt'),
|
||||||
|
'c-green' => __('绿色', 'aksrt'),
|
||||||
|
'c-red' => __('红色', 'aksrt'),
|
||||||
|
'c-yellow' => __('黄色', 'aksrt'),
|
||||||
|
'c-purple' => __('紫色', 'aksrt'),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!function_exists('aksrt_widget_render_link_field')) {
|
||||||
|
/**
|
||||||
|
* Render a single title-link sub-field (url/text/target) for the admin form.
|
||||||
|
*
|
||||||
|
* @param string $base Field base name, e.g. 'title_link'.
|
||||||
|
* @param array $link Normalized link {url,text,target}.
|
||||||
|
* @param string $label Field label.
|
||||||
|
*/
|
||||||
|
function aksrt_widget_render_link_field(string $base, array $link, string $label): void {
|
||||||
|
?>
|
||||||
|
<p>
|
||||||
|
<label><?php echo esc_html($label); ?>
|
||||||
|
<input class="widefat" type="text" name="<?php echo esc_attr($base); ?>[text]" value="<?php echo esc_attr($link['text']); ?>" placeholder="<?php esc_attr_e('按钮文字', 'aksrt'); ?>">
|
||||||
|
</label>
|
||||||
|
<input class="widefat" type="url" name="<?php echo esc_attr($base); ?>[url]" value="<?php echo esc_attr($link['url']); ?>" placeholder="<?php esc_attr_e('链接地址', 'aksrt'); ?>">
|
||||||
|
<label><input type="checkbox" name="<?php echo esc_attr($base); ?>[target]" value="_blank" <?php checked($link['target'] === '_blank'); ?>> <?php esc_html_e('新窗口打开', 'aksrt'); ?></label>
|
||||||
|
</p>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!function_exists('aksrt_widget_render_common_form')) {
|
||||||
|
/**
|
||||||
|
* Render shared widget admin form fields.
|
||||||
|
*
|
||||||
|
* Call this from your widget's form() method. Renders the full Zibll
|
||||||
|
* common-field set: title block (subtitle / style / highlight / 3 links),
|
||||||
|
* sidebar affix, display rules, entrance animation, layout padding + bg.
|
||||||
|
*
|
||||||
|
* @param array<string, mixed> $instance Current widget instance.
|
||||||
|
*/
|
||||||
|
function aksrt_widget_render_common_form(array $instance): void {
|
||||||
|
$instance = aksrt_widget_normalize_common($instance);
|
||||||
|
$pin_pc = $instance['layout_pin_pc'];
|
||||||
|
$pin_m = $instance['layout_pin_m'];
|
||||||
|
$bg_w = $instance['layout_bg']['img_white'];
|
||||||
|
$bg_d = $instance['layout_bg']['img_dark'];
|
||||||
|
?>
|
||||||
|
<hr style="margin:16px 0 12px;border-color:#e0e0e0;">
|
||||||
|
<p style="font-size:12px;color:#666;margin-bottom:8px;font-weight:600;"><?php esc_html_e('标题与链接', 'aksrt'); ?></p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<label><?php esc_html_e('副标题', 'aksrt'); ?>
|
||||||
|
<input class="widefat" type="text" name="subtitle" value="<?php echo esc_attr($instance['subtitle']); ?>">
|
||||||
|
</label>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<label><?php esc_html_e('标题样式', 'aksrt'); ?></label>
|
||||||
|
<label><input type="radio" name="title_style" value="" <?php checked($instance['title_style'], ''); ?>> <?php esc_html_e('简约', 'aksrt'); ?></label>
|
||||||
|
<label><input type="radio" name="title_style" value="big" <?php checked($instance['title_style'], 'big'); ?>> <?php esc_html_e('居中大标题', 'aksrt'); ?></label>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<label><?php esc_html_e('标题选字高亮(标题中要被高亮的部分)', 'aksrt'); ?>
|
||||||
|
<input class="widefat" type="text" name="title_highlight" value="<?php echo esc_attr($instance['title_highlight']); ?>">
|
||||||
|
</label>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<label><?php esc_html_e('高亮颜色', 'aksrt'); ?>
|
||||||
|
<select class="widefat" name="title_highlight_color">
|
||||||
|
<?php foreach (aksrt_widget_highlight_color_options() as $val => $lbl) : ?>
|
||||||
|
<option value="<?php echo esc_attr($val); ?>" <?php selected($instance['title_highlight_color'], $val); ?>><?php echo esc_html($lbl); ?></option>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</select>
|
||||||
|
</label>
|
||||||
|
</p>
|
||||||
|
<?php aksrt_widget_render_link_field('title_link', $instance['title_link'], __('标题链接', 'aksrt')); ?>
|
||||||
|
<?php if ($instance['title_style'] !== 'big') : ?>
|
||||||
|
<?php aksrt_widget_render_link_field('title_link2', $instance['title_link2'], __('标题链接 2', 'aksrt')); ?>
|
||||||
|
<?php aksrt_widget_render_link_field('title_link3', $instance['title_link3'], __('标题链接 3', 'aksrt')); ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
<?php if ($instance['title_style'] === 'big') : ?>
|
||||||
|
<p>
|
||||||
|
<label><?php esc_html_e('链接样式(颜色1/2/3)', 'aksrt'); ?></label>
|
||||||
|
<select name="title_link_style[color_1]">
|
||||||
|
<?php foreach (aksrt_widget_highlight_color_options() as $val => $lbl) : ?>
|
||||||
|
<option value="<?php echo esc_attr($val); ?>" <?php selected($instance['title_link_style']['color_1'], $val); ?>><?php echo esc_html($lbl); ?></option>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</select>
|
||||||
|
<select name="title_link_style[color_2]">
|
||||||
|
<?php foreach (aksrt_widget_highlight_color_options() as $val => $lbl) : ?>
|
||||||
|
<option value="<?php echo esc_attr($val); ?>" <?php selected($instance['title_link_style']['color_2'], $val); ?>><?php echo esc_html($lbl); ?></option>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</select>
|
||||||
|
<select name="title_link_style[color_3]">
|
||||||
|
<?php foreach (aksrt_widget_highlight_color_options() as $val => $lbl) : ?>
|
||||||
|
<option value="<?php echo esc_attr($val); ?>" <?php selected($instance['title_link_style']['color_3'], $val); ?>><?php echo esc_html($lbl); ?></option>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</select>
|
||||||
|
</p>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<p style="font-size:12px;color:#666;margin:10px 0 8px;font-weight:600;"><?php esc_html_e('显示规则', 'aksrt'); ?></p>
|
||||||
|
<p>
|
||||||
|
<label><?php esc_html_e('显示设备', 'aksrt'); ?></label>
|
||||||
|
<label><input type="radio" name="show_type" value="all" <?php checked($instance['show_type'], 'all'); ?>> <?php esc_html_e('全部', 'aksrt'); ?></label>
|
||||||
|
<label><input type="radio" name="show_type" value="only_pc" <?php checked($instance['show_type'], 'only_pc'); ?>> <?php esc_html_e('仅 PC', 'aksrt'); ?></label>
|
||||||
|
<label><input type="radio" name="show_type" value="only_sm" <?php checked($instance['show_type'], 'only_sm'); ?>> <?php esc_html_e('仅移动端', 'aksrt'); ?></label>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<label><?php esc_html_e('按 ID 显示或隐藏', 'aksrt'); ?></label>
|
||||||
|
<label><input type="radio" name="show_id_type" value="" <?php checked($instance['show_id_type'], ''); ?>> <?php esc_html_e('不限制', 'aksrt'); ?></label>
|
||||||
|
<label><input type="radio" name="show_id_type" value="show" <?php checked($instance['show_id_type'], 'show'); ?>> <?php esc_html_e('指定 ID 显示', 'aksrt'); ?></label>
|
||||||
|
<label><input type="radio" name="show_id_type" value="hide" <?php checked($instance['show_id_type'], 'hide'); ?>> <?php esc_html_e('指定 ID 隐藏', 'aksrt'); ?></label>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<label><?php esc_html_e('文章/页面 ID(逗号分隔)', 'aksrt'); ?>
|
||||||
|
<input class="widefat" type="text" name="show_ids" value="<?php echo esc_attr($instance['show_ids']); ?>" placeholder="1,2,3">
|
||||||
|
</label>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<label><input type="checkbox" name="sidebar_affix" value="1" <?php checked($instance['sidebar_affix']); ?>> <?php esc_html_e('侧栏吸顶(仅侧栏有效)', 'aksrt'); ?></label>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<label><?php esc_html_e('入场动画', 'aksrt'); ?>
|
||||||
|
<select class="widefat" name="animation_in">
|
||||||
|
<?php foreach (aksrt_widget_animation_options() as $val => $lbl) : ?>
|
||||||
|
<option value="<?php echo esc_attr($val); ?>" <?php selected($instance['animation_in'], $val); ?>><?php echo esc_html($lbl); ?></option>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</select>
|
||||||
|
</label>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<label><input type="checkbox" name="animation_repeat" value="1" <?php checked($instance['animation_repeat']); ?>> <?php esc_html_e('动画重复播放', 'aksrt'); ?></label>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p style="font-size:12px;color:#666;margin:10px 0 8px;font-weight:600;"><?php esc_html_e('布局:间距与背景', 'aksrt'); ?></p>
|
||||||
|
<p>
|
||||||
|
<label><?php esc_html_e('PC 端额外上/下间距 (px)', 'aksrt'); ?>
|
||||||
|
<input class="tiny-text" type="number" name="layout_pin_pc[top]" value="<?php echo esc_attr($pin_pc['top']); ?>" placeholder="0">
|
||||||
|
<input class="tiny-text" type="number" name="layout_pin_pc[bottom]" value="<?php echo esc_attr($pin_pc['bottom']); ?>" placeholder="0">
|
||||||
|
</label>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<label><?php esc_html_e('移动端额外上/下间距 (px)', 'aksrt'); ?>
|
||||||
|
<input class="tiny-text" type="number" name="layout_pin_m[top]" value="<?php echo esc_attr($pin_m['top']); ?>" placeholder="0">
|
||||||
|
<input class="tiny-text" type="number" name="layout_pin_m[bottom]" value="<?php echo esc_attr($pin_m['bottom']); ?>" placeholder="0">
|
||||||
|
</label>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<label><?php esc_html_e('日间背景色', 'aksrt'); ?>
|
||||||
|
<input class="widefat" type="text" name="layout_bg[img_white][background-color]" value="<?php echo esc_attr($bg_w['background-color'] ?? ''); ?>">
|
||||||
|
</label>
|
||||||
|
<label><?php esc_html_e('日间背景图', 'aksrt'); ?>
|
||||||
|
<input class="widefat" type="url" name="layout_bg[img_white][background-image]" value="<?php echo esc_attr($bg_w['background-image'] ?? ''); ?>">
|
||||||
|
</label>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<label><?php esc_html_e('夜间背景色', 'aksrt'); ?>
|
||||||
|
<input class="widefat" type="text" name="layout_bg[img_dark][background-color]" value="<?php echo esc_attr($bg_d['background-color'] ?? ''); ?>">
|
||||||
|
</label>
|
||||||
|
<label><?php esc_html_e('夜间背景图', 'aksrt'); ?>
|
||||||
|
<input class="widefat" type="url" name="layout_bg[img_dark][background-image]" value="<?php echo esc_attr($bg_d['background-image'] ?? ''); ?>">
|
||||||
|
</label>
|
||||||
|
</p>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!function_exists('aksrt_widget_update_common')) {
|
||||||
|
/**
|
||||||
|
* Process shared widget form fields in update().
|
||||||
|
*
|
||||||
|
* @param array<string, mixed> $new_instance
|
||||||
|
* @param array<string, mixed> $old_instance
|
||||||
|
* @return array<string, mixed>
|
||||||
|
*/
|
||||||
|
function aksrt_widget_update_common(array $new_instance, array $old_instance): array {
|
||||||
|
$merged = array_merge($old_instance, $new_instance);
|
||||||
|
return aksrt_widget_normalize_common($merged);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!function_exists('aksrt_widget_render_common_before')) {
|
||||||
|
/**
|
||||||
|
* Build common wrapper classes/attrs for a widget instance.
|
||||||
|
*
|
||||||
|
* Zibll CSF_Widget::wrap_attributes() parity: show-type class, sidebar
|
||||||
|
* affix data-affix, entrance animation class, layout padding/bg CSS vars.
|
||||||
|
* Call this at the start of widget() before rendering content.
|
||||||
|
*
|
||||||
|
* @param array $args Sidebar args.
|
||||||
|
* @param array $instance Widget instance.
|
||||||
|
* @return array<int,string> CSS class names (Zibll show_class style).
|
||||||
|
*/
|
||||||
|
function aksrt_widget_get_common_wrapper_classes(array $args, array $instance): array {
|
||||||
|
$instance = aksrt_widget_normalize_common($instance);
|
||||||
|
$classes = [];
|
||||||
|
|
||||||
|
// Show type: PC or mobile (Zibll hidden-xs / visible-xs-block).
|
||||||
|
if ($instance['show_type'] === 'only_pc') {
|
||||||
|
$classes[] = 'hidden-xs';
|
||||||
|
} elseif ($instance['show_type'] === 'only_sm') {
|
||||||
|
$classes[] = 'visible-xs-block';
|
||||||
|
}
|
||||||
|
|
||||||
|
// Sidebar affix
|
||||||
|
if ($instance['sidebar_affix']) {
|
||||||
|
$classes[] = 'is-affix';
|
||||||
|
}
|
||||||
|
|
||||||
|
// Animation (Zibll obs-animate ani-*).
|
||||||
|
if ($instance['animation_in'] !== '') {
|
||||||
|
$classes[] = 'obs-animate';
|
||||||
|
$classes[] = 'ani-' . $instance['animation_in'];
|
||||||
|
if ($instance['animation_repeat']) {
|
||||||
|
$classes[] = 'obs-animate-repeat';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $classes;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!function_exists('aksrt_widget_common_wrapper_attr')) {
|
||||||
|
/**
|
||||||
|
* Build the full wrapper attribute string (class + style + data-affix) for
|
||||||
|
* the Zibll .zib-widget-wrap parity layer.
|
||||||
|
*
|
||||||
|
* Combine with a widget-specific class via a leading space, or use as-is.
|
||||||
|
*
|
||||||
|
* @param array<string,mixed> $instance Widget instance.
|
||||||
|
* @param string $extra_class Additional class (widget-specific).
|
||||||
|
* @return string Escaped attribute string beginning with a leading space, e.g. ' class="…" style="…" data-affix="true"'.
|
||||||
|
*/
|
||||||
|
function aksrt_widget_common_wrapper_attr(array $instance, string $extra_class = ''): string {
|
||||||
|
$instance = aksrt_widget_normalize_common($instance);
|
||||||
|
$classes = ['zib-widget-wrap'];
|
||||||
|
foreach (aksrt_widget_get_common_wrapper_classes([], $instance) as $c) {
|
||||||
|
$classes[] = $c;
|
||||||
|
}
|
||||||
|
$extra_class = trim($extra_class);
|
||||||
|
if ($extra_class !== '') {
|
||||||
|
$classes[] = $extra_class;
|
||||||
|
}
|
||||||
|
|
||||||
|
$styles = [];
|
||||||
|
if ($instance['layout_pin_pc']['top'] !== '') {
|
||||||
|
$styles[] = '--pt-pc:' . (int) $instance['layout_pin_pc']['top'] . 'px;';
|
||||||
|
}
|
||||||
|
if ($instance['layout_pin_pc']['bottom'] !== '') {
|
||||||
|
$styles[] = '--pb-pc:' . (int) $instance['layout_pin_pc']['bottom'] . 'px;';
|
||||||
|
}
|
||||||
|
if ($instance['layout_pin_m']['top'] !== '') {
|
||||||
|
$styles[] = '--pt-m:' . (int) $instance['layout_pin_m']['top'] . 'px;';
|
||||||
|
}
|
||||||
|
if ($instance['layout_pin_m']['bottom'] !== '') {
|
||||||
|
$styles[] = '--pb-m:' . (int) $instance['layout_pin_m']['bottom'] . 'px;';
|
||||||
|
}
|
||||||
|
foreach (['white' => 'img_white', 'dark' => 'img_dark'] as $mode => $bg_key) {
|
||||||
|
$bg = $instance['layout_bg'][$bg_key] ?? [];
|
||||||
|
if (!empty($bg['background-color'])) {
|
||||||
|
$styles[] = '--bg-color-' . $mode . ':' . $bg['background-color'] . ';';
|
||||||
|
}
|
||||||
|
if (!empty($bg['background-image'])) {
|
||||||
|
$styles[] = '--bg-img-' . $mode . ':url("' . $bg['background-image'] . '");';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$attr = ' class="' . esc_attr(implode(' ', $classes)) . '"';
|
||||||
|
if ($styles) {
|
||||||
|
$attr .= ' style="' . esc_attr(implode('', $styles)) . '"';
|
||||||
|
}
|
||||||
|
if ($instance['sidebar_affix']) {
|
||||||
|
$attr .= ' data-affix="true"';
|
||||||
|
}
|
||||||
|
return $attr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!function_exists('aksrt_widget_affix_attrs')) {
|
||||||
|
/**
|
||||||
|
* Compact affix class+attribute helper for widgets that apply affix onto an
|
||||||
|
* inner wrapper (the two-family pattern from the legacy in_affix widgets).
|
||||||
|
*
|
||||||
|
* @param array<string,mixed> $instance Widget instance.
|
||||||
|
* @return array{class:string,attr:string} class includes leading space when active; attr includes leading space.
|
||||||
|
*/
|
||||||
|
function aksrt_widget_affix_attrs(array $instance): array {
|
||||||
|
$instance = aksrt_widget_normalize_common($instance);
|
||||||
|
if (empty($instance['sidebar_affix'])) {
|
||||||
|
return ['class' => '', 'attr' => ''];
|
||||||
|
}
|
||||||
|
return ['class' => ' is-affix', 'attr' => ' data-affix="true"'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!function_exists('aksrt_widget_render_title')) {
|
||||||
|
/**
|
||||||
|
* Render the Zibll-aligned widget title block (CSF_Widget::show_title parity).
|
||||||
|
*
|
||||||
|
* Two styles:
|
||||||
|
* - '' (简约): .box-body notop > .title-theme with optional subtitle + more link
|
||||||
|
* - 'big' (居中大标题): .big-title-wrap with up to 3 button links
|
||||||
|
*
|
||||||
|
* Highlight wraps the matched substring in a colored span.
|
||||||
|
*
|
||||||
|
* @param array<string,mixed> $instance Widget instance.
|
||||||
|
* @return string Title HTML (empty when no title).
|
||||||
|
*/
|
||||||
|
function aksrt_widget_render_title(array $instance): string {
|
||||||
|
$instance = aksrt_widget_normalize_common($instance);
|
||||||
|
$title = trim((string) ($instance['title'] ?? ''));
|
||||||
|
if ($title === '') {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
|
$highlight = trim((string) $instance['title_highlight']);
|
||||||
|
$subtitle = (string) $instance['subtitle'];
|
||||||
|
$anim = function_exists('aksrt_widget_animation_class')
|
||||||
|
? aksrt_widget_animation_class($instance)
|
||||||
|
: '';
|
||||||
|
|
||||||
|
$title = esc_html($title);
|
||||||
|
|
||||||
|
if ($highlight !== '' && $highlight !== $title) {
|
||||||
|
$color = $instance['title_highlight_color'];
|
||||||
|
$hl_esc = esc_html($highlight);
|
||||||
|
$title = str_replace($hl_esc, '<span class="title-highlight ' . esc_attr($color) . '">' . $hl_esc . '</span>', $title);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($instance['title_style'] === 'big') {
|
||||||
|
$style = $instance['title_link_style'];
|
||||||
|
$links = '';
|
||||||
|
foreach (['title_link' => 'color_1', 'title_link2' => 'color_2', 'title_link3' => 'color_3'] as $key => $color_key) {
|
||||||
|
$link = $instance[$key];
|
||||||
|
if ($link['url'] !== '' && $link['text'] !== '') {
|
||||||
|
$blank = $link['target'] === '_blank' ? ' target="_blank"' : '';
|
||||||
|
$links .= '<a' . $blank . ' href="' . esc_url($link['url']) . '" class="but ' . esc_attr($style[$color_key]) . '">' . esc_html($link['text']) . '</a>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$links = $links !== '' ? '<div class="flex jc big-title-buts' . $anim . '">' . $links . '</div>' : '';
|
||||||
|
$sub = $subtitle !== '' ? '<p class="big-title-sub muted-2-color' . $anim . '">' . esc_html($subtitle) . '</p>' : '';
|
||||||
|
return '<div class="big-title-wrap"><h2 class="big-title' . $anim . '">' . $title . '</h2>' . $sub . $links . '</div>';
|
||||||
|
}
|
||||||
|
|
||||||
|
// Simple style.
|
||||||
|
$link = $instance['title_link'];
|
||||||
|
$sub = $subtitle !== '' ? '<small class="ml10">' . esc_html($subtitle) . '</small>' : '';
|
||||||
|
$more = '';
|
||||||
|
if ($link['url'] !== '') {
|
||||||
|
$text = $link['text'] !== '' ? $link['text'] : '<i class="fa fa-angle-right fa-fw"></i>' . __('更多', 'aksrt');
|
||||||
|
$blank = $link['target'] === '_blank' ? ' target="_blank"' : '';
|
||||||
|
$more = '<div class="pull-right em09 mt3"><a' . $blank . ' href="' . esc_url($link['url']) . '" class="muted-2-color">' . wp_kses_post($text) . '</a></div>';
|
||||||
|
}
|
||||||
|
return '<div class="box-body notop' . $anim . '"><div class="title-theme">' . $title . $sub . $more . '</div></div>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!function_exists('aksrt_widget_animation_class')) {
|
||||||
|
/**
|
||||||
|
* Zibll CSF_Widget::animation_class parity: obs-animate ani-* [+repeat].
|
||||||
|
*
|
||||||
|
* @param array<string,mixed> $instance Normalized widget instance.
|
||||||
|
* @param bool $is_title Reserved for title-specific animation.
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
function aksrt_widget_animation_class(array $instance, bool $is_title = false): string {
|
||||||
|
$animation = (string) ($instance['animation_in'] ?? '');
|
||||||
|
if ($animation === '') {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
$class = ' obs-animate ani-' . $animation;
|
||||||
|
if (!empty($instance['animation_repeat'])) {
|
||||||
|
$class .= ' obs-animate-repeat';
|
||||||
|
}
|
||||||
|
return $class;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!function_exists('aksrt_widget_should_display_by_ids')) {
|
||||||
|
/**
|
||||||
|
* Check if the current post/page should display the widget based on show_id_type and show_ids.
|
||||||
|
*
|
||||||
|
* show_id_type tokens: '' (no limit) | 'show' (whitelist) | 'hide' (blacklist).
|
||||||
|
* Accepts legacy 'include'/'exclude' via normalize_common.
|
||||||
|
*
|
||||||
|
* @param array $instance Widget instance.
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
function aksrt_widget_should_display_by_ids(array $instance): bool {
|
||||||
|
$instance = aksrt_widget_normalize_common($instance);
|
||||||
|
|
||||||
|
if ($instance['show_id_type'] === '' || $instance['show_ids'] === '') {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
$current_id = get_the_ID();
|
||||||
|
if (!$current_id) {
|
||||||
|
return true; // Not on a singular page, allow display
|
||||||
|
}
|
||||||
|
|
||||||
|
// Zibll splits on comma/Chinese-comma/whitespace/newline.
|
||||||
|
$ids = array_filter(array_map('absint', preg_split('/[,,\s]+/', $instance['show_ids']) ?: []));
|
||||||
|
|
||||||
|
if ($instance['show_id_type'] === 'show') {
|
||||||
|
return in_array($current_id, $ids, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($instance['show_id_type'] === 'hide') {
|
||||||
|
return !in_array($current_id, $ids, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -7,6 +7,8 @@
|
|||||||
|
|
||||||
defined('ABSPATH') || exit;
|
defined('ABSPATH') || exit;
|
||||||
|
|
||||||
|
require_once AKSRT_DIR . '/inc/modules/widget-common.php';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Register custom widgets.
|
* Register custom widgets.
|
||||||
*/
|
*/
|
||||||
@@ -307,208 +309,6 @@ if (!function_exists('aksrt_widget_get_area_context')) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ============================================================
|
|
||||||
// Shared Widget Form Helper — 公共表单字段与显示规则
|
|
||||||
// ============================================================
|
|
||||||
|
|
||||||
if (!function_exists('aksrt_widget_common_defaults')) {
|
|
||||||
/**
|
|
||||||
* Default values for shared widget instance fields.
|
|
||||||
*
|
|
||||||
* @return array<string, mixed>
|
|
||||||
*/
|
|
||||||
function aksrt_widget_common_defaults(): array {
|
|
||||||
return [
|
|
||||||
'subtitle' => '',
|
|
||||||
'title_link' => '',
|
|
||||||
'show_type' => 'all',
|
|
||||||
'show_id_type' => '',
|
|
||||||
'show_ids' => '',
|
|
||||||
'sidebar_affix' => false,
|
|
||||||
'animation_in' => '',
|
|
||||||
'animation_repeat'=> false,
|
|
||||||
];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!function_exists('aksrt_widget_normalize_common')) {
|
|
||||||
/**
|
|
||||||
* Normalize common widget instance fields, filling defaults for legacy instances.
|
|
||||||
*
|
|
||||||
* @param array<string, mixed> $instance
|
|
||||||
* @return array<string, mixed>
|
|
||||||
*/
|
|
||||||
function aksrt_widget_normalize_common(array $instance): array {
|
|
||||||
$defaults = aksrt_widget_common_defaults();
|
|
||||||
$result = array_merge($defaults, $instance);
|
|
||||||
|
|
||||||
$result['subtitle'] = sanitize_text_field($result['subtitle'] ?? '');
|
|
||||||
$result['title_link'] = esc_url_raw($result['title_link'] ?? '');
|
|
||||||
$result['show_type'] = in_array($result['show_type'] ?? '', ['all', 'pc', 'mobile'], true) ? $result['show_type'] : 'all';
|
|
||||||
$result['show_id_type'] = in_array($result['show_id_type'] ?? '', ['', 'include', 'exclude'], true) ? $result['show_id_type'] : '';
|
|
||||||
$result['show_ids'] = sanitize_text_field($result['show_ids'] ?? '');
|
|
||||||
$result['sidebar_affix'] = !empty($result['sidebar_affix']);
|
|
||||||
$result['animation_in'] = sanitize_key($result['animation_in'] ?? '');
|
|
||||||
$result['animation_repeat']= !empty($result['animation_repeat']);
|
|
||||||
|
|
||||||
return $result;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!function_exists('aksrt_widget_render_common_form')) {
|
|
||||||
/**
|
|
||||||
* Render shared widget admin form fields.
|
|
||||||
*
|
|
||||||
* Call this from your widget's form() method after rendering custom fields.
|
|
||||||
*
|
|
||||||
* @param array<string, mixed> $instance Current widget instance.
|
|
||||||
*/
|
|
||||||
function aksrt_widget_render_common_form(array $instance): void {
|
|
||||||
$instance = aksrt_widget_normalize_common($instance);
|
|
||||||
?>
|
|
||||||
<hr style="margin:16px 0 12px;border-color:#e0e0e0;">
|
|
||||||
<p style="font-size:12px;color:#666;margin-bottom:8px;font-weight:600;"><?php esc_html_e('显示规则', 'aksrt'); ?></p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<label for="<?php echo esc_attr($instance['show_type_id'] ?? ''); ?>"><?php esc_html_e('显示设备', 'aksrt'); ?></label><br>
|
|
||||||
<select name="<?php echo esc_attr($instance['show_type_name'] ?? 'show_type'); ?>" id="<?php echo esc_attr($instance['show_type_id'] ?? ''); ?>" class="widefat">
|
|
||||||
<option value="all" <?php selected($instance['show_type'], 'all'); ?>><?php esc_html_e('全部', 'aksrt'); ?></option>
|
|
||||||
<option value="pc" <?php selected($instance['show_type'], 'pc'); ?>><?php esc_html_e('仅 PC', 'aksrt'); ?></option>
|
|
||||||
<option value="mobile" <?php selected($instance['show_type'], 'mobile'); ?>><?php esc_html_e('仅移动端', 'aksrt'); ?></option>
|
|
||||||
</select>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<label for="<?php echo esc_attr($instance['show_id_type_id'] ?? ''); ?>"><?php esc_html_e('ID 显示规则', 'aksrt'); ?></label><br>
|
|
||||||
<select name="<?php echo esc_attr($instance['show_id_type_name'] ?? 'show_id_type'); ?>" id="<?php echo esc_attr($instance['show_id_type_id'] ?? ''); ?>" class="widefat">
|
|
||||||
<option value="" <?php selected($instance['show_id_type'], ''); ?>><?php esc_html_e('不限制', 'aksrt'); ?></option>
|
|
||||||
<option value="include" <?php selected($instance['show_id_type'], 'include'); ?>><?php esc_html_e('仅指定 ID 显示', 'aksrt'); ?></option>
|
|
||||||
<option value="exclude" <?php selected($instance['show_id_type'], 'exclude'); ?>><?php esc_html_e('指定 ID 隐藏', 'aksrt'); ?></option>
|
|
||||||
</select>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<label for="<?php echo esc_attr($instance['show_ids_id'] ?? ''); ?>"><?php esc_html_e('文章/页面 ID', 'aksrt'); ?></label><br>
|
|
||||||
<input type="text" name="<?php echo esc_attr($instance['show_ids_name'] ?? 'show_ids'); ?>" id="<?php echo esc_attr($instance['show_ids_id'] ?? ''); ?>" class="widefat" value="<?php echo esc_attr($instance['show_ids']); ?>" placeholder="<?php esc_attr_e('逗号分隔,如: 1,2,3', 'aksrt'); ?>">
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<label>
|
|
||||||
<input type="checkbox" name="<?php echo esc_attr($instance['sidebar_affix_name'] ?? 'sidebar_affix'); ?>" value="1" <?php checked($instance['sidebar_affix']); ?>>
|
|
||||||
<?php esc_html_e('侧栏吸顶', 'aksrt'); ?>
|
|
||||||
</label>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<label for="<?php echo esc_attr($instance['animation_in_id'] ?? ''); ?>"><?php esc_html_e('入场动画', 'aksrt'); ?></label><br>
|
|
||||||
<select name="<?php echo esc_attr($instance['animation_in_name'] ?? 'animation_in'); ?>" id="<?php echo esc_attr($instance['animation_in_id'] ?? ''); ?>" class="widefat">
|
|
||||||
<option value="" <?php selected($instance['animation_in'], ''); ?>><?php esc_html_e('无', 'aksrt'); ?></option>
|
|
||||||
<option value="fadeIn" <?php selected($instance['animation_in'], 'fadeIn'); ?>><?php esc_html_e('淡入', 'aksrt'); ?></option>
|
|
||||||
<option value="fadeInUp" <?php selected($instance['animation_in'], 'fadeInUp'); ?>><?php esc_html_e('上移淡入', 'aksrt'); ?></option>
|
|
||||||
<option value="fadeInDown" <?php selected($instance['animation_in'], 'fadeInDown'); ?>><?php esc_html_e('下移淡入', 'aksrt'); ?></option>
|
|
||||||
<option value="fadeInLeft" <?php selected($instance['animation_in'], 'fadeInLeft'); ?>><?php esc_html_e('左移淡入', 'aksrt'); ?></option>
|
|
||||||
<option value="fadeInRight" <?php selected($instance['animation_in'], 'fadeInRight'); ?>><?php esc_html_e('右移淡入', 'aksrt'); ?></option>
|
|
||||||
<option value="zoomIn" <?php selected($instance['animation_in'], 'zoomIn'); ?>><?php esc_html_e('缩放进入', 'aksrt'); ?></option>
|
|
||||||
</select>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<label>
|
|
||||||
<input type="checkbox" name="<?php echo esc_attr($instance['animation_repeat_name'] ?? 'animation_repeat'); ?>" value="1" <?php checked($instance['animation_repeat']); ?>>
|
|
||||||
<?php esc_html_e('动画重复播放', 'aksrt'); ?>
|
|
||||||
</label>
|
|
||||||
</p>
|
|
||||||
<?php
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!function_exists('aksrt_widget_update_common')) {
|
|
||||||
/**
|
|
||||||
* Process shared widget form fields in update().
|
|
||||||
*
|
|
||||||
* @param array<string, mixed> $new_instance
|
|
||||||
* @param array<string, mixed> $old_instance
|
|
||||||
* @return array<string, mixed>
|
|
||||||
*/
|
|
||||||
function aksrt_widget_update_common(array $new_instance, array $old_instance): array {
|
|
||||||
$merged = array_merge($old_instance, $new_instance);
|
|
||||||
return aksrt_widget_normalize_common($merged);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!function_exists('aksrt_widget_render_common_before')) {
|
|
||||||
/**
|
|
||||||
* Render common wrapper attributes and classes before widget content.
|
|
||||||
*
|
|
||||||
* Outputs CSS classes for animation, affix, show_type, etc.
|
|
||||||
* Call this at the start of widget() before rendering content.
|
|
||||||
*
|
|
||||||
* @param array $args Sidebar args.
|
|
||||||
* @param array $instance Widget instance.
|
|
||||||
* @return array Modified args with extra classes.
|
|
||||||
*/
|
|
||||||
function aksrt_widget_get_common_wrapper_classes(array $args, array $instance): array {
|
|
||||||
$instance = aksrt_widget_normalize_common($instance);
|
|
||||||
$classes = [];
|
|
||||||
|
|
||||||
// Show type: PC or mobile
|
|
||||||
if ($instance['show_type'] === 'pc') {
|
|
||||||
$classes[] = 'aksrt-widget--pc-only';
|
|
||||||
} elseif ($instance['show_type'] === 'mobile') {
|
|
||||||
$classes[] = 'aksrt-widget--mobile-only';
|
|
||||||
}
|
|
||||||
|
|
||||||
// Sidebar affix
|
|
||||||
if ($instance['sidebar_affix']) {
|
|
||||||
$classes[] = 'aksrt-widget--affix';
|
|
||||||
}
|
|
||||||
|
|
||||||
// Animation
|
|
||||||
if ($instance['animation_in'] !== '') {
|
|
||||||
$classes[] = 'aksrt-widget--animated';
|
|
||||||
$classes[] = 'aksrt-anim-' . $instance['animation_in'];
|
|
||||||
if ($instance['animation_repeat']) {
|
|
||||||
$classes[] = 'aksrt-anim-repeat';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return $classes;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!function_exists('aksrt_widget_should_display_by_ids')) {
|
|
||||||
/**
|
|
||||||
* Check if the current post/page should display the widget based on show_id_type and show_ids.
|
|
||||||
*
|
|
||||||
* @param array $instance Widget instance.
|
|
||||||
* @return bool
|
|
||||||
*/
|
|
||||||
function aksrt_widget_should_display_by_ids(array $instance): bool {
|
|
||||||
$instance = aksrt_widget_normalize_common($instance);
|
|
||||||
|
|
||||||
if ($instance['show_id_type'] === '' || $instance['show_ids'] === '') {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
$current_id = get_the_ID();
|
|
||||||
if (!$current_id) {
|
|
||||||
return true; // Not on a singular page, allow display
|
|
||||||
}
|
|
||||||
|
|
||||||
$ids = array_filter(array_map('absint', explode(',', $instance['show_ids'])));
|
|
||||||
|
|
||||||
if ($instance['show_id_type'] === 'include') {
|
|
||||||
return in_array($current_id, $ids, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($instance['show_id_type'] === 'exclude') {
|
|
||||||
return !in_array($current_id, $ids, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!function_exists('aksrt_widget_render_location_help')) {
|
if (!function_exists('aksrt_widget_render_location_help')) {
|
||||||
/**
|
/**
|
||||||
* Render placement hint inside widget admin forms.
|
* Render placement hint inside widget admin forms.
|
||||||
@@ -559,11 +359,11 @@ if (!function_exists('aksrt_filter_widget_display_by_area')) {
|
|||||||
if (is_array($instance) && function_exists('aksrt_widget_normalize_common')) {
|
if (is_array($instance) && function_exists('aksrt_widget_normalize_common')) {
|
||||||
$normalized = aksrt_widget_normalize_common($instance);
|
$normalized = aksrt_widget_normalize_common($instance);
|
||||||
|
|
||||||
// Show type: PC / mobile filter
|
// Show type: PC / mobile filter (Zibll only_pc / only_sm).
|
||||||
if ($normalized['show_type'] === 'pc' && wp_is_mobile()) {
|
if ($normalized['show_type'] === 'only_pc' && wp_is_mobile()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if ($normalized['show_type'] === 'mobile' && !wp_is_mobile()) {
|
if ($normalized['show_type'] === 'only_sm' && !wp_is_mobile()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -428,5 +428,75 @@ trait SetupPart1 {
|
|||||||
'after_title' => $title_after,
|
'after_title' => $title_after,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ── Per-page dynamic sidebars (zibll zib_page_register_sidebar parity) ──
|
||||||
|
// Pages that opt in via meta `widgets_register=1` + `widgets_register_container`
|
||||||
|
// (a serialized list of area keys) get page_{key}_{ID} sidebars registered, and
|
||||||
|
// the matching `page_sidebar_{ID}` is treated as active when any of its areas
|
||||||
|
// hold widgets. page.php reads page_top_fluid_/page_top_content_/etc.
|
||||||
|
$this->register_page_sidebars();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Register dynamic per-page widget areas (aligns Zibll zib_page_register_sidebar).
|
||||||
|
*
|
||||||
|
* Zibll stores, per page, a `widgets_register` flag and a `widgets_register_container`
|
||||||
|
* serialized array of area keys (sidebar/top_fluid/top_content/bottom_content/bottom_fluid).
|
||||||
|
* We replicate that: for every page opted in, register page_{key}_{ID} sidebars.
|
||||||
|
*/
|
||||||
|
public function register_page_sidebars(): void {
|
||||||
|
global $wpdb;
|
||||||
|
// Cache the opt-in page list (postmeta-driven), mirroring zib_get_widgets_register_pages.
|
||||||
|
$pages = wp_cache_get('aksrt_widgets_register_pages', 'aksrt_cache_group', true);
|
||||||
|
if (false === $pages) {
|
||||||
|
// phpcs:ignore WordPress.DB.DirectDatabaseQuery
|
||||||
|
$rows = $wpdb->get_results(
|
||||||
|
"SELECT p.ID, p.post_title, pm.meta_value
|
||||||
|
FROM {$wpdb->posts} p
|
||||||
|
INNER JOIN {$wpdb->postmeta} pm ON pm.post_id = p.ID
|
||||||
|
WHERE p.post_type = 'page'
|
||||||
|
AND p.post_status = 'publish'
|
||||||
|
AND pm.meta_key = 'widgets_register_container'
|
||||||
|
AND pm.meta_value LIKE '%;}'"
|
||||||
|
);
|
||||||
|
$pages = is_array($rows) ? $rows : [];
|
||||||
|
wp_cache_set('aksrt_widgets_register_pages', $pages, 'aksrt_cache_group');
|
||||||
|
}
|
||||||
|
|
||||||
|
$area_labels = [
|
||||||
|
'sidebar' => __('侧边栏', 'aksrt'),
|
||||||
|
'top_fluid' => __('顶部全宽度', 'aksrt'),
|
||||||
|
'top_content' => __('主内容上面', 'aksrt'),
|
||||||
|
'bottom_content' => __('主内容下面', 'aksrt'),
|
||||||
|
'bottom_fluid' => __('底部全宽度', 'aksrt'),
|
||||||
|
];
|
||||||
|
|
||||||
|
$fluid_wrapper_before = '<div id="%1$s" class="zib-widget %2$s">';
|
||||||
|
$card_wrapper_before = '<div id="%1$s" class="zib-widget %2$s">';
|
||||||
|
$title_before = '<h3>';
|
||||||
|
$title_after = '</h3>';
|
||||||
|
|
||||||
|
foreach ($pages as $page) {
|
||||||
|
$meta_value = maybe_unserialize($page->meta_value);
|
||||||
|
if (!is_array($meta_value)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
$name = function_exists('aksrt_str_cut') ? aksrt_str_cut($page->post_title, 0, 10, '...') : mb_substr((string) $page->post_title, 0, 10);
|
||||||
|
foreach ($meta_value as $key) {
|
||||||
|
if (!isset($area_labels[$key])) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
$id = 'page_' . $key . '_' . (int) $page->ID;
|
||||||
|
register_sidebar([
|
||||||
|
'name' => sprintf(__('[页面:%1$s]-%2$s', 'aksrt'), $name, $area_labels[$key]),
|
||||||
|
'id' => $id,
|
||||||
|
'description' => sprintf(__('显示在[页面:%1$s]的 %2$s 位置', 'aksrt'), $name, $area_labels[$key]),
|
||||||
|
'before_widget' => $key === 'sidebar' ? $card_wrapper_before : $fluid_wrapper_before,
|
||||||
|
'after_widget' => '</div>',
|
||||||
|
'before_title' => $title_before,
|
||||||
|
'after_title' => $title_after,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -59,6 +59,7 @@ class WidgetAjax {
|
|||||||
$instance = [
|
$instance = [
|
||||||
'count' => max(1, min(30, (int) ($request->get_param('count') ?? 6))),
|
'count' => max(1, min(30, (int) ($request->get_param('count') ?? 6))),
|
||||||
'orderby' => sanitize_key((string) ($request->get_param('orderby') ?? 'date')),
|
'orderby' => sanitize_key((string) ($request->get_param('orderby') ?? 'date')),
|
||||||
|
'order' => strtoupper(sanitize_key((string) ($request->get_param('order') ?? 'desc'))) === 'ASC' ? 'ASC' : 'DESC',
|
||||||
'cat' => max(0, (int) ($request->get_param('cat') ?? 0)),
|
'cat' => max(0, (int) ($request->get_param('cat') ?? 0)),
|
||||||
'limit_day' => max(0, (int) ($request->get_param('limit_day') ?? 0)),
|
'limit_day' => max(0, (int) ($request->get_param('limit_day') ?? 0)),
|
||||||
'topics' => sanitize_text_field((string) ($request->get_param('topics') ?? '')),
|
'topics' => sanitize_text_field((string) ($request->get_param('topics') ?? '')),
|
||||||
@@ -91,9 +92,10 @@ class WidgetAjax {
|
|||||||
'title' => '',
|
'title' => '',
|
||||||
'category_id' => max(0, (int) ($request->get_param('cat') ?? $request->get_param('category_id') ?? 0)),
|
'category_id' => max(0, (int) ($request->get_param('cat') ?? $request->get_param('category_id') ?? 0)),
|
||||||
'orderby' => sanitize_key((string) ($request->get_param('orderby') ?? 'date')),
|
'orderby' => sanitize_key((string) ($request->get_param('orderby') ?? 'date')),
|
||||||
|
'order' => strtoupper(sanitize_key((string) ($request->get_param('order') ?? 'desc'))) === 'ASC' ? 'ASC' : 'DESC',
|
||||||
'count' => max(0, min(20, (int) ($request->get_param('tab_count') ?? 0))),
|
'count' => max(0, min(20, (int) ($request->get_param('tab_count') ?? 0))),
|
||||||
'enabled' => true,
|
'enabled' => true,
|
||||||
|
|
||||||
'topics' => sanitize_text_field((string) ($request->get_param('topics') ?? '')),
|
'topics' => sanitize_text_field((string) ($request->get_param('topics') ?? '')),
|
||||||
'limit_day' => max(0, (int) ($request->get_param('limit_day') ?? 0)),
|
'limit_day' => max(0, (int) ($request->get_param('limit_day') ?? 0)),
|
||||||
'pay_type' => sanitize_key((string) ($request->get_param('pay_type') ?? '')),];
|
'pay_type' => sanitize_key((string) ($request->get_param('pay_type') ?? '')),];
|
||||||
@@ -202,11 +204,12 @@ class WidgetAjax {
|
|||||||
$paginate = 'ajax';
|
$paginate = 'ajax';
|
||||||
}
|
}
|
||||||
$instance = [
|
$instance = [
|
||||||
'count' => max(1, min(20, (int) ($request->get_param('count') ?? 5))),
|
'count' => max(1, min(20, (int) ($request->get_param('count') ?? 5))),
|
||||||
'order_by' => sanitize_key((string) ($request->get_param('order_by') ?? 'views')),
|
'order_by' => sanitize_key((string) ($request->get_param('order_by') ?? 'views')),
|
||||||
'days' => max(0, (int) ($request->get_param('days') ?? 30)),
|
'days' => max(0, (int) ($request->get_param('days') ?? 30)),
|
||||||
'show_thumb' => $request->get_param('show_thumb') === null ? 1 : (int) $request->get_param('show_thumb'),
|
'show_thumb' => $request->get_param('show_thumb') === null ? 1 : (int) $request->get_param('show_thumb'),
|
||||||
'paginate' => $paginate,
|
'target_blank'=> (int) ($request->get_param('target_blank') ?? 0),
|
||||||
|
'paginate' => $paginate,
|
||||||
];
|
];
|
||||||
$page = max(1, (int) ($request->get_param('page') ?? 1));
|
$page = max(1, (int) ($request->get_param('page') ?? 1));
|
||||||
return $this->payload(\AKSRT\Widgets\HotPostsWidget::query_payload($instance, $page), $page);
|
return $this->payload(\AKSRT\Widgets\HotPostsWidget::query_payload($instance, $page), $page);
|
||||||
@@ -220,6 +223,7 @@ class WidgetAjax {
|
|||||||
'count' => max(1, min(20, (int) ($request->get_param('count') ?? 8))),
|
'count' => max(1, min(20, (int) ($request->get_param('count') ?? 8))),
|
||||||
'style' => sanitize_key((string) ($request->get_param('style') ?? 'card')),
|
'style' => sanitize_key((string) ($request->get_param('style') ?? 'card')),
|
||||||
'orderby' => sanitize_key((string) ($request->get_param('orderby') ?? 'date')),
|
'orderby' => sanitize_key((string) ($request->get_param('orderby') ?? 'date')),
|
||||||
|
'order' => strtoupper(sanitize_key((string) ($request->get_param('order') ?? 'desc'))) === 'ASC' ? 'ASC' : 'DESC',
|
||||||
'cat' => max(0, (int) ($request->get_param('cat') ?? 0)),
|
'cat' => max(0, (int) ($request->get_param('cat') ?? 0)),
|
||||||
'limit_day' => max(0, (int) ($request->get_param('limit_day') ?? 0)),
|
'limit_day' => max(0, (int) ($request->get_param('limit_day') ?? 0)),
|
||||||
'topics' => sanitize_text_field((string) ($request->get_param('topics') ?? '')),
|
'topics' => sanitize_text_field((string) ($request->get_param('topics') ?? '')),
|
||||||
@@ -389,12 +393,18 @@ class WidgetAjax {
|
|||||||
return $this->fail();
|
return $this->fail();
|
||||||
}
|
}
|
||||||
$instance = [
|
$instance = [
|
||||||
'taxonomy' => sanitize_key((string) ($request->get_param('taxonomy') ?? 'category')),
|
'taxonomy' => sanitize_key((string) ($request->get_param('taxonomy') ?? 'category')),
|
||||||
'number' => max(1, min(30, (int) ($request->get_param('number') ?? 8))),
|
'number' => max(1, min(30, (int) ($request->get_param('number') ?? 8))),
|
||||||
'columns' => max(1, min(4, (int) ($request->get_param('columns') ?? 2))),
|
'pc_row' => max(1, min(12, (int) ($request->get_param('pc_row') ?? $request->get_param('columns') ?? 2))),
|
||||||
'orderby' => sanitize_key((string) ($request->get_param('orderby') ?? 'count')),
|
'm_row' => max(1, min(12, (int) ($request->get_param('m_row') ?? 1))),
|
||||||
'include' => sanitize_text_field((string) ($request->get_param('include') ?? '')),
|
'columns' => max(1, min(12, (int) ($request->get_param('columns') ?? $request->get_param('pc_row') ?? 2))),
|
||||||
'hide_empty' => $request->get_param('hide_empty') === null ? 1 : (int) $request->get_param('hide_empty'),
|
'type' => sanitize_key((string) ($request->get_param('type') ?? 'style-1')),
|
||||||
|
'height_scale' => max(20, min(300, (int) ($request->get_param('height_scale') ?? 60))),
|
||||||
|
'mask_opacity' => max(0, min(90, (int) ($request->get_param('mask_opacity') ?? 10))),
|
||||||
|
'orderby' => sanitize_key((string) ($request->get_param('orderby') ?? 'count')),
|
||||||
|
'include' => sanitize_text_field((string) ($request->get_param('include') ?? '')),
|
||||||
|
'hide_empty' => $request->get_param('hide_empty') === null ? 1 : (int) $request->get_param('hide_empty'),
|
||||||
|
'target_blank' => (int) ($request->get_param('target_blank') ?? 0),
|
||||||
];
|
];
|
||||||
$html = \AKSRT\Widgets\WidgetTermCards::render_html($instance);
|
$html = \AKSRT\Widgets\WidgetTermCards::render_html($instance);
|
||||||
return new \WP_REST_Response(['success' => true, 'html' => $html], 200);
|
return new \WP_REST_Response(['success' => true, 'html' => $html], 200);
|
||||||
@@ -405,12 +415,14 @@ class WidgetAjax {
|
|||||||
return $this->fail();
|
return $this->fail();
|
||||||
}
|
}
|
||||||
$instance = [
|
$instance = [
|
||||||
'taxonomy' => sanitize_key((string) ($request->get_param('taxonomy') ?? 'category')),
|
'taxonomy' => sanitize_key((string) ($request->get_param('taxonomy') ?? 'category')),
|
||||||
'term_ids' => sanitize_text_field((string) ($request->get_param('term_ids') ?? '')),
|
'term_ids' => sanitize_text_field((string) ($request->get_param('term_ids') ?? '')),
|
||||||
'count' => max(1, min(12, (int) ($request->get_param('count') ?? 4))),
|
'count' => max(1, min(20, (int) ($request->get_param('count') ?? 4))),
|
||||||
'columns' => max(1, min(3, (int) ($request->get_param('columns') ?? 1))),
|
'columns' => max(1, min(3, (int) ($request->get_param('columns') ?? 1))),
|
||||||
'orderby' => sanitize_key((string) ($request->get_param('orderby') ?? 'date')),
|
'orderby' => sanitize_key((string) ($request->get_param('orderby') ?? 'date')),
|
||||||
'auto_terms' => max(1, min(4, (int) ($request->get_param('auto_terms') ?? 2))),
|
'order' => strtoupper(sanitize_key((string) ($request->get_param('order') ?? 'desc'))) === 'ASC' ? 'ASC' : 'DESC',
|
||||||
|
'auto_terms' => max(1, min(4, (int) ($request->get_param('auto_terms') ?? 2))),
|
||||||
|
'target_blank' => (int) ($request->get_param('target_blank') ?? 0),
|
||||||
];
|
];
|
||||||
$html = \AKSRT\Widgets\WidgetTermAggregation::render_html($instance);
|
$html = \AKSRT\Widgets\WidgetTermAggregation::render_html($instance);
|
||||||
return new \WP_REST_Response(['success' => true, 'html' => $html], 200);
|
return new \WP_REST_Response(['success' => true, 'html' => $html], 200);
|
||||||
|
|||||||
@@ -5,9 +5,13 @@
|
|||||||
|
|
||||||
namespace AKSRT\Widgets;
|
namespace AKSRT\Widgets;
|
||||||
|
|
||||||
|
use AKSRT\Widgets\Traits\CommonWidgetFields;
|
||||||
|
|
||||||
defined('ABSPATH') || exit;
|
defined('ABSPATH') || exit;
|
||||||
|
|
||||||
class AboutWidget extends \WP_Widget {
|
class AboutWidget extends \WP_Widget {
|
||||||
|
use CommonWidgetFields;
|
||||||
|
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
parent::__construct(
|
parent::__construct(
|
||||||
@@ -367,12 +371,13 @@ class AboutWidget extends \WP_Widget {
|
|||||||
<?php esc_html_e('留空则使用默认背景图。已登录用户可使用个人封面图。', 'aksrt'); ?>
|
<?php esc_html_e('留空则使用默认背景图。已登录用户可使用个人封面图。', 'aksrt'); ?>
|
||||||
</p>
|
</p>
|
||||||
<?php
|
<?php
|
||||||
}
|
$this->render_common_form_section($instance);
|
||||||
|
}
|
||||||
|
|
||||||
public function update($new_instance, $old_instance): array {
|
public function update($new_instance, $old_instance): array {
|
||||||
return [
|
$business = [
|
||||||
'title' => sanitize_text_field($new_instance['title'] ?? ''),
|
'title' => sanitize_text_field($new_instance['title'] ?? ''),
|
||||||
'cover' => esc_url_raw($new_instance['cover'] ?? ''),
|
'cover' => esc_url_raw($new_instance['cover'] ?? ''),
|
||||||
];
|
]; return $this->update_common_fields($new_instance, $old_instance, $business);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7,9 +7,13 @@
|
|||||||
|
|
||||||
namespace AKSRT\Widgets;
|
namespace AKSRT\Widgets;
|
||||||
|
|
||||||
|
use AKSRT\Widgets\Traits\CommonWidgetFields;
|
||||||
|
|
||||||
defined('ABSPATH') || exit;
|
defined('ABSPATH') || exit;
|
||||||
|
|
||||||
class ButtonsWidget extends \WP_Widget {
|
class ButtonsWidget extends \WP_Widget {
|
||||||
|
use CommonWidgetFields;
|
||||||
|
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
parent::__construct('aksrt_buttons', esc_html__('AKSRT 按钮组', 'aksrt'), [
|
parent::__construct('aksrt_buttons', esc_html__('AKSRT 按钮组', 'aksrt'), [
|
||||||
@@ -213,7 +217,8 @@ class ButtonsWidget extends \WP_Widget {
|
|||||||
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name("buttons[{$i}][new_window]")); ?>" value="1" <?php checked(!empty($btn['new_window'])); ?>> <?php esc_html_e('新窗口', 'aksrt'); ?></label>
|
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name("buttons[{$i}][new_window]")); ?>" value="1" <?php checked(!empty($btn['new_window'])); ?>> <?php esc_html_e('新窗口', 'aksrt'); ?></label>
|
||||||
</div>
|
</div>
|
||||||
<?php endforeach;
|
<?php endforeach;
|
||||||
}
|
$this->render_common_form_section($instance);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param array<string,mixed> $new_instance
|
* @param array<string,mixed> $new_instance
|
||||||
@@ -244,18 +249,22 @@ class ButtonsWidget extends \WP_Widget {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return [
|
$business = [
|
||||||
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
||||||
'align' => in_array(($new_instance['align'] ?? ''), ['left', 'center', 'right'], true) ? $new_instance['align'] : 'center',
|
'align' => in_array(($new_instance['align'] ?? ''), ['left', 'center', 'right'], true) ? $new_instance['align'] : 'center',
|
||||||
'radius' => !empty($new_instance['radius']) ? 1 : 0,
|
'radius' => !empty($new_instance['radius']) ? 1 : 0,
|
||||||
'hollow' => !empty($new_instance['hollow']) ? 1 : 0,
|
'hollow' => !empty($new_instance['hollow']) ? 1 : 0,
|
||||||
'go_link' => !empty($new_instance['go_link']) ? 1 : 0,
|
'go_link' => !empty($new_instance['go_link']) ? 1 : 0,
|
||||||
'gap' => max(4, min(30, (int) ($new_instance['gap'] ?? 12))),
|
'gap' => max(4, min(30, (int) ($new_instance['gap'] ?? 12))),
|
||||||
'pc_gap' => max(0, min(40, (int) ($new_instance['pc_gap'] ?? $new_instance['gap'] ?? 12))),
|
'pc_gap' => max(0, min(60, (int) ($new_instance['pc_gap'] ?? $new_instance['gap'] ?? 12))),
|
||||||
'm_gap' => max(0, min(30, (int) ($new_instance['m_gap'] ?? 6))),
|
'm_gap' => max(0, min(60, (int) ($new_instance['m_gap'] ?? 6))),
|
||||||
|
'pc_padding' => in_array(($new_instance['pc_padding'] ?? 'large'), ['small', 'medium', 'large'], true) ? $new_instance['pc_padding'] : 'large',
|
||||||
|
'm_padding' => in_array(($new_instance['m_padding'] ?? 'medium'), ['small', 'medium', 'large'], true) ? $new_instance['m_padding'] : 'medium',
|
||||||
|
'pc_width' => max(0, min(500, (int) ($new_instance['pc_width'] ?? 0))),
|
||||||
|
'm_width' => max(0, min(500, (int) ($new_instance['m_width'] ?? 0))),
|
||||||
'obs_animation' => sanitize_key((string) ($new_instance['obs_animation'] ?? '')),
|
'obs_animation' => sanitize_key((string) ($new_instance['obs_animation'] ?? '')),
|
||||||
'animation_repeat'=> !empty($new_instance['animation_repeat']) ? 1 : 0,
|
'animation_repeat'=> !empty($new_instance['animation_repeat']) ? 1 : 0,
|
||||||
'buttons' => $buttons,
|
'buttons' => $buttons,
|
||||||
];
|
]; return $this->update_common_fields($new_instance, $old_instance, $business);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7,9 +7,12 @@
|
|||||||
|
|
||||||
namespace AKSRT\Widgets;
|
namespace AKSRT\Widgets;
|
||||||
|
|
||||||
|
use AKSRT\Widgets\Traits\CommonWidgetFields;
|
||||||
|
|
||||||
defined('ABSPATH') || exit;
|
defined('ABSPATH') || exit;
|
||||||
|
|
||||||
class CategoriesWidget extends \WP_Widget {
|
class CategoriesWidget extends \WP_Widget {
|
||||||
|
use CommonWidgetFields;
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
parent::__construct(
|
parent::__construct(
|
||||||
@@ -176,12 +179,12 @@ class CategoriesWidget extends \WP_Widget {
|
|||||||
if ($title !== '') {
|
if ($title !== '') {
|
||||||
echo $args['before_title'] . esc_html($title) . $args['after_title']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
echo $args['before_title'] . esc_html($title) . $args['after_title']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
||||||
}
|
}
|
||||||
$in_affix = !empty($instance['in_affix']);
|
$affix = function_exists('aksrt_widget_affix_attrs') ? aksrt_widget_affix_attrs($instance) : ['class' => '', 'attr' => ''];
|
||||||
if ($in_affix) {
|
if ($affix['class'] !== '') {
|
||||||
echo '<div class="is-affix" data-affix="true">';
|
echo '<div class="is-affix"' . $affix['attr'] . '>';
|
||||||
}
|
}
|
||||||
echo self::render_html($instance); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
echo self::render_html($instance); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
||||||
if ($in_affix) {
|
if ($affix['class'] !== '') {
|
||||||
echo '</div>';
|
echo '</div>';
|
||||||
}
|
}
|
||||||
echo $args['after_widget']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
echo $args['after_widget']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
||||||
@@ -238,9 +241,7 @@ class CategoriesWidget extends \WP_Widget {
|
|||||||
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('hide_empty')); ?>" value="1" <?php checked(!isset($instance['hide_empty']) || !empty($instance['hide_empty'])); ?>> <?php esc_html_e('隐藏空分类', 'aksrt'); ?></label><br>
|
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('hide_empty')); ?>" value="1" <?php checked(!isset($instance['hide_empty']) || !empty($instance['hide_empty'])); ?>> <?php esc_html_e('隐藏空分类', 'aksrt'); ?></label><br>
|
||||||
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('hierarchical')); ?>" value="1" <?php checked(!empty($instance['hierarchical'])); ?>> <?php esc_html_e('层级树', 'aksrt'); ?></label>
|
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('hierarchical')); ?>" value="1" <?php checked(!empty($instance['hierarchical'])); ?>> <?php esc_html_e('层级树', 'aksrt'); ?></label>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<?php $this->render_common_form_section($instance); ?>
|
||||||
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('in_affix')); ?>" value="1" <?php checked(!empty($instance['in_affix'])); ?>> <?php esc_html_e('侧栏随动', 'aksrt'); ?></label>
|
|
||||||
</p>
|
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -254,7 +255,7 @@ class CategoriesWidget extends \WP_Widget {
|
|||||||
if (!in_array($orderby, ['count', 'name', 'id', 'slug'], true)) {
|
if (!in_array($orderby, ['count', 'name', 'id', 'slug'], true)) {
|
||||||
$orderby = 'count';
|
$orderby = 'count';
|
||||||
}
|
}
|
||||||
return [
|
return $this->update_common_fields($new_instance, $old_instance, [
|
||||||
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
||||||
'count' => max(1, min(50, (int) ($new_instance['count'] ?? 8))),
|
'count' => max(1, min(50, (int) ($new_instance['count'] ?? 8))),
|
||||||
'orderby' => $orderby,
|
'orderby' => $orderby,
|
||||||
@@ -267,7 +268,6 @@ class CategoriesWidget extends \WP_Widget {
|
|||||||
'show_thumb' => !empty($new_instance['show_thumb']) ? 1 : 0,
|
'show_thumb' => !empty($new_instance['show_thumb']) ? 1 : 0,
|
||||||
'hide_empty' => !empty($new_instance['hide_empty']) ? 1 : 0,
|
'hide_empty' => !empty($new_instance['hide_empty']) ? 1 : 0,
|
||||||
'hierarchical' => !empty($new_instance['hierarchical']) ? 1 : 0,
|
'hierarchical' => !empty($new_instance['hierarchical']) ? 1 : 0,
|
||||||
'in_affix' => !empty($new_instance['in_affix']) ? 1 : 0,
|
]);
|
||||||
];
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -5,6 +5,8 @@
|
|||||||
|
|
||||||
namespace AKSRT\Widgets;
|
namespace AKSRT\Widgets;
|
||||||
|
|
||||||
|
use AKSRT\Widgets\Traits\CommonWidgetFields;
|
||||||
|
|
||||||
defined('ABSPATH') || exit;
|
defined('ABSPATH') || exit;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -311,6 +313,8 @@ if (!function_exists('aksrt_home_widget_get_lazyload_args')) {
|
|||||||
* Homepage category block widget.
|
* Homepage category block widget.
|
||||||
*/
|
*/
|
||||||
class CategoryBlockWidget extends \WP_Widget {
|
class CategoryBlockWidget extends \WP_Widget {
|
||||||
|
use CommonWidgetFields;
|
||||||
|
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
parent::__construct(
|
parent::__construct(
|
||||||
@@ -486,10 +490,11 @@ class CategoryBlockWidget extends \WP_Widget {
|
|||||||
</p>
|
</p>
|
||||||
<?php if (function_exists('aksrt_widget_render_location_help')) { aksrt_widget_render_location_help('hybrid'); } ?>
|
<?php if (function_exists('aksrt_widget_render_location_help')) { aksrt_widget_render_location_help('hybrid'); } ?>
|
||||||
<?php
|
<?php
|
||||||
}
|
$this->render_common_form_section($instance);
|
||||||
|
}
|
||||||
|
|
||||||
public function update($new_instance, $old_instance): array {
|
public function update($new_instance, $old_instance): array {
|
||||||
return [
|
$business = [
|
||||||
'title' => sanitize_text_field($new_instance['title'] ?? ''),
|
'title' => sanitize_text_field($new_instance['title'] ?? ''),
|
||||||
'category_id' => absint($new_instance['category_id'] ?? 0),
|
'category_id' => absint($new_instance['category_id'] ?? 0),
|
||||||
'count' => max(1, min(12, absint($new_instance['count'] ?? 6))),
|
'count' => max(1, min(12, absint($new_instance['count'] ?? 6))),
|
||||||
@@ -497,7 +502,7 @@ class CategoryBlockWidget extends \WP_Widget {
|
|||||||
'layout' => aksrt_home_widget_resolve_layout($new_instance['layout'] ?? 'card', 'card'),
|
'layout' => aksrt_home_widget_resolve_layout($new_instance['layout'] ?? 'card', 'card'),
|
||||||
'show_more' => ! empty($new_instance['show_more']) ? 1 : 0,
|
'show_more' => ! empty($new_instance['show_more']) ? 1 : 0,
|
||||||
'paginate' => in_array(sanitize_key((string) ($new_instance['paginate'] ?? 'none')), ['none', 'ajax', 'number'], true) ? sanitize_key((string) ($new_instance['paginate'] ?? 'none')) : 'none',
|
'paginate' => in_array(sanitize_key((string) ($new_instance['paginate'] ?? 'none')), ['none', 'ajax', 'number'], true) ? sanitize_key((string) ($new_instance['paginate'] ?? 'none')) : 'none',
|
||||||
];
|
]; return $this->update_common_fields($new_instance, $old_instance, $business);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function resolve_category_id_static(array $instance): int {
|
public static function resolve_category_id_static(array $instance): int {
|
||||||
|
|||||||
@@ -5,12 +5,16 @@
|
|||||||
|
|
||||||
namespace AKSRT\Widgets;
|
namespace AKSRT\Widgets;
|
||||||
|
|
||||||
|
use AKSRT\Widgets\Traits\CommonWidgetFields;
|
||||||
|
|
||||||
defined('ABSPATH') || exit;
|
defined('ABSPATH') || exit;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Homepage category recommend cards widget.
|
* Homepage category recommend cards widget.
|
||||||
*/
|
*/
|
||||||
class CategoryRecommendWidget extends \WP_Widget {
|
class CategoryRecommendWidget extends \WP_Widget {
|
||||||
|
use CommonWidgetFields;
|
||||||
|
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
parent::__construct(
|
parent::__construct(
|
||||||
@@ -194,10 +198,11 @@ class CategoryRecommendWidget extends \WP_Widget {
|
|||||||
</p>
|
</p>
|
||||||
<?php if (function_exists('aksrt_widget_render_location_help')) { aksrt_widget_render_location_help('homepage'); } ?>
|
<?php if (function_exists('aksrt_widget_render_location_help')) { aksrt_widget_render_location_help('homepage'); } ?>
|
||||||
<?php
|
<?php
|
||||||
}
|
$this->render_common_form_section($instance);
|
||||||
|
}
|
||||||
|
|
||||||
public function update($new_instance, $old_instance): array {
|
public function update($new_instance, $old_instance): array {
|
||||||
return [
|
$business = [
|
||||||
'title' => sanitize_text_field($new_instance['title'] ?? ''),
|
'title' => sanitize_text_field($new_instance['title'] ?? ''),
|
||||||
'category_ids' => aksrt_home_widget_normalize_category_ids($new_instance['category_ids'] ?? [], 4),
|
'category_ids' => aksrt_home_widget_normalize_category_ids($new_instance['category_ids'] ?? [], 4),
|
||||||
'posts_per_category' => max(1, min(8, absint($new_instance['posts_per_category'] ?? 5))),
|
'posts_per_category' => max(1, min(8, absint($new_instance['posts_per_category'] ?? 5))),
|
||||||
@@ -206,7 +211,7 @@ class CategoryRecommendWidget extends \WP_Widget {
|
|||||||
'show_description' => ! empty($new_instance['show_description']) ? 1 : 0,
|
'show_description' => ! empty($new_instance['show_description']) ? 1 : 0,
|
||||||
'show_dates' => ! empty($new_instance['show_dates']) ? 1 : 0,
|
'show_dates' => ! empty($new_instance['show_dates']) ? 1 : 0,
|
||||||
'show_more' => ! empty($new_instance['show_more']) ? 1 : 0,
|
'show_more' => ! empty($new_instance['show_more']) ? 1 : 0,
|
||||||
];
|
]; return $this->update_common_fields($new_instance, $old_instance, $business);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -5,12 +5,16 @@
|
|||||||
|
|
||||||
namespace AKSRT\Widgets;
|
namespace AKSRT\Widgets;
|
||||||
|
|
||||||
|
use AKSRT\Widgets\Traits\CommonWidgetFields;
|
||||||
|
|
||||||
defined('ABSPATH') || exit;
|
defined('ABSPATH') || exit;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Homepage category tabs widget.
|
* Homepage category tabs widget.
|
||||||
*/
|
*/
|
||||||
class CategoryTabsWidget extends \WP_Widget {
|
class CategoryTabsWidget extends \WP_Widget {
|
||||||
|
use CommonWidgetFields;
|
||||||
|
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
parent::__construct(
|
parent::__construct(
|
||||||
@@ -157,17 +161,18 @@ public function form($instance): void {
|
|||||||
</p>
|
</p>
|
||||||
<?php if (function_exists('aksrt_widget_render_location_help')) { aksrt_widget_render_location_help('hybrid'); } ?>
|
<?php if (function_exists('aksrt_widget_render_location_help')) { aksrt_widget_render_location_help('hybrid'); } ?>
|
||||||
<?php
|
<?php
|
||||||
}
|
$this->render_common_form_section($instance);
|
||||||
|
}
|
||||||
|
|
||||||
public function update($new_instance, $old_instance): array {
|
public function update($new_instance, $old_instance): array {
|
||||||
return [
|
$business = [
|
||||||
'title' => sanitize_text_field($new_instance['title'] ?? ''),
|
'title' => sanitize_text_field($new_instance['title'] ?? ''),
|
||||||
'category_ids' => aksrt_home_widget_normalize_category_ids($new_instance['category_ids'] ?? [], 6),
|
'category_ids' => aksrt_home_widget_normalize_category_ids($new_instance['category_ids'] ?? [], 6),
|
||||||
'count' => max(1, min(12, absint($new_instance['count'] ?? 6))),
|
'count' => max(1, min(12, absint($new_instance['count'] ?? 6))),
|
||||||
'columns' => max(1, min(4, absint($new_instance['columns'] ?? 3))),
|
'columns' => max(1, min(4, absint($new_instance['columns'] ?? 3))),
|
||||||
'layout' => aksrt_home_widget_resolve_layout($new_instance['layout'] ?? 'card', 'card'),
|
'layout' => aksrt_home_widget_resolve_layout($new_instance['layout'] ?? 'card', 'card'),
|
||||||
'show_more' => ! empty($new_instance['show_more']) ? 1 : 0,
|
'show_more' => ! empty($new_instance['show_more']) ? 1 : 0,
|
||||||
];
|
]; return $this->update_common_fields($new_instance, $old_instance, $business);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -7,9 +7,13 @@
|
|||||||
|
|
||||||
namespace AKSRT\Widgets;
|
namespace AKSRT\Widgets;
|
||||||
|
|
||||||
|
use AKSRT\Widgets\Traits\CommonWidgetFields;
|
||||||
|
|
||||||
defined('ABSPATH') || exit;
|
defined('ABSPATH') || exit;
|
||||||
|
|
||||||
class CustomHtmlGapWidget extends \WP_Widget {
|
class CustomHtmlGapWidget extends \WP_Widget {
|
||||||
|
use CommonWidgetFields;
|
||||||
|
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
parent::__construct('aksrt_custom_html_gap', esc_html__('AKSRT 自定义HTML/间距', 'aksrt'), [
|
parent::__construct('aksrt_custom_html_gap', esc_html__('AKSRT 自定义HTML/间距', 'aksrt'), [
|
||||||
@@ -90,7 +94,8 @@ class CustomHtmlGapWidget extends \WP_Widget {
|
|||||||
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('full_width')); ?>" value="1" <?php checked(!empty($instance['full_width'])); ?>> <?php esc_html_e('HTML 通栏', 'aksrt'); ?></label>
|
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('full_width')); ?>" value="1" <?php checked(!empty($instance['full_width'])); ?>> <?php esc_html_e('HTML 通栏', 'aksrt'); ?></label>
|
||||||
</p>
|
</p>
|
||||||
<?php
|
<?php
|
||||||
}
|
$this->render_common_form_section($instance);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param array<string,mixed> $new_instance
|
* @param array<string,mixed> $new_instance
|
||||||
@@ -98,13 +103,13 @@ class CustomHtmlGapWidget extends \WP_Widget {
|
|||||||
* @return array<string,mixed>
|
* @return array<string,mixed>
|
||||||
*/
|
*/
|
||||||
public function update($new_instance, $old_instance): array {
|
public function update($new_instance, $old_instance): array {
|
||||||
return [
|
$business = [
|
||||||
'mode' => in_array(($new_instance['mode'] ?? ''), ['html', 'gap'], true) ? $new_instance['mode'] : 'html',
|
'mode' => in_array(($new_instance['mode'] ?? ''), ['html', 'gap'], true) ? $new_instance['mode'] : 'html',
|
||||||
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
||||||
'content' => wp_kses_post((string) ($new_instance['content'] ?? '')),
|
'content' => wp_kses_post((string) ($new_instance['content'] ?? '')),
|
||||||
'gap_height' => max(0, min(500, (int) ($new_instance['gap_height'] ?? 20))),
|
'gap_height' => max(0, min(500, (int) ($new_instance['gap_height'] ?? 20))),
|
||||||
'gap_height_m' => max(0, min(500, (int) ($new_instance['gap_height_m'] ?? $new_instance['gap_height'] ?? 20))),
|
'gap_height_m' => max(0, min(500, (int) ($new_instance['gap_height_m'] ?? $new_instance['gap_height'] ?? 20))),
|
||||||
'full_width' => !empty($new_instance['full_width']) ? 1 : 0,
|
'full_width' => !empty($new_instance['full_width']) ? 1 : 0,
|
||||||
];
|
]; return $this->update_common_fields($new_instance, $old_instance, $business);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7,9 +7,13 @@
|
|||||||
|
|
||||||
namespace AKSRT\Widgets;
|
namespace AKSRT\Widgets;
|
||||||
|
|
||||||
|
use AKSRT\Widgets\Traits\CommonWidgetFields;
|
||||||
|
|
||||||
defined('ABSPATH') || exit;
|
defined('ABSPATH') || exit;
|
||||||
|
|
||||||
class FriendLinksWidget extends \WP_Widget {
|
class FriendLinksWidget extends \WP_Widget {
|
||||||
|
use CommonWidgetFields;
|
||||||
|
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
parent::__construct('aksrt_friend_links', esc_html__('AKSRT 友情链接', 'aksrt'), [
|
parent::__construct('aksrt_friend_links', esc_html__('AKSRT 友情链接', 'aksrt'), [
|
||||||
@@ -148,6 +152,20 @@ class FriendLinksWidget extends \WP_Widget {
|
|||||||
<input class="widefat" type="text" name="<?php echo esc_attr($this->get_field_name('cats')); ?>" value="<?php echo esc_attr((string) ($instance['cats'] ?? '')); ?>">
|
<input class="widefat" type="text" name="<?php echo esc_attr($this->get_field_name('cats')); ?>" value="<?php echo esc_attr((string) ($instance['cats'] ?? '')); ?>">
|
||||||
</label>
|
</label>
|
||||||
</p>
|
</p>
|
||||||
|
<p>
|
||||||
|
<label><?php esc_html_e('书签排序(书签模式)', 'aksrt'); ?>
|
||||||
|
<select name="<?php echo esc_attr($this->get_field_name('orderby')); ?>">
|
||||||
|
<option value="name" <?php selected(($instance['orderby'] ?? 'name'), 'name'); ?>><?php esc_html_e('名称', 'aksrt'); ?></option>
|
||||||
|
<option value="updated" <?php selected(($instance['orderby'] ?? ''), 'updated'); ?>><?php esc_html_e('更新时间', 'aksrt'); ?></option>
|
||||||
|
<option value="rating" <?php selected(($instance['orderby'] ?? ''), 'rating'); ?>><?php esc_html_e('评分', 'aksrt'); ?></option>
|
||||||
|
<option value="rand" <?php selected(($instance['orderby'] ?? ''), 'rand'); ?>><?php esc_html_e('随机', 'aksrt'); ?></option>
|
||||||
|
</select>
|
||||||
|
<select name="<?php echo esc_attr($this->get_field_name('order')); ?>">
|
||||||
|
<option value="ASC" <?php selected(($instance['order'] ?? 'ASC'), 'ASC'); ?>><?php esc_html_e('升序', 'aksrt'); ?></option>
|
||||||
|
<option value="DESC" <?php selected(($instance['order'] ?? ''), 'DESC'); ?>><?php esc_html_e('降序', 'aksrt'); ?></option>
|
||||||
|
</select>
|
||||||
|
</label>
|
||||||
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('blank')); ?>" value="1" <?php checked(!isset($instance['blank']) || !empty($instance['blank'])); ?>> <?php esc_html_e('新窗口', 'aksrt'); ?></label><br>
|
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('blank')); ?>" value="1" <?php checked(!isset($instance['blank']) || !empty($instance['blank'])); ?>> <?php esc_html_e('新窗口', 'aksrt'); ?></label><br>
|
||||||
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('nofollow')); ?>" value="1" <?php checked(!isset($instance['nofollow']) || !empty($instance['nofollow'])); ?>> <?php esc_html_e('nofollow', 'aksrt'); ?></label><br>
|
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('nofollow')); ?>" value="1" <?php checked(!isset($instance['nofollow']) || !empty($instance['nofollow'])); ?>> <?php esc_html_e('nofollow', 'aksrt'); ?></label><br>
|
||||||
@@ -155,7 +173,8 @@ class FriendLinksWidget extends \WP_Widget {
|
|||||||
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('show_box')); ?>" value="1" <?php checked(!isset($instance['show_box']) || !empty($instance['show_box'])); ?>> <?php esc_html_e('外框盒子', 'aksrt'); ?></label>
|
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('show_box')); ?>" value="1" <?php checked(!isset($instance['show_box']) || !empty($instance['show_box'])); ?>> <?php esc_html_e('外框盒子', 'aksrt'); ?></label>
|
||||||
</p>
|
</p>
|
||||||
<?php
|
<?php
|
||||||
}
|
$this->render_common_form_section($instance);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param array<string,mixed> $new_instance
|
* @param array<string,mixed> $new_instance
|
||||||
@@ -167,7 +186,7 @@ class FriendLinksWidget extends \WP_Widget {
|
|||||||
if (!in_array($type, ['card', 'bigcard', 'image', 'simple'], true)) {
|
if (!in_array($type, ['card', 'bigcard', 'image', 'simple'], true)) {
|
||||||
$type = 'card';
|
$type = 'card';
|
||||||
}
|
}
|
||||||
return [
|
$business = [
|
||||||
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
||||||
'source' => ($new_instance['source'] ?? '') === 'bookmarks' ? 'bookmarks' : 'settings',
|
'source' => ($new_instance['source'] ?? '') === 'bookmarks' ? 'bookmarks' : 'settings',
|
||||||
'type' => $type,
|
'type' => $type,
|
||||||
@@ -183,5 +202,6 @@ class FriendLinksWidget extends \WP_Widget {
|
|||||||
'columns' => max(1, min(4, (int) ($new_instance['columns'] ?? 2))),
|
'columns' => max(1, min(4, (int) ($new_instance['columns'] ?? 2))),
|
||||||
'show_icon' => !empty($new_instance['show_icon']) ? 1 : 0,
|
'show_icon' => !empty($new_instance['show_icon']) ? 1 : 0,
|
||||||
];
|
];
|
||||||
|
return $this->update_common_fields($new_instance, $old_instance, $business);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7,9 +7,12 @@
|
|||||||
|
|
||||||
namespace AKSRT\Widgets;
|
namespace AKSRT\Widgets;
|
||||||
|
|
||||||
|
use AKSRT\Widgets\Traits\CommonWidgetFields;
|
||||||
|
|
||||||
defined('ABSPATH') || exit;
|
defined('ABSPATH') || exit;
|
||||||
|
|
||||||
class HotPostsWidget extends \WP_Widget {
|
class HotPostsWidget extends \WP_Widget {
|
||||||
|
use CommonWidgetFields;
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
parent::__construct(
|
parent::__construct(
|
||||||
@@ -107,6 +110,7 @@ class HotPostsWidget extends \WP_Widget {
|
|||||||
$permalink = get_permalink($pid);
|
$permalink = get_permalink($pid);
|
||||||
$title = get_the_title($pid);
|
$title = get_the_title($pid);
|
||||||
$time_ago = human_time_diff(get_the_time('U'), current_time('timestamp')) . __('前', 'aksrt');
|
$time_ago = human_time_diff(get_the_time('U'), current_time('timestamp')) . __('前', 'aksrt');
|
||||||
|
$tgt = !empty($instance['target_blank']) ? ' target="_blank" rel="noopener noreferrer"' : '';
|
||||||
|
|
||||||
// Graphic hero for #1 (zibll zib_hot_posts).
|
// Graphic hero for #1 (zibll zib_hot_posts).
|
||||||
if ($index === 1 && $start === 0) {
|
if ($index === 1 && $start === 0) {
|
||||||
@@ -115,7 +119,7 @@ class HotPostsWidget extends \WP_Widget {
|
|||||||
$thumb = get_the_post_thumbnail_url($pid, 'medium');
|
$thumb = get_the_post_thumbnail_url($pid, 'medium');
|
||||||
}
|
}
|
||||||
echo '<div class="hot-posts-graphic relative ajax-item is-top1">';
|
echo '<div class="hot-posts-graphic relative ajax-item is-top1">';
|
||||||
echo '<a href="' . esc_url($permalink) . '">';
|
echo '<a href="' . esc_url($permalink) . '"' . $tgt . '>';
|
||||||
echo '<div class="graphic hover-zoom-img" style="padding-bottom:60%;">';
|
echo '<div class="graphic hover-zoom-img" style="padding-bottom:60%;">';
|
||||||
if ($thumb) {
|
if ($thumb) {
|
||||||
echo '<img class="fit-cover radius8 aksrt-lazy lazyload" data-src="' . esc_url($thumb) . '" src="' . esc_url($placeholder) . '" alt="" loading="lazy" />';
|
echo '<img class="fit-cover radius8 aksrt-lazy lazyload" data-src="' . esc_url($thumb) . '" src="' . esc_url($placeholder) . '" alt="" loading="lazy" />';
|
||||||
@@ -138,12 +142,12 @@ class HotPostsWidget extends \WP_Widget {
|
|||||||
<div class="hot-post-item flex mt15 relative hover-zoom-img ajax-item <?php echo esc_attr($rank_class); ?>">
|
<div class="hot-post-item flex mt15 relative hover-zoom-img ajax-item <?php echo esc_attr($rank_class); ?>">
|
||||||
<?php echo $top_badge; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
|
<?php echo $top_badge; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
|
||||||
<?php if ($show_thumb) : ?>
|
<?php if ($show_thumb) : ?>
|
||||||
<a class="hot-post-item__thumb graphic<?php echo $thumb ? '' : ' is-empty'; ?>" href="<?php echo esc_url($permalink); ?>">
|
<a class="hot-post-item__thumb graphic<?php echo $thumb ? '' : ' is-empty'; ?>" href="<?php echo esc_url($permalink); ?>"<?php echo $tgt; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>>
|
||||||
<?php if ($thumb) : ?><img class="fit-cover radius8 aksrt-lazy lazyload" data-src="<?php echo esc_url($thumb); ?>" src="<?php echo esc_url($placeholder); ?>" alt="" loading="lazy" /><?php endif; ?>
|
<?php if ($thumb) : ?><img class="fit-cover radius8 aksrt-lazy lazyload" data-src="<?php echo esc_url($thumb); ?>" src="<?php echo esc_url($placeholder); ?>" alt="" loading="lazy" /><?php endif; ?>
|
||||||
</a>
|
</a>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
<div class="hot-post-item__info term-title ml10 flex xx flex1 jsb">
|
<div class="hot-post-item__info term-title ml10 flex xx flex1 jsb">
|
||||||
<div class="text-ellipsis-2"><a href="<?php echo esc_url($permalink); ?>" class="hot-post-item__title"><?php echo esc_html($title); ?></a></div>
|
<div class="text-ellipsis-2"><a href="<?php echo esc_url($permalink); ?>" class="hot-post-item__title"<?php echo $tgt; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>><?php echo esc_html($title); ?></a></div>
|
||||||
<div class="px12 muted-3-color text-ellipsis flex jsb hot-post-item__meta">
|
<div class="px12 muted-3-color text-ellipsis flex jsb hot-post-item__meta">
|
||||||
<span class="hot-post-item__time"><i class="fa fa-clock-o mr3" aria-hidden="true"></i><?php echo esc_html($time_ago); ?></span>
|
<span class="hot-post-item__time"><i class="fa fa-clock-o mr3" aria-hidden="true"></i><?php echo esc_html($time_ago); ?></span>
|
||||||
<span><i class="fa <?php echo esc_attr($metric_icon); ?>" aria-hidden="true"></i> <?php echo esc_html((string) $metric_txt); ?></span>
|
<span><i class="fa <?php echo esc_attr($metric_icon); ?>" aria-hidden="true"></i> <?php echo esc_html((string) $metric_txt); ?></span>
|
||||||
@@ -173,11 +177,12 @@ class HotPostsWidget extends \WP_Widget {
|
|||||||
$total = (int) $q->found_posts;
|
$total = (int) $q->found_posts;
|
||||||
$has_more = $page < $max_pages;
|
$has_more = $page < $max_pages;
|
||||||
$base_qs = array_filter([
|
$base_qs = array_filter([
|
||||||
'count' => $count,
|
'count' => $count,
|
||||||
'order_by' => sanitize_key((string) ($instance['order_by'] ?? 'views')),
|
'order_by' => sanitize_key((string) ($instance['order_by'] ?? 'views')),
|
||||||
'days' => max(0, (int) ($instance['days'] ?? 30)),
|
'days' => max(0, (int) ($instance['days'] ?? 30)),
|
||||||
'show_thumb' => !empty($instance['show_thumb']) ? 1 : 0,
|
'show_thumb' => !empty($instance['show_thumb']) ? 1 : 0,
|
||||||
'paginate' => $paginate,
|
'target_blank'=> !empty($instance['target_blank']) ? 1 : 0,
|
||||||
|
'paginate' => $paginate,
|
||||||
], static function ($v) {
|
], static function ($v) {
|
||||||
return $v !== '' && $v !== null;
|
return $v !== '' && $v !== null;
|
||||||
});
|
});
|
||||||
@@ -204,12 +209,12 @@ class HotPostsWidget extends \WP_Widget {
|
|||||||
if ($title) {
|
if ($title) {
|
||||||
echo $args['before_title'] . esc_html($title) . $args['after_title']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
echo $args['before_title'] . esc_html($title) . $args['after_title']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
||||||
}
|
}
|
||||||
$in_affix = !empty($instance['in_affix']);
|
$affix = function_exists('aksrt_widget_affix_attrs') ? aksrt_widget_affix_attrs($instance) : ['class' => '', 'attr' => ''];
|
||||||
$instance['paginate'] = sanitize_key((string) ($instance['paginate'] ?? 'ajax'));
|
$instance['paginate'] = sanitize_key((string) ($instance['paginate'] ?? 'ajax'));
|
||||||
$payload = self::query_payload($instance, 1);
|
$payload = self::query_payload($instance, 1);
|
||||||
$rest = rest_url('aksrt/v1/widgets/hot-posts');
|
$rest = rest_url('aksrt/v1/widgets/hot-posts');
|
||||||
$wrap = 'ajaxpager' . ($in_affix ? ' is-affix' : '');
|
$wrap = 'ajaxpager' . $affix['class'];
|
||||||
echo '<div class="' . esc_attr($wrap) . '" data-aksrt-ajaxpager data-aksrt-ajax-url="' . esc_url($rest) . '"' . ($in_affix ? ' data-affix="true"' : '') . '>';
|
echo '<div class="' . esc_attr($wrap) . '" data-aksrt-ajaxpager data-aksrt-ajax-url="' . esc_url($rest) . '"' . $affix['attr'] . '>';
|
||||||
echo $payload['html']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
echo $payload['html']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
||||||
echo $payload['paginate_html']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
echo $payload['paginate_html']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
||||||
echo '<div class="post_ajax_loader" data-aksrt-ajax-loader data-aksrt-ajax-loader-hide hidden></div>';
|
echo '<div class="post_ajax_loader" data-aksrt-ajax-loader data-aksrt-ajax-loader-hide hidden></div>';
|
||||||
@@ -247,7 +252,7 @@ class HotPostsWidget extends \WP_Widget {
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('show_thumb')); ?>" value="1" <?php checked(!empty($instance['show_thumb'])); ?>> <?php esc_html_e('显示缩略图', 'aksrt'); ?></label><br>
|
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('show_thumb')); ?>" value="1" <?php checked(!empty($instance['show_thumb'])); ?>> <?php esc_html_e('显示缩略图', 'aksrt'); ?></label><br>
|
||||||
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('in_affix')); ?>" value="1" <?php checked(!empty($instance['in_affix'])); ?>> <?php esc_html_e('侧栏随动', 'aksrt'); ?></label>
|
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('target_blank')); ?>" value="1" <?php checked(!empty($instance['target_blank'])); ?>> <?php esc_html_e('新窗口打开', 'aksrt'); ?></label>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<label><?php esc_html_e('分页', 'aksrt'); ?>
|
<label><?php esc_html_e('分页', 'aksrt'); ?>
|
||||||
@@ -258,18 +263,19 @@ class HotPostsWidget extends \WP_Widget {
|
|||||||
</select>
|
</select>
|
||||||
</label>
|
</label>
|
||||||
</p>
|
</p>
|
||||||
|
<?php $this->render_common_form_section($instance); ?>
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
|
|
||||||
public function update($new_instance, $old_instance): array {
|
public function update($new_instance, $old_instance): array {
|
||||||
return [
|
return $this->update_common_fields($new_instance, $old_instance, [
|
||||||
'title' => sanitize_text_field($new_instance['title'] ?? ''),
|
'title' => sanitize_text_field($new_instance['title'] ?? ''),
|
||||||
'count' => absint($new_instance['count'] ?? 5),
|
'count' => absint($new_instance['count'] ?? 5),
|
||||||
'order_by' => in_array($new_instance['order_by'] ?? '', ['views', 'comments', 'likes', 'favorites', 'downloads'], true) ? $new_instance['order_by'] : 'views',
|
'order_by' => in_array($new_instance['order_by'] ?? '', ['views', 'comments', 'likes', 'favorites', 'downloads'], true) ? $new_instance['order_by'] : 'views',
|
||||||
'days' => absint($new_instance['days'] ?? 30),
|
'days' => absint($new_instance['days'] ?? 30),
|
||||||
'show_thumb' => !empty($new_instance['show_thumb']) ? 1 : 0,
|
'show_thumb' => !empty($new_instance['show_thumb']) ? 1 : 0,
|
||||||
'in_affix' => !empty($new_instance['in_affix']) ? 1 : 0,
|
'target_blank' => !empty($new_instance['target_blank']) ? 1 : 0,
|
||||||
'paginate' => in_array(sanitize_key((string) ($new_instance['paginate'] ?? 'ajax')), ['none', 'ajax', 'number'], true) ? sanitize_key((string) ($new_instance['paginate'] ?? 'ajax')) : 'ajax',
|
'paginate' => in_array(sanitize_key((string) ($new_instance['paginate'] ?? 'ajax')), ['none', 'ajax', 'number'], true) ? sanitize_key((string) ($new_instance['paginate'] ?? 'ajax')) : 'ajax',
|
||||||
];
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7,9 +7,13 @@
|
|||||||
|
|
||||||
namespace AKSRT\Widgets;
|
namespace AKSRT\Widgets;
|
||||||
|
|
||||||
|
use AKSRT\Widgets\Traits\CommonWidgetFields;
|
||||||
|
|
||||||
defined('ABSPATH') || exit;
|
defined('ABSPATH') || exit;
|
||||||
|
|
||||||
class IconCardsWidget extends \WP_Widget {
|
class IconCardsWidget extends \WP_Widget {
|
||||||
|
use CommonWidgetFields;
|
||||||
|
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
parent::__construct('aksrt_icon_cards', esc_html__('AKSRT 图标卡片', 'aksrt'), [
|
parent::__construct('aksrt_icon_cards', esc_html__('AKSRT 图标卡片', 'aksrt'), [
|
||||||
@@ -193,7 +197,8 @@ class IconCardsWidget extends \WP_Widget {
|
|||||||
<input class="widefat" type="url" name="<?php echo esc_attr($this->get_field_name("cards[{$i}][url]")); ?>" value="<?php echo esc_attr((string) ($card['url'] ?? '')); ?>" placeholder="<?php esc_attr_e('链接', 'aksrt'); ?>">
|
<input class="widefat" type="url" name="<?php echo esc_attr($this->get_field_name("cards[{$i}][url]")); ?>" value="<?php echo esc_attr((string) ($card['url'] ?? '')); ?>" placeholder="<?php esc_attr_e('链接', 'aksrt'); ?>">
|
||||||
</div>
|
</div>
|
||||||
<?php endforeach;
|
<?php endforeach;
|
||||||
}
|
$this->render_common_form_section($instance);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param array<string,mixed> $new_instance
|
* @param array<string,mixed> $new_instance
|
||||||
@@ -201,7 +206,7 @@ class IconCardsWidget extends \WP_Widget {
|
|||||||
* @return array<string,mixed>
|
* @return array<string,mixed>
|
||||||
*/
|
*/
|
||||||
public function update($new_instance, $old_instance): array {
|
public function update($new_instance, $old_instance): array {
|
||||||
return [
|
$business = [
|
||||||
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
||||||
'columns' => max(1, min(6, (int) ($new_instance['columns'] ?? 2))),
|
'columns' => max(1, min(6, (int) ($new_instance['columns'] ?? 2))),
|
||||||
'm_row' => max(1, min(4, (int) ($new_instance['m_row'] ?? 2))),
|
'm_row' => max(1, min(4, (int) ($new_instance['m_row'] ?? 2))),
|
||||||
@@ -210,6 +215,6 @@ class IconCardsWidget extends \WP_Widget {
|
|||||||
'icon_radius' => !empty($new_instance['icon_radius']) ? 1 : 0,
|
'icon_radius' => !empty($new_instance['icon_radius']) ? 1 : 0,
|
||||||
'obs_animation' => sanitize_key((string) ($new_instance['obs_animation'] ?? '')),
|
'obs_animation' => sanitize_key((string) ($new_instance['obs_animation'] ?? '')),
|
||||||
'cards' => $this->normalize($new_instance['cards'] ?? []),
|
'cards' => $this->normalize($new_instance['cards'] ?? []),
|
||||||
];
|
]; return $this->update_common_fields($new_instance, $old_instance, $business);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7,9 +7,12 @@
|
|||||||
|
|
||||||
namespace AKSRT\Widgets;
|
namespace AKSRT\Widgets;
|
||||||
|
|
||||||
|
use AKSRT\Widgets\Traits\CommonWidgetFields;
|
||||||
|
|
||||||
defined('ABSPATH') || exit;
|
defined('ABSPATH') || exit;
|
||||||
|
|
||||||
class NoticeWidget extends \WP_Widget {
|
class NoticeWidget extends \WP_Widget {
|
||||||
|
use CommonWidgetFields;
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
parent::__construct('aksrt_notice', esc_html__('AKSRT 滚动公告', 'aksrt'), [
|
parent::__construct('aksrt_notice', esc_html__('AKSRT 滚动公告', 'aksrt'), [
|
||||||
@@ -36,7 +39,7 @@ if (!$items) {
|
|||||||
$radius = !empty($instance['radius']);
|
$radius = !empty($instance['radius']);
|
||||||
$interval = max(2, min(15, (int) ($instance['interval'] ?? 4)));
|
$interval = max(2, min(15, (int) ($instance['interval'] ?? 4)));
|
||||||
$align = sanitize_html_class((string) ($instance['alignment'] ?? ''));
|
$align = sanitize_html_class((string) ($instance['alignment'] ?? ''));
|
||||||
$in_affix = !empty($instance['in_affix']);
|
$affix = function_exists('aksrt_widget_affix_attrs') ? aksrt_widget_affix_attrs($instance) : ['class' => '', 'attr' => ''];
|
||||||
|
|
||||||
echo $args['before_widget']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
echo $args['before_widget']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
||||||
$title = apply_filters('widget_title', (string) ($instance['title'] ?? ''), $instance, $this->id_base);
|
$title = apply_filters('widget_title', (string) ($instance['title'] ?? ''), $instance, $this->id_base);
|
||||||
@@ -51,12 +54,9 @@ if (!$items) {
|
|||||||
if ($align !== '') {
|
if ($align !== '') {
|
||||||
$wrap_cls .= ' ' . $align;
|
$wrap_cls .= ' ' . $align;
|
||||||
}
|
}
|
||||||
if ($in_affix) {
|
$wrap_cls .= $affix['class'];
|
||||||
$wrap_cls .= ' is-affix';
|
|
||||||
}
|
|
||||||
|
|
||||||
$attr = $in_affix ? ' data-affix="true"' : '';
|
echo '<div class="' . esc_attr($wrap_cls) . '"' . $affix['attr'] . '>';
|
||||||
echo '<div class="' . esc_attr($wrap_cls) . '"' . $attr . '>';
|
|
||||||
echo '<div class="aksrt-scroll-notice__icon bulletin-icon"><i class="fas fa-bullhorn" aria-hidden="true"></i></div>';
|
echo '<div class="aksrt-scroll-notice__icon bulletin-icon"><i class="fas fa-bullhorn" aria-hidden="true"></i></div>';
|
||||||
|
|
||||||
// Prefer shared vertical new-swiper (zib_notice parity) via slider.js Type C.
|
// Prefer shared vertical new-swiper (zib_notice parity) via slider.js Type C.
|
||||||
@@ -192,14 +192,14 @@ if (!$items) {
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('blank')); ?>" value="1" <?php checked(!empty($instance['blank'])); ?>> <?php esc_html_e('链接新窗口', 'aksrt'); ?></label><br>
|
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('blank')); ?>" value="1" <?php checked(!empty($instance['blank'])); ?>> <?php esc_html_e('链接新窗口', 'aksrt'); ?></label><br>
|
||||||
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('radius')); ?>" value="1" <?php checked(!empty($instance['radius'])); ?>> <?php esc_html_e('两端圆形', 'aksrt'); ?></label><br>
|
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('radius')); ?>" value="1" <?php checked(!empty($instance['radius'])); ?>> <?php esc_html_e('两端圆形', 'aksrt'); ?></label>
|
||||||
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('in_affix')); ?>" value="1" <?php checked(!empty($instance['in_affix'])); ?>> <?php esc_html_e('侧栏随动', 'aksrt'); ?></label>
|
|
||||||
</p>
|
</p>
|
||||||
|
<?php $this->render_common_form_section($instance); ?>
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
|
|
||||||
public function update($new_instance, $old_instance): array {
|
public function update($new_instance, $old_instance): array {
|
||||||
return [
|
return $this->update_common_fields($new_instance, $old_instance, [
|
||||||
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
||||||
'items' => $this->normalize_items(['items' => $new_instance['items'] ?? []]),
|
'items' => $this->normalize_items(['items' => $new_instance['items'] ?? []]),
|
||||||
'interval' => max(2, min(15, (int) ($new_instance['interval'] ?? 4))),
|
'interval' => max(2, min(15, (int) ($new_instance['interval'] ?? 4))),
|
||||||
@@ -207,7 +207,6 @@ if (!$items) {
|
|||||||
'alignment' => sanitize_html_class((string) ($new_instance['alignment'] ?? '')),
|
'alignment' => sanitize_html_class((string) ($new_instance['alignment'] ?? '')),
|
||||||
'blank' => !empty($new_instance['blank']) ? 1 : 0,
|
'blank' => !empty($new_instance['blank']) ? 1 : 0,
|
||||||
'radius' => !empty($new_instance['radius']) ? 1 : 0,
|
'radius' => !empty($new_instance['radius']) ? 1 : 0,
|
||||||
'in_affix' => !empty($new_instance['in_affix']) ? 1 : 0,
|
]);
|
||||||
];
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7,9 +7,12 @@
|
|||||||
|
|
||||||
namespace AKSRT\Widgets;
|
namespace AKSRT\Widgets;
|
||||||
|
|
||||||
|
use AKSRT\Widgets\Traits\CommonWidgetFields;
|
||||||
|
|
||||||
defined('ABSPATH') || exit;
|
defined('ABSPATH') || exit;
|
||||||
|
|
||||||
class RecentCommentsWidget extends \WP_Widget {
|
class RecentCommentsWidget extends \WP_Widget {
|
||||||
|
use CommonWidgetFields;
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
parent::__construct('aksrt_recent_comments', esc_html__('AKSRT 最新评论', 'aksrt'), [
|
parent::__construct('aksrt_recent_comments', esc_html__('AKSRT 最新评论', 'aksrt'), [
|
||||||
@@ -21,7 +24,7 @@ class RecentCommentsWidget extends \WP_Widget {
|
|||||||
* @param array<string,mixed> $instance
|
* @param array<string,mixed> $instance
|
||||||
*/
|
*/
|
||||||
public static function render_html(array $instance): string {
|
public static function render_html(array $instance): string {
|
||||||
$count = max(1, min(20, (int) ($instance['count'] ?? $instance['limit'] ?? 5)));
|
$count = max(1, min(50, (int) ($instance['count'] ?? $instance['limit'] ?? 5)));
|
||||||
$show_avatar = !isset($instance['show_avatar']) || !empty($instance['show_avatar']);
|
$show_avatar = !isset($instance['show_avatar']) || !empty($instance['show_avatar']);
|
||||||
// zibll: outpost = post__not_in (multi-ID), outer = author__not_in (multi-ID).
|
// zibll: outpost = post__not_in (multi-ID), outer = author__not_in (multi-ID).
|
||||||
// Also keep optional keyword filter via outer_keywords for legacy installs.
|
// Also keep optional keyword filter via outer_keywords for legacy installs.
|
||||||
@@ -169,12 +172,12 @@ class RecentCommentsWidget extends \WP_Widget {
|
|||||||
if ($title !== '') {
|
if ($title !== '') {
|
||||||
echo $args['before_title'] . esc_html($title) . $args['after_title']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
echo $args['before_title'] . esc_html($title) . $args['after_title']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
||||||
}
|
}
|
||||||
$in_affix = !empty($instance['in_affix']);
|
$affix = function_exists('aksrt_widget_affix_attrs') ? aksrt_widget_affix_attrs($instance) : ['class' => '', 'attr' => ''];
|
||||||
if ($in_affix) {
|
if ($affix['class'] !== '') {
|
||||||
echo '<div class="is-affix" data-affix="true">';
|
echo '<div class="is-affix"' . $affix['attr'] . '>';
|
||||||
}
|
}
|
||||||
echo self::render_html($instance); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
echo self::render_html($instance); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
||||||
if ($in_affix) {
|
if ($affix['class'] !== '') {
|
||||||
echo '</div>';
|
echo '</div>';
|
||||||
}
|
}
|
||||||
echo $args['after_widget']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
echo $args['after_widget']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
||||||
@@ -192,7 +195,7 @@ class RecentCommentsWidget extends \WP_Widget {
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<label><?php esc_html_e('数量', 'aksrt'); ?>
|
<label><?php esc_html_e('数量', 'aksrt'); ?>
|
||||||
<input class="tiny-text" type="number" min="1" max="20" name="<?php echo esc_attr($this->get_field_name('count')); ?>" value="<?php echo esc_attr((string) ((int) ($instance['count'] ?? 5))); ?>">
|
<input class="tiny-text" type="number" min="1" max="50" name="<?php echo esc_attr($this->get_field_name('count')); ?>" value="<?php echo esc_attr((string) ((int) ($instance['count'] ?? 5))); ?>">
|
||||||
</label>
|
</label>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
@@ -209,9 +212,7 @@ class RecentCommentsWidget extends \WP_Widget {
|
|||||||
</label>
|
</label>
|
||||||
<small><?php esc_html_e('填数字 ID 时按作者排除;填文字时按内容关键词排除(兼容旧配置)。', 'aksrt'); ?></small>
|
<small><?php esc_html_e('填数字 ID 时按作者排除;填文字时按内容关键词排除(兼容旧配置)。', 'aksrt'); ?></small>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<?php $this->render_common_form_section($instance); ?>
|
||||||
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('in_affix')); ?>" value="1" <?php checked(!empty($instance['in_affix'])); ?>> <?php esc_html_e('侧栏随动', 'aksrt'); ?></label>
|
|
||||||
</p>
|
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -221,12 +222,13 @@ class RecentCommentsWidget extends \WP_Widget {
|
|||||||
* @return array<string,mixed>
|
* @return array<string,mixed>
|
||||||
*/
|
*/
|
||||||
public function update($new_instance, $old_instance): array {
|
public function update($new_instance, $old_instance): array {
|
||||||
return [
|
return $this->update_common_fields($new_instance, $old_instance, [
|
||||||
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
||||||
'count' => max(1, min(20, (int) ($new_instance['count'] ?? 5))),
|
'count' => max(1, min(50, (int) ($new_instance['count'] ?? 5))),
|
||||||
'show_avatar' => !empty($new_instance['show_avatar']) ? 1 : 0,
|
'show_avatar' => !empty($new_instance['show_avatar']) ? 1 : 0,
|
||||||
'outpost' => sanitize_text_field((string) ($new_instance['outpost'] ?? '')),
|
'outpost' => sanitize_text_field((string) ($new_instance['outpost'] ?? '')),
|
||||||
'outer' => sanitize_text_field((string) ($new_instance['outer'] ?? '')),
|
'outer' => sanitize_text_field((string) ($new_instance['outer'] ?? '')),
|
||||||
];
|
'outer_keywords' => sanitize_text_field((string) ($new_instance['outer_keywords'] ?? '')),
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7,9 +7,12 @@
|
|||||||
|
|
||||||
namespace AKSRT\Widgets;
|
namespace AKSRT\Widgets;
|
||||||
|
|
||||||
|
use AKSRT\Widgets\Traits\CommonWidgetFields;
|
||||||
|
|
||||||
defined('ABSPATH') || exit;
|
defined('ABSPATH') || exit;
|
||||||
|
|
||||||
class SearchWidget extends \WP_Widget {
|
class SearchWidget extends \WP_Widget {
|
||||||
|
use CommonWidgetFields;
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
parent::__construct('aksrt_search', esc_html__('AKSRT 搜索', 'aksrt'), [
|
parent::__construct('aksrt_search', esc_html__('AKSRT 搜索', 'aksrt'), [
|
||||||
@@ -32,10 +35,20 @@ class SearchWidget extends \WP_Widget {
|
|||||||
$show_kw = !empty($instance['show_keywords']);
|
$show_kw = !empty($instance['show_keywords']);
|
||||||
$show_history = !empty($instance['show_history']);
|
$show_history = !empty($instance['show_history']);
|
||||||
$show_types = !empty($instance['show_type']) || !isset($instance['show_type']);
|
$show_types = !empty($instance['show_type']) || !isset($instance['show_type']);
|
||||||
|
// NOTE: SearchWidget owns a business `show_type` checkbox (search-type
|
||||||
|
// toggle) that shares the key name with the common `show_type` (device
|
||||||
|
// visibility). To avoid an admin-form collision, this widget does NOT
|
||||||
|
// render the shared common-form section (render_common_form_section is
|
||||||
|
// intentionally not called). The shared affix helper is still wired in
|
||||||
|
// widget() via aksrt_widget_affix_attrs(), and update_common_fields()
|
||||||
|
// persists common keys — but note the shared show_type cannot be set
|
||||||
|
// here, so display_callback treats it as 'all' (always visible).
|
||||||
$show_cat = !empty($instance['show_input_cat']);
|
$show_cat = !empty($instance['show_input_cat']);
|
||||||
$kw_title = sanitize_text_field((string) ($instance['keywords_title'] ?? __('热门搜索', 'aksrt')));
|
$kw_title = sanitize_text_field((string) ($instance['keywords_title'] ?? __('热门搜索', 'aksrt')));
|
||||||
$more_but = sanitize_text_field((string) ($instance['more_but'] ?? ''));
|
$more_but = sanitize_text_field((string) ($instance['more_but'] ?? ''));
|
||||||
$more_url = esc_url_raw(trim((string) ($instance['more_but_url'] ?? '')));
|
$more_url = esc_url_raw(trim((string) ($instance['more_but_url'] ?? '')));
|
||||||
|
// Affix helper (shared layer sidebar_affix).
|
||||||
|
$affix = function_exists('aksrt_widget_affix_attrs') ? aksrt_widget_affix_attrs($instance) : ['class' => '', 'attr' => ''];
|
||||||
|
|
||||||
$state = function_exists('aksrt_get_search_form_state')
|
$state = function_exists('aksrt_get_search_form_state')
|
||||||
? aksrt_get_search_form_state()
|
? aksrt_get_search_form_state()
|
||||||
@@ -109,7 +122,7 @@ class SearchWidget extends \WP_Widget {
|
|||||||
|
|
||||||
$uid = 'aksrt-sw-' . esc_attr($this->id);
|
$uid = 'aksrt-sw-' . esc_attr($this->id);
|
||||||
?>
|
?>
|
||||||
<div class="widget-search-box aksrt-search-widget search-input<?php echo !empty($instance['in_affix']) ? ' is-affix' : ''; ?>" id="<?php echo $uid; ?>"<?php echo !empty($instance['in_affix']) ? ' data-affix="true"' : ''; ?>>
|
<div class="widget-search-box aksrt-search-widget search-input<?php echo $affix['class']; ?>" id="<?php echo $uid; ?>"<?php echo $affix['attr']; ?>>
|
||||||
<form
|
<form
|
||||||
role="search"
|
role="search"
|
||||||
method="get"
|
method="get"
|
||||||
@@ -239,8 +252,7 @@ class SearchWidget extends \WP_Widget {
|
|||||||
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('show_type')); ?>" value="1" <?php checked(!empty($instance['show_type']) || !isset($instance['show_type'])); ?>> <?php esc_html_e('显示类型切换(≥2 种时)', 'aksrt'); ?></label><br>
|
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('show_type')); ?>" value="1" <?php checked(!empty($instance['show_type']) || !isset($instance['show_type'])); ?>> <?php esc_html_e('显示类型切换(≥2 种时)', 'aksrt'); ?></label><br>
|
||||||
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('show_input_cat')); ?>" value="1" <?php checked(!empty($instance['show_input_cat'])); ?>> <?php esc_html_e('显示分类筛选', 'aksrt'); ?></label><br>
|
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('show_input_cat')); ?>" value="1" <?php checked(!empty($instance['show_input_cat'])); ?>> <?php esc_html_e('显示分类筛选', 'aksrt'); ?></label><br>
|
||||||
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('show_keywords')); ?>" value="1" <?php checked(!empty($instance['show_keywords'])); ?>> <?php esc_html_e('显示热门关键词', 'aksrt'); ?></label><br>
|
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('show_keywords')); ?>" value="1" <?php checked(!empty($instance['show_keywords'])); ?>> <?php esc_html_e('显示热门关键词', 'aksrt'); ?></label><br>
|
||||||
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('show_history')); ?>" value="1" <?php checked(!empty($instance['show_history'])); ?>> <?php esc_html_e('显示搜索历史', 'aksrt'); ?></label><br>
|
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('show_history')); ?>" value="1" <?php checked(!empty($instance['show_history'])); ?>> <?php esc_html_e('显示搜索历史', 'aksrt'); ?></label>
|
||||||
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('in_affix')); ?>" value="1" <?php checked(!empty($instance['in_affix'])); ?>> <?php esc_html_e('侧栏随动', 'aksrt'); ?></label>
|
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<label><?php esc_html_e('默认类型', 'aksrt'); ?>
|
<label><?php esc_html_e('默认类型', 'aksrt'); ?>
|
||||||
@@ -281,11 +293,18 @@ class SearchWidget extends \WP_Widget {
|
|||||||
<input class="widefat" type="text" name="<?php echo esc_attr($this->get_field_name('more_but_url')); ?>" value="<?php echo esc_attr((string) ($instance['more_but_url'] ?? '')); ?>">
|
<input class="widefat" type="text" name="<?php echo esc_attr($this->get_field_name('more_but_url')); ?>" value="<?php echo esc_attr((string) ($instance['more_but_url'] ?? '')); ?>">
|
||||||
</label>
|
</label>
|
||||||
</p>
|
</p>
|
||||||
|
<?php // Common-form section intentionally skipped: SearchWidget owns a
|
||||||
|
// business `show_type` checkbox (search-type toggle) that collides
|
||||||
|
// with the shared common `show_type` (device visibility). The
|
||||||
|
// shared affix/display/animation/layout fields are therefore not
|
||||||
|
// rendered here; update_common_fields() below still persists any
|
||||||
|
// common keys submitted through other surfaces, and the affix
|
||||||
|
// helper is wired in widget() via aksrt_widget_affix_attrs(). ?>
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
|
|
||||||
public function update($new_instance, $old_instance): array {
|
public function update($new_instance, $old_instance): array {
|
||||||
return [
|
return $this->update_common_fields($new_instance, $old_instance, [
|
||||||
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
||||||
'placeholder' => sanitize_text_field((string) ($new_instance['placeholder'] ?? '')),
|
'placeholder' => sanitize_text_field((string) ($new_instance['placeholder'] ?? '')),
|
||||||
'show_keywords' => !empty($new_instance['show_keywords']) ? 1 : 0,
|
'show_keywords' => !empty($new_instance['show_keywords']) ? 1 : 0,
|
||||||
@@ -299,7 +318,6 @@ class SearchWidget extends \WP_Widget {
|
|||||||
'keywords' => sanitize_textarea_field((string) ($new_instance['keywords'] ?? '')),
|
'keywords' => sanitize_textarea_field((string) ($new_instance['keywords'] ?? '')),
|
||||||
'more_but' => sanitize_text_field((string) ($new_instance['more_but'] ?? '')),
|
'more_but' => sanitize_text_field((string) ($new_instance['more_but'] ?? '')),
|
||||||
'more_but_url' => esc_url_raw(trim((string) ($new_instance['more_but_url'] ?? ''))),
|
'more_but_url' => esc_url_raw(trim((string) ($new_instance['more_but_url'] ?? ''))),
|
||||||
'in_affix' => !empty($new_instance['in_affix']) ? 1 : 0,
|
]);
|
||||||
];
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7,9 +7,13 @@
|
|||||||
|
|
||||||
namespace AKSRT\Widgets;
|
namespace AKSRT\Widgets;
|
||||||
|
|
||||||
|
use AKSRT\Widgets\Traits\CommonWidgetFields;
|
||||||
|
|
||||||
defined('ABSPATH') || exit;
|
defined('ABSPATH') || exit;
|
||||||
|
|
||||||
class TabPostsWidget extends \WP_Widget {
|
class TabPostsWidget extends \WP_Widget {
|
||||||
|
use CommonWidgetFields;
|
||||||
|
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
parent::__construct(
|
parent::__construct(
|
||||||
@@ -106,6 +110,7 @@ class TabPostsWidget extends \WP_Widget {
|
|||||||
return [
|
return [
|
||||||
'count' => max(1, min(30, $count)),
|
'count' => max(1, min(30, $count)),
|
||||||
'orderby' => sanitize_key((string) ($tab['orderby'] ?? 'date')),
|
'orderby' => sanitize_key((string) ($tab['orderby'] ?? 'date')),
|
||||||
|
'order' => strtoupper(sanitize_key((string) ($tab['order'] ?? 'desc'))) === 'ASC' ? 'ASC' : 'DESC',
|
||||||
'cat' => absint($tab['category_id'] ?? 0),
|
'cat' => absint($tab['category_id'] ?? 0),
|
||||||
'topics' => sanitize_text_field((string) ($tab['topics'] ?? '')),
|
'topics' => sanitize_text_field((string) ($tab['topics'] ?? '')),
|
||||||
'limit_day' => max(0, (int) ($tab['limit_day'] ?? 0)),
|
'limit_day' => max(0, (int) ($tab['limit_day'] ?? 0)),
|
||||||
@@ -348,7 +353,8 @@ class TabPostsWidget extends \WP_Widget {
|
|||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<?php endforeach;
|
<?php endforeach;
|
||||||
}
|
$this->render_common_form_section($instance);
|
||||||
|
}
|
||||||
|
|
||||||
public function update($new_instance, $old_instance): array {
|
public function update($new_instance, $old_instance): array {
|
||||||
$style = sanitize_key((string) ($new_instance['style'] ?? 'mini'));
|
$style = sanitize_key((string) ($new_instance['style'] ?? 'mini'));
|
||||||
@@ -380,6 +386,7 @@ class TabPostsWidget extends \WP_Widget {
|
|||||||
'title' => sanitize_text_field((string) ($tab['title'] ?? '')),
|
'title' => sanitize_text_field((string) ($tab['title'] ?? '')),
|
||||||
'category_id' => absint($tab['category_id'] ?? 0),
|
'category_id' => absint($tab['category_id'] ?? 0),
|
||||||
'orderby' => $orderby,
|
'orderby' => $orderby,
|
||||||
|
'order' => strtoupper(sanitize_key((string) ($tab['order'] ?? 'desc'))) === 'ASC' ? 'ASC' : 'DESC',
|
||||||
'count' => max(0, min(20, (int) ($tab['count'] ?? 0))),
|
'count' => max(0, min(20, (int) ($tab['count'] ?? 0))),
|
||||||
'topics' => sanitize_text_field((string) ($tab['topics'] ?? '')),
|
'topics' => sanitize_text_field((string) ($tab['topics'] ?? '')),
|
||||||
'limit_day' => max(0, (int) ($tab['limit_day'] ?? 0)),
|
'limit_day' => max(0, (int) ($tab['limit_day'] ?? 0)),
|
||||||
@@ -389,6 +396,6 @@ class TabPostsWidget extends \WP_Widget {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
$result['tabs'] = !empty($tabs) ? $tabs : 'latest,comments,random';
|
$result['tabs'] = !empty($tabs) ? $tabs : 'latest,comments,random';
|
||||||
return $result;
|
return $this->update_common_fields($new_instance, $old_instance, $result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7,9 +7,12 @@
|
|||||||
|
|
||||||
namespace AKSRT\Widgets;
|
namespace AKSRT\Widgets;
|
||||||
|
|
||||||
|
use AKSRT\Widgets\Traits\CommonWidgetFields;
|
||||||
|
|
||||||
defined('ABSPATH') || exit;
|
defined('ABSPATH') || exit;
|
||||||
|
|
||||||
class TagCloudWidget extends \WP_Widget {
|
class TagCloudWidget extends \WP_Widget {
|
||||||
|
use CommonWidgetFields;
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
parent::__construct(
|
parent::__construct(
|
||||||
@@ -27,20 +30,24 @@ class TagCloudWidget extends \WP_Widget {
|
|||||||
if (!taxonomy_exists($taxonomy)) {
|
if (!taxonomy_exists($taxonomy)) {
|
||||||
$taxonomy = 'post_tag';
|
$taxonomy = 'post_tag';
|
||||||
}
|
}
|
||||||
$number = max(1, min(80, (int) ($instance['count'] ?? $instance['number'] ?? 15)));
|
$number = max(1, min(100, (int) ($instance['count'] ?? $instance['number'] ?? 20)));
|
||||||
$orderby = sanitize_key((string) ($instance['orderby'] ?? 'count'));
|
$orderby = sanitize_key((string) ($instance['orderby'] ?? 'name'));
|
||||||
if (!in_array($orderby, ['count', 'name', 'id'], true)) {
|
// Zibll widget_ui_tag_cloud: name / count / term_id(创建时间).
|
||||||
$orderby = 'count';
|
if (!in_array($orderby, ['count', 'name', 'term_id', 'id'], true)) {
|
||||||
|
$orderby = 'name';
|
||||||
}
|
}
|
||||||
|
// Zibll `order` ASC/DESC (default ASC).
|
||||||
|
$order = strtoupper((string) ($instance['order'] ?? 'ASC')) === 'DESC' ? 'DESC' : 'ASC';
|
||||||
$show_count = !empty($instance['show_count']);
|
$show_count = !empty($instance['show_count']);
|
||||||
$blank = !empty($instance['blank']);
|
$blank = !empty($instance['blank']);
|
||||||
$color = sanitize_html_class((string) ($instance['color'] ?? 'rand'));
|
$color = sanitize_html_class((string) ($instance['color'] ?? 'rand'));
|
||||||
$fixed_width = !empty($instance['fixed_width']);
|
$fixed_width = !empty($instance['fixed_width']);
|
||||||
|
|
||||||
|
$wp_orderby = $orderby === 'id' ? 'term_id' : $orderby;
|
||||||
$tags = get_terms([
|
$tags = get_terms([
|
||||||
'taxonomy' => $taxonomy,
|
'taxonomy' => $taxonomy,
|
||||||
'orderby' => $orderby,
|
'orderby' => $wp_orderby,
|
||||||
'order' => $orderby === 'name' ? 'ASC' : 'DESC',
|
'order' => $order,
|
||||||
'number' => $number,
|
'number' => $number,
|
||||||
'hide_empty' => !empty($instance['hide_empty']),
|
'hide_empty' => !empty($instance['hide_empty']),
|
||||||
]);
|
]);
|
||||||
@@ -101,12 +108,12 @@ class TagCloudWidget extends \WP_Widget {
|
|||||||
if ($title !== '') {
|
if ($title !== '') {
|
||||||
echo $args['before_title'] . esc_html($title) . $args['after_title']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
echo $args['before_title'] . esc_html($title) . $args['after_title']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
||||||
}
|
}
|
||||||
$in_affix = !empty($instance['in_affix']);
|
$affix = function_exists('aksrt_widget_affix_attrs') ? aksrt_widget_affix_attrs($instance) : ['class' => '', 'attr' => ''];
|
||||||
if ($in_affix) {
|
if ($affix['class'] !== '') {
|
||||||
echo '<div class="is-affix" data-affix="true">';
|
echo '<div class="is-affix"' . $affix['attr'] . '>';
|
||||||
}
|
}
|
||||||
echo self::render_html($instance); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
echo self::render_html($instance); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
||||||
if ($in_affix) {
|
if ($affix['class'] !== '') {
|
||||||
echo '</div>';
|
echo '</div>';
|
||||||
}
|
}
|
||||||
echo $args['after_widget']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
echo $args['after_widget']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
||||||
@@ -131,28 +138,38 @@ class TagCloudWidget extends \WP_Widget {
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<label><?php esc_html_e('标签数量:', 'aksrt'); ?>
|
<label><?php esc_html_e('标签数量:', 'aksrt'); ?>
|
||||||
<input class="tiny-text" type="number" min="1" max="80" name="<?php echo esc_attr($this->get_field_name('count')); ?>" value="<?php echo esc_attr((string) ((int) ($instance['count'] ?? 15))); ?>">
|
<input class="tiny-text" type="number" min="1" max="100" name="<?php echo esc_attr($this->get_field_name('count')); ?>" value="<?php echo esc_attr((string) ((int) ($instance['count'] ?? 20))); ?>">
|
||||||
</label>
|
</label>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<label><?php esc_html_e('排序', 'aksrt'); ?>
|
<label><?php esc_html_e('排序', 'aksrt'); ?>
|
||||||
<select name="<?php echo esc_attr($this->get_field_name('orderby')); ?>">
|
<select name="<?php echo esc_attr($this->get_field_name('orderby')); ?>">
|
||||||
<option value="count" <?php selected(($instance['orderby'] ?? 'count'), 'count'); ?>><?php esc_html_e('数量', 'aksrt'); ?></option>
|
<option value="name" <?php selected(($instance['orderby'] ?? 'name'), 'name'); ?>><?php esc_html_e('名称', 'aksrt'); ?></option>
|
||||||
<option value="name" <?php selected(($instance['orderby'] ?? ''), 'name'); ?>><?php esc_html_e('名称', 'aksrt'); ?></option>
|
<option value="count" <?php selected(($instance['orderby'] ?? ''), 'count'); ?>><?php esc_html_e('文章数量', 'aksrt'); ?></option>
|
||||||
<option value="id" <?php selected(($instance['orderby'] ?? ''), 'id'); ?>><?php esc_html_e('ID', 'aksrt'); ?></option>
|
<option value="term_id" <?php selected(($instance['orderby'] ?? ''), 'term_id'); ?>><?php esc_html_e('创建时间', 'aksrt'); ?></option>
|
||||||
|
</select>
|
||||||
|
<select name="<?php echo esc_attr($this->get_field_name('order')); ?>">
|
||||||
|
<option value="ASC" <?php selected(($instance['order'] ?? 'ASC'), 'ASC'); ?>><?php esc_html_e('升序', 'aksrt'); ?></option>
|
||||||
|
<option value="DESC" <?php selected(($instance['order'] ?? ''), 'DESC'); ?>><?php esc_html_e('降序', 'aksrt'); ?></option>
|
||||||
</select>
|
</select>
|
||||||
</label>
|
</label>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<label><?php esc_html_e('颜色', 'aksrt'); ?>
|
<label><?php esc_html_e('颜色', 'aksrt'); ?>
|
||||||
<select name="<?php echo esc_attr($this->get_field_name('color')); ?>">
|
<select name="<?php echo esc_attr($this->get_field_name('color')); ?>">
|
||||||
<option value="rand" <?php selected(($instance['color'] ?? 'rand'), 'rand'); ?>><?php esc_html_e('随机', 'aksrt'); ?></option>
|
<option value="rand" <?php selected(($instance['color'] ?? 'rand'), 'rand'); ?>><?php esc_html_e('随机颜色', 'aksrt'); ?></option>
|
||||||
<option value="c-blue" <?php selected(($instance['color'] ?? ''), 'c-blue'); ?>><?php esc_html_e('蓝', 'aksrt'); ?></option>
|
<option value="c-hui" <?php selected(($instance['color'] ?? ''), 'c-hui'); ?>><?php esc_html_e('灰色', 'aksrt'); ?></option>
|
||||||
<option value="c-green" <?php selected(($instance['color'] ?? ''), 'c-green'); ?>><?php esc_html_e('绿', 'aksrt'); ?></option>
|
<option value="c-blue" <?php selected(($instance['color'] ?? ''), 'c-blue'); ?>><?php esc_html_e('蓝色', 'aksrt'); ?></option>
|
||||||
<option value="c-yellow" <?php selected(($instance['color'] ?? ''), 'c-yellow'); ?>><?php esc_html_e('黄', 'aksrt'); ?></option>
|
<option value="c-blue-2" <?php selected(($instance['color'] ?? ''), 'c-blue-2'); ?>><?php esc_html_e('深蓝色', 'aksrt'); ?></option>
|
||||||
<option value="c-purple" <?php selected(($instance['color'] ?? ''), 'c-purple'); ?>><?php esc_html_e('紫', 'aksrt'); ?></option>
|
<option value="c-cyan" <?php selected(($instance['color'] ?? ''), 'c-cyan'); ?>><?php esc_html_e('青色', 'aksrt'); ?></option>
|
||||||
<option value="c-red" <?php selected(($instance['color'] ?? ''), 'c-red'); ?>><?php esc_html_e('红', 'aksrt'); ?></option>
|
<option value="c-yellow" <?php selected(($instance['color'] ?? ''), 'c-yellow'); ?>><?php esc_html_e('黄色', 'aksrt'); ?></option>
|
||||||
<option value="" <?php selected(($instance['color'] ?? ''), ''); ?>><?php esc_html_e('默认', 'aksrt'); ?></option>
|
<option value="c-yellow-2" <?php selected(($instance['color'] ?? ''), 'c-yellow-2'); ?>><?php esc_html_e('橙黄色', 'aksrt'); ?></option>
|
||||||
|
<option value="c-green" <?php selected(($instance['color'] ?? ''), 'c-green'); ?>><?php esc_html_e('绿色', 'aksrt'); ?></option>
|
||||||
|
<option value="c-green-2" <?php selected(($instance['color'] ?? ''), 'c-green-2'); ?>><?php esc_html_e('墨绿色', 'aksrt'); ?></option>
|
||||||
|
<option value="c-purple" <?php selected(($instance['color'] ?? ''), 'c-purple'); ?>><?php esc_html_e('紫色', 'aksrt'); ?></option>
|
||||||
|
<option value="c-purple-2" <?php selected(($instance['color'] ?? ''), 'c-purple-2'); ?>><?php esc_html_e('深紫色', 'aksrt'); ?></option>
|
||||||
|
<option value="c-red" <?php selected(($instance['color'] ?? ''), 'c-red'); ?>><?php esc_html_e('粉红色', 'aksrt'); ?></option>
|
||||||
|
<option value="c-red-2" <?php selected(($instance['color'] ?? ''), 'c-red-2'); ?>><?php esc_html_e('红色', 'aksrt'); ?></option>
|
||||||
</select>
|
</select>
|
||||||
</label>
|
</label>
|
||||||
</p>
|
</p>
|
||||||
@@ -161,24 +178,25 @@ class TagCloudWidget extends \WP_Widget {
|
|||||||
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('blank')); ?>" value="1" <?php checked(!empty($instance['blank'])); ?>> <?php esc_html_e('新窗口', 'aksrt'); ?></label><br>
|
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('blank')); ?>" value="1" <?php checked(!empty($instance['blank'])); ?>> <?php esc_html_e('新窗口', 'aksrt'); ?></label><br>
|
||||||
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('fixed_width')); ?>" value="1" <?php checked(!empty($instance['fixed_width'])); ?>> <?php esc_html_e('固定宽度', 'aksrt'); ?></label><br>
|
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('fixed_width')); ?>" value="1" <?php checked(!empty($instance['fixed_width'])); ?>> <?php esc_html_e('固定宽度', 'aksrt'); ?></label><br>
|
||||||
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('hide_empty')); ?>" value="1" <?php checked(!empty($instance['hide_empty'])); ?>> <?php esc_html_e('隐藏空标签', 'aksrt'); ?></label><br>
|
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('hide_empty')); ?>" value="1" <?php checked(!empty($instance['hide_empty'])); ?>> <?php esc_html_e('隐藏空标签', 'aksrt'); ?></label><br>
|
||||||
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('scale')); ?>" value="1" <?php checked(!empty($instance['scale'])); ?>> <?php esc_html_e('按数量缩放字号', 'aksrt'); ?></label><br>
|
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('scale')); ?>" value="1" <?php checked(!empty($instance['scale'])); ?>> <?php esc_html_e('按数量缩放字号', 'aksrt'); ?></label>
|
||||||
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('in_affix')); ?>" value="1" <?php checked(!empty($instance['in_affix'])); ?>> <?php esc_html_e('侧栏随动', 'aksrt'); ?></label>
|
|
||||||
</p>
|
</p>
|
||||||
|
<?php $this->render_common_form_section($instance); ?>
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
|
|
||||||
public function update($new_instance, $old_instance): array {
|
public function update($new_instance, $old_instance): array {
|
||||||
return [
|
return $this->update_common_fields($new_instance, $old_instance, [
|
||||||
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
||||||
'taxonomy' => sanitize_key((string) ($new_instance['taxonomy'] ?? 'post_tag')),
|
'taxonomy' => sanitize_key((string) ($new_instance['taxonomy'] ?? 'post_tag')),
|
||||||
'count' => max(1, min(80, (int) ($new_instance['count'] ?? 15))),
|
'count' => max(1, min(100, (int) ($new_instance['count'] ?? 20))),
|
||||||
'orderby' => in_array(($new_instance['orderby'] ?? ''), ['count', 'name', 'id'], true) ? $new_instance['orderby'] : 'count',
|
'orderby' => in_array(($new_instance['orderby'] ?? ''), ['count', 'name', 'term_id', 'id'], true) ? $new_instance['orderby'] : 'name',
|
||||||
|
'order' => strtoupper((string) ($new_instance['order'] ?? 'ASC')) === 'DESC' ? 'DESC' : 'ASC',
|
||||||
'color' => sanitize_html_class((string) ($new_instance['color'] ?? 'rand')),
|
'color' => sanitize_html_class((string) ($new_instance['color'] ?? 'rand')),
|
||||||
'show_count' => !empty($new_instance['show_count']) ? 1 : 0,
|
'show_count' => !empty($new_instance['show_count']) ? 1 : 0,
|
||||||
'blank' => !empty($new_instance['blank']) ? 1 : 0,
|
'blank' => !empty($new_instance['blank']) ? 1 : 0,
|
||||||
'fixed_width' => !empty($new_instance['fixed_width']) ? 1 : 0,
|
'fixed_width' => !empty($new_instance['fixed_width']) ? 1 : 0,
|
||||||
'hide_empty' => !empty($new_instance['hide_empty']) ? 1 : 0,
|
'hide_empty' => !empty($new_instance['hide_empty']) ? 1 : 0,
|
||||||
'scale' => !empty($new_instance['scale']) ? 1 : 0,
|
'scale' => !empty($new_instance['scale']) ? 1 : 0,
|
||||||
];
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,73 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* CommonWidgetFields trait — single seat-belt for shared widget form/update.
|
||||||
|
*
|
||||||
|
* Every AKSRT widget `use`s this trait so the Zibll common-field family
|
||||||
|
* (title block, display rules, affix, animation, layout bg) is declared and
|
||||||
|
* persisted in exactly one place: inc/modules/widget-common.php.
|
||||||
|
*
|
||||||
|
* Widgets keep only their business fields; the trait wires the shared section
|
||||||
|
* into form() and folds the shared keys into update().
|
||||||
|
*
|
||||||
|
* @package AKSRT\Widgets\Traits
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace AKSRT\Widgets\Traits;
|
||||||
|
|
||||||
|
defined('ABSPATH') || exit;
|
||||||
|
|
||||||
|
trait CommonWidgetFields {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether this widget should render the shared common-form section.
|
||||||
|
*
|
||||||
|
* Override and return false for pure-display widgets with no admin form.
|
||||||
|
* Default: true (every widget gets the shared block).
|
||||||
|
*
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
protected function use_common_form(): bool {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Render the shared common-form section at the end of a widget's form().
|
||||||
|
*
|
||||||
|
* Call from form(): render business fields, then `$this->render_common_form_section($instance);`.
|
||||||
|
*
|
||||||
|
* @param array<string,mixed> $instance Widget instance.
|
||||||
|
*/
|
||||||
|
protected function render_common_form_section(array $instance): void {
|
||||||
|
if (!$this->use_common_form()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (function_exists('aksrt_widget_render_common_form')) {
|
||||||
|
aksrt_widget_render_common_form($instance);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Merge shared common fields into a widget's update() result.
|
||||||
|
*
|
||||||
|
* Usage in update():
|
||||||
|
* return $this->update_common_fields($new_instance, $old_instance, [
|
||||||
|
* 'title' => sanitize_text_field(...),
|
||||||
|
* ...business fields...
|
||||||
|
* ]);
|
||||||
|
*
|
||||||
|
* @param array<string,mixed> $new_instance New submitted instance.
|
||||||
|
* @param array<string,mixed> $old_instance Previous instance.
|
||||||
|
* @param array<string,mixed> $business Sanitized business fields to keep.
|
||||||
|
* @return array<string,mixed>
|
||||||
|
*/
|
||||||
|
protected function update_common_fields(array $new_instance, array $old_instance, array $business = []): array {
|
||||||
|
if (!$this->use_common_form()) {
|
||||||
|
return $business;
|
||||||
|
}
|
||||||
|
if (function_exists('aksrt_widget_update_common')) {
|
||||||
|
$common = aksrt_widget_update_common($new_instance, $old_instance);
|
||||||
|
return array_merge($business, $common);
|
||||||
|
}
|
||||||
|
return $business;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -7,9 +7,13 @@
|
|||||||
|
|
||||||
namespace AKSRT\Widgets;
|
namespace AKSRT\Widgets;
|
||||||
|
|
||||||
|
use AKSRT\Widgets\Traits\CommonWidgetFields;
|
||||||
|
|
||||||
defined('ABSPATH') || exit;
|
defined('ABSPATH') || exit;
|
||||||
|
|
||||||
class WidgetAnnouncement extends \WP_Widget {
|
class WidgetAnnouncement extends \WP_Widget {
|
||||||
|
use CommonWidgetFields;
|
||||||
|
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
parent::__construct(
|
parent::__construct(
|
||||||
@@ -148,7 +152,8 @@ class WidgetAnnouncement extends \WP_Widget {
|
|||||||
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('blank')); ?>" value="1" <?php checked(!empty($instance['blank'])); ?>> <?php esc_html_e('链接新窗口', 'aksrt'); ?></label>
|
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('blank')); ?>" value="1" <?php checked(!empty($instance['blank'])); ?>> <?php esc_html_e('链接新窗口', 'aksrt'); ?></label>
|
||||||
</p>
|
</p>
|
||||||
<?php
|
<?php
|
||||||
}
|
$this->render_common_form_section($instance);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param array<string,mixed> $new_instance
|
* @param array<string,mixed> $new_instance
|
||||||
@@ -160,7 +165,7 @@ class WidgetAnnouncement extends \WP_Widget {
|
|||||||
if (!in_array($mode, ['swiper', 'marquee'], true)) {
|
if (!in_array($mode, ['swiper', 'marquee'], true)) {
|
||||||
$mode = 'swiper';
|
$mode = 'swiper';
|
||||||
}
|
}
|
||||||
return [
|
$business = [
|
||||||
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
||||||
'items' => sanitize_textarea_field((string) ($new_instance['items'] ?? '')),
|
'items' => sanitize_textarea_field((string) ($new_instance['items'] ?? '')),
|
||||||
'icon' => sanitize_text_field((string) ($new_instance['icon'] ?? 'fas fa-bullhorn')),
|
'icon' => sanitize_text_field((string) ($new_instance['icon'] ?? 'fas fa-bullhorn')),
|
||||||
@@ -168,6 +173,6 @@ class WidgetAnnouncement extends \WP_Widget {
|
|||||||
'mode' => $mode,
|
'mode' => $mode,
|
||||||
'interval' => max(2, min(15, (int) ($new_instance['interval'] ?? 4))),
|
'interval' => max(2, min(15, (int) ($new_instance['interval'] ?? 4))),
|
||||||
'blank' => !empty($new_instance['blank']) ? 1 : 0,
|
'blank' => !empty($new_instance['blank']) ? 1 : 0,
|
||||||
];
|
]; return $this->update_common_fields($new_instance, $old_instance, $business);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7,9 +7,12 @@
|
|||||||
|
|
||||||
namespace AKSRT\Widgets;
|
namespace AKSRT\Widgets;
|
||||||
|
|
||||||
|
use AKSRT\Widgets\Traits\CommonWidgetFields;
|
||||||
|
|
||||||
defined('ABSPATH') || exit;
|
defined('ABSPATH') || exit;
|
||||||
|
|
||||||
class WidgetAuthorCard extends \WP_Widget {
|
class WidgetAuthorCard extends \WP_Widget {
|
||||||
|
use CommonWidgetFields;
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
parent::__construct(
|
parent::__construct(
|
||||||
@@ -55,6 +58,13 @@ class WidgetAuthorCard extends \WP_Widget {
|
|||||||
}
|
}
|
||||||
$limit = max(0, min(12, (int) ($instance['limit'] ?? 6)));
|
$limit = max(0, min(12, (int) ($instance['limit'] ?? 6)));
|
||||||
$orderby = sanitize_key((string) ($instance['orderby'] ?? 'date'));
|
$orderby = sanitize_key((string) ($instance['orderby'] ?? 'date'));
|
||||||
|
// Zibll button palettes / button_2 type (shown only when viewer is the author).
|
||||||
|
$show_button = !isset($instance['show_button']) || !empty($instance['show_button']);
|
||||||
|
$btn1_text = (string) ($instance['button_1_text'] ?? __('发布文章', 'aksrt'));
|
||||||
|
$btn2_text = (string) ($instance['button_2_text'] ?? __('用户中心', 'aksrt'));
|
||||||
|
$btn1_class = WidgetUserCard::sanitize_palette((string) ($instance['button_1_class'] ?? 'jb-pink'), 'jb-pink');
|
||||||
|
$btn2_class = WidgetUserCard::sanitize_palette((string) ($instance['button_2_class'] ?? 'jb-blue'), 'jb-blue');
|
||||||
|
$btn2_type = (string) ($instance['button_2'] ?? 'center');
|
||||||
|
|
||||||
$avatar = function_exists('aksrt_get_avatar_url')
|
$avatar = function_exists('aksrt_get_avatar_url')
|
||||||
? aksrt_get_avatar_url($author_id, ['size' => 120])
|
? aksrt_get_avatar_url($author_id, ['size' => 120])
|
||||||
@@ -84,15 +94,15 @@ class WidgetAuthorCard extends \WP_Widget {
|
|||||||
? aksrt_get_user_name(['id' => $author_id, 'follow' => false, 'class' => 'flex ac jc'])
|
? aksrt_get_user_name(['id' => $author_id, 'follow' => false, 'class' => 'flex ac jc'])
|
||||||
: '<a href="' . esc_url($home) . '">' . esc_html($user->display_name) . '</a>';
|
: '<a href="' . esc_url($home) . '">' . esc_html($user->display_name) . '</a>';
|
||||||
|
|
||||||
$in_affix = !empty($instance['in_affix']);
|
$affix = function_exists('aksrt_widget_affix_attrs') ? aksrt_widget_affix_attrs($instance) : ['class' => '', 'attr' => ''];
|
||||||
echo $args['before_widget']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
echo $args['before_widget']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
||||||
$title = apply_filters('widget_title', (string) ($instance['title'] ?? ''), $instance, $this->id_base);
|
$title = apply_filters('widget_title', (string) ($instance['title'] ?? ''), $instance, $this->id_base);
|
||||||
if ($title !== '') {
|
if ($title !== '') {
|
||||||
echo $args['before_title'] . esc_html($title) . $args['after_title']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
echo $args['before_title'] . esc_html($title) . $args['after_title']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
||||||
}
|
}
|
||||||
|
|
||||||
$card_cls = 'aksrt-author-card user-card author zib-widget' . ($show_bg ? ' has-cover' : '') . ($in_affix ? ' is-affix' : '');
|
$card_cls = 'aksrt-author-card user-card author zib-widget' . ($show_bg ? ' has-cover' : '') . $affix['class'];
|
||||||
echo '<div class="' . esc_attr($card_cls) . '"' . ($in_affix ? ' data-affix="true"' : '') . '>';
|
echo '<div class="' . esc_attr($card_cls) . '"' . $affix['attr'] . '>';
|
||||||
if ($show_bg) {
|
if ($show_bg) {
|
||||||
$bg = $cover !== '' ? ' style="background-image:url(' . esc_url($cover) . ')"' : '';
|
$bg = $cover !== '' ? ' style="background-image:url(' . esc_url($cover) . ')"' : '';
|
||||||
echo '<div class="aksrt-author-card__cover user-cover graphic"' . $bg . '></div>';
|
echo '<div class="aksrt-author-card__cover user-cover graphic"' . $bg . '></div>';
|
||||||
@@ -144,6 +154,17 @@ class WidgetAuthorCard extends \WP_Widget {
|
|||||||
echo '<button type="button" class="aksrt-author-card__btn aksrt-author-card__follow but' . ($following ? ' is-following' : '') . '" data-aksrt-follow="' . (int) $author_id . '">' . esc_html($label) . '</button>';
|
echo '<button type="button" class="aksrt-author-card__btn aksrt-author-card__follow but' . ($following ? ' is-following' : '') . '" data-aksrt-follow="' . (int) $author_id . '">' . esc_html($label) . '</button>';
|
||||||
}
|
}
|
||||||
echo '<a class="aksrt-author-card__btn but" href="' . esc_url($home) . '">' . esc_html__('查看主页', 'aksrt') . '</a>';
|
echo '<a class="aksrt-author-card__btn but" href="' . esc_url($home) . '">' . esc_html__('查看主页', 'aksrt') . '</a>';
|
||||||
|
// Zibll: button_1 / button_2 only render when the logged-in viewer IS the author.
|
||||||
|
if ($show_button && $cuid > 0 && $cuid === $author_id) {
|
||||||
|
$center_url = function_exists('aksrt_get_user_center_url') ? aksrt_get_user_center_url() : $home;
|
||||||
|
$btn2_url = $btn2_type === 'home' ? $home : $center_url;
|
||||||
|
$compose_url = $home;
|
||||||
|
if (function_exists('aksrt_get_user_center_url')) {
|
||||||
|
$compose_url = aksrt_get_user_center_url('posts');
|
||||||
|
}
|
||||||
|
echo '<a class="aksrt-author-card__btn but ' . esc_attr($btn1_class) . '" href="' . esc_url($compose_url) . '">' . esc_html($btn1_text) . '</a>';
|
||||||
|
echo '<a class="aksrt-author-card__btn but ' . esc_attr($btn2_class) . '" href="' . esc_url($btn2_url) . '">' . esc_html($btn2_text) . '</a>';
|
||||||
|
}
|
||||||
echo '</div>';
|
echo '</div>';
|
||||||
echo '</div>'; // .user-content
|
echo '</div>'; // .user-content
|
||||||
|
|
||||||
@@ -204,15 +225,51 @@ class WidgetAuthorCard extends \WP_Widget {
|
|||||||
<label><?php esc_html_e('排序', 'aksrt'); ?>
|
<label><?php esc_html_e('排序', 'aksrt'); ?>
|
||||||
<select name="<?php echo esc_attr($this->get_field_name('orderby')); ?>">
|
<select name="<?php echo esc_attr($this->get_field_name('orderby')); ?>">
|
||||||
<option value="date" <?php selected(($instance['orderby'] ?? 'date'), 'date'); ?>><?php esc_html_e('最新', 'aksrt'); ?></option>
|
<option value="date" <?php selected(($instance['orderby'] ?? 'date'), 'date'); ?>><?php esc_html_e('最新', 'aksrt'); ?></option>
|
||||||
|
<option value="modified" <?php selected(($instance['orderby'] ?? ''), 'modified'); ?>><?php esc_html_e('最近更新', 'aksrt'); ?></option>
|
||||||
<option value="views" <?php selected(($instance['orderby'] ?? ''), 'views'); ?>><?php esc_html_e('阅读量', 'aksrt'); ?></option>
|
<option value="views" <?php selected(($instance['orderby'] ?? ''), 'views'); ?>><?php esc_html_e('阅读量', 'aksrt'); ?></option>
|
||||||
|
<option value="like" <?php selected(($instance['orderby'] ?? ''), 'like'); ?>><?php esc_html_e('点赞', 'aksrt'); ?></option>
|
||||||
<option value="comment_count" <?php selected(($instance['orderby'] ?? ''), 'comment_count'); ?>><?php esc_html_e('评论数', 'aksrt'); ?></option>
|
<option value="comment_count" <?php selected(($instance['orderby'] ?? ''), 'comment_count'); ?>><?php esc_html_e('评论数', 'aksrt'); ?></option>
|
||||||
|
<option value="favorite" <?php selected(($instance['orderby'] ?? ''), 'favorite'); ?>><?php esc_html_e('收藏', 'aksrt'); ?></option>
|
||||||
<option value="rand" <?php selected(($instance['orderby'] ?? ''), 'rand'); ?>><?php esc_html_e('随机', 'aksrt'); ?></option>
|
<option value="rand" <?php selected(($instance['orderby'] ?? ''), 'rand'); ?>><?php esc_html_e('随机', 'aksrt'); ?></option>
|
||||||
</select>
|
</select>
|
||||||
</label>
|
</label>
|
||||||
</p>
|
</p>
|
||||||
|
<hr style="margin:12px 0;">
|
||||||
|
<p style="font-weight:600;margin-bottom:8px;"><?php esc_html_e('按钮(仅当登录用户为作者时显示)', 'aksrt'); ?></p>
|
||||||
<p>
|
<p>
|
||||||
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('in_affix')); ?>" value="1" <?php checked(!empty($instance['in_affix'])); ?>> <?php esc_html_e('侧栏随动', 'aksrt'); ?></label>
|
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('show_button')); ?>" value="1" <?php checked(!isset($instance['show_button']) || !empty($instance['show_button'])); ?>> <?php esc_html_e('显示按钮', 'aksrt'); ?></label>
|
||||||
</p>
|
</p>
|
||||||
|
<p>
|
||||||
|
<label><?php esc_html_e('按钮1文案', 'aksrt'); ?>
|
||||||
|
<input class="widefat" type="text" name="<?php echo esc_attr($this->get_field_name('button_1_text')); ?>" value="<?php echo esc_attr((string) ($instance['button_1_text'] ?? __('发布文章', 'aksrt'))); ?>">
|
||||||
|
</label>
|
||||||
|
<label><?php esc_html_e('按钮1颜色', 'aksrt'); ?>
|
||||||
|
<select name="<?php echo esc_attr($this->get_field_name('button_1_class')); ?>">
|
||||||
|
<?php foreach (WidgetUserCard::palette_opts() as $k => $label) : ?>
|
||||||
|
<option value="<?php echo esc_attr($k); ?>" <?php selected(($instance['button_1_class'] ?? 'jb-pink'), $k); ?>><?php echo esc_html($label); ?></option>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</select>
|
||||||
|
</label>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<label><?php esc_html_e('按钮2类型', 'aksrt'); ?>
|
||||||
|
<select name="<?php echo esc_attr($this->get_field_name('button_2')); ?>">
|
||||||
|
<option value="home" <?php selected(($instance['button_2'] ?? 'center'), 'home'); ?>><?php esc_html_e('个人主页', 'aksrt'); ?></option>
|
||||||
|
<option value="center" <?php selected(($instance['button_2'] ?? 'center'), 'center'); ?>><?php esc_html_e('用户中心', 'aksrt'); ?></option>
|
||||||
|
</select>
|
||||||
|
</label>
|
||||||
|
<label><?php esc_html_e('按钮2文案', 'aksrt'); ?>
|
||||||
|
<input class="widefat" type="text" name="<?php echo esc_attr($this->get_field_name('button_2_text')); ?>" value="<?php echo esc_attr((string) ($instance['button_2_text'] ?? __('用户中心', 'aksrt'))); ?>">
|
||||||
|
</label>
|
||||||
|
<label><?php esc_html_e('按钮2颜色', 'aksrt'); ?>
|
||||||
|
<select name="<?php echo esc_attr($this->get_field_name('button_2_class')); ?>">
|
||||||
|
<?php foreach (WidgetUserCard::palette_opts() as $k => $label) : ?>
|
||||||
|
<option value="<?php echo esc_attr($k); ?>" <?php selected(($instance['button_2_class'] ?? 'jb-blue'), $k); ?>><?php echo esc_html($label); ?></option>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</select>
|
||||||
|
</label>
|
||||||
|
</p>
|
||||||
|
<?php $this->render_common_form_section($instance); ?>
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -222,20 +279,27 @@ class WidgetAuthorCard extends \WP_Widget {
|
|||||||
$post_style = 'mini';
|
$post_style = 'mini';
|
||||||
}
|
}
|
||||||
$orderby = sanitize_key((string) ($new_instance['orderby'] ?? 'date'));
|
$orderby = sanitize_key((string) ($new_instance['orderby'] ?? 'date'));
|
||||||
if (!in_array($orderby, ['date', 'views', 'comment_count', 'modified', 'rand'], true)) {
|
if (!in_array($orderby, ['date', 'views', 'comment_count', 'modified', 'like', 'favorite', 'rand'], true)) {
|
||||||
$orderby = 'date';
|
$orderby = 'date';
|
||||||
}
|
}
|
||||||
return [
|
return $this->update_common_fields($new_instance, $old_instance, [
|
||||||
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
||||||
'user_id' => max(0, (int) ($new_instance['user_id'] ?? 0)),
|
'user_id' => max(0, (int) ($new_instance['user_id'] ?? 0)),
|
||||||
'show_img_bg' => !empty($new_instance['show_img_bg']) ? 1 : 0,
|
'show_img_bg' => !empty($new_instance['show_img_bg']) ? 1 : 0,
|
||||||
'show_stats' => !empty($new_instance['show_stats']) ? 1 : 0,
|
'show_stats' => !empty($new_instance['show_stats']) ? 1 : 0,
|
||||||
'show_follow' => !empty($new_instance['show_follow']) ? 1 : 0,
|
'show_follow' => !empty($new_instance['show_follow']) ? 1 : 0,
|
||||||
'show_badge' => !empty($new_instance['show_badge']) ? 1 : 0,
|
'show_badge' => !empty($new_instance['show_badge']) ? 1 : 0,
|
||||||
'show_posts' => !empty($new_instance['show_posts']) ? 1 : 0,
|
'show_posts' => !empty($new_instance['show_posts']) ? 1 : 0,
|
||||||
'limit' => max(0, min(12, (int) ($new_instance['limit'] ?? 6))),
|
'show_button' => !empty($new_instance['show_button']) ? 1 : 0,
|
||||||
'post_style' => $post_style,
|
'limit' => max(0, min(12, (int) ($new_instance['limit'] ?? 6))),
|
||||||
'orderby' => $orderby,
|
'post_style' => $post_style,
|
||||||
];
|
'orderby' => $orderby,
|
||||||
|
'button_1' => 'post',
|
||||||
|
'button_1_text'=> sanitize_text_field((string) ($new_instance['button_1_text'] ?? '')),
|
||||||
|
'button_1_class'=> WidgetUserCard::sanitize_palette((string) ($new_instance['button_1_class'] ?? 'jb-pink'), 'jb-pink'),
|
||||||
|
'button_2' => in_array((string) ($new_instance['button_2'] ?? 'center'), ['home', 'center'], true) ? $new_instance['button_2'] : 'center',
|
||||||
|
'button_2_text'=> sanitize_text_field((string) ($new_instance['button_2_text'] ?? '')),
|
||||||
|
'button_2_class'=> WidgetUserCard::sanitize_palette((string) ($new_instance['button_2_class'] ?? 'jb-blue'), 'jb-blue'),
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7,9 +7,13 @@
|
|||||||
|
|
||||||
namespace AKSRT\Widgets;
|
namespace AKSRT\Widgets;
|
||||||
|
|
||||||
|
use AKSRT\Widgets\Traits\CommonWidgetFields;
|
||||||
|
|
||||||
defined('ABSPATH') || exit;
|
defined('ABSPATH') || exit;
|
||||||
|
|
||||||
class WidgetBookmarkLinks extends \WP_Widget {
|
class WidgetBookmarkLinks extends \WP_Widget {
|
||||||
|
use CommonWidgetFields;
|
||||||
|
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
parent::__construct(
|
parent::__construct(
|
||||||
@@ -29,12 +33,18 @@ class WidgetBookmarkLinks extends \WP_Widget {
|
|||||||
$orderby = 'name';
|
$orderby = 'name';
|
||||||
}
|
}
|
||||||
$order = strtoupper((string) ($instance['links_order'] ?? 'ASC')) === 'DESC' ? 'DESC' : 'ASC';
|
$order = strtoupper((string) ($instance['links_order'] ?? 'ASC')) === 'DESC' ? 'DESC' : 'ASC';
|
||||||
|
// Zibll widget_ui_links_lists_2: type card/bigcard/image/simple.
|
||||||
$type = sanitize_key((string) ($instance['type'] ?? 'card'));
|
$type = sanitize_key((string) ($instance['type'] ?? 'card'));
|
||||||
if (!in_array($type, ['card', 'bigcard', 'image', 'simple'], true)) {
|
if (!in_array($type, ['card', 'bigcard', 'image', 'simple'], true)) {
|
||||||
$type = 'card';
|
$type = 'card';
|
||||||
}
|
}
|
||||||
|
// Zibll alignment ('' / center / right).
|
||||||
|
$align = sanitize_key((string) ($instance['alignment'] ?? ''));
|
||||||
|
if (!in_array($align, ['', 'center', 'right'], true)) {
|
||||||
|
$align = '';
|
||||||
|
}
|
||||||
$go_link = !empty($instance['go_link']);
|
$go_link = !empty($instance['go_link']);
|
||||||
$blank = !isset($instance['blank']) || !empty($instance['blank']);
|
$blank = !empty($instance['blank']);
|
||||||
$nofollow = !isset($instance['nofollow']) || !empty($instance['nofollow']);
|
$nofollow = !isset($instance['nofollow']) || !empty($instance['nofollow']);
|
||||||
$show_box = !empty($instance['show_box']);
|
$show_box = !empty($instance['show_box']);
|
||||||
|
|
||||||
@@ -65,7 +75,7 @@ class WidgetBookmarkLinks extends \WP_Widget {
|
|||||||
echo $args['before_title'] . esc_html($title) . $args['after_title']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
echo $args['before_title'] . esc_html($title) . $args['after_title']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
||||||
}
|
}
|
||||||
|
|
||||||
$wrap = 'aksrt-bookmark-links links-box style-' . $type . ($show_box ? ' has-box' : '');
|
$wrap = 'aksrt-bookmark-links links-box style-' . $type . ($show_box ? ' has-box' : '') . ($align ? ' text-' . $align : '');
|
||||||
echo '<div class="' . esc_attr($wrap) . '">';
|
echo '<div class="' . esc_attr($wrap) . '">';
|
||||||
if (function_exists('aksrt_links_box')) {
|
if (function_exists('aksrt_links_box')) {
|
||||||
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
||||||
@@ -128,6 +138,15 @@ class WidgetBookmarkLinks extends \WP_Widget {
|
|||||||
<option value="DESC" <?php selected(($instance['links_order'] ?? ''), 'DESC'); ?>><?php esc_html_e('降序', 'aksrt'); ?></option>
|
<option value="DESC" <?php selected(($instance['links_order'] ?? ''), 'DESC'); ?>><?php esc_html_e('降序', 'aksrt'); ?></option>
|
||||||
</select>
|
</select>
|
||||||
</p>
|
</p>
|
||||||
|
<p>
|
||||||
|
<label><?php esc_html_e('对齐方式', 'aksrt'); ?>
|
||||||
|
<select name="<?php echo esc_attr($this->get_field_name('alignment')); ?>">
|
||||||
|
<option value="" <?php selected(($instance['alignment'] ?? ''), ''); ?>><?php esc_html_e('左对齐', 'aksrt'); ?></option>
|
||||||
|
<option value="center" <?php selected(($instance['alignment'] ?? ''), 'center'); ?>><?php esc_html_e('居中', 'aksrt'); ?></option>
|
||||||
|
<option value="right" <?php selected(($instance['alignment'] ?? ''), 'right'); ?>><?php esc_html_e('右对齐', 'aksrt'); ?></option>
|
||||||
|
</select>
|
||||||
|
</label>
|
||||||
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('blank')); ?>" value="1" <?php checked(!isset($instance['blank']) || !empty($instance['blank'])); ?>> <?php esc_html_e('新窗口', 'aksrt'); ?></label><br>
|
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('blank')); ?>" value="1" <?php checked(!isset($instance['blank']) || !empty($instance['blank'])); ?>> <?php esc_html_e('新窗口', 'aksrt'); ?></label><br>
|
||||||
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('nofollow')); ?>" value="1" <?php checked(!isset($instance['nofollow']) || !empty($instance['nofollow'])); ?>> <?php esc_html_e('nofollow', 'aksrt'); ?></label><br>
|
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('nofollow')); ?>" value="1" <?php checked(!isset($instance['nofollow']) || !empty($instance['nofollow'])); ?>> <?php esc_html_e('nofollow', 'aksrt'); ?></label><br>
|
||||||
@@ -135,24 +154,26 @@ class WidgetBookmarkLinks extends \WP_Widget {
|
|||||||
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('show_box')); ?>" value="1" <?php checked(!empty($instance['show_box'])); ?>> <?php esc_html_e('外框盒子', 'aksrt'); ?></label>
|
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('show_box')); ?>" value="1" <?php checked(!empty($instance['show_box'])); ?>> <?php esc_html_e('外框盒子', 'aksrt'); ?></label>
|
||||||
</p>
|
</p>
|
||||||
<?php
|
<?php
|
||||||
}
|
$this->render_common_form_section($instance);
|
||||||
|
}
|
||||||
|
|
||||||
public function update($new_instance, $old_instance): array {
|
public function update($new_instance, $old_instance): array {
|
||||||
$type = sanitize_key((string) ($new_instance['type'] ?? 'card'));
|
$type = sanitize_key((string) ($new_instance['type'] ?? 'card'));
|
||||||
if (!in_array($type, ['card', 'bigcard', 'image', 'simple'], true)) {
|
if (!in_array($type, ['card', 'bigcard', 'image', 'simple'], true)) {
|
||||||
$type = 'card';
|
$type = 'card';
|
||||||
}
|
}
|
||||||
return [
|
$business = [
|
||||||
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
||||||
'links_cats' => sanitize_text_field((string) ($new_instance['links_cats'] ?? '')),
|
'links_cats' => sanitize_text_field((string) ($new_instance['links_cats'] ?? '')),
|
||||||
'links_limit' => max(0, min(100, (int) ($new_instance['links_limit'] ?? 12))),
|
'links_limit' => max(0, min(100, (int) ($new_instance['links_limit'] ?? 12))),
|
||||||
'links_orderby' => sanitize_key((string) ($new_instance['links_orderby'] ?? 'name')),
|
'links_orderby' => sanitize_key((string) ($new_instance['links_orderby'] ?? 'name')),
|
||||||
'links_order' => strtoupper((string) ($new_instance['links_order'] ?? 'ASC')) === 'DESC' ? 'DESC' : 'ASC',
|
'links_order' => strtoupper((string) ($new_instance['links_order'] ?? 'ASC')) === 'DESC' ? 'DESC' : 'ASC',
|
||||||
'type' => $type,
|
'type' => $type,
|
||||||
|
'alignment' => in_array((string) ($new_instance['alignment'] ?? ''), ['', 'center', 'right'], true) ? $new_instance['alignment'] : '',
|
||||||
'blank' => !empty($new_instance['blank']) ? 1 : 0,
|
'blank' => !empty($new_instance['blank']) ? 1 : 0,
|
||||||
'nofollow' => !empty($new_instance['nofollow']) ? 1 : 0,
|
'nofollow' => !empty($new_instance['nofollow']) ? 1 : 0,
|
||||||
'go_link' => !empty($new_instance['go_link']) ? 1 : 0,
|
'go_link' => !empty($new_instance['go_link']) ? 1 : 0,
|
||||||
'show_box' => !empty($new_instance['show_box']) ? 1 : 0,
|
'show_box' => !empty($new_instance['show_box']) ? 1 : 0,
|
||||||
];
|
]; return $this->update_common_fields($new_instance, $old_instance, $business);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7,9 +7,13 @@
|
|||||||
|
|
||||||
namespace AKSRT\Widgets;
|
namespace AKSRT\Widgets;
|
||||||
|
|
||||||
|
use AKSRT\Widgets\Traits\CommonWidgetFields;
|
||||||
|
|
||||||
defined('ABSPATH') || exit;
|
defined('ABSPATH') || exit;
|
||||||
|
|
||||||
class WidgetComboInfo extends \WP_Widget {
|
class WidgetComboInfo extends \WP_Widget {
|
||||||
|
use CommonWidgetFields;
|
||||||
|
|
||||||
|
|
||||||
private const BANDS = ['blue', 'cyan', 'green', 'yellow', 'pink', 'purple'];
|
private const BANDS = ['blue', 'cyan', 'green', 'yellow', 'pink', 'purple'];
|
||||||
|
|
||||||
@@ -250,10 +254,11 @@ class WidgetComboInfo extends \WP_Widget {
|
|||||||
</label>
|
</label>
|
||||||
</p>
|
</p>
|
||||||
<?php
|
<?php
|
||||||
}
|
$this->render_common_form_section($instance);
|
||||||
|
}
|
||||||
|
|
||||||
public function update($new_instance, $old_instance): array {
|
public function update($new_instance, $old_instance): array {
|
||||||
return [
|
$business = [
|
||||||
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
||||||
'cards' => $this->normalize_cards($new_instance['cards'] ?? []),
|
'cards' => $this->normalize_cards($new_instance['cards'] ?? []),
|
||||||
'pc_row' => max(1, min(6, (int) ($new_instance['pc_row'] ?? 4))),
|
'pc_row' => max(1, min(6, (int) ($new_instance['pc_row'] ?? 4))),
|
||||||
@@ -265,6 +270,6 @@ class WidgetComboInfo extends \WP_Widget {
|
|||||||
'go_link' => !empty($new_instance['go_link']) ? 1 : 0,
|
'go_link' => !empty($new_instance['go_link']) ? 1 : 0,
|
||||||
'obs_animation' => sanitize_key((string) ($new_instance['obs_animation'] ?? '')),
|
'obs_animation' => sanitize_key((string) ($new_instance['obs_animation'] ?? '')),
|
||||||
'animation_repeat'=> !empty($new_instance['animation_repeat']) ? 1 : 0,
|
'animation_repeat'=> !empty($new_instance['animation_repeat']) ? 1 : 0,
|
||||||
];
|
]; return $this->update_common_fields($new_instance, $old_instance, $business);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7,9 +7,13 @@
|
|||||||
|
|
||||||
namespace AKSRT\Widgets;
|
namespace AKSRT\Widgets;
|
||||||
|
|
||||||
|
use AKSRT\Widgets\Traits\CommonWidgetFields;
|
||||||
|
|
||||||
defined('ABSPATH') || exit;
|
defined('ABSPATH') || exit;
|
||||||
|
|
||||||
class WidgetCoverCards extends \WP_Widget {
|
class WidgetCoverCards extends \WP_Widget {
|
||||||
|
use CommonWidgetFields;
|
||||||
|
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
parent::__construct(
|
parent::__construct(
|
||||||
@@ -200,7 +204,8 @@ class WidgetCoverCards extends \WP_Widget {
|
|||||||
<small><?php esc_html_e('字段: image, video, title, link, target, hide(pc|m), height, mask', 'aksrt'); ?></small>
|
<small><?php esc_html_e('字段: image, video, title, link, target, hide(pc|m), height, mask', 'aksrt'); ?></small>
|
||||||
</p>
|
</p>
|
||||||
<?php
|
<?php
|
||||||
}
|
$this->render_common_form_section($instance);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param array<string,mixed> $new_instance
|
* @param array<string,mixed> $new_instance
|
||||||
@@ -208,7 +213,7 @@ class WidgetCoverCards extends \WP_Widget {
|
|||||||
* @return array<string,mixed>
|
* @return array<string,mixed>
|
||||||
*/
|
*/
|
||||||
public function update($new_instance, $old_instance): array {
|
public function update($new_instance, $old_instance): array {
|
||||||
return [
|
$business = [
|
||||||
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
||||||
'pc_row' => max(1, min(6, (int) ($new_instance['pc_row'] ?? 2))),
|
'pc_row' => max(1, min(6, (int) ($new_instance['pc_row'] ?? 2))),
|
||||||
'm_row' => max(1, min(3, (int) ($new_instance['m_row'] ?? 1))),
|
'm_row' => max(1, min(3, (int) ($new_instance['m_row'] ?? 1))),
|
||||||
@@ -220,6 +225,6 @@ class WidgetCoverCards extends \WP_Widget {
|
|||||||
'font_bold' => !empty($new_instance['font_bold']) ? 1 : 0,
|
'font_bold' => !empty($new_instance['font_bold']) ? 1 : 0,
|
||||||
'font_color' => sanitize_hex_color((string) ($new_instance['font_color'] ?? '')) ?: '',
|
'font_color' => sanitize_hex_color((string) ($new_instance['font_color'] ?? '')) ?: '',
|
||||||
'items' => $this->normalize($new_instance['items'] ?? []),
|
'items' => $this->normalize($new_instance['items'] ?? []),
|
||||||
];
|
]; return $this->update_common_fields($new_instance, $old_instance, $business);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7,9 +7,13 @@
|
|||||||
|
|
||||||
namespace AKSRT\Widgets;
|
namespace AKSRT\Widgets;
|
||||||
|
|
||||||
|
use AKSRT\Widgets\Traits\CommonWidgetFields;
|
||||||
|
|
||||||
defined('ABSPATH') || exit;
|
defined('ABSPATH') || exit;
|
||||||
|
|
||||||
class WidgetFaq extends \WP_Widget {
|
class WidgetFaq extends \WP_Widget {
|
||||||
|
use CommonWidgetFields;
|
||||||
|
|
||||||
|
|
||||||
private const BADGE_TONES = ['purple', 'pink', 'green', 'orange', 'blue'];
|
private const BADGE_TONES = ['purple', 'pink', 'green', 'orange', 'blue'];
|
||||||
|
|
||||||
@@ -332,10 +336,11 @@ class WidgetFaq extends \WP_Widget {
|
|||||||
</label>
|
</label>
|
||||||
</p>
|
</p>
|
||||||
<?php
|
<?php
|
||||||
}
|
$this->render_common_form_section($instance);
|
||||||
|
}
|
||||||
|
|
||||||
public function update($new_instance, $old_instance): array {
|
public function update($new_instance, $old_instance): array {
|
||||||
return [
|
$business = [
|
||||||
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
||||||
'search_s' => !empty($new_instance['search_s']) ? 1 : 0,
|
'search_s' => !empty($new_instance['search_s']) ? 1 : 0,
|
||||||
'search_placeholder' => sanitize_text_field((string) ($new_instance['search_placeholder'] ?? '')),
|
'search_placeholder' => sanitize_text_field((string) ($new_instance['search_placeholder'] ?? '')),
|
||||||
@@ -350,6 +355,6 @@ class WidgetFaq extends \WP_Widget {
|
|||||||
'help_icon' => sanitize_text_field((string) ($new_instance['help_icon'] ?? '')),
|
'help_icon' => sanitize_text_field((string) ($new_instance['help_icon'] ?? '')),
|
||||||
'help_btn_text' => sanitize_text_field((string) ($new_instance['help_btn_text'] ?? '')),
|
'help_btn_text' => sanitize_text_field((string) ($new_instance['help_btn_text'] ?? '')),
|
||||||
'help_btn_url' => esc_url_raw(trim((string) ($new_instance['help_btn_url'] ?? ''))),
|
'help_btn_url' => esc_url_raw(trim((string) ($new_instance['help_btn_url'] ?? ''))),
|
||||||
];
|
]; return $this->update_common_fields($new_instance, $old_instance, $business);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7,9 +7,13 @@
|
|||||||
|
|
||||||
namespace AKSRT\Widgets;
|
namespace AKSRT\Widgets;
|
||||||
|
|
||||||
|
use AKSRT\Widgets\Traits\CommonWidgetFields;
|
||||||
|
|
||||||
defined('ABSPATH') || exit;
|
defined('ABSPATH') || exit;
|
||||||
|
|
||||||
class WidgetFeatureIntro extends \WP_Widget {
|
class WidgetFeatureIntro extends \WP_Widget {
|
||||||
|
use CommonWidgetFields;
|
||||||
|
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
parent::__construct(
|
parent::__construct(
|
||||||
@@ -206,10 +210,11 @@ class WidgetFeatureIntro extends \WP_Widget {
|
|||||||
</label>
|
</label>
|
||||||
</p>
|
</p>
|
||||||
<?php
|
<?php
|
||||||
}
|
$this->render_common_form_section($instance);
|
||||||
|
}
|
||||||
|
|
||||||
public function update($new_instance, $old_instance): array {
|
public function update($new_instance, $old_instance): array {
|
||||||
return [
|
$business = [
|
||||||
'heading' => sanitize_text_field((string) ($new_instance['heading'] ?? '')),
|
'heading' => sanitize_text_field((string) ($new_instance['heading'] ?? '')),
|
||||||
'description' => wp_kses_post((string) ($new_instance['description'] ?? '')),
|
'description' => wp_kses_post((string) ($new_instance['description'] ?? '')),
|
||||||
'slides' => $this->normalize_slides($new_instance['slides'] ?? []),
|
'slides' => $this->normalize_slides($new_instance['slides'] ?? []),
|
||||||
@@ -220,6 +225,6 @@ class WidgetFeatureIntro extends \WP_Widget {
|
|||||||
'stat_number' => sanitize_text_field((string) ($new_instance['stat_number'] ?? '')),
|
'stat_number' => sanitize_text_field((string) ($new_instance['stat_number'] ?? '')),
|
||||||
'stat_suffix' => sanitize_text_field((string) ($new_instance['stat_suffix'] ?? '')),
|
'stat_suffix' => sanitize_text_field((string) ($new_instance['stat_suffix'] ?? '')),
|
||||||
'stat_label' => sanitize_text_field((string) ($new_instance['stat_label'] ?? '')),
|
'stat_label' => sanitize_text_field((string) ($new_instance['stat_label'] ?? '')),
|
||||||
];
|
]; return $this->update_common_fields($new_instance, $old_instance, $business);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7,9 +7,13 @@
|
|||||||
|
|
||||||
namespace AKSRT\Widgets;
|
namespace AKSRT\Widgets;
|
||||||
|
|
||||||
|
use AKSRT\Widgets\Traits\CommonWidgetFields;
|
||||||
|
|
||||||
defined('ABSPATH') || exit;
|
defined('ABSPATH') || exit;
|
||||||
|
|
||||||
class WidgetForumBoardList extends \WP_Widget {
|
class WidgetForumBoardList extends \WP_Widget {
|
||||||
|
use CommonWidgetFields;
|
||||||
|
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
parent::__construct(
|
parent::__construct(
|
||||||
@@ -180,7 +184,8 @@ class WidgetForumBoardList extends \WP_Widget {
|
|||||||
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('hide_empty')); ?>" value="1" <?php checked(!isset($instance['hide_empty']) || !empty($instance['hide_empty'])); ?>> <?php esc_html_e('隐藏空版块(分类模式)', 'aksrt'); ?></label>
|
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('hide_empty')); ?>" value="1" <?php checked(!isset($instance['hide_empty']) || !empty($instance['hide_empty'])); ?>> <?php esc_html_e('隐藏空版块(分类模式)', 'aksrt'); ?></label>
|
||||||
</p>
|
</p>
|
||||||
<?php
|
<?php
|
||||||
}
|
$this->render_common_form_section($instance);
|
||||||
|
}
|
||||||
|
|
||||||
public function update($new_instance, $old_instance): array {
|
public function update($new_instance, $old_instance): array {
|
||||||
$orderby = sanitize_key((string) ($new_instance['orderby'] ?? 'menu_order'));
|
$orderby = sanitize_key((string) ($new_instance['orderby'] ?? 'menu_order'));
|
||||||
@@ -188,12 +193,12 @@ class WidgetForumBoardList extends \WP_Widget {
|
|||||||
if (!in_array($orderby, $allowed, true)) {
|
if (!in_array($orderby, $allowed, true)) {
|
||||||
$orderby = 'menu_order';
|
$orderby = 'menu_order';
|
||||||
}
|
}
|
||||||
return [
|
$business = [
|
||||||
'title' => sanitize_text_field($new_instance['title'] ?? ''),
|
'title' => sanitize_text_field($new_instance['title'] ?? ''),
|
||||||
'count' => max(1, min(50, (int) ($new_instance['count'] ?? 30))),
|
'count' => max(1, min(50, (int) ($new_instance['count'] ?? 30))),
|
||||||
'orderby' => $orderby,
|
'orderby' => $orderby,
|
||||||
'style' => ($new_instance['style'] ?? '') === 'mini' ? 'mini' : 'list',
|
'style' => ($new_instance['style'] ?? '') === 'mini' ? 'mini' : 'list',
|
||||||
'hide_empty' => !empty($new_instance['hide_empty']) ? 1 : 0,
|
'hide_empty' => !empty($new_instance['hide_empty']) ? 1 : 0,
|
||||||
];
|
]; return $this->update_common_fields($new_instance, $old_instance, $business);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7,9 +7,12 @@
|
|||||||
|
|
||||||
namespace AKSRT\Widgets;
|
namespace AKSRT\Widgets;
|
||||||
|
|
||||||
|
use AKSRT\Widgets\Traits\CommonWidgetFields;
|
||||||
|
|
||||||
defined('ABSPATH') || exit;
|
defined('ABSPATH') || exit;
|
||||||
|
|
||||||
class WidgetForumHotTopics extends \WP_Widget {
|
class WidgetForumHotTopics extends \WP_Widget {
|
||||||
|
use CommonWidgetFields;
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
parent::__construct(
|
parent::__construct(
|
||||||
@@ -179,9 +182,9 @@ class WidgetForumHotTopics extends \WP_Widget {
|
|||||||
echo $args['before_widget']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
echo $args['before_widget']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
||||||
echo $args['before_title'] . esc_html($title) . $args['after_title']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
echo $args['before_title'] . esc_html($title) . $args['after_title']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
||||||
$rest = rest_url('aksrt/v1/widgets/forum-topics');
|
$rest = rest_url('aksrt/v1/widgets/forum-topics');
|
||||||
$in_affix = !empty($instance['in_affix']);
|
$affix = function_exists('aksrt_widget_affix_attrs') ? aksrt_widget_affix_attrs($instance) : ['class' => '', 'attr' => ''];
|
||||||
$wrap = 'ajaxpager' . ($in_affix ? ' is-affix' : '');
|
$wrap = 'ajaxpager' . $affix['class'];
|
||||||
echo '<div class="' . esc_attr($wrap) . '" data-aksrt-ajaxpager data-aksrt-ajax-url="' . esc_url($rest) . '"' . ($in_affix ? ' data-affix="true"' : '') . '>';
|
echo '<div class="' . esc_attr($wrap) . '" data-aksrt-ajaxpager data-aksrt-ajax-url="' . esc_url($rest) . '"' . $affix['attr'] . '>';
|
||||||
echo $payload['html']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
echo $payload['html']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
||||||
echo $payload['paginate_html']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
echo $payload['paginate_html']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
||||||
echo '<div class="post_ajax_loader" data-aksrt-ajax-loader data-aksrt-ajax-loader-hide hidden></div>';
|
echo '<div class="post_ajax_loader" data-aksrt-ajax-loader data-aksrt-ajax-loader-hide hidden></div>';
|
||||||
@@ -245,9 +248,7 @@ class WidgetForumHotTopics extends \WP_Widget {
|
|||||||
</select>
|
</select>
|
||||||
</label>
|
</label>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<?php $this->render_common_form_section($instance); ?>
|
||||||
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('in_affix')); ?>" value="1" <?php checked(!empty($instance['in_affix'])); ?>> <?php esc_html_e('侧栏随动', 'aksrt'); ?></label>
|
|
||||||
</p>
|
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -260,7 +261,7 @@ class WidgetForumHotTopics extends \WP_Widget {
|
|||||||
if (!in_array($style, ['mini', 'rank'], true)) {
|
if (!in_array($style, ['mini', 'rank'], true)) {
|
||||||
$style = 'mini';
|
$style = 'mini';
|
||||||
}
|
}
|
||||||
return [
|
return $this->update_common_fields($new_instance, $old_instance, [
|
||||||
'title' => sanitize_text_field($new_instance['title'] ?? ''),
|
'title' => sanitize_text_field($new_instance['title'] ?? ''),
|
||||||
'count' => max(1, min(20, (int) ($new_instance['count'] ?? 5))),
|
'count' => max(1, min(20, (int) ($new_instance['count'] ?? 5))),
|
||||||
'period' => in_array($new_instance['period'] ?? '', ['all', 'week', 'month'], true) ? $new_instance['period'] : 'week',
|
'period' => in_array($new_instance['period'] ?? '', ['all', 'week', 'month'], true) ? $new_instance['period'] : 'week',
|
||||||
@@ -268,6 +269,6 @@ class WidgetForumHotTopics extends \WP_Widget {
|
|||||||
'style' => $style,
|
'style' => $style,
|
||||||
'plate' => max(0, (int) ($new_instance['plate'] ?? 0)),
|
'plate' => max(0, (int) ($new_instance['plate'] ?? 0)),
|
||||||
'paginate' => in_array(sanitize_key((string) ($new_instance['paginate'] ?? 'ajax')), ['none', 'ajax', 'number'], true) ? sanitize_key((string) ($new_instance['paginate'] ?? 'ajax')) : 'ajax',
|
'paginate' => in_array(sanitize_key((string) ($new_instance['paginate'] ?? 'ajax')), ['none', 'ajax', 'number'], true) ? sanitize_key((string) ($new_instance['paginate'] ?? 'ajax')) : 'ajax',
|
||||||
];
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7,9 +7,13 @@
|
|||||||
|
|
||||||
namespace AKSRT\Widgets;
|
namespace AKSRT\Widgets;
|
||||||
|
|
||||||
|
use AKSRT\Widgets\Traits\CommonWidgetFields;
|
||||||
|
|
||||||
defined('ABSPATH') || exit;
|
defined('ABSPATH') || exit;
|
||||||
|
|
||||||
class WidgetForumPlateInfo extends \WP_Widget {
|
class WidgetForumPlateInfo extends \WP_Widget {
|
||||||
|
use CommonWidgetFields;
|
||||||
|
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
parent::__construct(
|
parent::__construct(
|
||||||
@@ -156,14 +160,15 @@ class WidgetForumPlateInfo extends \WP_Widget {
|
|||||||
</p>
|
</p>
|
||||||
<p class="description"><?php esc_html_e('仅在版块页或帖子页显示对应版块信息。', 'aksrt'); ?></p>
|
<p class="description"><?php esc_html_e('仅在版块页或帖子页显示对应版块信息。', 'aksrt'); ?></p>
|
||||||
<?php
|
<?php
|
||||||
}
|
$this->render_common_form_section($instance);
|
||||||
|
}
|
||||||
|
|
||||||
public function update($new_instance, $old_instance): array {
|
public function update($new_instance, $old_instance): array {
|
||||||
return [
|
$business = [
|
||||||
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
||||||
'show_stats' => !empty($new_instance['show_stats']) ? 1 : 0,
|
'show_stats' => !empty($new_instance['show_stats']) ? 1 : 0,
|
||||||
'show_follow' => !empty($new_instance['show_follow']) ? 1 : 0,
|
'show_follow' => !empty($new_instance['show_follow']) ? 1 : 0,
|
||||||
'show_compose' => !empty($new_instance['show_compose']) ? 1 : 0,
|
'show_compose' => !empty($new_instance['show_compose']) ? 1 : 0,
|
||||||
];
|
]; return $this->update_common_fields($new_instance, $old_instance, $business);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7,9 +7,13 @@
|
|||||||
|
|
||||||
namespace AKSRT\Widgets;
|
namespace AKSRT\Widgets;
|
||||||
|
|
||||||
|
use AKSRT\Widgets\Traits\CommonWidgetFields;
|
||||||
|
|
||||||
defined('ABSPATH') || exit;
|
defined('ABSPATH') || exit;
|
||||||
|
|
||||||
class WidgetForumPlateLists extends \WP_Widget {
|
class WidgetForumPlateLists extends \WP_Widget {
|
||||||
|
use CommonWidgetFields;
|
||||||
|
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
parent::__construct(
|
parent::__construct(
|
||||||
@@ -260,20 +264,21 @@ class WidgetForumPlateLists extends \WP_Widget {
|
|||||||
</label>
|
</label>
|
||||||
</p>
|
</p>
|
||||||
<?php
|
<?php
|
||||||
}
|
$this->render_common_form_section($instance);
|
||||||
|
}
|
||||||
|
|
||||||
public function update($new_instance, $old_instance): array {
|
public function update($new_instance, $old_instance): array {
|
||||||
$orderby = sanitize_key((string) ($new_instance['orderby'] ?? 'menu_order'));
|
$orderby = sanitize_key((string) ($new_instance['orderby'] ?? 'menu_order'));
|
||||||
if (!in_array($orderby, ['menu_order', 'date', 'posts', 'views', 'follow'], true)) {
|
if (!in_array($orderby, ['menu_order', 'date', 'posts', 'views', 'follow'], true)) {
|
||||||
$orderby = 'menu_order';
|
$orderby = 'menu_order';
|
||||||
}
|
}
|
||||||
return [
|
$business = [
|
||||||
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
||||||
'showposts' => max(1, min(30, (int) ($new_instance['showposts'] ?? 8))),
|
'showposts' => max(1, min(30, (int) ($new_instance['showposts'] ?? 8))),
|
||||||
'orderby' => $orderby,
|
'orderby' => $orderby,
|
||||||
'style' => ($new_instance['style'] ?? '') === 'card' ? 'card' : 'default',
|
'style' => ($new_instance['style'] ?? '') === 'card' ? 'card' : 'default',
|
||||||
'filter' => ($new_instance['filter'] ?? '') === 'is_hot' ? 'is_hot' : '',
|
'filter' => ($new_instance['filter'] ?? '') === 'is_hot' ? 'is_hot' : '',
|
||||||
'cat' => sanitize_text_field((string) ($new_instance['cat'] ?? '')),
|
'cat' => sanitize_text_field((string) ($new_instance['cat'] ?? '')),
|
||||||
];
|
]; return $this->update_common_fields($new_instance, $old_instance, $business);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7,9 +7,12 @@
|
|||||||
|
|
||||||
namespace AKSRT\Widgets;
|
namespace AKSRT\Widgets;
|
||||||
|
|
||||||
|
use AKSRT\Widgets\Traits\CommonWidgetFields;
|
||||||
|
|
||||||
defined('ABSPATH') || exit;
|
defined('ABSPATH') || exit;
|
||||||
|
|
||||||
class WidgetForumPlateModerator extends \WP_Widget {
|
class WidgetForumPlateModerator extends \WP_Widget {
|
||||||
|
use CommonWidgetFields;
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
parent::__construct(
|
parent::__construct(
|
||||||
@@ -69,7 +72,7 @@ class WidgetForumPlateModerator extends \WP_Widget {
|
|||||||
if ($desc === '') {
|
if ($desc === '') {
|
||||||
$desc = __('欢迎有热情的用户申请成为版主,协助管理社区秩序。', 'aksrt');
|
$desc = __('欢迎有热情的用户申请成为版主,协助管理社区秩序。', 'aksrt');
|
||||||
}
|
}
|
||||||
obs_start();
|
ob_start();
|
||||||
echo '<button type="button" class="but hollow c-blue p2-10 em09" data-aksrt-mod-apply-open="' . esc_attr((string) $uid) . '">' . esc_html__('申请版主', 'aksrt') . '</button>';
|
echo '<button type="button" class="but hollow c-blue p2-10 em09" data-aksrt-mod-apply-open="' . esc_attr((string) $uid) . '">' . esc_html__('申请版主', 'aksrt') . '</button>';
|
||||||
echo '<div class="aksrt-mod-apply-modal" id="' . esc_attr((string) $uid) . '" hidden>';
|
echo '<div class="aksrt-mod-apply-modal" id="' . esc_attr((string) $uid) . '" hidden>';
|
||||||
echo '<div class="aksrt-mod-apply-modal__backdrop" data-aksrt-mod-apply-close></div>';
|
echo '<div class="aksrt-mod-apply-modal__backdrop" data-aksrt-mod-apply-close></div>';
|
||||||
@@ -147,7 +150,7 @@ class WidgetForumPlateModerator extends \WP_Widget {
|
|||||||
return ['html' => ''];
|
return ['html' => ''];
|
||||||
}
|
}
|
||||||
|
|
||||||
obs_start();
|
ob_start();
|
||||||
echo '<div class="zib-widget moderator-box aksrt-plate-mods style-' . esc_attr($style) . ' ajax-item" data-aksrt-plate-mods="1">';
|
echo '<div class="zib-widget moderator-box aksrt-plate-mods style-' . esc_attr($style) . ' ajax-item" data-aksrt-plate-mods="1">';
|
||||||
if ($title_text !== '' || $apply_html !== '') {
|
if ($title_text !== '' || $apply_html !== '') {
|
||||||
echo '<div class="mb10 flex jsb ac aksrt-plate-mods__head">';
|
echo '<div class="mb10 flex jsb ac aksrt-plate-mods__head">';
|
||||||
@@ -230,15 +233,16 @@ class WidgetForumPlateModerator extends \WP_Widget {
|
|||||||
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('apply_btn')); ?>" value="1" <?php checked(!isset($instance['apply_btn']) || !empty($instance['apply_btn'])); ?>> <?php esc_html_e('显示申请版主入口', 'aksrt'); ?></label>
|
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('apply_btn')); ?>" value="1" <?php checked(!isset($instance['apply_btn']) || !empty($instance['apply_btn'])); ?>> <?php esc_html_e('显示申请版主入口', 'aksrt'); ?></label>
|
||||||
</p>
|
</p>
|
||||||
<p class="description"><?php esc_html_e('仅在版块/帖子页显示。', 'aksrt'); ?></p>
|
<p class="description"><?php esc_html_e('仅在版块/帖子页显示。', 'aksrt'); ?></p>
|
||||||
|
<?php $this->render_common_form_section($instance); ?>
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
|
|
||||||
public function update($new_instance, $old_instance): array {
|
public function update($new_instance, $old_instance): array {
|
||||||
return [
|
return $this->update_common_fields($new_instance, $old_instance, [
|
||||||
'title_text' => sanitize_text_field((string) ($new_instance['title_text'] ?? '')),
|
'title_text' => sanitize_text_field((string) ($new_instance['title_text'] ?? '')),
|
||||||
'style' => ($new_instance['style'] ?? '') === 'grid' ? 'grid' : 'list',
|
'style' => ($new_instance['style'] ?? '') === 'grid' ? 'grid' : 'list',
|
||||||
'show_avatar' => !empty($new_instance['show_avatar']) ? 1 : 0,
|
'show_avatar' => !empty($new_instance['show_avatar']) ? 1 : 0,
|
||||||
'apply_btn' => !empty($new_instance['apply_btn']) ? 1 : 0,
|
'apply_btn' => !empty($new_instance['apply_btn']) ? 1 : 0,
|
||||||
];
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7,9 +7,12 @@
|
|||||||
|
|
||||||
namespace AKSRT\Widgets;
|
namespace AKSRT\Widgets;
|
||||||
|
|
||||||
|
use AKSRT\Widgets\Traits\CommonWidgetFields;
|
||||||
|
|
||||||
defined('ABSPATH') || exit;
|
defined('ABSPATH') || exit;
|
||||||
|
|
||||||
class WidgetForumRecentTopics extends \WP_Widget {
|
class WidgetForumRecentTopics extends \WP_Widget {
|
||||||
|
use CommonWidgetFields;
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
parent::__construct(
|
parent::__construct(
|
||||||
@@ -40,9 +43,9 @@ class WidgetForumRecentTopics extends \WP_Widget {
|
|||||||
echo $args['before_widget']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
echo $args['before_widget']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
||||||
echo $args['before_title'] . esc_html($title) . $args['after_title']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
echo $args['before_title'] . esc_html($title) . $args['after_title']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
||||||
$rest = rest_url('aksrt/v1/widgets/forum-topics');
|
$rest = rest_url('aksrt/v1/widgets/forum-topics');
|
||||||
$in_affix = !empty($instance['in_affix']);
|
$affix = function_exists('aksrt_widget_affix_attrs') ? aksrt_widget_affix_attrs($instance) : ['class' => '', 'attr' => ''];
|
||||||
$wrap = 'ajaxpager' . ($in_affix ? ' is-affix' : '');
|
$wrap = 'ajaxpager' . $affix['class'];
|
||||||
echo '<div class="' . esc_attr($wrap) . '" data-aksrt-ajaxpager data-aksrt-ajax-url="' . esc_url($rest) . '"' . ($in_affix ? ' data-affix="true"' : '') . '>';
|
echo '<div class="' . esc_attr($wrap) . '" data-aksrt-ajaxpager data-aksrt-ajax-url="' . esc_url($rest) . '"' . $affix['attr'] . '>';
|
||||||
echo $payload['html']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
echo $payload['html']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
||||||
echo $payload['paginate_html']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
echo $payload['paginate_html']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
||||||
echo '<div class="post_ajax_loader" data-aksrt-ajax-loader data-aksrt-ajax-loader-hide hidden></div>';
|
echo '<div class="post_ajax_loader" data-aksrt-ajax-loader data-aksrt-ajax-loader-hide hidden></div>';
|
||||||
@@ -86,9 +89,7 @@ class WidgetForumRecentTopics extends \WP_Widget {
|
|||||||
</select>
|
</select>
|
||||||
</label>
|
</label>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<?php $this->render_common_form_section($instance); ?>
|
||||||
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('in_affix')); ?>" value="1" <?php checked(!empty($instance['in_affix'])); ?>> <?php esc_html_e('侧栏随动', 'aksrt'); ?></label>
|
|
||||||
</p>
|
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -97,13 +98,12 @@ class WidgetForumRecentTopics extends \WP_Widget {
|
|||||||
if (!in_array($style, ['mini', 'rank'], true)) {
|
if (!in_array($style, ['mini', 'rank'], true)) {
|
||||||
$style = 'mini';
|
$style = 'mini';
|
||||||
}
|
}
|
||||||
return [
|
return $this->update_common_fields($new_instance, $old_instance, [
|
||||||
'title' => sanitize_text_field($new_instance['title'] ?? ''),
|
'title' => sanitize_text_field($new_instance['title'] ?? ''),
|
||||||
'count' => max(1, min(20, (int) ($new_instance['count'] ?? 5))),
|
'count' => max(1, min(20, (int) ($new_instance['count'] ?? 5))),
|
||||||
'plate' => max(0, (int) ($new_instance['plate'] ?? 0)),
|
'plate' => max(0, (int) ($new_instance['plate'] ?? 0)),
|
||||||
'style' => $style,
|
'style' => $style,
|
||||||
'paginate' => in_array(sanitize_key((string) ($new_instance['paginate'] ?? 'ajax')), ['none', 'ajax', 'number'], true) ? sanitize_key((string) ($new_instance['paginate'] ?? 'ajax')) : 'ajax',
|
'paginate' => in_array(sanitize_key((string) ($new_instance['paginate'] ?? 'ajax')), ['none', 'ajax', 'number'], true) ? sanitize_key((string) ($new_instance['paginate'] ?? 'ajax')) : 'ajax',
|
||||||
'in_affix' => !empty($new_instance['in_affix']) ? 1 : 0,
|
]);
|
||||||
];
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7,9 +7,13 @@
|
|||||||
|
|
||||||
namespace AKSRT\Widgets;
|
namespace AKSRT\Widgets;
|
||||||
|
|
||||||
|
use AKSRT\Widgets\Traits\CommonWidgetFields;
|
||||||
|
|
||||||
defined('ABSPATH') || exit;
|
defined('ABSPATH') || exit;
|
||||||
|
|
||||||
class WidgetForumTabTopics extends \WP_Widget {
|
class WidgetForumTabTopics extends \WP_Widget {
|
||||||
|
use CommonWidgetFields;
|
||||||
|
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
parent::__construct(
|
parent::__construct(
|
||||||
@@ -165,19 +169,20 @@ class WidgetForumTabTopics extends \WP_Widget {
|
|||||||
</label>
|
</label>
|
||||||
</p>
|
</p>
|
||||||
<?php
|
<?php
|
||||||
}
|
$this->render_common_form_section($instance);
|
||||||
|
}
|
||||||
|
|
||||||
public function update($new_instance, $old_instance): array {
|
public function update($new_instance, $old_instance): array {
|
||||||
$style = sanitize_key((string) ($new_instance['style'] ?? 'mini'));
|
$style = sanitize_key((string) ($new_instance['style'] ?? 'mini'));
|
||||||
if (!in_array($style, ['mini', 'rank'], true)) {
|
if (!in_array($style, ['mini', 'rank'], true)) {
|
||||||
$style = 'mini';
|
$style = 'mini';
|
||||||
}
|
}
|
||||||
return [
|
$business = [
|
||||||
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
||||||
'count' => max(1, min(20, (int) ($new_instance['count'] ?? 6))),
|
'count' => max(1, min(20, (int) ($new_instance['count'] ?? 6))),
|
||||||
'style' => $style,
|
'style' => $style,
|
||||||
'plate' => max(0, (int) ($new_instance['plate'] ?? 0)),
|
'plate' => max(0, (int) ($new_instance['plate'] ?? 0)),
|
||||||
'tabs' => sanitize_textarea_field((string) ($new_instance['tabs'] ?? '')),
|
'tabs' => sanitize_textarea_field((string) ($new_instance['tabs'] ?? '')),
|
||||||
];
|
]; return $this->update_common_fields($new_instance, $old_instance, $business);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7,9 +7,13 @@
|
|||||||
|
|
||||||
namespace AKSRT\Widgets;
|
namespace AKSRT\Widgets;
|
||||||
|
|
||||||
|
use AKSRT\Widgets\Traits\CommonWidgetFields;
|
||||||
|
|
||||||
defined('ABSPATH') || exit;
|
defined('ABSPATH') || exit;
|
||||||
|
|
||||||
class WidgetForumTopicLists extends \WP_Widget {
|
class WidgetForumTopicLists extends \WP_Widget {
|
||||||
|
use CommonWidgetFields;
|
||||||
|
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
parent::__construct(
|
parent::__construct(
|
||||||
@@ -271,10 +275,11 @@ class WidgetForumTopicLists extends \WP_Widget {
|
|||||||
</label>
|
</label>
|
||||||
</p>
|
</p>
|
||||||
<?php
|
<?php
|
||||||
}
|
$this->render_common_form_section($instance);
|
||||||
|
}
|
||||||
|
|
||||||
public function update($new_instance, $old_instance): array {
|
public function update($new_instance, $old_instance): array {
|
||||||
return [
|
$business = [
|
||||||
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
||||||
'count' => max(1, min(30, (int) ($new_instance['count'] ?? 8))),
|
'count' => max(1, min(30, (int) ($new_instance['count'] ?? 8))),
|
||||||
'orderby' => sanitize_key((string) ($new_instance['orderby'] ?? 'date')),
|
'orderby' => sanitize_key((string) ($new_instance['orderby'] ?? 'date')),
|
||||||
@@ -282,6 +287,6 @@ class WidgetForumTopicLists extends \WP_Widget {
|
|||||||
'plate_id' => max(0, (int) ($new_instance['plate_id'] ?? 0)),
|
'plate_id' => max(0, (int) ($new_instance['plate_id'] ?? 0)),
|
||||||
'current_plate' => !empty($new_instance['current_plate']) ? 1 : 0,
|
'current_plate' => !empty($new_instance['current_plate']) ? 1 : 0,
|
||||||
'paginate' => in_array(sanitize_key((string) ($new_instance['paginate'] ?? 'ajax')), ['none', 'ajax', 'number'], true) ? sanitize_key((string) ($new_instance['paginate'] ?? 'ajax')) : 'ajax',
|
'paginate' => in_array(sanitize_key((string) ($new_instance['paginate'] ?? 'ajax')), ['none', 'ajax', 'number'], true) ? sanitize_key((string) ($new_instance['paginate'] ?? 'ajax')) : 'ajax',
|
||||||
];
|
]; return $this->update_common_fields($new_instance, $old_instance, $business);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7,9 +7,13 @@
|
|||||||
|
|
||||||
namespace AKSRT\Widgets;
|
namespace AKSRT\Widgets;
|
||||||
|
|
||||||
|
use AKSRT\Widgets\Traits\CommonWidgetFields;
|
||||||
|
|
||||||
defined('ABSPATH') || exit;
|
defined('ABSPATH') || exit;
|
||||||
|
|
||||||
class WidgetForumTopicTerms extends \WP_Widget {
|
class WidgetForumTopicTerms extends \WP_Widget {
|
||||||
|
use CommonWidgetFields;
|
||||||
|
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
parent::__construct(
|
parent::__construct(
|
||||||
@@ -153,20 +157,21 @@ class WidgetForumTopicTerms extends \WP_Widget {
|
|||||||
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('hide_empty')); ?>" value="1" <?php checked(!isset($instance['hide_empty']) || !empty($instance['hide_empty'])); ?>> <?php esc_html_e('隐藏空标签', 'aksrt'); ?></label>
|
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('hide_empty')); ?>" value="1" <?php checked(!isset($instance['hide_empty']) || !empty($instance['hide_empty'])); ?>> <?php esc_html_e('隐藏空标签', 'aksrt'); ?></label>
|
||||||
</p>
|
</p>
|
||||||
<?php
|
<?php
|
||||||
}
|
$this->render_common_form_section($instance);
|
||||||
|
}
|
||||||
|
|
||||||
public function update($new_instance, $old_instance): array {
|
public function update($new_instance, $old_instance): array {
|
||||||
$orderby = sanitize_key((string) ($new_instance['orderby'] ?? 'count'));
|
$orderby = sanitize_key((string) ($new_instance['orderby'] ?? 'count'));
|
||||||
if (!in_array($orderby, ['count', 'name', 'views'], true)) {
|
if (!in_array($orderby, ['count', 'name', 'views'], true)) {
|
||||||
$orderby = 'count';
|
$orderby = 'count';
|
||||||
}
|
}
|
||||||
return [
|
$business = [
|
||||||
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
||||||
'number' => max(1, min(40, (int) ($new_instance['number'] ?? 12))),
|
'number' => max(1, min(40, (int) ($new_instance['number'] ?? 12))),
|
||||||
'orderby' => $orderby,
|
'orderby' => $orderby,
|
||||||
'style' => ($new_instance['style'] ?? '') === 'card' ? 'card' : 'mini',
|
'style' => ($new_instance['style'] ?? '') === 'card' ? 'card' : 'mini',
|
||||||
'include' => sanitize_text_field((string) ($new_instance['include'] ?? '')),
|
'include' => sanitize_text_field((string) ($new_instance['include'] ?? '')),
|
||||||
'hide_empty' => !empty($new_instance['hide_empty']) ? 1 : 0,
|
'hide_empty' => !empty($new_instance['hide_empty']) ? 1 : 0,
|
||||||
];
|
]; return $this->update_common_fields($new_instance, $old_instance, $business);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7,9 +7,13 @@
|
|||||||
|
|
||||||
namespace AKSRT\Widgets;
|
namespace AKSRT\Widgets;
|
||||||
|
|
||||||
|
use AKSRT\Widgets\Traits\CommonWidgetFields;
|
||||||
|
|
||||||
defined('ABSPATH') || exit;
|
defined('ABSPATH') || exit;
|
||||||
|
|
||||||
class WidgetHighlights extends \WP_Widget {
|
class WidgetHighlights extends \WP_Widget {
|
||||||
|
use CommonWidgetFields;
|
||||||
|
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
parent::__construct(
|
parent::__construct(
|
||||||
@@ -187,7 +191,8 @@ class WidgetHighlights extends \WP_Widget {
|
|||||||
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('go_link')); ?>" value="1" <?php checked(!empty($instance['go_link'])); ?>> <?php esc_html_e('外链跳转页', 'aksrt'); ?></label>
|
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('go_link')); ?>" value="1" <?php checked(!empty($instance['go_link'])); ?>> <?php esc_html_e('外链跳转页', 'aksrt'); ?></label>
|
||||||
</p>
|
</p>
|
||||||
<?php
|
<?php
|
||||||
}
|
$this->render_common_form_section($instance);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param array<string,mixed> $new_instance
|
* @param array<string,mixed> $new_instance
|
||||||
@@ -195,12 +200,12 @@ class WidgetHighlights extends \WP_Widget {
|
|||||||
* @return array<string,mixed>
|
* @return array<string,mixed>
|
||||||
*/
|
*/
|
||||||
public function update($new_instance, $old_instance): array {
|
public function update($new_instance, $old_instance): array {
|
||||||
return [
|
$business = [
|
||||||
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
||||||
'cards' => $this->normalize($new_instance['cards'] ?? []),
|
'cards' => $this->normalize($new_instance['cards'] ?? []),
|
||||||
'go_link' => !empty($new_instance['go_link']) ? 1 : 0,
|
'go_link' => !empty($new_instance['go_link']) ? 1 : 0,
|
||||||
'obs_animation' => sanitize_key((string) ($new_instance['obs_animation'] ?? 'slideup')),
|
'obs_animation' => sanitize_key((string) ($new_instance['obs_animation'] ?? 'slideup')),
|
||||||
'animation_repeat' => !empty($new_instance['animation_repeat']) ? 1 : 0,
|
'animation_repeat' => !empty($new_instance['animation_repeat']) ? 1 : 0,
|
||||||
];
|
]; return $this->update_common_fields($new_instance, $old_instance, $business);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7,9 +7,13 @@
|
|||||||
|
|
||||||
namespace AKSRT\Widgets;
|
namespace AKSRT\Widgets;
|
||||||
|
|
||||||
|
use AKSRT\Widgets\Traits\CommonWidgetFields;
|
||||||
|
|
||||||
defined('ABSPATH') || exit;
|
defined('ABSPATH') || exit;
|
||||||
|
|
||||||
class WidgetIconCoverCards extends \WP_Widget {
|
class WidgetIconCoverCards extends \WP_Widget {
|
||||||
|
use CommonWidgetFields;
|
||||||
|
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
parent::__construct(
|
parent::__construct(
|
||||||
@@ -183,7 +187,8 @@ class WidgetIconCoverCards extends \WP_Widget {
|
|||||||
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('go_link')); ?>" value="1" <?php checked(!empty($instance['go_link'])); ?>> <?php esc_html_e('外链跳转页', 'aksrt'); ?></label>
|
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('go_link')); ?>" value="1" <?php checked(!empty($instance['go_link'])); ?>> <?php esc_html_e('外链跳转页', 'aksrt'); ?></label>
|
||||||
</p>
|
</p>
|
||||||
<?php
|
<?php
|
||||||
}
|
$this->render_common_form_section($instance);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param array<string,mixed> $new_instance
|
* @param array<string,mixed> $new_instance
|
||||||
@@ -191,7 +196,7 @@ class WidgetIconCoverCards extends \WP_Widget {
|
|||||||
* @return array<string,mixed>
|
* @return array<string,mixed>
|
||||||
*/
|
*/
|
||||||
public function update($new_instance, $old_instance): array {
|
public function update($new_instance, $old_instance): array {
|
||||||
return [
|
$business = [
|
||||||
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
||||||
'cards' => $this->normalize($new_instance['cards'] ?? []),
|
'cards' => $this->normalize($new_instance['cards'] ?? []),
|
||||||
'pc_row' => max(1, min(4, (int) ($new_instance['pc_row'] ?? 2))),
|
'pc_row' => max(1, min(4, (int) ($new_instance['pc_row'] ?? 2))),
|
||||||
@@ -200,6 +205,6 @@ class WidgetIconCoverCards extends \WP_Widget {
|
|||||||
'icon_radius4' => !empty($new_instance['icon_radius4']) ? 1 : 0,
|
'icon_radius4' => !empty($new_instance['icon_radius4']) ? 1 : 0,
|
||||||
'show_widget_bg' => !empty($new_instance['show_widget_bg']) ? 1 : 0,
|
'show_widget_bg' => !empty($new_instance['show_widget_bg']) ? 1 : 0,
|
||||||
'go_link' => !empty($new_instance['go_link']) ? 1 : 0,
|
'go_link' => !empty($new_instance['go_link']) ? 1 : 0,
|
||||||
];
|
]; return $this->update_common_fields($new_instance, $old_instance, $business);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7,9 +7,13 @@
|
|||||||
|
|
||||||
namespace AKSRT\Widgets;
|
namespace AKSRT\Widgets;
|
||||||
|
|
||||||
|
use AKSRT\Widgets\Traits\CommonWidgetFields;
|
||||||
|
|
||||||
defined('ABSPATH') || exit;
|
defined('ABSPATH') || exit;
|
||||||
|
|
||||||
class WidgetIframe extends \WP_Widget {
|
class WidgetIframe extends \WP_Widget {
|
||||||
|
use CommonWidgetFields;
|
||||||
|
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
parent::__construct(
|
parent::__construct(
|
||||||
@@ -137,7 +141,8 @@ class WidgetIframe extends \WP_Widget {
|
|||||||
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('allowfullscreen')); ?>" value="1" <?php checked(!empty($instance['allowfullscreen'])); ?>> <?php esc_html_e('允许全屏', 'aksrt'); ?></label>
|
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('allowfullscreen')); ?>" value="1" <?php checked(!empty($instance['allowfullscreen'])); ?>> <?php esc_html_e('允许全屏', 'aksrt'); ?></label>
|
||||||
</p>
|
</p>
|
||||||
<?php
|
<?php
|
||||||
}
|
$this->render_common_form_section($instance);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param array<string,mixed> $new_instance
|
* @param array<string,mixed> $new_instance
|
||||||
@@ -145,11 +150,11 @@ class WidgetIframe extends \WP_Widget {
|
|||||||
* @return array<string,mixed>
|
* @return array<string,mixed>
|
||||||
*/
|
*/
|
||||||
public function update($new_instance, $old_instance): array {
|
public function update($new_instance, $old_instance): array {
|
||||||
return [
|
$business = [
|
||||||
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
||||||
'url' => trim((string) ($new_instance['url'] ?? '')),
|
'url' => trim((string) ($new_instance['url'] ?? '')),
|
||||||
'aspect' => max(20, min(300, (int) ($new_instance['aspect'] ?? 55))),
|
'aspect' => max(20, min(300, (int) ($new_instance['aspect'] ?? 55))),
|
||||||
'allowfullscreen' => !empty($new_instance['allowfullscreen']) ? 1 : 0,
|
'allowfullscreen' => !empty($new_instance['allowfullscreen']) ? 1 : 0,
|
||||||
];
|
]; return $this->update_common_fields($new_instance, $old_instance, $business);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7,9 +7,13 @@
|
|||||||
|
|
||||||
namespace AKSRT\Widgets;
|
namespace AKSRT\Widgets;
|
||||||
|
|
||||||
|
use AKSRT\Widgets\Traits\CommonWidgetFields;
|
||||||
|
|
||||||
defined('ABSPATH') || exit;
|
defined('ABSPATH') || exit;
|
||||||
|
|
||||||
class WidgetLangSwitch extends \WP_Widget {
|
class WidgetLangSwitch extends \WP_Widget {
|
||||||
|
use CommonWidgetFields;
|
||||||
|
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
parent::__construct(
|
parent::__construct(
|
||||||
@@ -101,7 +105,8 @@ class WidgetLangSwitch extends \WP_Widget {
|
|||||||
</p>
|
</p>
|
||||||
<p><small><?php esc_html_e('需要安装 Polylang 或 WPML 等多语言插件才能生效。', 'aksrt'); ?></small></p>
|
<p><small><?php esc_html_e('需要安装 Polylang 或 WPML 等多语言插件才能生效。', 'aksrt'); ?></small></p>
|
||||||
<?php
|
<?php
|
||||||
}
|
$this->render_common_form_section($instance);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param array<string,mixed> $new_instance
|
* @param array<string,mixed> $new_instance
|
||||||
@@ -113,11 +118,11 @@ class WidgetLangSwitch extends \WP_Widget {
|
|||||||
if (!in_array($style, ['dropdown', 'flags', 'inline'], true)) {
|
if (!in_array($style, ['dropdown', 'flags', 'inline'], true)) {
|
||||||
$style = 'dropdown';
|
$style = 'dropdown';
|
||||||
}
|
}
|
||||||
return [
|
$business = [
|
||||||
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
||||||
'style' => $style,
|
'style' => $style,
|
||||||
'show_name' => !empty($new_instance['show_name']) ? 1 : 0,
|
'show_name' => !empty($new_instance['show_name']) ? 1 : 0,
|
||||||
'hide_current' => !empty($new_instance['hide_current']) ? 1 : 0,
|
'hide_current' => !empty($new_instance['hide_current']) ? 1 : 0,
|
||||||
];
|
]; return $this->update_common_fields($new_instance, $old_instance, $business);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7,9 +7,12 @@
|
|||||||
|
|
||||||
namespace AKSRT\Widgets;
|
namespace AKSRT\Widgets;
|
||||||
|
|
||||||
|
use AKSRT\Widgets\Traits\CommonWidgetFields;
|
||||||
|
|
||||||
defined('ABSPATH') || exit;
|
defined('ABSPATH') || exit;
|
||||||
|
|
||||||
class WidgetMainPosts extends \WP_Widget {
|
class WidgetMainPosts extends \WP_Widget {
|
||||||
|
use CommonWidgetFields;
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
parent::__construct(
|
parent::__construct(
|
||||||
@@ -32,6 +35,8 @@ class WidgetMainPosts extends \WP_Widget {
|
|||||||
$orderby = sanitize_key((string) ($instance['orderby'] ?? 'date'));
|
$orderby = sanitize_key((string) ($instance['orderby'] ?? 'date'));
|
||||||
$cat = (int) ($instance['cat'] ?? 0);
|
$cat = (int) ($instance['cat'] ?? 0);
|
||||||
$limit_day = max(0, (int) ($instance['limit_day'] ?? 0));
|
$limit_day = max(0, (int) ($instance['limit_day'] ?? 0));
|
||||||
|
// Zibll `order` parity: asc/desc. Default desc.
|
||||||
|
$order = strtoupper(sanitize_key((string) ($instance['order'] ?? 'desc'))) === 'ASC' ? 'ASC' : 'DESC';
|
||||||
|
|
||||||
$query = [
|
$query = [
|
||||||
'post_type' => 'post',
|
'post_type' => 'post',
|
||||||
@@ -50,37 +55,37 @@ class WidgetMainPosts extends \WP_Widget {
|
|||||||
case 'views':
|
case 'views':
|
||||||
$query['meta_key'] = 'aksrt_post_views';
|
$query['meta_key'] = 'aksrt_post_views';
|
||||||
$query['orderby'] = 'meta_value_num';
|
$query['orderby'] = 'meta_value_num';
|
||||||
$query['order'] = 'DESC';
|
$query['order'] = $order;
|
||||||
break;
|
break;
|
||||||
case 'comments':
|
case 'comments':
|
||||||
$query['orderby'] = 'comment_count';
|
$query['orderby'] = 'comment_count';
|
||||||
$query['order'] = 'DESC';
|
$query['order'] = $order;
|
||||||
break;
|
break;
|
||||||
case 'likes':
|
case 'likes':
|
||||||
$query['meta_key'] = '_aksrt_like_count';
|
$query['meta_key'] = '_aksrt_like_count';
|
||||||
$query['orderby'] = 'meta_value_num';
|
$query['orderby'] = 'meta_value_num';
|
||||||
$query['order'] = 'DESC';
|
$query['order'] = $order;
|
||||||
break;
|
break;
|
||||||
case 'favorites':
|
case 'favorites':
|
||||||
$query['meta_key'] = '_aksrt_favorite_count';
|
$query['meta_key'] = '_aksrt_favorite_count';
|
||||||
$query['orderby'] = 'meta_value_num';
|
$query['orderby'] = 'meta_value_num';
|
||||||
$query['order'] = 'DESC';
|
$query['order'] = $order;
|
||||||
break;
|
break;
|
||||||
case 'downloads':
|
case 'downloads':
|
||||||
$query['meta_key'] = '_aksrt_res_download_count';
|
$query['meta_key'] = '_aksrt_res_download_count';
|
||||||
$query['orderby'] = 'meta_value_num';
|
$query['orderby'] = 'meta_value_num';
|
||||||
$query['order'] = 'DESC';
|
$query['order'] = $order;
|
||||||
break;
|
break;
|
||||||
case 'rand':
|
case 'rand':
|
||||||
$query['orderby'] = 'rand';
|
$query['orderby'] = 'rand';
|
||||||
break;
|
break;
|
||||||
case 'modified':
|
case 'modified':
|
||||||
$query['orderby'] = 'modified';
|
$query['orderby'] = 'modified';
|
||||||
$query['order'] = 'DESC';
|
$query['order'] = $order;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
$query['orderby'] = 'date';
|
$query['orderby'] = 'date';
|
||||||
$query['order'] = 'DESC';
|
$query['order'] = $order;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Topics taxonomy (CSV term IDs).
|
// Topics taxonomy (CSV term IDs).
|
||||||
@@ -246,6 +251,7 @@ class WidgetMainPosts extends \WP_Widget {
|
|||||||
$base_qs = array_filter([
|
$base_qs = array_filter([
|
||||||
'count' => $count,
|
'count' => $count,
|
||||||
'orderby' => sanitize_key((string) ($instance['orderby'] ?? 'date')),
|
'orderby' => sanitize_key((string) ($instance['orderby'] ?? 'date')),
|
||||||
|
'order' => strtoupper(sanitize_key((string) ($instance['order'] ?? 'desc'))) === 'ASC' ? 'ASC' : 'DESC',
|
||||||
'cat' => (int) ($instance['cat'] ?? 0),
|
'cat' => (int) ($instance['cat'] ?? 0),
|
||||||
'limit_day' => (int) ($instance['limit_day'] ?? 0),
|
'limit_day' => (int) ($instance['limit_day'] ?? 0),
|
||||||
'topics' => (string) ($instance['topics'] ?? ''),
|
'topics' => (string) ($instance['topics'] ?? ''),
|
||||||
@@ -255,7 +261,7 @@ class WidgetMainPosts extends \WP_Widget {
|
|||||||
'show_meta' => !isset($instance['show_meta']) || !empty($instance['show_meta']) ? 1 : 0,
|
'show_meta' => !isset($instance['show_meta']) || !empty($instance['show_meta']) ? 1 : 0,
|
||||||
'show_number' => !empty($instance['show_number']) ? 1 : 0,
|
'show_number' => !empty($instance['show_number']) ? 1 : 0,
|
||||||
'paginate' => $paginate,
|
'paginate' => $paginate,
|
||||||
'load_mode' => sanitize_key((string) ($new_instance['load_mode'] ?? 'detail')) === 'ajax' ? 'ajax' : 'detail',
|
'load_mode' => sanitize_key((string) ($instance['load_mode'] ?? 'detail')) === 'ajax' ? 'ajax' : 'detail',
|
||||||
], static function ($v) {
|
], static function ($v) {
|
||||||
return $v !== '' && $v !== null;
|
return $v !== '' && $v !== null;
|
||||||
});
|
});
|
||||||
@@ -311,6 +317,7 @@ class WidgetMainPosts extends \WP_Widget {
|
|||||||
'page' => 1,
|
'page' => 1,
|
||||||
'count' => $count,
|
'count' => $count,
|
||||||
'orderby' => sanitize_key((string) ($instance['orderby'] ?? 'date')),
|
'orderby' => sanitize_key((string) ($instance['orderby'] ?? 'date')),
|
||||||
|
'order' => strtoupper(sanitize_key((string) ($instance['order'] ?? 'desc'))) === 'ASC' ? 'ASC' : 'DESC',
|
||||||
'cat' => (int) ($instance['cat'] ?? 0),
|
'cat' => (int) ($instance['cat'] ?? 0),
|
||||||
'limit_day' => (int) ($instance['limit_day'] ?? 0),
|
'limit_day' => (int) ($instance['limit_day'] ?? 0),
|
||||||
'topics' => (string) ($instance['topics'] ?? ''),
|
'topics' => (string) ($instance['topics'] ?? ''),
|
||||||
@@ -320,19 +327,17 @@ class WidgetMainPosts extends \WP_Widget {
|
|||||||
'show_meta' => !isset($instance['show_meta']) || !empty($instance['show_meta']) ? 1 : 0,
|
'show_meta' => !isset($instance['show_meta']) || !empty($instance['show_meta']) ? 1 : 0,
|
||||||
'show_number' => !empty($instance['show_number']) ? 1 : 0,
|
'show_number' => !empty($instance['show_number']) ? 1 : 0,
|
||||||
'paginate' => $paginate,
|
'paginate' => $paginate,
|
||||||
'load_mode' => sanitize_key((string) ($new_instance['load_mode'] ?? 'detail')) === 'ajax' ? 'ajax' : 'detail',
|
'load_mode' => sanitize_key((string) ($instance['load_mode'] ?? 'detail')) === 'ajax' ? 'ajax' : 'detail',
|
||||||
], static function ($v) {
|
], static function ($v) {
|
||||||
return $v !== '' && $v !== null;
|
return $v !== '' && $v !== null;
|
||||||
}));
|
}));
|
||||||
$in_affix = !empty($instance['in_affix']);
|
$affix = function_exists('aksrt_widget_affix_attrs') ? aksrt_widget_affix_attrs($instance) : ['class' => '', 'attr' => ''];
|
||||||
$wrap_cls = 'aksrt-main-posts style-' . $style . ' ajaxpager';
|
$wrap_cls = 'aksrt-main-posts style-' . $style . ' ajaxpager';
|
||||||
if ($style === 'mini') {
|
if ($style === 'mini') {
|
||||||
$wrap_cls .= ' zib-widget posts-mini-lists';
|
$wrap_cls .= ' zib-widget posts-mini-lists';
|
||||||
}
|
}
|
||||||
if ($in_affix) {
|
$wrap_cls .= $affix['class'];
|
||||||
$wrap_cls .= ' is-affix';
|
echo '<div class="' . esc_attr($wrap_cls) . '" data-aksrt-ajaxpager data-aksrt-ajax-url="' . esc_url($rest) . '" data-load-mode="' . esc_attr($load_mode) . '" data-query="' . esc_attr($qs) . '"' . ($load_mode === 'ajax' ? ' data-loaded="0"' : ' data-loaded="1"') . $affix['attr'] . '>';
|
||||||
}
|
|
||||||
echo '<div class="' . esc_attr($wrap_cls) . '" data-aksrt-ajaxpager data-aksrt-ajax-url="' . esc_url($rest) . '" data-load-mode="' . esc_attr($load_mode) . '" data-query="' . esc_attr($qs) . '"' . ($load_mode === 'ajax' ? ' data-loaded="0"' : ' data-loaded="1"') . ($in_affix ? ' data-affix="true"' : '') . '>';
|
|
||||||
|
|
||||||
if ($load_mode === 'ajax') {
|
if ($load_mode === 'ajax') {
|
||||||
// Skeleton first paint (zibll load_mode=ajax).
|
// Skeleton first paint (zibll load_mode=ajax).
|
||||||
@@ -389,6 +394,10 @@ class WidgetMainPosts extends \WP_Widget {
|
|||||||
<option value="downloads" <?php selected(($instance['orderby'] ?? ''), 'downloads'); ?>><?php esc_html_e('下载', 'aksrt'); ?></option>
|
<option value="downloads" <?php selected(($instance['orderby'] ?? ''), 'downloads'); ?>><?php esc_html_e('下载', 'aksrt'); ?></option>
|
||||||
<option value="rand" <?php selected(($instance['orderby'] ?? ''), 'rand'); ?>><?php esc_html_e('随机', 'aksrt'); ?></option>
|
<option value="rand" <?php selected(($instance['orderby'] ?? ''), 'rand'); ?>><?php esc_html_e('随机', 'aksrt'); ?></option>
|
||||||
</select>
|
</select>
|
||||||
|
<select name="<?php echo esc_attr($this->get_field_name('order')); ?>">
|
||||||
|
<option value="desc" <?php selected(($instance['order'] ?? 'desc'), 'desc'); ?>><?php esc_html_e('降序', 'aksrt'); ?></option>
|
||||||
|
<option value="asc" <?php selected(($instance['order'] ?? ''), 'asc'); ?>><?php esc_html_e('升序', 'aksrt'); ?></option>
|
||||||
|
</select>
|
||||||
</label>
|
</label>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
@@ -439,9 +448,9 @@ class WidgetMainPosts extends \WP_Widget {
|
|||||||
<p>
|
<p>
|
||||||
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('show_thumb')); ?>" value="1" <?php checked(!isset($instance['show_thumb']) || !empty($instance['show_thumb'])); ?>> <?php esc_html_e('显示缩略图', 'aksrt'); ?></label><br>
|
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('show_thumb')); ?>" value="1" <?php checked(!isset($instance['show_thumb']) || !empty($instance['show_thumb'])); ?>> <?php esc_html_e('显示缩略图', 'aksrt'); ?></label><br>
|
||||||
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('show_meta')); ?>" value="1" <?php checked(!isset($instance['show_meta']) || !empty($instance['show_meta'])); ?>> <?php esc_html_e('显示 meta', 'aksrt'); ?></label><br>
|
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('show_meta')); ?>" value="1" <?php checked(!isset($instance['show_meta']) || !empty($instance['show_meta'])); ?>> <?php esc_html_e('显示 meta', 'aksrt'); ?></label><br>
|
||||||
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('show_number')); ?>" value="1" <?php checked(!empty($instance['show_number'])); ?>> <?php esc_html_e('显示序号', 'aksrt'); ?></label><br>
|
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('show_number')); ?>" value="1" <?php checked(!empty($instance['show_number'])); ?>> <?php esc_html_e('显示序号', 'aksrt'); ?></label>
|
||||||
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('in_affix')); ?>" value="1" <?php checked(!empty($instance['in_affix'])); ?>> <?php esc_html_e('侧栏随动', 'aksrt'); ?></label>
|
|
||||||
</p>
|
</p>
|
||||||
|
<?php $this->render_common_form_section($instance); ?>
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -458,11 +467,12 @@ class WidgetMainPosts extends \WP_Widget {
|
|||||||
if (!in_array($paginate, ['none', 'ajax', 'number'], true)) {
|
if (!in_array($paginate, ['none', 'ajax', 'number'], true)) {
|
||||||
$paginate = 'none';
|
$paginate = 'none';
|
||||||
}
|
}
|
||||||
return [
|
return $this->update_common_fields($new_instance, $old_instance, [
|
||||||
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
||||||
'count' => max(1, min(30, (int) ($new_instance['count'] ?? 6))),
|
'count' => max(1, min(30, (int) ($new_instance['count'] ?? 6))),
|
||||||
'style' => $style,
|
'style' => $style,
|
||||||
'orderby' => $orderby,
|
'orderby' => $orderby,
|
||||||
|
'order' => strtoupper(sanitize_key((string) ($new_instance['order'] ?? 'desc'))) === 'ASC' ? 'ASC' : 'DESC',
|
||||||
'cat' => max(0, (int) ($new_instance['cat'] ?? 0)),
|
'cat' => max(0, (int) ($new_instance['cat'] ?? 0)),
|
||||||
'limit_day' => max(0, (int) ($new_instance['limit_day'] ?? 0)),
|
'limit_day' => max(0, (int) ($new_instance['limit_day'] ?? 0)),
|
||||||
'topics' => sanitize_text_field((string) ($new_instance['topics'] ?? '')),
|
'topics' => sanitize_text_field((string) ($new_instance['topics'] ?? '')),
|
||||||
@@ -472,7 +482,6 @@ class WidgetMainPosts extends \WP_Widget {
|
|||||||
'show_thumb' => !empty($new_instance['show_thumb']) ? 1 : 0,
|
'show_thumb' => !empty($new_instance['show_thumb']) ? 1 : 0,
|
||||||
'show_meta' => !empty($new_instance['show_meta']) ? 1 : 0,
|
'show_meta' => !empty($new_instance['show_meta']) ? 1 : 0,
|
||||||
'show_number' => !empty($new_instance['show_number']) ? 1 : 0,
|
'show_number' => !empty($new_instance['show_number']) ? 1 : 0,
|
||||||
'in_affix' => !empty($new_instance['in_affix']) ? 1 : 0,
|
]);
|
||||||
];
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -9,9 +9,13 @@
|
|||||||
|
|
||||||
namespace AKSRT\Widgets;
|
namespace AKSRT\Widgets;
|
||||||
|
|
||||||
|
use AKSRT\Widgets\Traits\CommonWidgetFields;
|
||||||
|
|
||||||
defined('ABSPATH') || exit;
|
defined('ABSPATH') || exit;
|
||||||
|
|
||||||
class WidgetOnelinePosts extends \WP_Widget {
|
class WidgetOnelinePosts extends \WP_Widget {
|
||||||
|
use CommonWidgetFields;
|
||||||
|
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
parent::__construct(
|
parent::__construct(
|
||||||
@@ -33,6 +37,7 @@ class WidgetOnelinePosts extends \WP_Widget {
|
|||||||
$orderby = sanitize_key((string) ($instance['orderby'] ?? 'date'));
|
$orderby = sanitize_key((string) ($instance['orderby'] ?? 'date'));
|
||||||
$cat = (int) ($instance['cat'] ?? 0);
|
$cat = (int) ($instance['cat'] ?? 0);
|
||||||
$limit_day = max(0, (int) ($instance['limit_day'] ?? 0));
|
$limit_day = max(0, (int) ($instance['limit_day'] ?? 0));
|
||||||
|
$order = strtoupper(sanitize_key((string) ($instance['order'] ?? 'desc'))) === 'ASC' ? 'ASC' : 'DESC';
|
||||||
$query = [
|
$query = [
|
||||||
'post_type' => 'post',
|
'post_type' => 'post',
|
||||||
'post_status' => 'publish',
|
'post_status' => 'publish',
|
||||||
@@ -50,18 +55,32 @@ class WidgetOnelinePosts extends \WP_Widget {
|
|||||||
case 'views':
|
case 'views':
|
||||||
$query['meta_key'] = 'aksrt_post_views';
|
$query['meta_key'] = 'aksrt_post_views';
|
||||||
$query['orderby'] = 'meta_value_num';
|
$query['orderby'] = 'meta_value_num';
|
||||||
$query['order'] = 'DESC';
|
$query['order'] = $order;
|
||||||
break;
|
break;
|
||||||
case 'comments':
|
case 'comments':
|
||||||
$query['orderby'] = 'comment_count';
|
$query['orderby'] = 'comment_count';
|
||||||
$query['order'] = 'DESC';
|
$query['order'] = $order;
|
||||||
|
break;
|
||||||
|
case 'likes':
|
||||||
|
$query['meta_key'] = '_aksrt_like_count';
|
||||||
|
$query['orderby'] = 'meta_value_num';
|
||||||
|
$query['order'] = $order;
|
||||||
|
break;
|
||||||
|
case 'favorites':
|
||||||
|
$query['meta_key'] = '_aksrt_favorite_count';
|
||||||
|
$query['orderby'] = 'meta_value_num';
|
||||||
|
$query['order'] = $order;
|
||||||
|
break;
|
||||||
|
case 'modified':
|
||||||
|
$query['orderby'] = 'modified';
|
||||||
|
$query['order'] = $order;
|
||||||
break;
|
break;
|
||||||
case 'rand':
|
case 'rand':
|
||||||
$query['orderby'] = 'rand';
|
$query['orderby'] = 'rand';
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
$query['orderby'] = 'date';
|
$query['orderby'] = 'date';
|
||||||
$query['order'] = 'DESC';
|
$query['order'] = $order;
|
||||||
}
|
}
|
||||||
$topics_raw = trim((string) ($instance['topics'] ?? ''));
|
$topics_raw = trim((string) ($instance['topics'] ?? ''));
|
||||||
if ($topics_raw !== '' && taxonomy_exists('topics')) {
|
if ($topics_raw !== '' && taxonomy_exists('topics')) {
|
||||||
@@ -217,10 +236,17 @@ class WidgetOnelinePosts extends \WP_Widget {
|
|||||||
<label><?php esc_html_e('排序', 'aksrt'); ?>
|
<label><?php esc_html_e('排序', 'aksrt'); ?>
|
||||||
<select name="<?php echo esc_attr($this->get_field_name('orderby')); ?>">
|
<select name="<?php echo esc_attr($this->get_field_name('orderby')); ?>">
|
||||||
<option value="date" <?php selected(($instance['orderby'] ?? 'date'), 'date'); ?>><?php esc_html_e('时间', 'aksrt'); ?></option>
|
<option value="date" <?php selected(($instance['orderby'] ?? 'date'), 'date'); ?>><?php esc_html_e('时间', 'aksrt'); ?></option>
|
||||||
|
<option value="modified" <?php selected(($instance['orderby'] ?? ''), 'modified'); ?>><?php esc_html_e('更新', 'aksrt'); ?></option>
|
||||||
<option value="views" <?php selected(($instance['orderby'] ?? ''), 'views'); ?>><?php esc_html_e('浏览', 'aksrt'); ?></option>
|
<option value="views" <?php selected(($instance['orderby'] ?? ''), 'views'); ?>><?php esc_html_e('浏览', 'aksrt'); ?></option>
|
||||||
<option value="comments" <?php selected(($instance['orderby'] ?? ''), 'comments'); ?>><?php esc_html_e('评论', 'aksrt'); ?></option>
|
<option value="comments" <?php selected(($instance['orderby'] ?? ''), 'comments'); ?>><?php esc_html_e('评论', 'aksrt'); ?></option>
|
||||||
|
<option value="likes" <?php selected(($instance['orderby'] ?? ''), 'likes'); ?>><?php esc_html_e('点赞', 'aksrt'); ?></option>
|
||||||
|
<option value="favorites" <?php selected(($instance['orderby'] ?? ''), 'favorites'); ?>><?php esc_html_e('收藏', 'aksrt'); ?></option>
|
||||||
<option value="rand" <?php selected(($instance['orderby'] ?? ''), 'rand'); ?>><?php esc_html_e('随机', 'aksrt'); ?></option>
|
<option value="rand" <?php selected(($instance['orderby'] ?? ''), 'rand'); ?>><?php esc_html_e('随机', 'aksrt'); ?></option>
|
||||||
</select>
|
</select>
|
||||||
|
<select name="<?php echo esc_attr($this->get_field_name('order')); ?>">
|
||||||
|
<option value="desc" <?php selected(($instance['order'] ?? 'desc'), 'desc'); ?>><?php esc_html_e('降序', 'aksrt'); ?></option>
|
||||||
|
<option value="asc" <?php selected(($instance['order'] ?? ''), 'asc'); ?>><?php esc_html_e('升序', 'aksrt'); ?></option>
|
||||||
|
</select>
|
||||||
</label>
|
</label>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
@@ -249,7 +275,8 @@ class WidgetOnelinePosts extends \WP_Widget {
|
|||||||
</label>
|
</label>
|
||||||
</p>
|
</p>
|
||||||
<?php
|
<?php
|
||||||
}
|
$this->render_common_form_section($instance);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param array<string,mixed> $new_instance
|
* @param array<string,mixed> $new_instance
|
||||||
@@ -262,18 +289,19 @@ class WidgetOnelinePosts extends \WP_Widget {
|
|||||||
$style = 'card';
|
$style = 'card';
|
||||||
}
|
}
|
||||||
$orderby = sanitize_key((string) ($new_instance['orderby'] ?? 'date'));
|
$orderby = sanitize_key((string) ($new_instance['orderby'] ?? 'date'));
|
||||||
if (!in_array($orderby, ['date', 'views', 'comments', 'rand'], true)) {
|
if (!in_array($orderby, ['date', 'modified', 'views', 'comments', 'likes', 'favorites', 'rand'], true)) {
|
||||||
$orderby = 'date';
|
$orderby = 'date';
|
||||||
}
|
}
|
||||||
return [
|
$business = [
|
||||||
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
||||||
'count' => max(1, min(20, (int) ($new_instance['count'] ?? 8))),
|
'count' => max(1, min(20, (int) ($new_instance['count'] ?? 8))),
|
||||||
'style' => $style,
|
'style' => $style,
|
||||||
'orderby' => $orderby,
|
'orderby' => $orderby,
|
||||||
|
'order' => strtoupper(sanitize_key((string) ($new_instance['order'] ?? 'desc'))) === 'ASC' ? 'ASC' : 'DESC',
|
||||||
'cat' => max(0, (int) ($new_instance['cat'] ?? 0)),
|
'cat' => max(0, (int) ($new_instance['cat'] ?? 0)),
|
||||||
'limit_day' => max(0, (int) ($new_instance['limit_day'] ?? 0)),
|
'limit_day' => max(0, (int) ($new_instance['limit_day'] ?? 0)),
|
||||||
'topics' => sanitize_text_field((string) ($new_instance['topics'] ?? '')),
|
'topics' => sanitize_text_field((string) ($new_instance['topics'] ?? '')),
|
||||||
'pay_type' => sanitize_key((string) ($new_instance['pay_type'] ?? '')),
|
'pay_type' => sanitize_key((string) ($new_instance['pay_type'] ?? '')),
|
||||||
];
|
]; return $this->update_common_fields($new_instance, $old_instance, $business);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7,9 +7,12 @@
|
|||||||
|
|
||||||
namespace AKSRT\Widgets;
|
namespace AKSRT\Widgets;
|
||||||
|
|
||||||
|
use AKSRT\Widgets\Traits\CommonWidgetFields;
|
||||||
|
|
||||||
defined('ABSPATH') || exit;
|
defined('ABSPATH') || exit;
|
||||||
|
|
||||||
class WidgetPaidPosts extends \WP_Widget {
|
class WidgetPaidPosts extends \WP_Widget {
|
||||||
|
use CommonWidgetFields;
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
parent::__construct(
|
parent::__construct(
|
||||||
@@ -187,10 +190,10 @@ class WidgetPaidPosts extends \WP_Widget {
|
|||||||
echo $args['before_title'] . esc_html($title) . $args['after_title']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
echo $args['before_title'] . esc_html($title) . $args['after_title']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
||||||
}
|
}
|
||||||
|
|
||||||
$in_affix = !empty($instance['in_affix']);
|
$affix = function_exists('aksrt_widget_affix_attrs') ? aksrt_widget_affix_attrs($instance) : ['class' => '', 'attr' => ''];
|
||||||
$rest = rest_url('aksrt/v1/widgets/paid-posts');
|
$rest = rest_url('aksrt/v1/widgets/paid-posts');
|
||||||
$wrap = 'aksrt-paid-posts-wrap ajaxpager' . ($in_affix ? ' is-affix' : '');
|
$wrap = 'aksrt-paid-posts-wrap ajaxpager' . $affix['class'];
|
||||||
echo '<div class="' . esc_attr($wrap) . '" data-aksrt-ajaxpager data-aksrt-ajax-url="' . esc_url($rest) . '"' . ($in_affix ? ' data-affix="true"' : '') . '>';
|
echo '<div class="' . esc_attr($wrap) . '" data-aksrt-ajaxpager data-aksrt-ajax-url="' . esc_url($rest) . '"' . $affix['attr'] . '>';
|
||||||
echo $payload['html']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
echo $payload['html']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
||||||
echo $payload['paginate_html']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
echo $payload['paginate_html']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
||||||
echo '<div class="post_ajax_loader" data-aksrt-ajax-loader data-aksrt-ajax-loader-hide hidden></div>';
|
echo '<div class="post_ajax_loader" data-aksrt-ajax-loader data-aksrt-ajax-loader-hide hidden></div>';
|
||||||
@@ -248,9 +251,7 @@ class WidgetPaidPosts extends \WP_Widget {
|
|||||||
<input class="tiny-text" type="number" min="0" name="<?php echo esc_attr($this->get_field_name('limit_day')); ?>" value="<?php echo esc_attr((string) ((int) ($instance['limit_day'] ?? 0))); ?>">
|
<input class="tiny-text" type="number" min="0" name="<?php echo esc_attr($this->get_field_name('limit_day')); ?>" value="<?php echo esc_attr((string) ((int) ($instance['limit_day'] ?? 0))); ?>">
|
||||||
</label>
|
</label>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<?php $this->render_common_form_section($instance); ?>
|
||||||
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('in_affix')); ?>" value="1" <?php checked(!empty($instance['in_affix'])); ?>> <?php esc_html_e('侧栏随动', 'aksrt'); ?></label>
|
|
||||||
</p>
|
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -259,7 +260,7 @@ class WidgetPaidPosts extends \WP_Widget {
|
|||||||
if (!in_array($orderby, ['date', 'views', 'price'], true)) {
|
if (!in_array($orderby, ['date', 'views', 'price'], true)) {
|
||||||
$orderby = 'date';
|
$orderby = 'date';
|
||||||
}
|
}
|
||||||
return [
|
return $this->update_common_fields($new_instance, $old_instance, [
|
||||||
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
||||||
'count' => max(1, min(20, (int) ($new_instance['count'] ?? 6))),
|
'count' => max(1, min(20, (int) ($new_instance['count'] ?? 6))),
|
||||||
'orderby' => $orderby,
|
'orderby' => $orderby,
|
||||||
@@ -267,6 +268,6 @@ class WidgetPaidPosts extends \WP_Widget {
|
|||||||
'cat' => max(0, (int) ($new_instance['cat'] ?? 0)),
|
'cat' => max(0, (int) ($new_instance['cat'] ?? 0)),
|
||||||
'limit_day' => max(0, (int) ($new_instance['limit_day'] ?? 0)),
|
'limit_day' => max(0, (int) ($new_instance['limit_day'] ?? 0)),
|
||||||
'paginate' => in_array(sanitize_key((string) ($new_instance['paginate'] ?? 'ajax')), ['none', 'ajax', 'number'], true) ? sanitize_key((string) ($new_instance['paginate'] ?? 'ajax')) : 'ajax',
|
'paginate' => in_array(sanitize_key((string) ($new_instance['paginate'] ?? 'ajax')), ['none', 'ajax', 'number'], true) ? sanitize_key((string) ($new_instance['paginate'] ?? 'ajax')) : 'ajax',
|
||||||
];
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7,9 +7,13 @@
|
|||||||
|
|
||||||
namespace AKSRT\Widgets;
|
namespace AKSRT\Widgets;
|
||||||
|
|
||||||
|
use AKSRT\Widgets\Traits\CommonWidgetFields;
|
||||||
|
|
||||||
defined('ABSPATH') || exit;
|
defined('ABSPATH') || exit;
|
||||||
|
|
||||||
class WidgetPartnersScroll extends \WP_Widget {
|
class WidgetPartnersScroll extends \WP_Widget {
|
||||||
|
use CommonWidgetFields;
|
||||||
|
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
parent::__construct(
|
parent::__construct(
|
||||||
@@ -326,10 +330,11 @@ class WidgetPartnersScroll extends \WP_Widget {
|
|||||||
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('show_widget_bg')); ?>" value="1" <?php checked(!empty($instance['show_widget_bg']) || !isset($instance['show_widget_bg'])); ?>> <?php esc_html_e('显示背景盒子', 'aksrt'); ?></label>
|
<label><input type="checkbox" name="<?php echo esc_attr($this->get_field_name('show_widget_bg')); ?>" value="1" <?php checked(!empty($instance['show_widget_bg']) || !isset($instance['show_widget_bg'])); ?>> <?php esc_html_e('显示背景盒子', 'aksrt'); ?></label>
|
||||||
</p>
|
</p>
|
||||||
<?php
|
<?php
|
||||||
}
|
$this->render_common_form_section($instance);
|
||||||
|
}
|
||||||
|
|
||||||
public function update($new_instance, $old_instance): array {
|
public function update($new_instance, $old_instance): array {
|
||||||
return [
|
$business = [
|
||||||
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')),
|
||||||
'link_type' => in_array(($new_instance['link_type'] ?? ''), ['manual', 'link'], true) ? $new_instance['link_type'] : 'manual',
|
'link_type' => in_array(($new_instance['link_type'] ?? ''), ['manual', 'link'], true) ? $new_instance['link_type'] : 'manual',
|
||||||
'partners' => $this->normalize_manual($new_instance['partners'] ?? []),
|
'partners' => $this->normalize_manual($new_instance['partners'] ?? []),
|
||||||
@@ -350,6 +355,6 @@ class WidgetPartnersScroll extends \WP_Widget {
|
|||||||
'end_fade' => !empty($new_instance['end_fade']) ? 1 : 0,
|
'end_fade' => !empty($new_instance['end_fade']) ? 1 : 0,
|
||||||
'go_link' => !empty($new_instance['go_link']) ? 1 : 0,
|
'go_link' => !empty($new_instance['go_link']) ? 1 : 0,
|
||||||
'show_widget_bg' => !empty($new_instance['show_widget_bg']) ? 1 : 0,
|
'show_widget_bg' => !empty($new_instance['show_widget_bg']) ? 1 : 0,
|
||||||
];
|
]; return $this->update_common_fields($new_instance, $old_instance, $business);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7,9 +7,13 @@
|
|||||||
|
|
||||||
namespace AKSRT\Widgets;
|
namespace AKSRT\Widgets;
|
||||||
|
|
||||||
|
use AKSRT\Widgets\Traits\CommonWidgetFields;
|
||||||
|
|
||||||
defined('ABSPATH') || exit;
|
defined('ABSPATH') || exit;
|
||||||
|
|
||||||
class WidgetPostPayBox extends \WP_Widget {
|
class WidgetPostPayBox extends \WP_Widget {
|
||||||
|
use CommonWidgetFields;
|
||||||
|
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
parent::__construct(
|
parent::__construct(
|
||||||
@@ -168,7 +172,8 @@ class WidgetPostPayBox extends \WP_Widget {
|
|||||||
</label>
|
</label>
|
||||||
</p>
|
</p>
|
||||||
<?php
|
<?php
|
||||||
}
|
$this->render_common_form_section($instance);
|
||||||
|
}
|
||||||
|
|
||||||
public function update($new_instance, $old_instance): array {
|
public function update($new_instance, $old_instance): array {
|
||||||
$theme = sanitize_html_class((string) ($new_instance['theme'] ?? 'jb-red'));
|
$theme = sanitize_html_class((string) ($new_instance['theme'] ?? 'jb-red'));
|
||||||
@@ -176,6 +181,6 @@ class WidgetPostPayBox extends \WP_Widget {
|
|||||||
if (!in_array($theme, $allowed, true)) {
|
if (!in_array($theme, $allowed, true)) {
|
||||||
$theme = 'jb-red';
|
$theme = 'jb-red';
|
||||||
}
|
}
|
||||||
return ['theme' => $theme];
|
$business = ['theme' => $theme]; return $this->update_common_fields($new_instance, $old_instance, $business);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||