figuren-theater/label-printing

使用块创建可打印的标签。

安装: 110

依赖项: 1

建议者: 0

安全: 0

星级: 1

关注者: 1

分支: 1

开放问题: 22

类型:wordpress-plugin

0.3.5 2024-05-29 11:10 UTC

README

稳定标签:0.3.26 测试到:6.5.3 至少需要:6.3 需要 PHP:8.1 许可证:GPL-3.0+ 标签:Label, print, print.css, block 贡献者:carstenbach

https://raw.githubusercontent.com/figuren-theater/label-printing/main/.wordpress-org/screenshot-3.mp4

Gutenberg 以打印而闻名,所以让我们在纸张上打印多个相同的标签。使用块。

描述

标签打印 插件旨在帮助您轻松地在纸张上打印多个相同的标签。此插件非常适合各种用例,例如创建海报、传单或其他任何印刷材料的标签。无论您是在管理剧院制作还是准备和组织下一场当地 WordCamp,此插件都可以帮助简化任何需要物理打印标签的项目流程。

功能

  • 使用可自定义的尺寸创建和配置标签。
  • 使用 标签打印 轻松准备可打印的标签。
  • 使用标签像高级同步图案一样。
  • 将标签尺寸与内容分开,以便高效管理标签。
  • 遵循 WordPress 编码标准和常用最佳实践。

此插件允许您配置一组标签,这些标签可能类似于您桌上的纸张标签。准备至少一个标签后,即可开始打印。

