PHPackages                             getdevflow/custom-fields - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. getdevflow/custom-fields

ActiveDevflow-plugin[Utility &amp; Helpers](/categories/utility)

getdevflow/custom-fields
========================

A powerful and flexible developer-friendly custom fields plugin for Devflow CMF.

v1.0.2(1w ago)02GPL-2.0-onlyPHPPHP &gt;=8.4

Since May 18Pushed 1w agoCompare

[ Source](https://github.com/getdevflow/custom-fields)[ Packagist](https://packagist.org/packages/getdevflow/custom-fields)[ RSS](/packages/getdevflow-custom-fields/feed)WikiDiscussions 1.x Synced 1w ago

READMEChangelog (2)Dependencies (2)Versions (5)Used By (0)

Devflow Custom Fields
=====================

[](#devflow-custom-fields)

A powerful and flexible developer-friendly custom fields plugin for Devflow CMF.

Devflow Custom Fields allows developers to build advanced content editing experiences using repeaters, flexible content layouts, conditional logic, media fields, appearance controls, and more.

> **Requires** Devflow Version: 2.x

> **Tested Up To:** 2.2.0

> **Requires PHP:** 8.4+

> **Stable Tag:** 1.0.2

> **License:** GPLv2-only

---

Features
========

[](#features)

Field Types
-----------

[](#field-types)

- Text
- Textarea
- Rich Text (TinyMCE)
- Select
- Checkbox
- Radio
- Image
- Gallery
- oEmbed
- Help/Instruction Fields

---

Advanced Layout Features
------------------------

[](#advanced-layout-features)

- Repeaters
- Flexible Content Layouts
- 2 Column Containers
- 3 Column Containers
- Nested Layouts
- Nested Flexible Content

---

Conditional Logic
-----------------

[](#conditional-logic)

Show or hide fields dynamically based on values from other fields.

Supports:

- show/hide rules
- all/any logic
- nested field support

---

Media Features
--------------

[](#media-features)

- Drag and drop image upload
- Gallery ordering
- Image preview modal
- Video/media embedding support

---

Appearance Controls
-------------------

[](#appearance-controls)

Per-field appearance settings:

- Width
- Label Color
- Input Field Background Color
- Text Color
- Border Radius
- Font Size
- Google Fonts
- CSS Class

---

Accessibility
-------------

[](#accessibility)

- aria labels
- screen reader announcements
- keyboard navigation
- focus restoration
- accessible media controls
- accessible validation errors

---

Usage
-----

[](#usage)

```
Field::get('field_name', $id); // default context is `content`
Field::get('field_name', $id, 'product');
Field::get('field_name', $id, 'user');

Field::gallery('field_name', $id);

Field::images('field_name', $id); // the field must be an array

Field::rows('field_name', $id); // the field must be an array

Field::raw('field_name', $id); // must be top level attribute key
```

---

Screenshots
===========

[](#screenshots)

Field Builder
-------------

[](#field-builder)

[![field-builder.png](public/images/field-builder.png)](public/images/field-builder.png)

---

Flexible Content
----------------

[](#flexible-content)

[![flexible-content.png](public/images/flexible-content.png)](public/images/flexible-content.png)

---

Repeater Fields
---------------

[](#repeater-fields)

Repeaters save as arrays.

Example:

```
[
    [
        'title' => 'Row 1',
        'description' => 'Example',
    ],
    [
        'title' => 'Row 2',
        'description' => 'Example',
    ]
]
```

[![repeater-fields.png](public/images/repeater-fields.png)](public/images/repeater-fields.png)

---

Conditional Logic
-----------------

[](#conditional-logic-1)

[![conditional-logic.png](public/images/conditional-logic.png)](public/images/conditional-logic.png)

---

Composer Installation
---------------------

[](#composer-installation)

1. Start a new shell session.
2. Navigate to the root of your install, run the following command `composer require getdevflow/custom-fields`.

---

Location Rules
==============

[](#location-rules)

Field groups can be assigned to:

- Content
- Products
- Users

---

Flexible Content Structure
==========================

[](#flexible-content-structure)

Flexible content stores layout metadata.

Example:

```
[
    [
        '_layout' => 'hero',
        '_uuid' => 'uuid',
        'heading' => 'Welcome',
        'content' => 'Example',
    ],
    [
        '_layout' => 'gallery',
        '_uuid' => 'uuid',
        'images' => [],
    ]
]
```

---

Image Field Structure
=====================

[](#image-field-structure)

Image fields save JSON arrays.

Example:

```
[
    'url' => 'https://example.com/uploads/image.jpg',
    'name' => 'image.jpg',
    'mime' => 'image/jpeg',
]
```

---

Gallery Field Structure
=======================

[](#gallery-field-structure)

Gallery fields save arrays of image objects.

Example:

```
[
    [
        'url' => 'https://example.com/uploads/image1.jpg',
    ],
    [
        'url' => 'https://example.com/uploads/image2.jpg',
    ]
]
```

---

Conditional Logic
=================

[](#conditional-logic-2)

Conditional logic is configured per field.

Supports:

- equals
- not equals
- contains
- empty
- not empty

Example:

```
Show field if:
"layout" equals "hero"

```

---

Appearance Settings
===================

[](#appearance-settings)

Appearance settings are stored in:

```
style_settings
```

Example:

```
[
    'width' => '50',
    'label_color' => '#333333',
    'input_background' => '#ffffff',
    'text_color' => '#111111',
    'border_radius' => '6px',
    'font_size' => '16px',
    'google_font' => 'Inter',
]
```

---

Google Fonts
============

[](#google-fonts)

Google Fonts can be selected from the Appearance section.

Fonts automatically load on render.

---

Importing Field Groups
======================

[](#importing-field-groups)

Navigate to:

```
Custom Fields > Import

```

Upload:

- single field group export
- bundle export

Supported schema versions:

```
devflow-custom-fields.v1
devflow-custom-fields.bundle.v1

```

---

Exporting Field Groups
======================

[](#exporting-field-groups)

Field groups can be exported individually or in bulk.

Exports are JSON files.

---

Cloning Field Groups
====================

[](#cloning-field-groups)

Use the Clone action from the field group table.

Cloning duplicates:

- fields
- layouts
- validation
- appearance settings
- conditional logic

---

Developer Notes
===============

[](#developer-notes)

Recommended Usage
-----------------

[](#recommended-usage)

- Use flexible content for page builders
- Use repeaters for collections
- Use layouts for structured content
- Use conditional logic to simplify interfaces

---

Performance Notes
-----------------

[](#performance-notes)

Very large nested flexible content structures may impact browser performance.

Recommended:

- collapse unused sections
- split large groups
- avoid deeply nested repeaters where possible

---

Roadmap
=======

[](#roadmap)

Future improvements may include:

- field tabs/groups
- advanced display settings
- reusable field presets
- field templates
- live previews

###  Health Score

43

—

FairBetter than 89% of packages

Maintenance98

Actively maintained with recent releases

Popularity3

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity54

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

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 ~4 days

Total

4

Last Release

9d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/86d25d805eb5b710fab925600008b72f9f5f11a5206154fcd1ded01794a4d1b8?d=identicon)[nomadicjosh](/maintainers/nomadicjosh)

---

Top Contributors

[![nomadicjosh](https://avatars.githubusercontent.com/u/2042176?v=4)](https://github.com/nomadicjosh "nomadicjosh (7 commits)")

---

Tags

metadatacustom fieldsusermetacustomfieldsuser meta

### Embed Badge

![Health badge](/badges/getdevflow-custom-fields/health.svg)

```
[![Health](https://phpackages.com/badges/getdevflow-custom-fields/health.svg)](https://phpackages.com/packages/getdevflow-custom-fields)
```

###  Alternatives

[minime/annotations

The KISS PHP annotations library

229386.3k38](/packages/minime-annotations)[honeystone/laravel-seo

SEO metadata and JSON-LD package for Laravel.

35476.1k](/packages/honeystone-laravel-seo)[mhor/php-mediainfo

PHP wrapper around the mediainfo command

120589.5k7](/packages/mhor-php-mediainfo)[spiral/attributes

PHP attributes reader

244.1M56](/packages/spiral-attributes)[thomas-schulz/symfony-meta

PhpStorm meta data for expected arguments completion in symfony projects.

9058.7k](/packages/thomas-schulz-symfony-meta)[phpexiftool/exiftool

Exiftool is a library for reading, writing and editing meta information. This package is not PHP, but required for the main PHP driver : PHP Exiftool

29390.0k7](/packages/phpexiftool-exiftool)

PHPackages © 2026

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