GNU General Public License v2.0

项目介绍

StoutLogic/acf-builder 是一个托管在 GitHub 上的开源项目,主要使用 PHP 编写,采用 GNU General Public License v2.0 许可证,目前获得 843 个 Star、57 次 Fork。

仓库全名
StoutLogic/acf-builder
开源许可证
GNU General Public License v2.0
Star 数
843
Fork 数
57
未关闭 Issue
26

README 摘要

ACF Builder Create configuration arrays for Advanced Custom Fields Pro using the builder pattern and a fluent API. Quickly create, register, and reuse ACF configurations, and keep them in your source code repository. To read more about registering ACF fields via php consult https://www.advancedcustomfields.com/resources/register-fields-via-php/ Simple Example $banner->build(); will return: As you can see it saves…

完整内容见 GitHub 原始 README 或本页 。

常见问题

acf-builder 用什么语言开发?

主要使用 PHP 编写,采用 GNU General Public License v2.0 许可证,目前有 843 个 Star。

acf-builder 可以免费商用吗?

仓库标注的许可证为 GNU General Public License v2.0,商用前请先阅读仓库 LICENSE 文件确认授权范围。

如何获取 acf-builder 的源码?

可以直接克隆仓库:git clone https://github.com/StoutLogic/acf-builder.git,默认分支为 master;安装与运行步骤见仓库 README。

acf-builder 最近还在维护吗?

仓库最近一次更新为 9月12日,当前有 26 个未关闭 Issue;Star 数为 843,可作为社区活跃度的参考。

关于

GitHub 原始描述(英文)

An Advanced Custom Field Configuration Builder

描述取自 GitHub 官方 API,保持仓库作者书写的原文。

简要分析

热度分
988
价值分
524
活跃状态
活跃

语言占比

JavaScript
PHP

README

ACF Builder

Create configuration arrays for Advanced Custom Fields Pro using the builder pattern and a fluent API.

Quickly create, register, and reuse ACF configurations, and keep them in your source code repository. To read more about registering ACF fields via php consult https://www.advancedcustomfields.com/resources/register-fields-via-php/

Latest Stable Version Build Status Scrutinizer Code Quality Join the chat at https://gitter.im/StoutLogic/acf-builder

Simple Example

$banner = new StoutLogic\AcfBuilder\FieldsBuilder('banner');
$banner
    ->addText('title')
    ->addWysiwyg('content')
    ->addImage('background_image')
    ->setLocation('post_type', '==', 'page')
        ->or('post_type', '==', 'post');

add_action('acf/init', function() use ($banner) {
   acf_add_local_field_group($banner->build());
});

$banner->build(); will return:

[
    'key' => 'group_banner',
    'title' => 'Banner',
    'fields' => [
        [
            'key' => 'field_title',
            'name' => 'title',
            'label' => 'Title',
            'type' => 'text'
        ],
        [
            'key' => 'field_content',
            'name' => 'content',
            'label' => 'Content',
            'type' => 'wysiwyg'
        ],
        [
            'key' => 'field_background_image',
            'name' => 'background_image',
            'label' => 'Background Image',
            'type' => 'image'
        ],
    ],
    'location' => [
        [
            [
                'param' => 'post_type',
                'operator' => '==',
                'value' => 'page'
            ]
        ],
        [
            [
                'param' => 'post_type',
                'operator' => '==',
                'value' => 'post'
            ]
        ]
    ]
]

As you can see it saves you a lot of typing and is less error-prone. But brevity and correctness isn’t the only benefit, you can reuse field configurations in multiple places. For example, a group of fields used for backgrounds:

Reuse Example


use StoutLogic\AcfBuilder\FieldsBuilder;

$background = new FieldsBuilder('background');
$background
    ->addTab('Background')
    ->addImage('background_image')
    ->addTrueFalse('fixed')
        ->instructions("Check to add a parallax effect where the background image doesn't move when scrolling")
    ->addColorPicker('background_color');

$banner = new FieldsBuilder('banner');
$banner
    ->addTab('Content')
    ->addText('title')
    ->addWysiwyg('content')
    ->addFields($background)
    ->setLocation('post_type', '==', 'page');

$section = new FieldsBuilder('section');
$section
    ->addTab('Content')
    ->addText('section_title')
    ->addRepeater('columns', ['min' => 1, 'layout' => 'block'])
        ->addTab('Content')
        ->addText('title')
        ->addWysiwyg('content')
        ->addFields($background)
        ->endRepeater()
    ->addFields($background)
    ->setLocation('post_type', '==', 'page');

Here a background field group is created, and then used in two other field groups, including twice in the section field group. This can really DRY up your code and keep your admin UI consistent. If you wanted to add a light/dark field for the text color field based on the background used, it would just need to be added in one spot and used everywhere.

Install

Use composer to install:

composer require stoutlogic/acf-builder

If your project isn’t using composer, you can require the autoload.php file.

Tests

To run the tests you can manually run

vendor/bin/phpunit

or you can use the built in gulp task to run it on file change

npm install
gulp

Requirements

PHP 5.4 through 7.2 supported but automated tests cannot be run anymore so it might stop working at some point.

= 7.4, 8 Tested

Documentation

See the wiki for more thorough documentation. The documentation has its own repository and accepts pull requests for contributions. Any merges to master will get synced with the wiki here under the main project.

评论

暂无评论