Remiza-pl/firefighter-widget

GitHub: Remiza-pl/firefighter-widget

一款面向消防部门的 WordPress 插件,用于记录出警事件并实时展示各类应急响应统计数据。

Stars: 0 | Forks: 0

# Firefighter Statistics — WordPress 插件 [![License: GPL v2+](https://img.shields.io/badge/License-GPL%20v2%2B-blue.svg)](https://www.gnu.org/licenses/gpl-2.0.html) [![WordPress](https://img.shields.io/badge/WordPress-5.9%2B-21759b)](https://wordpress.org/) [![PHP](https://img.shields.io/badge/PHP-7.4%2B-777bb4)](https://www.php.net/) [![Tested up to](https://img.shields.io/badge/Tested%20up%20to-WP%206.9-0073aa)](https://wordpress.org/)

Remiza.pl
✅ Officially supported by Remiza.pl
Poland's largest firefighter portal — news, resources, and community support

一款供消防部门追踪和展示应急响应统计数据的 WordPress 插件。按类别记录事件,在 widget 或 Gutenberg block 中显示实时计数,并允许管理员直接从 admin bar 或前端的 widget 记录新条目。 ## 功能 - **Custom Post Type** — 专用的 `firefighter_stats` (Emergencies) post type,带有 category 和 tag taxonomies - **13 个预设类别** — Fire (火灾)、Medical (医疗)、Rescue (救援)、Accident (事故)、Threat (威胁)、Hazmat (危险品)、Water Rescue (水上救援)、Technical (技术)、Vehicle (车辆)、Structure (建筑)、False Alarm (误报)、Training Exercise (训练演习)、Other (其他) — 每个都有默认颜色和 emoji 图标;完全可定制 - **Quick Counts 管理页面** — 无需创建完整文章即可按类别和日期记录计数;支持可选的时间字段和年度/全部时间筛选 - **Admin bar 按钮** — 从 WordPress 后台或前端的任何页面一键记录 +1 计数 - **Widget** — Emergency List widget,带有类别摘要、近期文章列表、可配置的时间段和排序;包括前端仅管理员可见的快速操作面板 - **Emergency Categories widget** — 显示带计数的类别链接 - **Gutenberg block** — 原生 block(无需构建步骤),由与 widget 相同的渲染引擎驱动 - **Shortcode** — `[firefighter_stats_emergency_list_widget]`,支持完整的属性配置 - **双语 (EN/PL)** — 所有管理 UI 和默认内容均提供英语和波兰语,无需编译 MO 文件;包含完整的波兰语 `.po`/`.mo` 文件 ## 环境要求 | 要求 | 最低版本 | |-------------|---------| | WordPress | 5.9 | | PHP | 7.4 | | Tested up to WP | 6.9 | ## 安装说明 1. 将此仓库下载或克隆到您的 `/wp-content/plugins/` 目录: git clone https://github.com/sync667/firefighter-widget.git firefighter-widget 2. 在 WordPress 后台通过 **Plugins → Installed Plugins** 激活插件。 3. 首次激活时,将根据您站点的语言植入 13 个默认类别。 4. 前往 **Settings → Permalinks** 并点击 **Save Changes** 以刷新 rewrite rules。 5. 将 **Firefighter Stats Emergencies** widget 添加到侧边栏,插入 Gutenberg block,或使用 shortcode。 ## 使用方法 ### 添加 Widget 前往 **Appearance → Widgets**(或针对 block 主题使用 Site Editor)并添加 **Firefighter Stats Emergencies**。Widget 设置面板允许您配置: - 统计的时间段(所有时间 / 今年 / 本月) - 包含哪些类别以及如何排序 - 是否显示近期文章列表以及显示数量 **管理员快速操作面板** — 当您以管理员身份登录并查看前端时,每个 widget 底部会出现一个小型的 ⚡ Quick Actions 栏。您可以在那里记录计数或打开新文章页面,而无需进入后台。 ### Shortcode ``` [firefighter_stats_emergency_list_widget] ``` 所有可用属性: | 属性 | 默认值 | 描述 | |-----------|---------|-------------| | `title` | `🚨 Emergency Statistics` | Widget 标题 | | `show_category_summary` | `true` | 显示类别计数网格 | | `category_time_period` | `all` | `all` / `year` / `month` | | `selected_categories` | *(所有)* | 要包含的 term ID,以逗号分隔 | | `category_sort` | `alphabet` | `alphabet` / `count_desc` / `count_asc` | | `show_zero_categories` | `true` | 包含计数为 0 的类别 | | `show_posts_list` | `true` | 显示近期紧急情况文章 | | `category` | *(所有)* | 将文章筛选为一个类别 (term ID) | | `limit` | `5` | 显示文章的最大数量 | | `order` | `default` | `default` / `date_desc` / `date_asc` / `title_asc` / `title_desc` / `random` | | `show_date` | `true` | 显示文章日期 | | `show_category` | `true` | 显示文章类别徽章 | | `recent_emergencies_title` | `📝 Recent Emergencies` | 文章部分的标题 | | `more_label` | *(隐藏)* | “查看全部”链接标签 — 留空则隐藏 | | `id` | *(无)* | wrapper 上的自定义 HTML `id` 属性 | | `className` | *(无)* | wrapper 上的额外 CSS class | **示例:** ``` [firefighter_stats_emergency_list_widget category_time_period="year" limit="10" show_posts_list="false"] ``` ### Quick Counts 管理页面 导航至 **Emergencies → Quick Counts** 以: - 查看带有当前年度总数和最后录入日期的类别卡片 - 通过点击卡片记录计数 → 在模态框中输入计数、日期和可选时间 - 使用标签栏按年份筛选条目 - 删除单个条目 ### Gutenberg Block 在 block 编辑器中,搜索 **Emergency Statistics**(类别:Widgets)。该 block 与 shortcode 共享所有设置,并在前端渲染效果一致。 ## Page Builder 支持 | Builder | 集成类型 | 操作方式 | |---------|-----------------|-----| | **Elementor** | 原生 widget | 在 Elementor widget 面板中搜索 "Emergency Statistics" → 拖放 | | **WPBakery** | 原生 element | 在 Classic Backend Editor element 列表中可用 | | **Beaver Builder** | 原生 module | 在 Beaver Builder module 面板的 "Emergency Statistics" 下可用 | | **Bricks** | 原生 element | 在 Bricks element 面板的 "Emergency Statistics" 下可用 | | **Divi** | Shortcode module | 插入一个 Text / Code module 并粘贴 `[firefighter_stats_emergency_list_widget]` | | **Oxygen** | Shortcode widget | 添加一个 Shortcode widget 并粘贴 `[firefighter_stats_emergency_list_widget]` | | **任何其他 builder** | Shortcode | 在任何支持 shortcode 的字段中使用 `[firefighter_stats_emergency_list_widget]` | 所有原生集成都提供与 shortcode 相同的 13 个控件(`selected_categories` 除外 — 如需多选筛选,请直接使用 shortcode)。 ## 自定义 ### 自定义模板 通过复制以下文件覆盖 widget/shortcode 模板: ``` templates/widgets/emergency-list.php → yourtheme/firefighter-stats/widgets/emergency-list.php ``` 使用 filter 指向您的文件: ``` add_filter( 'firefighter_stats_widget_emergency_list_template_path', function( $path ) { $custom = get_template_directory() . '/firefighter-stats/widgets/emergency-list.php'; return file_exists( $custom ) ? $custom : $path; } ); ``` ### 类别图标和颜色 前往 **Emergencies → Emergency Categories**,编辑任何类别,并设置自定义 emoji 图标和十六进制颜色。这些将用于整个 widget、block 和管理页面。 ### 默认类别 13 个默认类别在激活时植入。您可以重命名、删除或添加自己的类别 — 它们是普通的 taxonomy terms。植入程序是幂等的(可以安全地重新运行)并使用站点语言环境,因此波兰语站点会获得波兰语名称。 在创建 seed list 之前对其进行筛选: ``` add_filter( 'firefighter_stats_default_categories', function( $categories ) { $categories[] = array( 'name' => 'Flood', 'slug' => 'flood', 'description' => 'Flood response', 'icon' => '🌧️', 'color' => '#5dade2', ); return $categories; } ); ``` ### Shortcode 属性 无需修改插件代码即可扩展接受的 shortcode 属性: ``` add_filter( 'firefighter_stats_emergency_list_widget_shortcode_atts', function( $extra ) { $extra['my_param'] = 'default_value'; return $extra; } ); ``` ### 自定义 Permalink Slugs 前往 **Settings → Permalinks** — 底部的 **Firefighter Stats** 部分允许您更改文章、类别和标签的 URL slugs。 ## Hooks 参考 | Hook | 类型 | 描述 | |------|------|-------------| | `firefighter_stats_widget_emergency_list_template_path` | filter | 覆盖 emergency list widget 模板 | | `firefighter_stats_widget_emergency_categories_template_path` | filter | 覆盖 emergency categories widget 模板 | | `firefighter_stats_default_categories` | filter | 在植入前修改默认类别 | | `firefighter_stats_emergency_list_widget_shortcode_atts` | filter | 添加额外的 shortcode 属性 | | `firefighter_stats_cpt_wp_args` | filter | 覆盖 CPT 注册参数 | | `firefighter_stats_cat_tax_wp_args` | filter | 覆盖类别 taxonomy 注册参数 | | `firefighter_stats_tag_tax_wp_args` | filter | 覆盖标签 taxonomy 注册参数 | ## 文件结构 ``` firefighter-widget/ ├── firefighter-stats.php # Plugin entry point ├── uninstall.php # Cleanup on uninstall ├── readme.txt # WordPress.org readme ├── assets/ │ ├── css/ │ │ ├── admin.css # Admin + quick-actions styles │ │ └── firefighter-stats-widget.css # Frontend widget styles │ └── js/ │ ├── admin-quick-add.js # Admin bar quick-add │ ├── admin-counts.js # Quick Counts page + widget panel │ └── block-editor.js # Gutenberg block editor (no build step) ├── blocks/ │ └── emergency-list-widget/ │ └── block.json # Block schema and attributes ├── inc/ │ ├── core-functions.php # Shared helper functions │ ├── blocks-config.php # Block registration │ ├── integrations/ │ │ ├── load.php # Integration hook registrations │ │ ├── elementor.php # Elementor widget │ │ ├── wpbakery.php # WPBakery vc_map element │ │ ├── beaver-builder.php # Beaver Builder module │ │ ├── beaver-builder/ │ │ │ └── includes/ │ │ │ └── frontend.php # BB module template │ │ └── bricks.php # Bricks element │ └── classes/ │ ├── firefighter-stats-cpt.php │ ├── firefighter-stats-cpt-notice.php │ ├── firefighter-stats-widget.php │ ├── firefighter-stats-category-meta.php │ ├── firefighter-stats-admin-counts.php │ ├── firefighter-stats-admin-guide.php │ ├── firefighter-stats-category-seeder.php │ ├── firefighter-stats-permalink-settings.php │ ├── shortcodes/ │ │ └── firefighter-stats-shortcode-emergency-list-widget.php │ └── widgets/ │ ├── firefighter-stats-widget-emergency-list.php │ └── firefighter-stats-widget-emergency-categories.php ├── languages/ │ ├── firefighter-stats.pot │ ├── firefighter-stats-pl_PL.po │ └── firefighter-stats-pl_PL.mo └── templates/ └── widgets/ ├── emergency-list.php └── emergency-categories.php ``` ## 更新日志 ### 1.0.0 - 初始发布 - Custom Post Type, taxonomies, 13 个默认类别 - Emergency List 和 Emergency Categories widgets - 带有模态框、年份筛选器、时间字段的 Quick Counts 管理页面 - Admin bar 快速添加按钮 - Gutenberg block(无需构建步骤) - 支持完整属性的 Shortcode - 前端 widget 上的管理员快速操作面板(仅限管理员) - Getting Started 指导页面 - 发布时的类别强制执行(若无类别则恢复为草稿) - 包含波兰语翻译 - 双语管理 UI (EN/PL),无需编译 MO ## 许可证 [GPL-2.0-or-later](https://www.gnu.org/licenses/gpl-2.0.html)
标签:ffuf, Gutenberg块, IPv6支持, OpenVAS, PHP, Remiza.pl, WordPress插件, 事件记录, 事故日志, 代码示例, 公共安全, 分类管理, 前端挂件, 后台管理栏, 实时计数器, 应急响应统计, 志愿消防, 政府网站, 数据分析, 文件完整性监控, 消防部门, 管理员功能, 紧急救援, 统计展示, 自定义文章类型