You are here

class EntityformType in Entityform 7.2

Same name and namespace in other branches
  1. 7 entityform.module \EntityformType

The class used for entityform type entities

Hierarchy

Expanded class hierarchy of EntityformType

3 string references to 'EntityformType'
EntityformController::create in ./entityform.module
Create a entityform - we first set up the values that are specific to our entityform schema but then also go through the EntityAPIController function.
entityform_entity_info in ./entityform.module
Implements hook_entity_info().
entityform_type_access in ./entityform.module
Access callback for the entity API.

File

./entityform.module, line 1131
Module for the Entityform Entity - a starting point to create your own Entity and associated administration interface

View source
class EntityformType extends Entity {
  protected function defaultUri() {
    return array(
      'path' => 'eform/submit/' . str_replace('_', '-', $this->type),
    );
  }
  public $type;
  public $label;
  public $data;
  public function __construct($values = array()) {
    parent::__construct($values, 'entityform_type');
  }

  /*
   * Get A path property for this EntityformType with tokens replaced
   */
  public function get_path_property($property, $entityform = NULL) {
    $path = $this
      ->getTranslation($property);
    if (empty($path)) {
      return '';
    }
    if ($path == '<front>') {
      return $path;
    }
    $path = _entityform_format_text($path, array(
      'entityform_type' => $this,
      'entityform' => $entityform,
    ));
    $options = drupal_parse_url(decode_entities($path));
    return array(
      $options['path'],
      array(
        'query' => $options['query'],
      ),
    );
  }
  public function get_prop($key, $entityform = NULL) {
    if (isset($this->data[$key])) {
      if (is_array($this->data[$key]) && !empty($this->data[$key]['value'])) {
        $value = array(
          'value' => $this
            ->getTranslation($key),
        );
        if (!empty($this->data[$key]['format'])) {
          $value['format'] = $this->data[$key]['format'];
        }
      }
      else {
        $value = $this
          ->getTranslation($key);
      }
    }
    else {
      $value = '';
    }
    $text_value = $value;
    if (is_array($text_value)) {

      // We are dealing for a filtered text value
      $text_value = $text_value['value'];
    }
    if ($text_value == '<none>') {
      return '';
    }
    $token_types['entityform_type'] = $this;
    if (!empty($entityform)) {
      $token_types['entityform'] = $entityform;
    }
    if (empty($text_value)) {
      $default_entityform_type = entity_get_controller('entityform_type')
        ->create(array(), TRUE);
      if (isset($default_entityform_type->data[$key])) {
        $value = $default_entityform_type->data[$key];
      }
    }
    return _entityform_format_text($value, $token_types);
  }

  /**
   * {@inheritdoc}
   */
  public function getTranslation($property, $langcode = NULL) {
    $all_info = entity_get_all_property_info($this->entityType);

    // Assign by reference to avoid triggering notices if metadata is missing.
    $property_info =& $all_info[$property];
    $property_value = isset($this->{$property}) ? $this->{$property} : (isset($this->data[$property]) ? $this->data[$property] : NULL);
    if (is_array($property_value) && isset($property_value['value'])) {
      $property_value = $property_value['value'];
    }
    if (!empty($property_info['translatable'])) {
      if (!empty($property_info['field'])) {
        return field_get_items($this->entityType, $this, $property, $langcode);
      }
      elseif (module_exists('i18n_string') && !empty($property_info['i18n string'])) {
        $name = $this->entityInfo['module'] . ':' . $this->entityType . ':' . $this
          ->identifier() . ':' . $property;
        $options = array(
          'langcode' => $langcode,
          'sanitize' => FALSE,
        );
        return html_entity_decode(i18n_string($name, $property_value, $options), ENT_QUOTES);
      }
    }
    return $property_value;
  }

  /**
   * Clears values default text values so global text values can be used.
   */
  public function clear_text_props() {
    $clear_keys = array_keys(entity_get_controller('entityform_type')
      ->get_default_text_values());
    foreach ($clear_keys as $key) {
      $this->data[$key] = '';
    }
  }

  /**
   * Return a list of property labels used for translation forms.
   */
  public function getLabelsForTranslation() {
    return entity_get_controller('entityform_type')
      ->get_text_labels();
  }

}

Members

Namesort descending Modifiers Type Description Overrides
Entity::$defaultLabel protected property 1
Entity::$entityInfo protected property
Entity::$entityType protected property
Entity::$idKey protected property
Entity::$wrapper protected property
Entity::buildContent public function Builds a structured array representing the entity's content. Overrides EntityInterface::buildContent 1
Entity::bundle public function Returns the bundle of the entity. Overrides EntityInterface::bundle
Entity::defaultLabel protected function Defines the entity label if the 'entity_class_label' callback is used. 1
Entity::delete public function Permanently deletes the entity. Overrides EntityInterface::delete
Entity::entityInfo public function Returns the info of the type of the entity. Overrides EntityInterface::entityInfo
Entity::entityType public function Returns the type of the entity. Overrides EntityInterface::entityType
Entity::export public function Exports the entity. Overrides EntityInterface::export
Entity::hasStatus public function Checks if the entity has a certain exportable status. Overrides EntityInterface::hasStatus
Entity::identifier public function Returns the entity identifier, i.e. the entities name or numeric id. Overrides EntityInterface::identifier
Entity::internalIdentifier public function Returns the internal, numeric identifier. Overrides EntityInterface::internalIdentifier
Entity::isDefaultRevision public function Checks whether the entity is the default revision. Overrides EntityInterface::isDefaultRevision
Entity::label public function Returns the label of the entity. Overrides EntityInterface::label
Entity::save public function Permanently saves the entity. Overrides EntityInterface::save
Entity::setUp protected function Set up the object instance on construction or unserializiation.
Entity::uri public function Returns the uri of the entity just as entity_uri(). Overrides EntityInterface::uri
Entity::view public function Generate an array for rendering the entity. Overrides EntityInterface::view
Entity::wrapper public function Returns the EntityMetadataWrapper of the entity. Overrides EntityInterface::wrapper
Entity::__sleep public function Magic method to only serialize what's necessary.
Entity::__wakeup public function Magic method to invoke setUp() on unserialization.
EntityformType::$data public property
EntityformType::$label public property
EntityformType::$type public property
EntityformType::clear_text_props public function Clears values default text values so global text values can be used.
EntityformType::defaultUri protected function Override this in order to implement a custom default URI and specify 'entity_class_uri' as 'uri callback' hook_entity_info(). Overrides Entity::defaultUri
EntityformType::getLabelsForTranslation public function Return a list of property labels used for translation forms.
EntityformType::getTranslation public function Gets the raw, translated value of a property or field. Overrides Entity::getTranslation
EntityformType::get_path_property public function
EntityformType::get_prop public function
EntityformType::__construct public function Overrides Entity::__construct