PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.1.33
OttoKit: All-in-One Automation Platform v1.1.33
1.1.33 1.1.32 1.1.31 1.1.30 1.1.29 1.1.28 1.1.27 1.1.9 trunk 1.0.10 1.0.11 1.0.12 1.0.13 1.0.14 1.0.15 1.0.16 1.0.17 1.0.18 1.0.19 1.0.20 1.0.21 1.0.22 1.0.23 1.0.24 1.0.25 1.0.26 1.0.27 1.0.28 1.0.29 1.0.30 1.0.31 1.0.32 1.0.33 1.0.34 1.0.35 1.0.36 1.0.37 1.0.38 1.0.39 1.0.40 1.0.41 1.0.42 1.0.43 1.0.44 1.0.45 1.0.46 1.0.47 1.0.48 1.0.49 1.0.50 1.0.51 1.0.52 1.0.53 1.0.54 1.0.55 1.0.56 1.0.57 1.0.58 1.0.59 1.0.60 1.0.61 1.0.62 1.0.63 1.0.64 1.0.65 1.0.66 1.0.67 1.0.68 1.0.69 1.0.7 1.0.70 1.0.71 1.0.72 1.0.73 1.0.74 1.0.75 1.0.76 1.0.77 1.0.78 1.0.79 1.0.8 1.0.80 1.0.81 1.0.82 1.0.83 1.0.84 1.0.85 1.0.86 1.0.87 1.0.88 1.0.89 1.0.9 1.0.90 1.1.0 1.1.1 1.1.10 1.1.11 1.1.12 1.1.13 1.1.14 1.1.15 1.1.16 1.1.17 1.1.18 1.1.19 1.1.2 1.1.20 1.1.21 1.1.22 1.1.23 1.1.24 1.1.25 1.1.26 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8
suretriggers / src / Integrations / buddyboss / buddyboss.php
suretriggers / src / Integrations / buddyboss Last commit date
Actions 4 days ago Triggers 1 month ago buddyboss.php 4 days ago
buddyboss.php
140 lines
1 <?php
2 /**
3 * BuddyBoss integration class file
4 *
5 * @package SureTriggers
6 * @since 1.0.0
7 */
8
9 namespace SureTriggers\Integrations\BuddyBoss;
10
11 use SureTriggers\Controllers\IntegrationsController;
12 use SureTriggers\Integrations\Integrations;
13 use SureTriggers\Traits\SingletonLoader;
14
15 /**
16 * Class BuddyBoss
17 *
18 * @package SureTriggers\Integrations\BuddyBoss
19 */
20 class BuddyBoss extends Integrations {
21
22 use SingletonLoader;
23
24 /**
25 * ID of the integration
26 *
27 * @var string
28 */
29 protected $id = 'BuddyBoss';
30
31 /**
32 * BuddyBoss constructor.
33 */
34 public function __construct() {
35 $this->name = __( 'BuddyBoss', 'suretriggers' );
36 parent::__construct();
37 }
38
39 /**
40 * Check if content has links.
41 *
42 * @param string $content content.
43 * @return array|string
44 */
45 public static function st_content_has_links( $content ) {
46 // Define a regular expression pattern to match URLs.
47 $pattern = '/<a\b[^>]*href=["\']([^"\'#]+)/i';
48
49 // Use preg_match_all to find all links in the content.
50 preg_match_all( $pattern, $content, $matches );
51
52 // Return the array of matched links.
53 return $matches[1];
54 }
55
56 /**
57 * Attach an uploaded photo or video directly to a BuddyBoss activity via the
58 * native Media/Video components, so it renders on the feed the same way
59 * BuddyBoss's own activity composer does - independent of the content field.
60 *
61 * @param int $activity_id Activity ID the media should be linked to.
62 * @param string $media_url Publicly reachable URL of the image or video file.
63 * @param int $user_id User the media should be attributed to.
64 * @param int $group_id Optional. Group ID when posting to a group's stream.
65 * @return void
66 */
67 public static function st_attach_media_to_activity( $activity_id, $media_url, $user_id, $group_id = 0 ) {
68 if ( empty( $activity_id ) || empty( $media_url ) ) {
69 return;
70 }
71
72 if ( ! function_exists( 'bb_media_sideload_attachment' ) || ! function_exists( 'bp_activity_update_meta' ) ) {
73 return;
74 }
75
76 $attachment_id = bb_media_sideload_attachment( $media_url );
77
78 if ( empty( $attachment_id ) ) {
79 return;
80 }
81
82 $privacy = $group_id ? 'grouponly' : 'public';
83 $is_video = (bool) preg_match( '/\.mp4([?#].*)?$/i', $media_url );
84
85 if ( $is_video ) {
86 if ( ! function_exists( 'bp_is_active' ) || ! bp_is_active( 'video' ) || ! function_exists( 'bp_video_add' ) ) {
87 return;
88 }
89
90 $video_id = bp_video_add(
91 [
92 'attachment_id' => $attachment_id,
93 'activity_id' => $activity_id,
94 'user_id' => $user_id,
95 'group_id' => $group_id,
96 'privacy' => $privacy,
97 ]
98 );
99
100 if ( $video_id ) {
101 bp_activity_update_meta( $activity_id, 'bp_video_ids', (string) $video_id );
102 }
103 return;
104 }
105
106 if ( ! function_exists( 'bp_is_active' ) || ! bp_is_active( 'media' ) || ! function_exists( 'bp_media_add' ) ) {
107 return;
108 }
109
110 $media_id = bp_media_add(
111 [
112 'attachment_id' => $attachment_id,
113 'activity_id' => $activity_id,
114 'user_id' => $user_id,
115 'group_id' => $group_id,
116 'privacy' => $privacy,
117 ]
118 );
119
120 if ( $media_id ) {
121 bp_activity_update_meta( $activity_id, 'bp_media_ids', (string) $media_id );
122 }
123 }
124
125 /**
126 * Check plugin is installed.
127 *
128 * @return bool
129 */
130 public function is_plugin_installed() {
131 if ( function_exists( 'buddypress' ) && isset( buddypress()->buddyboss ) && buddypress()->buddyboss ) {
132 return true;
133 } else {
134 return false;
135 }
136 }
137 }
138
139 IntegrationsController::register( BuddyBoss::class );
140