Code Monkey home page Code Monkey logo

uf_userprofile's Introduction

Custom User Profile Field Sprinkle for UserFrosting 4

Donate Latest Version UserFrosting Version Software License Build Codecov StyleCI

This Sprinkle makes it easy to add any custom fields to the user or group model. Simply create a new schema in you own sprinkle and you're done. Your new profile fields will be automatically integrated in the default UserFrosting interface.

Help and Contributing

If you need help using this sprinkle or found any bug, feels free to open an issue or submit a pull request. You can also find me on the UserFrosting Chat most of the time for direct support.

Installation

Edit UserFrosting app/sprinkles.json file and add the following to the require list : "lcharette/uf_userprofile": "^3.0.0". Also add FormGenerator and UserProfile to the base list. For example:

{
    "require": {
        "lcharette/uf_userprofile": "^3.0.0"
    },
    "base": [
        "core",
        "account",
        "admin",
        "FormGenerator",
        "UserProfile"
    ]
}

Run composer update then php bakery bake to install the sprinkle.

Usage

To add a custom profile fields to any user, you simply add a FormGenerator compliant schema containing the form key as well as the traditional validation schema. The rest is generated by this Sprinkle.

For example, you can add the following to a schema/userProfile/myFields.json file inside your sprinkle to add a location, occupation and gender user field. With the associated locale keys, that's all you have to do to add a new user field to your UserFrosting setup.

{
    "location" : {
        "validators" : {
            "length" : {
                "label" : "LOCATION",
                "min" : 1,
                "max" : 255,
                "message" : "VALIDATE.LENGTH_RANGE"
            }
        },
        "form": {
            "type": "text",
            "label": "LOCATION",
            "icon": "fa-globe"
        }
    },
    "occupation" : {
        "validators" : {
            "length" : {
                "label" : "OCCUPATION",
                "min" : 1,
                "max" : 255,
                "message" : "VALIDATE.LENGTH_RANGE"
            }
        },
        "form": {
            "type": "textarea",
            "label": "OCCUPATION",
            "icon": "fa-briefcase"
        }
    },
    "gender" : {
        "validators" : {},
        "form": {
            "type": "select",
            "label": "GENDER",
            "icon": "fa-transgender",
            "options" : {
                "1" : "GENDER.MALE",
                "2" : "GENDER.FEMALE",
                "3" : "GENDER.NEUTRAL"
            }
        }
    }
}

Note that the schema must be saved inside the schema/userProfile/ directory of your sprinkle to be picked up automatically by the system. You might also want to run php bakery clear-cache command from the UserFrosting root since those fields are stored in cache for better performances.

You can also specify groups custom fields by saving any schema in the the schema/groupProfile/ directory of your sprinkle.

Screenshots

Screenshot 1 Screenshot 1

License

By Louis Charette. Copyright (c) 2020, free to use in personal and commercial software as per the MIT license.

uf_userprofile's People

Contributors

jamezsss avatar lcharette avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

uf_userprofile's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.