PluginProbe
Friends / 2.8.3
Friends v2.8.3
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 2.9.2 All 87 releases
friends / friends.php

friends.php in Friends 2.8.3, at friends.php

147 lines 5.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Plugin name: Friends
4 * Plugin author: Alex Kirk
5 * Plugin URI: https://github.com/akirk/friends
6 * Version: 2.8.3
7 *
8 * Description: A social network between WordPresses. Privacy focused, by itself a self-hosted RSS++ reader with notifications.
9 *
10 * License: GPL2
11 * Text Domain: friends
12 * Domain Path: /languages/
13 *
14 * @package Friends
15 */
16
17 namespace Friends;
18
19 /**
20 * This file loads all the dependencies the Friends plugin.
21 */
22
23 defined( 'ABSPATH' ) || exit;
24 define( 'FRIENDS_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
25 define( 'FRIENDS_PLUGIN_BASENAME', plugin_basename( __FILE__ ) );
26 define( 'FRIENDS_PLUGIN_FILE', plugin_dir_path( __FILE__ ) . '/' . basename( __FILE__ ) );
27 define( 'FRIENDS_VERSION', '2.8.3' );
28
29 require_once __DIR__ . '/libs/Mf2/Parser.php';
30
31 require_once __DIR__ . '/includes/class-user.php';
32 require_once __DIR__ . '/includes/class-user-feed.php';
33 require_once __DIR__ . '/includes/class-user-query.php';
34 require_once __DIR__ . '/includes/class-subscription.php';
35
36 // Classes to be implemented or used by parser plugins.
37 require_once __DIR__ . '/feed-parsers/class-feed-parser.php';
38 require_once __DIR__ . '/feed-parsers/class-feed-parser-v2.php';
39 require_once __DIR__ . '/feed-parsers/class-feed-item.php';
40
41 require_once __DIR__ . '/includes/class-access-control.php';
42 require_once __DIR__ . '/includes/class-admin.php';
43 require_once __DIR__ . '/includes/class-automatic-status.php';
44 require_once __DIR__ . '/includes/class-blocks.php';
45 require_once __DIR__ . '/includes/class-feed.php';
46 require_once __DIR__ . '/includes/class-frontend.php';
47 require_once __DIR__ . '/includes/class-logging.php';
48 require_once __DIR__ . '/includes/class-messages.php';
49 require_once __DIR__ . '/includes/class-notifications.php';
50 require_once __DIR__ . '/includes/class-plugin-installer.php';
51 require_once __DIR__ . '/includes/class-reactions.php';
52 require_once __DIR__ . '/includes/class-rest.php';
53 require_once __DIR__ . '/includes/class-shortcodes.php';
54 require_once __DIR__ . '/includes/class-template-loader.php';
55 require_once __DIR__ . '/includes/class-third-parties.php';
56 require_once __DIR__ . '/includes/class-friends.php';
57
58 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 );
61 register_activation_hook( __FILE__, array( __NAMESPACE__ . '\Friends', 'activate_plugin' ) );
62 register_deactivation_hook( __FILE__, array( __NAMESPACE__ . '\Friends', 'deactivate_plugin' ) );
63 register_uninstall_hook( __FILE__, array( __NAMESPACE__ . '\Friends', 'uninstall_plugin' ) );
64
65 add_action( 'activate_blog', array( __NAMESPACE__ . '\Friends', 'activate_plugin' ) );
66 add_action( 'wp_initialize_site', array( __NAMESPACE__ . '\Friends', 'activate_for_blog' ) );
67
68 // Register widgets.
69 require_once __DIR__ . '/widgets/class-widget-base-friends-list.php';
70 require_once __DIR__ . '/widgets/class-widget-refresh.php';
71 add_action( 'widgets_init', array( __NAMESPACE__ . '\Widget_Refresh', 'register' ) );
72
73 require_once __DIR__ . '/widgets/class-widget-friends-list.php';
74 add_action( 'widgets_init', array( __NAMESPACE__ . '\Widget_Friends_List', 'register' ) );
75
76 require_once __DIR__ . '/widgets/class-widget-starred-friends-list.php';
77 add_action( 'widgets_init', array( __NAMESPACE__ . '\Widget_Starred_Friends_List', 'register' ) );
78
79 require_once __DIR__ . '/widgets/class-widget-recent-friends-list.php';
80 add_action( 'widgets_init', array( __NAMESPACE__ . '\Widget_Recent_Friends_List', 'register' ) );
81
82 require_once __DIR__ . '/widgets/class-widget-friend-request.php';
83 add_action( 'widgets_init', array( __NAMESPACE__ . '\Widget_Friend_Request', 'register' ) );
84
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 require_once __DIR__ . '/widgets/class-widget-post-formats.php';
89 add_action( 'widgets_init', array( __NAMESPACE__ . '\Widget_Post_Formats', 'register' ) );
90
91 require_once __DIR__ . '/widgets/class-widget-header.php';
92 add_action( 'widgets_init', array( __NAMESPACE__ . '\Widget_Header', 'register' ) );
93
94 // Register bundled parsers.
95 add_action(
96 'friends_load_parsers',
97 function ( Feed $friends_feed ) {
98 require_once __DIR__ . '/feed-parsers/class-feed-parser-simplepie.php';
99 $friends_feed->register_parser( Feed_Parser_SimplePie::SLUG, new Feed_Parser_SimplePie() );
100 },
101 9
102 );
103
104 add_action(
105 'friends_load_parsers',
106 function ( Feed $friends_feed ) {
107 require_once __DIR__ . '/feed-parsers/class-feed-parser-microformats.php';
108 $friends_feed->register_parser( Feed_Parser_Microformats::SLUG, new Feed_Parser_Microformats() );
109 },
110 9
111 );
112
113 add_action(
114 'friends_load_parsers',
115 function ( Feed $friends_feed ) {
116 require_once __DIR__ . '/feed-parsers/class-feed-parser-json-feed.php';
117 $friends_feed->register_parser( Feed_Parser_JSON_Feed::SLUG, new Feed_Parser_JSON_Feed() );
118 },
119 9
120 );
121
122 add_action(
123 'friends_load_parsers',
124 function ( \Friends\Feed $friends_feed ) {
125 if ( ! class_exists( '\Activitypub\Activitypub' ) ) {
126 // ActivityPub plugin not active.
127 return;
128 }
129
130 global $wp_filter;
131 if ( isset( $wp_filter['friends_load_parsers']->callbacks[10] ) && class_exists( '\\ReflectionFunction' ) ) {
132 // Unhook the parser from ActivityPub 0.14.
133 foreach ( $wp_filter['friends_load_parsers']->callbacks[10] as $key => $hook ) {
134 $r = new \ReflectionFunction( $hook['function'] );
135 if ( \str_ends_with( $r->getFileName(), 'activitypub.php' ) ) {
136 remove_filter( 'friends_load_parsers', $hook['function'], 10 );
137 break;
138 }
139 }
140 }
141
142 require_once __DIR__ . '/feed-parsers/class-feed-parser-activitypub.php';
143 $friends_feed->register_parser( Feed_Parser_ActivityPub::SLUG, new Feed_Parser_ActivityPub( $friends_feed ) );
144 },
145 9
146 );
147