You are here

function globallink_webform_get_translated_items in GlobalLink Connect for Drupal 7.6

Same name and namespace in other branches
  1. 7.7 globallink_webform/globallink_webform.inc \globallink_webform_get_translated_items()
  2. 7.5 globallink_webform/globallink_webform.inc \globallink_webform_get_translated_items()

Gets translated webform items from XML data.

Parameters

object $xml: XML representation of webform items.

Return value

array Array of webform items.

2 calls to globallink_webform_get_translated_items()
globallink_webform_get_translated in globallink_webform/globallink_webform.inc
Gets number of translated webforms.
globallink_webform_get_translations_for_row_id in globallink_webform/globallink_webform_receive.inc
Gets webform translations by row ID.

File

globallink_webform/globallink_webform.inc, line 710

Code

function globallink_webform_get_translated_items($xml) {
  if (is_null($xml) || !is_string($xml) || $xml == '') {
    return array();
  }
  $dom = new DomDocument();
  $dom->preserveWhiteSpace = FALSE;
  $dom
    ->loadXML($xml);
  $contents = $dom
    ->getElementsByTagName('content');
  $parent = '';
  foreach ($contents as $content) {
    if (!is_null($content->attributes)) {
      foreach ($content->attributes as $attr_name => $attr_node) {
        if ($attr_name == 'pid') {
          $parent = $attr_node->value;
        }
      }
    }
  }
  if ($parent == '') {
    return array();
  }
  $webform_arr = array();
  $webform_arr['pid'] = $parent;
  $webforms = $dom
    ->getElementsByTagName('webform');
  foreach ($webforms as $webform) {
    if (!is_null($webform->attributes)) {
      $lid = '';
      foreach ($webform->attributes as $attr_name => $attr_node) {
        if ($attr_name == 'lid') {
          $lid = $attr_node->value;
          break;
        }
      }
      $w_arr = array();
      foreach ($webform->attributes as $attr_name => $attr_node) {
        $w_arr[$attr_name] = $attr_node->value;
      }
      $w_arr['translation'] = $webform->nodeValue;
      $webform_arr[$lid] = $w_arr;
    }
  }
  return $webform_arr;
}