function getLayersOfType($xmlDoc, &$rootNode, $group_type) { if($group_type == 3) { $query = 'select layer_tablename, layer_name, access, p_nid, participation_type from "Meta_Layer" where participation_type in (1,2, 3) and status = 1 order by layer_name;'; } else { $query = 'select layer_tablename, layer_name, access, p_nid, participation_type from "Meta_Layer" where status = 0'; } $result = db_query($query); if(!$result) { setError($xmlDoc, $rootNode, "Error fetching data."); } else { setNoError($xmlDoc, $rootNode); $grpNode = addXMLChildNode($xmlDoc, $rootNode, "group_type", $group_type); $lyrsNode = addXMLChildNode($xmlDoc, $rootNode, "layers"); getLayersList($xmlDoc, $lyrsNode, $result); $user = $GLOBALS['user']; if($user->uid) { $query = ""; $user_roles = $user->roles; // Needs to be thought of. //if (in_array(SITE_ADMIN_ROLE, $user_roles)) { // $query = 'select layer_tablename, layer_name, access, p_nid, participation_type from "Meta_Layer" where status = 1 order by layer_name;'; //} else { $lyrs = array(); foreach($user_roles as $role) { if(substr($role, -6) == ' admin') { $lyrs[] = substr($role, 0, -6); } else if(substr($role, -10) == ' validator') { $lyrs[] = substr($role, 0, -10); } else if(substr($role, -7) == ' member') { $lyrs[] = substr($role, 0, -7); } } if (sizeof($lyrs) > 0) { array_walk($lyrs, "singleQuoteString"); $str_lyrs = implode(",", $lyrs); $query = 'select layer_tablename, layer_name, access, p_nid, participation_type from "Meta_Layer" where layer_tablename in ('.$str_lyrs.') and status = 1 order by layer_name;'; } //} if ($query != '') { $result = db_query($query); if(!$result) { setError($xmlDoc, $rootNode, "Error fetching data."); } else { getLayersList($xmlDoc, $lyrsNode, $result); } } } } }
function getLayersForTheme($xmlDoc, &$rootNode, $paramsNode) { $group_type = $paramsNode->getElementsByTagName('group_type')->item(0)->nodeValue; $theme_id = $paramsNode->getElementsByTagName('theme_id')->item(0)->nodeValue; if($theme_id == null || $theme_id == '') { setError($xmlDoc, $rootNode, "Required parameters not set."); return; } else { $query = 'select layer_tablename, layer_name, access, p_nid, participation_type from "Meta_Layer" where layer_id in (select layer_id from "Theme_Layer_Mapping" where theme_id = %d) and status = 1 order by layer_name;'; $result = db_query($query, $theme_id); if (!$result) { setError($xmlDoc, $rootNode, "Error fetching information."); } else { setNoError($xmlDoc, $rootNode); addXMLChildNode($xmlDoc, $rootNode, "group_type", $group_type); $thmNode = addXMLChildNode($xmlDoc, $rootNode, "theme", null, array('id' => $theme_id)); getLayersList($xmlDoc, $thmNode, $result); } } }