Skip to content

Commit f266d9a

Browse files
authored
Create anonymous-bbpress.php
1 parent 2d945e9 commit f266d9a

File tree

1 file changed

+394
-0
lines changed

1 file changed

+394
-0
lines changed

anonymous-bbpress.php

Lines changed: 394 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,394 @@
1+
<?php
2+
/**
3+
* Plugin Name: Anonymize bbPress
4+
* Description: bbPress anonymous modifications.
5+
* Version: 0.0.2
6+
* Requires PHP: 5.4
7+
*/
8+
9+
/**
10+
* Changelog.
11+
*
12+
* 0.0.2 Fixed formatting.
13+
* Added changelog.
14+
* 0.0.1 Init.
15+
*/
16+
17+
namespace BBPMods\Anonymous;
18+
19+
/**
20+
* Init.
21+
*/
22+
add_action( 'init', function(){
23+
24+
add_filter( 'bbp_current_user_can_access_anonymous_user_form', '__return_false' );
25+
26+
$anonymous_users = array(
27+
array ( 'Aaron', '[email protected]' ),
28+
array ( 'Abigail', '[email protected]' ),
29+
array ( 'Adam', '[email protected]' ),
30+
array ( 'Alan', '[email protected]' ),
31+
array ( 'Albert', '[email protected]' ),
32+
array ( 'Alexander', '[email protected]' ),
33+
array ( 'Alexis', '[email protected]' ),
34+
array ( 'Alice', '[email protected]' ),
35+
array ( 'Amanda', '[email protected]' ),
36+
array ( 'Amber', '[email protected]' ),
37+
array ( 'Amy', '[email protected]' ),
38+
array ( 'Andrea', '[email protected]' ),
39+
array ( 'Andrew', '[email protected]' ),
40+
array ( 'Angela', '[email protected]' ),
41+
array ( 'Ann', '[email protected]' ),
42+
array ( 'Anna', '[email protected]' ),
43+
array ( 'Anthony', '[email protected]' ),
44+
array ( 'Arthur', '[email protected]' ),
45+
array ( 'Ashley', '[email protected]' ),
46+
array ( 'Austin', '[email protected]' ),
47+
array ( 'Barbara', '[email protected]' ),
48+
array ( 'Benjamin', '[email protected]' ),
49+
array ( 'Betty', '[email protected]' ),
50+
array ( 'Beverly', '[email protected]' ),
51+
array ( 'Billy', '[email protected]' ),
52+
array ( 'Bobby', '[email protected]' ),
53+
array ( 'Brandon', '[email protected]' ),
54+
array ( 'Brenda', '[email protected]' ),
55+
array ( 'Brian', '[email protected]' ),
56+
array ( 'Brittany', '[email protected]' ),
57+
array ( 'Bruce', '[email protected]' ),
58+
array ( 'Bryan', '[email protected]' ),
59+
array ( 'Carl', '[email protected]' ),
60+
array ( 'Carol', '[email protected]' ),
61+
array ( 'Carolyn', '[email protected]' ),
62+
array ( 'Catherine', '[email protected]' ),
63+
array ( 'Charles', '[email protected]' ),
64+
array ( 'Charlotte', '[email protected]' ),
65+
array ( 'Cheryl', '[email protected]' ),
66+
array ( 'Christian', '[email protected]' ),
67+
array ( 'Christina', '[email protected]' ),
68+
array ( 'Christine', '[email protected]' ),
69+
array ( 'Christopher', '[email protected]' ),
70+
array ( 'Cynthia', '[email protected]' ),
71+
array ( 'Daniel', '[email protected]' ),
72+
array ( 'Danielle', '[email protected]' ),
73+
array ( 'David', '[email protected]' ),
74+
array ( 'Deborah', '[email protected]' ),
75+
array ( 'Debra', '[email protected]' ),
76+
array ( 'Denise', '[email protected]' ),
77+
array ( 'Dennis', '[email protected]' ),
78+
array ( 'Diana', '[email protected]' ),
79+
array ( 'Diane', '[email protected]' ),
80+
array ( 'Donald', '[email protected]' ),
81+
array ( 'Donna', '[email protected]' ),
82+
array ( 'Doris', '[email protected]' ),
83+
array ( 'Dorothy', '[email protected]' ),
84+
array ( 'Douglas', '[email protected]' ),
85+
array ( 'Dylan', '[email protected]' ),
86+
array ( 'Edward', '[email protected]' ),
87+
array ( 'Elijah', '[email protected]' ),
88+
array ( 'Elizabeth', '[email protected]' ),
89+
array ( 'Emily', '[email protected]' ),
90+
array ( 'Emma', '[email protected]' ),
91+
array ( 'Eric', '[email protected]' ),
92+
array ( 'Ethan', '[email protected]' ),
93+
array ( 'Eugene', '[email protected]' ),
94+
array ( 'Evelyn', '[email protected]' ),
95+
array ( 'Frances', '[email protected]' ),
96+
array ( 'Frank', '[email protected]' ),
97+
array ( 'Gabriel', '[email protected]' ),
98+
array ( 'Gary', '[email protected]' ),
99+
array ( 'George', '[email protected]' ),
100+
array ( 'Gerald', '[email protected]' ),
101+
array ( 'Gloria', '[email protected]' ),
102+
array ( 'Grace', '[email protected]' ),
103+
array ( 'Gregory', '[email protected]' ),
104+
array ( 'Hannah', '[email protected]' ),
105+
array ( 'Harold', '[email protected]' ),
106+
array ( 'Heather', '[email protected]' ),
107+
array ( 'Helen', '[email protected]' ),
108+
array ( 'Henry', '[email protected]' ),
109+
array ( 'Isabella', '[email protected]' ),
110+
array ( 'Jack', '[email protected]' ),
111+
array ( 'Jacob', '[email protected]' ),
112+
array ( 'Jacqueline', '[email protected]' ),
113+
array ( 'James', '[email protected]' ),
114+
array ( 'Janet', '[email protected]' ),
115+
array ( 'Janice', '[email protected]' ),
116+
array ( 'Jason', '[email protected]' ),
117+
array ( 'Jean', '[email protected]' ),
118+
array ( 'Jeffrey', '[email protected]' ),
119+
array ( 'Jennifer', '[email protected]' ),
120+
array ( 'Jeremy', '[email protected]' ),
121+
array ( 'Jerry', '[email protected]' ),
122+
array ( 'Jesse', '[email protected]' ),
123+
array ( 'Jessica', '[email protected]' ),
124+
array ( 'Joan', '[email protected]' ),
125+
array ( 'Joe', '[email protected]' ),
126+
array ( 'John', '[email protected]' ),
127+
array ( 'Jonathan', '[email protected]' ),
128+
array ( 'Jordan', '[email protected]' ),
129+
array ( 'Jose', '[email protected]' ),
130+
array ( 'Joseph', '[email protected]' ),
131+
array ( 'Joshua', '[email protected]' ),
132+
array ( 'Joyce', '[email protected]' ),
133+
array ( 'Juan', '[email protected]' ),
134+
array ( 'Judith', '[email protected]' ),
135+
array ( 'Judy', '[email protected]' ),
136+
array ( 'Julia', '[email protected]' ),
137+
array ( 'Julie', '[email protected]' ),
138+
array ( 'Justin', '[email protected]' ),
139+
array ( 'Karen', '[email protected]' ),
140+
array ( 'Katherine', '[email protected]' ),
141+
array ( 'Kathleen', '[email protected]' ),
142+
array ( 'Kathryn', '[email protected]' ),
143+
array ( 'Kayla', '[email protected]' ),
144+
array ( 'Keith', '[email protected]' ),
145+
array ( 'Kelly', '[email protected]' ),
146+
array ( 'Kenneth', '[email protected]' ),
147+
array ( 'Kevin', '[email protected]' ),
148+
array ( 'Kimberly', '[email protected]' ),
149+
array ( 'Kyle', '[email protected]' ),
150+
array ( 'Larry', '[email protected]' ),
151+
array ( 'Laura', '[email protected]' ),
152+
array ( 'Lauren', '[email protected]' ),
153+
array ( 'Lawrence', '[email protected]' ),
154+
array ( 'Linda', '[email protected]' ),
155+
array ( 'Lisa', '[email protected]' ),
156+
array ( 'Logan', '[email protected]' ),
157+
array ( 'Lori', '[email protected]' ),
158+
array ( 'Louis', '[email protected]' ),
159+
array ( 'Madison', '[email protected]' ),
160+
array ( 'Margaret', '[email protected]' ),
161+
array ( 'Maria', '[email protected]' ),
162+
array ( 'Marie', '[email protected]' ),
163+
array ( 'Marilyn', '[email protected]' ),
164+
array ( 'Mark', '[email protected]' ),
165+
array ( 'Martha', '[email protected]' ),
166+
array ( 'Mary', '[email protected]' ),
167+
array ( 'Mason', '[email protected]' ),
168+
array ( 'Matthew', '[email protected]' ),
169+
array ( 'Megan', '[email protected]' ),
170+
array ( 'Melissa', '[email protected]' ),
171+
array ( 'Michael', '[email protected]' ),
172+
array ( 'Michelle', '[email protected]' ),
173+
array ( 'Nancy', '[email protected]' ),
174+
array ( 'Natalie', '[email protected]' ),
175+
array ( 'Nathan', '[email protected]' ),
176+
array ( 'Nicholas', '[email protected]' ),
177+
array ( 'Nicole', '[email protected]' ),
178+
array ( 'Noah', '[email protected]' ),
179+
array ( 'Olivia', '[email protected]' ),
180+
array ( 'Pamela', '[email protected]' ),
181+
array ( 'Patricia', '[email protected]' ),
182+
array ( 'Patrick', '[email protected]' ),
183+
array ( 'Paul', '[email protected]' ),
184+
array ( 'Peter', '[email protected]' ),
185+
array ( 'Philip', '[email protected]' ),
186+
array ( 'Rachel', '[email protected]' ),
187+
array ( 'Ralph', '[email protected]' ),
188+
array ( 'Randy', '[email protected]' ),
189+
array ( 'Raymond', '[email protected]' ),
190+
array ( 'Rebecca', '[email protected]' ),
191+
array ( 'Richard', '[email protected]' ),
192+
array ( 'Robert', '[email protected]' ),
193+
array ( 'Roger', '[email protected]' ),
194+
array ( 'Ronald', '[email protected]' ),
195+
array ( 'Roy', '[email protected]' ),
196+
array ( 'Russell', '[email protected]' ),
197+
array ( 'Ruth', '[email protected]' ),
198+
array ( 'Ryan', '[email protected]' ),
199+
array ( 'Samantha', '[email protected]' ),
200+
array ( 'Samuel', '[email protected]' ),
201+
array ( 'Sandra', '[email protected]' ),
202+
array ( 'Sara', '[email protected]' ),
203+
array ( 'Sarah', '[email protected]' ),
204+
array ( 'Scott', '[email protected]' ),
205+
array ( 'Sean', '[email protected]' ),
206+
array ( 'Sharon', '[email protected]' ),
207+
array ( 'Shirley', '[email protected]' ),
208+
array ( 'Sophia', '[email protected]' ),
209+
array ( 'Stephanie', '[email protected]' ),
210+
array ( 'Stephen', '[email protected]' ),
211+
array ( 'Steven', '[email protected]' ),
212+
array ( 'Susan', '[email protected]' ),
213+
array ( 'Teresa', '[email protected]' ),
214+
array ( 'Terry', '[email protected]' ),
215+
array ( 'Theresa', '[email protected]' ),
216+
array ( 'Thomas', '[email protected]' ),
217+
array ( 'Timothy', '[email protected]' ),
218+
array ( 'Tyler', '[email protected]' ),
219+
array ( 'Victoria', '[email protected]' ),
220+
array ( 'Vincent', '[email protected]' ),
221+
array ( 'Virginia', '[email protected]' ),
222+
array ( 'Walter', '[email protected]' ),
223+
array ( 'Wayne', '[email protected]' ),
224+
array ( 'William', '[email protected]' ),
225+
array ( 'Willie', '[email protected]' ),
226+
array ( 'Zachary', '[email protected]' ),
227+
);
228+
229+
/**
230+
* Filter anonymous users.
231+
*
232+
* @param array $anonymous_users Array of arrays with name and email.
233+
*/
234+
$anonymous_users = apply_filters( 'bbpmods_anonymous_users', $anonymous_users );
235+
236+
$obj = new Empty_Anonymous_Replies();
237+
$obj ->set_anonymous_users( $anonymous_users )
238+
->init();
239+
} );
240+
241+
242+
/**
243+
* Class Empty_Anonymous_Replies.
244+
*
245+
* @since 0.0.1
246+
*/
247+
class Empty_Anonymous_Replies {
248+
249+
/**
250+
* @var int
251+
*
252+
* @since 0.0.1
253+
*/
254+
protected $user_index = 0;
255+
256+
/**
257+
* @var int
258+
*
259+
* @since 0.0.1
260+
*/
261+
protected $name_index = 0;
262+
263+
/**
264+
* @var int
265+
*
266+
* @since 0.0.1
267+
*/
268+
protected $email_index = 1;
269+
270+
/**
271+
* @var array
272+
*
273+
* @since 0.0.1
274+
*/
275+
protected $anonymous_users = array();
276+
277+
/**
278+
* Set anonymous users.
279+
*
280+
* @since 0.0.1
281+
*
282+
* @param array $anonymous_users Array of arrays with name and email.
283+
*/
284+
public function set_anonymous_users( $anonymous_users ) {
285+
286+
$this->anonymous_users = $anonymous_users;
287+
288+
return $this;
289+
}
290+
291+
/**
292+
* Init.
293+
*
294+
* @since 0.0.1
295+
*/
296+
public function init() {
297+
298+
// Filters in order of activation.
299+
add_filter( 'bbp_before_filter_anonymous_post_data_parse_args',
300+
array( $this, 'bbp_before_filter_anonymous_post_data_parse_args' ),
301+
10 );
302+
303+
add_filter( 'bbp_pre_anonymous_post_author_name',
304+
array( $this, 'bbp_pre_anonymous_post_author_name' ) );
305+
306+
add_filter( 'bbp_pre_anonymous_post_author_email',
307+
array( $this, 'bbp_pre_anonymous_post_author_email' ) );
308+
309+
add_filter( 'bbp_filter_anonymous_post_data',
310+
array( $this, 'bbp_filter_anonymous_post_data' ),
311+
11, 2 );
312+
}
313+
314+
/**
315+
* Filter's callback
316+
*
317+
* @since 0.0.1
318+
*
319+
* @param array $r Anonymous post data.
320+
*/
321+
public function bbp_before_filter_anonymous_post_data_parse_args( $r ) {
322+
323+
if ( ! empty( $this->anonymous_users ) ) {
324+
$this->user_index = array_rand( $this->anonymous_users );
325+
}
326+
327+
return $r;
328+
}
329+
330+
/**
331+
* Filter's callback
332+
*
333+
* @since 0.0.1
334+
*
335+
* @param string $name Anonymous user's name.
336+
*/
337+
public function bbp_pre_anonymous_post_author_name( $name ) {
338+
339+
remove_filter( current_filter(), array( $this, __FUNCTION__ ) );
340+
341+
if( empty( $name ) && ! empty( $this->anonymous_users ) ) {
342+
$name = $this->anonymous_users[$this->user_index][$this->name_index];
343+
}
344+
345+
return $name;
346+
}
347+
348+
/**
349+
* Filter's callback
350+
*
351+
* @since 0.0.1
352+
*
353+
* @param string $email Anonymous user's email.
354+
*/
355+
public function bbp_pre_anonymous_post_author_email( $email ) {
356+
357+
remove_filter( current_filter(), array( $this, __FUNCTION__ ) );
358+
359+
if( empty( $email ) && ! empty( $this->anonymous_users ) ) {
360+
$email = $this->anonymous_users[$this->user_index][$this->email_index];
361+
}
362+
363+
return $email;
364+
}
365+
366+
/**
367+
* Filter's callback
368+
*
369+
* @since 0.0.1
370+
*
371+
* @param array $retval Anonymous post data.
372+
* @param array $r Arguments.
373+
*/
374+
public function bbp_filter_anonymous_post_data( $retval, $r ) {
375+
376+
if ( empty( $this->anonymous_users ) ) {
377+
return $retval;
378+
}
379+
380+
if( $this->anonymous_users[$this->user_index][$this->name_index] === $r['bbp_anonymous_name']
381+
&& $this->anonymous_users[$this->user_index][$this->email_index] === $r['bbp_anonymous_email']
382+
) {
383+
// Reset the input to skip writing cookies.
384+
$retval = array();
385+
386+
// Activate the IP flood check.
387+
$retval['bbp_anonymous_flood_check'] = '1';
388+
}
389+
390+
return $retval;
391+
}
392+
}
393+
394+
// Ref: https://www.ssa.gov/oact/babynames/decades/century.html

0 commit comments

Comments
 (0)