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 +62 -17 2.9.14.3.2 View file →
@@ -1,14 +1,15 @@
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.9.1
7 - * Requires PHP: 5.6
8 -
9 - * Description: A social network between WordPresses. Privacy focused, by itself a self-hosted RSS++ reader with notifications.
5 + * Version: 4.3.2
6 + * Author: Alex Kirk
7 + * Author URI: https://alex.kirk.at/
8 + * Requires PHP: 7.4
10 9 *
10 + * Description: A self-hosted social reader for WordPress: follow people via RSS and ActivityPub, with multiple themes and a plugin ecosystem.
11 + *
11 12 * License: GPL2
12 13 * Text Domain: friends
13 14 * Domain Path: /languages/
14 15 *
@@ -24,9 +25,9 @@
24 25 defined( 'ABSPATH' ) || exit;
25 26 define( 'FRIENDS_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
26 27 define( 'FRIENDS_PLUGIN_BASENAME', plugin_basename( __FILE__ ) );
27 28 define( 'FRIENDS_PLUGIN_FILE', plugin_dir_path( __FILE__ ) . '/' . basename( __FILE__ ) );
28 -define( 'FRIENDS_VERSION', '2.9.1' );
29 +define( 'FRIENDS_VERSION', '4.3.2' );
29 30
30 31 require_once __DIR__ . '/libs/Mf2/Parser.php';
31 32
32 33 require_once __DIR__ . '/includes/class-user.php';
@@ -31,8 +32,9 @@
31 32
32 33 require_once __DIR__ . '/includes/class-user.php';
33 34 require_once __DIR__ . '/includes/class-user-feed.php';
34 35 require_once __DIR__ . '/includes/class-user-query.php';
36 +require_once __DIR__ . '/includes/class-user-query-result.php';
35 37 require_once __DIR__ . '/includes/class-subscription.php';
36 38
37 39 // Classes to be implemented or used by parser plugins.
38 40 require_once __DIR__ . '/feed-parsers/class-feed-parser.php';
@@ -38,29 +40,31 @@
38 40 require_once __DIR__ . '/feed-parsers/class-feed-parser.php';
39 41 require_once __DIR__ . '/feed-parsers/class-feed-parser-v2.php';
40 42 require_once __DIR__ . '/feed-parsers/class-feed-item.php';
41 43
42 -require_once __DIR__ . '/includes/class-access-control.php';
43 44 require_once __DIR__ . '/includes/class-admin.php';
44 -require_once __DIR__ . '/includes/class-automatic-status.php';
45 +require_once __DIR__ . '/includes/class-abilities.php';
45 46 require_once __DIR__ . '/includes/class-blocks.php';
46 47 require_once __DIR__ . '/includes/class-feed.php';
47 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';
48 51 require_once __DIR__ . '/includes/class-logging.php';
49 52 require_once __DIR__ . '/includes/class-messages.php';
53 +require_once __DIR__ . '/includes/class-migration.php';
50 54 require_once __DIR__ . '/includes/class-notifications.php';
51 -require_once __DIR__ . '/includes/class-plugin-installer.php';
52 55 require_once __DIR__ . '/includes/class-reactions.php';
53 56 require_once __DIR__ . '/includes/class-rest.php';
57 +require_once __DIR__ . '/includes/class-site-health.php';
54 58 require_once __DIR__ . '/includes/class-shortcodes.php';
55 59 require_once __DIR__ . '/includes/class-template-loader.php';
56 60 require_once __DIR__ . '/includes/class-third-parties.php';
61 +require_once __DIR__ . '/includes/class-friend-tag.php';
57 62 require_once __DIR__ . '/includes/class-friends.php';
58 63
59 64 add_action( 'plugins_loaded', array( __NAMESPACE__ . '\Friends', 'init' ) );
60 -add_action( 'admin_init', array( __NAMESPACE__ . '\Plugin_Installer', 'register_hooks' ) );
61 65
62 -if ( is_admin() && FRIENDS_VERSION > get_option( 'friends_plugin_version' ) ) {
66 +if ( is_admin() && version_compare( get_option( 'friends_plugin_version' ), FRIENDS_VERSION, '<' ) ) {
63 67 add_action( 'admin_init', array( __NAMESPACE__ . '\Friends', 'upgrade_plugin' ) );
64 68 }
65 69
66 70 add_action( 'upgrader_process_complete', array( __NAMESPACE__ . '\Friends', 'upgrade_plugin_trigger' ), 10, 2 );
@@ -71,9 +75,14 @@
71 75 add_action( 'activate_blog', array( __NAMESPACE__ . '\Friends', 'activate_plugin' ) );
72 76 add_action( 'wp_initialize_site', array( __NAMESPACE__ . '\Friends', 'activate_for_blog' ) );
73 77
74 78 // Register widgets.
79 +add_filter( 'customize_loaded_components', array( __NAMESPACE__ . '\Frontend', 'ensure_widget_editing' ) );
80 +
75 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 +
76 85 require_once __DIR__ . '/widgets/class-widget-refresh.php';
77 86 add_action( 'widgets_init', array( __NAMESPACE__ . '\Widget_Refresh', 'register' ) );
78 87
79 88 require_once __DIR__ . '/widgets/class-widget-friends-list.php';
@@ -84,14 +93,11 @@
84 93
85 94 require_once __DIR__ . '/widgets/class-widget-recent-friends-list.php';
86 95 add_action( 'widgets_init', array( __NAMESPACE__ . '\Widget_Recent_Friends_List', 'register' ) );
87 96
88 -require_once __DIR__ . '/widgets/class-widget-friend-request.php';
89 -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' ) );
90 99
91 -require_once __DIR__ . '/widgets/class-widget-new-private-post.php';
92 -add_action( 'widgets_init', array( __NAMESPACE__ . '\Widget_New_Private_Post', 'register' ) );
93 -
94 100 require_once __DIR__ . '/widgets/class-widget-post-formats.php';
95 101 add_action( 'widgets_init', array( __NAMESPACE__ . '\Widget_Post_Formats', 'register' ) );
96 102
97 103 require_once __DIR__ . '/widgets/class-widget-header.php';
@@ -101,9 +107,9 @@
101 107 add_action(
102 108 'friends_load_parsers',
103 109 function ( Feed $friends_feed ) {
104 110 require_once __DIR__ . '/feed-parsers/class-feed-parser-simplepie.php';
105 - $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 ) );
106 112 },
107 113 9
108 114 );
109 115
@@ -149,4 +155,43 @@
149 155 $friends_feed->register_parser( Feed_Parser_ActivityPub::SLUG, new Feed_Parser_ActivityPub( $friends_feed ) );
150 156 },
151 157 9
152 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();