protected function restoreItemFromXml(DOMElement $node)
{
$item = array('attributes' => array());
if ($node->hasAttributes()) {
foreach ($node->attributes as $attr) {
switch ($attr->name) {
case 'action':
$item['action'] = $attr->value;
break;
default:
$item['attributes'][$attr->name] = $attr->value;
}
}
}
foreach ($node->childNodes as $node) {
if ($node->nodeType !== XML_ELEMENT_NODE) {
continue;
}
switch ($node->nodeName) {
case 'object_id':
$item['contentId'] = $node->nodeValue;
break;
case 'node_id':
$item['locationId'] = $node->nodeValue;
break;
case 'priority':
$item[$node->nodeName] = $node->nodeValue;
break;
case 'ts_publication':
$item['publicationDate'] = $node->nodeValue;
break;
case 'ts_visible':
$item['visibilityDate'] = $node->nodeValue;
break;
case 'ts_hidden':
$item['hiddenDate'] = $node->nodeValue;
break;
case 'rotation_until':
$item['rotationUntilDate'] = $node->nodeValue;
break;
case 'moved_to':
$item['movedTo'] = $node->nodeValue;
break;
}
}
return new Parts\Item($item);
}