annotate sites/all/modules/ctools/plugins/arguments/entity_id.inc @ 9:830c812b520f

added smtp module
author root <root@paio.local>
date Mon, 28 Oct 2013 15:34:27 +0000
parents ff03f76ab3fe
children
rev   line source
danielebarchiesi@0 1 <?php
danielebarchiesi@0 2
danielebarchiesi@0 3 /**
danielebarchiesi@0 4 * @file
danielebarchiesi@0 5 *
danielebarchiesi@0 6 * Plugin to provide an argument handler for all entity ids
danielebarchiesi@0 7 */
danielebarchiesi@0 8
danielebarchiesi@0 9 /**
danielebarchiesi@0 10 * Plugins are described by creating a $plugin array which will be used
danielebarchiesi@0 11 * by the system that includes this file.
danielebarchiesi@0 12 */
danielebarchiesi@0 13 $plugin = array(
danielebarchiesi@0 14 'title' => t("Entity: ID"),
danielebarchiesi@0 15 'description' => t('Creates an entity context from an entity ID argument.'),
danielebarchiesi@0 16 'context' => 'ctools_argument_entity_id_context',
danielebarchiesi@0 17 'get child' => 'ctools_argument_entity_id_get_child',
danielebarchiesi@0 18 'get children' => 'ctools_argument_entity_id_get_children',
danielebarchiesi@0 19 );
danielebarchiesi@0 20
danielebarchiesi@0 21 function ctools_argument_entity_id_get_child($plugin, $parent, $child) {
danielebarchiesi@0 22 $plugins = ctools_argument_entity_id_get_children($plugin, $parent);
danielebarchiesi@0 23 return $plugins[$parent . ':' . $child];
danielebarchiesi@0 24 }
danielebarchiesi@0 25
danielebarchiesi@0 26 function ctools_argument_entity_id_get_children($original_plugin, $parent) {
danielebarchiesi@0 27 $entities = entity_get_info();
danielebarchiesi@0 28 $plugins = array();
danielebarchiesi@0 29 foreach ($entities as $entity_type => $entity) {
danielebarchiesi@0 30 $plugin = $original_plugin;
danielebarchiesi@0 31 $plugin['title'] = t('@entity: ID', array('@entity' => $entity['label']));
danielebarchiesi@0 32 $plugin['keyword'] = $entity_type;
danielebarchiesi@0 33 $plugin['description'] = t('Creates @entity context from an ID argument.', array('@entity' => $entity_type));
danielebarchiesi@0 34 $plugin['name'] = $parent . ':' . $entity_type;
danielebarchiesi@0 35 $plugin_id = $parent . ':' . $entity_type;
danielebarchiesi@0 36 drupal_alter('ctools_entity_context', $plugin, $entity, $plugin_id);
danielebarchiesi@0 37 $plugins[$plugin_id] = $plugin;
danielebarchiesi@0 38 }
danielebarchiesi@0 39 drupal_alter('ctools_entity_contexts', $plugins);
danielebarchiesi@0 40 return $plugins;
danielebarchiesi@0 41 }
danielebarchiesi@0 42
danielebarchiesi@0 43 /**
danielebarchiesi@0 44 * Discover if this argument gives us the entity we crave.
danielebarchiesi@0 45 */
danielebarchiesi@0 46 function ctools_argument_entity_id_context($arg = NULL, $conf = NULL, $empty = FALSE) {
danielebarchiesi@0 47 $entity_type = explode(':', $conf['name']);
danielebarchiesi@0 48 $entity_type = $entity_type[1];
danielebarchiesi@0 49 // If unset it wants a generic, unfilled context.
danielebarchiesi@0 50 if ($empty) {
danielebarchiesi@0 51 return ctools_context_create_empty('entity:' . $entity_type);
danielebarchiesi@0 52 }
danielebarchiesi@0 53
danielebarchiesi@0 54 // We can accept either an entity object or a pure id.
danielebarchiesi@0 55 if (is_object($arg)) {
danielebarchiesi@0 56 return ctools_context_create('entity:' . $entity_type, $arg);
danielebarchiesi@0 57 }
danielebarchiesi@0 58
danielebarchiesi@0 59 if (!is_numeric($arg)) {
danielebarchiesi@0 60 return FALSE;
danielebarchiesi@0 61 }
danielebarchiesi@0 62
danielebarchiesi@0 63 $entity = entity_load($entity_type, array($arg));
danielebarchiesi@0 64 if (!$entity) {
danielebarchiesi@0 65 return FALSE;
danielebarchiesi@0 66 }
danielebarchiesi@0 67
danielebarchiesi@0 68 return ctools_context_create('entity:' . $entity_type, $entity[$arg]);
danielebarchiesi@0 69 }
danielebarchiesi@0 70