) if (isset($_POST['falsify']) and isset($_POST['cat_true']) and count($_POST['cat_true']) > 0) { $piwecard->config['authorized_cats'] = 'selected'; foreach ($_POST['cat_true'] as $cat) unset($piwecard->config['selected_cats'][array_search($cat, $piwecard->config['selected_cats'])]); $piwecard->set_config(); } // Switch on left side (<=) if (isset($_POST['trueify']) and isset($_POST['cat_false']) and count($_POST['cat_false']) > 0) { $query = 'SELECT id, name, uppercats, global_rank FROM '.CATEGORIES_TABLE.' WHERE id IN ("'.implode('","', $_POST['cat_false']).'");'; $result = pwg_query($query); $piwecard->config['authorized_cats'] = 'selected'; if (!empty($result)) { while ($cat = pwg_db_fetch_assoc($result)) array_push($piwecard->config['selected_cats'], $cat['id']); } usort($piwecard->config['selected_cats'], 'global_rank_compare'); $piwecard->set_config(); } if (isset($_POST['submit'])) { $piwecard->config['authorized_cats'] = $_POST['ecard_authorized_cats']; if ($_POST['ecard_authorized_cats'] == 'user') $piwecard->config['user_cats_case_sensitive'] = ((isset($_POST['ecard_user_cats_case_sensitive']) && $_POST['ecard_user_cats_case_sensitive'] == '1') ? true : false); $piwecard->config['authorized_groups_users'] = $_POST['ecard_authorized_groups_users']; if ($_POST['ecard_authorized_groups_users'] == 'granted' OR $_POST['ecard_authorized_groups_users'] == 'denied') { $piwecard->config['selected_groups'] = (isset($_POST['groups']) ? $_POST['groups'] : array()); $piwecard->config['selected_users'] = (isset($_POST['users']) ? $_POST['users'] : array()); } $piwecard->set_config(); array_push($page['infos'], l10n('Information data registered in database')); } // +-----------------------------------------------------------------------+ // | template initialization | // +-----------------------------------------------------------------------+ $template->set_filenames(array( 'plugin_admin_content' => PIWECARD_ROOT.'/admin/template/admin_permissions.tpl', 'double_select' => 'double_select.tpl' )); $template->assign('ecard', array( 'all_cats_checked' => (($piwecard->config['authorized_cats'] == 'all') ? 'checked="checked"' : ''), 'selected_cats_checked' => (($piwecard->config['authorized_cats'] == 'selected') ? 'checked="checked"' : ''), 'user_cats_checked' => (($piwecard->config['authorized_cats'] == 'user') ? 'checked="checked"' : ''), 'user_cats_case_sensitive' => (($piwecard->config['user_cats_case_sensitive']) ? 'checked="checked"' : ''), 'all_groups_users_checked' => (($piwecard->config['authorized_groups_users'] == 'all') ? 'checked="checked"' : ''), 'granted_groups_users_checked' => (($piwecard->config['authorized_groups_users'] == 'granted') ? 'checked="checked"' : ''), 'denied_groups_users_checked' => (($piwecard->config['authorized_groups_users'] == 'denied') ? 'checked="checked"' : ''), ) ); $template->assign(array( 'F_ACTION' => '', 'L_CAT_OPTIONS_TRUE' => l10n('piwecard_selected_cats'), 'L_CAT_OPTIONS_FALSE' => l10n('piwecard_non_selected_cats'), ) ); // +-----------------------------------------------------------------------+ // | form construction | // +-----------------------------------------------------------------------+ //Populate double_select $query = 'SELECT id, name, uppercats, global_rank FROM '.CATEGORIES_TABLE.' WHERE id not IN ("'.implode('","', $piwecard->config['selected_cats']).'");'; $result = pwg_query($query); $categories = array(); if (!empty($result)) { while ($row = pwg_db_fetch_assoc($result)) array_push($categories, $row); } usort($categories, 'global_rank_compare'); $tpl = array(); if (!empty($result)) { foreach ($categories as $cat) { $tpl_false[$cat['id']] = get_cat_display_name_cache($cat['uppercats'], null, false); } } $template->assign('category_option_false', $tpl_false); $template->assign('category_option_false_selected', array()); $query = 'SELECT id, name, uppercats, global_rank FROM '.CATEGORIES_TABLE.' WHERE id IN ("'.implode('","', $piwecard->config['selected_cats']).'");'; $result = pwg_query($query); $categories = array(); if (!empty($result)) { while ($row = pwg_db_fetch_assoc($result)) array_push($categories, $row); } usort($categories, 'global_rank_compare'); $tpl_true = array(); if (!empty($result)) { foreach ($categories as $cat) { $tpl_true[$cat['id']] = get_cat_display_name_cache($cat['uppercats'], null, false); } } $template->assign('category_option_true', $tpl_true); $template->assign('category_option_true_selected', array()); //Populate Groups and Users //Groups $groups = array(); $query = 'SELECT id, name FROM '.GROUPS_TABLE.' ORDER BY name ASC;'; $groups = simple_hash_from_query($query, 'id', 'name'); $template->assign('groups', $groups); //Selected groups $selected_groups = $piwecard->config['selected_groups']; $template->assign('piwecard_selected_groups', $selected_groups); //Users $users = array(); $query = 'SELECT '.$conf['user_fields']['id'].' AS id, '.$conf['user_fields']['username'].' AS username FROM '.USERS_TABLE.';'; $users = simple_hash_from_query($query, 'id', 'username'); $template->assign('users', $users); //Selected users $selected_users = $piwecard->config['selected_users']; $template->assign('piwecard_selected_users', $selected_users); if (count($selected_groups) > 0) { $selected_groups_ids = array(); $query = 'SELECT user_id, group_id FROM '.USER_GROUP_TABLE.' WHERE group_id IN ('.implode(',', $selected_groups).');'; $result = pwg_query($query); while ($row = pwg_db_fetch_assoc($result)) { if (!isset($selected_groups_ids[$row['group_id']])) { $selected_groups_ids[$row['group_id']] = array(); } array_push($selected_groups_ids[$row['group_id']], $row['user_id']); } $user_selected_by_group_ids = array(); foreach ($selected_groups_ids as $group_users) { $user_selected_by_group_ids = array_merge($user_selected_by_group_ids, $group_users); } $user_selected_by_group_ids = array_unique($user_selected_by_group_ids); $user_selected_indirect_ids = array_diff($user_selected_by_group_ids, $selected_users); $template->assign('nb_users_selected_indirect', count($user_selected_indirect_ids)); $template->assign('nb_users_selected_indirect_style', array( 'granted' => (($piwecard->config['authorized_groups_users'] == 'granted') ? '' : 'style="display: none"'), 'denied' => (($piwecard->config['authorized_groups_users'] == 'denied') ? '' : 'style="display: none"'), ) ); foreach ($selected_groups_ids as $group_id => $group_users) { $group_usernames = array(); foreach ($group_users as $user_id) { if (in_array($user_id, $user_selected_indirect_ids)) { array_push($group_usernames, $users[$user_id]); } } $template->append('user_selected_indirect_groups', array( 'group_name' => $groups[$group_id], 'group_users' => implode(', ', $group_usernames), ) ); } } // +-----------------------------------------------------------------------+ // | sending html code | // +-----------------------------------------------------------------------+ $template->assign_var_from_handle('DOUBLE_SELECT', 'double_select'); $template->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content');