protected function render_settings($form) { if (!defined('DOING_AJAX') || !DOING_AJAX) { echo '<p>' . __('Click the button to load the current file permissions.', 'better-wp-security') . '</p>'; echo '<p>' . $form->add_button('load_file_permissions', array('value' => __('Load File Permissions Details', 'better-wp-security'), 'class' => 'button-primary itsec-reload-module')) . '</p>'; return; } require_once ITSEC_Core::get_core_dir() . '/lib/class-itsec-lib-config-file.php'; $wp_upload_dir = ITSEC_Core::get_wp_upload_dir(); $path_data = array(array(ABSPATH, 0755), array(ABSPATH . WPINC, 0755), array(ABSPATH . 'wp-admin', 0755), array(ABSPATH . 'wp-admin/js', 0755), array(WP_CONTENT_DIR, 0755), array(get_theme_root(), 0755), array(WP_PLUGIN_DIR, 0755), array($wp_upload_dir['basedir'], 0755), array(ITSEC_Lib_Config_File::get_wp_config_file_path(), 0444), array(ITSEC_Lib_Config_File::get_server_config_file_path(), 0444)); $rows = array(); foreach ($path_data as $path) { $row = array(); list($path, $suggested_permissions) = $path; $display_path = preg_replace('/^' . preg_quote(ABSPATH, '/') . '/', '', $path); $display_path = ltrim($display_path, '/'); if (empty($display_path)) { $display_path = '/'; } $row[] = $display_path; $row[] = sprintf('%o', $suggested_permissions); $permissions = fileperms($path) & 0777; $row[] = sprintf('%o', $permissions); if (!$permissions || $permissions != $suggested_permissions) { $row[] = __('WARNING', 'better-wp-security'); $row[] = '<div style="background-color: #FEFF7F; border: 1px solid #E2E2E2;"> </div>'; } else { $row[] = __('OK', 'better-wp-security'); $row[] = '<div style="background-color: #22EE5B; border: 1px solid #E2E2E2;"> </div>'; } $rows[] = $row; } $class = 'entry-row'; ?> <p><?php $form->add_button('reload_file_permissions', array('value' => __('Reload File Permissions Details', 'better-wp-security'), 'class' => 'button-primary itsec-reload-module')); ?> </p> <table class="widefat"> <thead> <tr> <th><?php _e('Relative Path', 'better-wp-security'); ?> </th> <th><?php _e('Suggestion', 'better-wp-security'); ?> </th> <th><?php _e('Value', 'better-wp-security'); ?> </th> <th><?php _e('Result', 'better-wp-security'); ?> </th> <th><?php _e('Status', 'better-wp-security'); ?> </th> </tr> </thead> <tfoot> <tr> <th><?php _e('Relative Path', 'better-wp-security'); ?> </th> <th><?php _e('Suggestion', 'better-wp-security'); ?> </th> <th><?php _e('Value', 'better-wp-security'); ?> </th> <th><?php _e('Result', 'better-wp-security'); ?> </th> <th><?php _e('Status', 'better-wp-security'); ?> </th> </tr> </tfoot> <tbody> <?php foreach ($rows as $row) { ?> <tr class="<?php echo $class; ?> "> <?php foreach ($row as $column) { ?> <td><?php echo $column; ?> </td> <?php } ?> </tr> <?php $class = 'entry-row' === $class ? 'entry-row alternate' : 'entry-row'; ?> <?php } ?> </tbody> </table> <br /> <?php }