Giter Site home page Giter Site logo

sennean / silverstripe-memberprofiles Goto Github PK

View Code? Open in Web Editor NEW

This project forked from symbiote/silverstripe-memberprofiles

0.0 2.0 0.0 309 KB

A module to allow the creation of registration and profile management pages with custom fields and validation.

License: BSD 3-Clause "New" or "Revised" License

PHP 92.58% CSS 1.04% JavaScript 1.16% Scheme 5.21%

silverstripe-memberprofiles's Introduction

SilverStripe Member Profile Pages Module

Maintainer Contacts

Requirements

Installation Instructions

  1. Place this directory in the root of your SilverStripe installation.
  2. Visit yoursite.com/dev/build to rebuild the database.

Usage Overview

A new page type is added in the CMS called a "Member Profile Page". This allows you to create a page that allows users to register and/or manage their profile. Registration can be enabled or disabled in the "Behaviour" tab.

Content

The "Profile", "Registration" and "After Registration" allow you to set an individual title and content to display for each of these contexts.

Profile Fields

In the "Main" tab you are presented with a table to manage the fields that a user is presented with on the profile page. These are automatically kept in sync with the Member object.

You can control if the field is shown on registration, or to already registered users. You can also give it a custom title, and for some fields a default value that is pre-populated on registration. You can also specify if the field is required, or should be unique across all messages. A custom error message can also be set to display if there are any validation errors.

Groups

You can choose a set of groups that are attached to the profile page. When a user registers they will be added to these groups, and an existing Member must belong to these groups in order to edit their profile on this profile page.

In addition to the fixed group membership, users are also able to select optional groups to belong to (if desired). The list of groups they can select from is chosen in the bottom group list. To actually let users select, the "Groups" field must be made editable in the list of fields above.

Validation

The "Validation" tab makes it possible to enable email validation, which means that a user must click on a link emailed to them before they can log in.

If a user loses their confirmation email, or you wish to manually confirm an account you can do so via the "Security" CMS section - just click on a member and there will be a dropdown down the bottom allowing you to perform these actions.

Template Usage

You can link to the profile page with the optional ?BackURL= parameter which will set a URL that the user will be redirected to after they complete registration. This requires the "RegistrationRedirect" property to be set on the After Registration tab.

If you like, you can manually set a redirection target by setting Session::set('MemberProfile.REDIRECT') to a URL value.

Examples

Custom Fields

This example shows how to add a custom phone number field to the Member object which is available on the member profile page. You do this by using an extension to add the database field, and then hooking into Member::updateMemberFormFields to add the form field. The module then picks this form field up and makes it available in the CMS.

class MemberExtension extends DataExtension {

  private static $db = array(
    'PhoneNumber' => 'Text'
  );

  public function updateMemberFormFields(FieldList $fields) {
    $fields->push(new TextField('PhoneNumber', 'Phone number'));
  }

}

Known Issues

Issue Tracker

silverstripe-memberprofiles's People

Contributors

ajshort avatar nyeholt avatar benedikt-s avatar zauberfisch avatar ivoba avatar heffaklump90 avatar trev avatar

Watchers

James Cloos avatar  avatar

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.