$user = CMediusers::get(); $dom = new CMbXMLDocument(); if (!$dom->load($file['tmp_name'])) { CAppUI::redirect('m=passwordKeeper&a=vw_import_keeper&dialog=1'); } $xpath = new CMbXPath($dom); $keeperNode = $xpath->queryUniqueNode("/keeper"); $keeperName = $keeperNode->getAttribute("name"); if ($keeperNode->nodeName != "keeper") { CAppUI::redirect('m=passwordKeeper&a=vw_import_keeper&dialog=1'); } $keeper = new CPasswordKeeper(); $keeper->keeper_name = $keeperName; $keeper->_passphrase = $passphrase; $keeper->user_id = $user->_id; $keeper->store(); $categoryNodes = $xpath->query("//category"); foreach ($categoryNodes as $_categoryNode) { $category = new CPasswordCategory(); $category->category_name = $_categoryNode->getAttribute("name"); $category->password_keeper_id = $keeper->_id; $category->store(); $passwordNodes = $xpath->query(".//password", $_categoryNode); foreach ($passwordNodes as $_passwordNode) { $password = new CPasswordEntry(); $desc = $xpath->queryUniqueNode("description", $_passwordNode); $password->password_description = $desc->nodeValue; $crypted = $xpath->queryUniqueNode("crypted", $_passwordNode); $password->password = $crypted->nodeValue; $last_change = $xpath->queryUniqueNode("last_change", $_passwordNode); $password->password_last_change = $last_change->nodeValue;