Entity List Field Widget
Field Settings #1
Field Settings #2

Entity List Field provides a field for configuring and displaying entity lists. Add an Entity List field to any fieldable entity to supply your content editors with a simple UI for configuring lists.

This module may be appropriate when you want content editors to be able to configure an entity list from within the familiar add/edit form for the container entity.

Dependencies

There are database schema changes in alpha9. It is necessary to uninstall and re-install the module when upgrading from alpha8 or earlier. Starting with beta1, any further changes to the database schema will be taken care of by update.php.

Use cases

#1 -- List nodes from blocks (e.g. for a list of recently updated articles). Create the block type (bean) and add an Entity List field to your bean in the Manage Fields tab. Configure the field instance as appropriate, hiding or exposing the configuration inputs to suit your editors' particular needs. Your content editors can now add lists to the blocks they create, and can configure the lists separately for each block.

#2 -- List users from a node (e.g. for a staff page). Create a content type and add an Entity List field in the Manage Fields tab. Configure the field instance as appropriate, then position the field as needed relative to other fields. Your content editors can now add lists of users to the nodes, and can configure the lists separately for each node.

Live demo

http://elf.webcommunicate.net

Features

  • Hide or expose widget inputs. Provide only the inputs your content editors need. For example, you could choose to expose the bundle input, but not the entity type or view mode input. Other inputs: item count, sort, sort direction, terms, pager and cache.
  • Lists are cached for improved performance. Caching can be enabled/disabled per field instance and/or per container entity. The cache is cleared when relevant site content is saved or deleted. For example, saving or deleting a user will clear the cache for user lists.
  • List building is handled with the class EntityListFieldList. By default all field instances will use this class, but you can also configure each field instance to use some other class if you like. See the developer documentation for this module.
  • Configure the pager behavior per field instance and/or per container entity. Choose to activate a standard pager, ajax pager or no pager.
  • Configure the input labels per field instance. If "bundle" perplexes your content editors, change it to "Content types" or whatever is appropriate for your site.
  • Two permissions are provided:
    • 'view entity_list_field widget' -- Allow users to view the widget. Defaults to true for authenticated users.
    • 'view hidden entity_list_field inputs' -- Allow users to view all inputs including those configured to be hidden. Defaults to true for administrators.

Alternative modules to consider

  • Views. If you don't need the widget supplied by this module, need greater flexibility for your queries and your end users have the ability to use views, you might consider using views instead, possibly in combination with viewfield or EVA. By default, Entity List Field uses EntityFieldQuery for data access, so it is subject to the limitations of EntityFieldQuery (e.g. you can't query more than one entity type per list).
  • Nodequeue. If you don't need the widget supplied by this module, and need drag & drop re-ordering of lists, and other nodequeue features, you should look at nodequeue. Entity List Field does not provide drag & drop re-ordering.
  • Entity Reference. If you need a field for referencing a single entity, see the Entity Reference module.

Complimentary modules

  • Entity List Field plays well with Bean, and any other module that provides fieldable entities.
  • Entity List Field integrates Node View Permissions. If you don't want this integration, you can override the accessCheck and/or nodeViewPermissions methods of the base class.
  • As with all fields, the Features module works.

How to use this module

  • Download and enable the module.
  • Go to the Manage Fields tab for any fieldable entity and add an Entity List field.
  • Configure the field.
  • Create or edit an item that has an Entity List field.
  • To prevent a list from appearing, set the Item count input to 0.

Project Information

Downloads