Compare commits

..

4 commits

3 changed files with 30 additions and 12 deletions

View file

@ -36,6 +36,7 @@ class Settings_Page {
*/ */
const static = 'Activitypub_Event_Extensions\Admin\Settings_Page'; const static = 'Activitypub_Event_Extensions\Admin\Settings_Page';
const settings_slug = 'activitypub-events';
/** /**
* Warning if the plugin is Active and the ActivityPub plugin is not. * Warning if the plugin is Active and the ActivityPub plugin is not.
@ -45,13 +46,26 @@ class Settings_Page {
'Activitypub Event Extension', 'Activitypub Event Extension',
'Activitypub Events', 'Activitypub Events',
'manage_options', 'manage_options',
'activitypub-events', self::settings_slug,
array( self::static, 'settings_page' ) array( self::static, 'settings_page' )
); );
} }
/**
* Adds Link to the settings page in the plugin page.
* It's called via apply_filter('plugin_action_links_' . PLUGIN_NAME).
*
* @param links already added links
* @return array original links but with link to setting page added
*/
public static function settings_link( $links ) {
return array_merge(
$links,
array(
'<a href="' . admin_url( 'options-general.php?page=' . self::settings_slug ) . '">Settings</a>',
)
);
}
public static function settings_page() { public static function settings_page() {
if ( empty( $_GET['tab'] ) ) { if ( empty( $_GET['tab'] ) ) {
@ -94,14 +108,17 @@ class Settings_Page {
$submenu_options[$tab]['active'] = true; $submenu_options[$tab]['active'] = true;
$args = array(
'slug' => settings_slug,
'options' => $submenu_options,
);
switch ( $tab ) { switch ( $tab ) {
case 'general': case 'general':
\load_template( ACTIVITYPUB_EVENT_EXTENSIONS_PLUGIN_DIR . 'templates/settings-general.php' , true, $submenu_options ); \load_template( ACTIVITYPUB_EVENT_EXTENSIONS_PLUGIN_DIR . 'templates/settings-general.php' , true, $args );
break; break;
default: default:
\load_template( ACTIVITYPUB_EVENT_EXTENSIONS_PLUGIN_DIR . 'templates/settings-extractor.php', true, $submenu_options ); \load_template( ACTIVITYPUB_EVENT_EXTENSIONS_PLUGIN_DIR . 'templates/settings-extractor.php', true, $args );
break; break;
} }

View file

@ -142,7 +142,8 @@ class Setup {
} }
add_action( 'admin_menu', array( Settings_Page::static, 'admin_menu' ) ); add_action( 'admin_menu', array( Settings_Page::static, 'admin_menu' ) );
add_filter( 'plugin_action_links_Activitypub_Event_Extensions', array( Settings_Page::static, 'settings_links' ) ); add_filter( 'plugin_action_links_' . ACTIVITYPUB_EVENT_EXTENSIONS_PLUGIN_BASENAME,
array( Settings_Page::static, 'settings_link' ) );
add_filter( 'activitypub_transformer', array( $this, 'register_activitypub_event_transformer' ), 10, 3 ); add_filter( 'activitypub_transformer', array( $this, 'register_activitypub_event_transformer' ), 10, 3 );
} }

View file

@ -3,14 +3,14 @@ currently reusing activitypub classes which is kinda nice, because it has a cons
--> -->
<div class="activitypub-settings-header"> <div class="activitypub-settings-header">
<div class="activitypub-settings-title-section"> <div class="activitypub-settings-title-section">
<h1><?php \esc_html_e( 'Activitypub Events Plugin', 'activitypub-events' ); ?></h1> <h1><?php \esc_html_e( 'Activitypub Events Plugin', $args['slug'] ); ?></h1>
</div> </div>
<nav class="activitypub-settings-tabs-wrapper" aria-label="<?php \esc_attr_e( 'Secondary menu', 'activitypub-events' ); ?>"> <nav class="activitypub-settings-tabs-wrapper" aria-label="<?php \esc_attr_e( 'Secondary menu', $args['slug'] ); ?>">
<!-- todo loop through settings pages of Extractors --> <!-- todo loop through settings pages of Extractors -->
<?php foreach ( $args as $slug => $plugin ) { ?> <?php foreach ( $args['options'] as $tabslug => $plugin ) { ?>
<a href="<?php echo \esc_url_raw( admin_url( 'options-general.php?page=activitypub-events&tab=' . $slug ) ); ?>" class="activitypub-settings-tab <?php echo \esc_attr( $plugin['active'] ? 'active' : '' ); ?>"> <a href="<?php echo \esc_url_raw( admin_url( 'options-general.php?page='. $args['slug'] .'&tab=' . $tabslug ) ); ?>" class="activitypub-settings-tab <?php echo \esc_attr( $plugin['active'] ? 'active' : '' ); ?>">
<?php \esc_html_e( $plugin['name'], 'activitypub-events' ); ?> <!-- Todo better name handling --> <?php \esc_html_e( $plugin['name'], $args['slug'] ); ?> <!-- Todo better name handling -->
</a> </a>
<?php } ?> <?php } ?>