Open a command console, enter your project directory and execute the following command to download the latest stable version of this bundle:
$ composer require crisistextline/user-profile-bundle
This command requires you to have Composer installed globally, as explained in the installation chapter of the Composer documentation.
Then, enable the bundle by adding it to the list of registered bundles
in the app/AppKernel.php
file of your project:
<?php
// app/AppKernel.php
// ...
class AppKernel extends Kernel
{
public function registerBundles()
{
$bundles = array(
// ...
new CrisisTextLine\UserProfileBundle\CrisisTextLineUserProfileBundle(),
);
// ...
}
// ...
}
Add a route to app/config/routing.yml
with the following:
crisis_text_line_user_profile:
resource: "@CrisisTextLineUserProfileBundle/Controller/"
type: annotation
prefix: /
Add the following to app/config/config.yml
, with the specifics of your own User Entity class:
doctrine:
# ...
orm:
# ...
resolve_target_entities:
CrisisTextLine\UserProfileBundle\Model\UserProfileUserInterface: <YourBundle>\Entity\<YourUserEntity>
Add information about any specific roles you would like the bundle to access for access control to Sections and Fields by adding the roles and human-friendly strings to app/config/config.yml
like so:
crisis_text_line_user_profile:
roles_names:
- { role: "ROLE_USER", name: "User" }
- { role: "ROLE_SUPER_ADMIN", name: "Super Admin" }
# ...
In your User class, add the following:
<?php
// <YourBundle>/User.php
// ...
use FOS\UserBundle\Model\User as BaseUser;
use CrisisTextLine\UserProfileBundle\Entity\UserProfileUserTrait;
use CrisisTextLine\UserProfileBundle\Model\UserProfileUserInterface;
// ...
class User extends BaseUser implements UserProfileUserInterface
{
use UserProfileUserTrait;
// ...
}
If you're using the Doctrine Migrations bundle, make a new migration via php app/console doctrine:migrations:diff
and run it. Otherwise, update your DB accordingly.
If you'd like to override the base Twig template to fit into your own front-end environment, create a new app/Resources/CrisisTextLineUserProfileBundle/views/base.html.twig
with the following:
{% extends <Your Base Twig Template> %}
{% block userprofiles %}
{% endblock %}
You can override specific templates for each entity by putting replacements into the following:
app/Resources/CrisisTextLineUserProfileBundle/views/UserProfile
app/Resources/CrisisTextLineUserProfileBundle/views/UserProfileField
Add the following line(s) to the <head>
of your app's main template: