所有动态
- 一小时前
-
CSS Grid Items
CSS Grid Items CSS Grid Items A grid container contains one or more grid items. All direct child elements of a grid container automatically become grid items. Below is a grid container with five grid items: 1 2 3 4 5 Try it Yourself » CSS Sizing/Spanning Grid Items A grid item can span over mulitiple columns or rows. We can specify where to start and end a grid item by using the following properties: grid-column-start - Specifies on which column-line the grid item will start grid-column-end - Specifies on which column-line the grid item will end grid-column - Shorthand property for grid-column-start and grid-column-end grid-row-start - Specifies on which row-line the grid item will start grid-row-end - Specifies on which row-line the grid item will end grid-row - Shorthand property for grid-row-start and grid-row-end The lines between the columns in a grid are called column-lines, and the lines between the rows in a grid are called row-lines. We can refer to line numbers when placing a grid item in a grid container. CSS grid-column-start and grid-column-end The grid-column-start property specifies on which column-line the grid item will start. The grid-column-end property specifies on which column-line the grid item will end. Example Let the first grid item start at column-line 1, and end on column-line 3: .item1 { grid-column-start: 1; grid-column-end: 3; } Result: 1 2 3 4 5 Try it Yourself » The CSS grid-column Property The grid-column property is a shorthand property for the grid-column-start and the grid-column-end properties. Example Let the first grid item start at column-line 1, and let it span 2 columns: .item1 { grid-column: 1 / span 2; } Result: 1 2 3 4 5 Try it Yourself » CSS grid-row-start and grid-row-end The grid-row-start property specifies on which row-line the grid item will start. The grid-row-end property specifies on which row-line the grid item will end. Example Let the first grid item start at row-line 1, and end on row-line 3: .item1 { grid-row-start: 1; grid-row-end: 3; } Result: 1 2 3 4 5 Try it Yourself » The CSS grid-row Property The grid-row property is a shorthand property for the grid-row-start and the grid-row-end properties. Example Let the first grid item start at row-line 1, and let it span 2 rows: .item1 { grid-row: 1 / span 2; } Result: 1 2 3 4 5 Try it Yourself » Combine grid-column and grid-row Here we use both the grid-column and grid-row properties to let a grid item span both columns and rows. Example Let the first grid item start at column-line 1, and let it span 2 columns, also let the first grid item start at row-line 1, and let it span 2 rows: .item1 { grid-column: 1 / span 2; grid-row: 1 / span 2; } Result: 1 2 3 4 5 6 Try it Yourself » All CSS Grid Item Properties Property Description align-self Aligns the content for a specific grid item along the column axis grid-area A shorthand property for the grid-row-start, grid-column-start, grid-row-end and the grid-column-end properties grid-column A shorthand property for the grid-column-start and the grid-column-end properties grid-column-end Specifies where to end the grid item grid-column-start Specifies where to start the grid item grid-row A shorthand property for the grid-row-start and the grid-row-end properties grid-row-end Specifies where to end the grid item grid-row-start Specifies where to start the grid item justify-self Aligns the content for a specific grid item along the row axis place-self A shorthand property for the align-self and the justify-self properties ★ +1 Sign in to track progress
-
CSS Grid Container
CSS Grid Container CSS Grid Container A grid container contains one or more grid items arranged in columns and rows. All direct child elements of a grid container automatically become grid items. An element becomes a grid container when its display property is set to grid or inline-grid. 1 2 3 4 5 Try it Yourself » Display Grid Property The <div> element becomes a grid container when its display property is set to grid or inline-grid. Example Use display: grid to make a block-level grid container: .container { display: grid; } Result: 1 2 3 4 5 Try it Yourself » Example Use display: inline-grid to make an inline grid container: .container { display: inline-grid; } Result: 1 2 3 4 5 Try it Yourself » CSS Grid Container Properties Property Description align-content Vertically aligns the grid items inside the container align-items Specifies the default alignment for items inside a flexbox or grid container display Specifies the display behavior (the type of rendering box) of an element column-gap Specifies the gap between the columns gap A shorthand property for the row-gap and the column-gap properties grid A shorthand property for the grid-template-rows, grid-template-columns, grid-template-areas, grid-auto-rows, grid-auto-columns, and the grid-auto-flow properties grid-auto-columns Specifies a default column size grid-auto-flow Specifies how auto-placed items are inserted in the grid grid-auto-rows Specifies a default row size grid-template A shorthand property for the grid-template-rows, grid-template-columns and grid-areas properties grid-template-areas Specifies how to display columns and rows, using named grid items grid-template-columns Specifies the size of the columns, and how many columns in a grid layout grid-template-rows Specifies the size of the rows in a grid layout justify-content Horizontally aligns the grid items inside the container place-content A shorthand property for the align-content and the justify-content properties row-gap Specifies the gap between the grid rows ★ +1 Sign in to track progress
-
CSS Text Effects
CSS Text Effects CSS Text Effects CSS has some properties to handle text overflow, word wrapping, line breaking rules and writing modes. In this chapter you will learn about the following properties: text-overflow - Specifies how to handle overflowed content word-wrap - Allows long words to be able to be broken and wrap onto the next line word-break - Specifies line breaking rules writing-mode - Specifies whether lines of text are laid out horizontally or vertically CSS text-overflow Property The CSS text-overflow property specifies how overflowed content that is not displayed should be signaled to the user. It can be clipped or rendered with ellipsis (...). Both of the following properties are required for text-overflow to take effect: white-space: nowrap; overflow: hidden; Here, the overflowed content is clipped: This is some long text that will not fit in the box Here, the overflowed content is rendered with ellipsis (...): This is some long text that will not fit in the box The CSS code is as follows: Example p.test1 { width: 200px; border: 1px solid #000000; white-space: nowrap; overflow: hidden; text-overflow: clip; } p.test2 { width: 200px; border: 1px solid #000000; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } Try it Yourself » The following example shows how you can display the overflowed content when hovering over the element: Example p:hover { overflow: visible; } Try it Yourself » CSS word-wrap Property The CSS word-wrap property allows long words to be able to be broken and wrap onto the next line. If a word is too long to fit within an area, it expands outside: This paragraph contains a very long word: thisisaveryveryveryveryveryverylongword. The long word will break and wrap to the next line. The word-wrap property allows you to force the text to wrap - even if it means splitting it in the middle of a word: This paragraph contains a very long word: thisisaveryveryveryveryveryverylongword. The long word will break and wrap to the next line. The CSS code is as follows: Example Allow long words to be able to be broken and wrap onto the next line: p { word-wrap: break-word; } Try it Yourself » CSS word-break Property The CSS word-break property specifies how words should break when reaching the end of a line. This property can take one of the following values: normal - This is default. Uses the default line breaking rules of the language break-all - Allows words to be broken at any character to prevent overflow keep-all - Prevents words from breaking Here, we use normal: This paragraph contains some text. This line will-break-at-hyphens. Here, we use break-all: This paragraph contains some text. The lines will break at any character. The CSS code is as follows: Example p.test1 { word-break: normal; } p.test2 { word-break: break-all; } Try it Yourself » CSS writing-mode Property The CSS writing-mode property specifies whether lines of text are laid out horizontally or vertically. This property can take one of the following values: horizontal-tb - Default. The text flows horizontally from left to right, vertically from top to bottom vertical-rl - The text flows vertically from top to bottom, horizontally from right to left vertical-lr - The text flows vertically from top to bottom, horizontally from left to right Here is a text with a span element with a vertical-rl writing-mode. The following example shows some different writing modes: Example p.test1 { writing-mode: horizontal-tb; } span { writing-mode: vertical-rl; } p.test2 { writing-mode: vertical-rl; } Try it Yourself » CSS Text Effect Properties The following table lists the CSS text effect properties: Property Description text-justify Specifies how justified text should be aligned and spaced text-overflow Specifies how overflowed content that is not displayed should be signaled to the user word-break Specifies line breaking rules for non-CJK scripts word-wrap Allows long words to be able to be broken and wrap onto the next line writing-mode Specifies whether lines of text are laid out horizontally or vertically ★ +1 Sign in to track progress
-
CSS Specificity
CSS Specificity CSS Specificity CSS specificity is an algorithm that determines which style declaration is ultimately applied to an element. If two or more CSS rules point to the same element, the declaration with the highest specificity will "win", and that style will be applied to the HTML element. Look at the following examples: Example Here, we have specified a red color for <p> elements. Result: The text will be red: <html> <head> <style> p {color: red;} </style> </head> <body> <p>Hello World!</p> </body> </html> Try it Yourself » Now, look at next example: Example Here, we have added a class selector (named "test"), and specified a green color for this class. Result: The text will be green, because the class selector has higher specificity: <html> <head> <style> .test {color: green;} p {color: red;} </style> </head> <body> <p class="test">Hello World!</p> </body> </html> Try it Yourself » Now, look at next example: Example Here, we have added the id selector (named "demo"). Result: The text will be blue, because the id selector has higher specificity: <html> <head> <style> #demo {color: blue;} .test {color: green;} p {color: red;} </style> </head> <body> <p id="demo" class="test">Hello World!</p> </body> </html> Try it Yourself » Now, look at next example: Example Here, we have added an inline style for the <p> element. Result: The text will be pink, because the inline style has the highest specificity: <html> <head> <style> #demo {color: blue;} .test {color: green;} p {color: red;} </style> </head> <body> <p id="demo" class="test" style="color: pink;">Hello World!</p> </body> </html> Try it Yourself » ★ +1 Sign in to track progress
-
CSS The overflow Property
CSS The overflow Property The CSS overflow Property The CSS overflow property controls what happens to content that is too big to fit into an area. It specifies whether to clip the content or to add scrollbars when the content of an element is too big. The overflow property has the following values: visible - Default. The overflow is not clipped. The content renders outside the element's box hidden - The overflow is clipped, and the rest of the content is hidden scroll - Scrollbars are added. User must scroll to see all content auto - Similar to scroll, but adds scrollbars only when necessary Here, scrollbars are added on overflow: Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Typi non habent claritatem insitam; est usus legentis in iis qui facit eorum claritatem. Try it Yourself » CSS overflow: visible By default, the overflow is visible, meaning that it is not clipped and it renders outside the element's box: You can use the overflow property when you want to have better control of the layout. The overflow property specifies what happens if content overflows an element's box. Example div { width: 200px; height: 65px; background-color: coral; overflow: visible; } Try it Yourself » CSS overflow: hidden With the hidden value, the overflow is clipped, and the rest of the content is hidden: You can use the overflow property when you want to have better control of the layout. The overflow property specifies what happens if content overflows an element's box. Example div { overflow: hidden; } Try it Yourself » CSS overflow: scroll With the scroll value, horizontal and vertical scrollbars are always added. User must scroll to see all content: You can use the overflow property when you want to have better control of the layout. The overflow property specifies what happens if content overflows an element's box. Example div { overflow: scroll; } Try it Yourself » CSS overflow: auto The auto value is similar to scroll, but it adds scrollbars only when necessary: You can use the overflow property when you want to have better control of the layout. The overflow property specifies what happens if content overflows an element's box. Example div { overflow: auto; } Try it Yourself » All CSS Overflow Properties Property Description overflow Specifies what happens if content overflows an element's box overflow-anchor Makes it possible to turn off scroll anchoring overflow-x Specifies what to do with the left/right edges of the content if it overflows the element's content area overflow-y Specifies what to do with the top/bottom edges of the content if it overflows the element's content area overflow-wrap Specifies whether or not the browser can break lines with long words, if they overflow its container ★ +1 Sign in to track progress
- 今天
-
CSS The display Property
CSS The display Property The CSS display Property The display property is an important CSS property for controlling layout. It specifies whether an HTML element is treated as a block or an inline element. Every HTML element has a default display value, depending on what type of element it is. The default display value for most elements is block or inline. The display property is used to change the default display behavior of HTML elements. Block-level Elements A block-level element ALWAYS starts on a new line and takes up the full width available (stretches out to the left and right as far as it can). The <div> element is a block-level element. Examples of block-level elements: <div> <h1> - <h6> <p> <form> <header> <footer> <section> Inline Elements An inline element DOES NOT start on a new line and only takes up as much width as necessary. This is an inline <span> element inside a paragraph. Examples of inline elements: <span> <a> <img> Common display Values The CSS display property has many values. The following table lists the most commonly used: Value Description inline Displays an element as an inline element block Displays an element as a block element contents Makes the container disappear, making its child elements children of the element the next level up in the DOM flex Displays an element as a block-level flex container grid Displays an element as a block-level grid container inline-block Displays an element as an inline-level block container. The element itself is formatted as an inline element, but you can apply height, width, padding, and margin values none The element is completely hidden from the document flow (does not take up any space). Override the Default Display Value The display property is used to change the default display behavior of HTML elements. Changing an inline element to a block element, or vice versa, can be useful for making the page look a specific way, and still follow the web standards. A common example is to change <li> elements to inline, to create a horizontal menu: Example li { display: inline; } Try it Yourself » Note: Setting the display property of an element only changes how the element is displayed, NOT what kind of element it is. So, an inline element with display: block; is not allowed to have other block elements inside it. The following example displays <span> elements as block elements: Example span { display: block; } Try it Yourself » The following example displays <a> elements as block elements: Example a { display: block; } Try it Yourself » Example of More Display Values The following example demonstrates some more display values: Example p.ex1 {display: none;} p.ex2 {display: inline;} p.ex3 {display: block;} p.ex4 {display: inline-block;} p.ex5 {display: flex;} p.ex6 {display: grid;} Try it Yourself » ★ +1 Sign in to track progress
- 昨天
-
XenForo 2.3 Full Released
XF 2.3.10 的一些更改包括: 确保“查看更早的结果”链接出现在搜索结果的最后一页。 确保将“收件人不存在”的退信归类为硬退信。 确保将“账户已关闭”的退信响应归类为硬退信。 确保将“找不到收件人”的退信响应归类为硬退信。 确保将“邮箱已禁用”的退信归类为硬退信。 确保将“未配置接收”的退信响应归类为硬退信。 当 IP 地址包含空字节时,防止 inet_pton() 出现 ValueError 错误 在 DKIM 签名后,使用原始 Email 对象进行错误日志记录,以防止出现未定义方法错误。 在自定义字段多选验证期间跳过数组值,以防止数组到字符串转换警告 将劝退延迟的最小值/最大值标准化,以防止 mt_rand() 值错误 在 DKIM 验证期间抑制 dns_get_record() 警告,以防止因 DNS 失败而导致作业崩溃。 阻止向被封禁用户发送警报 正确撤销 OAuth2 令牌,以正确地使访问令牌和刷新令牌失效。 在 Finder 中,遵循多列排序的方向参数 当 WebAuthn 注册或身份验证中止时,重新启用密码按钮 将缺失的 bookmark_id 索引添加到 xf_bookmark_label_use 表中 防止在重复运行 GenerateFinders CLI 命令时累积空格 避免在 getFinder 中基于异常的流程控制以解析实体类 为子进程设置明确的工作目录,以防止当前工作目录无法访问时发生故障。 防止自定义字段类型更改时出现类型错误,同时保留值 在 Stripe 产品和计划 ID 生成中包含可购买 ID [ICODE=rich]编辑帖子后不会往返。 在各种子内容实体上实现 ContainableInterface 和 DatableInterface 使用 xf-make:route 生成路由时创建模板
-
HuoNiu Credits System
架构调整:升级脚本不再执行数据迁移 原升级脚本 upgrade2000000Step1–4 同时包含 Schema 修改与数据迁移逻辑,导致每次升级都会重复迁移数据。现已重构为仅执行数据库结构变更(ALTER TABLE),所有数据迁移统一由 migrateMJCredits() 方法负责。
- 前几天
-
HuoNiu Credits System 积分应用
新增后台新增「分类与用户组」设置页面 升级目录 upg_50009 后台新增设置区块用户组权限设置 限制积分奖励用户组:启用后只有指定组的成员才能获得发帖/回复/签到奖励 免费访问用户组:指定组的成员查看付费内容时无需消耗积分,直接免费访问 奖励分类限制 可按应用(论坛/下载/图库)分别选择哪些分类参与积分奖励 启用限制后,不在列表内的分类发帖/回复不计奖励 积分定价分类限制 可按应用分别选择哪些分类允许作者设置积分定价 分类被移出列表后,该分类下已设价格的内容自动免费访问 业务逻辑更新发帖/回复奖励前新增用户组校验 + 分类校验 设置内容价格时校验该分类是否允许定价 购买付费内容时依次检查:分类是否仍允许定价 → 免费用户组绕过 → 已购检查 → 余额扣除 版本号更新至 5.0.9,新增 14 个设置项、28 条语言字符串及对应后台菜单
-
HuoNiu Credits System
购买记录价格列显示 65.00000000 → 正确格式化(如 65) 批量操作预览页积分价格未格式化 → 使用货币格式化 批量操作预览页真实货币价格未格式化 → 保留 2 位小数 奖池领取成功消息中金额未格式化 → 使用货币格式化 红包领取成功消息中金额未格式化 → 使用货币格式化 资源销售佣金交易记录中金额未格式化 → 保留 2 位小数 转账 JSON 响应中金额和余额未格式化 → 使用标准格式化
-
HuoNiu Leak Tracer XF 文件下载指纹
安全修复 CSV 导出增加注入防护,对以 = + - @ \t \r 开头的用户名自动添加 ' 前缀 性能优化 指纹算法从 md5() 改为 hash('xxh128', ...) 为 download_date 列添加独立索引,优化分页查询 隐写术与零宽字符注入合并为单次遍历,减少 ZIP 迭代开销
-
HuoNiu Leak Tracer XF 文件下载指纹
文件指纹系统,当用户通过 XenForo Resource Manager 下载资源文件时,插件在文件送达前自动完成处理。原始文件不会被修改或存储,指纹注入在内存中实时完成,用户下载体验与原生行为完全一致。
-
XF- HuoNiu Leak Tracer XF 文件下载指纹
HuoNiu Leak Tracer XF 文件下载指纹 插件功能下载拦截与指纹注入这是为XENFORO 用户开发的插件。每次通过 XenForo Resource Manager 下载资源文件时,插件在文件送达前自动完成处理。原始文件不会被修改或存储,指纹注入在内存中实时完成,用户下载体验与原生行为完全一致。 支持格式:.zip / .tar 非压缩包格式(如 .exe、.pdf)直接走原生下载流程,不作处理。 三层隐形水印行尾隐写 将 128 位用户专属指纹编码为二进制序列,通过控制 PHP 文件每一行末尾空格的有无来承载信息。对代码执行零影响,肉眼不可见,diff 工具难以察觉。 零宽字符水印 在代码注释行中嵌入 Unicode 零宽字符(U+200B / U+200D),字符本身不占视觉空间,不影响代码语法,在任何编辑器中均不显示,但可被专用工具精确提取。 加密分片令牌 使用 AES-256-GCM 对用户名、用户 ID、IP 地址、下载时间、指纹等完整信息进行加密,HMAC-SHA256 签名防篡改。密文分散写入压缩包内多个 PHP 文件的注释行,即使部分文件缺失也可从残留碎片中还原完整信息。 溯源解码工具后台提供独立的溯源界面,支持三种输入方式—— 上传文件:直接上传疑似泄露的 ZIP 或 TAR 文件,自动扫描内部所有 PHP 文件,提取水印并匹配下载记录 粘贴代码:粘贴单个 PHP 文件内容,即时提取三种水印信息 指纹查询:输入已知的 32 位十六进制指纹,直接检索对应下载日志 查询结果显示:用户名、用户 ID、资源 ID、版本 ID、下载时间、IP 地址。 下载日志管理完整记录每一次受保护的下载行为,支持分页浏览、单条删除、全量导出为 CSV 文件(UTF-8 编码,Excel 可直接打开)。 配置选项全局开关:一键暂停指纹注入,恢复原生下载行为 三种水印方法可独立启用或关闭 License 文件名称可自定义(默认注入 license.txt 至压缩包根目录) 文件信息 提交者 Cavalry 提交于 03/08/26 类别 XenForo 查看文件
-
HuoNiu Leak Tracer XF 文件下载指纹
- 0次下载
- 版本 2.0.0
插件功能下载拦截与指纹注入这是为XENFORO 用户开发的插件。每次通过 XenForo Resource Manager 下载资源文件时,插件在文件送达前自动完成处理。原始文件不会被修改或存储,指纹注入在内存中实时完成,用户下载体验与原生行为完全一致。 支持格式:.zip / .tar 非压缩包格式(如 .exe、.pdf)直接走原生下载流程,不作处理。 三层隐形水印行尾隐写 将 128 位用户专属指纹编码为二进制序列,通过控制 PHP 文件每一行末尾空格的有无来承载信息。对代码执行零影响,肉眼不可见,diff 工具难以察觉。 零宽字符水印 在代码注释行中嵌入 Unicode 零宽字符(U+200B / U+200D),字符本身不占视觉空间,不影响代码语法,在任何编辑器中均不显示,但可被专用工具精确提取。 加密分片令牌 使用 AES-256-GCM 对用户名、用户 ID、IP 地址、下载时间、指纹等完整信息进行加密,HMAC-SHA256 签名防篡改。密文分散写入压缩包内多个 PHP 文件的注释行,即使部分文件缺失也可从残留碎片中还原完整信息。 溯源解码工具后台提供独立的溯源界面,支持三种输入方式—— 上传文件:直接上传疑似泄露的 ZIP 或 TAR 文件,自动扫描内部所有 PHP 文件,提取水印并匹配下载记录 粘贴代码:粘贴单个 PHP 文件内容,即时提取三种水印信息 指纹查询:输入已知的 32 位十六进制指纹,直接检索对应下载日志 查询结果显示:用户名、用户 ID、资源 ID、版本 ID、下载时间、IP 地址。 下载日志管理完整记录每一次受保护的下载行为,支持分页浏览、单条删除、全量导出为 CSV 文件(UTF-8 编码,Excel 可直接打开)。 配置选项全局开关:一键暂停指纹注入,恢复原生下载行为 三种水印方法可独立启用或关闭 License 文件名称可自定义(默认注入 license.txt 至压缩包根目录)100.00 CNY -
HuoNiu Secure Downloads — 下载指纹追踪
license.txt 注入(ZIP + TAR) 分类过滤 唯一指纹生成 + 数据库日志 ACP 设置页 + 下载记录查看 隐写方案(尾部空格 / 引号切换)随时可以继续加
-
HuoNiu Secure Downloads — 下载指纹追踪
插件介绍火牛下载溯源 是一款专为 IPS Community Downloads 设计的文件水印与溯源插件。 用户每次下载 ZIP 或 TAR 资源包时,插件在文件发送的瞬间自动注入专属水印——写入下载者的会员信息、下载时间与唯一指纹。整个过程对用户完全透明,原始文件不会被修改,服务器不保留任何副本。 一旦发现资源被二次传播,管理员只需在后台上传疑似文件或粘贴代码片段,系统自动完成解析,精确还原出下载者的会员名、ID、下载时间与 IP 地址。
-
HuoNiu Secure Downloads — 下载指纹追踪
- 0次下载
- 版本 5.0.2
HuoNiu Secure Downloads — 下载指纹追踪是一款专为 IPS Community Downloads 设计的文件水印与溯源插件。用户每次下载 ZIP 或 TAR 资源包时,插件在文件发送的瞬间自动注入专属水印——写入下载者的会员信息、下载时间与唯一指纹。整个过程对用户完全透明,原始文件不会被修改,服务器不保留任何副本。 一旦发现资源被二次传播,管理员只需在后台上传疑似文件或粘贴代码片段,系统自动完成解析,精确还原出下载者的会员名、ID、下载时间与 IP 地址。 水印方式 插件内置四种独立水印机制,可单独启用或任意组合叠加: 许可证文件 — 压缩包内自动附加 license.txt,明文记录会员信息与下载指纹 零宽字符水印 — 会员身份隐写于 PHP 注释行尾,肉眼不可见,代码格式化不会清除 行尾空格水印 — 128 位指纹分散编码于文件行尾,任何对比工具均无法察觉 加密分片令牌 — 会员身份经 AES-256-GCM 加密后拆分藏入多个 PHP 文件,重组可完整还原 适用场景 适合在 IPS Downloads 中销售或分发 PHP 插件、主题模板、脚本资源的站点,尤其适用于付费内容防泄、会员专属资源保护。 兼容性 IPS Community Suite 5.x 支持本地存储、FTP、Amazon S3 全部存储驱动 不修改任何 IPS 核心文件,插件升级不受影响 功能 拦截 IPS Downloads 下载事件,下载瞬间完成水印注入,用户无感知 支持 ZIP / TAR 压缩包格式 自动在压缩包根目录添加 license.txt,写入会员名、ID、下载时间、专属指纹 零宽字符水印:指纹隐写于 PHP 注释行尾,不改变代码逻辑,格式化工具不清除 行尾空格水印:128 位指纹分散编码于文件行尾,任何 diff 工具均无法察觉 AES-256-GCM 加密分片令牌:会员身份信息加密拆分,隐藏于多个 PHP 文件,重组还原完整身份 四种水印方式可在后台独立开关,按需组合 后台指纹解析工具:粘贴 PHP 代码或直接上传泄露的 ZIP/TAR,自动识别水印类型并查出下载者 溯源结果精确到:会员名、会员 ID、下载时间、IP 地址 下载日志完整记录每一条下载,支持时间筛选和 CSV 导出 可按 Downloads 资源分类配置,灵活控制哪些资源受保护 兼容所有 IPS 存储驱动(本地 / FTP / Amazon S3),无需额外配置100.00 CNY -
IPS - HuoNiu Secure Downloads — 下载指纹追踪
HuoNiu Secure Downloads — 下载指纹追踪 HuoNiu Secure Downloads — 下载指纹追踪是一款专为 IPS Community Downloads 设计的文件水印与溯源插件。用户每次下载 ZIP 或 TAR 资源包时,插件在文件发送的瞬间自动注入专属水印——写入下载者的会员信息、下载时间与唯一指纹。整个过程对用户完全透明,原始文件不会被修改,服务器不保留任何副本。 一旦发现资源被二次传播,管理员只需在后台上传疑似文件或粘贴代码片段,系统自动完成解析,精确还原出下载者的会员名、ID、下载时间与 IP 地址。 水印方式 插件内置四种独立水印机制,可单独启用或任意组合叠加: 许可证文件 — 压缩包内自动附加 license.txt,明文记录会员信息与下载指纹 零宽字符水印 — 会员身份隐写于 PHP 注释行尾,肉眼不可见,代码格式化不会清除 行尾空格水印 — 128 位指纹分散编码于文件行尾,任何对比工具均无法察觉 加密分片令牌 — 会员身份经 AES-256-GCM 加密后拆分藏入多个 PHP 文件,重组可完整还原 适用场景 适合在 IPS Downloads 中销售或分发 PHP 插件、主题模板、脚本资源的站点,尤其适用于付费内容防泄、会员专属资源保护。 兼容性 IPS Community Suite 5.x 支持本地存储、FTP、Amazon S3 全部存储驱动 不修改任何 IPS 核心文件,插件升级不受影响 功能 拦截 IPS Downloads 下载事件,下载瞬间完成水印注入,用户无感知 支持 ZIP / TAR 压缩包格式 自动在压缩包根目录添加 license.txt,写入会员名、ID、下载时间、专属指纹 零宽字符水印:指纹隐写于 PHP 注释行尾,不改变代码逻辑,格式化工具不清除 行尾空格水印:128 位指纹分散编码于文件行尾,任何 diff 工具均无法察觉 AES-256-GCM 加密分片令牌:会员身份信息加密拆分,隐藏于多个 PHP 文件,重组还原完整身份 四种水印方式可在后台独立开关,按需组合 后台指纹解析工具:粘贴 PHP 代码或直接上传泄露的 ZIP/TAR,自动识别水印类型并查出下载者 溯源结果精确到:会员名、会员 ID、下载时间、IP 地址 下载日志完整记录每一条下载,支持时间筛选和 CSV 导出 可按 Downloads 资源分类配置,灵活控制哪些资源受保护 兼容所有 IPS 存储驱动(本地 / FTP / Amazon S3),无需额外配置 文件信息 提交者 Cavalry 提交于 03/07/26 类别 Invision Community 查看文件
-
HuoNiu Credits System
新增缺失短语 hn_title 导出按钮改为标准 <xf:pageaction> + <xf:button> 提现管理列表/详情页按钮改为标准 <xf:button> 迁移选项模板按钮改为标准 <xf:button>
- XFRM Right Sidebar Pro
-
XFRM Right Sidebar Pro
XFRM Right Sidebar Pro 是一款专为 XenForo 资源管理器(XFRM)设计的高级边栏增强插件。通过创新的下载按钮集成技术和精美的卡片式设计,为您的资源页面带来前所未有的用户体验提升。
-
HuoNiu Credits System
修复真实货币购买按钮不显示的问题 — 登录用户现在能正常看到付费资源的购买按钮 精简后台侧边栏 — ACP 侧边栏从三个入口合并为一个"HuoNiu积分系统"
- 之前的
-
IPS-HuoNiu Time Sale
修复分类促销更新时后台显示"结束"状态但前端仍有折扣的问题 修正分类促销折扣比较逻辑(数值越大折扣越多) 新增分类促销编辑表单中的"立即结束折扣"勾选选项 完善分类促销与单个文件促销的冲突处理机制
-
IPS-HuoNiu Time Sale
新增功能小工具布局选择器— Flash Sale 小工具现在支持 6 种显示布局(每种含轮播变体,共 12 种模式): Grid(网格) — 默认布局,卡片网格排列,图片 16:10 比例 Table(表格) — 行列表,大屏自动分列显示 Featured(突出) — 图片和内容并排,突出展示 Mini Grid(迷你网格) — 紧凑型网格,方形小图标 Wallpaper(壁纸) — 图片作为背景,文字叠加在渐变上 Minimal(极简) — 精简列表,仅显示核心信息 技术改进小工具类实现 Customizable 接口,启用 IPS 5 原生布局系统 基于 IPS 核心 ipsData 组件框架,无需自定义 CSS 所有布局自动支持响应式设计和轮播模式 修改文件data/widgets.json — 新增 layouts 和 default_layout 配置 widgets/flashSale.php — 实现 Customizable 接口 data/versions.json — 版本号更新至 5.0.6 setup/upg_50006/upgrade.php — 升级脚本,清除小工具缓存
- IPS-HuoNiu Time Sale