118 lines
4.0 KiB
PHP
118 lines
4.0 KiB
PHP
<?php
|
|
/**
|
|
* Settings page template
|
|
*
|
|
* @package notification
|
|
*
|
|
* @var BracketSpace\Notification\Utils\Settings $this Settings instance.
|
|
*/
|
|
|
|
if ( ! isset( $current_section ) ) {
|
|
$current_section = '';
|
|
}
|
|
|
|
?>
|
|
|
|
<div class="wrap underdev-settings <?php echo esc_attr( $this->handle ); ?>-settings">
|
|
|
|
<h1><?php esc_html_e( 'Settings', $this->textdomain ); ?></h1>
|
|
|
|
<?php if ( empty( $sections ) ) : ?>
|
|
<p><?php esc_html_e( 'No Settings available at the moment', $this->textdomain ); ?></p>
|
|
<?php else : ?>
|
|
|
|
<div class="menu-col">
|
|
|
|
<?php do_action( $this->handle . '/settings/sidebar/before' ); ?>
|
|
|
|
<ul class="menu-list box">
|
|
<?php foreach ( $this->get_sections() as $section_slug => $section ) : ?>
|
|
<?php
|
|
$class = ( $section_slug === $current_section ) ? 'current' : '';
|
|
$page_url = remove_query_arg( 'updated' );
|
|
$url = add_query_arg( 'section', $section_slug, $page_url );
|
|
?>
|
|
<li class="<?php echo esc_attr( $class ); ?>"><a href="<?php echo esc_attr( $url ); ?>"><?php echo esc_html( $section->name() ); ?></a></li>
|
|
<?php endforeach ?>
|
|
</ul>
|
|
|
|
<?php do_action( $this->handle . '/settings/sidebar/after' ); ?>
|
|
|
|
</div>
|
|
|
|
<?php $section = $this->get_section( $current_section ); ?>
|
|
|
|
<div id="notification-settings-section-<?php echo esc_attr( $section->slug() ); ?>" class="setting-col box section-<?php echo esc_attr( $section->slug() ); ?>">
|
|
|
|
<?php do_action( $this->handle . '/settings/section/' . $section->slug() . '/before' ); ?>
|
|
|
|
<form action="<?php echo esc_attr( admin_url( 'admin-post.php' ) ); ?>" method="post" enctype="multipart/form-data">
|
|
|
|
<?php wp_nonce_field( 'save_' . $this->handle . '_settings', 'nonce' ); ?>
|
|
|
|
<input type="hidden" name="action" value="save_<?php echo esc_attr( $this->handle ); ?>_settings">
|
|
|
|
<?php
|
|
/**
|
|
* When you have only checkboxed in the section, no data in POST is returned. This fields adds a dummy value
|
|
* for form handler so it could grab the section name and parse all defined fields
|
|
*/
|
|
?>
|
|
<input type="hidden" name="<?php echo esc_attr( $this->handle ) . '_settings[' . esc_attr( $section->slug() ) . ']'; ?>" value="section_buster">
|
|
|
|
<?php $groups = $section->get_groups(); ?>
|
|
|
|
<?php foreach ( $groups as $group ) : ?>
|
|
|
|
<div id="notification-settings-group-<?php echo esc_attr( $group->slug() ); ?>" class="setting-group group-<?php echo esc_attr( $group->slug() ); ?>">
|
|
<div class="setting-group-header <?php echo esc_attr( ( $group->collapsed() ) ? '' : 'open' ); ?>">
|
|
<h3><?php echo esc_html( $group->name() ); ?></h3>
|
|
|
|
<?php $description = $group->description(); ?>
|
|
|
|
<?php if ( ! empty( $description ) ) : ?>
|
|
<p class="description"><?php echo esc_html( $description ); ?></p>
|
|
<?php endif ?>
|
|
</div>
|
|
|
|
<?php do_action( $this->handle . '/settings/group/' . $group->slug() . '/before' ); ?>
|
|
<table class="form-table">
|
|
|
|
<?php foreach ( $group->get_fields() as $field ) : ?>
|
|
|
|
<tr id="notification-settings-field-<?php echo esc_attr( $group->slug() ); ?>-<?php echo esc_attr( $field->slug() ); ?>" class="field-<?php echo esc_attr( $field->slug() ); ?>">
|
|
<th><label for="<?php echo esc_attr( $field->input_id() ); ?>"><?php echo esc_html( $field->name() ); ?></label></th>
|
|
<td>
|
|
<?php
|
|
$field->render();
|
|
$field_description = $field->description();
|
|
?>
|
|
<?php if ( ! empty( $field_description ) ) : ?>
|
|
<small class="description"><?php echo wp_kses_data( $field_description ); ?></small>
|
|
<?php endif ?>
|
|
</td>
|
|
</tr>
|
|
|
|
<?php endforeach ?>
|
|
|
|
</table>
|
|
<?php do_action( $this->handle . '/settings/sections/after', $group->slug() ); ?>
|
|
|
|
</div>
|
|
|
|
<?php endforeach ?>
|
|
|
|
<?php if ( ! empty( $groups ) ) : ?>
|
|
<?php submit_button(); ?>
|
|
<?php endif ?>
|
|
|
|
</form>
|
|
|
|
<?php do_action( $this->handle . '/settings/section/' . $section->slug() . '/after' ); ?>
|
|
|
|
</div>
|
|
|
|
<?php endif ?>
|
|
|
|
</div>
|