adrian-mid/humhub-klipy 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

adrian-mid/humhub-klipy

Composer 安装命令:

composer require adrian-mid/humhub-klipy

包简介

Add GIF search and attachment to HumHub posts and comments via the KLIPY API.

README 文档

README

Code Quality

Add GIF search and attachment to HumHub posts and comments using the KLIPY API.

Features

  • GIF picker on post and comment upload menus
  • Search and trending GIF grids with load-more button and infinite scroll
  • Selected GIFs are downloaded server-side and attached like regular file uploads
  • Admin settings for API key, locale, and content filter
  • Optional API key from environment variables

Requirements

  • HumHub 1.14 or later
  • PHP 8.0 or later (with curl extension)
  • A KLIPY API key (test or production) from the KLIPY Partner Panel

Installation

Use a separate Composer project in protected/modules/. The module installs to protected/modules/humhub-klipy/ and its dependencies go to protected/modules/vendor/, leaving HumHub's protected/vendor/ tree untouched.

Do not run composer init or composer require at the HumHub web root.

One-time setup - copy the Composer scaffold (once per HumHub instance):

cd /path/to/humhub/protected/modules
curl -fsSL https://raw.githubusercontent.com/Adrian-MID/humhub-klipy/main/modules.composer.json -o composer.json

Install or update:

cd /path/to/humhub/protected/modules
composer require adrian-mid/humhub-klipy:^1.0
php ../yii cache/flush-all

Enable HumHub Klipy under Administration → Modules.

Configure the module under Administration → Settings → HumHub Klipy.

Configuration

Setting Description
Enable GIF picker Activates the GIF button on post and comment forms
KLIPY API Key Your KLIPY API key
API Key Environment Variable Optional env var name (e.g. KLIPY_API_KEY)
Locale Region code such as en_US
Content filter KLIPY safety filter (off, low, medium, high)
Download quality KLIPY rendition to attach: full (gif), mediumgif, or tinygif (via media_filter)
Maximum attach size (MB) Server-side reject limit when downloading GIFs (1–50 MB, default 10)

Environment variables

When an environment variable name is configured and the value exists on the server, it takes precedence over the database-stored API key.

How it works

HumHub exposes file upload menus on post and comment forms through pluggable file handlers. This module registers a GIF handler that opens a KLIPY search modal.

When a user selects a GIF:

  1. The browser requests /humhub-klipy/gif/attach with the KLIPY CDN URL.
  2. The server downloads the GIF from an allowed KLIPY host.
  3. HumHub stores it through the standard file upload pipeline.
  4. The file preview and fileList[] hidden inputs are updated exactly like a manual upload.

GIF search requests are proxied through HumHub so the API key stays on the server. The browser JavaScript config only receives HumHub endpoint URLs and the locale - never the KLIPY API key.

Development

This module is maintained with strict static analysis, coding standards, and unit tests:

  • PHPStan level 10 - composer phpstan (module source; tests excluded)
  • PHP CS Fixer (PER-CS + PHP 8.2 migration rules) - composer cs:check / composer cs:fix
  • PHPUnit 9 - composer test (38 tests)

Run all checks:

composer install
composer lint

CI runs the same checks on push and pull requests via GitHub Actions.

License

GPL-3.0-or-later - see LICENSE.

Changelog

See CHANGELOG.md.

统计信息

  • 总下载量: 0
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 2
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: GPL-3.0-or-later
  • 更新时间: 2026-07-07

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固