目前(#5)此步骤没有 UI,因此您必须依赖此插件提供的默认标签尺寸或通过 Figuren_Theater\Label_Printing\Patterns\bootstrap_labels 过滤器添加您自己的尺寸。

在此插件中,标签由一个人类可读的标题和一个 正常 打印标签的物理尺寸组成。换句话说,标签的宽度、高度和方向被保存,以及如果有,A4 纸张上的边框。

使用方法

  1. 打开一个新帖子或页面。
  2. 标签打印 添加到您的内容中。
  3. 从下拉菜单中选择预配置的标签。
  4. 您将获得一个基于所选标签尺寸的新鲜空白模板。
  5. 将内容添加到模板或使用块对其进行自定义。
  6. 保存您的帖子或页面。
  7. 在网站的前端查看您精心准备的打印标签。
  8. 轻松打印您的标签。

操作 & 过滤器

标签打印 插件提供了一个过滤器来自定义默认的标签,如果不存在则会创建这些标签。使用此过滤器添加您自己的标签或调整默认值。

/**
 * Add your own labels or adjust the defaults using this filter.
 *
 * @hook  Figuren_Theater\Label_Printing\Patterns\bootstrap_labels
 * @since 0.2.0
 *
 * @param {array} $default_labels List of Labels (an array of arrays) that will be inserted into the DB on import by default.
 *
 * @return {array}                List of Labels (an array of arrays) that will be inserted into the DB on import.
 */
\add_filter(
	'Figuren_Theater\Label_Printing\Patterns\bootstrap_labels',
	function( array $default_labels ) : array {
		return [
			[
				'name'         => 'A6 Landscape (4 Labels per A4)',
				'width'        => 148, // in mm
				'height'       => 105, // in mm
				'a4_border_tb' => 0, // in mm
				'a4_border_lr' => 0, // in mm
				'orientation'  => 'landscape',
			],
			[
				'name'         => 'Minis (64 Labels per A4)',
				'width'        => 48, // in mm
				'height'       => 17, // in mm
				'a4_border_tb' => 13, // in mm
				'a4_border_lr' => 8, // in mm
				'orientation'  => 'portrait',
			],
		];
	}
);

实现细节

wp_block post_type 与 _label-printing post_meta

物理标签的数据保存在 wp_block post_type 中,因为看起来将 可重用标签可重用帖子 一起保存是合理的。所有尺寸(如宽度、高度)都存储在单个 post_meta 字段中,作为一个数组。

wp_pattern_category 分类与“标签打印”(label-printing) 术语

为了将 wp_block 文章与同类型的其他文章区分开来,所有标签都被分组在(自6.4版以来新引入的)wp_pattern_category 中的一个术语下。该术语用于在 标签打印 中选择标签时进行查询。

常规 post_or_whatever 文章类型

每个标签要打印的内容保存在您添加了 标签打印 的该文章类型中。这可以是一个普通、私有或任何其他自定义文章类型。将标签尺寸与内容分开确保了高效的标签管理和所有编辑的访问。

背景 & 动机

我们在做戏剧以此为生。我们每年制作一到三场演出,并试图将表演安排在多个年度的节庆和剧院的日程中。

从一开始,我们就制作了所有关于演出相关的海报和传单,但完全没有日期或地点。这种行为使我们能够在首演前生产2,000张海报和5,000张传单,通常有资金支持,并使用标签帮助材料多年。

使用标签有助于支持自然环境,因为它减少了未使用材料的垃圾,减少了常规的重新印刷、配送和相关的排放。

我本以为有了某些自动化,创建标签的时间将是最小的。

最终,我制作了超过15种不同的标签模板,Adobe Indesign模板;而我成了唯一能够管理和处理这些模板的人。在这个时候,我换机器了,摆脱了Windows,甚至想摆脱Indesign。所以我必须现在在Scribus中创建所有模板,才能达到同样的工作流程。经过所有可能的迁移障碍后,我将成为唯一能够管理新奇的Scribus模板的人。不可能。所以我创建了这个块。现在团队中的每个人都能创建标签。

@carstenbach

安装

标签打印 插件的安装过程很简单

从WordPress内部安装

  1. 访问 插件 > 添加新插件
  2. 搜索 标签打印
  3. 安装并激活标签打印插件。

手动安装

  1. 将整个 label-printing 文件夹上传到 /wp-content/plugins/ 目录。
  2. 访问 插件
  3. 激活标签打印插件。

通过composer安装

  1. 通过命令行 composer require figuren-theater/label-printing
  2. 访问 插件
  3. 激活标签打印插件。

截图

  1. 插入标签打印块
  2. 选择您预定义的标签
  3. 在不同的标签预设之间进行视觉切换
  4. 填写您的标签内容
  5. 在浏览器的打印对话框中检查所有内容,排除带有页眉和页脚的页面,最后打印您的标签。

常见问题

将创建哪些默认标签尺寸?

默认标签,如果未通过 Figuren_Theater\Label_Printing\Patterns\bootstrap_labels 过滤器进行更改,为:

`
\$bootstrap_labels = [
	[
		'name'         => 'A6 Landscape',
		'width'        => 148,
		'height'       => 105,
		'a4_border_tb' => 0,
		'a4_border_lr' => 0,
		'orientation'  => 'landscape',
	],
	[
		'name'         => 'A6 Landscape (with Top-Bottom-Borders)',
		'width'        => 148,
		'height'       => 90,
		'a4_border_tb' => 15,
		'a4_border_lr' => 0,
		'orientation'  => 'landscape',
	],
	[
		'name'         => 'A8 Portrait',
		'width'        => 52.5,
		'height'       => 74,
		'a4_border_tb' => 0,
		'a4_border_lr' => 0,
		'orientation'  => 'portrait',
	],
	[
		'name'         => 'A8 Landscape',
		'width'        => 74,
		'height'       => 52.5,
		'a4_border_tb' => 0,
		'a4_border_lr' => 0,
		'orientation'  => 'landscape',
	],
];
`

为什么我应该使用 blank.php 模板?

请确保只打印您真正需要的内容。如果浏览器中的打印预览显示了包括标志和导航的正常页眉,请考虑在本地打印对话框中仅选择必要的页面。

使用 blank.php 模板确保只打印必要的内容。如果您的主题提供了此模板,那么选择它是避免在打印材料中出现不必要的页眉、文章标题和页脚的最佳选择。

块是如何工作的?

figuren-theater/label-printing 是一个自定义块,它使用常规 innerBlocks 来保持您将要添加到标签中的块。

为了在编辑器中预览块并在前端渲染它,它使用了一个名为 figuren-theater/label-proxy 的隐藏的第二个块。这是一个可重用块的轻量级版本,仅在单个帖子中使用,而不是跨多个帖子。

根据您选择的 预定义标签…/label-proxy 块将根据所选标签的尺寸允许的次数进行复制。换句话说,您的标签将尽可能多地适应 A4 打印模板。

该插件遵循的标准和最佳实践

  • ✅ 本项目许可协议为 GPL-3.0-or-later,有关详情请参阅 LICENSE 文件
  • ✅ WordPress (编码) 标准
    1. PHP 编码标准(版本 2……)
    2. JavaScript 编码标准
    3. CSS 编码标准
    4. 不断与 插件审查指南 进行核对
  • ✅ phpstan 在第 8 级别
  • ❌ 我们尚未设置单元测试、集成测试或端到端测试,请考虑通过 PR 提供帮助
  • ✅ 我们在 CHANGELOG.md 文件中保持 变更日志
  • ✅ 我们使用 git 通过版本控制所有代码
  • ✅ 我们使用 github.com/figuren-theater/label-printing 进行公共开发
    • 分支保护规则有助于保持主分支的安全
    • 需要 PR 才能将代码纳入项目
    • dependabot 检查所有包含的依赖项的更新版本,并寻找有漏洞的包
  • ✅ 我们尝试进行语义版本控制
  • ✅ 在每个版本中自动更新 plugin.phpREADME.mdCHANGELOG.md 中的版本号(通过 GitHub Actions)
  • ✅ 可安装
  • ✅ 我们热爱 WordPress 的 决策,而不是选项 哲学,这就是为什么根本没有设置页面
  • ✅ 我们仅使用 WordPress 的核心包来创建此插件,块是通过使用 create-block 包来构建的
  • ✅ 我们没有引入任何新的、自定义的 UI,而是仅使用核心功能,甚至包含 wp-admin-color-scheme
  • ✅ 我们使用 README.md 作为有效的 readme.txt,用于 wp.org/plugins 存储库
  • ✅ 所有代码都适用于翻译,并且已经翻译成
    • de_DE
    • de_DE_formal

升级通知

(沉默是金)

变更日志

请阅读变更日志部分,了解 最新版本

我们在 CHANGELOG.md 文件中 保持变更日志