Person bundle

This bundle provides the ability to record people in the software. This bundle is required by other bundle.

Entities provided

Todo

describe entities provided by person bundle

Search terms

The class ChillPersonBundleSearchPersonSearch provide the search module.

Domain

The search upon “person” is provided by default. The @person domain search may be omitted.

  • @person is the domain search for people.

Arguments

  • firstname : provide the search on firstname. Example : firstname:Depardieu. May match part of the firstname (firsname:dep will match Depardieu)
  • lastname : provide the search on lastname. May match part of the lastname.
  • birthdate : provide the search on the birthdate. Example : birthdate:1996-01-19
  • gender: performs search on man/woman. The accepted values are man or woman.
  • nationality : performs search on nationality. Value must be a country code as described in ISO 3166. Example : nationality:FR.

Default

The default search is performed on firstname and/or lastname. Both are concatened before search. If values are separated by spaces, the clause AND is used : the search dep ge will match ‘Gérard Depardieu` or ‘Jean Depagelles’, but not ‘Charline Depardieu’ (missing ‘Ge’ in word).

Configuration options

Those options are available under chill_person key.

Example of configuration:

chill_person:
   validation:
      birthdate_not_after: P15Y
   person_fields:
      # note: visible is the default config. This key may be omitted if visible is chosen.
      nationality: hidden
      email: hidden
      place_of_birth: visible
      phonenumber: hidden
      country_of_birth: hidden
      marital_status: visible
      spoken_languages: hidden
      address: visible
birthdate_not_after string

The period duration before today during which encoding birthdate is not possible. The period is a string matching the format of ISO_8601, which is also use to build DateInterval classes.

Example: P1D, P18Y

Default value: P1D which means that birthdate before the current day (= yesterday) are allowed.

person_fields array

This define the visibility of some fields. By default, all fields are visible, but you can choose to hide some of them. Available keys are :

  • nationality
  • country_of_birth
  • place_of_birth
  • phonenumber
  • email
  • marital_status
  • spoken_languages
  • address

Possibles values: hidden or visible (all other value will raise an Exception).

Default value : visible, which means that all fields are visible.

Example:

chill_person:
   person_fields:
      nationality: hidden
      email: hidden
      phonenumber: hidden

Note

If all the field of a “box” are hidden, the whole box does not appears. Example: if the fields phonenumber and email are hidden, the title Contact information will be hidden in the UI.

Note

If you hide multiple fields, for a better integration you may want to override the template, for a better appeareance. See the symfony documentation about this feature.

Macros

Sticker for a person

Macro file
ChillPersonBundle:Person:macro.html.twig
Macro envelope

render(p, withLink=false)

p is an instance of ChillPersonBundleEntityPerson

withLink boolean

When to use this macro ?
When you want to represent a person.
Example usage :
{% import "ChillPersonBundle:Person:macro.html.twig" as person_ %}

{{ person_.render(person, true) }}

Layout events and delegated blocks

chill_block.person_post_vertical_menu event

This event is available to add content below of the vertical menu (on the right).

The context is :

Widgets

Add a list of person on homepage

The bundle provide a way to add a list of accompanyied person on the homepage:

chill_main:
    widgets:
        homepage:
            -
                order: 10
                widget_alias: person_list
                person_list:
                    # customize the number of items
                    number_of_items: 20

                    # only active
                    only_active: true

                    # you can add some filtering class, which will implements
                    # Chill\PersonBundle\PersonListWidget\PersonFilteringInterface
                    filtering_class: "\Hepc\HomepagePersonFiltering"

                    # when the view is overriden, you can add some custom fields
                    # to the view
                    custom_fields: [school-2fb5440e-192c-11e6-b2fd-74d02b0c9b55]