/** * HTML formatted permissions table. * * @param type $roles * @param type $permissions * @param type $name * @return string */ function wpcf_access_permissions_table($roles, $permissions, $settings, $group_id, $id, $enabled = true, $managed = true) { $ordered_roles = wpcf_access_order_roles_by_level($roles); $output = ''; $output .= '<table><tr><th>' . __('Action', 'wpcf-access') . '</th>'; foreach ($ordered_roles as $levels => $roles_data) { if (empty($roles_data)) { continue; } $title = ''; foreach ($roles_data as $role => $details) { $title .= translate_user_role($details['name']) . '<br />'; } $output .= '<th>' . $title . '</th>'; } // Add Guest $output .= '<th>' . __('Guest', 'wpcf-access') . '</th>'; $output .= '<th>' . __('Specific user', 'wpcf-access') . '</th></tr><tbody>'; foreach ($settings as $permission_slug => $data) { // Change slug for 3rd party if (!in_array($group_id, array('types', 'tax'))) { $permission_slug = $data['cap_id']; } $check = true; $output .= '<tr><td>' . $data['title'] . '</td>'; $name = 'types_access[' . $group_id . '][' . $id . '][permissions]' . '[' . $permission_slug . '][role]'; // If no settings saved use default setting [role] $role_check = !empty($permissions[$permission_slug]['role']) ? $permissions[$permission_slug]['role'] : $data['role']; foreach ($ordered_roles as $levels => $roles_data) { if (empty($roles_data)) { continue; } // Render only first (built-in) $role = key($roles_data); $details = array_shift($roles_data); $att_id = $group_id . '_' . $id . '_permissions_' . $permission_slug . '_' . $role . '_role'; $attributes = $check ? ' checked="checked"' : ''; $attributes .= !$managed ? ' readonly="readonly" disabled="disabled"' : ''; $output .= '<td><input type="checkbox" name="'; $output .= $role_check == $role ? $name : 'dummy'; $output .= '" id="' . $att_id . '" value="' . $role . '"' . $attributes . ' class="wpcf-access-check-left wpcf-access-' . $permission_slug . '" data-wpcfaccesscap="' . $permission_slug . '" data-wpcfaccessname="' . $name . '" ' . 'onclick="wpcfAccessAutoThick(jQuery(this), \'' . $permission_slug . '\', \'' . $name . '\');"'; if (!$enabled) { $output .= ' disabled="disabled" readonly="readonly"'; } $output .= '/></td>'; // Turn off onwards checking if ($role_check == $role) { $check = false; } } // Add Guest $name = 'types_access[' . $group_id . '][' . $id . '][permissions]' . '[' . $permission_slug . '][role]'; $attributes = $check ? ' checked="checked"' : ''; $attributes .= !$managed ? ' readonly="readonly" disabled="disabled"' : ''; $output .= '<td><input type="checkbox" name="'; $output .= $role_check == 'guest' ? $name : 'dummy'; $output .= '" id="' . $group_id . '_' . $id . '_permissions_' . $permission_slug . '_guest_role" value="guest"' . $attributes . ' class="wpcf-access-check-left wpcf-access-' . $permission_slug . '" data-wpcfaccesscap="' . $permission_slug . '" data-wpcfaccessname="' . $name . '" ' . 'onclick="wpcfAccessAutoThick(jQuery(this), \'' . $permission_slug . '\', \'' . $name . '\');"'; if (!$enabled) { $output .= ' disabled="disabled" readonly="readonly"'; } $output .= ' />'; // Add admin if all disabled $output .= '<input type="hidden" name="types_access[' . $group_id . '][' . $id . '][__permissions]' . '[' . $permission_slug . '][role]" value="administrator" />'; $output .= '</td>'; $data['users'] = !empty($permissions[$permission_slug]['users']) ? $permissions[$permission_slug]['users'] : array(); $output .= '<td>' . '<input type="hidden" class="wpcf-access-name-holder" name="wpcf_access_' . $id . '_' . $permission_slug . '" data-wpcfaccesscap="' . $permission_slug . '" data-wpcfaccessname="' . 'types_access[' . $group_id . '][' . $id . ']' . '[permissions][' . $permission_slug . ']" value="types_access[' . $group_id . '][' . $id . ']' . '[permissions][' . $permission_slug . ']" />' . wpcf_access_admin_users_form($data, 'types_access[' . $group_id . '][' . $id . '][permissions]' . '[' . $permission_slug . ']', $enabled, $managed) . '</td></tr>'; } $output .= '</tbody></table>'; return $output; }
/** * Renders custom caps tax table. * * @param type $type_slug * @param type $roles * @param type $name * @param type $data * @return string */ function wpcf_access_admin_edit_access_tax_item($type_slug, $roles, $name, $data, $enabled = true) { $output = ''; $output .= __('Set all capabilities to users of type:') . ' ' . wpcf_access_admin_roles_dropdown($roles, 'wpcf_access_bulk_set[' . $type_slug . ']', array(), '-- ' . __('Choose user type', 'wpcf') . ' --', $enabled); $output .= wpcf_access_reset_button($type_slug, 'tax', $enabled); $output .= '<table class="wpcf-access-caps-wrapper">'; foreach ($data as $cap_slug => $cap_data) { $output .= '<tr><td style="text-align:right;">'; $output .= $cap_data['title'] . '<td/><td>'; $output .= wpcf_access_admin_roles_dropdown($roles, $name . '[' . $cap_slug . '][role]', $cap_data, false, $enabled); $output .= '<input type="hidden" class="wpcf-access-name-holder" name="wpcf_access_' . $type_slug . '_' . $cap_slug . '" value="' . $name . '[' . $cap_slug . ']" />'; $output .= '</td><td>'; $output .= wpcf_access_admin_users_form($cap_data, $name . '[' . $cap_slug . ']', $enabled); $output .= '</td></tr>'; } $output .= '</td></tr></table>'; return $output; }