wordpress-activitypub-event.../includes/admin/class-general-admin-notices.php
André Menrath 6f744b9e14
All checks were successful
PHP Code Checker / PHP Code Checker (push) Successful in 32s
PHPUnit / PHPUnit – PHP 8.1 (push) Successful in 57s
PHPUnit / PHPUnit – PHP 8.2 (push) Successful in 58s
PHPUnit / PHPUnit – PHP 8.3 (push) Successful in 1m5s
Cleanup top of PHP files (#40)
- sorting use statements
- always check for `ABSPATH` after namespace

Reviewed-on: Event-Federation/wordpress-activitypub-event-extensions#40
Co-authored-by: André Menrath <andre.menrath@posteo.de>
Co-committed-by: André Menrath <andre.menrath@posteo.de>
2024-09-28 13:14:10 +02:00

130 lines
4 KiB
PHP

<?php
/**
* Class responsible for general admin notices.
*
* Notices for guiding to proper configuration of this plugin.
*
* @package Activitypub_Event_Extensions
* @since 1.0.0
* @license AGPL-3.0-or-later
*/
namespace Activitypub_Event_Extensions\Admin;
// Exit if accessed directly.
defined( 'ABSPATH' ) || exit; // @codeCoverageIgnore
/**
* Class responsible for general admin notices.
*
* Notices for guiding to proper configuration of this plugin.
* - ActivityPub plugin not installed and activated
* - No supported Event Plugin installed and activated
*
* @since 1.0.0
*/
class General_Admin_Notices {
/**
* URL of the ActivityPub plugin. Needed when the ActivityPub plugin is not installed.
*/
const ACTIVITYPUB_PLUGIN_URL = 'https://wordpress.org/plugins/activitypub';
const ACTIVITYPUB_EVENT_EXTENSIONS_SUPPORTED_EVENT_PLUGINS_URL = 'https://code.event-federation.eu/Event-Federation/wordpress-activitypub-event-extensions#events-plugin-that-will-be-supported-at-first';
/**
* Allowed HTML for admin notices.
*
* @var array
*/
const ALLOWED_HTML = array(
'a' => array(
'href' => true,
'title' => true,
),
'br',
'i',
);
/**
* Admin notice when the ActivityPub plugin is not enabled.
*
* @return string
*/
public static function get_admin_notice_activitypub_plugin_not_enabled(): string {
return sprintf(
/* translators: 1: An URL that points to the ActivityPub plugin. */
_x(
'For the ActivityPub Event Extensions to work, you will need to install and activate the <a href="%1$s">ActivityPub</a> plugin.',
'admin notice',
'activitypub-event-extensions'
),
esc_html( self::ACTIVITYPUB_PLUGIN_URL )
);
}
/**
* Admin notice when the ActivityPub plugin version is too old.
*
* @return string
*/
public static function get_admin_notice_activitypub_plugin_version_too_old(): string {
return sprintf(
/* translators: 1: The name of the ActivityPub plugin. 2: The minimum required version number of the ActivityPub plugin. */
_x(
'Please upgrade your <a href="%1$s">ActivityPub</a> plugin. At least version %2$s is required for the ActivityPub event extensions to work.',
'admin notice',
'activitypub-event-extensions'
),
esc_html( self::ACTIVITYPUB_PLUGIN_URL ),
esc_html( ACTIVITYPUB_EVENT_EXTENSIONS_ACTIVITYPUB_PLUGIN_MIN_VERSION )
);
}
/**
* Warning that no supported event plugin can be found.
*
* @return string
*/
public static function get_admin_notice_no_supported_event_plugin_active(): string {
return sprintf(
/* translators: 1: An URL to the list of supported event plugins. */
_x(
'The Plugin <i>ActivityPub Event Extensions</i> is of no use, because you do not have installed and activated a supported Event Plugin.
<br> For a list of supported Event Plugins see <a href="%1$s">here</a>.',
'admin notice',
'activitypub-event-extensions'
),
esc_html( self::ACTIVITYPUB_EVENT_EXTENSIONS_SUPPORTED_EVENT_PLUGINS_URL )
);
}
/**
* Warning if the plugin is Active and the ActivityPub plugin is not.
*
* @return void
*/
public static function activitypub_plugin_not_enabled(): void {
$notice = self::get_admin_notice_activitypub_plugin_not_enabled();
echo '<div class="notice notice-warning"><p>' . \wp_kses( $notice, self::ALLOWED_HTML ) . '</p></div>';
}
/**
* Warning if the plugin is Active and the ActivityPub plugins version is too old.
*
* @return void
*/
public static function activitypub_plugin_version_too_old(): void {
$notice = self::get_admin_notice_activitypub_plugin_version_too_old();
echo '<div class="notice notice-warning"><p>' . \wp_kses( $notice, self::ALLOWED_HTML ) . '</p></div>';
}
/**
* Warning when no supported Even Plugin is installed and active.
*
* @return void
*/
public static function no_supported_event_plugin_active(): void {
$notice = self::get_admin_notice_no_supported_event_plugin_active();
echo '<div class="notice notice-warning"><p>' . \wp_kses( $notice, self::ALLOWED_HTML ) . '</p></div>';
}
}