children(); $return = null; } foreach ($children as $element => $value) { if ($value instanceof SimpleXMLElement) { $values = (array)$value->children(); if (count($values) > 0) { $return[$element] = xml_to_array($value); } else { if (!isset($return[$element])) { $return[$element] = (string)$value; } else { if (!is_array($return[$element])) { $return[$element] = array($return[$element], (string)$value); } else { $return[$element][] = (string)$value; } } } } } if (is_array($return)) { return $return; } else { return "false"; } } function read_folder($path, $id) { global $config; $cascade_user = $config->get_var("login.user"); $cascade_passwd = $config->get_var("login.password"); $cascade_server = $config->get_var("login.server"); $id = new identifier(); $id->path = $path; $id->type = "folder"; $auth = new authentication(); $auth->username = $cascade_user; $auth->password = $cascade_passwd; $serv = new AssetOperationHandlerService(); $serv->url = $cascade_server . "/ws/services/AssetOperationService?wsdl"; $serv->read($auth, $id); if ($serv->success == "false") { return "false"; } $xml = $serv->fullXML; preg_match("&.*&is", $xml, $matches); $simplexml = simplexml_load_string($matches[0], 'SimpleXMLElement', LIBXML_NOCDATA); return $simplexml; } function read_page($path, $id) { global $config; $cascade_user = $config->get_var("login.user"); $cascade_passwd = $config->get_var("login.password"); $cascade_server = $config->get_var("login.server"); $folder = $config->get_var("folder"); $auth = new authentication(); $auth->username = "$cascade_user"; $auth->password = "$cascade_passwd"; $id = new identifier(); $id->path = "$path"; $id->type = "page"; $serv = new AssetOperationHandlerService(); $serv->read($auth, $id); if ($serv->success == "true") { return $serv->asset; } return null; } function read_pages_in_folder($folder) { $fchildren = read_folder($folder, ""); $folders = array(); if ($fchildren == "false") { print("Could not find folder: $folder"); return; } if (!isset($fchildren->child)) { return; } foreach($fchildren->child as $child) { if ((string)$child->type == "page") { print("Searching and replacing in " . $child->path . "..."); if ($asset = read_page($child->path, "")) { write_page($asset); print("done\n"); } else { echo "error"; } } if (((string)$child->type == "folder")) $folders[] = (string)$child->path; } foreach($folders as $folder) { read_pages_in_folder($folder); } } function write_page($asset) { global $config; $cascade_user = $config->get_var("login.user"); $cascade_passwd = $config->get_var("login.password"); $cascade_server = $config->get_var("login.server"); $auth = new authentication(); $auth->username = $cascade_user; $auth->password = $cascade_passwd; $asset->page->xhtml = s((string)$xml->xhtml); $asset->page->metadata->author = s($asset->page->metadata->author); $asset->page->metadata->displayName = s($asset->page->metadata->displayName); $asset->page->metadata->keywords = s($asset->page->metadata->keywords); $asset->page->metadata->metaDescription = s($asset->page->metadata->metaDescription); $asset->page->metadata->summary = s($asset->page->metadata->summary); $asset->page->metadata->teaser = s($asset->page->metadata->teaser); $asset->page->metadata->title = s($asset->page->metadata->title); print_r($asset->page->pageConfigurations); $serv = new AssetOperationHandlerService(); $serv->edit($auth, $asset); if ($serv->success != "true") { print_r($client->__getLastRequest()); print_r($client->__getLastResponse()); $mesg = $config->get_var("strings.edit_error"); return "false"; } //print_r($client->__getLastRequest()); return TRUE; } function s($string) { global $config; $needle = $config->get_var("find"); $replacement = $config->get_var("replace"); return str_replace($needle, $replacement, $string); } $config = Resource::connect($config_file); //$xml = read_page("intranet/calendar/events/Stamp-Collecting-Fund-Raiser", ""); //$xml = read_page("intranet/listings/form2", ""); //write_page($xml); //read_pages_in_folder("/intranet/calendar/events", ""); $target = $config->get_var("folder"); read_pages_in_folder($target, ""); ?>