PHPackages                             adrian-mid/humhub-klipy - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Image &amp; Media](/categories/media)
4. /
5. adrian-mid/humhub-klipy

ActiveHumhub-module[Image &amp; Media](/categories/media)

adrian-mid/humhub-klipy
=======================

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

v1.1.0(4d ago)021↑25%GPL-3.0-or-laterPHP &gt;=8.0

Since Jul 7Compare

[ Source](https://github.com/Adrian-MID/humhub-klipy)[ Packagist](https://packagist.org/packages/adrian-mid/humhub-klipy)[ Docs](https://github.com/Adrian-MID/humhub-klipy)[ RSS](/packages/adrian-mid-humhub-klipy/feed)WikiDiscussions Synced today

READMEChangelog (2)Dependencies (4)Versions (3)Used By (0)

HumHub Klipy
============

[](#humhub-klipy)

[![Code Quality](https://github.com/Adrian-MID/humhub-klipy/actions/workflows/code-quality.yml/badge.svg)](https://github.com/Adrian-MID/humhub-klipy/actions/workflows/code-quality.yml)

Add GIF search and attachment to HumHub posts and comments using the [KLIPY](https://klipy.com) API.

Features
--------

[](#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
------------

[](#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](https://klipy.com/developers)

Installation
------------

[](#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
-------------

[](#configuration)

SettingDescriptionEnable GIF pickerActivates the GIF button on post and comment formsKLIPY API KeyYour KLIPY API keyAPI Key Environment VariableOptional env var name (e.g. `KLIPY_API_KEY`)LocaleRegion code such as `en_US`Content filterKLIPY safety filter (`off`, `low`, `medium`, `high`)Download qualityKLIPY 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

[](#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
------------

[](#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
-----------

[](#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
-------

[](#license)

GPL-3.0-or-later - see [LICENSE](LICENSE).

Changelog
---------

[](#changelog)

See [CHANGELOG.md](CHANGELOG.md).

###  Health Score

39

—

LowBetter than 84% of packages

Maintenance99

Actively maintained with recent releases

Popularity8

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity39

Early-stage or recently created project

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

2

Last Release

4d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/2bd7311eba3bf710b07626033cb916168e370f588af3c0b4c05cfaca42aaa85f?d=identicon)[Adrian-mid](/maintainers/Adrian-mid)

---

Tags

gifmediahumhubklipyhumhub-module

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/adrian-mid-humhub-klipy/health.svg)

```
[![Health](https://phpackages.com/badges/adrian-mid-humhub-klipy/health.svg)](https://phpackages.com/packages/adrian-mid-humhub-klipy)
```

###  Alternatives

[helsingborg-stad/municipio

A bootstrap theme for creating municipality sites.

4028.5k10](/packages/helsingborg-stad-municipio)[wp-sync-db/wp-sync-db-media-files

WP Sync DB Media File Addon for WP Sync DB

536151.8k](/packages/wp-sync-db-wp-sync-db-media-files)[ndigitals/wp-local-media-proxy

Proxy images on a local development WordPress site from a remote server.

1348.8k](/packages/ndigitals-wp-local-media-proxy)[asgardcms/media-module

Media module for AsgardCMS. Handles the media library.

1130.6k2](/packages/asgardcms-media-module)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
