function globallink_fieldable_panels_pane_get_xml in GlobalLink Connect for Drupal 7.7
Same name and namespace in other branches
- 7.5 globallink_fieldable_panels/globallink_fieldable_panels.inc \globallink_fieldable_panels_pane_get_xml()
- 7.6 globallink_fieldable_panels/globallink_fieldable_panels.inc \globallink_fieldable_panels_pane_get_xml()
Gets XML data from specific fieldable panel.
Parameters
string $fpid: The fieldable panel ID.
string $path: The path to the page with the Fieldable Panel Pane on it.
Return value
array Associative array of fieldable panel XML data.
2 calls to globallink_fieldable_panels_pane_get_xml()
- globallink_fieldable_panels_pane_send_for_translations in globallink_fieldable_panels/
globallink_fieldable_panels.inc - Sends fieldable panels for translation.
- globallink_fieldable_panels_preview_content in globallink_fieldable_panels/
globallink_fieldable_panels_send.inc - Helper function
File
- globallink_fieldable_panels/
globallink_fieldable_panels.inc, line 83
Code
function globallink_fieldable_panels_pane_get_xml($fpid, $path = NULL) {
$dom = new DOMDocument('1.0', 'UTF-8');
$dom->formatOutput = TRUE;
$root = $dom
->createElement('content');
$dom
->appendChild($root);
$id = $dom
->createAttribute('fpid');
$id->value = $fpid;
$root
->appendChild($id);
$fieldable_panels_pane = fieldable_panels_panes_load($fpid);
$language = $fieldable_panels_pane->language;
$fields = globallink_fieldable_panels_pane_get_fields($fieldable_panels_pane->bundle);
$configured_fields = globallink_get_configured_fields_for_fpp($fieldable_panels_pane->bundle);
foreach ($fields as $field) {
if (empty($fieldable_panels_pane->{$field})) {
continue;
}
if (array_key_exists($field, $configured_fields) && $configured_fields[$field]->translatable == 1) {
$field_values = field_get_items('fieldable_panels_pane', $fieldable_panels_pane, $field, $language);
$field_info = field_info_field($field);
if (is_array($field_values) && !empty($field_values)) {
foreach ($field_values as $delta => $values) {
if ($field_info['type'] == 'link_field') {
globallink_insert_child_element($dom, $root, 'field', $values['title'], array(
'field' => $field,
'delta' => $delta,
'langcode' => $language,
));
}
elseif ($field_info['type'] == 'image') {
if (isset($values['alt'])) {
globallink_insert_child_element($dom, $root, 'field_image', $values['alt'], array(
'field_name' => $field,
'type' => 'alt',
'delta' => $delta,
'langcode' => $language,
));
}
if (isset($values['title'])) {
globallink_insert_child_element($dom, $root, 'field_image', $values['title'], array(
'field_name' => $field,
'type' => 'title',
'delta' => $delta,
'langcode' => $language,
));
}
}
elseif (!empty($values['value'])) {
globallink_insert_child_element($dom, $root, 'field', $values['value'], array(
'field' => $field,
'delta' => $delta,
'langcode' => $language,
));
}
}
}
elseif (!empty($field_values) && is_string($field_values)) {
// Test this without field translation
globallink_insert_child_element($dom, $root, 'field', $field_values, array(
'field' => $field,
));
}
}
}
$xml = $dom
->saveXML();
return $xml;
}