Privileges:Update 00 c Execute('SELECT id FROM groups ORDER by id'); $pages = $GLOBALS['pages']->GetList(); $groups = $groupres->GetArray(); array_unshift($groups, array(0)); $group_max = $groups[count($groups)-1][0]; foreach($pages as $page) { if($page[strlen($page)-1] != $_POST['type']) continue; $page = substr($page, 0, -2); $access = array_fill(0, $group_max/8 + 1, 0); foreach($groups as $group) { if(isset($_POST[$page . ':' . $group[0]])) $access[$group[0]/8] |= (1 << ($group[0]%8)); } $privileges = join('', array_map('chr', $access)); $GLOBALS['db']->Execute('UPDATE pages SET access = ? WHERE name = ?', array($privileges, $page)); if($GLOBALS['db']->Affected_Rows()) continue; $pagedata = $GLOBALS['pages']->GetPageData($page, $_POST['type']); $access = ''; for($i = 0; $i < strlen($pagedata['access']); $i+=2) $access .= chr(hexdec(substr($pagedata['access'], $i, 2))); if($access == substr($privileges, 0, strlen($access))) { for($i = strlen($access); $i < strlen($privileges); $i++) if($privileges[$i] != 0) break; if($i == strlen($privileges)) continue; } $string = ''; foreach($pagedata['data'] as $key => $val) $string .= urlencode($key) . '=' . urlencode($val) . '&'; $GLOBALS['db']->Execute('INSERT INTO pages (name, template, access, data, type) VALUES (?, ?, ?, ?, ?)', array($page, $pagedata['template'], $access, $string, $_POST['type'])); } header('Location: ' . $GLOBALS['links']->GetNeonLink('Privileges', 'type=' . $_POST['type'], false)); exit(); $GLOBALS['pages']->GetPageData() ?> ]]>