function generate_table($table) { extract($table); if ($project_id == '') { $project_id = $project_info['project_id']; } $R = array('db' => $db, 'project_id' => $project_id, 'subject' => $resource_info['entity'], 'object' => '!=UID'); $rules = list_shared_rules($R); ###Fetch all the objects and all of the verbs to create the header if (empty($_SESSION['show_me'])) { if (is_array($rules)) { $verbs = array_map('grab_verb', $rules); } } else { $verbs = array_map('grab_verb', $_SESSION['show_me']); } $total_objects = 0; if (is_array($verbs)) { foreach ($verbs as $i => $value) { #Make a new query on rules, this time to find the object that has this specific verb if (empty($_SESSION['show_me'])) { $objects = array_map('grab_object', $rules, $verbs); } else { $objects = array_map('grab_object', $_SESSION['show_me'], $verbs); } $total_objects += count($objects); } } $total_objects += 2; $All = array('db' => $db, 'entity' => $resource_info['entity'], 'project_id' => $project_id, 'rules' => $rules, 'verbs' => $verbs, 'objects' => $objects, 'format' => 'html', 'color' => 'on'); #Create the html part of the table #$out = sprintf("%s\n", '<table width=100% border=1 style="border-collapse: collapse;">'); $out .= sprintf("%s\n", ' <tr><td colspan="' . $total_objects . '">Data of ' . $entity . ' (Project: ' . $project['name'] . ')</td></tr>'); $out .= sprintf("%s\n", ' <tr><td colspan="' . $total_objects . '">Page ' . $_SESSION['current_page'] . '</td></tr>'); $out .= create_datamatrix_header($All); $out .= render_datamatrix_values($All); #$out.= sprintf("%s\n", '</table>'); return $out; }
$s3ql['where']['object'] = "!='UID'"; $rules = S3QLaction($s3ql); #$rules = include_all_class_id(compact('rules', 'project_id', 'db')); } else { #Building the query $ruleScope = array(); foreach ($inputs as $key => $value) { $ruleScope[ereg_replace('^R', '', $key)] = stripslashes($value); } $q = array('rules' => array_keys($ruleScope), 'logical' => array_fill(0, count($inputs), 'and'), 'RuleValuePair' => $ruleScope, 'db' => $db); $instances = query_statements($q); } ##Find the values that are to be sent to datamatrix.php, both header and data if (is_array($rules) && !empty($rules)) { $verbs = array_map('grab_verb', $rules); foreach ($verbs as $i => $value) { $objects = array_map('grab_object', $rules, $verbs); } } #echo '<pre>';print_r($objects); #A matrix will need to be built that has rules on top, resource_id as rows and statements in the middle #Create the header, which will not differ for listall or query $head = array('key' => $key, 'user_id' => $user_id, 'db' => $db, 'resource_class_id' => $class_info['resource_id'], 'class_info' => $class_info, 'project_id' => $project_id, 'rules' => $rules, 'objects' => $objects, 'verbs' => $verbs, 'instances' => $instances, 'format' => strval($s3ql['format']), 'color' => strval($s3ql['color'])); $display .= create_datamatrix_header($head); if (is_array($instances)) { $display .= render_datamatrix_values($head); } else { echo '<table><tr><td>Your query returned no results.</td></tr></table>'; } echo $display; }