function createXMLForThemeChildNodes($xmlDoc, &$rootNode, $thms) { foreach($thms as $thm) { if($thm['type'] == 'layer') { $attr = array('id' => $thm['id'], 'name' => $thm['name'], 'type' => $thm['layer_type'], 'nid' => $thm['nid']); $tNode = addXMLChildNode($xmlDoc, $rootNode, "layer", null, $attr); } else { $attr = array('type' => $thm['type'], 'id' => $thm['id'], 'name' => $thm['name'], 'icon' => getThemeIconUrl($theme['icon'])); $tNode = addXMLChildNode($xmlDoc, $rootNode, "theme", null, $attr); if(isset($thm['children'])) { createXMLForThemeChildNodes($xmlDoc, $tNode, $thm['children']); } } } }
function getThemesChildNodes($xmlDoc, &$rootNode, $paramsNode) { $theme_id = $paramsNode->getElementsByTagName('theme_id')->item(0)->nodeValue; $category_id = $paramsNode->getElementsByTagName('category_id')->item(0)->nodeValue; $level = $paramsNode->getElementsByTagName('level')->item(0)->nodeValue; if($category_id == null || $category_id == '') { $category_id = 0; } if($level == null || $level == '') { $level = 1; } if($theme_id == null || $theme_id == '') { setError($xmlDoc, $rootNode, "Required parameters not set."); return; } else { $thms = _getThemeChildNodes($theme_id, $category_id, $level); if($thms === false) { setError($xmlDoc, $rootNode, "Error fetching information."); } else { setNoError($xmlDoc, $rootNode); $thmsNode = addXMLChildNode($xmlDoc, $rootNode, "theme", null, array('id' => $theme_id, 'category_id' => $category_id, 'level' => $level)); if($category_id == 0) { $nid = 0; $images = ''; $videos = ''; $query = 'select nid, images, videos from "Theme" where theme_id = %d'; $query_args = array($theme_id); $result = db_query($query, $query_args); if(!$result) { return false; } else { if($obj = db_fetch_object($result)) { $nid = $obj->nid; $images = array(); $str = $obj->images; if($str != NULL || !empty($str)) { $images = explode(",", $str); } $videos = array(); $str = $obj->videos; if($str != NULL || !empty($str)) { $videos = explode(",", $str); } } } if($nid > 0) { $teaser = getReadMoreDrupalNodeTeaser($nid, 150); addXMLChildNode($xmlDoc, $thmsNode, 'narrative', $teaser, array('nid' => $nid)); } $mediaNode = addXMLChildNode($xmlDoc, $thmsNode, 'media'); $base_path = base_path(); $imagesNode = addXMLChildNode($xmlDoc, $mediaNode, 'images'); foreach ($images as $im) { addXMLChildNode($xmlDoc, $imagesNode, "image", $im, array('src' => $base_path . 'sites/default/files/images/theme_' . $theme_id . '/' . $im)); } $videosNode = addXMLChildNode($xmlDoc, $mediaNode, 'videos'); foreach ($videos as $vd) { addXMLChildNode($xmlDoc, $videosNode, "video", $vd, array('src' => $base_path . 'sites/default/files/videos/theme_' . $theme_id . '/' . $vd)); } } createXMLForThemeChildNodes($xmlDoc, $thmsNode, $thms); } } }