You are here

protected function RulesI18nStringObjectWrapper::buildElementProperties in Rules 7.2

Adds in translatable properties of the given element.

1 call to RulesI18nStringObjectWrapper::buildElementProperties()
RulesI18nStringObjectWrapper::build_properties in rules_i18n/rules_i18n.i18n.inc
Get translatable properties.

File

rules_i18n/rules_i18n.i18n.inc, line 72
Internationalization integration based upon the entity API i18n stuff.

Class

RulesI18nStringObjectWrapper
Custom I18nString object wrapper; registers custom properties per config.

Code

protected function buildElementProperties($element, &$properties) {
  foreach ($element
    ->pluginParameterInfo() as $name => $info) {

    // Add in all directly provided input variables.
    if (!empty($info['translatable']) && isset($element->settings[$name])) {

      // If its an array of textual values, translate each value on its own.
      if (is_array($element->settings[$name])) {
        foreach ($element->settings[$name] as $i => $value) {
          $properties[$element
            ->elementId() . ':' . $name . ':' . $i] = array(
            'title' => t('@plugin "@label" (id @id), @parameter, Value @delta', array(
              '@plugin' => drupal_ucfirst($element
                ->plugin()),
              '@label' => $element
                ->label(),
              '@id' => $element
                ->elementId(),
              '@parameter' => $info['label'],
              '@delta' => $i + 1,
            )),
            'string' => $value,
          );
        }
      }
      else {
        $properties[$element
          ->elementId() . ':' . $name] = array(
          'title' => t('@plugin "@label" (id @id), @parameter', array(
            '@plugin' => drupal_ucfirst($element
              ->plugin()),
            '@label' => $element
              ->label(),
            '@id' => $element
              ->elementId(),
            '@parameter' => $info['label'],
          )),
          'string' => $element->settings[$name],
        );
      }
    }
  }
}