PluginProbe
Friends / 4.3.2
Friends v4.3.2
4.3.2 4.3.1 4.3.0 4.2.2 4.2.1 4.2.0 4.1.0 2.7.4 2.7.5 2.7.6 2.7.7 2.7.8 2.7.9 2.8.0 2.8.1 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.8 2.8.9 2.9.0 2.9.1 All 88 releases
← All changes | friends.php +66 -15 2.8.34.3.2 View file →
@@ -1,12 +1,14 @@
1 1 <?php
2 2 /**
3 3 * Plugin name: Friends
4 - * Plugin author: Alex Kirk
5 4 * Plugin URI: https://github.com/akirk/friends
6 - * Version: 2.8.3
5 + * Version: 4.3.2
6 + * Author: Alex Kirk
7 + * Author URI: https://alex.kirk.at/
8 + * Requires PHP: 7.4
7 9 *
8 - * Description: A social network between WordPresses. Privacy focused, by itself a self-hosted RSS++ reader with notifications.
10 + * Description: A self-hosted social reader for WordPress: follow people via RSS and ActivityPub, with multiple themes and a plugin ecosystem.
9 11 *
10 12 * License: GPL2
11 13 * Text Domain: friends
12 14 * Domain Path: /languages/
@@ -23,9 +25,9 @@
23 25 defined( 'ABSPATH' ) || exit;
24 26 define( 'FRIENDS_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
25 27 define( 'FRIENDS_PLUGIN_BASENAME', plugin_basename( __FILE__ ) );
26 28 define( 'FRIENDS_PLUGIN_FILE', plugin_dir_path( __FILE__ ) . '/' . basename( __FILE__ ) );
27 -define( 'FRIENDS_VERSION', '2.8.3' );
29 +define( 'FRIENDS_VERSION', '4.3.2' );
28 30
29 31 require_once __DIR__ . '/libs/Mf2/Parser.php';
30 32
31 33 require_once __DIR__ . '/includes/class-user.php';
@@ -30,8 +32,9 @@
30 32
31 33 require_once __DIR__ . '/includes/class-user.php';
32 34 require_once __DIR__ . '/includes/class-user-feed.php';
33 35 require_once __DIR__ . '/includes/class-user-query.php';
36 +require_once __DIR__ . '/includes/class-user-query-result.php';
34 37 require_once __DIR__ . '/includes/class-subscription.php';
35 38
36 39 // Classes to be implemented or used by parser plugins.
37 40 require_once __DIR__ . '/feed-parsers/class-feed-parser.php';
@@ -37,28 +40,35 @@
37 40 require_once __DIR__ . '/feed-parsers/class-feed-parser.php';
38 41 require_once __DIR__ . '/feed-parsers/class-feed-parser-v2.php';
39 42 require_once __DIR__ . '/feed-parsers/class-feed-item.php';
40 43
41 -require_once __DIR__ . '/includes/class-access-control.php';
42 44 require_once __DIR__ . '/includes/class-admin.php';
43 -require_once __DIR__ . '/includes/class-automatic-status.php';
45 +require_once __DIR__ . '/includes/class-abilities.php';
44 46 require_once __DIR__ . '/includes/class-blocks.php';
45 47 require_once __DIR__ . '/includes/class-feed.php';
46 48 require_once __DIR__ . '/includes/class-frontend.php';
49 +require_once __DIR__ . '/includes/class-import.php';
50 +require_once __DIR__ . '/includes/class-link-preview.php';
47 51 require_once __DIR__ . '/includes/class-logging.php';
48 52 require_once __DIR__ . '/includes/class-messages.php';
53 +require_once __DIR__ . '/includes/class-migration.php';
49 54 require_once __DIR__ . '/includes/class-notifications.php';
50 -require_once __DIR__ . '/includes/class-plugin-installer.php';
51 55 require_once __DIR__ . '/includes/class-reactions.php';
52 56 require_once __DIR__ . '/includes/class-rest.php';
57 +require_once __DIR__ . '/includes/class-site-health.php';
53 58 require_once __DIR__ . '/includes/class-shortcodes.php';
54 59 require_once __DIR__ . '/includes/class-template-loader.php';
55 60 require_once __DIR__ . '/includes/class-third-parties.php';
61 +require_once __DIR__ . '/includes/class-friend-tag.php';
56 62 require_once __DIR__ . '/includes/class-friends.php';
57 63
58 64 add_action( 'plugins_loaded', array( __NAMESPACE__ . '\Friends', 'init' ) );
59 -add_action( 'admin_init', array( __NAMESPACE__ . '\Plugin_Installer', 'register_hooks' ) );
60 -add_action( 'upgrader_process_complete', array( __NAMESPACE__ . '\Friends', 'upgrade_plugin' ), 10, 2 );
65 +
66 +if ( is_admin() && version_compare( get_option( 'friends_plugin_version' ), FRIENDS_VERSION, '<' ) ) {
67 + add_action( 'admin_init', array( __NAMESPACE__ . '\Friends', 'upgrade_plugin' ) );
68 +}
69 +
70 +add_action( 'upgrader_process_complete', array( __NAMESPACE__ . '\Friends', 'upgrade_plugin_trigger' ), 10, 2 );
61 71 register_activation_hook( __FILE__, array( __NAMESPACE__ . '\Friends', 'activate_plugin' ) );
62 72 register_deactivation_hook( __FILE__, array( __NAMESPACE__ . '\Friends', 'deactivate_plugin' ) );
63 73 register_uninstall_hook( __FILE__, array( __NAMESPACE__ . '\Friends', 'uninstall_plugin' ) );
64 74
@@ -65,9 +75,14 @@
65 75 add_action( 'activate_blog', array( __NAMESPACE__ . '\Friends', 'activate_plugin' ) );
66 76 add_action( 'wp_initialize_site', array( __NAMESPACE__ . '\Friends', 'activate_for_blog' ) );
67 77
68 78 // Register widgets.
79 +add_filter( 'customize_loaded_components', array( __NAMESPACE__ . '\Frontend', 'ensure_widget_editing' ) );
80 +
69 81 require_once __DIR__ . '/widgets/class-widget-base-friends-list.php';
82 +require_once __DIR__ . '/widgets/class-widget-add-subscription.php';
83 +add_action( 'widgets_init', array( __NAMESPACE__ . '\Widget_Add_Subscription', 'register' ) );
84 +
70 85 require_once __DIR__ . '/widgets/class-widget-refresh.php';
71 86 add_action( 'widgets_init', array( __NAMESPACE__ . '\Widget_Refresh', 'register' ) );
72 87
73 88 require_once __DIR__ . '/widgets/class-widget-friends-list.php';
@@ -78,14 +93,11 @@
78 93
79 94 require_once __DIR__ . '/widgets/class-widget-recent-friends-list.php';
80 95 add_action( 'widgets_init', array( __NAMESPACE__ . '\Widget_Recent_Friends_List', 'register' ) );
81 96
82 -require_once __DIR__ . '/widgets/class-widget-friend-request.php';
83 -add_action( 'widgets_init', array( __NAMESPACE__ . '\Widget_Friend_Request', 'register' ) );
97 +require_once __DIR__ . '/widgets/class-widget-friend-stats.php';
98 +add_action( 'widgets_init', array( __NAMESPACE__ . '\Widget_Friend_Stats', 'register' ) );
84 99
85 -require_once __DIR__ . '/widgets/class-widget-new-private-post.php';
86 -add_action( 'widgets_init', array( __NAMESPACE__ . '\Widget_New_Private_Post', 'register' ) );
87 -
88 100 require_once __DIR__ . '/widgets/class-widget-post-formats.php';
89 101 add_action( 'widgets_init', array( __NAMESPACE__ . '\Widget_Post_Formats', 'register' ) );
90 102
91 103 require_once __DIR__ . '/widgets/class-widget-header.php';
@@ -95,9 +107,9 @@
95 107 add_action(
96 108 'friends_load_parsers',
97 109 function ( Feed $friends_feed ) {
98 110 require_once __DIR__ . '/feed-parsers/class-feed-parser-simplepie.php';
99 - $friends_feed->register_parser( Feed_Parser_SimplePie::SLUG, new Feed_Parser_SimplePie() );
111 + $friends_feed->register_parser( Feed_Parser_SimplePie::SLUG, new Feed_Parser_SimplePie( $friends_feed ) );
100 112 },
101 113 9
102 114 );
103 115
@@ -143,4 +155,43 @@
143 155 $friends_feed->register_parser( Feed_Parser_ActivityPub::SLUG, new Feed_Parser_ActivityPub( $friends_feed ) );
144 156 },
145 157 9
146 158 );
159 +
160 +// Global functions, for phpcs.
161 +/**
162 + * Validate feed catch_all
163 + *
164 + * @param array $catch_all The catch_all value to.
165 + * @return array A valid catch_all
166 + */
167 +function validate_feed_catch_all( $catch_all ) {
168 + return Feed::validate_feed_catch_all( $catch_all );
169 +}
170 +
171 +/**
172 + * Validate feed item rules
173 + *
174 + * @param array $rules The rules to validate.
175 + * @return array The valid rules.
176 + */
177 +function validate_feed_rules( $rules ) {
178 + return Feed::validate_feed_rules( $rules );
179 +}
180 +
181 +/**
182 + * Check whether this is a valid URL
183 + *
184 + * @param string $url The URL to check.
185 + * @return false|string URL or false on failure.
186 + */
187 +function check_url( $url ) {
188 + return Friends::check_url( $url );
189 +}
190 +
191 +// Integrations.
192 +
193 +require_once __DIR__ . '/integrations/class-blockroll.php';
194 +Blockroll::init();
195 +
196 +require_once __DIR__ . '/integrations/class-enable-mastodon-apps.php';
197 +Enable_Mastodon_Apps::init();